Architecture description language

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Different communities use the term architecture description language. Two important communities are:

In the software engineering community, an Architecture Description Language (ADL) is a computer language used to describe software and/or system architectures. This means in case of technical architecture, the architecture must be communicated to software developers. With functional architecture, the software architecture is communicated with stakeholders and enterprise engineers. By the software engineering community several ADLs have been developed, such as Acme (developed by CMU), AADL (standardized by SAE), C2 (developed by UCI), Darwin (developed by Imperial College London), and Wright (developed by CMU).

The enterprise modelling and engineering community have also developed architecture description languages catered for at the enterprise level. Examples include ArchiMate (now an Open Group standard), DEMO, ABACUS (developed by the University of Technology, Sydney) etc. These languages do not necessarily refer to software components, etc. Most of them, however, refer to an application architecture as the architecture that is communicated to the software engineers.

Most of the writing below refers primarily to the perspective from the software engineering community.

Contents

[edit] Introduction

The following reasons would be better served if there were a standard notation (ADL) for representing architectures:

Architectures in the past were largely represented by box-and-line drawing. The following things are usually defined in such a drawing:

ADLs result from a linguistic approach to the formal representation of architectures, and as such they address its shortcomings. Also important, sophisticated ADLs allow for early analysis and feasibility testing of architectural design decisions.

[edit] Characteristics

There is a large variety in ADLs developed by either academic or industrial groups. Many languages were not intended to be an ADL, but they turn out to be suitable for representing and analyzing an architecture. In principle ADLs differ from:

The following list is a minimal set of requirements for a language to be an ADL. The languages must :

ADLs have in common:

ADLs differ in their ability to:

Positive elements of ADL

Negative elements of ADL

Common concepts of architecture

The ADL community generally agrees that Software Architecture is a set of components and the connections among them. But there are different kind of architectures like :

Object Connection Architecture

Interface Connection Architecture

Most ADLs implement an interface connection architecture.

[edit] Architecture vs. design

So what is the difference between architecture and design? Architecture casts non-functional decisions and partitions functional requirements, whereas design is a principle through which functional requirements are accomplished. The process of defining an architecture may use heuristics or iterative improvements; this may require going a level deeper to validate the choices, so the architect often has to do a high-level design to validate the partitioning.

[edit] Examples

Below the list gives the candidates for being the best ADL until now

[edit] Approaches to architecture

Approaches to Architecture

[edit] Conclusion

[edit] See also

[edit] References and external links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages