Error message

  • Strict warning: Only variables should be passed by reference in include() (line 54 of /home/isr-dru/sites/isr.uci.edu/themes/isr/templates/field--field_project_isr_people.tpl.php).
  • Strict warning: Only variables should be passed by reference in include() (line 54 of /home/isr-dru/sites/isr.uci.edu/themes/isr/templates/field--field_project_isr_people.tpl.php).

ArchStudio

Project Dates: 
January 2001
Project Description: 

ArchStudio is an open-source software and systems architecture development environment developed by the Institute for Software Research at the University of California, Irvine. It is an environment of integrated tools for modeling, visualizing, analyzing and implementing software and systems architectures. It is based on the Eclipse open development platform. It is released under a BSD-style license.

While most development environments are code-driven development environments, ArchStudio focuses on software development from the perspective of software and systems architecture.

Software architecture is the set of principal design decisions about a system. This intentionally broad definition reflects that every project in every domain will have different needs and quality goals. This means that every project will have a unique set of design decisions that are considered principal by its stakeholders.

The ArchStudio environment plays two roles in the development of architectures:

First, ArchStudio is an architecture development environment. The ArchStudio developers have identified recurring principal design concerns that occur in many domains and projects, and provide support for them. For instance, ArchStudio has built-in support for modeling the hierarchical structure of complex systems, the types of various components, connectors, and interfaces, product-lines of systems that are related by a common base, and so on.

Second, ArchStudio is an architecture meta-modeling environment, enabling support for previously unanticipated types of design decisions. ArchStudio is based on the highly-extensible xADL architecture description language. xADL allows stakeholders to define and re-define the language's syntax and semantics to suit their own needs, and ArchStudio provides the tool support for this extensibility. If current modeling tools and notations are not sufficient to capture a particular concern for a particular project, ArchStudio and xADL can be extended to effectively provide support for that concern without having to "re-invent the wheel." As such, ArchStudio provides an ideal platform for domain experts and architecture researchers to investigate new ways of modeling architectural concepts without investing an inordinate amount of time in infrastructure development.

ArchStudio Capabilities

Architecture Modeling: ArchStudio creates and manipulates architecture descriptions expressed in the xADL architecture description language (ADL). xADL is the first modularly-extensible architecture description language. Rather than having its syntax and semantics defined monolithically, xADL breaks up modeling features into modules using standard XML schemas. ArchStudio's integrated set of tools operate on xADL documents much the same way as a word processor operates on text documents. One major difference, however, is that ArchStudio tools integrate "live"—meaning that a change in any tool is reflected in all others immediately. As noted, the xADL language can be extended by end-users through the addition of new XML schemas to support domain- or project-specific concerns and modeling needs. New modules are added to the core xADL language from time to time as they are developed and contributed.

Architecture Visualization: The xADL language defines the structure of architecture description data, but it can be depicted and manipulated in many ways. ArchStudio provides several different visualizations for xADL models. Archipelago, ArchStudio's graphical editor, provides visualizations as symbol graphs - the kind of box-and-arrow models common in tools like Microsoft Visio and OmniGraffle. However, unlike PowerPoint or OmniGraffle models, the graphical depictions in Archipelago aren't just pictures - they are a user-editable graphical projection of the underlying architecture model. ArchStudio includes other editors as well, including ArchEdit, a syntax-directed editor that adapts to new xADL schemas automatically with no recoding, and the Type Wrangler, which provides a custom view of an architectural model that makes it easier to achieve type consistency.

Architecture Analysis: ArchStudio supports exploratory design in all its editors - architectures are rarely perfect until the latest stages of development. However, it is useful to be able to assess the correctness and consistency of an architecture description. The Archlight framework provides a way to automatically test architecture descriptions against many different criteria. Errors can be displayed and inspected, and users can navigate to the site of a problem in any editor with a few mouse clicks. In keeping with ArchStudio's extensible nature, all tests are provided by Archlight plug-ins, and users can add their own tests (and even entirely new analysis engines) through Archlight's plug-in API. Archlight ships with the powerful Schematron XML constraint engine, adapted to integrate seamlessly into the Archlight user interface. Schematron allows complex architectural tests to be specified in about a dozen lines of code.

1.x-Way Architecture-Implementation Mapping

Recent work on ArchStudio has a focus on architecture-implementation mapping:  a process of converting architecture specifications to and from source code with the goal of maintaining their conformance. Depending on which artifacts can be manually changed, there are approaches of one-way mapping and two-way mapping. 1.x-way mapping is a new approach that only allows changes to be initiated in the architecture (“1”) and a separated portion of the code (“.x”).

Suppression of manual changes of architecture-prescribed code, automatic mapping of specific kinds of architecture changes to code in specific ways, and support for behavioral mappings are three most important features of 1.x-way mapping. They are illustrated below in a demo of a tool called xMapper built for 1.x-way mapping in ArchStudio. Many more details can be found in a paper published at ICSE 2012.