The Software Factory Approach: Model-Based Design for Safety-Critical Application
Shahid K, Tata Elxsi
Sambit Mohapatra, Tata Elxsi
The Software Factory project aims to develop an automated pipeline for building, testing, and deploying models using Model-Based Design. By integrating MATLAB® with GitHub® and Jenkins®, the project automates the entire software development life cycle. Developers can push code changes to a GitHub server with a single click, triggering Jenkins to execute a series of steps and generate detailed reports. This process includes model advisor checks, model-in-the-loop testing, automatic code generation, software-in-the-loop testing, and static code analysis using Polyspace®. The objective is to automate software development processes, ensuring faster, more consistent, and higher-quality deployments. This setup addresses challenges such as lengthy development cycles, manual errors, and regulatory compliance. The outcomes of this project include a streamlined development process, improved software and code quality, faster time to market, and consistent, reproducible deployments. The Software Factory can evolve to support continuous delivery and deployment practices, integrating with various cloud platforms for seamless deployment and scaling, thus offering multi-project support. Highlights of this presentation include:
- Integration of MATLAB with GitHub and Jenkins, interfacing repositories with an automated Jenkins pipeline
- Model Advisor checks including JMAAB guidelines
- Model-in-the-loop testing and generating model coverage reports
- Automatic code generation
- Software-in-the-loop testing and generating code coverage reports
- Static code analysis using Polyspace
- Future support for continuous delivery
Published: 6 Nov 2024