next up previous
Next: Jeannette Wing Up: Specific Research Activities Previous: Mary Shaw

David Garlan

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:

  1. 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.

  2. 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.

  3. 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 up previous
Next: Jeannette Wing Up: Specific Research Activities Previous: Mary Shaw

Gregory Zelesnik
Fri Feb 16 07:28:49 EST 1996