Designing software architectures to achieve quality attribute requirements F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin.

Slides:



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

Jeremy S. Bradbury, James R. Cordy, Juergen Dingel, Michel Wermelinger
ARCHITECTURES FOR ARTIFICIAL INTELLIGENCE SYSTEMS
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Architecture Representation
S Y S T E M S E N G I N E E R I N G.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
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.
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
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
Software Testing and Quality Assurance
The Architecture Design Process
Introduction to Software Architecture. What is Software Architecture?  It is the body of methods and techniques that help us to manage the complexities.
درس مهندسی نیازمندی ها استاد دکتر عبداله زاده دانشجو خیرالنسا مرچانت Dealing with NFR : Three Experimental Studies of a Process-Oriented Approach.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Software Architecture in Practice RiSE’s Seminars Bass’s book :: Chapters 07 Eduardo Santana de Almeida.
Principles of Software Architecture Evaluation and Design
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Designing the Architecture
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Software Design Description (SDD) Diagram Samples
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR.
Patterns for Secure Boot and Secure Storage in Computer Systems By: Hans L¨ohr, Ahmad-Reza Sadeghi, Marcel Winandy Horst G¨ortz Institute for IT Security,
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department Software Systems.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 21. Review ANALYSIS PHASE (OBJECT ORIENTED DESIGN) Functional Modeling – Use case Diagram Description.
Basic Concepts Software Architecture. What is Software Architecture? Definition: – A software architecture is the set of principal design decisions about.
CS 4310: Software Engineering Lecture 4 System Modeling The Analysis Stage.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Design Process for Architecture. Architectural Lifecycle Not all lifecycle plans support Architecture! It is hard to achieve architecture based design.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
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.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Part4 Methodology of Database Design Chapter 07- Overview of Conceptual Database Design Lu Wei College of Software and Microelectronics Northwestern Polytechnical.
CPSC 871 John D. McGregor Module 3 Session 1 Architecture.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Copyright ©2004 Virtusa Corporation | CONFIDENTIAL Requirement Engineering Virtusa Training Group 2004 Trainer: Ojitha Kumanayaka Duration : 1 hour.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Design CS 470 – Software Engineering I Sheldon X. Liang, PH.D.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
What is Research?. Intro.  Research- “Any honest attempt to study a problem systematically or to add to man’s knowledge of a problem may be regarded.
CPSC 872 John D. McGregor Session 31 This is it..
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Page 1 An Overview of The COTS-Aware Requirements Engineering and Software Architecting Project (CARE/SA) The University of Texas at Dallas Department.
Process 4 Hours.
Chapter 7: Modifiability
Chapter 6: Interoperability
Lecture 9z Case Study ADD: Garage Door
Software Architecture ATAM Process Presentation
Chapter 17: Designing an Architecture
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
For University Use Only
Design Process for Architecture
Model-Driven Analysis Frameworks for Embedded Systems
Design Process for Architecture
Agenda – week 4 6:00 – 6:05 Questions, announcements, intro
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Design Process for Architecture
Software Development Process Using UML Recap
Presentation transcript:

Designing software architectures to achieve quality attribute requirements F. Bachmann, L. Bass, M. Klein and C. Shelton IEE Proceedings Software Tzu-Chin Chien 1

Outline Preface This paper goal Prior work This paper approach Experiment Conclusion 2

Preface 3 1.Architecture is too abstract to understand. 2.Critical link between requirements engineering and design. 3.Architecture can grow, because software has become more and more complex.

About this paper The authors describe a structure called a reasoning framework as a modularization of quality attribute knowledge. 4 1.User interface friendly (understandability) 2.Change independently (operability) reasoning framework

Reasoning work Each reasoning framework provides mechanisms that will transform the architecture with respect to a given quality attribute theory. 5 Reasoning framework

Outline Preface This paper goal Prior work This paper approach Experiment Conclusion 6

Prior work There are three basic approaches to software architecture design with respect to quality attribute requirements. – 1. Nonfunctional requirement approach (NFR) – 2. The quality attribute model approach – 3. The intuitive design approach 7

1.Nonfunctional requirement approach (NFR) This idea is that the best one can be determined is that various architectural decisions help or hurt various quality attributes. 8 But there are two problems +

