A Study on Architecture Description Languages
VIETNAM NATIONAL UNIVERSITY, HANOI UNIVERSITY OF ENGINEERING AND TECHNOLOGY ====== STUDENT SCIENTIFIC RESEARCH CONTEST Year: 2012 Research name: A Study on Architecture Description Languages Student name: Pham Van Quy Gender: Male Class: QH-2008-I/CQ-CA Faculty: Computer Science Supervisor: Dr.Vo Dinh Hieu 1 PROJECT SUMMARY Architecture Description Languages (ADLs) are formal languages that widely used to describe and represent architectures of software systems. During a grand development process, many ADLs have been born, such as Wright, xADL, ACME, Aesop, Rapide, UML, etc. Almost these ADLs are developed in famous universities all over the world, and they are still under researching to improve to become better and more popular. My study on this subject includes researching on ADLs, a deeper studying into one language, and a demonstration on modeling a system architecture. In this report, I am going to summary my researches on ADLs, which include ADLs definition, ADLs properties and introducing some popular languages. Next part is presenting my deeper researches on one languages. I have chosen ACME – an architecture description language developed by Carnegie Mellon University – to study its semantic, structure, and syntax. Besides studying its theories, I also use ACME to model a system and demonstrate results with support of ACME complier tool - ACME Studio. 2 TABLE OF CONTENTS I. INTRODUCTION 4 1. Introduction 4 2. Research purpose 4 3. Report structure 4 II. ARCHITECTURE DESCIPTION LANGUAGES 5 1. Definition 5 2. ADLs in describe system architecture 6 3. Introduce some common language of ADLs 7 III. ACME 8 1. Definition 8 2. ACME design element types 8 3. ACME syntax and visualization 10 3.1 Syntax 10 3.2 Visualization 11 4. Some evaluation of ACME 12 IV. MODELING WITH ACME 13 1. Student-Course System 14 1.1 Problem definition 14 1.2 Architecture source code 15 2. Building ADL model in ACME 18 2.1 Defining Family 18 2.2 Modeling top-level architecture 18 2.3 Modeling second-level architecture 20 2.4 Final model 21 V. CONCLUSION AND FUTURE WORKS 23 VI. REFERENCES 23 3 LIST OF FIGURES Figure 1: Elements of an ACME description 9 Figure 2: Representations and Properties of a Component 10 Figure 3: Simple Client-Server system in ACME 10 Figure 4: Example illustrate ACME supports hierarchy. Hierarchical 11 Figure 5: ACME visualization – ACME Studio 12 Figure 6: Top-level architecture for Student-Course System 14 Figure 7: Student-Course System with ownership domain annotations 16 Figure 8: Ownership Object Graph for Student-Course System 17 Figure 9: Starting new project with Tiered Family type 18 Figure 10: Top-level model of Student-Course System 19 Figure 11: Source code editor of ACME Studio 19 Figure 12: Call-return connection 19 Figure 13: Representation of Logic component 20 Figure 14: Two representation of lock and log component 20 Figure 15: Representation of Data component 21 Figure 16: Student-Course System represented in ACME ADL model 22 4 I. INTRODUCTION 1. Introduction Architecture Description Languages (ADLs) are formal languages that widely used to describe and represent architectures of software systems. An architecture plays several roles in project development, all of them are important, and all of them facilitated by a formal representation of the architecture, such as with an ADL. A formal architecture representation is more likely to be maintained and followed than an informal one, can more readily be consulted and treated as authoritative, and can more easily be transferred to other projects as a core asset. My study on this subject includes researching on ADLs, a deeper studying into one language, and a demonstration on modeling a system architecture. In fact, many ADLs have been developed by the academic and industrial communities, and each of them is varied color in the big picture of ADLs. For a deeper research, I have chosen ACME – an architecture description language developed by Carnegie Mellon University – to study its semantic, structure, syntax, and use ACME to model a software system with support of its complier tool - ACME Studio [2] . 2. Research purposes For long years development of ADLs, there has been researching from many universities on this field. However, almost grand universities works on this subject have developed new languages on their own. As a result, there are many languages born but they all have limited number of papers and tutorials, especially ACME. By researching on this subject, on one hand I want to expand my knowledge on a very interesting field of software engineering; on the other hand, in case my researches have good results, I can go on with publishing my researches. This can help increasing resources for ADLs and ACME somehow. 3. Report structure The rest of the report has following structure: II. ARCHITECTURE DESCRIPTION LANGUAGES 1. Definition 2. ADLs in describe system architecture 5 3. Introduce some common language of ADLs III. ACME 1. Definition 2. ACME design element types 3. ACME syntax and visualization 3.1 Syntax 3.2 Visualization 4. Some evaluation of ACME IV. MODELING WITH ACME 1. Student-Course System 1.1 Problem definition 1.2 Architecture source code 2. Building ADL model in ACME 2.1 Defining Family 2.2 Modeling top-level architecture 2.3 Modeling second-level architecture 2.4 Final model V. CONCLUSION AND FUTURE WORKS VI. REFERENCES II. ARCHITECTURE DESCRIPTION LANGUAGES 1. Definition Different communities use the term architecture description language. In the system engineering community, an Architecture Description Language (ADL) is a language and/or conceptual model used to describe and represent system architectures. In the software engineering community, an Architecture Description Language (ADL) is a specialized computer languages for explicit modeling and analysis of software architecture. ADL play an important role in software development. ADL can be viewed as a platform designed for formal specification of software components. It is well-suited 6 for many purposes, such as design, document, implement and test software components. 2. ADLs in describe system architecture Architecture description languages (ADLs) are widely used to describe system architectures. The output of the architecture description process is the system architecture documents. This consists of a number of graphical representations of the system model along with associated descriptive text. It should describe how the system is structured into sub-system and how each sub-system is structured into components. Each component is described based on many properties such as behavior. As others architecture model languages, ADLs have their own positive and negative elements: Positive elements of ADL ADLs represent a formal way of representing architecture. ADLs are intended to be both human and machine readable. ADLs support describing a system at a higher level than previously possible. ADLs permit analysis of architectures – completeness, consistency, ambiguity, and performance. ADLs can support automatic generation of simulations / software systems. Negative elements of ADL There is not universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture. Representations currently in use are relatively difficult to parse and are not supported by commercial tools. Most ADLs tend to be very vertically optimized toward a particular kind of analysis. Most ADL work today has been undertaken with academic rather than commercial goals in mind. In fact, most of ADLs is developed under academic researches; as a result, ADLs has many restrictions in real project working. In case of UML, it has been 7 developed under commercial purpose and has become a famous language in software designing. 3. Introduce some common language of ADLs ACME The Acme project began in early 1995, by Carnegie Mellon University, with the goal of providing a common language that could be used to support the interchange of architectural descriptions between a variety of architectural design tools. Recently, Acme started back as an ADL interchange language but has evolved to an ADL itself. ACME has advantages of general notation, readable by both human and machine, and a strong support of ACME Studio – an well editor and visualization tool. xADL xADL 2.0 is a software architecture description language (ADL) developed by the University of California, Irvine for modeling the architecture of software systems. Unlike many other ADLs, xADL 2.0 is defined as a set of XML schemas. This gives xADL 2.0 high extensibility and flexibility, as well as basic support from the many available commercial XML tools xADL is based on xArch - standard, extensible XML-based representation for software architectures. UML as an ADL Unified Modeling Language (UML) is formal graphical language considered a de facto industrial stand. Although the language has been created as graphical language firstly to support object-oriented software analysis and design, the language has been revised couple of times and today, it is a general formal language capable to describe a software system. The UML has well defined formal syntax and semantics and can be machine checked and processed. UML includes a set of graphical notation techniques to create abstract models of specific systems. Wright 8 Wright is an architecture description language developed at Carnegie Mellon University. Wright language focuses on modeling and analysis (specifically, deadlock analysis) of the dynamic behavior of concurrent systems. Rapide Rapide (developed by Stanford University) is designed to support component-based development of large, multi-language systems by utilizing architecture definitions as the development framework. There is no best or suggested language. Different architectural description languages represent different features and concept of the overall component architectural design problem. Therefore, specification a system with varied evaluation concept by single ADL still is a unsolved problem. III. ACME 1. Definition ACME defined as “a simple, generic software architecture description language 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”. Acme started back in 1995 as an ADL interchange language [4] but has evolved to an ADL itself. 2. ACME design element types ACME is built on a core ontology of seven types of entities for architectural representation: components, connectors, systems, ports, roles, representations and rep-maps. Of the seven types, the most basic elements of architectural description are component, connector and system. - Components: Components are the basic building blocks in an Acme description of a system. They represent centers of computation: the elements of a system responsible for doing the "work" in a system. Components may be used to model both hardware and software or provide an abstraction that may be 9 mapped to either hardware, software or a combination. Intuitively, components correspond to the "boxes" in box and line diagrams. Typical examples of components include such things as clients, servers, filters, objects, blackboards, and databases. - Connectors: Connectors represent interactions among components. Informally they provide the ''glue'' for architectural designs, and intuitively, they correspond to the lines in box-and-line descriptions. Examples include simple forms of interaction, such as pipes, procedure call, and event broadcast. But connectors may also represent more complex interactions, such as a client-server protocol or a SQL link between a database and an application. - Systems: Systems in ACME is assembled from a set of components and connectors. They also represent configurations of components and connectors. - Representations: Representations are used to further describe an element in terms of the Acme system construct. This description may correspond to an alternative architectural view of an element or a more detailed decomposition of an element into a sub-system. Figure 1: Elements of an ACME description Besides core elements, Properties is also an important element of ACME. To accommodate the wide variety of addition information ACME supports annotation of architectural structure with list of properties. Each property has a name, an optional [...]... Analysis of Federates and Federation Architectures [11] Ahmad Waqas Kamal, Paris Avgeriou - An Evaluation of ADLs on Modeling Patterns for Software Architecture [12] Marwan Abi-Antoun, Jonathan Aldrich - Checking and Measuring the Architectural Structural Conformance of Object-Oriented Systems [13] David Garlan, Robert T.Monroe, David Vile – ACME: Architectural Description of Component-based System ... Hierarchical Representations of Runtime Object Graphs [8] Ohjelmistotuotannon teoria, Jukka Harkki - Architecture Description Languages ADL [9] Andreas Grau, Basem Shihada, Mohamed Soliman - Architectural Description Languages and their Role in Component Based Design [10] Frederic D McKenzie, Mikel D Petty, Qingwen Xu - Usefulness of Software Architecture Description Languages for Modeling and Analysis... elements In addition, ACME studio provides visualization support to view pattern elements at both abstract and detail level Figure 5: ACME visualization – ACME Studio 4 Some evaluation of ACME Evaluating on four concepts - syntax, visualization, variability, extensibility; architectural description language ACME shows both of its strengths and weaknesses Evaluation on syntax (expressing pattern elements,...10 type, and a value Any elements in ACME can have properties belong with it Here is an example illustrate diagram of Properties and Representations: Figure 2: Representations and Properties of a Component 3 ACME syntax and visualization Since ACME has developed its own library and tool support, ACME can be viewed in both source code and visual model diagram ACME source code has a simple and easy to... wikipedia [4] David Garlan, Robert Mornoe and David Wile - ACME: An Architecture Description Interchange Language [5] http://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock – Reader/Writer Lock Wikipedia 24 [6] Paul Clements, David Garlan, Paulo Merson – Documenting Software Architectures: View and Beyond [7] Marwan Abi-Antoun, Jonathan Aldrich - Tool Support for the Static Extraction of Sound Hierarchical... constraints and configuration of components and connectors): 13 Besides the core ontology of seven basic architecture design elements, ACME provides a template mechanism, which can be used for abstracting common reusable architectural idioms and patterns This can be a positive element of ACME Using templates and styles help ACME reduces redundant code and increases reusable abilities Evaluation on. .. annotation structure : 16 Figure 7: Student-Course System with ownership domain annotations Explain figure: The top-level class Main (line 22) declares three domains: USER, LOGIC, DATA which corresponding to Client, Controller, and Database Class Data is declared (line 6) with a connection opened for Logic element: class Data Class Data also implements interface IData Inside class Data, a. .. processing and be easy to use In addition, ACME studio provides visualization support to view pattern elements at both abstract and detail level For instance, a selected component can be easily expanded to view its internal structure by one mouse click Evaluation on variability (the ability to express not only individual solutions but the entire space of solution variants): One weakness of ACME is lack... visualization (graphical representation for modeling patterns): ACME has the advantage that with the introduction of ACME studio, which is an extension to Eclipse, it provides explicit visualization support to model specific patterns It’s the truth that ACME Studio is a strong visualization tool, comparing to other current visualization tool of others ADLs ACME Studio has a good user interface, fast... there are three connectors: 20 one links from Client to Logic, one links from Logic to Data, and one links from Data to Logic 2.3 Modeling second-level architecture In second-level architecture, interfaces and inner components of Logic and Data components will be presented Interfaces of a classes are presented as encapsulated domain inside components In ACME, they are called representation Representation . UNIVERSITY OF ENGINEERING AND TECHNOLOGY ====== STUDENT SCIENTIFIC RESEARCH CONTEST Year: 2012 Research name: A Study on Architecture Description Languages Student name: Pham Van