Architectural languages

Objective

(excerpts from papers or websites)

Links

Tool supported

Open source     Tools

Commercial tools

Active

Last known activity

Notes

AADL

AADL (Architecture Analysis & Design Language) is an ADL aimed to embedded real-time systems

aadl.info

AADL publications

OSATE

ocarina

STOOD

2015

ABC/ADL

ADL supporting component composition. Besides the capability of architecting software systems, it provides support to the automated application generation based on SA model via mapping rules and customizable connectors

ICFEM_2002 paper

ABCtool

X

2004

Acme

Acme is a simple, generic software 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.

home-page

AcmeStudio

X

2011

ABACUS

ABACUS (Architecture-Based Analysis of Complex Systems) is a software package that can create multiple solution alternatives ("architectures") and then run various simulations or calculations against each alternative for metrics such as Cost, Agility, Performance and Reliability. Hierarchical 3D visualization provides an intuitive means for conceiving and communicating complex architectures.

Vendor's YouTube channel

ECBS 2005 paper

ABACUS

2015

AC2-ADL

new Aspect-Oriented ADL. AC2-ADL aims to provide a formal basis for representation of the tangling and scattering concerns and establish the software architecture with higher dependability.

ASEA  2008 paper

IIS 2009 paper

NA

NA

ACDL

An ADL to represent the centralized-mode architectural connection in which all components are linked by a single connector. ACDL describes connectors in such a way that connectors are insensitive to the number of attached same-type components. Analytic techniques to facilitate the system checking of temporal properties of an architecture.

ECSA 2010 paper

NA

NA

ADAGE

Adage supports the description of architectural frameworks for avionics navigation and guidance.

AIAA 1995 paper

ACMSIGSOFT 1995 paper

ADAGE tool

NA

NA

ADLARS

ADL for Software Product Lines. ADLARS is an ADL that supports the relationship between the system's feature model and the architectural structures. The link between the two spaces also allows the automatic generation of product architectures from the family reference architecture.

SEW 2005 paper

ADLARS tool

NA

NA

ADLV

ADLV is an ADL based on IDL3, which allows the specification of properties that should hold on the system. The joint description of both the structure of the application and the properties it should satisfy allows us to derive the properties that should be formally checked on the control component of the system. Code generation must preserve the semantics of special components that are in charge of interfacing the control and the processing parts of the application.

COMPSAC 2008 paper

in the paper also an Eclipse based tool is described.

NA

NA

ADML

ADML: An XML ADL. ADML is based on ACME. ADML adds to ACME a standardized representation (parsable by ordinary XML parsers), the ability to define links to objects outside the architecture (such as rationale, designs, components, etc.), straightforward ability to interface with commercial repositories, and transparent extensibility.

homepage

white paper 2000

visualADML

NA

NA

ADR

Architectural Design Rewriting (ADR) is a declarative rule-based approach for the design of dynamic software architectures. The key features that make ADR a suitable and expressive framework are the algebraic presentation of graph-based structures and the use of conditional rewrite rules. These features enable the modelling of, e.g. hierarchical design, inductively defined reconfigurations and

ordinary computation.

R2D2 2008 paper

ADR tool

NA

NA

AEmilia

The description of a system with AEmilia can be done in a compositional, hierachical, graphical and controlled way. The functional and performance aspects of the behavior are described through a family of EMPA terms or the invocation of the specification of a previously modeled system,

while the interactions are described through actions occurring in the behavior.

From the whole behavior, integrated, functional and performance semantic models can be automatically

derived. In addition to that, AEmilia comes equipped with some architectural checks for ensuring deadlock freedom and performance closure.

WOSP 2002 paper

Performance 2002 paper

TwoTowers

NA

NA

variant of PADL

Aesop

Aesop supports the use of architectural styles. * A toolkit for rapidly building SA design environments specialized for domain specific architectural styles. * An open tool integration framework that supports cooperation between Aesop and your favorite tools. * A "Style-aware" repository for storing, retrieving, and reusing architectural design elements. * A persistent object-oriented database for storing and manipulating architectural designs.

homepage

FSE 1994 paper

Aesop

NA

NA

AIL_Transport

AIL has been defined as a modelling language dedicated to the specification of architectures described as an

assembly of standard components. Every component is an instance of class belonging to a generic model, and include all pertinent characteristics necessary to the subsequent analysis of the whole architecture: interaction consistency, logical behavior, real-time performances and fault tolerant properties. AIL is formalized using UML syntax.Unlike more generic ADLs, AIL-transport details many categories of automotive components. So this ADL is strongly linked with the automotive architecture and cannot be adapted to other purposes.

IFAC 2002 paper

AEE French project page

AIL language tool

NA

NA

The tool is just a proof of concept that then evolved into EAST-ADL.

ALI

Extensible ADL for Industrial Applications (it is used also for service oriented architectures).

The usage of ADLs in industry has been slower than might have been expected. A contributory cause may be the perceived lack of flexibility and, as yet, the limited tool support.

ALI is a new ADL that aims to address these deficiencies by providing a rich, extensible and flexible syntax for describing component interface types and the use of patterns and meta-information. These enhanced capabilities are intended to encourage more widespread industrial usage.

