Software Engineering Institute Carnegie Mellon

SEI Architecture Expert (ArchE) Tool

The SEI Architecture Expert (ArchE) tool is a design assistant that helps architects explore architectural designs driven by quality attributes. ArchE shows the architect proposals for improving the current architecture and allows the architect to decide on the best alternative.

ArchE V. 3.0 with support for adding additional quality attribute reasoning capability is now available for download.

A sample interaction of ArchE with an architect is described below.

  1. Let’s assume the architect inputs a set of functions to be computed by the system being designed:
    • Create user profile.
    • Modify user profile.
    • Handle user interactions.
    • Attach to model.
    • Save data.
  2. The architect also specifies two simple quality attribute scenarios:
    • Modifiability - “A new variable must be added to the user profile within five days of effort.”
      • This scenario maps to functions “Create user profile” and “Modify user profile.”
    • Performance - “The user modifies the profile under normal conditions and the changes in the profile take effect in less than five seconds.”
      • This scenario maps to functions “Create user profile,” “Modify user profile,” and “Handle user interactions.”
  3. ArchE asks for information necessary to determine quality attribute behavior such as: dependencies between functions and execution time or cost of change of the functions.
  4. ArchE proposes the following design:


Alternatively, the architect may want to provide a legacy design for ArchE to start with, such as a Model-View-Controller architecture allocating the above functions.

  1. ArchE identifies quality attribute scenarios that are not satisfied by the current design.
    • The performance scenario is met, but the modifiability is not met (as shown in the snapshot by the green and red ball icons, respectively)
  2. ArchE proposes a list of tactics that might improve the design.
    • Split a costly responsibility to reduce the impact of the changes.
    • Insert an intermediary to avoid the rippling of changes.
    • Introduce concurrency to improve performance in a certain area.

  1. The architect chooses one or more tactics.
    • Splitting function - “Create user profile” yields modifiability benefits, although at the cost of some performance losses.

  1. ArchE applies these tactics to produce a new design, such as the following:


The architect then may need to provide additional information for the new design, such as a meaningful name for two newly created responsibilities or computation time for an intermediary.

  1. This process reoccurs until one of the following occurs:
    • The quality attribute scenarios are met.
    • The architect is satisfied with the result.
    • ArchE has no more proposals.

ArchE currently has quality attribute knowledge of real-time performance and modifiability.

In More Detail

ArchE embodies quality attribute theories; techniques for converting an architectural description into an appropriate quality attribute model; and techniques for solving the quality attribute model to determine a predicted response in given situations. This knowledge is packaged in reasoning frameworks, to facilitate its use by non-experts.

ArchE uses three different types of input. These are (1) the quality attribute requirements for the system being designed, (2) the set of features (functions) that the system should support, and (3) any legacy design.

From the features, ArchE abstracts a set of responsibilities that the system under design will compute. The quality attribute requirements also imply certain responsibilities. The legacy design includes responsibilities as well. From these sources, ArchE constructs a representation of the responsibilities and the dependencies among them. In one type of dependency, one responsibility may need to be computed prior to another. In another type of dependency, one responsibility may be decomposed into several other responsibilities.

The architect interacts with ArchE to identify the dependencies among the responsibilities. The architect also interacts with ArchE to provide properties such as the execution time or the cost that the quality attribute models of ArchE require in order to predict quality attribute behavior.

ArchE then creates an initial architecture and shows the architect this initial architecture, how well it satisfies the quality attribute requirements, and a series of suggestions for improvements to the architecture (based on the use of architectural tactics). The architect selects an option, and ArchE applies it to the architecture, calculates how well the revised architecture satisfies the quality attribute requirements, and so forth.
This continues until the architect is satisfied with the current design.

External Reasoning Frameworks

The more reasoning frameworks that are available to ArchE, the broader its reasoning capabilities will be. To achieve this goal, ArchE 3.0 provides a collaborative infrastructure called the ArchE Reasoning Framework Interface that allows third parties to contribute reasoning frameworks to ArchE.

This interface defines an application programming interface (API) for communications and provides an object-oriented structure that supports development of reasoning frameworks as external plug-ins that are ArchE compatible. The term external means that a reasoning framework resides anywhere outside the ArchE process, even on a remote machine over networks. The term plug-in means that a reasoning framework can be added to or removed from ArchE at runtime without disturbing the ongoing tasks of ArchE. Since reasoning frameworks are transparent in location, ArchE does not need to know their locations in order to interact with them. Thus, ArchE can utilize multiple computing resources simultaneously by executing reasoning frameworks in parallel. 

The interactions between ArchE and external reasoning frameworks are based on commands, as follows. Each external reasoning framework announces itself in the infrastructure via a manifesto, and ArchE enables the reasoning framework for operation. From that point on, ArchE sends asynchronous interaction commands to the reasoning frameworks and communicates information through a special database. Meanwhile, each reasoning framework acts as a “command listener,” executing the received commands with its own logic and accessing the database. Once a reasoning framework has successfully executed a command, it sends the results back to ArchE. ArchE is responsible for processing user inputs, coordinating the reasoning frameworks, combining their results, and passing specific questions to the user.

More details about how to build a reasoning framework for ArchE can be found in the Reasoning Framework Interface Developer’s Guide, downloadable through the link in the section below.

Downloading ArchE

ArchE V. 2.1 and the ArchE User's Guide are available for download here.

ArchE V. 3.0, the User's Guide, and the Reasoning Framework Interface Developer’s Guide are available for download here.

ArchE depends on the JESS expert system, the Eclipse platform, the MySQL data base, and the xmlBlaster communication server (only for ArchE 3.0). We are not providing any of these systems, so you’ll need to download and install them. The installation procedure for ArchE will provide pointers to the appropriate websites. In theory, ArchE could run on any platform that supports JESS, Eclipse, XMLBlaster, or MySQL, but we have only tested ArchE on the Windows platform. If you are successful in installing and running ArchE on other platforms, we would like to hear about it.

Future Work

We plan to continue adding to ArchE reasoning frameworks that are based on different quality attribute models and tactics. We also encourage people to develop their own reasoning frameworks and integrate them into ArchE.
Stay tuned for announcements about reasoning framework updates and please let us know if you would like to contribute a reasoning framework to ArchE.

Additional Information

Read more:

Presentation: Bianco, Philip & Diaz-Pace, Andres. “Current SEI SAT Initiative Technology Investigations.” SATURN 2008 Workshop, April-May 2008, Pittsburgh, PA.

Presentation: Bachmann, Felix; Bass, Len; & Bianco, Philip. “Software Architecture Design with ArchE, ” Bosch Software Engineering Conference, March 2007.

Products and Services: Learn about ArchE-related product and services.

Contact Information: For technical details about ArchE, contact Phil Bianco or Andres Diaz-Pace.

Working with the SEI: Learn more about working with the SEI in software architecture.