Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.

Slides:



Advertisements
Similar presentations
Architecture Representation
Advertisements

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
Copyright © 2012 Pearson Education, Inc. Publishing as Prentice Hall A.1.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Applying Architectural Styles and Patterns. Outline  Defining Architectural Patterns and Style The activation model Styles and Quality Attributes  Common.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Advances in Effective Languages for Architecture Definition David Garlan Bradley Schmerl ABLE Research Group School.
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Agenda Architectural Styles The Alfa Project Architectural framework.
21-February-2003cse Architecture © 2003 University of Washington1 Architecture CSE 403, Winter 2003 Software Engineering
Unified Modeling (Part I) Overview of UML & Modeling
Demystifying Architectural Styles Nikunj Mehta 3/11/02Demystifying Architectural Styles2 Architectural Styles Characterize –Structure, i.e. external.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
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.
Documenting Software Architectures
Design and Architecture of Complex Software Systems Conf.dr.ing. Ioana Şora
An Introduction to Software Architecture
1 5/18/2007ã 2007, Spencer Rugaber Software Architecture (Informal Definition) The organization of a system into component subsystems or modules Box and.
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.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
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.
Unified Modeling Language, Version 2.0
Ævol : A Tool for Planning Architecture Evolution David Garlan & Bradley Schmerl Carnegie Mellon University.
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
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.
An Object-Z based Metamodel for Wright Joint work with M. Maouche 2, and M. Mosteghanemi 1 Presented by M. Bettaz 1 1 MESRS/ESI Algeria 2 Philadelphia.
An Ontological Framework for Web Service Processes By Claus Pahl and Ronan Barrett.
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
Documenting Software Architectures 1.Uses and Audiences for Architecture Documentation Architecture documentation serves as a means of education Architecture.
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Presented By Riyadh Mahmood 3/2/2010 Software Architecture Styles for Network-based Applications Original Paper by: Roy T. Fielding.
Csci 490 / Engr 596 Special Topics / Special Projects Software Design and Scala Programming Spring Semester 2010 Lecture Notes.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
1 Unified Modeling Language, Version 2.0 Chapter 2.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Wright ADL Liz White INFT Software Architecture.
Software Architecture-Definition According to Shaw [1], the software architecture of a system is an abstract representation of the system’s components,
1 Abstract Model Specification. 2 Explicitly describes behavior in terms of a model using well-defined types (viz. set, sequences, relations, functions)
1 5/18/2007ã 2007, Spencer Rugaber Acme Architectural interchange language – CMU and ISI Extensible Tool support –AcmeStudio.
Slide 1 Lecture 15 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Formal Verification. Background Information Formal verification methods based on theorem proving techniques and model­checking –To prove the absence of.
Basic Concepts and Definitions
CS223: Software Engineering Lecture 13: Software Architecture.
Engr 691 Special Topics in Engineering Science Software Architecture Spring Semester 2004 Lecture Notes.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Diagrams. Typically, we view the static parts of a system using one of the four following diagrams. 1. Class diagram 2. Object diagram 3. Component diagram.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
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.
Analysis Classes Unit 5.
CSCI 578 Software Architectures
Chapter 11 Object-Oriented Design
OO Methodology OO Architecture.
Design and Architecture of Complex Software Systems
Informatics 121 Software Design I
Logical architecture refinement
Appendix A Object-Oriented Analysis and Design
Architecture Description Languages
An Introduction to Software Architecture
Paper written by Flavio Oquendo Presented by Ernesto Medina
Appendix A Object-Oriented Analysis and Design
Architectural Mismatch: Why reuse is so hard?
From Use Cases to Implementation
Presentation transcript:

Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman

Deficiencies of Architectural Design Specifications Common practices in representing software architecture luck an ability to: Express architectural descriptions precisely and unambiguously Establish criteria for soundness and consistency of architectural designs Analyze designs to determine implied properties Apply and enforce design patterns Guarantee that system implementation is consistent with its architectural design

Modeling Architectural Structures There are three distinctive views that describe architectural design, each exposing certain aspect of the system: 1. Coding structures views (modules, packages, classes and relationships between them) 2. Run-time structures or component and connector views (databases, clients, servers, and connectors indicating communication ways) 3. Allocation structures views (deployment and work break down structures)

