Software quality

74
1 Software Quality Management Prof. R. Mall Dept. of CSE, IIT, Kharagpur

Transcript of Software quality

Page 1: Software quality

1

Software Quality

ManagementProf. R. Mall

Dept. of CSE, IIT, Kharagpur

Page 2: Software quality

2

Plan of the Talk Introduction to Quality

Engineering. Quality control and Quality

Assurance ISO 9000 SEI CMM Summary

Page 3: Software quality

3

IntroductionTraditional definition of quality:•Fitness of purpose:

A quality product does exactly what the users want it to do.

Page 4: Software quality

4

Fitness of Purpose

Fitness of purpose for software products:

Satisfaction of the requirements specified in SRS document.

Page 5: Software quality

5

Fitness of Purpose A satisfactory definition of

quality for many products: •A car, a table fan, a food mixer, microwave oven, etc.

But, not satisfactory for software products.•Why?

Page 6: Software quality

6

Quality for Software Products

Consider a software product:•Functionally correct:

Performs all functions as specified in the SRS document.

•But, has an almost unusable user interface. Cannot be considered as a quality product.

Page 7: Software quality

7

Quality for Software Products

Consider another example:•A product which does everything that users want.

•But has an almost incomprehensible and unmaintainable code.

•Will you call it a quality product?

Page 8: Software quality

8

Modern View of Quality

Several quality factors are associated with a software product :• Correctness• Reliability• Efficiency (includes efficiency of resource

utilization)• Portability• Usability• Reusability• Maintainability

Page 9: Software quality

9

CorrectnessA software product is correct: •If different requirements as specified in the SRS document have been correctly implemented.

•Results are accurate.

Page 10: Software quality

10

PortabilityA software product is said to be portable: •If it can be easily made to workIn different operating systems.In different machines, With other software products, etc.

Page 11: Software quality

11

ReusabilityA software product has good reusability:•If different modules of the product can easily be reused to develop new products.

Page 12: Software quality

12

Usability A software product has good

usability:•If different categories of users (i.e. both expert and un expert) can easily invoke the functions of the product.

Page 13: Software quality

13

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.

Page 14: Software quality

14

Software maintenance:•any modifications to a software

product after it has been delivered to the customer.

Software maintenance is an important activity for many organizations.

Page 15: Software quality

15

Many people think•only bad software products need

maintenance. The opposite is true:

•bad products are thrown away,•good products are maintained

and used for a long time.

Page 16: Software quality

16

Software products need maintenance for three reasons:•corrective•adaptive•perfective

Page 17: Software quality

17

CorrectiveCorrective maintenance of a software product: •to correct bugs observed while the system is in use.

•to enhance performance of the product.

Page 18: Software quality

18

Adaptive A software product needs

maintenance (porting) when customers:•need the product to run on new platforms,or, on new operating systems,

•need the product to interface with new hardware or software.

Page 19: Software quality

19

PerfectivePerfective maintenance:

•to support new features required by users.

•to change some functionality of the system due to customer demands.

Page 20: Software quality

20

Software Reverse Engineering

By analyzing a program code, recover from it:•the design and the requirements specification.

Page 21: Software quality

21

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.

Page 22: Software quality

22

Quality System An undocumented quality

system:•Sends clear messages to the staff

about the attitude of the organization towards quality assurance.

International standards such as ISO 9000 provide:•Guidance on how to organize a

quality system.

Page 23: Software quality

23

ISO 9000 ISO (international Standards

Organization): •a consortium of 63 countries

established to formulate and foster standardization.

ISO published its 9000 series of standards in 1987.

Page 24: Software quality

24

What is ISO 9000 Certification?

ISO 9000 certification: •Serves as a reference for contract between independent parties.

The ISO 9000 standard: •Specifies guidelines for maintaining a quality system.

Page 25: Software quality

25

ISO 9000 A set of guidelines for the

production process.•Not directly concerned about the product it self.

•A series of three standards: ISO 9001, ISO 9002, and ISO 9003.

Page 26: Software quality

26

ISO 9000Based on the premise:

•If a proper process is followed for production: Good quality products are bound to follow.

Page 27: Software quality

27

ISO 9001 Applies to:

•Organizations engaged in design, development, production, and servicing of goods.

•Applicable to most software development organizations.

Page 28: Software quality

28

ISO 9002 ISO 9002 applies to:

• Organizations who do not design products: but are only involved in production.

Examples of this category of industries:• Steel or car manufacturing industries• Buy the product and plant designs from