ECBS 2008 paper

ISD 2009 paper

NA

NA

Ambient-PRISMA

Used for modelling and developing distributed and mobile applications. Ambient-PRISMA enriches an aspect-oriented software architectural approach called PRISMA with the ambient concept from Ambient Calculus. Ambients are introduced in PRISMA as specialized kinds of connectors that offer mobility services to architectural elements (components and connectors) and are able to coordinate a boundary, which models the notion of location. A middleware called Ambient-PRISMANET which maps the metamodel to .NET technology and supports the distributed runtime environment needed for executing mobile applications is also presented.

JSS 2010 paper

PrismaDSL

NA

NA

The tool is described in the JSS paper

AO-ADL

AO-ADL is an aspect-oriented ADL. The main contributions of AO-ADL are two. First contribution is the definition of a symmetric composition model, where functional and non-functional concerns are modeled by the same architectural block. AO-ADL models crosscutting concerns by components, but maintaining a 'crosscutting relationship' with other components. This means that in AO-ADL, additionally to the coordination and communication classical relationships, crosscutting becomes a new kind of relationship between components. Second contribution is the extension of the semantic of connectors with aspectual composition information.

homepage with publications

NA

NA

AO-RAPIDE

Extension of the Rapide ADL with Aspect Oriented concepts.

SEDE 2006 paper

WCAT 2004 paper

NA

NA

AOSEPADL

A special language (AOSEPA Description Language) is

described to support to formalize the architecture of aspect-oriented software evolution process.

ICICTA 2009 paper

NA

NA

Archface

Archface, which encapsulates design essence based on the component-and-connector architecture, is not only an ADL (Architecture Description Language) but also a programming-level interface. Archface is effective for software evolution because traceability between design and its implementation can be realized by enforcing architectural constraints on program implementation, and this traceability is bidirectional. In Archface, a component exposes program points such as method call/execution and a connector defines how to coordinate exposed program points.

ICSE 2010 paper

There is a compiler that translates Archface definitions into

an AspectJ program

NA

NA

ArchiMate

ArchiMate is an open and independent enterprise architecture modelling language to support the description, analysis and visualization of architecture within and across business  domains  in an unambiguous way.

homepage   

wikipediaPage

 Archi

BiZZdesign Architect 

ARIS ArchiMate Modeler 

Metis

Corporate Modeler 

System Architect 

NA

NA

ArchiTrio

ArchiTRIO is a formal language, which complements UML 2.0 concepts with a formal, logic-based notation that allows users to state system-wide properties, both static and dynamic, including real-time constraints.

FORTE 2005 paper

NA

NA

ArchJava

An extension to Java that seamlessly unifies software architecture with implementation, using a type system to ensure that the implementation conforms to architectural constraints.

homepage

ICSE 2002 paper

command-line compiler (see homepage)

NA

NA

Armani

Armani is a rapidly configurable software architecture design environment that exploits captured software design expertise to assist architects in the design and analysis of software systems. Armani supports an iterative, experimental approach to architecture development and provides a declarative, domain-specific language for capturing design constraints.

homepage

TR 1998

Armani environment

NA

NA

ArTek

ARDEC/Teknowledge ADL and Distributed Intelligent Control and Management (DICAM) Application Development Support

Environment - developed for intelligent control domain but not inherently domain specific.

ACMSIGSOFT 1994 paper

NA

NA

ASDL

(Architectural Style Description Language)

The language provides a collection of abstract software types that support the description of execution and interface semantics, logical views, and relationships between logical views. The software types correspond to application-invariant Z schemas, which provide a type-theoretic basis for the language that allows it to be used for describing, analyzing,

and comparing various architectural styles and logical views.

TR 1996

ECBS 2000 paper

NA

NA

ASDL (Architecture Structure Description language)

Architecture Structure Description Language (ASDL) developed for describing structural aspects of software architectures and their properties.

COMPSAC 1998 paper

ARES 1998 paper

NA

NA

industrial case study (train control system)

AspectLEDA

a new architecture description language formally defined in order to adequately manipulate AO concepts at the software architecture stage. There is an AspectLEDA translation process.

INFSOF 2008 paper

AOSATool/LEDA

NA

NA

AspectualACME

AspectualACME is an extension to the well known ADL ACME. It supports aspectual connectors and quantification and provides a seamless integration of aspects and ADLs.

homepage

SBES 2006 paper

NA

NA

Aster

Following existing configuration-based programming systems,

the Aster interconnection language is a declarative language,

independent of any implementation language. It enables

to describe an application in terms of interconnection

of software components where components are abstractly

defined through their interfaces.

ICDCS 1996 paper

CORBA-based tool

NA

NA

Autosar

AUTOSAR (AUTomotive Open System ARchitecture) is an open and standardized automotive software architecture, jointly developed by automobile manufacturers, suppliers and tool developers.

homepage

ARTOP (platform)

QUASAR

NA

NA

AVDL

A novel view description language intended for specifying any arbitrary views, using a uniform set of conventions for constructing views and how to use them. The highly adaptable nature of the new language results from its built-in mechanisms to define different types of views in a systematic and repeatable manner.

