Organization of the xAcme extensions


xArch is an XML schema that defines how to represent instances of architectures in XML. xArch defines a namespace called archInstances that allows one to define a software architecture instance using:

xArch was developed jointly by Carnegie Mellon University and the University of California, Irvine. For more information about xArch, see One of the motivations for the development of xArch was to allow it to be extensible, so that particular architecture description languages (ADLs), and related facilities (such as configuration management) can be encoded using xArch extensions, 

The xAcme extensions extend xArch to provide facilities for encoding Acme architectural concepts. The Acme extensions are divided into five related extensions, each providing different Acme facilities. The organization of xAcme  is illustrated above. The open arrows represent extension relationships. For example, the properties extension extends and uses types defined in the archInstances schema. The dotted line represents use only.

Additional Materials

Tool support

Tool support for xAcme has been added to AcmeStudio 1.6beta, allowing one to export xAcme descriptions. (Importing will be available soon.)  AcmeStudio is available from

Comments and suggestions should be sent to Bradley Schmerl.

Properties extension

The properties extension adds simple properties to xArch instances. At this level, properties have no detailed structure; they simply consist of a name, a value and a type, each represented by uninterpreted strings. In addition, support for multiple subarchitectures is included in this extension.

View Schema (txt) | View Schema (xsd)
Additional Documentation: XMLSpy overview | Property diagram
Depends on: instances (core)

Properties adds to xArch:

Families extension

The families extension adds to properties support for Acme style types of components, connectors, interfaces and properties, as well as the collection of all of these types into families. Instances defined in the properties schema are extended to refer to families as supertypes; in addition to this, instances may refer to a particular family used to define the default structure of the instance.

View Schema (txt) | View Schema (xsd)
Additional Documentation: XML Spy overview | Family diagram | TypedArchInstance diagram
Depends on: properties

Families adds to xArch:

Constraints extension

The constraints extension extends families to add support for general constraints. At this level, constraints merely have a type and a description, both of which are uninterpreted strings.

View Schema (txt) | View Schema (xsd)
Additional Documentation: XML Spy Overview | Constraint diagram
Depends on: families

Acme Properties extension

The acmeProperties extension extends properties by adding structure to property types and values consistent with Acme property values and types. Structures for sets, sequences, records, and enumerated types are included.

View Schema (txt) | View Schema (xsd)
Additional Documentation: XML Spy Overview | PropertyValue diagram | PropertyType diagram

AcmeProperties adds to xArch:

Acme Constraints extension

The acmeConstraints extension extends constraints by defining additional structure corresponding to the abstract syntax of Armani constraints.

View Schema (txt) | View Schema (xsd)
Additional Documentation: XML Spy Overview | DesignRule diagram | DesignAnalysis diagram

AcmeConstraints adds to xArch:

Last modified: 30 March 2001. The development of xAcme was funded by the DARPA DASADA (Dynamic Assembly for Systems Adaptability, Dependability, and Assurance) program.