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.

Slides:



Advertisements
Similar presentations
Software Architecture Lecture 14
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Chapter 2 – Software Processes
Documenting a Software Architecture By Eng. Mohanned M. Dawoud.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Lecture.
Software Testing and Quality Assurance
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. Analysis Techniques Software Architecture Lecture 14.
Analysis Techniques. Architectural Analysis in a Nutshell Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
The Architecture Design Process
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Ensuring Non-Functional Properties. What Is an NFP?  A software system’s non-functional property (NFP) is a constraint on the manner in which the system.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
8 Systems Analysis and Design in a Changing World, Fifth Edition.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
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. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
What is 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.
Chapter 10 Architectural Design
UML - Development Process 1 Software Development Process Using UML (2)
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.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
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.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
Lecture 7: Requirements Engineering
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.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Class 5 Architecture-Based Self-Healing Systems David Garlan Carnegie Mellon University.
Requirement Handling
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
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.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
Architecture Analysis Techniques
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
DESIGN OF SOFTWARE ARCHITECTURE
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Smart Home Technologies
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Basic Concepts and Definitions
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
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. Analysis of Software Architectures Infosys, Mysore December.
Basic Concepts of Software Architecture. What is Software Architecture? Definition: – A software system’s architecture is the set of principal design.
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.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Analysis of Software Architectures
The Development Process of Web Applications
Chapter 20 Object-Oriented Analysis and Design
An Introduction to Software Architecture
Architecture Analysis Techniques
Design Yaodong Bi.
Software Development Process Using UML Recap
Analysis of Software Architectures
From Use Cases to Implementation
Presentation transcript:

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 and modeled. Architectural analysis is the activity of discovering (and organizing/assessing) important system properties using the system’s architectural models. my addition

Dimensions of (or things to consider for) Architectural Analysis 1.Goals of analysis 2.Scope of analysis 3.Concerns to be analyzed 4.Models and levels of formality 5.Types of analysis 6.Levels of automating the analysis 7.Stakeholders interested in analysis 8.Analysis techniques

Goals of Analysis 4 categories of goals for analysis of the architecture: 1.Completeness 2.Consistency 3.Compatibility 4.Correctness 5.Cohesiveness 6.Coupling I would add these 2 more

1. Architectural Completeness Completeness with respect to external concerns: –Checking the architecture against the requirements Functional Non-functional – Difficult to do when the system is large due to massive amount of material –Difficult to do when pieces are specified and designed incrementally (choosing the right moment for assessment) Completeness with respect to internal concerns: –Checking to see if all the system’s elements are captured Components Connectors Interface and protocols Dependencies Interactions system configuration e.g. agile

2. Architectural Consistency Internal property of the architecture which states that the architectural elements do not contradict each other –Name inconsistencies May be difficult to catch in incremental design and distributed design when not everything is there and can change –Interface inconsistencies Watch for polymorphism and overloading versus real problem –Behavioral inconsistencies Watch for typing such as “difference” may represent arithmetic subtraction of two integers versus number of mismatched characters in two strings (semantic confusion) –Interaction Inconsistencies These can occur when the protocol is not clear such as “sequence of interaction” between two entities especially in a stateful situation. –Refinement Inconsistencies This may occur when moving from high level to lower level design and loosing something, or adding something extra, or violate some constraint ---- especially if you use multiple - views

3. Architectural Compatibility Compatibility is an external property of the model to ensure that the architecture adheres to: –Architecture & Design Standard –Constraints of the adopted Architecture style –Constraints imposed by the reference architecture (reference architecture is an architecture that is applicable to multiple related systems within an application with explicitly defined points of variation) This may be more difficult than it appears because the external standards, style, and reference architecture may all be unclear or not completely defined,

4. Architectural Correctness Correctness is an external property of the model that addresses if the external system specification is properly realized in the architecture. (includes completeness?) Have we “properly” evolved from the specification to the architectural model ? This is especially difficult to analyze when we use off-the-shelf components which are not perfect match and needs some “tailoring” work.

