1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language –http://www.cs.cmu.edu/~acme/docs/ CMU and ISI Extensible Tool support –AcmeStudio.

Slides:



Advertisements
Similar presentations
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Advertisements

Architecture Representation
SOAP.
Modeling the Architecture
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
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.
Π-Method: A Model-Driven Formal Method for Architecture- Centric Software Engineering By Flavio Oquendo Presented by: Sajith Wickramaratne.
Introduction to UML Visual modeling Models and its importance
CS189A/172 - Winter 2008 Lecture 7: Software Specification, Architecture Specification.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Page 1 Building Reliable Component-based Systems Chapter 4 - Component Models and Technology Chapter 4 Component Models and Technology.
Common Mechanisms in UML
Course Instructor: Aisha Azeem
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.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Architectural Design.
Architectural Description Languages Patrick Steyaert
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
Architecture Description Languages: An Overview Architecture Description Languages: An Overview Architecture Definition ADLs Architecture vs. Design ADLs.
2000 Advanced OOSA State of the Art on Software Architecture Declarative Meta Programming Session 2: Software Architecture Nantes,
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.
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.
Chapter 6 - Modeling Eduardo Felipe Zecca da Cruz.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Paper written by Flavio Oquendo Presented by Ernesto Medina.
A language to describe software texture in abstract design models and implementation.
Chapter 6 Architectural Design.
CHAPTER 6 - MODELING ANH AU. BACKGROUND Architectural model – an artifact that captures some or all of the design decisions that comprise a system’s architecture.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Secure Systems Research Group - FAU SW Development methodology using patterns and model checking 8/13/2009 Maha B Abbey PhD Candidate.
Architectural Point Mapping for Design Traceability Naoyasu Ubayashi and Yasutaka Kamei Kyushu University, Japan March 26, 2012 FOAL 2012 (AOSD Workshop)
Advances in Effective Languages for Architecture Definition David Garlan Bradley Schmerl ABLE Research Group School.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
User Profiling using Semantic Web Group members: Ashwin Somaiah Asha Stephen Charlie Sudharshan Reddy.
CSCI 578 Software Architectures Exam #1 Review. Materials you are responsible for Chapters 1-8 in the text book All lecture material up to but not including.
©Silberschatz, Korth and Sudarshan10.1Database System Concepts W3C - The World Wide Web Consortium W3C - The World Wide Web Consortium.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
Design-Directed Programming Martin Rinard Daniel Jackson MIT Laboratory for Computer Science.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
2) Database System Concepts and Architecture. Slide 2- 2 Outline Data Models and Their Categories Schemas, Instances, and States Three-Schema Architecture.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
An Object-Z / CSP Based Approach for the Specification of Architectural Connectors Mourad Maouche Philadelphia University Jordan Mohamed Bettaz MESRS Algeria.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
XML and Distributed Applications By Quddus Chong Presentation for CS551 – Fall 2001.
Jackson, Web Technologies: A Computer Science Perspective, © 2007 Prentice-Hall, Inc. All rights reserved Chapter 9 Web Services: JAX-RPC,
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Chapter 9 Architectural Design. Why Architecture? The architecture is not the operational software. Rather, it is a representation that enables a software.
1 A Multi-Paradigm Approach to Describe Software Systems presented by Adel Smeda.
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.
Architecture Description Languages State of the Art on Object- Oriented Software Architecture.
CSCI 578 Software Architectures
Software Design and Architecture
CHAPTER 2 CREATING AN ARCHITECTURAL DESIGN.
CSCI 578 Software Architectures
Chapter 20 Object-Oriented Analysis and Design
UML profiles.
Chapter 9 Architectural Design.
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 6
CSCI 578 Software Architectures
Presentation transcript:

1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio - Graphical editor –AcmeLib - API (Java, C++) –AcmeWeb - document generator

