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.
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.
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.
ArchE currently has quality attribute knowledge of real-time performance and modifiability.
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.
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.
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.
We encourage people to develop their own reasoning frameworks and integrate them into ArchE. Please let us know if you would like to contribute a reasoning framework to ArchE.
For technical details about ArchE, contact us using the link in the For more information box at the bottom of this page.
Current SEI SAT Initiative Technology Investigations
Philip Bianco & Andres Diaz-Pace
Designing Software Architectures to Achieve Quality Attribute Requirements, IEEE Proceedings on Software, August 2005.
Felix Bachmann, Len Bass, Mark Klein, & Charles Shelton
Integrating Quality Attribute Reasoning Frameworks in the ArchE Design Assistant.
Andres Diaz-Pace, Hyunwoo Kim, Len Bass, Philip Bianco, & Felix Bachmann
Preliminary Design of ArchE: A Software Architecture Design Assistant
Felix
Bachmann, Len Bass, & Mark Klein
Software
Architecture Design with ArchE
Felix Bachmann, Len Bass, & Philip Bianco
Using ArchE in the Classroom: One Experience
John D. McGregor, Felix Bachmann, Len Bass, Philip Bianco, & Mark Klein