Software Quality UNIT - 1.

Slides:



Advertisements
Similar presentations
1.Quality-“a characteristic or attribute of something.” As an attribute of an item, quality refers to measurable characteristics— things we are able to.
Advertisements

Chapter 17 I.Omaima Al-Matrafi
Software Quality Metrics
Software Quality Assurance For Software Engineering && Architecture and Design.
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Quality of Information systems. Quality Quality is the degree on which a product satifies the requirements Quality management requires that : that requirements.
Factor Of Software Quality
Managing Software Quality
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
1 Software Quality CIS 375 Bruce R. Maxim UM-Dearborn.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Chapter 6 : Software Metrics
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Software Project Management Lecture # 10. Outline Quality Management (chapter 26)  What is quality?  Meaning of Quality in Various Context  Some quality.
This chapter is extracted from Sommerville’s slides. Text book chapter
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Software Project Management Lecture # 11. Outline Quality Management (chapter 26 - Pressman)  What is quality?  Meaning of Quality in Various Context.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
Software Testing and Quality Assurance Software Quality Assurance 1.
I Power Higher Computing Software Development The Software Development Process.
University of Sunderland COM369 Unit 6 COM369 Project Quality Unit 6.
Software quality factors
Quality Models in Software Engineering Literature: An Analytical and Comparative Study Rafa E. Al-Qutaish, PhD Al Ain University of Science and Technology.
The Software Development Process
Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software.
A Metrics Program. Advantages of Collecting Software Quality Metrics Objective assessments as to whether quality requirements are being met can be made.
CSE 303 – Software Design and Architecture
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
 System Requirement Specification and System Planning.
TOTAL QUALITY MANAGEMENT
Software Project Configuration Management
Software Quality Control and Quality Assurance: Introduction
Chapter 1 The Systems Development Environment
Classifications of Software Requirements
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Software Quality Assurance
Software Verification and Validation
SEVERITY & PRIORITY RELATIONSHIP
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
CIF301 Project Quality Unit 6
Chapter 1 The Systems Development Environment
The Systems Engineering Context
Software Quality Models.
Software Quality Assurance
Software Testing and Quality Assurance
Chapter 1 The Systems Development Environment
HCI in the software process
Software engineering.
Requirements and the Software Lifecycle
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Rekayasa Perangkat Lunak
Goal, Question, and Metrics
Software Quality Engineering CS- 449
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
Software Quality Assurance
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software Quality Assurance Lecture 3
Chapter 13 Quality Management
HCI in the software process
Human Computer Interaction Lecture 14 HCI in Software Process
Chapter 1 The Systems Development Environment
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Presentation transcript:

Software Quality UNIT - 1

Introduction Software Quality measures how well the software is designed (Quality of design) and how well the software conforms to the design (Quality of conformance) Where, Quality of design concerned about the specifications, design and requirements of the software Quality of Conformance concerned with the implementation of the software

Introduction The primary goal of engineering the product is To improve the quality of the software products To increase the productivity & Job Satisfaction of the engineers

Introduction Note: User Satisfaction issue must also be considered for Quality User Satisfaction = Good Quality + Delivered within budget and Schedule + Complaint product Most of the developers feel that software quality can be carried out only after the code is generated. But it is not true. It can be enforced each and every stages of a software process

Introduction Note: If a team stresses quality in all engineering activities, It reduces the amount of rework Results in lower cost

Introduction Note: SQM is the management Technique that can be applied to the development of software to favor the quality Software Quality comprises of Quality Control Quality Assurance Quality Cost

Introduction What is Quality? It is a characteristic or an attribute of something that must conforms to the design standards Quality can be a measurable characteristics that can be compared to length, color etc.,

Introduction Insight about Quality? Quality is Not absolute Quality is Multidimensional Subject to constraints Quality criteria are not independant

Introduction What is Quality? “The degree of Excellence” - OED, 1990 “Zero Defects” – Crosby, 1979 “The totality of features and characteristics of a product or service that bear on its ability to satisfy specified needs” – ISO, 1986 Quality of a product is achieved thro its features & characteristics So it is associated with the attribute of a product thro which performance can be achieved

Introduction Software Quality? Conformance to explicitly stated functional, performance requirements & development standards and implicit characteristics that are expected by all softwares Department of Defense defined a SQ as “the degree to which the attribute of the softwares enable it to perform its intended end use”

Introduction Software Quality 2 features of quality software: Conformance to its specification Fitness to its intended purpose

Introduction Software Quality When compared to other industry, Software Quality will be problamatic coz’ It does not have physical existence Lack of knowledge of client Rapid change rate in both hardware & software High expectation of the customer

