Principles of Software Architecture Evaluation and Design

Slides:



Advertisements
Similar presentations
Computer Systems & Architecture Lesson 2 4. Achieving Qualities.
Advertisements

ATAM Architecture Tradeoff Analysis Method
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.
ArchE Presented By Samanvitha Ramayanam. TOPICS 1. Introduction 2. Theoretical assumptions 3. ArchE as an expert system 4. Overall flow of ArchE 5. Key.
Lecture 13 Enterprise Systems Development ( CSC447 ) COMSATS Islamabad Muhammad Usman, Assistant Professor.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Instructor: Tasneem Darwish
CAP 252 Lecture Topic: Requirement Analysis Class Exercise: Use Cases.
Overview Lesson 10,11 - Software Quality Assurance
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
The Architecture Design Process
Software Engineering General Project Management Software Requirements
Analysis Concepts and Principles
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
Overview of Software Requirements
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
Course Instructor: Aisha Azeem
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
Architecture Tradeoff Analysis Method Based on presentations by Kim and Kazman
What is Software Architecture?
9/2/2015 | 1 Neil B. Harrison Paris Avgeriou University of Groningen Groningen, The Netherlands Incorporating Fault Tolerance Tactics in Software Architecture.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Achieving Qualities 1 Võ Đình Hiếu. Contents Architecture tactics Availability tactics Security tactics Modifiability tactics 2.
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Chapter 6 Requirements Engineering Process.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
Architecture Evaluation Evaluation Factors Evaluation by the designer Every time the designer makes a key design decision or completes a design milestone,
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
An Introduction to Software Architecture
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Database System Concepts and Architecture
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING Chapter 2 1 These slides are prepared by Enas Naffar to be used in Software requirements course - Philadelphia.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Event Management & ITIL V3
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
10 Software Architecture CSCU 411 Software Engineering.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Designing software architectures to achieve quality attribute requirements F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin.
Design Analysis builds a logical model that delivers the functionality. Design fully specifies how this functionality will be delivered. Design looks from.
1 What is OO Design? OO Design is a process of invention, where developers create the abstractions necessary to meet the system’s requirements OO Design.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
1 Software Architecture in Practice Quality attributes (The amputated version)
Cloud Computing and Architecture Architectural Tactics (Tonight’s guest star: Availability)
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
John D. McGregor Architecture Evaluation
Requirements Analysis
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 Click to edit Master title style What is Business Analysis Body of Knowledge?
1 Software Architecture in Practice Architectural Design (Again, the amputated version)
Vakgroep Informatietechnologie – IBCN Software Architecture Prof.Dr.ir. F. Gielen Quality Attributes & Tactics (1)
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
 System Requirement Specification and System Planning.
Chapter 7: Modifiability
Chapter 4: Understanding Quality Attributes
Software Quality Control and Quality Assurance: Introduction
Software Architecture in Practice
Chapter 19: Architecture, Implementation, and Testing
Chapter 7: Designing the Architecture
Software Engineering (CSI 321)
Quality Attributes Or, what’s wrong with this:
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Quality Attributes Or, what’s wrong with this:
An Introduction to Software Architecture
Quality Attributes Or, what’s wrong with this:
Presentation transcript:

Principles of Software Architecture Evaluation and Design Len Bass Software Engineering Institute Carnegie Mellon University

Outline Motivation Principles Application of principles to evaluation and design 5

The key question ? Software Architectures Requirements How do we systematically move from a set of requirements to a software architecture that satisfies those requirements?

Why build a computer system? Designer Software Architecture

To achieve some business goals Financial/mission Improve operations Offer new services Marketing Extend market share Improve customer satisfaction Other Get tenure/degree Make political point System Software Architecture

Business Goals Beget Requirements But a funny thing happens on the way to a system…

Some sources of requirements Stakeholder Needs Architect’s Experience Business Requirements Quality Attribute Functional Developing Organization Legal/Contractual Issues Architecture Commercial/Competitive Pressures Technical Environment System System System Political Issues Life cycle Issues

Key ideas of this section Many different sources of requirements Written requirements are almost always incomplete Architect’s experience is vital element in interpreting remaining sources of requirements

Outline Motivation Principles Application of principles to evaluation and design 5

How does the architect make sense of the requirements? Architect’s Experience Business Requirements Quality Attribute Functional

Types of requirements Requirements Software Architectures Functions are: Features + necessary non user visible computations Represented within architecture by responsibilities Business – constraints on design Functional requirements – what adds value to the user (e.g. what the system does) Quality Attribute– how well the system does by various measures (e.g., how timely, secure, modifiable it is)

Constraints – pre-specified design decisions Requirements Software Architectures Constraints reduce the space of architectures in which to search for a solution

