Architecture Expert Design Assistant

The SEI Architecture Expert (ArchE) tool is an experimental architectural design assistant that the SEI has been developing for several years. The tool’s purpose is to help the architect explore quality-attribute-driven design solutions. Since the release of Version 2.1, ArchE has been available for non-commercial use, and ArchE Version 3.0 has been recently released.

One of the SEI’s axioms is that quality attribute requirements such as those for security, performance, modifiability, usability, and so forth have a dominant influence on a software architecture. Therefore, an architect must be an expert regarding many different quality attributes, and such expertise is rare. Furthermore, the architect must manage many relationships among the various attribute models that are used to reason about each quality. Both of these demands present problems of scale—in knowledge and in level of detail.

Hoping to offer aid for such problems, we embarked on the construction of tool support in the form of an expert system. ArchE (in our ultimate vision) will have knowledge of all the quality attributes and will remember and report on the relationship among the attributes as a design progresses. A reasonable question in light of the above axiom is “How can quality attribute knowledge be codified to help the architect during the design process?” ArchE is a system that embodies our efforts to codify quality attribute knowledge.

ArchE is based on four concepts:

  1. Quality-attribute scenarios. ArchE requires that quality attribute scenarios be specified in a six-part structure consisting of a (1) stimulus, (2) stimulus source, (3) environment, (4) artifact being stimulated, (5) response, and (6) response measure.
  2. Responsibilities. Activities within the system being designed are represented by responsibilities. As the design process progresses, responsibilities are added, split, or modified to support the achievement of particular quality attribute requirements.
  3. Reasoning frameworks. Quality attribute knowledge is encapsulated into reasoning frameworks. A reasoning framework is a package that involves abstracting relevant quality attribute knowledge from an architecture, determining whether the architecture meets the requirements for that quality attribute, and proposing architectural tactics as improvement mechanisms.
  4. Architectural tactics. An architectural tactic is a means of improving a quality attribute response by making small transformations to the architecture.

Our ultimate goal is to enable the design of systems with predictable quality attribute behavior. We claim that one method of achieving this goal is to have a collection of parallel and interacting reasoning frameworks, with each specialized for a single quality attribute, but with all working together to enable the creation of architectural designs. The more reasoning frameworks that are available, the broader the reasoning capabilities of ArchE will become. In support of this goal to extend the capabilities of ArchE, the current version of ArchE includes an external tool interface to enable third parties to contribute reasoning frameworks to ArchE. This external interface defines an application programming interface (API) for communications and provides an object-oriented structure; upon this base you can build reasoning frameworks as ArchE-compatible plug-ins. We have ported the existing examples of reasoning frameworks for modifiability and real-time performance to this new infrastructure. We hope this external interface will stimulate others to plug in analysis/design models for various quality attributes and experiment with various searching techniques and solvers.

Additional Information

The SEI is looking for collaborators interested in using ArchE to architect small- to medium-sized software systems. ArchE currently has demonstrated its utility for small architectures. The SEI team is eager to apply ArchE to larger scale problems. The SEI is also looking for collaborators who are interested in extending ArchE with new reasoning frameworks. Contact us using the link in the For more information box at the bottom of this page.

Software Architecture Training and Publications

Training

Publications

For more information

Contact Us

info@sei.cmu.edu

412-268-5800