Software Quality Models.

Slides:



Advertisements
Similar presentations
Chapter 2 The Software Process
Advertisements

CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
Software Development Process Models. The Waterfall Development Model.
Computer Engineering 203 R Smith Process/Plan Model 7/ Development Process Models Development Process Models are different ways to look at the processes.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Capability Maturity Model
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
Chapter : Software Process
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 17 Software Quality
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
Software Project Management Fifth Edition
UNIT-II Chapter : Software Quality Assurance(SQA)
Managing Software Quality
 The software systems must do what they are supposed to do. “do the right things”  They must perform these specific tasks correctly or satisfactorily.
Capability Maturity Model Part One - Overview. History Effort started by SEI and MITRE Corporation  assess capability of DoD contractors First.
N By: Md Rezaul Huda Reza n
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Software Quality Assurance SE Software Quality Assurance What is “quality”?
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
Quality Concepts within CMM and PMI G.C.Reddy
University of Sunderland COM369 Unit 6 COM369 Project Quality Unit 6.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
CMMI. 1.Initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual.
Process: A Generic View
Prepared by: Hussein Alhashimi.  This course introduces fundamental concepts related to Quality Assurance and Measurements and Metrics in the software.
SOFTWARE PROCESS IMPROVEMENT
Metrics "A science is as mature as its measurement tools."
Software Engineering (CSI 321) Software Process: A Generic View 1.
Project Management Quality Management. Introduction Project planning Gantt chart and WBS Project planning Network analysis I Project planning Network.
by: Er. Manu Bansal Deptt of IT Software Quality Assurance.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
TOTAL QUALITY MANAGEMENT
Software Quality Control and Quality Assurance: Introduction
Software Quality Management
Project Management PTM721S
Rekayasa Perangkat Lunak Part-10
Rekayasa Perangkat Lunak
Software Quality Assurance
CS4311 Spring 2011 Process Improvement Dr
Quality Management chapter 27.
SEVERITY & PRIORITY RELATIONSHIP
Source & Courtesy: Doc. S. Dapkūnas
CIF301 Project Quality Unit 6
The Systems Engineering Context
McCall’s Quality Factors
Software Engineering (CSI 321)
Software Testing and Quality Assurance
UNIT V QUALITY SYSTEMS.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software engineering.
UNIT-6 SOFTWARE QUALITY ASSURANCE
Rekayasa Perangkat Lunak
Introduction to Software Testing
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software Quality Assurance (Lecture 14)
Software Quality Assurance
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 13 Quality Management
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering Lecture 16.
Software Engineering I
Capability Maturity Model
20. The Software-Quality Landscape
Capability Maturity Model
Software Verification and Validation
Presentation transcript:

Software Quality Models

Software Quality Software quality can be defined as 'conformance to requirements' and/or 'fitness of use‘. Quality is based upon the customer’s actual experience with the product or service, measured against his or her requirements. 􀂅 stated or unstated 􀂅 conscious or merely sensed 􀂅 technically operational 􀂅 entirely subjective 􀂅 always representing a moving target

McCall’s Quality Model Jim McCall produced this model for the US Air Force and the intention was to bridge the gap between users and developers. He tried to map the user view with the developer's priority. McCall identified three main perspectives for characterizing the quality attributes of a software product. These perspectives are:- Product revision (ability to change). Product transition (adaptability to new environments). Product operations (basic operational characteristics).

McCall’s Quality Model Product revision The product revision perspective identifies quality factors that influence the ability to change the software product, these factors are:- Maintainability, the ability to find and fix a defect. Flexibility, the ability to make changes required as dictated by the business. Testability, the ability to Validate the software requirements. Product transition The product transition perspective identifies quality factors that influence the ability to adapt the software to new environments:- Portability, the ability to transfer the software from one environment to another. Reusability, the ease of using existing software components in a different context. Interoperability, the extent, or ease, to which software components work together.

