Advertisement

Automated Software Engineering

, Volume 24, Issue 4, pp 791–838 | Cite as

From requirements to source code: a Model-Driven Engineering approach for RESTful web services

  • Christoforos Zolotas
  • Themistoklis Diamantopoulos
  • Kyriakos C. Chatzidimitriou
  • Andreas L. Symeonidis
Article

Abstract

During the last few years, the REST architectural style has drastically changed the way web services are developed. Due to its transparent resource-oriented model, the RESTful paradigm has been incorporated into several development frameworks that allow rapid development and aspire to automate parts of the development process. However, most of the frameworks lack automation of essential web service functionality, such as authentication or database searching, while the end product is usually not fully compliant to REST. Furthermore, most frameworks rely heavily on domain specific modeling and require developers to be familiar with the employed modeling technologies. In this paper, we present a Model-Driven Engineering (MDE) engine that supports fast design and implementation of web services with advanced functionality. Our engine provides a front-end interface that allows developers to design their envisioned system through software requirements in multimodal formats. Input in the form of textual requirements and graphical storyboards is analyzed using natural language processing techniques and semantics, to semi-automatically construct the input model for the MDE engine. The engine subsequently applies model-to-model transformations to produce a RESTful, ready-to-deploy web service. The procedure is traceable, ensuring that changes in software requirements propagate to the underlying software artefacts and models. Upon assessing our methodology through a case study and measuring the effort reduction of using our tools, we conclude that our system can be effective for the fast design and implementation of web services, while it allows easy wrapping of services that have been engineered with traditional methods to the MDE realm.

Keywords

RESTful web services Model-Driven Engineering Software requirements Automated Software Engineering 

Notes

Acknowledgments

Parts of this work have been supported by the FP7 Collaborative Project S-CASE (Grant Agreement No. 610717), funded by the European Commission. S-CASE aims to provide a cloud-based realm of services and tools for software developers to enable rapid software prototyping based on user requirements and system models, provided in multimodal formats. S-CASE provides automated solutions for (a) the extraction of system specifications and architecture, (b) the transformation of these specifications (models) to the source code of RESTful web services, and (c) the discovery and synthesis of composite workflows of software artefacts from distributed open source and proprietary resources in order to fulfill the system requirements. More info on S-CASE can be found at http://s-case.github.io/.

