Zachary Cleaver. Analysis Definition and Purpose Architectural analysis is the activity of discovering important system properties using the system’s.

Slides:



Advertisements
Similar presentations
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures.
Advertisements

Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Basic Concepts Software Architecture Lecture 3.
Software Architecture Lecture 2
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.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors.
Conquering Complex and Changing Systems Object-Oriented Software Engineering TJSS System Design Lecture 12 Päivi Ovaska.
Software Testing and Quality Assurance
Analysis of Software Architectures. What Is Architectural Analysis? Architectural analysis is the activity of discovering important system properties.
Software Connectors. Attach adapter to A Maintain multiple versions of A or B Make B multilingual Role and Challenge of Software Connectors Change A’s.
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.
Software Requirements
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
SE 555 – Software Requirements & Specifications Introduction
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.
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.
Object Oriented Analysis and Design Using the UML
1 College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 2 Chapter 6 & 7 System.
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)
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
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.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
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.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Analysis of Software Architectures Software Architecture Lecture.
Project quality management. Introduction Project quality management includes the process required to ensure that the project satisfies the needs for which.
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Requirements Analysis
Software Connectors Acknowledgement: slides mostly from Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic,
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Software Connectors in Practice Software Architecture.
UML - Development Process 1 Software Development Process Using UML.
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. 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.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Architecture Lecture 3
Software Architecture
Analysis of Software Architectures
Software Architecture
Software Architecture Lecture 3
Software Architecture Lecture 2
Analysis of Software Architectures
Software Architecture Lecture 3
Software Architecture Lecture 3
An Introduction to Software Architecture
Software Architecture Lecture 3
Software Architecture Lecture 3
Analysis of Software Architectures
Presentation transcript:

Zachary Cleaver

Analysis Definition and Purpose Architectural analysis is the activity of discovering important system properties using the system’s architectural models. Architectural analysis helps identify incorrect/inefficient design decisions, clarifies component functions and objects, and aids in communication between designers and customers.

Facets of Architectural Analysis 1) Goals of analysis 2) Scope of analysis 3) Primary architectural concerns being analyzed 4) Level of formality between models

Facets of Analysis: Goals 1) Completeness 2) Consistency 3) Compatibility 4) Correctness

Completeness The main goal of assessing an architecture’s completeness is to ensure it adequately capture all key functional and non-functional requirements. Ideally, all services will be needed by a component, and each component will have a service that provides for it.

Consistency Definition: Internal property of an architectural model that is intended to ensure that different elements of that model do not contradict one another. Types of Inconsistencies: Name Interface Behavioral Interaction Refinement

Name Inconsistency Same-name components providing similar services. Is the right one being used? Accessing a nonexistent class or method resulting in compile-time errors

Interface Inconsistency 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 Inconsistency Subtract(int x, int y) returns int; int myVal = Subtract(427, 27) The method behavior treats it as a date subtraction, subtracts 27 days from April 27, and returns 331 (March 31)

Interaction Inconsistency Occurs when a component’s provided operations are accessed in a manner that violates certain interaction constraints. Ex. pop_back() in c++

Refinement Inconsistency Refinement inconsistencies stem from a system’s architecture being frequently captured at different levels of abstraction (higher v. lower) Check that elements were not lost, key properties were not omitted or changed, etc.

Compatibility Compatibility ensures that the model adheres to the design guidelines imposed by an architectural style, reference architecture, or architectural standard.

Correctness Correctness is relative. It is the result of architecture to some artifact, where the artifact either fulfills the architecture or the architecture elaborates and fulfills the artifact.

Scope of Analysis Component and Connector Level Subsystem and System Level Data Exchanged in (sub)system Architectures at Different Abstraction Levels Comparison of Two or More Architectures

Component and Connector Level Analysis Ensures the given component or connector provides the services expected of it However, this does not ensure services are modeled correctly Checks name consistency

Subsystem and System Level Analysis Pair-wise conformance: Two interacting components are considered at a time, and name, interface, behavior, and interaction conformance are established. Compare component properties (efficiency vs. security) Petry’s “Honey-baked ham” syndrome

Data Exchanged in the System or Subsystem Assess data elements to ensure the system’s data is properly modeled, implemented, and exchanged among structural elements Structure of the data (typed vs. untyped) Flow of data through the system (point-to-point vs. broadcast) Properties of data exchange (consistency, security, etc.)

Architecture at Different Abstraction Levels A B C D

Comparisons of Two or More Architectures Comparing current architecture to a model of the desired architecture Comparing two architectures for properties such as processing and storage capabilities

Architectural Concern Being Analyzed Structural Characteristics Behavioral Characteristics Interaction Characteristics Non-functional Characteristics

Structural Characteristics Determines whether the architecture is well formed Focuses on connectivity among architecture components and connectors, points of network distribution, etc. Identify problems such as disconnected components or subsystems, missing pathways between components and connectors, unwanted pathways, etc.

Behavioral Characteristics Concerned with the behavior of individual components and their behaviors as a whole within the architecture Internal behaviors of individual components is considered, as well as the composite behaviors of components as they interact

Interaction Characteristics Helps to establish whether the architecture will actually be able to fulfill some of its requirements (efficiency) Concerned with internal behaviors of systems (security)

Non-Functional Characteristics Difficult to assess since they can span multiple components and connectors Their definitions can be much more informal, making it difficult to properly understand them in the architecture

Level of Formality of Architectural Models Informal Semiformal Formal

Informal Models Typically captured in box-and-line diagrams Great for showing high-level representations of a system Can be dangerous to use because of a lack of information and an ambiguous nature

Semiformal Models Aims to be useful to both technical and nontechnical stakeholders UML

Formal Models Designed for technical stakeholders These type of models can suffer from scalability problems