McCall’s Quality Model Product operations The product operations perspective identifies quality factors that influence the extent to which the software fulfils its specification:- Correctness, the functionality matches the specification. Reliability, the extent to which the system fails. Efficiency, system resource (including cpu, disk, memory, network) usage. Integrity, protection from unauthorized access. Usability, ease of use. In total McCall identified the 11 quality factors broken down by the 3 perspectives, as listed above. For each quality factor McCall defined one or more quality criteria (a way of measurement), in this way an overall quality assessment could be made of a given software product by evaluating the criteria for each factor. For example the Maintainability quality factor would have criteria of simplicity, conciseness and modularity.

6

Boehm's Quality Model - 1978 Barry W. Boehm also defined a hierarchical model of software quality characteristics, in trying to qualitatively define software quality as a set of attributes and metrics (measurements). At the highest level of his model, Boehm defined three primary uses (or basic software requirements), these three primary uses are:- As-is utility, the extent to which the as-is software can be used (i.e. ease of use, reliability and efficiency). Maintainability, ease of identifying what needs to be changed as well as ease of modification and retesting. Portability, ease of changing software to accommodate a new environment. These three primary uses had quality factors associated with them , representing the next level of Boehm's hierarchical model. 7

Boehm's Quality Model - 1978 Boehm identified seven quality factors, namely:- Portability: the extent to which the software will work under different computer configurations (i.e. operating systems, databases etc.). Reliability: the extent to which the software performs as required, i.e. the absence of defects. Efficiency: optimum use of system resources during correct execution. Usability: ease of use. Testability: ease of validation, that the software meets the requirements. Understandability: the extent to which the software is easily comprehended with regard to purpose and structure. Flexibility: the ease of changing the software to meet revised requirements. These quality factors are further broken down into Primitive constructs that can be measured, for example Testability is broken down into:- accessibility, communicativeness, structure and self descriptiveness. As with McCall's Quality Model, the intention is to be able to measure the lowest level of the model. 8

ISO 9000 certification ISO (International Standards Organization) is a consortium of 63 countries established to formulate and foster standardization. ISO published its 9000 series of standards in 1987. The ISO 9000 standard specifies the guidelines for maintaining a quality system. The ISO standard mainly addresses operational aspects and organizational aspects such as responsibilities, reporting, etc. ISO 9000 specifies a set of guidelines for repeatable and high quality product development. ISO 9000 is a series of three standards: ISO 9001, ISO 9002, and ISO 9003. The ISO 9000 series of standards is based on the premise that if a proper process is followed for production, then good quality products are bound to follow automatically. The types of industries to which the different ISO standards apply are as follows.

ISO 9001 certification ISO 9001 applies to the organizations engaged in design, development, production, and servicing of goods. This is the standard that is applicable to most software development organizations. ISO 9002 applies to those organizations which do not design products but are only involved in production. Examples of these category industries include steel and car manufacturing industries. ISO 9003 applies to organizations that are involved only in installation and testing of the products. The main requirements of ISO 9001 as: 1) Management Responsibility 2) Quality System 3) Contract Reviews 4) Design Control 5) Document Control 6) Purchasing 7) Purchaser Supplied Product 8) Product Identification 9) Process Control 10) Inspection and Testing 11) Inspection, Measuring and Test Equipment 12) Inspection and Test Status 13) Control of Nonconforming Product 14) Corrective Action 15) Handling, 16) Quality records 17) Quality Audits 18) Training 10

Salient features of ISO 9001 certification All documents concerned with the development of a software product should be properly managed, authorized, and controlled. This requires a configuration management system to be in place. Proper plans should be prepared and then progress against these plans should be monitored. Important documents should be independently checked and reviewed for effectiveness and correctness. The product should be tested against specification. Several organizational aspects should be addressed e.g., management reporting of the quality team. 11

Capability Maturity Model SEI Capability Maturity Model (SEI CMM) helped organizations to improve the quality of the software. SEI CMM can be used two ways capability evaluation and software process assessment The capability evaluation indicates the likely contractor performance if the contractor is awarded a work. Therefore, we can select a contractor on its performance. software process assessment is used by an organization with the objective to improve its process capability. SEI CMM classifies software development industries into the following five maturity levels. Different levels of the model have been designed to slowly build its quality system starting from scratch. 12

