Architecture Description Languages: An Overview Architecture Description Languages: An Overview Architecture Definition ADLs Architecture vs. Design ADLs.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Architecture Representation
OASIS Reference Model for Service Oriented Architecture 1.0
Object-Oriented Analysis and Design
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Architectural Styles. Definitions of Architectural Style  Definition. An architectural style is a named collection of architectural design decisions.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Advances in Effective Languages for Architecture Definition David Garlan Bradley Schmerl ABLE Research Group School.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Unified Modeling (Part I) Overview of UML & Modeling
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Essential Software Architecture Ian Gorton CS590 – Winter 2008.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
© Copyright Eliyahu Brutman Programming Techniques Course.
Software Architecture in Practice
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Chapter 10: Architectural Design
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Architectural Design.
What is Software Architecture?
Chapter 10 Architectural Design
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Architectural Description Languages Patrick Steyaert
An Introduction to Software Architecture
Designing a DSL for Information Systems Architecture
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
Introduction to MDA (Model Driven Architecture) CYT.
Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software engineer to: (1) analyze the.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Lecture 9: Chapter 9 Architectural Design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Chapter 13 Architectural Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
TAL7011 – Lecture 4 UML for Architecture Modeling.
Developing Component- Based Systems X LIU, School of Computing, Napier University TIP This chapter discusses the techniques to develop component-based.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Software Engineering Lecture 8 Object-Oriented Analysis.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
Architecture Description Languages
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Basic Concepts and Definitions
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-7 in the text book All lecture material through intro to.
CSCI 578 Software Architectures
Unified Modeling Language
Model-Driven Analysis Frameworks for Embedded Systems
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Chapter 20 Object-Oriented Analysis and Design
Event-Based Architecture Definition Language
Architecture Description Languages
From Use Cases to Implementation
Presentation transcript:

Architecture Description Languages: An Overview Architecture Description Languages: An Overview Architecture Definition ADLs Architecture vs. Design ADLs Considered ACME Rapide Wright Aesop Unicon UML Approaches Conclusion Architecture Definition ADLs Architecture vs. Design ADLs Considered ACME Rapide Wright Aesop Unicon UML Approaches Conclusion Tw Cook Tw Cook

Microelectronics and Computer Technology Corporation 2 2-Jul-99 Architecture – A Definition n “The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.” – from Software Architecture in Practice, Bass, Clements, and Kazman n “The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.” – from Software Architecture in Practice, Bass, Clements, and Kazman

Microelectronics and Computer Technology Corporation 3 2-Jul-99 Architecture Description Languages n The positives u ADLs represent a formal way of representing architecture u ADLs are intended to be both human and machine readable u ADLs support describing a system at a higher level than previously possible u ADLs permit analysis of architectures – completeness, consistency, ambiguity, and performance u ADLs can support automatic generation of software systems n The negatives u There is not universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture u Representations currently in use are relatively difficult to parse and are not supported by commercial tools u Most ADL work today has been undertaken with academic rather than commercial goals in mind u Most ADLs tend to be very vertically optimized toward a particular kind of analysis n The positives u ADLs represent a formal way of representing architecture u ADLs are intended to be both human and machine readable u ADLs support describing a system at a higher level than previously possible u ADLs permit analysis of architectures – completeness, consistency, ambiguity, and performance u ADLs can support automatic generation of software systems n The negatives u There is not universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture u Representations currently in use are relatively difficult to parse and are not supported by commercial tools u Most ADL work today has been undertaken with academic rather than commercial goals in mind u Most ADLs tend to be very vertically optimized toward a particular kind of analysis

Microelectronics and Computer Technology Corporation 4 2-Jul-99 Architecture vs. Design non-functional requirements (“ilities”) functional requirements (domains) Heuristic: it is necessary to go one level deeper to validate choices, so the architect has to do a high-level design to validate the partitioning Architecture: where non-functional decisions are cast, and functional requirements are partitioned Design: where functional requirements are accomplished architecture (ADL) design (UML)