external sources: only manufacture products.

• Not applicable to software development organizations.

Page 29: Software quality

29

ISO 9003 ISO 9003 applies to:

•Organizations involved only in installation and testing of the products.

Page 30: Software quality

30

ISO 9000 Part-3 ISO released a separate

document called ISO 9000 part-3 in 1991:•To help interpret the ISO standard

for software industry. At present:

•Official guidance is inadequate.

Page 31: Software quality

31

ISO 9000: 2000 ISO 9001:2000:

• Combines the three standards 9001, 9002, and 9003 into one.

Design and development procedures are required:• Only if a company does in fact engage in

the creation of new products. The 2000 version sought to make a

radical change in thinking:• By actually highlighting the concept of

process management.

Page 32: Software quality

32

Why Get ISO 9000 Certification?

Several benefits: •Confidence of customers in an organization increases. If organization qualified for ISO 9001 certification.

This is especially true in the international market.

Page 33: Software quality

33

SEI Capability Maturity Model (CMM)

Developed by Software Engineering Institute (SEI) of the Carnegie Mellon University, USA

Page 34: Software quality

34

SEI Capability Maturity Model

Major DoD contractors began CMM-based process improvement initiatives: • As they vied for DoD contracts.

SEI CMM helped organizations: • Helped Improve quality of software they

developed• Realized adoption of SEI CMM model had

significant business benefits. Other organizations adopted CMM.

Page 35: Software quality

35

Software Process Assessment

Used by an organization to assess its current process:•Suggests ways to improve the process capability.

•This type of assessment is for purely internal use.

Page 36: Software quality

36

SEI Capability Maturity Model

The SEI CMM classifies software development industries into: Five maturity levels. Stages are ordered so that

improvements at one stage provide foundations for the next.

Page 37: Software quality

37

SEI Capability Maturity Model

Initial (1)

Repeatable (2)

Defined (3)

Managed (4)

Optimizing (5)

Page 38: Software quality

38

Key Process AreasEach level is associated with a key process area (KPA) identifies:•Where an organization at the previous level must focus to reach this level.

Page 39: Software quality

39

Level 2 KPAsSoftware project planning:

•Size, cost, schedule.•Project monitoring

Configuration management

Subcontract management

Page 40: Software quality

40

Level 3 KPAsProcess definition and documentation.

ReviewsTraining program

Page 41: Software quality

41

Level 4 KPAsQuantitative measurements.

Process management.

Page 42: Software quality

42

Level 5 KPAsDefect prevention.Technology change management.

Process change management.

Page 43: Software quality

43

Comparison Between ISO 9001 and SEI CMM

ISO 9001 awarded by an international standards body:•Can be quoted in official documents and communications.

SEI CMM assessment is purely for internal use.

Page 44: Software quality

44

CMMI (CMM Integration)

CMMI is the successor of the CMM. The CMM was developed from 1987

until 1997. In 2002, CMMI Version 1.1 was

released. • Version 1.2 followed in August 2006.

The goal of the CMMI to integrate many different models into one framework. • It was created by members of industry,

government and the SEI.

Page 45: Software quality

45

Personal Software Process (PSP)

Based on the work of Humphrey. PSP is a scaled down version of

industrial software process:•Suitable for individual use.

Even CMM assumes that engineers use effective personal practices.

Page 46: Software quality

46

Personal Software Process (PSP)

PSP framework:•Helps software engineers to measure

and improve the way they work.

Page 47: Software quality

47

Personal Software Process (PSP)

Helps developing personal skills and methods.•Estimating and planning method.•Shows how to track performance

against plans.•Provides a defined process;

Can be fine tuned by individuals. Recognizes that a process for individual

use is different from that necessary for a team project.

Page 48: Software quality

48

Time Management Track the way you spend time:

•Boring activities seem longer than actual.

•Interesting activities seem short. Record time for:

•Designing •Writing code•Compiling•Testing

Page 49: Software quality

49

Personal Software Process (PSP)

PlanningDesignCode

CompileTest

Postmortem

Logs

Project plan summary

Page 50: Software quality

50

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

Page 51: Software quality

51

PSP-Design Design the program. Record the design in specified

format. Record the Design time in time

recording log.

Page 52: Software quality

52

PSP-Code Implement the design. Use a standard format for

code text. Record the coding time in

time recording log.

Page 53: Software quality

53

Personal Software Process (PSP)

PSP 0

PSP 1

PSP 2