Must live within constraints Very little software design is “greenfield” Frameworks, large-grained components are frequently required. Disciplined design must accommodate constraints. Designer does not make design decisions to achieve constraints – constraints are given. Designer makes design decisions to achieve other requirements within given constraints.

Do functional or quality requirements drive remaining architectural design? /A/ Quality requirements determine most architectural design decisions – not functional requirements If the only concern is functionality then a monolithic system would suffice. However is it quite common to see: Redundancy structures for reliability Concurrency structures for performance Layers for modifiability

Principle 1 Quality attribute requirements are those that drive the design of the software architecture Leads to several questions: How are quality attribute requirements specified How are quality attribute requirements achieved How can understanding of the impact of quality attributes on design be used to improve the design and evaluation processes?

Characterizing quality attributes Requirements such as “the system shall be modifiable”, are meaningless. What does it mean to say “the system shall be modifiable”? Taxonomies of quality attributes do not help. Is a denial of service attack a security problem, a performance problem, an availability problem, or a usability problem?

A common form for the specification of quality requirements We use quality attribute general scenarios, which are system independent, to guide the specification of quality attribute requirements. We characterize quality attribute requirements for a specific system by a collection of concrete quality attribute scenarios. These are instances of general scenarios. We use general scenario generation tables to construct well-formed general scenarios for each attribute.

General scenarios General scenarios have six parts. The “values” for each part define a vocabulary for articulating quality attribute requirements. The parts are: Stimulus Source of stimulus Environment in which the stimulus arrives Artifact influenced by the stimulus Response of the system to the stimulus Response measures

Availability scenario generation table Source of stimulus: Internal to the system External to the system Environment: Normal operation Degraded mode Response: record it notify parties operate in normal or degraded mode Stimulus: Unanticipated event Update to a data store Artifact: Process Persistent storage Response measures: Availability percentage Time range in which the system can be in degraded mode Example Scenario: “An unanticipated message is received by a system process during normal operation. The process has to record it, inform the appropriate parties and continue to operate in normal mode without any downtime.”

Constructing quality requirements from general scenarios Generate a possible general scenario by choosing one or more entries from each list and combining them Not all: general scenarios are relevant to specific system generated scenarios make sense Make each scenario system specific (concrete scenario) May be multiple concrete scenarios for each general scenario. e.g., modify function. Eliminate duplicates

Which attributes? We have focused on six quality attributes: Availability Modifiability Performance Security Testability Usability Others are equally important: Buildability Interoperability …

What about function and quality? Software for garage door opener Some scenarios: “Halt garage door when an obstacle is detected” “respond to user’s requests to raise/lower the door within .5 second” “replace sensor/actuator within 40 staff hours” Functional or quality requirements?

Functional AND Quality Every requirement has both functional AND quality portions. E.g. Halt garage door when an obstacle is detected. Function: detect obstacle, halt garage door Quality: within time limit (implicit in this example). Scenario template provides means for eliciting quality requirements associated with functions. Quality portion leads to design template in which to situate functionality

Key Ideas of this section Can express business goals as quality scenarios Can characterize quality scenarios in structured fashion For six attributes, we have tables that enable the generation of quality attribute scenarios Quality attribute scenarios provide quality attribute requirements to particular functions

Principle 2 Quality attribute requirements can be specified through concrete scenarios with six parts. Still questions left: How are quality attribute requirements achieved How can understanding of the impact of quality attributes on design be used to improve the design and evaluation processes?

What does it mean to achieve a quality attribute requirement? Software Architecture a Stimulus a Quality Attribute Requirement Quality Attribute Model E A quality attribute requirement defines a region within the set of quality attribute measures. An architecture can be interpreted in terms of quality attribute model which, in turn, can be evaluated to determine which quality attribute value the software architecture will achieve for a particular stimulus. S If evaluated value is inside the region defined by the requirement, the requirement is satisfied. La Quality Attribute Measures

Achieving quality attribute requirements Design is the process of making decisions about various design options We can enumerate decisions known to be useful in achieving different quality attributes. For example: what are some decisions used to improve performance? To improve modifiability? To improve availability?

What are these architectural decisions? For the six quality attributes –availability, modifiability, performance, security, testability, usability - we have enumerated a collection of “tactics” Formal definition: An architectural tactic is a means of satisfying a quality attribute response measure by manipulating some aspect of a quality attribute model through architectural design decisions.

Architectural tactics Quality Attribute Requirement PerfRqt Software Architecture a a¢ T Stimulus RMA Quality Attribute Model E La La¢ S An architectural tactic moves from one architecture to another where a parameter of the quality attribute model moves in a known direction. Quality Attribute Measures