Capability Maturity Model Level 1: Initial. A software development organization at this level is characterized by ad hoc activities. Very few or no processes are defined and followed. Since software production processes are not defined, different engineers follow their own process and as a result development efforts become chaotic. Therefore, it is also called chaotic level. The success is only due to some individuals, and when they leave the organization the people left behind feel great difficulty to understand what has been done and what is to be done due to lack of processes. This leads to low quality. Level 2: Repeatable. At this level, the basic project management practices such as tracking cost and schedule are established. cost estimation techniques like function point analysis, COCOMO, etc. Are used The necessary process discipline is in place to repeat earlier success on projects with similar applications. Hence the existing process is repeated, it is helpful only if we are working on same kind of problems. 13

Capability Maturity Model Level 3: Defined. At this level the processes for both management and development activities are defined and documented. There is a common organization-wide understanding of activities, roles, and responsibilities. The processes though defined, the process and product qualities are not measured. ISO 9000 aims at achieving this level. Level 4: Managed. At this level, the focus is on software metrics. Two types of metrics are collected. Product metrics (measures size, reliability, time complexity, understandability) Process metrics (measures average defect correction time, productivity, average number of defects found per hour inspection) Quantitative quality goals are set for the products. The process metrics are used to check if a project performed satisfactorily. Thus, the results of process measurements are used to evaluate project performance rather than improve the process. 14

Capability Maturity Model Level 5: Optimizing. At this stage, process and product metrics are collected. For example, if from an analysis of the process measurement results, it was found that the code reviews were not very effective and a large number of errors were detected only during the unit testing, then the process may be fine tuned to make the review more effective. Also lessons learned from specific projects are incorporated in to the process. Continuous process improvement is achieved both by analyzing the quantitative feedback from the process measurements and from application of innovative ideas and technologies. Such an organization identifies the best software engineering practices and innovations which may be tools, methods, or processes. 15

Capability Maturity Model Key process areas (KPA) of a software organization: Key Process Areas (KPAs) that includes the areas an organization should focus to improve its software process to the next level. it provides a way for gradual quality improvement over several stages. 16

ISO 9000 certification vs. SEI/CMM ISO 9000 is awarded by an international standards body. Therefore, ISO 9000 certification can be quoted by an organization in official documents. However, SEI CMM assessment is purely for internal use. SEI CMM was developed specifically for software industry and therefore addresses many issues which are specific to software industry alone. SEI CMM goes beyond quality assurance and prepares an organization to ultimately achieve Total Quality Management (TQM). In fact, ISO 9001 aims at level 3 of SEI CMM model. SEI CMM model provides a list of key process areas (KPAs) on which an organization at any maturity level needs to concentrate to take it from one maturity level to the next. Thus, it provides a way for achieving gradual quality improvement. 17

Applicability of SEI CMM to organizations Highly systematic and measured approach to software development suits large organizations. SEI CMM model is perfectly applicable. But for small organizations typically CMM-based appraisal is probably excessive. These organizations need to operate more efficiently at the lower levels of maturity. For example, they need to practice effective project management, reviews, configuration management, etc. 18

Personal software process PSP is suitable for individual use. It is important to note that SEI CMM does not tell software developers how to analyze, design, code, test, or document software products. The quality and productivity of an engineer is to a great extent dependent on his process. PSP is a framework that helps engineers to measure and improve the way they work. It helps in developing personal skills and methods by estimating and planning, by showing how to track performance against plans, and provides a defined process which can be tuned by individuals. Time measurement. PSP advocates that engineers should rack the way they spend time. actual time spent on a task should be measured with the help of a stop-clock to get an objective picture of the time spent. An engineer should measure the time he spends for designing, writing code, testing, etc.

Personal software process PSP Planning. Individuals must plan their project. They must estimate the maximum, minimum, and the average LOC required for the product. They should use their productivity in minutes/LOC to calculate the maximum, minimum, and the average development time. They must record the plan data in a project plan summary. While carrying out the different phases, they must record the log data using time measurement. Later on it can be compared the log data with their project plan to achieve better planning in the future projects, to improve their process, etc. 20