Introduction Views of Quality Quality is a multidimensional construct It can be considered as a “Polyhedron Metaphor” where a quality is represented by a 3-dimensional solid & each face represents a different aspects of quality “Polyhedron Metaphor” is illustrated as

Introduction Views of Quality Timeliness Cost Correctness Functionality Reliability Maintainability

Introduction Views of Quality Based on different characteristics of a product, it is been classified into number of views or perspectives These views may be considered based on external observers viewing towards a product ex: user, supplier or client etc., These views are used to vary & conflict based on different types of peoples who is viewing the product Ex: viewing persons Project Manager Business Analyst Programmer Quality Auditor End user Line Manager and Project Sponsor

Introduction Views of Quality In general, conflicting views are represented between User and Designer Designer User Good Specification What I want Technically correct Fast Response Easy to maintain Easy to use help menu Fast development Exception data & reporting Well documented Input data once User managed & Well trained Access to all systems Simple Menu Structure Accurate time

Introduction Views of Quality conflicting views are classified into 5 types Transcendent view Product based view Value based view Manufacturing view User based view

Introduction Views of Quality Transcendent view Value based Product based Manufacturing user based

Introduction Views of Quality Transcendent view Product based view This view relates quality to excellence or elegance. In large scale projects, it is expensive to innate high degree of excellence Product based view Quality  Cost i.e., to build high quality in a product it costs high This type of quality can be added to a product in 2 ways Greater Functionality High Quality Solution thro the use of QMS

Introduction Views of Quality Value based view Manufacturing view This view depends on what price that the customer can afford With in the software development, this view can be used to add the quality to a product with the help of needed people, time & tools Manufacturing view This view measures the quality in terms of conformance to requirements

Introduction Views of Quality User based view This view can be summarized as “Fitness for purpose” i.e., the intended functionality for the product must be facilitated according to the user

Hierarchical Models of Quality To compare quality in different situations (quantitatively & qualitatively), it is needed to establish a model of quality in hierarchical structure Ex: Assessment and Reporting method used in School Student progress report is prepared under series of headings such as Subject name with both qualitative & quantitative assessment These measures are derived from a examination or a formal test

Hierarchical Models of Quality Hierarchical Model (Cont…) Traditional Assessment Method Subject Teachers Comments Term Grade (A-E) Exam Mark (%) English Maths Science Tamil Social Science Total

Hierarchical Models of Quality Hierarchical Model (Cont…) Presently, the assessment of a person has become complicated cos’ a subject may be broken into different level of skills where each of the skills are measured collectively to give a more detailed result i.e.,

Hierarchical Models of Quality Hierarchical Model (Cont…) Student Maths Science Social English Oral Skills Reading Skills Writing Creative Has evolved into English

Hierarchical Models of Quality Hierarchical Model (Cont…) Based on different measures of software, its quality can be depicted as: Quality factor Quality criterion Ex: Maintainability Ex: Reliability Ex: Usability Quality Metrics Ex of Metrics: Accuracy, Consistency, Error Tolerance and simplicity

Hierarchical Models of Quality These models are used to identify the needed quality criteria's that can be used in improving the resultant quality of the product Types of quality models McCall Model Boehm Model FURPS Model ISO 9126 Model Dromey Model

Hierarchical Models of Quality Hierarchical Model of McCall Proposed by McCall in 1977. It is also referred as General Electronics model after McCall This model is originates from US military developed for US Air force This model can be used during the development process by the system developers In this model, McCall attempts to bridge the gap between users & developers by focusing number of quality factors that reflect both the user views & developer priorities

Hierarchical Models of Quality Hierarchical Model of McCall Product Revision Transition Product operations Portability Reusability Interoperability Maintainability Flexibility Testability Correctness, Reliability, Efficiency, Integrity, and Usability

Hierarchical Models of Quality Hierarchical Model of McCall McCall model identifies 3 areas of software work or 3 types of quality characteristics Product operation Product revision Product Transition Product Operation – It explains the working operation of the product that can be learned easily efficiently Product Revision - It concerned with error correction of the system - The system may undergo changes Product Transition – This is applicable in distributed applications & adaptable to new environments

Hierarchical Models of Quality Hierarchical Model of McCall McCall defines following 11 quality factors: Usability Integrity Efficiency Correctness Reliability Maintainability Flexibility Testability Portability Reusability Interoperability Execution efficiency Storage efficiency

Hierarchical Models of Quality Hierarchical Model of McCall McCall identifies 3 areas of software work in a hierarchy of factors, criteria and metrics 11 factors (To specify) – External view of the software seen by the users 23 criteria's (To build) – Internal view of the software seen by developers Metrics (To control) – method of measurement