References

  1. Abbott, R.J.: Program design by informal english descriptions. Commun. ACM 26(11), 882–894 (1983)CrossRefzbMATHGoogle Scholar
  2. Basili, V.R., Weiss, D.M.: A methodology for collecting valid software engineering data. IEEE Trans. Softw. Eng. SE 10(6), 728–738 (1984). doi: 10.1109/TSE.1984.5010301 CrossRefGoogle Scholar
  3. Booch, G.: IEEE Trans. Softw. Eng. 12(1), 211–221 (1986)CrossRefGoogle Scholar
  4. Castañeda, V., Ballejos, L., Caliusco, M.L., Galli, M.R.: The use of ontologies in requirements engineering. Glob. J. Res. Eng. 10(6), (2010)Google Scholar
  5. Dermeval, D., Vilela, J., Bittencourt, I., Castro, J., Isotani, S., Brito, P., Silva, A.: Applications of ontologies in requirements engineering: a systematic review of the literature. Requir. Eng. 1–33 (2015)Google Scholar
  6. Ed-Douibi, H., Izquierdo, J.L.C., Gómez, A., Tisi, M., Cabot, J.: EMF-REST: generation of restful apis from models. CoRR abs/1504.03498 (2015)Google Scholar
  7. Fielding, R.T.: Architectural styles and the design of network-based software architectures. PhD thesis, University of California, Irvine (2000)Google Scholar
  8. Happel, H.J., Seedorf, S.: Applications of ontologies in software engineering. In: Proceedings of the 2nd International Workshop on Semantic Web Enabled Software Engineering (SWESE 2006), held at the 5th International Semantic Web Conference (ISWC 2006), pp 5–9 (2006)Google Scholar
  9. Harmain, H.M., Gaizauskas, R.: Cm-Builder: a natural language-based case tool for object-oriented analysis. Autom. Softw. Eng. 10(2), 157–181 (2003)CrossRefGoogle Scholar
  10. Hernández, A.G., García, M.N.M.: A formal definition of restful semantic web services. In: Proceedings of the First International Workshop on RESTful Design, ACM, New York, WS-REST ’10, pp 39–45 (2010)Google Scholar
  11. Hutchinson, J., Whittle, J., Rouncefield, M., Kristoffersen, S.: Empirical assessment of mde in industry. In: Proceedings of the 33rd International Conference on Software Engineering, ACM, New York, ICSE ’11, pp 471–480 (2011)Google Scholar
  12. Kaindl, H., Smialek, M., Svetinovic, D., Ambroziewicz, A., Bojarski, J., Nowakowski, W., Straszak, T., Schwarz, H., Bildhauer, D., Brogan, J.P., Mukasa, K.S., Wolter, K., Krebs, T.: Requirements specification language definition: Defining the redseeds languages, deliverable d2.4.1. Public deliverable, ReDSeeDS (Requirements Driven Software Development System) Project (2007)Google Scholar
  13. Liebel, F., Marko, N., Tichy, M., Leitner, A., Hansson, J.: Assessing the state-of-practice of model-based engineering in the embedded systems domain. In: Dingel, J., Schulte, W., Ramos, I., Abraho, S., Insfran, E. (eds.) Model-Driven Engineering Languages and Systems, Lecture Notes in Computer Science, vol. 8767, pp. 166–182. Springer, Berlin (2014)Google Scholar
  14. Mich, L.: Nl-oops: from natural language to object oriented requirements using the natural language processing system lolita. Nat. Lang. Eng. 2(2), 161–187 (1996)CrossRefGoogle Scholar
  15. Moody, D.: The physics of notations: toward a scientific basis for constructing visual notations in software engineering. IEEE Trans. Softw. Eng. 35(6), 756–779 (2009). doi: 10.1109/TSE.2009.67 CrossRefGoogle Scholar
  16. Mylopoulos, J., Castro, J., Kolp, M.: Tropos: A framework for requirements-driven software development. In: Information Systems Engineering: State of the Art and Research Themes, Springer, pp 261–273 (2000)Google Scholar
  17. Newman, S.: Building Microservices. O’Reilly Media Inc, Sebastopol (2015)Google Scholar
  18. North, D.: Jbehave: A framework for behaviour driven development. http://jbehave.org/ (2003)
  19. Parastatidis, S., Webber, J., Silveira, G., Robinson, I.S.: The role of hypermedia in distributed system development. In: Proceedings of the First International Workshop on RESTful Design, ACM, New York, WS-REST ’10, pp 16–22 (2010)Google Scholar
  20. Porres, and Rauf, I.: Modeling behavioral restful web service interfaces in uml. In: Proceedings of the 2011 ACM Symposium on Applied Computing, ACM, New York, SAC ’11, pp. 1598–1605 (2011)Google Scholar
  21. Rauf, I., Ruokonen, A., Systa, T., Porres, I.: Modeling a composite restful web service with uml. In: Proceedings of the Fourth European Conference on Software Architecture: Companion Volume, ACM, New York, ECSA ’10, pp. 253–260 (2010)Google Scholar
  22. Richardson, L., Ruby, S.: Restful Web Services, 1st edn. O’Reilly, Sebastopol (2007)Google Scholar
  23. Roth, M., Diamantopoulos, T., Klein, E., Symeonidis, A.: Software requirements: A new domain for semantic parsers. In: Proceedings of the ACL 2014 Workshop on Semantic Parsing, pp. 50–54. Association for Computational Linguistics, Baltimore (2014)Google Scholar
  24. Roth, M., Diamantopoulos, T., Klein, E., Symeonidis, A.: Software requirements as an application domain for natural language processing. Language Resources and Evaluation Under review (2015)Google Scholar
  25. Saeki, M., Horai, H., Enomoto, H.: Software development process from natural language specification. In: Proceedings of the 11th International Conference on Software Engineering, ACM, New York, ICSE ’89, pp. 64–73 (1989)Google Scholar
  26. Schreier, S.: Modeling restful applications. In: Proceedings of the Second International Workshop on RESTful Design, ACM, New York, WS-REST ’11, pp. 15–21 (2011)Google Scholar
  27. Siegemund, K., Thomas, E.J., Zhao, Y., Pan, J., Assmann, U.: Towards ontology-driven requirements engineering. In: Workshop Semantic Web Enabled Software Engineering at 10th International Semantic Web Conference (ISWC), Bonn (2011)Google Scholar
  28. Smialek, M.: Facilitating transition from requirements to code with the redseeds tool. In: Proceedings of the 2012 IEEE 20th International Requirements Engineering Conference (RE), IEEE Computer Society, Washington, DC, RE ’12, pp. 321–322 (2012)Google Scholar
  29. Störrle H (2014) Model-Driven Engineering Languages and Systems. In: Proceedings of the 17th International Conference, MODELS 2014, Valencia, Spain, September 28- October 3, 2014, Springer International Publishing, Cham, chap On the Impact of Layout Quality to Understanding UML Diagrams: Size Matters, pp 518–534. doi: 10.1007/978-3-319-11653-2_32,
  30. Sweller, J.: Cognitive load theory, learning difficulty, and instructional design. Learn. Instr. 4(4), 295–312 (1994). doi: 10.1016/0959-4752(94)90003-5. http://www.sciencedirect.com/science/article/pii/0959475294900035
  31. Tavares, N.A.C., Vale, S.: A model driven approach for the development of semantic restful web services. In: Proceedings of International Conference on Information Integration and Web-based Applications & Services, ACM, New York, IIWAS ’13, pp. 290:290–290:299 (2013)Google Scholar
  32. Wynne, M., Hellesoy, A.: The Cucumber Book: Behaviour-Driven Development for Testers and Developers. Pragmatic Bookshelf, Frisco (2012)Google Scholar
  33. Yu, E.S.K.: Modelling strategic relationships for process reengineering. PhD thesis, University of Toronto, Toronto (1995)Google Scholar
  34. Zhao, H., Doshi, P.: Towards automated restful web service composition. In: IEEE International Conference on Web Services, ICWS 2009, pp 189–196 (2009)Google Scholar
  35. Zuzak, I., Budiselic, I., Delac, G.: Formal modeling of restful systems using finite-state machines. In: Auer, S., Daz, O., Papadopoulos, G. (eds.) Web Engineering. Lecture Notes in Computer Science, vol. 6757, pp. 346–360. Springer, Berlin (2011)CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2016

Authors and Affiliations

  1. 1.Electrical and Computer Engineering DepartmentAristotle University of ThessalonikiThessalonikiGreece

Personalised recommendations