SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, 2008 1 T-76.5150 Software Architectures Introduction.

Slides:



Advertisements
Similar presentations
Dr. Rogelio Dávila Pérez
Advertisements

4th Module: Information Systems Development and Implementation:
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management.
Software Testing and Quality Attributes Software Testing Module ( ) Dr. Samer Hanna.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Software Architectures Quality.
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
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
The Architecture Design Process
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
Software Requirements
Overview of Software Requirements
Software Architecture in Practice
SE 555 – Software Requirements & Specifications Introduction
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 2 Wenbing Zhao Department of Electrical and Computer Engineering.
Software Architecture Quality. Outline Importance of assessing software architecture Better predict the quality of the system to be built How to improve.
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
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?
A Survey of Software Architecture Viewpoint Models Nicholas May
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
Architecture Tradeoff Analysis Method Based on presentations by Kim and Kazman
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
The Many Contexts of Software Architecture
Oracle High Availability Doug Smith CIS 764 Fall Semester 2007.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY 1 Requirements Engineering T Software Development Project.
Software Project Management Fifth Edition
Quality Assurance ITEC Rick Price. Expectations This course is not purely a lecture course – Classroom participation is a large portion – Everyone.
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
CSE 303 – Software Design and Architecture
Architecture Business Cycle
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville Software Engineering Slide 1 Software Requirements l Definition: Description and Specifications of a system l Topics covered: Functional.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 2Slide 1 Chapter 2 Computer-Based System Engineering As modified by Randy Smith.
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
1 Software Testing and Quality Assurance Lecture 33 – Software Quality Assurance.
Requirements Elicitation. Who are the stakeholders in determining system requirements, and how does their viewpoint influence the process? How are non-technical.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Creator: ACSession No: 16 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringFebruary 2006 (Software Quality) Configuration Management CSE300 Advanced.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Software Requirements Engineering: What, Why, Who, When, and How
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Lecture 7: Requirements Engineering
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Software Architectures Scenarios.
Software Testing Definition Software Testing Module ( ) Dr. Samer Odeh Hanna.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Tomi Männistö, Varvana Myllärniemi, 2008 T Software Architectures.
1 Software Architecture in Practice Quality attributes (The amputated version)
CSE 303 – Software Design and Architecture
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Chapter 4 Requirements Engineering (1/3) Yonsei University 2 nd Semester, 2015 Sanghyun Park.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Sotfware Engineering Seminar.
1 Software Requirements Descriptions and specifications of a system.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
Chapter 12: Other Quality Attributes
Classifications of Software Requirements
Chapter 4 – Requirements Engineering
Chapter 4 Requirements Engineering (1/3)
Chapter 11: Usability © Len Bass, Paul Clements, Rick Kazman, distributed under Creative Commons Attribution License.
Definitions.
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Lecture # 7 System Requirements
Requirements Document
Presentation transcript:

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Software Architectures Introduction to quality attributes

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Outline  Overview and motivation  Concepts and classifications  Quality attributes in architecture design

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Quality Attributes Overview and motivation

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, To get things started...  Discuss within a group  Identify some example real-life systems and their quality attribute requirements. These examples could be systems you have used, or systems you have developed.  Can you find an example of a system that has no QA requirements, or the QA requirements are so insignificant that they pose no constraints on the system implementation?

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Why are quality attributes important?  Are often more critical than functional requirements (Sommerville, 2004)  E.g., if an aircraft system does not meet its reliability requirements, it will not be taken into use  Affect how user perceives the quality of the product  E.g., awkward usability is a sure way to annoy user  Often cross-cutting throughout many functions, difficult to avoid or find countermeasures  Despite this, the software development in many companies is feature-driven  Perhaps functionality is easier to be marketed…?

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Why should an architect care about QAs?  Software architecture substantially determines many of the system quality attributes  If the architecture hasn’t been designed to support certain quality attributes, it is hard to add support through detailed design only  Changes to quality attributes may require changes to system architecture  In other words, many quality attributes are architecturally sensitive  However, some quality attributes are more sensitive to the architecture than others  Compare e.g. modifiability and usability

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, But isn’t functionality more important for SA?  The mapping of system’s functionality onto software structures determines the architecture’s support for quality attributes  However, functionality itself is not architecturally sensitive  Functionality is orthogonal to structure  Any number of possible structures can be conceived to implement any given functionality  If achievement of functionality is the only requirement, the system could exist as a single monolithic component with no internal structure at all (Bass et al., 2003)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Why are quality attributes challenging?  Firstly, quality attributes often depend on the system as a whole, not on a single service or subsystem  How to pinpoint the location in the system where reliability is realised?  That is why architects should care about QAs!  Secondly, quality attributes interrelate with functionality  Thirdly, quality attributes are often in conflict with each other  Fourthly, it is often surprisingly difficult to pinpoint quality attribute needs as requirements

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Challenge: interrelation with functionality  Many QAs cannot be cleanly separated from raw behaviour  Often impossible to say: ”quality of system is X” without reference to system functions  Functionality tells what the system does, quality attributes specify how the system does it  Quality attributes act as constraints on functionality (Sommerville, 2004)  The choice of functions does not dictate the level of quality attributes  However, functionality affects the achievement of quality attributes  Often, in order to achieve quality attributes, certain functionality is added to the system  Quality is transformed into functionality in the development lifecycle

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Challenge: QAs can be in tradeoff with each other (Barbacci et al., 1995)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, And with business qualities Low cost Short time-to-market High quality Inexpensive; lower quality; longer time-to-market More expensive; moderate quality; moderate time-to-market Expensive; high quality; longer time-to-market (Rozanski and Woods, 2005)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Challenge: QA requirements  Three typical situations in companies 1. QA requirements are not explicitly recorded, but exist as domain knowledge in employees’ heads 2. QA requirements are explicitly recorded, but not in a verifiable manner  Symptoms  ”The system shall be robust.”  ”The system shall be highly modifiable.”  ”The system shall be secure from unauthorised break-in.”  ”The system shall exhibit acceptable performance.”  Scenarios are a good way of concretising QA requirements!

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Challenge: QA requirements 3. QA requirements are recorded as solutions  Symptoms  ”System shall use IPsec for point-to-point communication.”  ”System shall use 4-digit PINs as passwords.”  Benefit: easy to understand and implement  Drawbacks  Do we understand the user needs properly?  How do we keep track when user needs or available solutions change?  Do we know enough to justify the solution at the requirements level, when other solutions are still open?

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Quality Attributes Concepts and classifications

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Diversity of quality attributes Reliability Interoperability Performance Usability Scalability Security Availability Maintainability Modifiability Testability Safety Survivability Confidentiality Portability Dependability Timeliness Integrity ? Fault-tolerance Robustness

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Quality attribute, quality property  Often used as synonyms  IEEE Standard Glossary of Software Engineering Terminology (IEEE Std )  Quality attribute: A feature or characteristic that affects an item’s quality  Quality: (1) The degree to which a system, component, or process meets specified requirements (2) The degree to which a system, component, or process meets customer or user needs and expectations  A quality property is an externally visible, non-functional property of a system such a performance, security, or scalability (Rozanski & Woods, 2005).

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Using classifications for defining QAs  Previous definitions are perhaps not self-explanatory  Quality attributes are often defined by enumerating and classifying them, and then giving more concrete definitions to sub-attributes  Different classifications exist  However, classifications are not unambiguous  Is availability a characteristic of security or reliability?  Classifications are good for increasing our understanding, not so good for dividing things cleanly into separate containers

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, ISO/IEC 9126 Quality model for internal and external attributes

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, ISO/IEC 9216 Quality model framework process quality internal quality attributes external quality attributes quality in use attributes process measures internal measures external measures quality in use measures ProcessSoftware product Effect of software product influences depends on contexts of use

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Classification of Bass et al., 2003  System quality attributes  Observable via execution  Performance, security, reliability, usability, etc.  Not observable via execution  Maintainability, testability, portability, etc.  These classes behave quite differently!  Other qualities not related to the external properties of the system  Business quality  Cost, time-to-market, etc.  Quality of the architecture  Conceptual integrity, buildability, etc.

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Classification of dependability and security  An integration of dependability and security (Avizienis et al., 2004)  Stems from decades of work within dependability and security community  Is based on the idea that both have similar threats and can be achieved with similar means  Faults, errors and failures Confidentiality Maintainability Integrity Safety Availability Reliability Dependability Security

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Quality Attributes QAs in architecture design

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, QAs in architecture design Requirements Scenarios Means of achieving Tactics, patterns Pitfalls, antipatterns Design decisions Documented using architectural views Technologies Styles, patterns Architecture design process Activities, checklists

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Perspectives and quality attributes  Perspectives collect many of the items in the previous slide into one knowledge pool  An architectural perspective  consists of activities, tactics, pitfalls, checklists  aims to ensure the achievement of a particular quality attribute or cross-cutting concern  Many quality attributes span across many arhitectural views  Motivation for perspectives

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Summary  Quality attributes form an important part of software architects’ work  Next week, we will go through individual quality attributes and discuss  What they are  How to specify them  How to achieve them  How to apply perspectives to views are discussed later

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, References Avizienis, Algirdas; Laprie, Jean-Claude; Randell, Brian and Landwehr, Carl. Basic Concepts and Taxonomy of Dependable and Secure Computing. IEEE Transactions on Dependable and Secure Computing, 1(1), Barbacci, Mario; Longstaff, Thomas; Klein, Mark and Weinstock, Charles. Quality Attributes. SEI Technical Report CMU/SEI-95-TR Bass, Len; Clements, Paul and Kazman, Rick. Software Architecture in Practice. 2nd edition. Addison- Wesley, Folmer, Eelke and Bosch, Jan. Architecting for Usability: A Survey. Journal of Systems and Software 70, IEEE Std IEEE Standard Glossary of Software Engineering Terminology ISO/IEC Information technology – Security techniques – Evaluation criteria for IT security – Part 1: Introduction and general model. ISO/IEC Standard , ISO/IEC Software engineering – Product quality – Part 1: Quality model. ISO/IEC Standard :2001, Matinlassi, Mari and Niemelä, Eila. The Impact of Maintainability on Component-based Software Systems. Proc. of EUROMICRO Conference (EUROMICRO’03) Rozanski, Nick and Woods, Eoin. Software Systems Architecture: Working with Stakeholders Using Viewpoints and Perspectives. Addison-Wesley, Sommerville, Ian. Software Engineering. 7th edition. Addison-Wesley, 2004.