Software:Agile Model-driven Engineering

From HandWiki
Short description: Describes the motivation and history of the field of Agile MDE


Model-driven engineering (MDE) refers to software development methods which use models (such as UML class diagrams) as a principal means to describe software applications. A synonymous term is Model-driven development (MDD).

Agile methods have become a widely-used software development approach across many industry sectors.[1], with established benefits in terms of increased responsiveness to change and decreased time to market. Agile practices emphasise lightweight and iterative development, designed to deliver value to customers quickly.

The model-driven approach to software development (MDE) originated at about the same time as Agile, in the late 1990's, and has been most widely utilised in high-integrity domains such as vehicle control systems and aerospace. It has the benefits of a rigorous and systematic approach to software construction, based on models which represent the key concepts of the application.

Because Agile and MDE both have attractive features, the idea arose of producing an integration of the two approaches, in order to gain the advantages of both.

The concept of combining Agile and MDE has therefore been considered by researchers and practitioners from 2002 onwards, resulting in new integrated methods, and tools and industrial applications. Two research teams at European universities specialise in the topic, and major companies such as Motorola and Volvo have adopted Agile MDE approaches.

Early Agile MDE approaches 2000-2009

One of the first attempts to combine Agile and MDE was Scott Ambler's Agile modeling approach in 2002 [2]. This attempted to reconcile the least plan-based Agile approach, XP, with the heavyweight Rational Unified Process for UML-based MDE. Another approach was Stephen Mellor's 'Agile MDA' method [3], which focussed on using MDE models as executable artefacts, to which agile techniques could be applied in the same manner as to conventional programs. This line of work has continued with the definition of an executable variant, fUML, of UML.

Advances and industrial application 2010-2020

More detailed and specific Agile MDE approaches began to emerge from industrial experience with major projects, in telecoms, business systems, Web applications and automotive systems. The MDD-SLAP method of[4] integrates a Scrum-based agile approach with a V-model MDE process for the construction of telecoms systems. The method of [5] introduced 'meta-sprints' to organise activities and artefacts - such as business-level models - which endure beyond the scope of individual sprints. In the automotive sector, the industry-standard AUTOSAR method combines aspects of MDE and Agile development, and has been utilised by several major companies [6] Agile MDE approaches have also been utilised in aerospace systems[7] and financial systems [8] and [9]

An important tendency that can be observed in the application-based work was the utilisation of relatively small and lightweight domain-specific modelling languages (DSLs) instead of complex UML modelling notations. This choice has an impact in reducing the complexity and costs of tooling for modelling support, and hence in increasing agility.

Surveys of Agile MDE also began to appear, for example[10] and [11] together with books proposing specific Agile MDE methods[12]

Tools supporting agile modeling also appeared, such as Simulink [13] and AgileUML, [14].

Current status

Full success in overcoming the challenges of integrating Agile and MDE cannot be claimed, but there have been a number of success stories in specific domains, with methods and modelling approaches tailored to particular application areas such as vehicle control systems and Web applications.

In recent years, two significant research directions have appeared in software development, which have particular implications for Agile MDE: (i) the increasing use of machine learning (ML) to automate software development steps such as requirements analysis and the construction of model transformations: [15], [16]; (ii) an increasing emphasis on 'low code' approaches minimising the amount of manual coding required to build an application. These low code approaches usually involve a machine-learning element, such as [17], [18] and [19]. Potentially, such approaches could be applied to accelerate software modeling and reduce the amount of specialised skills necessary to use MDE, which is one of the main obstacles to MDE adoption, whether agile or plan-based [20]

References

  1. https://explore.versionone.com/state-of-agile
  2. S. Ambler, "Agile modeling: effective practices for extreme programming and the unified process", Wiley, 2002
  3. S. Mellor, "Agile MDA", https://www.omg.org/mda/mda_files/Agile_MDA.pdf, 2005
  4. Y. Zhang, S. Patel, "Agile model-driven development in practice", IEEE Software, 2011
  5. V. Kulkarni et al., "Early experience with agile methodology in a model-driven approach", MODELS 2011
  6. U. Eliasson, et al., "Agile MDE in mechatronic systems -- An industrial case study", MODELS 2014, LNCS vol. 8767, Springer, 2014.
  7. S. Mirachi et al., "Applying agile methods to aircraft embedded software", SPE, vol. 47, 2017, pp. 1465--1484.
  8. K. Lano, H. Haughton et al, "Agile model-driven engineering of financial applications", FlexMDE, MODELS 2017.
  9. M. B. Nakicenovic, "An Agile Driven Architecture Modernization to a Model-Driven Development Solution", International Journal on Advances in Software, vol 5, nos. 3, 4, 2012, pp. 308--322.
  10. H. Burden et al., "How MAD are we? Empirical evidence for model-driven agile development", XM 2014.
  11. H. Alfraihi, K. Lano, "The integration of agile development and MDE: a systematic literature review", Modelsward 2017.
  12. K. Lano, "Agile Model-driven Development with UML-RSDS", Taylor and Francis, 2016.
  13. "Simulink - Simulation and Model-Based Design". https://uk.mathworks.com/products/simulink.html. 
  14. Smith, Cydnie (February 5, 2019). "Agile UML". https://projects.eclipse.org/projects/modeling.agileuml. 
  15. L. Burgueno et al., "An NLP-based architecture for the autocompletion of partial domain models", AISE 2021 proceedings, Springer, 2021, pp. 91--106
  16. L. Burgueno, et al., "An LSTM-based neural network architecture for model transformations", MODELS '19, 2019.
  17. AlphaCode, https://alphacode.deepmind.com
  18. Copilot, https://copilot.github.com/
  19. PolyCoder, https://nixsolutions-ai.com/polycoderopensourceai/
  20. A. Bucchiarone, et al., "Grand challenges in MDE: an analysis of the state of the research", SoSyM vol. 19, 2020, pp. 5--13.