Computer Science Department
School of Computer Science, Carnegie Mellon University


Modeling and Simulating a
Software Architecture Design Space

Charles W. Krueger

December 1997

Ph.D. Thesis

Keywords: Software engineering, software architecture, domain-specific software architecture, parameterized software architecture, software framework, software reuse, requirements engineering, object-oriented database, simulation

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.

212 pages

Return to: SCS Technical Report Collection
School of Computer Science homepage

This page maintained by