This is a glossary of the words we use in the ABLE group to talk about
the Aesop system. This glossary is sorted alphabetically, even though this
may not be the best order in which to learn about all these terms.
Style Developer's Tool
- ACME is our generic architectural description language,
intended to be a mechanism for sharing designs among different
- An agent is a tool that is like the user interface in that it
presents an abstract view of a design to the user and allows more or
less arbitrary manipulation of a design. Agents are unlike other tools
in that they cannot easily be thought of as derived methods of objects.
- An aggregate is an arrangement of components and connectors
into a graph structure. Formally, an aggregate is defined by a set of
components, a set of connectors, and a set of attachments from ports
of the components to roles of the connectors.
An aggregate representation is a representation of a component
or connector by an aggregate sub-architecture. In addition to the elements
that an aggregate has, an aggregate representation also has a set of
bindings from ports and roles inside the aggregate to ports and roles
on the element that the aggregate representation represents.
- Architectural Type
- The architectural type of a design element is the
appropriate member of the following set: component, connector, port,
role, configuration. For example, although a filter has type `filter',
its architectural type is `component'.
- Here's a definition that we're working with for software architecture,
from the IEEE Transactions on Software
Engineering's Special Issue on Software Architecture:
The structure of the components of a program/system, their
interrelationships, and principles and guidelines governing their
design and evolution over time.
- An attachment is a joining of a port and a role. At present, there
is no internal structure for attachments.
See also: port, role
- A binding is an identification of a port or role in an
aggregate representation with a port or role in the component or connector
that the aggregate represents. Bindings, at present, have very little
internal detail; they are not mediating interactions, they
are showing that two different elements are really the same element.
- Certification is the process by which an object of one type
is converted in a type-safe manner to an object of a sub-type. For example,
a component which has only reader and writer ports may be certified as a
We used to refer to Certification as blessing, but changed because
of the religious connotations of "blessing".
- A class is the code for the implementation of a set of objects.
The difference between a class and a type is that a type
defines the externally visible behavior of a set of objects, but a
class defines the code that implements that behavior.
See also: type, subclass,
- A component is a locus of computation or data storage.
Component is one of our fundamental architectural types.
Connectors are usually represented as boxes or other compact shapes
in our environments.
- Configuration is the word used by the rest of the
architectural community to refer to what we call an aggregate. We changed the word we use because at
one point we were using the word "configuration" to refer to a set of
components, connectors, and attachments, to the process of turning a
partially specified object on the shelf into a fully specified object
in a design, or to the suite of tools making up a design
- A connector represents a communication between two or more
components. The interfaces of a connector are roles.
- Derived Style
- A derived style is simply a style that reuses code and
definitions from another style, without any implications of compatibility.
For example, the "Unix pipe and filter" style, which adds files to the
design vocabulary of the "pipe and filter" style, is a derived style
of the "pipe and filter" style, but it is not a substyle.
- A design is the architectural model of a system that is created,
modified, and analyzed by the use of an Aesop environment.
- Design Rule
- A design rule is an element of code with which a class extends
a method of a superclass. A design rule consists of the following:
- Design Vocabulary
- An Environment is a design environment tailored to a particular
style. It includes a set of policies about the
style, and a set of tools that work in harmony with that style,
visualization information for tools, and so forth. The
applicable rule of thumb is that if something is part of the formal
meaning, it should be part of a style; if it's part of the presentation
to the user, it should be part of the environment.
See also: Style,
- Environment Description
- An Environment Descripion is the description of an
environment that serves as the other input to the
Style Developer's Tool.
See also: Environment,
- Policy Map
- A Style is a family of related architectural designs. It includes
a design vocabulary, a set of invariants that characterize well-formed
designs in that style, and a set of properties that are meaningful in
For example, a pipe and filter style would include filters, pipes, etc.
in the design vocabulary, include the rules that input ports attach
only to sink roles and so forth in the set of invariants, and include
properties like `cyclicity' and `throughput'.
See also: Stylet,
- Style Description
- A Style Description is the description of a style that
serves as input to the Style Developer's
Tool. A style description includes a list of design
vocabulary, invariants, and properties.
See also: Style,
- Style Developer's Tool
- A stylet is the set of values associated with
a particular word of design vocabulary. For example, a definition of the
`filter' stylet might express that `a filter is a component that has only
input ports and output ports.'
See also: Type, Class
- Tool Server