Modeling and Simulating a Software Architecture Design Space

Abstract

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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 01, 1997
Accession Number
ADA341934

Entities

People

  • Charles W. Krueger

Organizations

  • Carnegie Mellon University

Tags

Communities of Interest

  • C4I
  • Engineered Resilient Systems

DTIC Thesaurus Topics

  • Accuracy
  • Application Software
  • Case Studies
  • Computer Program Documentation
  • Computer Program Reliability
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Control Systems
  • Data Visualization
  • Engineering
  • Operating Systems
  • Programming Languages
  • Software Design
  • Software Development
  • Software Development Tools

Fields of Study

  • Computer science
  • Engineering

Readers

  • Database Systems and Applications
  • Graph Algorithms and Convex Optimization.
  • Software Engineering.

Technology Areas

  • Space