JSS 2006 paper

 

NA

NA

no engine

AWright

Based on the extension of Wright, it is an aspectual components composition architecture description language. Since Wright fails to describe system’s nonfunctional requirements and lacks corresponding elements for describing the coupling relationship between non-functional and functional requirements, the description of Aspectual Components, Pointcuts and Advices are introduced into AWright.

ISCSCT 2008 paper

NA

NA

Backbone

An experimental language has been defined in order to demonstrate the concepts in their paper, and to also explore the use of UML2 as an ADL.

SAVCBS 2006 paper

googleCodePage

Intrinsarc

NA

NA

C2SADEL

A Software Architecture Description and Evolution Language for the C2 style. It describes component types, connector types, their configurations. Evolution of C2SADL.

homepage

ICSE 1999 paper

DRADEL

NA

NA

C2SADL (C2)

A specific architectural style, together with a design environment in which architectures conforming to the C2 style may be developed.

ICSE 1995 paper

homepage

Argo

NA

NA

C3

A minimal and complete architecture description language. It provides a set of mechanisms to deal with different levels of each hierarchy.

ICEIS 2008 paper

ICEIS 2009 paper

JOT 2009 paper

NA

NA

A UML profile exists for C3, but still no tool.

CBabel

CBabel is an ADL that, besides the usual architectural primitives such as components and ports, provides contracts as first class constructions. Non-functional properties like distribution, coordination and QoS can be defined in terms of contracts.

SBMF 2005  paper

tool

FormArch

NA

NA

CHAM-ADL

Chemical Abstract Machine (CHAM) model for architectural description and analysis.

TSE 1995 paper

NA

NA

CLACS

An ADL for modelling component-based applications using business and constraint components. Architecture constraints can be executed at design-time within CLACS. CLACS is implemented as a plugin in the Eclipse IDE.

ECSA 2010 paper

Google code repo

NA

NA

CLARA

CLARA stands for "Configuration LAnguage for Real-time Applications". Compared to other ADLs, it allows to express complex synchronisation and activation laws. It provides also some support for the description of the behaviour of the components and for the expression of real-time requirements (timing constraints) and properties (time budgets).

WADL 2004

translator

NA

NA

CommUnity

It was developed as a vehicle for illustrating the categorical approach to system design in general, and the role of architectures in this process in particular. Although it borrows principles from other languages that can be found in the literature, it takes to an extreme the separation between the support that it provides for the computations that are performed locally by components, and the mechanisms that are made available for coordinating the joint behaviour of components in a system.

GENERIC PROGRAMMING 2003 paper

ENTCS 2005 paper

journal SCICO 2007 paper

 CommunityWorkbench

NA

NA

Con Moto

Mobile software applications have to meet new requirements directly arising from mobility issues. To address these requirements at an early stage in development, an architecture description language (ADL) is proposed, which allows to manage issues like availability requirements, mobile code, security, and replication processes.

ENTCS 2006 paper

 Eclipse plugins

NA

NA

COSA

COSA (Component-Object based Software Architecture) is hybrid model, based on both object and component modeling to describe software systems [1]. The basic principal of this model is to base on architectural description languages formalism extended with object-oriented concepts and mechanisms to specify software architectures. A major advantage of COSA is that, it defines and manipulates connectors as first class entities by explicitly define them. In COSA, components, connectors and configurations are defined as classes which can be instantiated to define different architectures.

WASET 2009 paper

CosaStudio

NA

NA

It is implemented v ia a UML profile, but its concepts are formalized via a metamodel.

no engine

DADL

A Distributed Application Description Language to express: (1) architecture, behavior and needs of a distributed application that may be deployed on clouds; and (2) specifics of available cloud resources.

thesis 1998

 DADL compiler

NA

NA

DAOP-ADL

(CAM)

An architecture description language used to describe components and aspects, together with the composition rules that govern the weaving of components and aspects.  

Architecture descriptions using DAOP-ADL comprises of the two parts: one defines standalone components and aspects, and the second is the composition specification.

homepage

GPCE 2003 paper

toolset

NA

Darwin

Darwin is a language for describing component-based architectures. It is scalable by supporting a hierarchical model, tractable and accompanied by a corresponding graphical notation. The main contributions of Darwin are its simple yet elegant grammar, its solid concept of components and the introduction of dynamism in the specification of software architectures.

homepage 

ESEC 1995 paper

ECBS 2000 paper

ARES 1998 paper

 winSAA

NA

NA

Dedal

A 3-level ADL which enables the explicit and separate definitions of architecture specifications, configurations and assemblies. This way, a single abstract architecture definition can be refined into many concrete architecture definitions, to foster not only the reuse of components but also of architectures.

ECSA 2010 paper

Arch3D toolsuite

NA

NA

DEMO

DEMO is a methodology for modeling, (re)designing and (re)engineering organizations. The DEMO methodology appears to provide the right help in achieving this important separation of concerns: first the business architecture (as it is defined in the CAP theory), then the information systems architecture, and lastly the infrastructure architecture.

homepage