NFR’s problem 1.The architect must rely on intuition to determine which decisions to consider. 2.Whether a particular decision will help or hurt a particular quality attribute is very much a question of context. e.g. Using modularization too much would hurt performance, but it supports deployment onto multiple processors will help performance (not hurt it). 9

2.The quality attribute model approach ISO9126 lists 6 primary and 21 secondary quality attribute knowledge and practice. 10 But there are three problems

QAM’s problem 1.Not every quality attribute has an existing predictive method. 2.Not every architecture is amenable to analysis by various quality attribute models. (e.g. RMA:SJF preemptive) 3.Quality attribute models may not scale well. 11

3.The intuitive design approach 12 Architectural driver These methods are effective at organizing requirements but depend to a large extent on the architect to find solutions for the satisfaction of specific quality attribute requirements.

Attribute driven method 13 Architectural drivers Pattern Tactics Right? Remaining functionality Interface Verify Decompose Part Refine Finish Next part

Short summary 1.Nonfunctional requirements approach – Choose quality goal 2.Quality attribute model – Find relationship among the concept, but not scale well 3.Attribute driven model – Scale well 14

Outline Preface This paper goal Prior work This paper approach Experiment Conclusion 15

This paper approach A key concept in our design philosophy is describing an architecture partially in terms of responsibilities. Example: The checking of a password in support of an authentication requirement is a responsibility of the software. 16

This paper approach Combines three approaches (NFR,QAM, ADD) 17 NFR QAM ADD Choose the most important quality attribute goal Rational architectural decision Reduce problem of scale in using QAM Modularizing quality attribute It can be used inside a general design model.

Reasoning framework One of the inputs into a reasoning framework is a description of the current state of the architecture design. 18

This paper approach Steps – 1. find quality attribute requirements – 2. satisfy a quality attribute goal – 3. response measure – 4. architectural transformations (when the result in step3 missed) 19

Step1: Quality attribute requirements A general scenario is a system independent description of a quality attribute requirement. It has six parts: 1.Stimulus 2.Source of the stimulus 3.Environment 4.Artifact 5.Response 6.Response measure 20

Step2: Satisfying a quality attribute A single quality attribute requirement and describe the elements we use to determine whether it is satisfied by the current architecture design. 21

Step2 & Step3 Quality attribute model& Response measure 22

Step5: Architecture transformations (1) 23 Tactics is needed before Architecture transformations

Step4: Architecture transformations (2) 24 An architectural tactic can change the structure of an architecture 1. Out of response measure 2. Use tactic 3. Make sure

Outline Preface This paper goal Prior work This paper approach Experiment Conclusion 25

Sample problem The problem is 1.to receive automotive sensor information 2.to determine whether the sensors suggest either a problem with the environment being sensed or with the sensors themselves. 26

Figure 27 Problem’s data flow and their responsibility

Find quality attribute requirements 28

Satisfy a quality attribute goal (modifiability) 29

Response measure 30 Problem’s data flow and their responsibility *1 + 1* *0.8 * *1 + 2 * 0.2 > 3 day

Architecture transformations : Abstract common service 31

Figure 32

Change The costs of modifying the responsibilities ‘convert input into internal syntax’ and ‘determine sensor status’ are reduced since the common services have been removed from them. The new responsibility ‘receive input from sensor’ must be assigned a cost of modification. 33

Table 34

Response measure *1 + 1* *0.8 * *0.8 * 0.2 * * 0.5 < 3 day 1

Using ADD to scale There are three problems of scale associated with reasoning frameworks: 1.The number of codified reasoning frameworks is small. 2.Each reasoning framework should go deeper. 3.The solvers for any particular reasoning framework may not scale well with respect to the number of elements in the architecture. 36

Use of reasoning framework within ADD This paper modify 2b and 2c of ADD Original : Choose architectural patterns and tactics that satisfy the architecture drivers, and Allocate remaining functionality. Now: Choose architectural patterns and tactics and allocate functionality to satisfy the architectural drivers with the assistance of codified reasoning frameworks. Architecture drivers : There are many different opinions and preferences when it comes to how we should deal with software architecture. 37

Outline Preface This paper goal Prior work This paper approach Experiment Conclusion 38

Conclusion This enables a method that uses quality attribute reasoning frameworks to treat them in a “plug and play” fashion. A formal approach does not support designing for non-explicit requirements. The reasoning frameworks require a level of formality in specification of variables that is not always natural to an architect. 39