Build Automation And Optimization for Models of Embedded Real-time Systems
Model Driven Development (MDD) enables users to construct complex systems by leveraging models, often in some graphical notation, and pre-built application components. With MDD, users create a model using a language such as the Unified Modeling Language (UML) or UML for Real-Time (UML-RT). Certain tools supporting these languages allow building the code from the created models. Build systems transform source code, libraries, and data files into deliverables, such as deployment-ready executable files. Build tools play a critical role in the software development process by automating the compiling and packaging process. In a large MDD project, building accounts for a significant amount of time and effort, and optimization of the build process is still an actively researched topic. MDD tools rely heavily on the existing build tools, so there are possibilities of inheriting limitations and issues from the existing tools. This calls for making the existing build process more efficient. Hence, we propose a methodology to optimize the build process at the model level by comparing any two model versions, determining the impact of the change on a model, and generating a patch for the changed and impacted model elements. Finally, we present a prototype tool that serves to optimize the build process by generating a patch for the changed and impacted model elements. Also, using the prototype tool, we measure the time taken to compute the impacted elements.