Microelectronics and Computer Technology Corporation 5 2-Jul-99 Positive Effects Negative Effects Quality Attributes and Architectural Strategies n Dependability n Interoperability n Usability n Performance n Adaptability n Cost n Schedule n Dependability n Interoperability n Usability n Performance n Adaptability n Cost n Schedule n Assurance monitoring & control n Layering n Diagnostics n Pipelining n Architecture balance n Parallelism n GUI-driven n API-driven n Performance monitoring & control n Change-source hiding n COTS/reuse-driven

Microelectronics and Computer Technology Corporation 6 2-Jul-99 Common Concept of Architecture: Object Connection Architecture n Configuration consists of the interfaces and connections of an object-oriented system n Interfaces specify the features that must be provided by modules conforming to an interface n Connections represented by interfaces together with call graph n Conformance usually enforced by the programming language u decomposition - associating interfaces with unique modules u Interface conformance - static checking of syntactic rules u communication integrity - visibility between modules n Configuration consists of the interfaces and connections of an object-oriented system n Interfaces specify the features that must be provided by modules conforming to an interface n Connections represented by interfaces together with call graph n Conformance usually enforced by the programming language u decomposition - associating interfaces with unique modules u Interface conformance - static checking of syntactic rules u communication integrity - visibility between modules

Microelectronics and Computer Technology Corporation 7 2-Jul-99 An Object Connection Architecture

Microelectronics and Computer Technology Corporation 8 2-Jul-99 Object Connection Architecture n The good news u Mature development languages - C++, Ada, Java u Visual modeling and automatic code generation tools u Standardized modeling language - UML n The bad news u Modules must be built before the architecture is defined u Architecture not invariant under changes to system u Conformance of a system to an architecture is minimal u Can not be used to plan a system n Really not an architecture at all! n The good news u Mature development languages - C++, Ada, Java u Visual modeling and automatic code generation tools u Standardized modeling language - UML n The bad news u Modules must be built before the architecture is defined u Architecture not invariant under changes to system u Conformance of a system to an architecture is minimal u Can not be used to plan a system n Really not an architecture at all!

Microelectronics and Computer Technology Corporation 9 2-Jul-99 Another Concept of Architecture: Interface Connection Architecture n Expands the role of interfaces and connections u Interfaces specify both “required” and “provided” features u Connections are defined between “required” features and “provided” features n Consists of interfaces, connections and constraints u Constraints restrict behavior of interfaces and connections in an architecture u Constraints in an architecture map to requirements for a system n Expands the role of interfaces and connections u Interfaces specify both “required” and “provided” features u Connections are defined between “required” features and “provided” features n Consists of interfaces, connections and constraints u Constraints restrict behavior of interfaces and connections in an architecture u Constraints in an architecture map to requirements for a system

Microelectronics and Computer Technology Corporation 10 2-Jul-99 An Interface Connection Architecture module interface connection provides requires

Microelectronics and Computer Technology Corporation 11 2-Jul-99 Interface Connection Architecture n The Good news u Improved conformance of a system to an architecture u Architecture can be built before modules are implemented n The bad news u No emerging standard u Poor quality tools n Most ADLs implement an interface connection architecture. n The Good news u Improved conformance of a system to an architecture u Architecture can be built before modules are implemented n The bad news u No emerging standard u Poor quality tools n Most ADLs implement an interface connection architecture.

Microelectronics and Computer Technology Corporation 12 2-Jul-99 Software Architecture: ADL Perspective n The ADL community generally agrees that Software Architecture is a set of components and the connections among them. u components u connectors u configurations u constraints n The ADL community generally agrees that Software Architecture is a set of components and the connections among them. u components u connectors u configurations u constraints

Microelectronics and Computer Technology Corporation 13 2-Jul-99 ADLs Considered by MCC n Leading candidates u ACME (CMU/USC) u Rapide (Stanford) u Wright (CMU) u Unicon (CMU) n Secondary candidates u Aesop (CMU) u MetaH (Honeywell) u C2 SADL (UCI) u SADL (SRI) n Others u Lileanna u UML u Modechart n Leading candidates u ACME (CMU/USC) u Rapide (Stanford) u Wright (CMU) u Unicon (CMU) n Secondary candidates u Aesop (CMU) u MetaH (Honeywell) u C2 SADL (UCI) u SADL (SRI) n Others u Lileanna u UML u Modechart

