Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture.

Slides:



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

Dr. Rogelio Dávila Pérez
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
ArchE Presented By Samanvitha Ramayanam. TOPICS 1. Introduction 2. Theoretical assumptions 3. ArchE as an expert system 4. Overall flow of ArchE 5. Key.
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
© 2005 Prentice Hall7-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Architecture-driven Modeling and Analysis By David Garlan and Bradley Schmerl Presented by Charita Feldman.
The Architecture Design Process
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Software Architecture in Practice
SE 555 – Software Requirements & Specifications Introduction
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Chapter 10: Architectural Design
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?
Enterprise Architecture
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Chapter 7 Requirement Modeling : Flow, Behaviour, Patterns And WebApps.
Chapter 10 Architectural Design
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
1 Computer Systems & Architecture Lesson 2 3. Understanding Quality Attributes.
Rational Unified Process Fundamentals Module 4: Disciplines II.
The Architecture Business Cycle. Software Architecture Definition The software architecture of a program or computing system is the structure or structures.
Architecture Business Cycle
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Software Architecture in Practice Architectural description (The reduced version)
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Software Architecture CS3300 Fall Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.
10 Software Architecture CSCU 411 Software Engineering.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
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.
GRASP: Designing Objects with Responsibilities
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
+ Chapter 9: Management of Business Intelligence © Sabherwal & Becerra-Fernandez.
Agenda – week 4 6:00 – 6:05Questions, announcements, intro 6:05 – 6:35Case study – air traffic control 6:35 – 7:20Lecture: architecture in the development.
CPSC 372 John D. McGregor Module 3 Session 1 Architecture.
Database Environment Chapter 2. Data Independence Sometimes the way data are physically organized depends on the requirements of the application. Result:
John D. McGregor Class 4 – Initial decomposition
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 9: Describe the Run-time Architecture.
CSE 303 – Software Design and Architecture
CPSC 871 John D. McGregor Process – an introduction Module 0 Session 3.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Chapter 2 Database Environment Pearson Education © 2009.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Systems Architectures System Integration & Architecture.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
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.
Chapter 7: Modifiability
Lecture 03 Quality Attributes
Chapter 4: Understanding Quality Attributes
Chapter 6: Interoperability
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Model-Driven Analysis Frameworks for Embedded Systems
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Lecture 03 Quality Attributes
Lecture 5 – Quality Attributes
Software Development Process Using UML Recap
Presentation transcript:

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Understanding the following: How to express the qualities we want our architecture to provide to the system or systems we are building from it How to achieve those qualities How to determine the design decisions we might make with respect to those qualities Architecture and Requirements Requirements for a system come in a variety of forms: textual requirements, mockups, existing systems, use cases, user stories, and more. Requirements categories: Functional requirements state what the system must do, and how it must behave or react to runtime stimuli. Quality attribute requirements are qualifications of the functional requirements or of the overall product. Constraints are design decisions with zero degrees of freedom. That is, it’s a design decision that’s already been made. Architecture responses Functional requirements are satisfied by assigning an appropriate sequence of responsibilities throughout the design. Assigning responsibilities to architectural elements is a fundamental architectural design decision. Quality attribute requirements are satisfied by the various structures designed into the architecture, and the behaviors and interactions of the elements that populate those structures. Constraints are satisfied by accepting the design decision and reconciling it with other affected design decisions.

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Functionality Functionality is the ability of the system to do the work for which it was intended. Of all of the requirements, functionality has the strangest relationship to architecture. Functionality does not determine architecture. That is, given a set of required functionality, there is no end to the architectures you could create to satisfy that functionality. If functionality were the only thing that mattered, you wouldn’t have to divide the system into pieces at all. Functionality is achieved by assigning responsibilities to architectural elements, resulting in one of the most basic of architectural structures. Although responsibilities can be allocated arbitrarily to any modules, software architecture constrains this allocation when other quality attributes are important. The architect’s interest in functionality is in how it interacts with and constrains other qualities.

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Quality Attribute Considerations Just as a system’s functions do not stand on their own without due consideration of other quality attributes, neither do quality attributes stand on their own; they pertain to the functions of the system. Three problems with previous studies of system quality attributes: 1. The definitions provided for an attribute are not testable. 2. Studies often focuses on which quality a particular concern belongs to. 3. Each attribute community has developed its own vocabulary. Solutions Use quality attribute scenarios Provide a discussion of each attribute—concentrating on its underlying concerns—to illustrate the concepts that are fundamental to that attribute community. Two categories of quality attributes Those that describe some property of the system at runtime, such as availability, performance or usability. Those that describe some property of the development of the system, such as modifiability or testability. Conflicts of quality attributes Within complex systems, quality attributes can never be achieved in isolation. The achievement of any one will have an effect, sometimes positive and sometimes negative, on the achievement of others. Solution: trade-off of architectural decisions.

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Specifying Quality Attribute Requirements Common form for quality attribute expression Stimulus: to describe an event arriving at the system. Stimulus source: what trigged stimulus Response: how the system should respond to the stimulus Response measure: determining whether a response is satisfactory – whether the requirement is satisfied—is enabled by providing a response measure. Environment: the set of circumstances in which the scenario takes place. Artifact: the portion of the system to which the requirement applies.

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Achieving Quality Attributes through Tactics Architect can use Architectural Tactics to achieve the required quality attributes A tactic is a design decision that in influences the achievement of a quality attribute response – tactics directly affect the system’s response to some stimulus. Tactics vs. architectural/design patterns A tactic provides a solution for one quality attribute A pattern provides a bundled solutions for multiple attributes

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Guiding Quality Design Decisions (7 categories of design decisions) Allocation of responsibilities Identifying the important responsibilities, including basic system functions, architectural infrastructure, and satisfaction of quality attributes. Determining how these responsibilities are allocated to non-runtime and runtime elements (namely, modules, components, and connectors). Coordination model (designed mechanisms for interaction of architectural elements) Identifying the elements of the system that must coordinate, or are prohibited from coordinating. Determining the properties of the coordination, such as timeliness, currency, completeness, correctness, and consistency. Choosing the communication mechanisms that realize those properties. Data model Choosing the major data abstractions, their operations, and their properties. Compiling metadata needed for consistent interpretation of the data. Organizing the data Management of resources Identifying the resources that must be managed and determining the limits for each. Determining which system element(s) manage each resource. Determining how resources are shared and the arbitration strategies employed when there is contention. Determining the impact of saturation on different resources.

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Guiding Quality Design Decisions (7 categories of design decisions) Mapping among architectural elements The mapping of modules and runtime elements to each other – that is, the runtime elements that are created from each module; the modules that contain the code for each runtime element. The assignment of runtime elements to processors. The assignment of items in the data model to data stores. The mapping of modules and runtime elements to units of delivery. Binding time decisions For allocation of responsibilities, to have build-time selection of modules via a parameterized makefile. For choice of coordination model, to design runtime negotiation of protocols. For resource management, to design a system to accept new peripheral devices plugged in at runtime, after which the system recognizes them and downloads and installs the right drivers automatically. For choice of technology, to build an app store for a smartphone that automatically downloads the version of the app appropriate for the phone of the customer buying the app.

Software Architecture in Practice (3 rd Ed) Understanding Quality Attributes Guiding Quality Design Decisions (7 categories of design decisions) Choice of Technology Deciding which technologies are available to realize the decisions made in the other categories. Determining whether the available tools to support this technology choice (IDEs, simulators, testing tools, etc.) are adequate for development to proceed. Determining the extent of internal familiarity as well as the degree of external support available for the technology (such as courses, tutorials, examples, and availability of contractors who can provide expertise in a crunch) and deciding whether this is adequate to proceed. Determining the side effects of choosing a technology, such as a required coordination model or constrained resource management opportunities. Determining whether a new technology is compatible with the existing technology stack.