paper

ACMSAC 2009 paper

 

Meetingworks

Xemod

NA

NA

DiaSpec

DiaSpec helps developers writing pervasive applications by generating dedicated programming frameworks from software architectures specified in an architecture description language, also named DiaSpec. DiaSpec also allows the graphical simulation of applications through the use of DiaSim.

homepage

GPCE 2009 paper

DiaSpec

NA

NA

DPD ADL

ADL for data processing domain. It has domain independence meta model concept, and it supports variability description and the code generation rules have been indicated too. Data processing product line can be described by this ADL and generate product code, which will improve the productivity.

ITNG 2010 paper

DPOSPL IDE

NA

NA

DREMS ML

A wide-spectrum architecture design language as an integrated collection of individual domain-specific

sub-languages. The language promotes “correct-by-construction”

software development and integration by supporting each individual phase of

the application lifecycle.

SCP 2015 paper

NA

NA

EAADL

EAADL is a software product line architecture description language for the automotive domain that extends the SAE AADL. By incorporating orthogonal variability model into it, EAADL offers traceability with requirement engineering as well as the implementation process that is essential in software product line engineering.

MEMOCODE 2007 paper

AADL osate

NA

NA

EADL

Embedded Architecture Description Language (EADL) is based on a component model for embedded systems that unifies hardware and software components

JSS 2010 paper

COMPSAC 2008 paper

ESIDE

NA

NA

EAST-ADL

EAST-ADL is a modeling language defined as a domain-specific language for the development of automotive electronic systems. The modeling element consists of different entities to represent the embedded system (requirements, features, desired behaviors, software, and hardware components) and their dependencies (refinement, allocation, composition, communication, etc.).

wikipediaPage

www.atesst.org

EAST-ADLtool

NA

NA

Its UML profile is also available

ExSAVN

It is based on the designspace of software architectural elements to determine theproperties of software architectures that are visuallyrepresented. It achieves balance between simplicity andexpressiveness and supports incremental and iterative architectural design through a number of high levellanguage facilities, which include the representation ofundecided properties, hierarchical abstraction and typedefinition facilities.

QSIC 2008 paper

NA

NA

FAC

Extension of the Fractal component model and ADL.Fractal Aspect Component (FAC) is a general and symmetrical model for components and aspects. FAC decomposes a software system into regular components and aspect components which embody crosscutting concerns. We reify the relationship between an aspect component and a component, called an aspect binding, as a first-class runtime entity.

JFDLPA 2008 paper

NA

NA

FRACTAL ADL

An open and extensible language to define component architectures for the Fractal component model, which is itself open and extensible.

homepage

SpecialIssue AnnalsComm 2009

see documentation in the homepage

Fractal programming in Java and C++

NA

NA

FuseJ

An architectural description language which realizes the unified component architecture in the setting of the JavaBeans component model.

homepage

SPLAT 2005 paper

prototype

NA

NA

GenVoca (GDL)

GenVoca is a model of software generation. The GenVoca Description Language (GDL). GDL has been designed to facilitate compatibility with other ADL’s, and in fact, GDL is capable, in theory, of incorporating, as domain specific information, other ADLs. GDL includes syntax for the expression of component interfaces and component composition. GDL embodies a means for declaratively expressing semantic properties of individual components as well as component interactions.

IEEE software 1994 paper

TOSEM 1992 paper

1999 report

wikiGenVoca

GenVoca

NA

NA

GESTALT

Gestalt is an architecture language for specifying structure, with separate, partial support for protocol specifications. The Gestalt toolset checks structural consistency between the architecture and the code. It specifies and checks protocol type compatibility at the interfaces, using the implementation language and tools (e.g. compiler).

IWSSD 1996 paper

NA

NA

GRASP

Generalised Rationale-aware Architecture Specification. ADL that allows the specification of architecture rationale along with the static structure of typical software architectures. The ADL has an accompanying compiler that parses, validates and executes architecture specifications. In addition, the development of a tool that allows graphical visualization of architectures described using the ADL is also envisaged as a project goal.

MSc thesis 2009

compiler

NA

NA

no engine

HappyWork (HWL)

HappyWork is a software architecture design environment. It provides functions and environments for design and modeling of software architecture. In addition, it can generate HappyWork language from a software architecture model automatically. HappyWork has two main functions. First, it provides a graphic editor for modeling of software architecture diagram. It can represent dynamic and passive feature of software with three kinds of diagrams - a system context diagram, a component diagram, and a component sequence diagram - that describe software architecture. Second, it provides an ADL, called HWL(HappyWork language). HWL is generated by the code generator of HappyWork. As HWL represents structural and functional aspects together, users can analyze and understand software through parsing HWL easily.

2004 report

happyWork

NA

NA

JACAL

JACAL is a language (with a graphical notation) that can be used to represent a system’s architecture together with its dynamic model. 

AWCSET 1998 paper

NA

NA

KADL

An ADL based on the Korrigan formal language which supports the following features: integration of fully formal behaviours and data types, expressive component composition mechanisms through the use of modal logic, specification readability through graphical notations, and dedicated architectural analysis techniques.