2 5/18/2007ã 2007, Spencer Rugaber Features Architecture ontology –Semantic elements of the language Extension mechanism (properties) –Supports externally defined sublanguages Type mechanism –For defining common elements and styles Open semantic framework –To support automated reasoning

3 5/18/2007ã 2007, Spencer Rugaber Ontology Components –Computational elements and data stores Connectors –Communication and coordination Ports –Component interfaces possibly including protocols Roles –Connector interfaces Systems –Configurations of components and connectors –Specified via attachments Representations –For hierarchical decomposition and multiple views Rep-maps –Specifies correspondence between levels of refinement

4 5/18/2007ã 2007, Spencer Rugaber Example 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; } }

5 5/18/2007ã 2007, Spencer Rugaber Representations Explicit way of indicating structural refinement Element may have more than one representation –Different views –Alternative decompositions Parent element acts as a signature What properties must a refinement have in order to adequately express its parent?

6 5/18/2007ã 2007, Spencer Rugaber Rep-Map Rep-Map (abstraction map) associates abstract component description with the detailed representation –Binding list mechanism for representing this abstraction –For example, component binding provides a way of associating a port on a component with some port within the representation Note that Acme does not define the precise nature of the relationship between an "outer" and an "inner" port/role

7 5/18/2007ã 2007, Spencer Rugaber Example Representation Component theComponent = { Port easyRequests; Port hardRequests; Representation { System details = { Component fastButDumbComponent = { Port p; }; Component slowButSmartComponent = { Port p; }; }; Bindings { easyRequests to fastButDumbComponent.p; hardRequests to slowButSmartComponent.p };

8 5/18/2007ã 2007, Spencer Rugaber Properties Extension mechanism for ADL-specific tools Parsed but uninterpreted by Acme itself Example uses –Data types on ports/roles –Interaction protocols –Scheduling constraints –Resource consumption Property sublanguages –Visualization properties For tools displaying architectural views –Temporal constraints

9 5/18/2007ã 2007, Spencer Rugaber Properties Example System simple_cs = { Component client = { Port send-request: Properties { Aesop-style : style-id = client-server; UniCon-style : style-id = cs; source-code : external = "CODE-LIB/client.c"}} Component server = { Port receive-request: Properties { idempotence: boolean = true; max-concurrent-clients : integer = 1; source-code : external = "CODE-LIB/server.c"}} Connector rpc = { Roles {caller, callee} Properties { synchronize : boolean = true; max-roles : integer = 2; protocol : Wright = "…"}} Attachments { client.send-request to rpc.caller; server.receive-request to rpc.callee} }

10 5/18/2007ã 2007, Spencer Rugaber Other Acme Features Semantic framework –Conversion of Acme models into predicates Types –For checking and abstraction (Families) Generics

11 5/18/2007ã 2007, Spencer Rugaber Semantic Framework Ability to formally reason about Acme descriptions exists client, server, rpc | component(client) ^ component(server) ^ connector(rpc) ^ attached(client.send- request,rpc.caller) ^ attached(server.receive- request,rpc.callee)

12 5/18/2007ã 2007, Spencer Rugaber Family A family provides a way of describing a set of similar architectures –Architectural style Element types that make up the vocabulary of the family Set of rules encoded as properties, for using the family

13 5/18/2007ã 2007, Spencer Rugaber Example Family Family PipesAndFiltersFam = { Component Type FilterT = {}; Connector Type PipeT = {}; }; System APFSystem : PipesAndFiltersFam = { Component filter1 : FilterT = new FilterT; Component filter2: FilterT = new FilterT; Connector pipe : PipeT = new PipeT;... };

14 5/18/2007ã 2007, Spencer Rugaber Modeling Steps Identify concepts that map to Acme –System, components, connectors, ports, role, representation Define property types and use them to augment the System description If appropriate define and use a family aggregating those types

15 5/18/2007ã 2007, Spencer Rugaber Acme Limitations No model for behavior No model for functional properties No direct way of mapping to code In general, no semantics at all