Charles W. Krueger Modeling and Simulating a Software Architecture Design Space Degree Type: Ph.D. in Computer Science Advisor(s): David Garlan, Nico Habermann Graduated: December 1997 Abstract: Frequently a similar type of software system is used in the implementation of many different software applications. Databases are an example. Two approaches are common to fill the need for instances from a class of similar systems: (1) repeated custom development of similar instances, one for each different application, or (2) development of one or more general purpose off-the-shelf systems that are used in many times in the different applications. Each approach has advantages and disadvantages. Custom development can closely match the requirements of an application, but has an associated high development cost. General purpose systems have a lower cost when amortized across multiple applications, but may not closely match the requirements of all the different applications. It can be difficult for application developers to determine which approach is best for their application. Do any of the existing off-the-shelf systems sufficiently satisfy the application requirements? If so, which ones provide the best match? Would a custom implementation be sufficiently better to justify the cost difference between an off-the-shelf solution? These difficult buy-versus-build decisions are extremely important in today's fast-paced, competitive, unforgiving software application market. In this thesis we propose and study a software engineering approach for evaluating how well off-the-shelf and custom software architectures within the design space of a class of object-oriented database (OODB) systems satisfy the requirements for different applications. We demonstrate that modeling and simulation of OODB software architectures can be used to help software developers rapidly converge on OODB requirements for an application and identify OODB software architectures that satisfy those requirements. The technical focus of this work is on the circular relationships between requirements, software architectures, and system properties such as OODB functionality, size, and performance. We capture these relationships in an OODB simulation and modeling tool that allows software developers to refine application requirements on an OODB, identify corresponding custom and off-the-shelf OODB software architectures, evaluate how well the software architecture properties satisfy the application requirements, and identify potential refinements to requirements. Thesis Committee: A. Nico Habermann (Deceased, Co-Chair) David Garlan (Co-Chair) Jeannette Wing Mahadev Satyanarayanan Lori Clarke (University of Massachusetts at Amherst) James Morris, Head, Computer Science Department Raj Reddy Dean, School of Computer Science Keywords: Software engineering, software architecture, domain-specific software architecture, parameterized software architecture, software framework, software reuse, requirements engineering, object-oriented database, simulation CMU-CS-97-158.pdf (836.25 KB) ( 212 pages) Copyright Notice