JUCS 2006 paper

ResearchReport 2007

NA

NA

KAPTUR

Embodies a domain analysis approach that combines elements of object-oriented modeling, feature modeling, and case based reasoning.

CTA inc. 1992 paper

Nasa TR 1991

textual environment

NA

NA

sponsored by Nasa

no engine

KNIT

Knit is a component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the performance overhead of componentization, detects subtle errors in component composition that cannot be caught with normal component type systems, and provides a foundation for developing future analyses over C-based components, such as cross-component optimization.

OSDI 2000 paper

Knit tool

NA

NA

KOALA

The Koala Component Model for Consumer Electronics Software. Koala is an architectural description language and a component model for developing embedded software for consumer electronics products. Koala is used to build a large diversity of products from a repository of components.

IEEEcomputerSociety 2000 paper

KoalaXTcompiler

NA

NA

We did not manage to find the “official” Philips tool

KORRIGAN

It may be used at the formal specification level to describe components, connectors, and their configuration. In addition to existing approaches KORRIGAN provides full data types, temporal logic gluing facilities, structuring and readability.

Research Report 2003

NA

NA

LEDA

LEDA is an Architecture Description Language for the specification, validation, prototyping and construction of dynamic software systems. Systems specified in LEDA can be checked for compatibility, ensuring that the behaviour of their components conforms to each other and that the systems can be safely composed. A notion of polymorphism of behaviour is used to extend and refine components while maintaining their compatibility, allowing the parameterisation of architectures, and encouraging reuse of architectural designs.

WICSA 1999 paper

NA

NA

LILEANNA

Lileanna (Library Interconnect Language Extended with Annotated Ada). LILEANNA is a language for formally specifying and generating Ado packages. LILEANNA extends Ada by introducing two entities: theories and views, and enhancing a third, package specifications. A LILEANNA package, with semantics specified either formally or  informally, represents a template for actual Ada package specifications.

Workshop on Software Reuse 1993 paper

NA

NA

LISA

An ADL (with its corresponding approach) which aims to combine important characteristics of informal approaches, like flexibility and easy-of-use, and of semiformal and formal approaches, like analyzability and accuracy. The main idea is to provide a formally defined but refineable architecture model which supports architecture modeling and validation at multiple levels of abstraction. The approach provides continuous synchronization with a potential implementation during development.

ACM SAC 2010 paper

ecsa 2010 paper

LISA-Toolkit

NA

NA

the ECSA paper explicitly presents industrial validation

Little-JIL

Little-JIL is a graphical language for defining processes that coordinate the activities of autonomous agents and their use of resources during the performance of a task. Little-JIL programs are executable so that agents can be guided through a process while ensuring that their actions adhere to the process.

ASE 2000 paper

Java toolset

NA

NA

MAE

Mae combines techniques from the fields of software architecture and configuration management to make two unique contributions: (1) an integrated architectural and configuration management system model that facilitates capturing the evolution of an architecture and its constituent elements, and (2) an integrated environment that supports managing the evolution of architectures.

TOSEM 2004 paper

Menage

DRADEL

NA

NA

Maude (Real-Time)

Real-Time Maude as a formal notation for software architecture description and verification of real time systems. The system model is composed of two kinds of descriptions: static and dynamic.

BCS 2008 paper

Real-time Maude

NA

NA

Meta-H

Meta-H provides specie guidance for designers of real-time avionics control software. MetaH is used to create a software architecture for integration of the controller and spacecraft subsystems, to simplify software module integration, and to create an executable for the embedded target. Additionally, MetaH provides a simple mechanism to modify process execution rates, supports hybrid time systems, and provides scheduling analysis of process execution times.

DASC 2002 paper

whitePaper 2000

AADLbasedTool

NA

NA

METAOASIS

A model and a language able to capture in an elegant and precise way at a formal specification level the architectural aspect of the distributed systems.

CSCC 2002

NA

NA

PRISMA is an evolution of METAOASIS

MobiS

MobiS: A Specification Language for Mobile Systems. MobiS is a specification language based on a tuple-spaces based model which species coordination bymultiset rewriting. MobiS can be exibly used to specify architectures containing mobile components and give formalization of some common mobility paradigms.

COORDINATION 1999 paper

NA

NA

Modechart

It is a language that can be used as an ADL and has an exemplary analysis environment. Modechart has been used to model the software of an air-to-air radarguided

missile, and the specification was primarily architectural in nature (i.e., the modes represented software components more than computation states). There is a simulator and verifier.

TSE 1994 paper

workshop 1995 paper

Modechart environment

NA

NA

MontiArch

MontiArc is a textual ADL tailored to distributed information-flow architectures and their message-based asynchronous communication. Following taxonomy for ADLs presented, MontiArc components are units of computation or storage. As components are only accessed and connected by their dened interfaces, their interior implementation is encapsulated.

ECSA 2011

MontiArc

context condition

checker, code generator

NA

NA

OCA

The OCA is an abstract model that provides an architectural pattern for the packaging of software. The architectural pattern embodied in the OCA allows software developers and

reusers to distinguish the design and packaging of the service providers and the code elements that are mission oriented.

