Modeling and simulating a software architecture design space

Frequently, a similar type of software system is used in the implementation of many different software applications. Databases are an example. Two software development 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 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 may 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 OODB systems satisfy the requirements for different applications. The approach is based on the ability to explicitly enumerate and represent the key dimensions of commonality and variability in the space of OODB designs. 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 a parametrized OODB architectural model, together with 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.

[1]  David Jordan,et al.  The Object Database Standard: ODMG 2.0 , 1997 .

[2]  Don S. Batory,et al.  Creating reference architectures: an example from avionics , 1995, SSR '95.

[3]  Stanley B. Zdonik,et al.  A shared, segmented memory system for an object-oriented database , 1987, TOIS.

[4]  Kyo Chul Kang,et al.  A Domain Analysis Bibliography , 1990 .

[5]  Bernard H. Boar,et al.  Application prototyping , 1984 .

[6]  Don S. Batory,et al.  Modeling the storage architectures of commercial database systems , 1985, TODS.

[7]  S SimmelSergui,et al.  The Kala basket , 1991 .

[8]  David Maier,et al.  Readings in Object-Oriented Database Systems , 1989 .

[9]  Mary E. S. Loomis Object locking , 1992 .

[10]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[11]  David Lorge Parnas,et al.  On the Design and Development of Program Families , 2001, IEEE Transactions on Software Engineering.

[12]  Edsger W. Dijkstra,et al.  Notes on structured programming , 1970 .

[13]  David J. DeWitt,et al.  Object and File Management in the EXODUS Extensible Database System , 1986, VLDB.

[14]  Marc H. Graham,et al.  The Domain-Specific Software Architecture Program , 1992 .

[15]  Gio Wiederhold,et al.  Modularization of the DADAISM Ada Database System Architecture , 1991 .

[16]  Craig W. Thompson,et al.  Object-oriented databases: design and implementation , 1991, Proc. IEEE.

[17]  Mary Shaw,et al.  Comparing Architectural Design Styles , 1995, IEEE Softw..

[18]  Don S. Batory,et al.  Panel: Extensible database systems , 1986, SIGMOD '86.

[19]  Guillermo Arango,et al.  Domain Analysis and Software Systems Modeling , 1991 .

[20]  David J. DeWitt,et al.  The EXODUS Extensible DBMS Project: An Overview , 1989 .

[21]  Will Tracz,et al.  DSSA (Domain-Specific Software Architecture): pedagogical example , 1995, SOEN.

[22]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[23]  R. G. G. Cattell,et al.  The Object Database Standard: ODMG-93 , 1993 .

[24]  Don S. Batory,et al.  GENESIS: An Extensible Database Management System , 1988, IEEE Trans. Software Eng..

[25]  G. Arango Domain analysis: from art form to engineering discipline , 1989, IWSSD '89.

[26]  David Garlan,et al.  Architectural Styles, Design Patterns, And Objects , 1997, IEEE Softw..

[27]  Thomas G. Lane User interface software structures , 1990 .

[28]  Don S. Batory,et al.  Scalable software libraries , 1993, SIGSOFT '93.

[29]  Will Tracz,et al.  Domain-specific software architecture (DSSA) frequently asked questions (FAQ) , 1994, SOEN.

[30]  Gregory D. Abowd,et al.  Using style to understand descriptions of software architecture , 1993, SIGSOFT '93.

[31]  David Garlan,et al.  Architectural Mismatch: Why Reuse Is So Hard , 1995, IEEE Softw..

[32]  J. M. Neighbors,et al.  Draco: a method for engineering reusable software systems , 1989 .

[33]  Ruben Prieto-Diaz,et al.  Domain analysis for reusability , 1988 .