Computer Science Department
School of Computer Science, Carnegie Mellon University
Analytical Design of Evolvable Software for High-Assurance Computing
Carol L. Hoover
Ph.D. Thesis (Department of Electrical and Computer Engineering)
This dissertation presents a semi-automatable research approach for designing an evolvable software architecture. The research approach focuses on the partition of basic elements of a software solution into reusable components that localize the effects of change. The input to the partitioning process is a set of software requirements along with an analysis of the required behavior and planned or feasible evolution of the product line. The output is a partition of the required behavior into components that reduce the effort associated with developing a software product line. The dissertation provides an analytical verification of the research approach through proof and constructive examples. Empirical results validate the effectiveness of the research approach in comparison to human intuition, experience, or other training. The research approach is novel and fills a gap in the systematic generation of software architectures that minimize the effort associated with product-line evolution. The dissertation describes in detail the degree to which the research approach is automatable and specifies, more generally, future research needed to achieve full automation of software architecture generation.