TR 1994

compiler

NA

NA

OLAN

The Olan Configuration Language (OCL) is an Architecture Definition Language specially designed for distributed applications. The targeted applications are in particular those involving multiple users in a distributed environment that cooperate together while using their favorite software, not necessarily designed to work remotely.

MIDDLEWARE 1998 paper

OCL compiler and

configuration machine

NA

NA

automatic deploy

OOADL

A formal approach for the architecture level system design of multimedia software systems. This language takes object-oriented paradigm as its backbone, and provides formal semantics for modeling architectures of software systems. It also aims at some other goals such as support for hierarchical renement, support for reuse of architecture styles, support for analysis and support for exception handling.

ICMCS 1999 paper

NA

NA

OSAN

OSAN inherits useful features from Petri nets, SAN and queue networks. OSAN supports formal analysis of software architecture in a variety of well-established techniques. OSAN can provide all mandatory requirements of ADLs (from Medvidovic’s survey). It also provides some optional requirements too.

ICSEA 2007 paper

OSANtool

NA

NA

PADL

Inspired by both WRIGHT and DARWIN, it addresses the problem of formalizing architectural styles by introducing the intermediate abstraction of architectural type.

PADL comes equipped with a technique for verifying architectural compatibility as well as an efficient technique for verifying architectural conformity and allows a certain kind of properties common to all the instances of an architectural type (interactional properties) to be investigated.

FSE 2000 paper

TwoTowers

NA

NA

predecessor of AEmilia

PALLADIO component model

The Palladio Component Model (PCM) is a domain specific modeling language to describe component-based software architectures. It is designed to enable early performance predictions for software architectures and is aligned with a component-based software development process

overview paper

PCM tool

NA

NA

p-SPACE

This paper presents an architecture description language, called p-SPACE, designed to cope with requirements on evolving software architectures. p-SPACE provides constructs for describing architectures based on the p-calculus. It supports the adding, replacing and removing of components and connectors in an evolving software system. Applications of p-SPACE are motivated by work on the relationships between business processes (including software development) and the software systems, which support them. Businesses need flexible software that enhances their ability to adapt and survive in changing organisations.

ASE 2000 paper

p-SPACE

NA

P++

P++ is an enhanced version of C++: it offers linguistic extensions for component encapsulation, abstraction, parameterization, and inheritance, where a component is a suite of interrelated classes and functions.

TR 1993

compiler,

C++ code generation

NA

NA

π-ADL (Pi-ADL)

π-ADL, an ADL that has been designed in the ArchWare European Project to address specification of dynamic and mobile architectures. It is a formal, well-founded theoretically language based on the higher-order typed π-calculus. While most ADLs focus on describing software architectures from a structural viewpoint, π-ADL focuses on formally describing architectures encompassing both the structural and behavioural viewpoints.

SIGSOFT Softw. Eng. Notes 2004 

WICSA 2005 paper

projectPage1 

projectPage2

 ArchADL

NA

NA

There is also a UML profile for this, see

this paper

Pi-ADL is also called Archware ADL.

In WICSA2005 there is a case study at the CERN

π-Net ADL

It is rooted in BDI model. It adopts π-calculus and Object-Oriented Petri nets as a formal basis. π-net ADL stresses the description of dynamic MAS (Multi-Agent Systems) architecture, and it is brought directly into the design phase and served as the high-level design for MAS implementation. π-net ADL can visually and intuitively depict a formal framework from the agent level and society level, and analyze, simulate and validate MAS and interactions among agents.

ICIC 2005 paper

NA

NA

PILAR

(AO-PiLAR)

A reflective ADL. It consists of a structural part, which describes the static skeleton, and a dynamic part, which defines patterns of change. The major novelty is the reification relationship, which structures a description in several meta-layers, such that the architecture is able to reason and act upon itself

COORDINATION 2002 paper

simulation Eclipse-based tool

NA

NA

It has been used within research projects to check some aspects

of real-world systems (robotics, emergency systems, etc.)

Polis

A coordination language that can be effectively used to design and analyze software architectures. PoliS satisfies the requirements of ADLs and provides a model checking framework to reason on PoliS specifications.

ROSATEA 1998 paper

NA

NA

PrimitiveC-ADL

An architecture description language (ADL) for PCOMs (a context oriented component model). The language is described at three levels: (1) Building blocks (PCOMs context oriented components types) (2) Connectors, which connect components externally and internally, and (3) Architectural Configuration, which includes a full description of composition and decomposition mechanisms.

INFOS 2010 paper

NA

NA

PRISMA

The PRISMA model allows the definition of architectures of complex software systems. Its main contributions are the integration of the AOSD and the CBSD and its reflexive properties. In this way, it specifies different characteristics (distribution, safety, coordination, etc.) of an architectural element (component, connector) using aspects, and it is able to evolve its architectures by means of a meta-level.

homepage 

CBSE 2006 paper

ECBS 2006 paper

 PRISMAcase

NA

NA

case study in the ECBS2006 paper

RADL

