Our Phase I project addressed the challenge of creating a new paradigm for the development of software in which developers evaluate the performance of software architecture and design options early when it can have the greatest impact. Our vision moves software performance analysis from an isolated set of tools that require laborious manual transfer of information among design and analysis tools to an integrated environment in which independent tools share information automatically and seamlessly. We propose to demonstrate with software prototypes the ability to integrate heterogeneous software design and performance analysis tools using our model interoperability approach. Phase I defined an architecture and enabling technology that makes implementation feasible. The Phase II objective is to demonstrate the feasibility of automating the end-to-end process: translation of software designs from a common design notation (UML) into a performance model interchange format; using it to evaluate properties such as: hardware sizing, timing analysis, scalability; and transforming tool output into results useful for problem diagnosis. The framework will support the addition of tools in a plug and play style, thus making the environment easily expandable as new design methods, analysis techniques, and other support tools are desired.
Benefit: Developers of real-time embedded and other software systems are moving to Model Driven Engineering using the Unified Modeling Language to define new systems. When developers create models of their software before building it, there is a significant opportunity to provide performance predictions for design and implementation options that they can use to select options that meet performance requirements. This will increase the likelihood that systems will meet their performance requirements upon delivery rather than fail initially and require extensive re-work to correct problems. By automating the translation of software designs to performance models, this framework eliminates the need for laborious and error-prone manual translation. This means that performance defects can be detected and corrected early in the development process when they are easier and less costly to repair. Automated translation of designs to performance models also makes it possible to keep the performance models and design synchronized as the software evolves. It is time to make available to developers proper tools, that are easy to use, to prevent performance problems, particularly for real-time embedded systems (RTES) software where a performance failure can have disastrous consequences. Phase II work provides the foundation for one or more Phase III commercial products that could be developed relatively quickly and marketed to both the DoD and commercial clients.
Keywords: Uml, Software Performance Engineering, Design, Analysis, Engineering, Robust, Real-Time, Marte