TOTAL QUALITY MANAGEMENT

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Quality Assurance Plan
Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.
CHAPTER 1 Introduction to SQA.
Software project management (intro) Quality assurance.
R&D SDM 1 Metrics How to measure and assess software engineering? 2009 Theo Schouten.
Software Requirements
OHT 3.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 The need for comprehensive software quality requirements Classification.
SOFTWARE PROJECT MANAGEMENT Project Quality Management Dr. Ahmet TÜMAY, PMP.
Software Quality Assurance For Software Engineering && Architecture and Design.
Introduction to Software Testing
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
Non-functional requirements
Chapter : Software Process
Software Project Management Fifth Edition
Managing Software Quality
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Chapter 2 The process Process, Methods, and Tools
Sept - Dec w1d11 Beyond Accuracy: What Data Quality Means to Data Consumers CMPT 455/826 - Week 1, Day 1 (based on R.Y. Wang & D.M. Strong)
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
CSE 303 – Software Design and Architecture
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
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
CS460 © 2003 Ray S. Babcock Metrics The term metrics refers to any measurement related to software development. ● Lines of Code ● number of defects ● defects.
Software Engineering Quality What is Quality? Quality software is software that satisfies a user’s requirements, whether that is explicit or implicit.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem.
12.1 Introduction Checklists are used as a technique to give status information in a formalized manner about all aspects of the test process. This chapter.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Chapter 13: Software Quality Project Management Afnan Albahli.
CSE 303 – Software Design and Architecture
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 15a: Product Metrics for Software Software Engineering: A Practitioner’s Approach, 6/e Chapter.
Software Quality Prepared By: Rooshabh Kothari Assistant Professor T & P Co-ordinator CSE/IT Department 1.
 System Requirement Specification and System Planning.
Chapter 2 Object-Oriented Paradigm Overview
Software Quality Control and Quality Assurance: Introduction
Software Quality Management
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Chapter 4 – Requirements Engineering
Software Quality Assurance
SEVERITY & PRIORITY RELATIONSHIP
Source & Courtesy: Doc. S. Dapkūnas
Software Quality Assurance Software Quality Factor
CIF301 Project Quality Unit 6
McCall’s Quality Factors
Lecture 15: Technical Metrics
Software Quality Assurance
Software Testing and Quality Assurance
IS442 Information Systems Engineering
Software engineering.
مقدمه اي بر مهندسي نيازمنديها
Rekayasa Perangkat Lunak
Introduction to Software Testing
Charakteristiky kvality
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
Software Quality Assurance
Software Quality Assurance Lecture 3
An Introduction to Software Architecture
Managing Software Quality
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Requirements Specification (SRS) Template.
ISO/IEC Systems and software Quality Requirements and Evaluation
Presentation transcript:

TOTAL QUALITY MANAGEMENT Unit-5 Software quality Presented by Ramya Rajendran

Software quality Software quality is the “conformance to explicit stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software

Cont… The above definition emphasize on these three important points Software requirements are the foundation from which quality is measured. Lack of conformance to requirements is lack of quality Specified standards define a set of development criteria that guide the manner in which software is engineered. If the criteria are not followed, lack of quality will almost surely in result There is a set of implicit requirements that often goes unmentioned. If software conforms to its explicit requirements but fails to meet implicit requirements, software quality is suspect Software quality is a complex mix of factors that will vary across different applications and the customer who request them

Cont… Software quality is a complex mix of factors that will vary across different applications and the customer who request them Software quality can be considered as: 1) Product quality: The product quality describes the attributes of the products of the software process. For example Completeness of the design documents Traceability of the design Reliability and maintainability of the code, and Coverage of the tests

Cont… 2) Process quality: process quality describes the attributes of the software development process itself. Five software environment elements that are present in all the software projects are taken into account, they are: Techniques Tools People Organization, and Facilities

Cont… Process quality mainly focuses on, for example Correct implementation of a technique Productivity of a tool Abilities of the programmers Communicativeness of an organization, and How well suited are the installations and facilities?

Classification of software qualities There are many desirable software qualities. Some of these apply both to the product and to the process used to produce the product. The user wants the software products to be reliable, efficient, and easy to use. The producer of the software wants it to be verifiable, maintainable, portable, and extensible. The manager of the software project wants the process of software development to be productive and easy to control

External versus internal qualities: we can divide software qualities into external and internal qualities. The external qualities are visible to the users of the system. The internal qualities are those that concern the developers of the system. In general, a user of the software, that help developers achieve the external qualities. For example, the internal quality of verifiability is necessary for achieving the external quality of reliability. In many cases, however, the qualities are related closely and the distinction between internal and external is not sharp

Product versus process qualities: We use a process to produce the software product. We can also attribute some qualities to the process, although process qualities often are closely related to product qualities. For example, it the process requires careful planning of system test data before any design and development of the system starts, products reliability will increase. Some qualities, such as efficiency, apply both to the product and to the process

Cont… Product usually refers to what is delivered to the customer. Even though this is an acceptable definition from the customer’s perspective, it is not adequate for the developer who requires a general definition of a software product that encompasses not only the object code and the user manual that are delivered to the customer but also the requirements, design, source code, test data, etc. in fact, it is possible to deliver different subsets of the same product to different customers

