Next: References
Up: References Previous:
References
Good architectural design has always been a major factor in
determining the success of a complex software system. However,
while there are many useful compositional paradigms (pipelines,
layered systems, client-server organizations etc.), they are
typically understood only in an idiomatic way and applied in an
ad hoc fashion. Consequently, software system designers have been
unable to fully exploit commonalities in system architectures,
make principled choices among design alternatives, or teach their
craft to others. To address these issues my research has three
complementary areas:
- Architectural Specification and Analysis: A
stumbling block to effective architectural design is our
current inability to characterize software architectures
precisely and to reason about their properties. I am
attacking this problem by developing formal models of
software architectures to (a) provide precise, abstract
characterizations of their properties and their
dimensions of specialization, and (b) support
architecture-based analysis. First, with my students I
have developed an architectural specification language,
called Wright [Allen and Garlan 97]. This work focuses on
the treatment of connectors as first class semantic
entities, which can be analyzed for consistency and
completeness. Second, I have developed a formal basis for
specification of common idioms and patterns of
architectural composition - or architectural styles.
This work is concerned with both formal characterization
of specific styles and also a general framework for such
specification [Abowd et al. 95]. Of particular interest
are architectural styles based on event broadcast, a
common structuring mechanism for composable systems.
Recently Wright has been applied successfully to the
``High Level Architecture for Distributed Simulations''
an architectural standard proposed for the composition of
heterogeneous simulations.
- Tools, Environments, and Architectural Interchange:
Given precise models of software architectures it becomes
possible to support architectural design with new tools
and environments. Over the past five years we have
developed a tool, called Aesop, which permits the rapid
construction of style-specific (or domain-specific)
architectural design environments [Garlan et al. 94].
Aesop provides an open, extensible framework for
architectural design and analysis, which can be tailored
to exploit specific architectural styles through
specialized analyses, code generation, visualizations,
and component-based reuse. Currently we are extending
this environment to permit incremental specification and
enforcement of architectural constraints.
A stumbling
block for architecture-based design and analysis is our
current inability to combine capabilities provided by
different Architectural Description Languages (ADLs) and
their supporting toolsets. The problem arises, in part,
because each ADL uses its own idiosyncratic
representations for architectures. In an effort to find
ways to share architectural designs between different
tools, I am participating as one of the lead designers in
the definition of an architectural interchange language
called ACME [D. Garlan et al. 97]. The language attempts
to capture the shared core of most ADLs, while providing
an open annotation framework to support ADL-specific
descriptive capabilities. We are also developing tools
and language processing infrastructure to simplify the
both the translation of ADLs into ACME, as well as the
development of ACME-based analysis tools.
- Education of Software Architects: Mary Shaw and I
have developed material for courses in software
architectures. One aspect of this is a full semester
course for upper level undergraduates and masters
students [Garlan et al. 92]. A second aspect is the
creation of materials for tutorials on software
architecture and on formal description and analysis of
architectures. A third aspect is a book on software
architecture, recently published by Prentice Hall [Shaw
and Garlan 96].
Next: References
Up: References Previous:
References
Brought to you by the Composable Software
Systems research group at Carnegie Mellon University's
School of Computer
Science. Last updated Wed Apr 23, 1997.