The Rich Architecture Description Language (Radl) belongs to the Darwin family of ADLs. Radl focusses on parameterised (context-dependent) components, their architectural composition and extra-functional proxies for trust, such as reliability, testability and schedulability.

SOFSEM 2007 paper

openradl

NA

NA

Rapide

Rapide allows architectural designs to be simulated, and has tools for analyzing the results of those simulations

homepage

RapideToolset

NA

NA

RESOLVE

RESOLVE’s specification language is rich and fairly complex — but the authors of the paper claim that is no more complex so than it has to be in order to express the mathematical models and functional behavior that must be captured in formal software specifications.

homepage

ACM SIGSOFT Software Engineering Notes 1994

compiler and verifier

NA

NA

ROOM

Real-time Object-Oriented Modeling (Selic, et al.) for event -driven real-time/embedded applications. Developed originally for the design of telecom applications. Basic paradigm: network of hierarchically structured collaborating (hierarchical) state machines. Executable language

homepage

RTAS 1996 paper

Tool homepage

NA

NA

SADL (Simulation Architecture description Language)

SADL is a graphical, domain-specific Architecture Description Language that facilitates the high level specification of both the software and hardware aspects of hard real-time, hardware-in-the-loop, avionics system simulations targeted for execution on diverse hardware architectures including multiprocessor systems. It supports the hierarchical expression of the architecture of an entire simulation at various levels of abstraction.

 IJCA 2002 paper

simulation tool

NA

NA

SADL (Structural Architecture description Language)

The SADL language can be used to specify both the structure and the semantics of an architecture, but its main focus has been on the former. The interesting features in SADL include support for explicit mappings between architectures, generic architectures, architectural styles (including well-formedness constraints), and architecture refinement patterns that provide routine solutions to common design problems.

TR 1997

verification tool

NA

NA

SafArchie

SafArchie provides a language and a set of tools for describing software architecture. In SafArchie, in order to accrue the true benefits of software architecture approaches, one may need to use an architecture centric approach with a global reasoning: from software architecture design to software architecture management to software architecture building, deployment and refinement.

The SafArchie approach serves as the building blocks of an other project named TranSAT (Transformation of Software ArchiTecture).

http://transat.gforge.inria.fr/

SafArchie Studio

NA

NA

SARA

SARA (System ARchitects Apprentice) is an interactive environment which was created so that designers might enhance their capabilities to effectively design concurrent computer systems.

TSE 1986 paper

ACM CCS 1985 paper

SARA tool

NA

NA

ScudADL

Scud-ADL is a framework with formal semantics based on higher-order typed π calculus theory. Scud-ADL is specifically designed for dynamic adaptation (it makes use of the ScudWare middleware). In the ScudADL, the computing resources consumption is concerned.

CCCM 2009 paper

analysis tool

NA

NA

secure xADL

Its approach models security subject, resource, privilege, safeguard, and policy of architectural constituents. The modeling language is based on xADL.

SSATTM 2005 paper

Archipelago

NA

NA

Service-ADL

It captures services, roles and components and builds the input for the automated creation of AspectJ architecture exploration prototypes.

WICSA 2004 paper

code generation tool

NA

NA

 SKwyRL

SKwyRL (Multi-Agent and Software Architecture: A Comparative Case Study) is an ADL to specify multi-agent system architectures for information systems. Authors propose a set of system architectural concepts based on the BDI agent model and existing classical ADLs. They then conceptualize KwyRL-ADL, aimed at capturing a “core” set of structural and behavioral concepts, including relationships that are fundamental in architecture description for BDI-MAS.

homepage 

 

AAMAS 2005 paper

ICEIS 2003 paper

 

code generator

simulator

NA

NA

SOADL

SOADL is a new architecture description language for SOA. SOADL specifies the interfaces, behavior, semantics and quality properties of services, provides mechanisms to model and analyze the dynamic and evolving architecture, and supports architecture-based service composition.

GCC 2007 paper

NA

NA

SOFA CDL

The ADL for describing component-based architectures in the context of the SOFA component model. The SOFA Component model and CDL (Component Description Language) support versioning by strictly separating the component interface from the component architecture (multiple versions of architecture per an interface). There is also an update operation with clearly defined relationship to versioning.

onlineDescription

CoopIS 2002 paper

SOFA2ProjectHomepage

SOFA IDE

NA

NA

there is also a SOFA 2.0 component model

STATEMATE

STATEMATE is a graphical working environment, intended for the specification, analysis, design and documentation of large and complex reactive systems, such as real-time embedded systems, control and communication systems, and interactive software. It enables a user to prepare, analyze and debug diagrammatic, yet precise, descriptions of the system under development from three inter-related points of view, capturing, structure, functionality and behavior.

TSE 1990 paper

STATEMATE

NA

NA

StratusML

Stratus ML: a technology agnostic integrated modeling framework for cloud applications. Stratus ML provides an intuitive user interface that allows the cloud stakeholders (i.e., providers, developers, administrators, and financial decision makers) to define their application services, configure them, specify the applications' behaviour at runtime through a set of adaptation rules, and estimate cost under diverse cloud platforms and configurations. Moreover, through a set of model transformation templates, Stratus ML maintains consistency between the various artifacts of cloud applications. This paper presents Stratus ML and illustrates its usefulness and practical applicability from different stakeholder perspectives. A demo video, usage scenario and other relevant information can be found at the Stratus ML webpage.

