Performance modeling and analysis techniques for integrated embedded control software design

Today's software for embedded control systems has become large and complicated. Model-based design and analysis methods are therefore crucial for fast and low-cost development of embedded control software. In this dissertation, we developed techniques to support the performance analysis of embedded control software at various design phases. These techniques include a performance modeling framework and a set of modeling and analysis methods based on the framework. The modeling framework defines the performance parameters that capture the performance information required by performance analysis and performance-aware design. The values of these parameters are first represented as platform-independent virtual resource demands, then converted to the true resource demands after the software deployment is determined. Our modeling method is based on annotations supporting performance reuse and performance model evolution during the functional design of the software. The performance analysis methods include methods for both early design performance estimations and runtime model performance analysis. The performance estimation requires only a software architecture model with performance annotations. The analysis results are bound estimations both of end-to-end response delays and of system resource demands, which are derived from the best-case and worst-case configurations in an ideal execution environment. Such estimations can be used for performance analysis at an early design phase with software models containing no deployment information. We further demonstrated how to use the analysis results for software architecture and platform design. The analysis of a runtime model requires a complete software model, including its execution environment and deployment. Our runtime model analysis methods adopt existing real-time analysis algorithms, which we modify to fit our model. The results help identify the performance issues and can be used for design refinement. Another technique developed in this dissertation is a performance-aware method of transforming design models. It takes the models of the software architecture and the platform as the inputs, and transforms the software model into a runtime model with the software deployed on the platform in such a way that both timing and resource constraints are met. Evaluations based on a set of randomly-generated system models have shown this method to be scalable and effective. In order to collect the performance characteristics of application components and system software services, we developed a performance measurement method. It uses an end-to-end measurement with a combination of synthetic workloads and micro-benchmarks. Results of performance measured using this method can be reused in the performance analysis of a family of applications and platforms of a designated domain. Finally, all the techniques we developed have been implemented in an embedded control software design toolkit, called the AIRES toolkit. The implementation has shown that these techniques can be easily integrated with any generic software modeling tool to support performance analysis. This is a significant advance in current software development tool support because it fills the gap in integrating software modeling with performance analysis.