 |
Many software designers know through experience several successful
ways to structure their software to solve given problems. This
high-level structural information, called the software's architecture,
is becoming its own level of abstract design, with its own vocabulary,
design rules and guidance. When software developers get together to
discuss the creation or modification of a software system, often
they'll huddle around a board and draw box-and-line diagrams. They use
broad-brush terms like "object-orinted", "client-server", and
"event-driven" to describe the contents of the diagram, and their
discussion focuses on high-level properties like latency, rendundancy,
or resource allocation.
If software
engineering hopes to become like more mature engineering disciplines,
an effort is needed to capture, organize, and disseminate design
knowledge. With this, ordinary practioners can solve well understood
problems with tried-and-true solutions. Without this, every problem
requires (re)inventing a solution. Because the retained experiences of
many software developers is at the architectural level of abstraction,
software architecture is a promising area for recording design
knowledge. 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.
Current
practice in software architecture is marked by informality. The
box-and-line diagram practictioners draw are often ambiguous or vague;
the terms they use are neither formally defined nor universally agreed
upon. To be able to capture design knowledge, the first step is to
create architectural notations that are crisp enough to promote
precision, rich enough to capture actual designs, simple enough to be
readily understood, and structured enough to be amenable to
tools. Such a notation has come to be called an architectural
description language (ADL). The Vitruvius project has been working on
an ADL called UniCon. With better description
abilities in hand, the next steps are: to understand and categorize
the parts out of which people build systems and the styles in which
the parts are combined; to capture when and why designers make their
decisions, through a notion called credentials; and to classify and
improve the compositional difficulties that arise at the architectural
level of abstraction, as when building systems from heterogeneous
collections of parts.

PROJECT MEMBERS

|
 |