Microelectronics and Computer Technology Corporation 14 2-Jul-99 ACMEACME n ACME was developed jointly by Monroe, Garlan (CMU) and Wile (USC) n ACME is a general purpose ADL originally designed to be a lowest common denominator interchange language n ACME as a language is extremely simple (befitting its origin as an interchange language) n ACME has no native behavioral specification facility so only syntactic linguistic analysis is possible u there are currently efforts under consideration to define a behavioral semantics for ACME, possibly along the Wright/CSP line n ACME has no native generation capability n ACME has seen some native tool development, and there are indications of more, as well as use of other language tools via interchange n ACME was developed jointly by Monroe, Garlan (CMU) and Wile (USC) n ACME is a general purpose ADL originally designed to be a lowest common denominator interchange language n ACME as a language is extremely simple (befitting its origin as an interchange language) n ACME has no native behavioral specification facility so only syntactic linguistic analysis is possible u there are currently efforts under consideration to define a behavioral semantics for ACME, possibly along the Wright/CSP line n ACME has no native generation capability n ACME has seen some native tool development, and there are indications of more, as well as use of other language tools via interchange

Microelectronics and Computer Technology Corporation 15 2-Jul-99 An ADL Example (in ACME) System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee} server.receive-request to rpc.callee}} System simple_cs = { Component client = {Port send-request} Component server = {Port receive-request} Connector rpc = {Roles {caller, callee}} Attachments : {client.send-request to rpc.caller; server.receive-request to rpc.callee} server.receive-request to rpc.callee}} client send-request server receive-request callercallee rpc

Microelectronics and Computer Technology Corporation 16 2-Jul-99 RapideRapide n Rapide was developed by Dr. David Luckham at Stanford n Rapide is a general purpose ADL designed with an emphasis on simulation yielding partially ordered sets of events (posets) n Rapide as a language is fairly sophisticated, including data types and operations n Rapide analysis tools focus on posets u matching simulation results against patterns of allowed/prohibited behaviors u some support for timing analysis u focus on causality n Rapide has some generation capability since Rapide specifications are executable n Rapide has a fairly extensive toolset n Rapide was developed by Dr. David Luckham at Stanford n Rapide is a general purpose ADL designed with an emphasis on simulation yielding partially ordered sets of events (posets) n Rapide as a language is fairly sophisticated, including data types and operations n Rapide analysis tools focus on posets u matching simulation results against patterns of allowed/prohibited behaviors u some support for timing analysis u focus on causality n Rapide has some generation capability since Rapide specifications are executable n Rapide has a fairly extensive toolset

Microelectronics and Computer Technology Corporation 17 2-Jul-99 The Rapide Model n Rapide is a concurrent, object-oriented, event-based simulation language n Defines and simulates behavior of distributed object system architectures n Produces a simulation represented by a set of events (poset) u Events are ordered with respect to time and causality n System requirements are expressed as constraints on time and concurrent patterns of events n Posets enable visualization and analysis of an execution n Rapide is a concurrent, object-oriented, event-based simulation language n Defines and simulates behavior of distributed object system architectures n Produces a simulation represented by a set of events (poset) u Events are ordered with respect to time and causality n System requirements are expressed as constraints on time and concurrent patterns of events n Posets enable visualization and analysis of an execution

Microelectronics and Computer Technology Corporation 18 2-Jul-99 The Rapide Model (cont’d) n Components execute independently n Components both observe and generate events u Each event represents the occurrence of an activity n Generates dependent events u Reactive rules in interface behaviors (i.e. transition rules) u Reactive processes in modules (i.e. when statements) u Events generated by sequential execution u Shared objects via references n Generates timed events u Interface behavior or module can be timed u Events receive start and finish times within scope of its clock u Events can be synchronized to a clock n Components execute independently n Components both observe and generate events u Each event represents the occurrence of an activity n Generates dependent events u Reactive rules in interface behaviors (i.e. transition rules) u Reactive processes in modules (i.e. when statements) u Events generated by sequential execution u Shared objects via references n Generates timed events u Interface behavior or module can be timed u Events receive start and finish times within scope of its clock u Events can be synchronized to a clock

Microelectronics and Computer Technology Corporation 19 2-Jul-99 Rapide Architectural Elements Componentscomponents connections constraints Componentsinterface architecture interface module Architecture Component