Elements of Components and Connectors view Components model principal run-time elements that have a set of ports Ports model component’s interfaces through which component interacts with other components via connectors Connectors model the pathways of communication between components and have a set of roles Roles model the specifications of behavior requires of the components that use a given connector

Example of Component and Connector (C&C) Model in Acme ADL Simple-cs system consist of a single client and a single server, interacting through rpc based connector In this representation we can analyze our C&C model to see if there are any unattached roles or ports, name collisions and etc.

Modeling Architectural Properties in Acme ADL Properties are name-value pairs that can be associated with any architectural element: component, port, connector Sync-request port property indicates if rpc-request port is synchronous or asynchronous, max-transactions-per-second and max-clients-supported component properties indicate maximum properties of server component and protocol property of rpc connector indicates the name of the communication protocol

Example of Modeling Architectural Properties in Acme Studio Clients queue request for database through set of servers Using arrival rate, average service time and degree of server replication properties analysis tool calculates average service utilization, queue length and response time. It determined that one of the servers is overloaded

Modeling Architectural Behavior Which is reading and writing end of the pipe? Is writing syncronous? What if F2 tries to read and the pipe is empty? Does it wait for input? Can F1 choose to stop writing? Can F2 choose to stop reading? Can F1 close and reopen the pipe? Can F1 write indefinetey if F2 never reads from pipe?

Modeling Architectural Behavior in Wright specification language Events model architecturally relevant actions Processes represent patterns of events Sequences represent the ability to follow one behavior by another Choices model branching Composition model partial description

Modeling Architectural Behavior in Wright specification language (cont.) Wright specifications of architectural behavior can be associated with various architectural structures, including ports and roles From the model we can see that Writer pipe can close at any time and cannot reopen Reader can close at any time No deadlocks in glue specifications Component interface of filters F1 and F2 or ports satisfy the requirements of connector’s roles

Modeling Architectural Styles Some systems share a common architectural design vocabulary and a set of constraints on that vocabulary (for example, “client-server systems”, “pipe-filter systems” and etc. is vocabulary, “clients cannot talk directly to other clients” is constrain) Architectural styles can specified in Acme ADL by defining components, connectors, properties and defining constraints on how instances of components, connectors and properties can be combined in a system description.

Modeling Architectural Styles in Acme ADL Family represents architectural style Invariant represents constraints – data type written to a pipe must match the data read from it Systems can be defined as an instance of the style, components and connectors may de declared as instances of the types defined in family.

Mapping between Architecture and Implementation There are two methods of insuring that the implementation system is consistent with intended architecture: 1. Construction – concrete model is constructed by applying well-defined refinement rules to an abstract model. This method can be completely automated – called generation 2. Comparison – of the concrete model and abstract model by providing mapping relationships between the two models

Mapping between Architecture and Implementation by Construction Applying well defined refinement rules to a more abstract model can be difficult Can be simplified by using architectural styles – limiting the problem to a specific class system and a specific class of implementations. This way it’s possible to automate the process and generate code

Mapping between Architecture and Implementation by Comparison There are two approaches to compare implementation and architecture: 1. Static analysis – infer architecture by analyzing the code. This approach is effective for inferring module- oriented structures 2. Dynamic analysis – capture run-time behavior of the system and relate it architectural models. This approach is effective when inferring run-time structure such as C&C models.

Related Work ADLs and associated toolsets focus mostly on component and connector structures and their properties (UML 2.0) Specification and analysis of architectural behaviors that are mostly focused on finding mismatches in component compositions (Wright, Chemical Abstract Machine, PO- Sets, Category Theory, Pi Calculus, Statecharts) Refinement and generation to map architectures and implementations (UniCon, ArchJava, MDA)

Conclusion A little formality goes a long way Simple structures with types, properties, relations and behavioral descriptions can help provide a clear and unambiguous architecture Reuse of existing methods Most of the formal modeling can be done using existing tools, simulators and model generators One size does not fit all The more general-purpose a model, the fewer opportunities for deep analysis Areas for improvement Dynamic Architectures – modeling architectural structures that change dynamically SA for Emerging Systems – modeling for different computational units, adaptive components Managing Multiple Views – most of the tools focus on component and connector views, need to manage relationships between different views