Skip to main content

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

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.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22
Fig. 23
Fig. 24
Fig. 25
Fig. 26
Fig. 27
Fig. 28
Fig. 29
Fig. 30
Fig. 31

Notes

  1. http://www.omg.org/mda/

  2. http://www.omg.org

  3. https://en.wikipedia.org/wiki/Computer-aided_software_engineering

  4. http://martinfowler.com/articles/richardsonMaturityModel.html

  5. https://en.wikipedia.org/wiki/Basic_access_authentication

  6. See (Dermeval et al. 2015) for a systematic review on the use of ontologies in RE.

  7. http://www.persvr.org/

  8. http://restlet.com

  9. http://www.django-rest-framework.org

  10. http://rubyonrails.org

  11. https://code.google.com/p/implementing-rest/wiki/ByLanguage

  12. http://www.w3.org/Submission/wadl/

  13. http://www.w3.org/TR/2004/REC-owl-guide-20040210/

  14. http://yaml.org/

  15. https://eclipse.org/modeling/emf/

  16. https://en.wikipedia.org/wiki/First-order_logic

  17. https://en.wikipedia.org/wiki/Object_Constraint_Language

  18. https://eclipse.org/atl/

  19. http://s-case.github.io/publications/ase2015/S-CASE_D2.2

  20. https://eclipse.org/acceleo/

  21. https://github.com/s-case/mde/tree/master/eu.scasefp7.eclipse.mde.m2t/src/LayeredPSMToText/files

  22. https://maven.apache.org

  23. http://hibernate.org

  24. https://lucene.apache.org

  25. http://www.microsoft.com/net

  26. http://www.stack.nl/~dimitri/doxygen/

  27. http://www.oracle.com/technetwork/java/index.html

  28. https://jaxb.java.net

  29. https://jax-rs-spec.java.net

  30. https://jersey.java.net

  31. http://s-case.github.io/publications/ase2015/S-CASE_D6.2

  32. http://raml.org

References

  • Abbott, R.J.: Program design by informal english descriptions. Commun. ACM 26(11), 882–894 (1983)

    Article  MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • Booch, G.: IEEE Trans. Softw. Eng. 12(1), 211–221 (1986)

    Article  Google Scholar 

  • 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)

  • 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)

  • 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)

  • Fielding, R.T.: Architectural styles and the design of network-based software architectures. PhD thesis, University of California, Irvine (2000)

  • 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)

  • 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)

    Article  Google Scholar 

  • 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)

  • 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)

  • 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)

  • 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 

  • 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)

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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)

  • Newman, S.: Building Microservices. O’Reilly Media Inc, Sebastopol (2015)

    Google Scholar 

  • North, D.: Jbehave: A framework for behaviour driven development. http://jbehave.org/ (2003)

  • 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)

  • 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)

  • 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)

  • Richardson, L., Ruby, S.: Restful Web Services, 1st edn. O’Reilly, Sebastopol (2007)

    Google Scholar 

  • 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)

  • 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)

  • 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)

  • 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)

  • 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)

  • 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)

  • 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,

  • 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

  • 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)

  • Wynne, M., Hellesoy, A.: The Cucumber Book: Behaviour-Driven Development for Testers and Developers. Pragmatic Bookshelf, Frisco (2012)

    Google Scholar 

  • Yu, E.S.K.: Modelling strategic relationships for process reengineering. PhD thesis, University of Toronto, Toronto (1995)

  • Zhao, H., Doshi, P.: Towards automated restful web service composition. In: IEEE International Conference on Web Services, ICWS 2009, pp 189–196 (2009)

  • 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)

    Chapter  Google Scholar 

Download references

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/.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Themistoklis Diamantopoulos.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Zolotas, C., Diamantopoulos, T., Chatzidimitriou, K.C. et al. From requirements to source code: a Model-Driven Engineering approach for RESTful web services. Autom Softw Eng 24, 791–838 (2017). https://doi.org/10.1007/s10515-016-0206-x

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-016-0206-x

Keywords

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