Microelectronics and Computer Technology Corporation 20 2-Jul-99 Rapide Architectural Elements (cont’d) n Components u Interface objects u Architecture that implements an interface u Module that implements an interface n Connections u Connects “sending interfaces” to “receiving interfaces” u Components communicate through connections by calling actions or functions in its own interface u Events generated by components trigger event pattern connections between their interfaces u Three types of connections: l Basic connections (A to B) l Pipe connections (A => B) l Agent connections (A ||> B) n Components u Interface objects u Architecture that implements an interface u Module that implements an interface n Connections u Connects “sending interfaces” to “receiving interfaces” u Components communicate through connections by calling actions or functions in its own interface u Events generated by components trigger event pattern connections between their interfaces u Three types of connections: l Basic connections (A to B) l Pipe connections (A => B) l Agent connections (A ||> B)

Microelectronics and Computer Technology Corporation 21 2-Jul-99 Architectural Elements (cont’d) n Constraints - Pattern u Bound execution in terms of event patterns u Appear in an interface and/or architecture definition u [label] filter_part constraint_body l Filter creates context l Constraint body constrains computation in context n Constraints - Sequential u Bound execution in terms of boolean expressions u Normally appear in module level behavior u Applied to parameters, types, objects and statements n Configuration u The architecture itself u Supports hierarchical decomposition (I.e nested architectures) u Contains components, connections, and constraints n Constraints - Pattern u Bound execution in terms of event patterns u Appear in an interface and/or architecture definition u [label] filter_part constraint_body l Filter creates context l Constraint body constrains computation in context n Constraints - Sequential u Bound execution in terms of boolean expressions u Normally appear in module level behavior u Applied to parameters, types, objects and statements n Configuration u The architecture itself u Supports hierarchical decomposition (I.e nested architectures) u Contains components, connections, and constraints

Microelectronics and Computer Technology Corporation 22 2-Jul-99 Architectural Elements (cont’d) Components provides part functions objects types in actions out actions state state transitions pattern constraints interface with no private part requires part Components action part service part Components behavior part constraint part Components private part Interface

Microelectronics and Computer Technology Corporation 23 2-Jul-99 Architectural Elements (cont’d) Components components statements Module statements connections Components initial part processes state transitions Components rule part constraints Map range domain Components final part constraints Components handlers

Microelectronics and Computer Technology Corporation 24 2-Jul-99 A Simple Specification in Rapide type Producer (Max : Positive) is interface action out Send (N: Integer); action in Reply(N : Integer); action out Send (N: Integer); action in Reply(N : Integer);behavior Start => send(0); Start => send(0); (?X in Integer) Reply(?X) where ?X Send(?X+1); (?X in Integer) Reply(?X) where ?X Send(?X+1); end Producer; type Consumer is interface action in Receive(N: Integer); action out Ack(N : Integer); action in Receive(N: Integer); action out Ack(N : Integer);behavior (?X in Integer) Receive(?X) => Ack(?X); (?X in Integer) Receive(?X) => Ack(?X); end Consumer architecture ProdCon() return SomeType is Prod : Producer(100); Cons : Consumer; Prod : Producer(100); Cons : Consumer;connect (?n in Integer) Prod.Send(?n) => Cons.Receive(?n); Cons.Ack(?n) => Prod.Reply(?n); (?n in Integer) Prod.Send(?n) => Cons.Receive(?n); Cons.Ack(?n) => Prod.Reply(?n); end architecture ProdCon; type Producer (Max : Positive) is interface action out Send (N: Integer); action in Reply(N : Integer); action out Send (N: Integer); action in Reply(N : Integer);behavior Start => send(0); Start => send(0); (?X in Integer) Reply(?X) where ?X Send(?X+1); (?X in Integer) Reply(?X) where ?X Send(?X+1); end Producer; type Consumer is interface action in Receive(N: Integer); action out Ack(N : Integer); action in Receive(N: Integer); action out Ack(N : Integer);behavior (?X in Integer) Receive(?X) => Ack(?X); (?X in Integer) Receive(?X) => Ack(?X); end Consumer architecture ProdCon() return SomeType is Prod : Producer(100); Cons : Consumer; Prod : Producer(100); Cons : Consumer;connect (?n in Integer) Prod.Send(?n) => Cons.Receive(?n); Cons.Ack(?n) => Prod.Reply(?n); (?n in Integer) Prod.Send(?n) => Cons.Receive(?n); Cons.Ack(?n) => Prod.Reply(?n); end architecture ProdCon;

