Skip to main content

Using DevOps toolchains in Agile model-driven engineering

Abstract

For model-driven engineering (MDE) to become more Agile, the community needs to embrace development and operations (DevOps) practices. One of the core practices of DevOps is the use of pipelines to enable CI/CD to make teams more Agile and break down the barriers between development and operations with faster deployments. Current MDE tooling is not designed at its core to participate in DevOps pipelines. Consequently this makes the adoption of MDE in industry more difficult. In this article, we cover an industrial experience report describing how we enabled our pipelines using DevOps and MDE.

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

Fig. 1
Fig. 2
Fig. 3
Fig. 4

Notes

  1. https://agilemanifesto.org/principles.html.

  2. https://newsroom.eclipse.org/news/announcements/eclipse-ide-turns-20.

  3. https://ant.apache.org/.

  4. https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/guide/ant_running_buildfiles_programmatically.htm.

  5. https://ant.apache.org/manual/using.html.

  6. https://www.eclipse.org/epsilon/doc/workflow/.

  7. https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.emf.mwe.doc%2Fhelp%2Fworkflow_reference_workflow_configuration.html &anchor=workflow_reference_starting_from_your_own_code.

  8. https://help.eclipse.org/latest/topic/org.eclipse.m2m.atl.doc/guide/user/The-ATL-Tools.html?cp=6_1_4_2#ATL_ant_tasks.

  9. https://download.eclipse.org/modeling/emf/emf/javadoc/2.5.0/org/eclipse/emf/ant/taskdefs/EMFTask.html.

  10. http://www.ant4eclipse.org/.

  11. https://help.eclipse.org/latest/topic/org.eclipse.modisco.infrastructure.doc/mediawiki/workflow/user.html.

  12. https://ant.apache.org/manual/tasklist.html.

  13. https://en.wikipedia.org/wiki/Xvfb.

  14. https://ant.apache.org/manual/Tasks/parallel.html.

  15. https://ant.apache.org/manual/Tasks/typedef.html.

  16. Since our company is based on making coding support systems known as Bots available to the public, and we need to build these internally, we dubbed the system architecture BotBuilder. As it offers twice the variability, speed, and access to tools as compared to its predecessors, its version number is \(2^3=8\). And we admit a slight nod to Star Wars as well.

  17. https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.user/concepts/concepts-antsupport.htm.

  18. https://help.eclipse.org/latest/nav/4_2_0.

  19. https://projects.eclipse.org/projects/technology.tycho.

  20. https://bnd.bndtools.org.

  21. https://JUnit.org/JUnit5/docs/current/user-guide/#extensions.

  22. https://help.eclipse.org/latest/topic/org.eclipse.pde.doc.user/guide/tools/launchers/JUnit_launcher.htm.

  23. https://www.eclipse.org/articles/Article-Progress-Monitors/article.html.

  24. https://en.wikipedia.org/wiki/XUnit.

  25. https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.user/reference/ref-anteditor.htm.

  26. https://ant.apache.org/antlibs/antunit/.

  27. https://www.eclipse.org/epsilon/doc/eunit/.

  28. https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/guide/p2_overview.htm.

  29. https://help.eclipse.org/latest/topic/org.eclipse.platform.doc.isv/guide/p2_director.html.

  30. https://projects.eclipse.org/projects/tools.oomph.

  31. https://bugs.eclipse.org/bugs/show_bug.cgi?id=487626.

  32. https://docs.docker.com/engine/reference/builder/.

  33. https://docs.docker.com/engine/reference/commandline/pull/.

  34. https://docs.docker.com/engine/reference/run/.

  35. https://docs.docker.com/engine/reference/commandline/commit/.

  36. https://en.wikipedia.org/wiki/Law_of_the_instrument.

  37. https://docs.gitlab.com/ee/ci/variables/.

  38. https://docs.gitlab.com/ee/user/packages/package_registry/.

  39. https://docs.gitlab.com/ee/development/experiment_guide/experimentation.html.

  40. https://docs.gitlab.com/ee/operations/feature_flags.html.

  41. https://docs.gitlab.com/ee/operations/.

  42. https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html#multi-project-pipeline-visualization.

  43. https://www.eclipse.org/epsilon/doc/eol#context-independent-user-input.

  44. https://ant.apache.org/manual/inputhandler.html.

  45. https://www.antlr.org.

  46. https://aml-org.github.io/aml-spec/vocabularies/.

  47. https://github.com/eclipse/agileuml.

  48. https://help.eclipse.org.

  49. https://www.eclipse.org/emfcloud/.

  50. https://ant.apache.org/manual/Tasks/ant.html.

  51. https://ant.apache.org/manual/Tasks/subant.html.

  52. https://github.com/kubernetes-client/java/.

  53. https://kubernetes.io/docs/concepts/workloads/controllers/job/.

  54. https://help.eclipse.org/latest/topic/org.eclipse.emf.cdo.doc/html/Overview.html.

  55. https://www.eclipse.org/hawk/.

  56. https://copilot.github.com/.

  57. https://www.tabnine.com/.

  58. https://docs.gitlab.com/ee/ci/yaml/.

  59. https://docs.gitlab.com/ee/ci/interactive_web_terminal/.