Importance of software quality Quality is a concern of all producers of goods and services. However, the special characteristics of software, and in particular, its intangibility and complexity, make special demands

Increasing criticality of software: The final customer or user is naturally anxious about the general quality of software, especially its reliability. This is increasingly the case as organizations become more dependent on their computer systems and software is used more and more in areas which are safety critical

Intangibility of software: This makes it difficult to know whether a particular task in a project has been completed satisfactorily. The results of these tasks can be made tangible by demanding that the developers produce ‘deliverables’ that can be examined for quality

Accumulating errors during software development: As computer system development is made-up of a number of steps where the output from one step is the input to the next, the errors in the earlier deliverables will be added to those in the later steps leading to an accumulating detrimental effect, and generally, the later in a project that an error is found the more expensive it will be to fix. In addition, because the number of errors in the system is unknown the debugging phases of a project are particularly difficult to control

Software quality attributes Clearly, developing high-quality software is fundamental goal of software engineering. However, while cost is generally well understood, the concept of quality in the context of software needs further discussion Software quality comprises of six main attributes (called characteristics). These six attributes have detailed characteristics which are considered the basic ones and which can and should be measured using suitable metrics

At the top level for a software product, these attributes can be defined as follows: Functionality: The capability to provide functions which meet stated and implied needs when the software is used Reliability: The capability to maintain a specified level of performance Usability: The capability to provide appropriate performance relative to the amount of resources used Efficiency: The capability to provide appropriate performance relative to the amount of resources used Maintainability: The capability to be modified for purposes of making corrections, improvements, or adaptation Portability: The capability to be adapted for different specified environments without applying actions or means other than those provided for this purpose in the product

Cont… The characteristics for the different attributes provide further details. Usability, for example, has characteristics of understandability, learnability, operability, maintainability has changeability, testability, stability etc; while portability has adaptability, installability, etc. Functionality includes suitability (whether appropriate set of functions are provided), accuracy (the results are accurate) and security: Note that in this classification, security is considered a characteristic of functionality, and is defined as “ the capability to protect information and data so that unauthorized persons or systems cannot read or modify them, and authorized persons or systems are not denied access to them”

Cont… There are two important consequences of having multiple dimensions to quality First, software quality cannot be reduced to a single number (or a single parameter) Second, the concept of quality is project-specific

Software quality factors The factors that affect software quality can be categorized in two broad groups Factors that can be directly measured (for example, defects per function point) Factors that can be measured only indirectly (for example, usability or maintainability)

McCall’s quality factors McCall, Richards and Walters propose a useful categorization of factors that affect software quality. Software quality factors focus on three important aspects of a software product: Product operation: its operational characteristics Product revision: its ability to undergo change Product transaction: its adaptability to new environments

These 11 quality factors are described by McCall and his colleagues as under: Correctness: The extent to which a program satisfies its specification and fulfills the customer’s mission objectives Reliability: The extent to which a program can be expected to perform its intended function with required precision Efficiency: The amount of computing resources and code required by a program to perform its function Integrity: extent to which access to software or data by unauthorized persons can be controlled Usability: Effort required to learn, operate, prepare input, and interpret output of a program

Cont… Maintainability: Effort required to locate and fix an error in a program. Flexibility: Effort required to modify an operational program Testability: Effort required to test a program to ensure that it performs its intended function Portability: Effort required to transfer the program from one hardware and/or software system environment to another Reusability: Extent to which a program (or parts of a program) can be reused in other applications – related to the packaging and scope of the functions that the program performs Interoperability: Effort required to couple one system to another

Few other quality factors include: User friendliness: A software system is user friendly if its human users find it easy to use. This definition reflects the subjective nature of user friendliness Extensibility: Extensibility allows required modifications at the appropriate locations to be made without undesirable side effects Verifiability: A software system is verifiable if its properties can be verified easily. Verification can be performed either by formal analysis methods or through testing

Various metrics defined by McCall are used to grade specific attributes of the software Auditability: The ease with which conformance to standards can be checked Accuracy: The precision of computations and control Communication commonality: The degree to which standard interfaces, protocols, and bandwidth are used Completeness: The degree to which full implementation of required function has been achieved Conciseness: The compactness of the program in terms of lines of code Consistency: The use of uniform design and documentation techniques throughout the software development project

Cont… Data commonality: The use of standard data structures and types throughout the program Error tolerance: The damage that occurs when the program encounters an error Execution efficiency: The run-time performance of a program Expandability: The degree to which architectural, data, or procedural design can be extended

Cont… Generality: The breadth of potential application of program components Hardware independence: The degree to which the program monitors its own operation and identifies errors that do occur Modularity: The functional independence of program components Operability: The ease of operation of a program Security: The availability of mechanisms that control or protect programs and data Self-documentation: The degree to which the source code provides meaningful documentation  

Cont… Simplicity: The degree to which a program can be understood without difficulty Software system independence: The degree to which the program is independent of nonstandard programming languages features, operating system characteristics, and other environmental constraints Traceability: The ability to trace a design representation or actual program component back to requirements Training: The degree to which the software assists in enabling new users to apply the system

Thank You