Microelectronics and Computer Technology Corporation 25 2-Jul-99 WrightWright n Wright was developed by Dr. David Garlan at CMU n Wright is a general purpose ADL designed with an emphasis on analysis of communication protocols u Wright uses a variation of CSP to specify the behaviors of components, connectors, and systems l CSP - Communicating Sequential Processes - process algebra developed by C. A. R. Hoare n Wright as a language focuses primarily on the basic component/connector/system paradigm u Wright is very similar syntactically to ACME and Aesop n Wright analysis focuses on analyzing the CSP behavior specifications. u Any CSP analysis tool or technique could be used to analyze the behavior of a Wright specification n Wright does not currently have a generation capability n Wright has minimal native tool support (but CSP tools could be used) n Wright was developed by Dr. David Garlan at CMU n Wright is a general purpose ADL designed with an emphasis on analysis of communication protocols u Wright uses a variation of CSP to specify the behaviors of components, connectors, and systems l CSP - Communicating Sequential Processes - process algebra developed by C. A. R. Hoare n Wright as a language focuses primarily on the basic component/connector/system paradigm u Wright is very similar syntactically to ACME and Aesop n Wright analysis focuses on analyzing the CSP behavior specifications. u Any CSP analysis tool or technique could be used to analyze the behavior of a Wright specification n Wright does not currently have a generation capability n Wright has minimal native tool support (but CSP tools could be used)

Microelectronics and Computer Technology Corporation 26 2-Jul-99 A Simple Specification in Wright System simple_cs Component client = port send-request = [behavioral spec] spec = [behavioral spec] Component server = port receive-request= [behavioral spec] spec = [behavioral spec] Connector rpc = role caller = (request!x -> result?x ->caller) ^ STOP role callee = (invoke?x -> return!x -> callee) [] STOP glue = (caller.request?x -> callee.invoke!x -> callee.return?x -> callee.result!x -> glue) [] STOP -> glue) [] STOPInstances s : server c : client r : rpc Attachments : client.send-request as rpc.caller server.receive-request as rpc.callee end simple_cs. System simple_cs Component client = port send-request = [behavioral spec] spec = [behavioral spec] Component server = port receive-request= [behavioral spec] spec = [behavioral spec] Connector rpc = role caller = (request!x -> result?x ->caller) ^ STOP role callee = (invoke?x -> return!x -> callee) [] STOP glue = (caller.request?x -> callee.invoke!x -> callee.return?x -> callee.result!x -> glue) [] STOP -> glue) [] STOPInstances s : server c : client r : rpc Attachments : client.send-request as rpc.caller server.receive-request as rpc.callee end simple_cs.

Microelectronics and Computer Technology Corporation 27 2-Jul-99 AesopAesop n Aesop was developed by Dr. David Garlan at CMU n Aesop is a general purpose ADL emphasizing architectural styles u Aesop is also a toolset and a framework n Aesop the ADL is very similar to ACME/Wright u Emphasis on styles reflected in more sophisticated hierarchical facilities centered around subtyping and inheritance n Wright analysis focuses on analyzing the CSP behavior specifications. u Any CSP analysis tool or technique could be used to analyze the behavior of a Wright specification n Aesop does have limited generation capability for some styles n Interchange facilities to and from Aesop via ACME exist and have been used to make Aesop editing tools available to other ADLs, notably Wright n Aesop was developed by Dr. David Garlan at CMU n Aesop is a general purpose ADL emphasizing architectural styles u Aesop is also a toolset and a framework n Aesop the ADL is very similar to ACME/Wright u Emphasis on styles reflected in more sophisticated hierarchical facilities centered around subtyping and inheritance n Wright analysis focuses on analyzing the CSP behavior specifications. u Any CSP analysis tool or technique could be used to analyze the behavior of a Wright specification n Aesop does have limited generation capability for some styles n Interchange facilities to and from Aesop via ACME exist and have been used to make Aesop editing tools available to other ADLs, notably Wright

