Architecture Description Languages Gayatri Rajamani
Software Architecture-Definition According to Shaw , the software architecture of a system is an abstract representation of the system’s components, their interfaces, and constraints on the system.
Software Architecture-A model Shaw and Garlan present a model of architecture based on three abstractions: Components :- independent units of computation. Connectors :- interactions among components. Configurations :- instance of architectural description represented as a graph of connectors and components.
Why Architecture Description Languages? Architectural descriptions were often informal and ad hoc. As a result: Architectural designs were not always properly understood as it was highly ambiguous. The constraints assumed (i.e. the architectural constraints) in the initial design were not enforced (sometimes) as the system evolves.
Why Architecture Description Languages? Very few tools available to help the architectural designers. To address these problems, ADLs were introduced.
Precursor to ADL Module Interconnection Language Describe system in terms of relation between modules by Definition/use relationships Import/export relationships + Well defined module-interfaces + Separate compilation - Inadequate for architectural description - Provide only low-level view of interconnection between components
What is ADL ??? Architecture description languages (ADLs) are formal languages that can be used to represent the architecture of a software system.
MILs vs ADLs MILS only describe the structure of an implemented system. ADLs are used to define and model system architecture prior to system implementation.
Elements of ADL Components Connectors Abstraction Primitive building blocks Connectors Mechanisms of combining components Abstraction Rules for referring to the combination of components and connectors
Important Properties of ADL Composition – composition of independent components and connections Abstraction – need to describe design elements clearly and explicitly Reusability – ability to reuse components, connectors in different architectural descriptions
Important Properties of ADL Configuration – ability to understand and change the architectural structure Heterogeneity – ability to combine multiple, heterogeneous architectural descriptions Analysis - possible to perform rich and varied analysis of architectural description
Types Of ADLs ACME Rapide Wright Unicon Aesop MetaH Lileanna
Example of a component in ADL
Disadvantages of ADL Current ADLs designed only for special purpose. Tool support for ADL is poor No universal agreement on what ADLs should represent
UML as ADL ??? Advantages Various diagrams to represent the dynamic behavior of the system Class Diagrams and package diagrams offer the concepts of modular programming Deployment diagrams may be used to define mapping of logical software objects onto hardware components
UML as ADL ??? Disadvantages UML notations are less formal than ADL is. The concept of connectors, fundamental to ADL does not exist in UML.
Future of ADL Infrastructure to develop ADLs Integration of ADL information with other life-cycle products
Thank You!!!!!
References: D.Garlan and M.Shaw “ An Introduction to software architecture” . In V.Ambriola and G.Tortara, editors. Advances in software engineering and knowledge engineering. World scientific publishing company, 1993. D.Garlan and M.Shaw “Software architecture Perspectives on an emerging discipline”. Prentice Hall,Upper Saddle River http://www.sei.cmu.edu/str/descriptions/adl.html