SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, 2006 1 T-76.5650 Sotfware Engineering Seminar.

Slides:



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

Software Requirements
Software Requirements
Chapter 2 – Software Processes
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Chapter 17 I.Omaima Al-Matrafi
Quality Management. What is a software product? Software product = computer programs (sources and executable) + associated documentation Software products.
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.
Instructor: Tasneem Darwish
Software Requirements
7M701 1 Software Engineering Software Requirements Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 5
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software Requirements
1 Quality Assurance in Construction and Maintenance (Section 13.4 of Maintenance Text; Chapter 20 of Code Complete) Steve Chenoweth CSSE 375, Rose-Hulman.
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
A Survey of Software Architecture Viewpoint Models Nicholas May
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
Requirements Engineering
Oracle High Availability Doug Smith CIS 764 Fall Semester 2007.
Software Engineering Muhammad Fahad Khan
©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.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
Quality Models and Quality Attributes. Outline  Process and product quality Improving the quality of the process can improve the quality of the product.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
©Ian Sommerville Software Engineering Slide 1 Software Requirements l Definition: Description and Specifications of a system l Topics covered: Functional.
Supplementary Specifications (Chapters 20,22 - Requirements Text) 1.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
Software Requirements Presented By Dr. Shazzad Hosain.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 3 Slide 1 Critical Systems 1.
Other Quality Attributes Other Important Quality attributes Variability: a special form of modifiability. The ability of a system and its supporting artifacts.
Lecture 7: Requirements Engineering
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)
IS550: Software requirements engineering Dr. Azeddine Chikh 2. Functional and non-functional requirements.
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Software Architectures Introduction.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
1 Software Architecture in Practice Quality attributes (The amputated version)
CSE 303 – Software Design and Architecture
SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Sotfware Engineering Seminar.
Chapter 4 – Requirements Engineering Lecture 1 The hardest part of the software task is arriving at a complete and consistent specification, and much of.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
©Ian Sommerville 2000Dependability Slide 1 Chapter 16 Dependability.
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)
TOTAL QUALITY MANAGEMENT
Classifications of Software Requirements
A Survey on Software Architecture Analysis Methods
Chapter 4 – Requirements Engineering
Software Requirements
Presentation on Software Requirements Submitted by
Chapter 4 Requirements Engineering (1/3)
Chapter 5 – Requirements Engineering
SEVERITY & PRIORITY RELATIONSHIP
Definitions.
Lecture # 7 System Requirements
Presentation transcript:

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, T Sotfware Engineering Seminar Introduction

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Outline  The topic of this course  Why are quality attributes important?  Why are quality attributes difficult?  Quality attributes vs. functionality  Definition of the concept  Quality attribute classifications

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, The topic of this course

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

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, The topic of this course Testing, QA Detailed design, implementation Requirements Software architecture Quality attributes Functionality Lecture 2 Lecture 3 Lecture 4

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Group discussion  Identify example real-life systems and quality attributes that are important in them. These examples could be systems you have used, or systems you have developed. How does the system implementation reflect these QA requirements?  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., ackward 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 are quality attributes difficult?  Firstly, it is often surprisingly difficult to pinpoint them in a measurable and observable requirement  “The system shall be robust.”  Secondly, 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?  Thirdly, quality attributes are often in conflict with each other and with functionality  See next slides

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, 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, Why are quality attributes difficult?  Despite the interaction between different quality attributes, the research is, for historical reasons, divided into several communities  Performance community  Reliability community  Security community  Usability community  Etc.  Difficult to get an overview of approaches, difficult to find good cross-cutting articles

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Quality attributes vs. functionality  What is the relationship between functionality and quality attributes?  Functionality and quality attributes are orthogonal (Bass et al., 2003)  The choice of functions does not dictate the level of quality attributes  However, functionality affects the achievement of quality attributes  Quality attributes act as constraints on functionality (Sommerville, 2004)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Quality attributes vs. functionality  Do quality attributes exist per se?  Many quality attributes cannot be 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  Often, in order to achieve quality attributes, certain functionality is added to the system  Quality is transformed into functionality in the development lifecycle  In the end, there is a piece of executing software that behaves in a certain prescribed way

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Definition of the concept

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

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, The mess around the concept  The concept in the center of this seminar course is called differently in different contexts  Although these terms are often used to refer to same things, there are subtle differences between selected words Non-functional Requirement Property Quality Attribute

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, Quality attributes  Previous definitions are perhaps not self- explanatory  Quality attributes are often defined by enumerating and classifying them, and then giving more concrete definitions to subattributes  Different classifications exist (e.g. ISO/IEC 9126; Avizienis et al., 2004; Barbacci et al., 1995)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Non-functional requirement (NFR)  Is often used a synonym for quality attribute or quality attribute requirement  Functional requirement: A requirement that specifies a function that a system or system component must be able to perform (IEEE Std )  Functional requirement: statements of services the system should provide (Sommerville, 2004)  Non-functional requirement: constraints on the services or functions offered by the system (Sommerville, 2004)  Note: we are talking about a requirement, not a characteristic of the software itself (property, attribute)

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Non-functional requirement vs. quality attribute requirement  Non-functional requirement == quality attribute requirement?  Example non-functional requirement: The software development process should conform to standard XYZ.  A constraint (Sommerville, 2004)  Example quality attribute requirement: Software should authenticate all users.  Security requirement, yet functional in nature Quality attribute requirements Non-functional requirements

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Which term to prefer?  I personally like to refer to “quality attributes”  No confusion about what is functional and what is not  Refers to a characteristic of the software  Taxonomies exist, even a standard  Often used when discussing software architectures  However, you can pick the one you like and stick to that  Take into account the connotations of your term  Remember to use different terms when searching for articles!

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

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Classification of QAs  Why classify quality attributes?  A way to define quality attributes by dividing them into subattributes and giving more concrete definitions to them  Quality attributes in the same class often behave in a similar fashion  Specification, realisation, verification  Classification into observable and not observable via execution (Bass et al., 2003)  Observable via execution  Performance, security, reliability, etc.  Not observable via execution  Maintainability, testability, portability, etc.

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, ISO/IEC 9126 Quality model for internal and external attributes

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Classification of ependability  Dependability = ability to deliver service that can be justifiably trusted  Is divided into the following five attributes (Avizienis et al., 2004) Dependability Reliability Availability Safety Integrity Maintainability See also security Especially from fault removal and repair point of view

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Classification of security  Security = the capability of the software to protect information so that unauthorised persons or systems cannot read or modify them and authorised persons or systems are not denied access to them (ISO/IEC , 2001)  Security is divided into the following attributes (Avizienis et al., 2004) Security Confidentiality Integrity Availability Confidentiality Integrity Availability

SoberIT Software Business and Engineering Institute HELSINKI UNIVERSITY OF TECHNOLOGY © Varvana Myllärniemi, Classification of maintainability  Maintainability = the ease with which a software system can be maintained  However, some treat maintainability as a synonym for modifiability, some treat them separately (Matinlassi and Niemelä, 2003) Maintainability Flexibility Reusability Modifiability Testability Integrability Extensibility Portability

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, Clements, Paul; Kazman, Rick and Klein, Mark. Evaluating Software Architectures. Addison-Wesley, 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.