560 likes | 1.14k Views
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.
E N D
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 • 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
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
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