Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 14
Advertisements

Software Architecture Lecture 3
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Software Architecture Lecture 2
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Lecture.
Software Connectors Software Architecture. Importance of Connectors Complex, distributed, multilingual, modern software system functionality and managing.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis Techniques Software Architecture Lecture 14.
Analysis Techniques. Architectural Analysis in a Nutshell Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 19.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Analysis of Architecture As part of the activities in coming up with a good software architecture, we should analyze the architecture that we have designed.
Software Architecture Lecture 3
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture.
Analysis of Software Architectures
Zachary Cleaver. Analysis Definition and Purpose Architectural analysis is the activity of discovering important system properties using the system’s.
An Introduction to Software Architecture
Architectural Analysis. Introduction Models help to force the architects to identify issues that might missed or ignored To get useful information precisely.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Implementing Architectures Software Architecture.
Zachary Cleaver. Analysis Definition and Purpose Architectural analysis is the activity of discovering important system properties using the system’s.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. NFP Design Techniques Software Architecture Lecture 20.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Choosing Connectors Software Architecture Lecture 8.
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Brief Introduction to Software Connectors Software Architecture.
Basic Concepts and Definitions
Foundations, Theory, and Practice Software Architecture Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic.
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Architecture Analysis Techniques.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Infosys, Mysore December.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Designing for NFPs Software Architecture Lecture 14.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors Software Architecture Lecture 7.
Software Architecture Lecture 3
Software Architecture
Architecture Analysis Techniques
Analysis of Software Architectures
Software Architecture
Software Connectors.
Software Architecture Lecture 19
Software Architecture Lecture 3
Software Architecture Lecture 2
Analysis of Software Architectures
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 20
Software Architecture Lecture 3
Software Connectors.
Software Architecture Lecture 8
Architecture Analysis Techniques
Software Architecture Lecture 3
Software Architecture Lecture 7
Software Architecture Lecture 7
Software Architecture Lecture 8
Software Architecture Lecture 8
Software Architecture Lecture 3
Software Architecture Lecture 7
Analysis of Software Architectures
Software Architecture Lecture 6
Presentation transcript:

Analysis of Software Architectures

What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties using the system’s architectural models. u Early, useful answers about relevant architectural aspects u Available prior to system’s construction Important to know 1. which questions to ask 2. why to ask them 3. how to ask them 4. how to ensure that they can be answered

Informal Architectural Models and Analysis Helps architects get clarification from system customers Helps managers ensure project scope Not as useful to developers Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Formal Architectural Models and Analysis Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Component UserInterface Port getValues Port calculate Computation Connector Call Role Caller = Role Callee = Glue = Configuration LunarLander Instances DS : DataStore C : Calculation UI : UserInterface CtoUIgetValues, CtoUIstoreValues, UItoC, UItoDS : Call Attachments C.getValues as CtoUIgetValues.Caller DS.getValues as CtoUIgetValues.Callee C.storeValues as CtoUIstoreValues.Caller DS.storeValues as CtoUIstoreValues.Callee UI.calculate as UItoC.Caller C.calulate as UItoC.Callee UI.getValues as UItoDS.Caller DS.getValues as UItoDS.Callee End LunarLander. Helps architects determine component composability Helps developers with implementation- level decisions Helps with locating and selecting appropriate OTS components Helps with automated code generation Not as useful for discussions with non-technical stakeholders

Concerns Relevant to Architectural Analysis Goals of analysis Scope of analysis Primary architectural concern being analyzed Level of formality of architectural models Type of analysis Level of automation System stakeholders interested in analysis

Architectural Analysis Goals The four “C”s u Completeness u Consistency u Compatibility u Correctness

Architectural Analysis Goals – Completeness Completeness is both an external and an internal goal It is external with respect to system requirements u Challenged by the complexity of large systems’ requirements and architectures u Challenged by the many notations used to capture complex requirements as well as architectures It is internal with respect to the architectural intent and modeling notation u Have all elements been fully modeled in the notation? u Have all design decisions been properly captured?

Architectural Analysis Goals – Consistency Consistency is an internal property of an architectural model Ensures that different model elements do not contradict one another Dimensions of architectural consistency u Name u Interface u Behavior u Interaction u Refinement

Name Consistency Component and connector names May be non-trivial to establish at the architectural level u Multiple system elements/services with identical names; difficult to determine wrong component is accessed. u Dynamically adaptable architectures; track any mismatches at a given time is meaningless

Interface Consistency Encompasses name consistency Also involves parameter lists in component services Example: matching provided and required interfaces ReqInt: getSubQ(Natural first, Natural last, Boolean remove) returns FIFOQueue; ProvInt1: getSubQ(Index first, Index last) returns FIFOQueue; ProvInt2: getSubQ(Natural first, Natural last, Boolean remove) returns Queue;

Behavioral Consistency Names and interfaces of interacting components may match, but behaviors need not Example: subtraction subtract(Integer x, Integer y) returns Integer; u Can we be sure what the subtract operation does? Example: QueueClient and QueueServer components – front operation QueueClient precondition q.size > 0; postcondition ~q.size = q.size; QueueServer precondition q.size > 1; postcondition ~q.size = q.size - 1;

Interaction Consistency Names, interfaces, and behaviors of interacting components may match, yet they may still be unable to interact properly Occurs when a component’s operations are accessed in a manner that violates certain interaction constraint u QueueServer ensure an element to enqueue before an attempt to dequeue; enqueue elements into full queue A system is consistent with its environment in its behavior if it terminates normally Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Refinement Consistency Architectural models are refined during the design process A relationship must be maintained between higher and lower level models u All elements are preserved in the lower level model u All design decisions are preserved in the lower-level model  No new design decisions violate existing design decisions

Refinement Consistency Example Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.

Architectural Analysis Goals – Compatibility Compatibility is an external property of an architectural model Ensures that the architectural model adheres to guidelines and constraints of u a style u a reference architecture u an architectural standard

Architectural Analysis Goals – Correctness Correctness is an external property of an architectural model Ensures that 1. the architectural model fully realizes a system specification 2. the system’s implementation fully realizes the architecture Inclusion of OTS elements impacts correctness u System may include structural elements, functionality, and non-functional properties that are not part of the architecture u The notion of fulfillment is key to ensuring architectural correctness

Scope of Architectural Analysis Component- and connector-level Subsystem- and system-level Data exchanged in a system or subsystem u Data structure u Data flow Architectures at different abstraction levels Comparison of two or more architectures (e.g. system architecture vs. reference architecture, architecture in literature) u Processing and data storage capabilities u Interactions as embodied in the connectors u Configuration u Non-functional properties

Architectural Concern Being Analyzed Structural characteristics u Connectivity among components and connectors Behavioral characteristics u Internal behavior of a component and composite behavior Interaction characteristics u Type of connectors; interaction protocol Non-functional characteristics

Level of Formality of Architectural Models Informal models Semi-formal models Formal models

Type of Analysis Static analysis u To infer properties of a system from one or more of its models u To determine if model adheres to modeling notation Dynamic analysis u Execute or simulate the execution of a model, e.g. state transition diagram Scenario-driven analysis u Suitable for large and complex system u Use specific use cases to represent most important system usage scenarios

Level of Automation Manual Partially automated Fully automated

Analysis Stakeholders Architects Developers Managers Customers Vendors

Architectural Analysis in a Nutshell Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.