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:
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.
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.