A Style-neutral Architecture Description Language

Project Description

Acme is a simple, generic software architecture description language (ADL) that can be used as a common interchange format for architecture design tools and/or as a foundation for developing new architectural design and analysis tools. The Acme language and toolkit provide three fundamental capabilities:
  • Architecture Description. Acme has emerged as a useful architecture description language in its own right. It provides a straightforward set of language constructs for describing architectural structure, architectural types and styles, and annotated properties of the architectural elements. Although not appropriate for all applications, the Acme architecture description language provides a good introduction to architectural modelling, and an easy way to describe relatively simple software architectures.
  • Extensible foundation for new architecture design and analysis tools. Many, if not most, architectural design and analysis tools require a representation for describing, storing, and manipulating architectural designs. Unfortunately, developing good architectural representations is difficult, time consuming, and costly. Acme can mitigate the cost and difficulty of building architectural tools by providing a language and toolkit to use as a foundation for building tools. Acme provides a solid, extensible foundation and infrastructure that allows tool builders to avoid needlessly rebuilding standard tooling infrastructure. Further, Acme's origin as a generic interchange language allows tools developed using Acme as their native architectural representation to be compatible with a broad variety of existing architecture description languages and toolsets with little or no additional developer effort.
  • Architectural interchange. By providing a generic interchange format for architectural designs, Acme allows architectural tool developers to readily integrate their tools with other complementary tools. Likewise, architects using Acme-compliant tools have a broader array of analysis and design tools available at their disposal than architects locked into a single ADL.

Project Home Page:http://www.cs.cmu.edu/~acme

Research

Our Position:Architectural style can be used to provide effective tailoring of architectural tools for domain-specific notations and analyses.

Sample Questions

  • How can styles be mixed to provide tailored support for specific domains, and multiple analyses?
  • How can one be assured that combining styles will enable valid architectural instantiations?
  • How can tools be developed that provide effective, scalable, and extensible architectural design environments, that seamlessly fit into a company's software development lifecycle?
  • What kinds of architectural analyses can be applied at the architectural level
  • How can architectural notations be used to specify and analyze intrinsically dynamic software architectures?

Contacts

David Garlan, Bradley Schmerl, Nicholas Sherman, Jung-Soo Kim, Shang-Wen (Owen) Cheng.

Related Publications