IC2E 2015

StratusML

2015

TADL

An architecture description language suited for describing the architecture of trustworthy component-based systems. TADL is a uniform language for specifying the structural, functional, and nonfunctional requirements of component -based systems. It also provides a uniform source for analyzing the different trustworthiness properties.

ECSA 2008 paper

JSS 2010 paper

NA

NA

there are TRs also in Mubarak Mohammad’s homepage

UML

The Unified Modeling Language (UML) is a general-purpose, developmental, modeling language in the field of software engineering, that is intended to provide a standard way to visualize the design of a system [from Wikipedia].

UML superstructure

Multiple tools available, see here: https://en.wikipedia.org/wiki/List_of_Unified_Modeling_Language_tools

Many (see previous cell)

2016

UNAS/SALE

The Software Architects Lifecycle Environment (SALE) casetool, which is part of the Universal Network Architecture Services (UNAS) COTS product, is used to architect the set of networks, processes and tasks (and their redundancies). SALE allows for the graphical depiction of the dynamic architecture, including specification of the possible inter-task communication paths, from which the corresponding Ada source code is automatically generated.

TRI-Ada 1994 paper

SALE case tool and Rational

NA

NA

UniCon

Unicon is a general purpose ADL designed with an emphasis on generation of connectors. It is developed to support treatment of connectors as first class objects by providing for the generation of systems with explicit connectors. Unicon as a language focuses primarily on the basic component, connector, system paradigm but with an emphasis on architectural styles. Emphasis on styles simplifies generation efforts. It has a generation capability.

homepage

TSE 1995 paper

UniCon_toolset

NA

NA

WADL

Wired Application Description Language (WADL). This language describes collections of connectors that bind measurement producers and measurement consumers. To support dynamism, a WADL descriptor is capable of expressing variable sets of connectors that can be created and destroyed dynamically. These descriptors are further used by an interpreter which is responsible for managing the connectors between measurement producers and consumers as they are introduced or removed dynamically from the execution environment.

CCNC 2008 paper

NA

NA

Interesting industrial validation.

WEAVES

Using weaves for software construction and analysis. Weaves is a visual software engineering environment that allows users to construct visually programs consisting of hierarchically organized networks of components (called tool fragments) that process streams of arbitrary objects. Scaling via a zoom tool.

ICSE 1991 paper

SympVisualLanguages 1994 paper

Jacquard

NA

NA

Wright

Wright supports the specification and analysis of interactions between architectural software components.

homepage

WrightToolset

NA

NA

many industrial case studies on the web page

xADL 2.0

(xArch)

xADL 2.0 is an XML-based ADL designed to support the desription of architectures as explicit collections of components and connectors. xADL 2.0 supports aspects of structure, grouping, and configuration management through an set of XML Schemas which can be applied in whole or in part to architetcures described by it.

xADLPubs

TOSEM 2005 paper

xArch homepage

ArchStudio4

NA

NA

the explicitly say that the approach has been validated in industry

xACME

The xAcme extensions extend xArch to provide facilities for encoding Acme architectural concepts.

homepage

report 2001

AcmeStudio

NA

NA

xC2

xADL extension for representing C2 concepts. The extension is based on XML.

 HICSS 2001 paper

ArchStudio

NA

XSSA/ADL

An XML-based software security requirement architecture description language which, based on the traditional software architecture, puts forward some fundamental units, such as security component, security connector, half-security component, half-security connector, and so on. XSSRA/ADLcan describe the security architecture of software systems, but also can resolve the interaction and dependency between security requirements and other functional requirements on the architecture level of software systems.

JCRD 2005 paper

NA

NA

the paper is in Chinese

XYZ/ADL

It is a kind of ADL based on the temporal logical language XYZ/E, to describe and analyze the property and process of web services architecture (WSA), which can provide the security and liveness of system architecture by top-down stepwise refinement description method.

GCC 2005 paper

JournalofSoftware 2003 paper

NA

NA

X-MAN

X-MAN II toolset is developed by the Component-based Software Development group at the University of Manchester.

X-MAN II toolset consists of the X-MAN IDE and its extension FX-MAN. The X-MAN IDE provides a set of functionalities for component-based software development. It supports the W process which captures both component and system life cycles. The extension FX-MAN provides the capability of modelling variability in order to support constructing product families.

X-MAN II toolset is developed using Eclipse model-driven engineering. Essentially, it is EMF framework instantiated with meta-models of X-MAN component model and its extensions. Included plugins provide complete semantics of the X-MAN component model and component-based software development paradigm.

X-MAN II tool development is supported by the European funded EMC2 project and the Centre for Doctoral Training (CDT) programme at the University of Manchester.

SEAA2015

SPLC2015

ERTS2012

X-MAN II tool

YES

2015

ZETA

Interaction-based ADL intended to design the software glue that connects processlets so that their interactions can be managed at runtime.

ICEIS 2001 paper

Java implementation

NA

NA