Hierarchical Models of Quality

Hierarchical Models of Quality

Hierarchical Models of Quality Hierarchical Model of Boehm (1978) This model is presented by Barry W Boehm Boehm model defines “set of well defined, differentiated characteristics” of software quality where the quality criteria's are subdivided. In this first division is named as “general utility” and the next one is “As-is utility” that is the subtype of first one.

Hierarchical Models of Quality Hierarchical Model of Boehm (1978) It is similar to McCall’s model where a quality of software is structured around Higher level characteristics Intermediate level characteristics Primitive characteristics

Hierarchical Models of Quality Hierarchical Model of Boehm (1978) Higher level characteristics – it addresses answers for 3 questions: As-is Utility [How well (easily, reliably, efficiently) can I use as-is?] Maintainability [How easy is it to understand, modify and retest?] Portability [can I still use it even if I change the environment]

Hierarchical Models of Quality Hierarchical Model of Boehm (1978) Intermediate level characteristics – It identifies 7 quality factors that are expected by the software: Portability Reliability Efficiency Usability Testability Understandability Flexibility As-is Utility Maintainability characteristics

Hierarchical Models of Quality Hierarchical Model of Boehm (1978) Primitive characteristics – Provides the foundation for defining quality metrics

Robustness / Integrity Device Independence Self-contained ness Accuracy Completeness Robustness / Integrity Consistency Accountability Device Efficiency Accessibility Communicativeness Self descriptiveness Structuredness conciseness Legibility Augment ability Portability Reliability Efficiency Human Engineering Testability Understandability Modifiability Maintainability As-is Utility General Utility

Hierarchical Models of Quality Summary of McCall & Boehm Models Boehm’s and McCall’s models might appear very similar. the difference is that: McCall’s model primarily focuses on the precise measurement of the high-level characteristics “As-is utility” Boehm’s quality model is based on a wider range of characteristics with an extended and detailed focus on primarily maintainability.

Hierarchical Models of Quality Comparison of McCall & Boehm Models by QF to QF

Quality Measurement Measurement of quality is one of the key problem highlighted by IT practitioners Quality measurement is expressed in terms of Metrics that is a measurable property which is an indicator of one or more quality criteria that are seeking to measure Conditions that the quality metric are: It must be linked to the quality criterion that it seek to measure It must be sensitive to different criterion It provides determination of the criterion

Quality Measurement Measurement technique to a software is similar to the traditional science methods. But it is more complex “Structuredness” is the main factor for the software thro which quality can be measured. Well structured code is easy to maintain & adapt which can be calculated in terms of average length of code modules in the program Lines of code Structuredness  modularity  ---------------------------- Number of modules

Quality Measurement Software Metrics “Structuredness” is used to predict the maintainability, reliability & adaptability of the software later in the lifecycle Classified into 2 types: Predictive Metrics Descriptive Metrics

Quality Measurement Software Metrics (Cont…) Predictive Metrics – It is used to make predictions about the software later in the life cycle Descriptive Metrics – It describes the state of the software at the time of the measurement For Ex: reliability metric might be based upon the number of “system crashes” during the given period

Quality Measurements Gilb’s Approach It is an iterative approach aiming to converge towards clear & measurable multidimensional objectives This approach makes use the concept of McCall & Boehm models For each stage, a partial product can be viewed with user where a product will be evaluated to identify whether it meets the needs of user. If it does not satisfy errors has to be identified & cleared out during the next iteration until a product gets satisfied by the user.

Quality Measurements Gilb’s Approach 5 problem areas highlighted Simple fact that the method is different Need of training & re-training and associated costs Need of effective management Need to measure progress towards the ultimate goal Picking up errors

Quality Measurements Gilb’s Approach With reference to Gilb’s approach, product quality can be measured in terms of “Quality Template” It models quality in terms of Quality attributes & Resource attributes. This is because quality of a product can be constrained by the available resources

Quality Measurements Gilb’s Approach “Quality Template” can be pictured as: Workability Availability Adaptability Usability Other Qualities People Time Money Tools Other Resources Qualities Resources

Quality Measurements Gilb’s Approach Quality Attributes Workability Availability Adaptability Usability

Quality Measurements Gilb’s Approach: Quality Attributes & its sub-attributes Workability Process Capacity Storage Capacity Responsiveness Availability Reliability Maintainability Integrity Adaptability Improvability Extendability Portability Usability Entry Level Requirements Learning level requirements Handling ability Likability

