Page 183 -
P. 183
ChaptEr 10
SYSTEMATIC DERIVATION AND
EVALUATION OF DOMAIN-SPECIFIC AND
IMPLEMENTATION-INDEPENDENT
SOFTWARE ARCHITECTURES
k. suZannE barbEr and thomas grasEr
Abstract: Software architectures have been demonstrated to be effective representations for ex-
pressing system stakeholder concerns and prescribing software systems to satisfy those concerns.
However, research is only beginning to emphasize systematic processes for deriving and evaluating
those architectures from stakeholder requirements. The research described in this chapter offers
a systematic process and a supporting tool, Reference Architecture Representation Environment
(RARE), for deriving and evaluating a high-level software architecture, the Domain Reference
Architecture (DRA), such that the resulting architecture reflects quality goals prioritized by the
architect, including reusability, maintainability, performance, integrability, reliability, and com-
prehensibility. The DRA is an implementation-independent architecture composed of Domain
Reference Architecture Classes (DRACs), each of which specifies some portion of domain data
and functionality. Thus, the essential DRA derivation process consists of identifying DRACs and
allocating domain data and functionality to those DRACs. While disciplines such as object-oriented
analysis and design offer selective guidance for deriving class-based architectures, the current state
of the art is largely ad hoc. The approach used in this research focuses on defining a deterministic
transformation, such that for a given model of functional and data requirements and a prioritized
set of architect quality goals, the derivation process yields a particular DRA structure, and the
evaluation of that DRA with respect to quality goals is consistent.
Keywords: Software Architecture, Software Engineering
INTRODUCTION
Software architectures have been used to represent a variety of concerns in the software develop-
ment process, including requirements, domain-specific knowledge, implementation structure, and
component connectivity (Bass, Clements, and Kazman, 1998; Tracz, 1995). To accommodate these
concerns, a variety of architecture representations have been proposed (Clements, 1996). In an ef-
fort to promote large-scale reuse over time, one form of architecture, the “reference architecture,”
has proved to be particularly effective for prescribing a series of systems within a domain without
constraining developers by current technology. The reference architecture is designed to describe
anticipated system component functionality and relationships between those components without
specifying implementation details (Gacek, 1995). Avoiding such details allows the architecture
168