Cohesion and Coupling Two additional characteristics of the architecture that we like to be able to assess as “goals” of analyzing architecture. –Cohesion : does the architectural components fit together cleanly with minimal overlap and little extra elements? (component level cohesion) –Coupling: does the architectural components and connectors have excessive interactions? (component level coupling)

Scope of Analysis Architecture may be analyzed at different levels or from different perspectives. Scope of analysis may address: o Component and Connector level analysis o Subsystem and System level analysis o Data exchanges in the System or Subsystem o Different levels of Abstraction o Comparison of two or more Architectures

Component and Connector Level Each component and each connector needs to be analyzed –Does it provide the specified service –Does it do it correctly (in the intended manner) The composition of components and connectors –Does the composition provide the intended services –Does the composition work correctly

Subsystem and System Level At the subsystem and system level, we are analyzing the compositions of components and connectors to form a subsystem and then to form a complete system. –Pair-wise conformance of 2 interacting components in terms of their interface, interaction and behavior is analyzed within the subsystem. –Assessing over-all properties as subsystems are incrementally built and the over-all system continue to evolve Interesting situation is where off-the-shelf components are configured where there may be need for “additional” functionalities but causing potential degradation in some less acute property (e.g. to improve security, we bring in security guarding components such as extra “walls” and encryption --- which may affect overall execution performance or system maintenance) System scalability is a critical property as larger and larger heterogeneous subsystems are configured together

Data Exchange Level In most large or distributed systems, there is large amount of data processed and exchanged (e.g. web- based applications). It is important that data is properly modeled: –The structure of data Data typing Data organization –Flow of the data through the system Point-point Client-server Event based broadcast etc –Properties of data exchanges Performance Security Stateful vs stateless etc

Different Abstraction Levels As we refine the architecture and the model, it is important that we ensure the compatibility of the models at different levels. That is the refined models stay consistent with the higher levels. This is especially difficult if different components and subsystems are modeled to different levels of refinement. Component C Component B Component A Component C Component B refinement

Comparing Architectures We are interested in comparing and ensuring that an “evolving” system has : –not altered from the base architecture or the reference architecture –Stayed within the bounds of some architectural / design standard (looking for both “drift” and “erosion”) In comparing architectures, we are looking at: 1.Composition of components and connectors 2.Interactions among components and connectors 3.Characteristics of data exchange

Architectural Analysis “Concerns” In analyzing architectures we are interested in several “key concerns”: –Structural Characteristics (static) Connectivity of components and connectors Lower level components contained into higher level composite component Points of network distribution and concurrency paths –Behavioral Characteristics (static) Individual component and connector functionalities Composite and collaborative functionalities (especially when composed with off-the-shelf components or connectors) –Interaction Characteristics (dynamic) Number and type of connectors and protocols among components and connectors Properties such as timing, synchronicity, buffering, etc. –Non-functional Characteristics (static & dynamic) Properties that cut across the whole system or subsystems such as security, performance, quality, etc. heavy overlap

Levels of Formality & Analysis The level of formality in analysis requires certain level of formality in the architectural models which we use in the analysis: –Informal (box-line) models allow only high level analysis but by a broad sector of stakeholders. Often times the analysis is performed manually with little automation. –Semi-formal models, such as UML, allows a deeper level of analysis by those trained to understand that semi-formal model. The amount of training required is not formidable, thus allowing more stakeholders to participate in the analysis. Also allows partial automation of the analysis activity –Formal models, such as Wright or Acme, requires understanding of the formal syntax and semantics used in the model; thus it restricts the number of stakeholders who can participate in the analysis, but does allow better automation and deeper analysis.

Types of Analysis Static Analysis –Analyzing the architectural model without executing any part of the model –Concerns analyzed are mostly structural, with little other kinds of concerns analyzed – Dynamic Analysis –Involves executing or simulating the execution of the architectural model –Major concerns analyzed are behavior and interaction properties, with some non-functional properties Scenario-Based or Work-flow Based Analysis –Very good for some specific non-functional concern that cuts across the whole system.

