Rajib Mall Lecture Notes
Rajib Mall Lecture Notes
Prof. R. Mall
Dept. of CSE, IIT, Kharagpur
Introduction
Traditional definition of quality:
Fitness of purpose:
A quality product does exactly what the users want it to do.
Fitness of Purpose
Fitness of purpose for software products:
Fitness of Purpose
A satisfactory definition of quality for many products:
A car, a table fan, a food mixer, microwave oven, etc. Why?
A product which does everything that users want. But has an almost incomprehensible and unmaintainable code. Will you call it a quality product?
7
Correctness
A software product is correct:
If different requirements as specified in the SRS document have been correctly implemented. Results are accurate.
Portability
A software product is said to be portable:
If it can be easily made to work
In different operating systems. In different machines, With other software products, etc.
10
Reusability
A software product has good reusability:
If different modules of the product can easily be reused to develop new products.
11
Usability
A software product has good usability:
If different categories of users (i.e. both expert and novice users) can easily invoke the functions of the product.
12
Maintainability
A software product is maintainable:
If errors can be easily corrected as and when they show up, New functions can be easily added to the product, Functionalities of the product can be easily modified.
13
14
Quality System
A quality system consists of the following:
Managerial Structure Individual Responsibilities.
15
Quality System
Every quality conscious organization has an independent quality department:
Performs several quality system activities. Needs support of top management. Without support at a high level in a company:
Quality System
A good quality system must be well documented.
Without a properly documented quality system,
Application of quality procedures become ad hoc, Results in large variations in the quality of the products delivered.
18
Quality System
An undocumented quality system:
Sends clear messages to the staff about the attitude of the organization towards quality assurance.
20
22
Quality control:
Not only detect the defective products and eliminate them But also determine the causes behind the defects.
23
25
Quality Assurance
Basic premise of modern quality assurance:
26
Quality Assurance
All modern quality paradigms include:
Guidance for recognizing, defining, analyzing, and improving the production process.
27
28
29
Process Improvement
Implies introducing process changes to improve:
Product quality Reduce costs Accelerate schedules.
Process Attributes
Pr ocess characteristic Under andability st V isibil ity Supportability D escription To w hat extent is the process explicitl y defined and how ea is it t sy o under and t process definition? st he D o the process activ ities culmi nate in clear resul ts so that the progress of the process is exter al ly visible? n To w hat extent can C ASE tools be used to support the process activ ities?
Acce ta ility p b
R eliability
Is the defined process acce ta le to and usable by the enginee p b rs responsibl e for poducing th s ftw are product? r e o
Is t e process designed in such a w ay that process errors are av oided or h trapped b fore they r sult in product errors e e ?
R obustness
M aintanability i R apidity
33
Change
Analyse
34
ISO 9000
ISO (international Standards Organization):
a consortium of 63 countries established to formulate and foster standardization.
ISO 9000
A set of guidelines for the production process.
Not directly concerned about the product it self. A series of three standards:
ISO 9000
Based on the premise:
If a proper process is followed for production:
41
ISO 9001
Applies to:
Organizations engaged in design, development, production, and servicing of goods. Applicable to most software development organizations.
42
ISO 9002
ISO 9002 applies to:
Organizations who do not design products:
but are only involved in production.
ISO 9003
ISO 9003 applies to:
Organizations involved only in installation and testing of the products.
44
Software is intangible:
47
ISO 9000 standards have many clauses corresponding to raw material control .
Not relevant to software organizations.
48
49
At present:
Official guidance is inadequate.
50
Only if a company does in fact engage in the creation of new products. By actually highlighting the concept of process management.
51
Several benefits:
If organization qualified for ISO 9001 certification. This is especially true in the international market.
53
54
57
Applies to a registrar for registration. The registrar makes a rough assessment of the organization.
58
59
60
Continued surveillance:
ISO 9000 certifies organization's process Not any product of the organization.
62
Management must have an effective quality policy. The responsibility and authority of all those whose work affects quality:
Must be defined and documented.
63
Management Responsibility(4.1)
Responsibility of the quality system.
Independent of the development process. Can work in an unbiased manner.
Quality System (4.2) and Contract Reviews (4.3): A quality system must be maintained and documented. Contract reviews (4.3):
Ensure that it is understood, Organization has the capability for carrying out its obligations.
65
Purchasing (4.6)
Purchased material, including bought-in software:
Must be checked for conforming to requirements.
69
71
72
73
74
75
Training (4.18)
Training needs must be identified and met. Most items of ISO standard:
Are largely common sense.
78
Salient Features of ISO 9001 Requirements: All documents concerned with the development of a software product: Proper plans should be prepared:
Progress against these plans should be monitored.
79
81
Does not automatically lead to continuous process improvement, Does not automatically lead to TQM.
85
86
Developed by Software Engineering Institute (SEI) of the Carnegie Mellon University, USA:
To assist the U.S. Department of Defense (DoD) in software acquisition. The rationale was to include:
Likely contractor performance as a factor in contract awards.
87
90
Capability Evaluation
Provides a way to assess the software process capability of an organization:
Helps in selecting a contractor Indicates the likely contractor performance.
91
Suggests ways to improve the process capability. This type of assessment is for purely internal use.
92
Managed (4)
Defined (3)
Repeatable (2)
Initial (1)
94
Level 1: (Initial)
Organization operates
Without any formalized process or project plans
95
Level 1: (Initial)
Software production processes are not defined,
Different engineers follow their own process Development efforts become chaotic. The success of projects depend on individual efforts and heroics.
96
Level 2: (Repeatable)
Basic project management practices Size and cost estimation techniques:
Function point analysis, COCOMO, etc. used. Production process is ad hoc: Not formally defined Also not documented. Tracking cost, schedule, and functionality are followed.
97
Level 2: (Repeatable)
Process used for different projects might vary between projects:
Earlier success on projects with similar applications can be repeated. Opportunity to repeat process exist when a company produces a family of products.
98
Level 3: (Defined)
Management and development activities:
Defined and documented. Common organization-wide understanding of activities, roles, and responsibilities.
99
Level 3: (Defined)
The process though defined: ISO 9001 aims at achieving this level.
Process and product qualities are not measured.
100
Level 4: (Managed)
Quantitative quality goals for products are set. Software process and product quality are measured:
The measured values are used to control the product quality. Results of measurement used to evaluate project performance:
Rather than improve process.
101
Level 4: (Managed)
Organization sets quantitative quality goals. World-wide about 100 organizations assessed at this level.
102
Level 5: (Optimizing)
Statistics collected from process and product measurements are analyzed:
Continuous process improvement based on the measurements.
Known types of defects are prevented from recurring by tuning the process Lessons learned from specific projects incorporated into the process
103
Level 5: (Optimizing)
Identify best software engineering practices and innovations:
Tools, methods, or process are identified. Transferred throughout the organization. World-wide about 500 organizations have been assessed at this level.
104
Where an organization at the previous level must focus to reach this level.
105
Level 2 KPAs
Software project planning:
Size, cost, schedule. Project monitoring
Level 3 KPAs
Process definition and documentation. Reviews Training program
107
Level 4 KPAs
Quantitative measurements. Process management.
108
Level 5 KPAs
Defect prevention. Technology change management. Process change management.
109
Comparison Between ISO 9001 and SEI CMM ISO 9001 awarded by an international standards body:
Comparison Between ISO 9001 and SEI CMM SEI CMM was developed specifically for software industry:
Addresses many issues specific to software industry. SEI goes beyond quality assurance
Aims for TQM. ISO 9001 correspond to SEI level 3.
111
113
Highly systematic and measured approach to software development process suits certain circumstances What about small organizations?
Negotiated software, safety-critical software, etc.
Typically handle applications such as internet, ecomm. Without an established product range, Without revenue base, experience on past projects, etc. CMM may be incompatible
114
Small Organizations
Small organizations tend to believe:
We are all competent people hired to do a job, we cant afford training. We all communicate with one another.
Osmosis works because we are so close.
Small Organizations
Often have problems:
Undocumented requirements Inexperienced managers Documenting the product Resource allocation Training Peer reviews
116
Small Organizations
A two week CMM-based appraisal is probably excessive: Small organizations need to operate more efficiently at lower levels of maturity
Must first fluorish if eventually they are to mature
117
Based on the work of Humphrey. PSP is a scaled down version of industrial software process:
Suitable for individual use.
118
A process is the set of steps for doing a job. The quality and productivity of an engineer
Largely determined by his process
PSP framework:
Helps software engineers to measure and improve the way they work.
119
Time Management
Track the way you spend time:
Boring activities seem longer then actual. Interesting activities seem short.
121
Test
Postmortem
122
PSP-Planning
Problem definition Estimate max, min, and total LOC Determine minutes/LOC Calculate max,min, and total development times Enter the plan data in project plan summary form Record the planned time in Log
123
PSP-Design
Design the program. Record the design in specified format. Record the Design time in time recording log.
124
PSP-Code
Implement the design. Use a standard format for code text. Record the coding time in time recording log.
125
PSP-Compile
Compile the program. Fix all the defects. Record compile time in time recording log.
126
Test:
PSP-Test/Postmortem
Postmortem:
Complete project plan summary form with actual time and size data. Record postmortem time in time record.
127
Six Sigma
Six sigma is a quantitative approach to eliminate defects:
Applicable to all types of industry - from manufacturing, product development, to service.
129
Six Sigma
To achieve six sigma:
A process must not produce more than 3.4 defects per million opportunities. 5 Sigma -> 230 defects per million. 4 Sigma -> 6210 defects per million.
Pareto Chart:
Simple bar chart to represent defect data Identify the problems that occurs with greatest frequency
or incur the highest cost
131
Summary
Evolution of quality system:
Product inspection Quality control Quality assurance Total quality management (TQM)
132
Summary
ISO 9000:
Basic premise:
If a good process is followed Good products are bound to follow.
Summary
ISO 9000:
Series of three standards 9001 is applicable to software industry.
9001, 9002, and 9003
134
Summary
SEI CMM
Developed specially for software industry. Classifies software organizations into five categories.
Current Trends
Many organizations have already tuned their process for:
Budget, Schedule, and Quality product.