The Aesop System Provides:
- A toolkit for rapidly building software architecture design environments
specialized for domain specific architectural styles.
- An open tool integration framework that supports cooperation between
Aesop and your favorite tools.
- A "Style-aware" repository for storing, retrieving, and reusing
architectural design elements.
- A persistent object-oriented database for storing and manipulating
- A customizable Tcl/Tk based graphical user interface.
Aesop Helps You:
- Exploit design and domain knowledge when producing domain
- Rapidly generate design environments for producing families of
- Store, retrieve, and organize libraries of "style-aware"
architectural design elements and patterns with the Software Shelf.
The Aesop Model:
Aesop provides a generic toolkit and communication infrastructure
that users can customize with architectural style descriptions
and a set of tools that they would like to use
for architectural analysis. Example tools that we have integrated with
our Aesop styles include: cycle detectors, type consistency verifiers,
formal communication protocol analyzers, C-code generators,
compilers, structured language editors, and rate-monotonic analysis tools.
An architectural style description includes items such as a
vocabulary of design elements (components, connectors, and patterns)
along with their associated semantics, global design rules, customized
visualizations, and other information, if desired.
From these inputs, the Aesop generator creates a software architecture
design environment that is specialized to support design in the styles
that it has taken as input. A diagram of the Aesop model appears below:
The following picture displays a software architecture design environment
that has been specialized for the "pipe-and-filter" style. The strip of
buttons on the right side of the picture allow the user to select
from a palette of primitive design elements in this style. The boxes in
the drawing area represent components of the system (filters in this
case), and the lines with circles in the middle represent the connetors
(pipes). Selecting the image will bring up a full size screen dump
for closer inspection.
Further information about Aesop's implementation can be found in:
This is currently under construction. I'm hoping to add some higher level
design documentation in organize this in a little more heirarchical way.
Right now some higher level information is somewhat buried in these
docs. This is noted next to each.
- A User's Guide for the Fcl system.
Fcl is a persistent object-oriented language and run-time system
that we built on top of Tcl/Tk.
This document also includes basic documentation
of the FAM class inheritence tree which defines the primitive architectural
design classes which define the basic building blocks of a design.
To come will be a
high level explanation of these classes. As the system stands it is
FCL and this inheritance tree which define the interface to the
Fable Abstract Machine (FAM).
There is also an explanation
of the event system used to allow different tools the communicate in
the system: for example, the UI sends events to the Tool Server to start up
- The Design and Implementation of Fcl
is described in this design document. It also includes information
about the Fcl implementation for those who want to explore Fcl in depth.
- The ABLE UI Library design document
describes the structure of the UI library. People developing new
visualizations and styles will probably want to look at this.
- Programming a Style in Aesop
provides a step-by-step description of what needs to be done to
create a new style with the Aesop system. We are currently working
on making the style definition process more simple and clean.
- Compiling and Administering Aesop
tells you how to get and build the Aesop system. Not for the faint of heart.
- A guide to using CVS in the
development of large projects.
- CVS docs specific to ABLE. Still under construction. Based upon the above docs -- and will
replace them eventually.
- Development conventions used
by the Aesop developers.
- A Bug List A list of known bugs,
missing features and aberrant behavior. There are also some areas
that are eligible for redesign, extension documented here.
- A list of some of the more technical papers that we have
written relating to Aesop can be found on the ABLE group's
Some other pointers for developers:
- The TCL WWW page has lots of useful documentation and info about Tcl/Tk.