Abbreviations

MDE:

Model-driven engineering

DevOps:

Development and operations

CI:

Continuous integration

CD:

Continuous deployment

EMF:

Eclipse Modelling Framework

MOF:

Meta-object facility

CORBA:

Common object request broker architecture

RCP:

Rich content platform

UI:

User interface

PDE:

Plugin development environment

P2:

Provisioning system 2

JMI:

Java metadata interface (JSR40)

MOF:

Meta-object facility

EOL:

Epsilon object language

DSL:

Domain-specific language

MWE2:

Modelling Workflow Engine 2

UML:

Unified modelling language

EMC:

Epsilon model connectivity

RDF:

Resource description framework

References

  1. Alfraihin, H., Lano, K.: The integration of agile development and model driven development—a systematic literature review. In: Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development—MODELSWARD, INSTICC. SciTePress, pp. 451–458 (2017). https://doi.org/10.5220/0006207004510458

  2. Bézivin, J., Lanneluc, J., Lemesle, R.: sNets: The core formalism for an object-oriented CASE tool. In: Alagar, V.S., Missaoui, R. (eds) Object-Oriented Technology for Database and Software Systems, Proceedings of the Colloquium on Object Orientation in Databases and Software Engineering, COODBSE 1994, 16–17 May 1994, Universite du Quebec a Montreal, Canada. pp. 224–239. World Scientific (1994)

  3. Bucchiarone, A., Cabot, J., Paige, R.F., et al.: Grand challenges in model-driven engineering: an analysis of the state of the research. Softw. Syst. Model. 19(1), 5–13 (2020). https://doi.org/10.1007/s10270-019-00773-6

    Article  Google Scholar 

  4. Debois, P.: DevOps from a sysadmin perspective. Login Usenix Mag. 36(6) (2011). https://www.usenix.org/publications/login/december-2011-volume-36-number-6/devops-sysadmin-perspective

  5. Fowler, M., Foemmel, M.: Continuous integration (2005). http://www.martinfowler.com/articles/continuousintegration.html

  6. Sánchez, B., Kolovos, D.S., Paige, R.F.: To build, or not to build: Modelflow, a build solution for MDE projects. In: Syriani, E., Sahraoui, H.A., de Lara, J., et al. (eds.) MoDELS ’20: ACM/IEEE 23rd International Conference on Model Driven Engineering Languages and Systems, Virtual Event, Canada, 18–23 October, 2020, pp. 1–11. ACM (2020). https://doi.org/10.1145/3365438.3410942

  7. Straeten, R.V.D., Mens, T., Baelen, S.V.: Challenges in model-driven software engineering. In: Chaudron, M.R.V. (ed.) Models in Software Engineering, Workshops and Symposia at MODELS 2008, Toulouse, France, September 28–October 3, 2008. Reports and Revised Selected Papers, Lecture Notes in Computer Science, vol. 5421, pp. 35–47. Springer (2008). https://doi.org/10.1007/978-3-642-01648-6_4

  8. Whittle, J., Hutchinson, J.E., Rouncefield, M., et al.: Industrial adoption of model-driven engineering: Are the tools really the problem? In: Moreira, A., Schätz, B., Gray, J., et al. (eds.), Model-Driven Engineering Languages and Systems—16th International Conference, MODELS 2013, Miami, FL, USA, September 29–October 4, 2013. Proceedings, Lecture Notes in Computer Science, vol. 8107,pp. 1–17. Springer (2013). https://doi.org/10.1007/978-3-642-41533-3_1

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jörn Guy Süß.

Additional information

Communicated by K. Lano, S. Kolahdouz-Rahimi, J. Troya, and H. Alfraihi.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Samantha Swift and Eban Escott contributed equally to this work.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Süß, J.G., Swift, S. & Escott, E. Using DevOps toolchains in Agile model-driven engineering. Softw Syst Model 21, 1495–1510 (2022). https://doi.org/10.1007/s10270-022-01003-2

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-022-01003-2

Keywords

  • DevOps
  • CI/CD
  • Ant
  • EMF
  • Eclipse
  • Agile
  • Model-driven engineering
  • MDE