Research in Constructability

These research projects investigate ways to improve development and evolution of software, especially ubiquitous and reliable software. They are concerned with ways to make design decisions, with notations and tools for constructing software, and with the organization of distributed development projects

ACME: Tools for architectural design

David Garlan

Design environments for software architecture that support customization to specific domains. Integration of architecture analysis tools. Connections to other software development activities, including requirements modeling and software construction

Software Composition

David Garlan

Includes work on compositional connectors (Bridget's thesis work), and on publish-subscribe architectures. Work has both a formal modeling and analysis side, as well as an engineering side. Goal is to develop new techniques for composing systems with well-understood properties

ArchJava: Verifying Architectural Properties in Implementation Code

Jonathan Aldrich

Software architecture is increasingly recognized as a crucial part of building and maintaining software systems, but often its benefits are diminished because the implementation of a system diverges from its intended architecture as the system evolves. The ArchJava language adds software architecture description constructs to the Java programming language, and uses a lightweight type system to ensure that the implementation conforms to the specified architecture.

Fluid

Bill Scherlis

The Fluid Project is focused on creating practicable tools for programmers to assure and evolve real programs. We focus on "mechanical" program properties that tend to defy traditional testing and inspection regimes. These are properties with a non-local character, in that there may be no single place in the code where they are manifest, and they may involve non-determinism.

Vitruvius

Mary Shaw

The goal of the Vitruvius project is to elucidate the architectural level of abstraction so that the collective experience of successful architects can be captured, organized, and made available to ordinary practioners.