Quality Measurements Gilb’s Approach: Quality Attributes Workability It is defined as the ability of the system to do work (i.e., transaction processing) Divided into sub-attributes of: Process capacity – It is the ability of the system to process transactions with in a given unit of time Storage capacity – It is the ability of the system to store information Responsiveness – It is a measure of the response to a single event

Quality Measurements Gilb’s Approach: Quality Attributes Availability It is the ability of the system to be used with the proportion of elapsed time Classified into Sub attributes of: Reliability Maintainability Integrity

Quality Measurements Gilb’s Approach: Quality Attributes Availability Reliability It is the ability of the system that should not fail from its operating environment under any circumstances It is the degree to which the system does what it should to do. Coz’ purpose of a system is different & the purpose of parts of a system will be different. So the assessment of reliability will also vary

Quality Measurements Gilb’s Approach: Quality Attributes Availability Reliability Based on the analysis of Dickson, Gilb’s have suggested that reliability can be assessed in terms of Fidelity Veracity Viability For both Logicware (code) and Dataware (data files)

Quality Measurements Gilb’s Approach: Quality Attributes Dickson’s classification of Reliability Logicware Fidelity Concerned with the accuracy of algorithm implementation Veracity Concerned with the representation of “real world” be an algorithm Viability Is the extent to which an algorithm meets its specification in terms of performance & requirements Dataware Says how accurately an idea is represented by the data within a application How well the data matches with the world How well the required data fits the design constraints

Quality Measurements Gilb’s Approach: Quality Attributes Availability Maintainability It is the effort required to locate & fix a fault in the program within its operating environment It is the process of fault handling Sub-attributes of Maintainability are: Problem recognition Inspection Time Administrative Delay Active Correction Tool Collection Testing Problem analysis Test Evaluation Correction Recovery

Quality Measurements Gilb’s Approach: Quality Attributes Availability Integrity It is the protection of the program from unauthorized access It is a measure of a system to remain intact under threat Integrity may affects availability So. A system with poor integrity is likely to be unavailable for much time

Quality Measurements Gilb’s Approach: Quality Attributes Adaptability Classified into sub-attributes of: Improvability – It is the time taken to make minor changes to the system Extendability – It is the ease of adding new functionality to a system Portability – It is the east of moving a system from one environment to another

Quality Measurements Gilb’s Approach: Quality Attributes Usability It is the ability of the system that should facilitate the ease of use & effectiveness of a system Classified into sub-attributes of: Handling ability – It is a measure that says how well productivity can be proceeded after the error is detected Entry level requirements – are human capabilities such as intelligence level, language proficiency Learning level requirements – are resources such as time needed to reach the performance of the system Likability – It says how well people like the system

Quality Measurements Gilb’s Approach: Resource Attributes People Time Money Tools Other Resources

Quality Measurements Gilb’s Approach: Resource Attributes Time Resource 2 types Calendar time to delivery Time taken by the system to carry out the task People Resource Measured in terms of “Man-years” But the availability of People for the particular development is critical Ex: can not utilize PASCAL programmers for C programming

Quality Measurements Gilb’s Approach: Resource Attributes Money Resources Concerned with both development & maintenance costs In general, 80% of cost would be spent to maintenance for quality improvement Tool Resources It comprises all physical resources

Quality Measurements Gilb’s Approach: Resource Attributes For continuous improvements, these resources will be considered as constraints to a product People Time Money Tools

Quality Measurements Gilb’s Approach: Resource Attributes Gilb’s have defined some measures to quantify those attributes. And these can be measured in terms of “units per time” For ex: Transactions per second Records per minute Bytes per line Bits per node per second

Quality Measurements Gilb’s Approach: Resource Attributes Workability Process Capacity Units per time Transactions per sec. Storage Capacity Units stored Bytes per second Responsiveness Actions per time Response time Attribute Sub-attribute General measure Example

Quality Measurements GQM Model GQM, the acronym for "Goal, Question, Metric” It is an approach to “Software Metrics” It was developed by Victor Basili of the University of Maryland & the Software Engineering Laboratory at the NASA Goddard Space Flight Center

Quality Measurements GQM defines a measurement model on three levels: GQM Model GQM defines a measurement model on three levels: Conceptual level (goal) A goal is defined for an object for a variety of reasons, with respect to various models of quality, from various points of view and relative to a particular environment. Operational level (question) A set of questions is used to define models of the object of study and then focuses on that object to characterize the assessment or achievement of a specific goal. Quantitative level (metric) A set of metrics, based on the models, is associated with every question in order to answer it in a measurable way.

Quality Measurements GQM Model GQM templates are a structured way of specifying goals Field Examples Object of study pair programming, static analysis tool Purpose characterize, understand, evaluate, predict Focus programmer effort, program reliability stakeholder developer, customer, manager