Levels of Automation A more detailed and formal architectural model is more amenable to automation A more well “defined” and “quantifiable” property is the more it may be assessed automatically 3 Levels of Automation: –Manual ---- mostly qualitative & may not be easily duplicated –Partially automated --- using some tools to look for evaluating syntactical conformance or for counting the numbers or for evaluating some property –Fully automated --- only in well-definable areas such as syntactical conformance; most likely not achievable

Stakeholders and Architectural Analysis Stakeholders Architectural Goals Architectural Concerns Level of Formality / Types of Analysis Architect -completeness -consistency -compatibility -correctness -structural -behavioral -interaction -non-functional -all levels (informal, semi-formal & formal) of arch. models -all types (static, dynamic & scenario) of analysis Developers -consistency -compatibility - completeness - correctness -behavioral -interaction - semi formal & formal model -internal static & dynamic Managers -completeness -correctness -non-functional -structural/behavior -informal -some scenarios Customers -completeness -correctness -all concerns at high level -informal level -mostly scenario Vendors -compatibility-structural (composibility) -interaction -informal & formal -static & scenario

Some Analysis Techniques (A) Analysis via Reviews and Inspections (B) Model Based Analysis (C) Simulation Based Analysis

(A) Reviews and Inspections of Architecture Reviews and inspections are human based activities that require: –1) preparation for inspection and of architectural material Think through material discussed earlier such as : –Set goals for analysis of the architecture –Set the scope of the analysis –Decide on the concerns – etc. –2) preparation of participants (stakeholders) –3) review/analysis of the architectural material –4) analysis of the review results and recommend actions –5) follow-up and closeout

Reviews and Inspections of Architecture Depending on the context, reviews and inspections may have the broadest spectrum: –Goals: completeness, consistency, correctness, and compatibility –Scope: spans components, connectors and the complete system; also includes data-exchange and compatibility to reference architecture and compliance to standards, etc. –Concerns of reviews may include: structural, behavioral, interaction and non-functional –Types of model used for analysis are: mostly semi- formal; many stakeholders may not understand or appreciate the formal models –Types of analysis for reviews: best for static analysis and scenario-based –Automation: Reviews and Inspections are manual –Stakeholders: all stakeholders may participate

Architectural Trade-Off Analysis Method (ATAM) method may be used for Review/Inspection Business Drivers: goals; major functions; constraints; etc. Quality Attributes: scalability, security, etc. Scenarios: growth, use-case, etc. Analysis Architectural Decisions Key Facets of Architecture: major decisions & major constraints Architectural Approaches: styles, patterns, further refinements Trade-offs Sensitivity points Non-risks Risks Risk “themes” Iterate until the “risks” are mitigated

(B) Model Based Analysis of Architecture Relies on the system’s architectural descriptions in the model and the manipulation of that model to discover properties of the architecture: –Goals for model-based analysis: consistency, internal completeness, correctness –Scope of the model-based analysis: spans components, connectors and the complete system; also includes data- exchange and compatibility to standards, etc. –Concerns of analysis include: mostly structural; some behavioral, interaction, and non-functional –Types of Model used for analysis are: mostly semi-formal to formal; the more formal models tend to be more useful –Types of Analysis with model-based: best for static analysis of connectivity, conformance, interface, definition-usage, etc. –Automation: typically partially automated –Stakeholders: targeted at technical stakeholders

e.g. Model-Based Reliability Analysis Reliability definition: Reliability is the probability that the system will perform its intended functionalities without failures for a specified amount of time. There are many reliability models that will allows us to measure and “predict”: –Mean time between failures –Time to next failure –Time to repair There are lots of reliability models, almost all “formal” and some based on negative exponential and/or Poisson model : P(Z=a) = [ ( e –δ δ a ) /a! ] where δ is the expected value of Z

( C ) Simulation Based Analysis This is basically software simulation of the architecture model and may be used for: –Any of the goals: completeness, consistency, compatibility and correctness analysis –Scope of the analysis may be: the entire system, a specific subsystem, data-exchange, comparing architectural behavior or against standard –The Concerns that can be simulated include: behavior, interaction, non-functional properties –The simulation Model most likely need to be “formal” –The Type of Analysis made with simulation is dynamic and scenario based –These are mostly Automated and computer execution based. –Stakeholders: all stakeholders may be interested