Next: Jeannette Wing
Up: Specific Research Activities
Previous: Mary Shaw
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 components:
- 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 provide precise, abstract
characterizations of their properties and their dimensions of
specialization. First, I am developing specification languages for
architectural design. This work focuses on the treatment of connectors
as first class semantic entities. Second, I am developing a formal
basis for specification of architectural style - that is,
common idioms and patterns of architectural decomposition. This work
is concerned with both formal characterization of specific styles and
also a general framework for such specification. Of particular
interest are architectural styles based on event broadcast, a common
structuring mechanism for composable systems.
- Tools and Environments: Given precise models of software
architectures it becomes possible to support architectural design with
new tools and environments. I have begun work on an architectural
environment toolkit, called Aesop. When complete it will allow a
designer to define specialized architectural styles and then quickly
construct environments to support design using those styles. A
primary challenge of this research is to develop an open
framework that accommodates not only architectural descriptions built
with our tools, but also artifacts (code, documentation, reuse
libraries, etc.) and tools (compilers, design checkers, etc.) built
by others. A second challenge is to find appropriate declarative
mechanisms that make it easy to describe new architectural styles and
to fashion new styles by augmenting or combining existing ones.
- 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. A second aspect is the creation of materials for a half-day
tutorial on software architecture, which we have delivered at several
major conferences. A third aspect is a book, which we are writing as
an introduction to the emerging field of software architecture.
References
- Garlan and Delisle 95
-
Garlan, D., and Delisle, N. ``Formal Specification of an Architecture
for a Family of Instrumentation Systems.'' Chapter 4 of ``Applications
of Formal Methods,'' Prentice Hall, Hemel Hempstead, September 1995.
- Garlan et al 95
-
Garlan, D., Allen, R., and Ockerbloom, J. ``Architectural Mismatch,
or, Why it's hard to build systems out of existing parts,'' in
Proceedings of the 17th International Conference on Software
Engineering, 1995.
- Garlan et al 94
-
Garlan, D., Allen, R., and Ockerbloom, J. ``Exploiting Style in
Architectural Design Environments,'' in Proceedings of SIGSOFT'94:
Foundations of Software Engineering, 1994.
- Allen and Garlan 94
-
Allen, R. and Garlan, D. ``Formalizing Architectural Connection.'' in
Proceedings of the 16th International Conference on Software
Engineering, 1994.
- Abowd et al 93
-
Abowd, G., Allen, R., and Garlan, D. ``Using Style to Understand Descriptions
of Software Architecture.'' in Proceedings of SIGSOFT'93: Foundations of
Software Engineering. Software Engineering Notes 118(3) ACM Press,
1993.
- Garlan and Shaw 93
-
Garlan, D. and Shaw, M. ``An Introduction to Software Architecture,''
in Advances in Software Engineering and Knowledge Engineering, Volume
I, edited by V. Ambriola and G. Tortora. World Scientific Publishing
Company, 1993.
- Garlan et al 92
-
Garlan, D., Shaw, M., Okasaki, C., Scott, C., and Swonger, R.
``Experience with a Course on Architectures for Software Systems,''
in Proceedings of the Sixth SEI Conference on Software Engineering
Education. Springer Verlag, LNCS 376, 1992.
Next: Jeannette Wing
Up: Specific Research Activities
Previous: Mary Shaw
Gregory Zelesnik
Fri Feb 16 07:28:49 EST 1996