Microelectronics and Computer Technology Corporation 28 2-Jul-99 UniconUnicon n Unicon was developed by Dr. Mary Shaw at CMU n Unicon is a general purpose ADL designed with an emphasis on generation of connectors u Unicon developed to support treatment of connectors as first class objects by providing for the generation of systems with explicit connectors n Unicon as a language focuses primarily on the basic component/connector/system paradigm but with an emphasis on architectural styles u Emphasis on styles simplifies generation efforts n Unicon has a generation capability n Unicon was developed by Dr. Mary Shaw at CMU n Unicon is a general purpose ADL designed with an emphasis on generation of connectors u Unicon developed to support treatment of connectors as first class objects by providing for the generation of systems with explicit connectors n Unicon as a language focuses primarily on the basic component/connector/system paradigm but with an emphasis on architectural styles u Emphasis on styles simplifies generation efforts n Unicon has a generation capability

Microelectronics and Computer Technology Corporation 29 2-Jul-99 Others … n MetaH u Developed by Honeywell, a domain specific ADL aimed at guidance, navigation, and control applications with ControlH u Sophisticated tool support available n C2 SADL u Developed by Taylor/Medvidovic (UCI), style specific ADL, emphasis on dynamism u Still in prototype stage n SADL u Developed by Moriconi and Riemenschneider (SRI), emphasis on refinement mappings n MetaH u Developed by Honeywell, a domain specific ADL aimed at guidance, navigation, and control applications with ControlH u Sophisticated tool support available n C2 SADL u Developed by Taylor/Medvidovic (UCI), style specific ADL, emphasis on dynamism u Still in prototype stage n SADL u Developed by Moriconi and Riemenschneider (SRI), emphasis on refinement mappings

Microelectronics and Computer Technology Corporation 30 2-Jul-99 UML as an ADL n The Positive u lowers entry barrier, mainstreams modeling, tools n Shortcomings of UML as an ADL u Weakly integrated models with inadequate semantics for (automated) analysis u Connectors are not first class objects u Visual notation with little generation support, hidden and ambiguous relationships between views, both too much and too little n The Positive u lowers entry barrier, mainstreams modeling, tools n Shortcomings of UML as an ADL u Weakly integrated models with inadequate semantics for (automated) analysis u Connectors are not first class objects u Visual notation with little generation support, hidden and ambiguous relationships between views, both too much and too little

Microelectronics and Computer Technology Corporation 31 2-Jul-99 Approaches to Architecture Academic Approach n focus on analytic evaluation of architectural models n individual models n rigorous modeling notations n powerful analysis techniques n depth over breadth n special-purpose solutions Academic Approach n focus on analytic evaluation of architectural models n individual models n rigorous modeling notations n powerful analysis techniques n depth over breadth n special-purpose solutions Industrial Approach n focus on wide range of development issues n families of models n practicality over rigor n architecture as the “big picture” in development n breadth over depth n general-purpose solutions Source: N. Medvidovic, USC MCC’s role

Microelectronics and Computer Technology Corporation 32 2-Jul-99 ConclusionsConclusions n There is a rich body of research to draw upon n Much has been learned about representing and analyzing architectures n Effort is needed now to bring together the common knowledge and put it into practice n There is a rich body of research to draw upon n Much has been learned about representing and analyzing architectures n Effort is needed now to bring together the common knowledge and put it into practice

Microelectronics and Computer Technology Corporation 33 2-Jul-99 For More Information n ACME: n ACME: n Rapide: n Rapide: n Wright: n Wright: index.html index.html n Aesop: n Aesop: aesop_home.html aesop_home.html n Unicon: n Unicon: ndex.html ndex.html n C2 SADL: n C2 SADL: n SSEP: n SSEP: n ADML: n ADML: A possibly more current version of this presentation can be found at: A possibly more current version of this presentation can be found at: n ACME: n ACME: n Rapide: n Rapide: n Wright: n Wright: index.html index.html n Aesop: n Aesop: aesop_home.html aesop_home.html n Unicon: n Unicon: ndex.html ndex.html n C2 SADL: n C2 SADL: n SSEP: n SSEP: n ADML: n ADML: A possibly more current version of this presentation can be found at: A possibly more current version of this presentation can be found at: