Agile System Development

Agile System Development with Model-Based Design

Deliver software-enabled systems through rapid and continuous development with Simulink

Organizations are successfully addressing the challenges of fast-evolving market needs and increasingly complex system design by adopting Model-Based Design in place of traditional waterfall methods. Model-Based Design extends agile principles to the development of systems that include physical components as well as software. From requirements capture, system architecture, and component design, to implementation, verification, test, and deployment – Model-Based Design spans the entire development cycle. Multi-domain system simulations lead to working designs faster, and facilitate customer interactions so you can quickly adjust to changing requirements. Automatic code generation produces working software that you can immediately deploy and test on a target hardware.

Simulink® integrates with Jenkins™,  Git™, GitHub®, and other agile development tools, and lets you:

  • Use models instead of documents to collaborate across teams and communicate with customers
  • Develop working systems through simulations of incrementally elaborated models
  • Integrate your development in continuous integration, build, and test processes
  • Scale development using a combination of desktop, on-premise, and cloud resources

Agile system development with Model-Based Design centers around simulation and code generation to incrementally deliver design and test artifacts, studies, and evaluations.

Models Drive Collaboration

Unlike document-centric workflows, Model-Based Design lets you use models to partition your system design. Model componentization facilitates cross-domain concurrent team development, collaboration, and reuse. Bring cross-disciplinary teams and their designs together by integrating all components in one system-level simulation using Simulink, even when components are modeled in different tools and at different levels of fidelity. Automatically generate and share documentation and web views of your Simulink models and simulations for audit and review.

Collaboration

Early evaluation of design feasibility

Early Evaluation of Design Feasibility Through Simulation, Continuous Verification, and Validation

Simulate your system early and often before deploying to hardware to ensure design feasibility. Explore and evaluate implementation ideas and scenarios without writing code. Verify your design throughout incremental development, detect hidden design errors, and check compliance with safety standards. Ensure your system meets functional requirements through rapid prototyping and hardware-in-the-loop (HIL) simulations.


Rapid Response to Changes Through Incremental Model Elaboration and Automatic Code Generation

Quickly respond to changing requirements by automatically generating production code from evolving models. Use Projects to organize your work, and facilitate integration with source control and configuration management tools. Push changes to a repository such as Git to automatically trigger execution of comprehensive tests of code compliance, static code analysis, and integration tests on a Jenkins continuous integration (CI) server.

Rapid Response

Customer Collatoration

Easier Customer Collaboration with Sharable Models and Simulations

Close the gap between your customer requirements and design implementation using Simulink models as executable specifications. Validate requirements by simulating a system prototype, explore scenarios, and share evolving models and results with customers before and during the development cycle.


Scaling Performance and Productivity with Desktops, Clusters, and the Cloud

Develop a prototype on your desktop, and scale to a compute cluster to take advantage of high-end hardware in your organization without leaving the MATLAB® and Simulink desktop environment. For computationally intensive tasks, such as Monte Carlo simulations or design optimization, run simulations in parallel on your multicore desktop, computer cluster, or the cloud.


“With Model-Based Design, our developer productivity is easily increased tenfold. Simulation and code generation enable us to turn changes around quickly and eliminate human errors in coding. Our algorithms typically work the first time, so we no longer waste a big part of our development cycle debugging code.”

“By using MathWorks tools for Model-Based Design and their production code generation capabilities, we’ve become more agile and can respond rapidly to future technical software challenges.”