Agile Applied to Model-Based Development Software Projects

The integration of Agile methods and Model-Based Development (MBD) offers a promising synergy, resulting in improved quality and efficiency in software development. This article aims to introduce how MBD works in Agile environments, how to implement them, and the challenges faced.

This figure describes Agile practices in Scrum, including the process and Sprint.
Figure: Agile Practices in Scrum: Process and Sprint

What is Agile Software Development?

The traditional methodology for software development is the Waterfall model. However, this linear, top-down approach has several limitations. Nowadays, it is recommended to implement Agile methods that are widely recommended in software development to address the dynamic nature of software projects.

The core values of Agile from the Agile manifesto include:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Agile focuses on delivering valuable software products early, continuously, and frequently, while welcoming changes (even late in the development process). It pays more attention to simplicity in workflows and technical excellence. As for people, Agile encourages self-organizing, motivated individuals and efficient team collaborations. In short, Agile emphasizes people, collaborations, quick responses, and flexible adaptation.

Scrum is the most widely applied Agile framework in software development. It is based on iterative development, tailored processes by the team, and continuous improvements within the process framework. The main roles within a Scrum team are the Scrum Master, who oversees the process; Product Owner, who is responsible for product vision, prioritization, and stakeholder communication; and the Developers, who work to achieve the development goals in each sprint.

The main artifacts of Scrum include Product Backlog, Sprint Backlog, and the Definition of Done (DoD). As illustrated in the figure below, Scrum is structured as a continuous development process that includes several minor releases, with short and iterative development cycles in between, known as Sprints.

A Sprint usually lasts between 2-4 weeks, and the team determines the duration depending on their needs. Each Sprint begins with Sprint Planning, where the team selects user stories from the Product Backlog to include in the Sprint Backlog. Although Backlog Refinement is an ongoing activity, it often occurs before or during the Sprint. Daily stand-up meetings (or Daily Scrums) help the team synchronize, discuss progress, and address any blockers. At the end of the Sprint, the team conducts a Sprint Review with stakeholders to present the completed work, followed by a Sprint Retrospective to reflect on the process and identify improvements for the next iteration.

This figure describes the benefits of Agile Principles in MBD Workflows.
Figure: Benefits of Agile Principles in MBD Workflows

Align Agile and MBD: Benefits and Challenges

Model-Based Development (MBD) is considered as one of the most advanced in software development methods. MBD follows the traditional V-model in software development (see figure below), and it is especially helpful when developing projects with high complexity. The principles of MBD emphasize iterative development, the use of a common modeling language, early quality assurance (frontloading), and extensive use of automation throughout the development lifecycle.

In the article “High-Quality Modeling Made Easy! - Get to Know MBD”, experts from MES provide a comprehensive introduction to the MBD methodology.

MBD takes model as the main artifact, and it brings a lot of benefits, such as:

  • Better communications within and between different groups
  • Early simulation in checking the functionality of the models
  • Frontloading the quality assurance activities

Notably, these key MBD characteristics align well with the Agile core principles and can be seamlessly integrated to maximize efficiency:

  • Cross-functional teams communicate better through models. The models are understandable not only for the developers (as is the case with hand-written code)
  • Early and frequent testing is supported by simulation and quality assurance “frontloading”
  • Continuously shippable software becomes achievable with automated toolchains and code generation
  • Design quality improves via the application of guidelines and simplified architectures.

If applied correctly, MBD enhances Agile delivery by enabling shorter feedback loop, improving model designs, and collaborations between teams.

With these advantages in mind, this section then explores how to implement Agile methods in MBD testing processes efficiently.

Optimize issue detection by frontloading the Validation and Verification (V&V) process. As previously discussed, V&V activities are traditionally positioned on the right-hand side of the V-model, closer to the final software delivery. However, this can lead to late detection of bugs and defects in the model and low efficiency due to the long feedback loop. In some cases, this delay can prevent the team from delivering the software the customer truly needs, on time. To comply with the Agile principles, V&V activities should be frontloaded to the left-hand side of the V-model. This guarantees shorter feedback cycles and supports an iterative development process. Developers also benefit by gaining continuous feedback, allowing them to learn from results and iteratively refine their work.

Define the meaning of complete user stories through the DoD. Incremental software development helps fulfill the evolving needs of customers and requires quality assurance at each increment. Applying the DoD in this context means that model quality is verified against modeling guidelines, and functional correctness is ensured through dynamic testing of both the models and the generated code. Automation plays a key role in this process—tools such as MES Model Examiner (MXAM) can be integrated here to reduce the overhead caused due to these quality assurance methods.

Some challenges for Agile in MBD still remain. A frequently asked question is how to collaborate with multiple developers on a model. The key solution here is to decompose the model thoughtfully. By implementing libraries, referenced models and subsystems, teams can then streamline and facilitate their communications. Another question is the difficulty of detecting models’ diff in Git. To address this, developers can use professional diff tools to visualize the models’ changes and detect when to merge them.

Conclusion

The traditional Waterfall software development process has several shortcomings, making the implementation of Agile principles essential for helping developers navigate complex and changing scenarios. As one of the most effective approaches to software development, Model-Based Development (MBD) offers numerous advantages. Integrating Agile principles into the MBD process enables development teams to achieve shorter feedback loops, adopt incremental development, and ultimately deliver final products that meet evolving customer requirements.

More Offers from MES

Here at MES, experts are eager to share their knowledge of Agile in MBD with you! Come and check out the following resources and broaden your horizons!

Get in Touch with Us

This image shows Elena Bley.
Elena Bley
Senior Manager Marketing & Webinars

* Mandatory field

What is the sum of 3 and 4?