PSP 3

Personal measurement Basic size measures

Personal planning Time and schedule

Personal quality management Design and code reviews

Personal processevolution

Page 54: Software quality

54

Six Sigma Six sigma is a quantitative approach

to eliminate defects:• Applicable to all types of industry - from

manufacturing, product development, to service.

The statistical representation of Six Sigma quantitatively describes :• How a process is performing.

Page 55: Software quality

55

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.

Six sigma methodologies:• DMAIC (Define, Measure, Analyze,

Improve, Control).• DMADV: (Define, Measure, Analyze,

Design, Verify).

Page 56: Software quality

56

Six Sigma Methodologies

The methodologies are implemented by Green belt and Black belt workers:• Supervised by Master black belt worker.

Pareto Chart:• Simple bar chart to represent defect data• Identify the problems that occurs with

greatest frequency or incur the highest cost

Page 57: Software quality

57

Computer Aided Software Engineering (CASE)

CASE tools help in software development and maintenance.

CASE is a much talked about topic in software industries.

Page 58: Software quality

58

CASE and Its Scope CASE tool is a generic term:

•denotes any form of automated support for software engineering.

Page 59: Software quality

59

Objectives of CASE

To increase productivityTo help produce better quality software at lower cost.

Page 60: Software quality

60

Schematic representation of architecture of CASE environment

CentralRepository

Consistency-

checker

ProjectManageme

nt

Testing

StructuredDesign

StructuredAnalysisConfigurati

onManageme

nt

DocumentGeneration

Coding Support

Page 61: Software quality

61

CASE EnvironmentThe central repository is the data dictionary:•contains definition of all composite and elementary data items.

•through this repository all CASE tools share information.

Page 62: Software quality

62

Programming Environment A CASE environment helps:

•automate step-by-step methodologies.

In contrast to CASE environment: •a programming environment denotes tools supporting coding phase alone.

Page 63: Software quality

63

Benefits of CASE A key benefit of using CASE

environment:•cost saving through all

developmental phases. Studies carried out to measure

the impact of CASE usage: •cost saving between 30% to 40%.

Page 64: Software quality

64

Benefits of CASE Data relating to a software

product are maintained in a central repository: •redundancy in the stored data is reduced.

•chances of inconsistent documentation is reduced.

Page 65: Software quality

65

Benefits of CASE Use of CASE tools leads to

improvements in quality:•becomes easy to iterate through

different software development phases.

•chances of human error is reduced.

•CASE tools help produce higher quality and consistent documents.

Page 66: Software quality

66

Benefits of CASE

CASE tools take drudgery out from software engineers’ work: •engineers need not manually check balancing of the DFDs

•easily draw diagrams and produce documentation, etc.

Page 67: Software quality

67

Towards Next Generation CASE Tool

An important feature of next generation CASE tools:•be able to support any

methodology. Necessity of a CASE

administrator for every organization: •who would tailor the CASE

environment to a particular methodology.

Page 68: Software quality

68

SummaryThe trend is now towards:

• distributed workstation-based CASE tools.

We discussed some desirable features of CASE tools.

Page 69: Software quality

Software Reuse and Component-Based Software Engineering

Page 70: Software quality

Software Reuse In most engineering disciplines, systems

are designed by composition (building system out of components that have been used in other systems)

Software engineering has focused on custom development of components

To achieve better software quality, more quickly, at lower costs, software engineers are beginning to adopt systematic reuse as a design process

Page 71: Software quality

Types of Software Reuse Application System Reuse

• reusing an entire application by incorporation of one application inside another (COTS reuse)

• development of application families (e.g. MS Office)

Component Reuse• components (e.g. subsystems or single

objects) of one application reused in another application

Function Reuse• reusing software components that

implement a single well-defined function

Page 72: Software quality

Benefits of Reuse Increased Reliability

• components already exercised in working systems Reduced Process Risk

• less uncertainty in development costs Effective Use of Specialists

• reuse components instead of people Standards Compliance

• embed standards in reusable components Accelerated Development

• avoid custom development and speed up delivery

Page 73: Software quality

Reuse Problems

Increased maintenance costs Lack of tool support Finding and adapting reusable

components

Page 74: Software quality

Component-Based Software Engineering

CBSE is an approach to software development that relies on reuse

CBSE emerged from the failure of object-oriented development to support reuse effectively

Objects (classes) are too specific and too detailed to support design for reuse work

Components are more abstract than classes and can be considered to be stand-alone service providers