Tactics bridge quality attribute models and architectural design Tactics identify key quality attribute concepts and bridge quality attribute model and architectural design Modifiability model has concepts such as “dependency” A tactic for controlling dependency is “use an intermediary” Quality attribute models (analytic, empirical or qualitative) drive the identification of tactics Derived from well-known analytic models Also derived from attribute experts

Availability tactics Availability Fault Detection Recovery – Preparation and Repair Recovery – Re-Introduction Prevention Ping/Echo Heartbeat Exception Voting Active Redundancy Passive Redundancy Spare Shadow State Re-Synchronization Rollback Removal from Service Transactions Process Monitor

Principle 3 Quality attribute requirements can be achieved through application of architectural tactics Still question left: How can understanding of the impact of quality attributes on design be used to improve the design and evaluation processes?

Outline Motivation Principles Application of principles to evaluation and design evaluation design 5

Architectural evaluation Architectural evaluation – examine existing architecture to determine how well it satisfies its quality attribute requirements. Ideally limited amount of time is spent on the evaluation Leads to three problems: Which quality attribute requirements are the focus of the evaluation? Which portion of the architecture is the focus of the evaluation? What do you look for inside the architecture?

Which quality attribute requirements? Want to focus on those requirements that are most important for business goals have largest impact on architecture Suggests that input is needed from: business people – e.g. marketing technical people – e.g. architect

How ATAM focuses on Requirements The SEI method – ATAMTM - has steps that select scenarios to focus on. These steps involve multiple stakeholder representatives including architect and marketing.

Which portion of the architecture is the focus of the evaluation? Architecture is large and it is time consuming to examine all of it. Want to emphasize that portion of the architecture that realizes the scenarios that are the focus of the evaluation.

How ATAM focuses on the architecture ATAM uses the architect to identify the portion of the architecture affected by a scenario. The architect walks through how the scenario is achieved.

What do you look for inside the architecture? Once focused on a portion of the architecture the evaluator must determine whether any architectural decisions affect business goals. Evaluator examines the architecture for any business goals, not just ones affected by focusing scenario.

ATAM uses tactics (and lack of tactics) Use of tactics (and lack of use of tactics) are indicators of whether the architecture has a problem achieving a particular business goal.

Key ideas of this section Can evaluate software architecture early to determine whether there are risks in satisfying important quality attribute requirements ATAM is a method for evaluation that: Uses stakeholders to determine important quality attribute requirements Uses architect to focus on important portions of the architecture. Uses use of tactics (or lack) to determine potential problems.

Outline Motivation Principles Application of principles to evaluation and design evaluation design 5

Design decisions Recall that design is the process of making decisions Some decisions are more important and are made earlier We have a collection of decisions we call “early design decisions” May be constrained by environment and problem May be free for architect to decide

Sample early design decisions Statefull vs. stateless Synchronous vs. asynchronous Point-to-point vs. client/server Federated (loosely coupled) vs. tightly coupled . . .

Sample – statefull vs. stateless - 1 Statefull portions of the system have following characteristics: Communication requirements reduced because state does not need to be communicated with each message Security easier to maintain since authentication and sniffing are correlated with messages and there are fewer messages . . .

Sample – statefull vs. stateless - Stateless portions of the system have following characteristics: Availability increased since do not lose state when component fails Load balancing easier since can always replicate stateless component to handle multiple requests. . . .

Early decisions Characterized in terms of quality attributes how they are supported by tactics How are early decisions evaluated?

Early decisions Characterized in terms of quality attributes how they are supported by tactics How are early decisions evaluated? - Through consideration of business goals.

Architectural drivers An architectural driver is a quality attribute requirement (concrete scenario) that has major impact on the architecture. Usually small number of architectural drivers (~5-8) Located through examination of high business priority quality attribute requirements

Attribute driven design (ADD) Decomposition method beginning with constraints Decomposition is designed to satisfy the architectural drivers of the system Decomposition intended to place early design decisions in a pattern

Key ideas of this section Since quality attribute requirements are most important design drivers, must identify most important quality attribute requirements Can use early design decisions, quality attribute requirements and tactics to define pattern that satisfies most important requirements

Summary Quality attribute requirements determine architectural design Quality attributes requirements can be expressed in a common form Architectural tactics are an enumeration of techniques that architects use to achieve particular quality attributes Knowledge of quality attributes can be embodied in design and evaluation methods.

More Information Lists of general scenarios and tactics, descriptions of ATAM and ADD are available in second edition of Software Architecture in Practice http://sei.cmu.edu/architecture Software architecture curriculum Len Bass: ljb@sei.cmu.edu

© 2005 Carnegie Mellon. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.