David Garlan


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 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 Give Meaning to 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.

[Garlan and Notkin 91]
Garlan, D. and Notkin, D. ``Formalizing Design Spaces: Implicit Invocation Mechanisms,'' in VDM'91: Formal Software Development Methods. Springer-Verlag, LNCS 551, Noordwijkerhout, The Netherlands, 1991.

[Garlan and Delisle 90]
Garlan, D. and Delisle, N. ``Formal Specifications as Reusable Frameworks,'' in VDM'90: VDM and Z -- Formal Methods in Software Development. Springer-Verlag, LNCS 428, Kiel, Germany, 1990.



Thu Jun 29 11:17:27 EDT 1995