Software Development: Understanding Process Attributes and Quality Factors - Prof. Victor , Study notes of Software Engineering

The importance of process improvement in software development. It discusses process attributes such as understandability, acceptability, reliability, robustness, and maintainability. Additionally, it covers product quality factors including development technology, cost, time, schedule, and people quality. The document also introduces process analysis techniques and process measurement.

Typology: Study notes

Pre 2010

Uploaded on 07/29/2009

koofers-user-qbs
koofers-user-qbs 🇺🇸

9 documents

1 / 25

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
cmsc435 - 1
Process Improvement
cmsc435 - 2
To explain the principles of software process
improvement
To explain how software process factors influence
software quality and productivity
To introduce the SEI Capability Maturity Model
and to explain why it is influential. To discuss
the applicability of that model
To explain why CMM-based improvement is not
universally applicable
Objectives
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Partial preview of the text

Download Software Development: Understanding Process Attributes and Quality Factors - Prof. Victor and more Study notes Software Engineering in PDF only on Docsity!

cmsc435 - 1

Process Improvement

l To explain the principles of software process

improvement

l To explain how software process factors influence

software quality and productivity

l To introduce the SEI Capability Maturity Model

and to explain why it is influential. To discuss

the applicability of that model

l To explain why CMM-based improvement is not

universally applicable

Objectives

cmsc435 - 3

l Understanding existing processes

l Introducing process changes to achieve organizational

objectives which are usually focused on quality

improvement, cost reduction and schedule acceleration

l Most process improvement work so far has

focused on defect reduction. This reflects the

increasing attention paid by industry to quality

l However, other process attributes can be the focus

of improvement

Process improvement

Why do process improvement?

l We want to build better products (cheaper,

more dependable, quicker, …)

l We really don’t know how to measure the

product characteristics

l There, measure the process under the

assumption – a better process will produce a

better product.

 When is this statement true or not true?

cmsc435 - 7

l Process quality and product quality are closely

related (Are they?)

l A good process is usually required to produce a

good product

l For manufactured goods, process is the

principal quality determinant

l For design-based activity, other factors are also

involved especially the capabilities of the designers

Process and product quality

Principal product quality factors

Product

quality

Development

technology

Cost, time and

schedule

Process

quality

People

quality

cmsc435 - 9

Quality factors

l For large projects with ‘average’ capabilities,

the development process determines product

quality

l For small projects, the capabilities of the

developers is the main determinant

l The development technology is particularly

significant for small projects

l In all cases, if an unrealistic schedule is

imposed then product quality will suffer

l Study an existing process to understand its

activities

l Produce an abstract model of the process. You

should normally represent this graphically.

Several different views (e.g. activities,

deliverables, etc.) may be required

l Analyze the model to discover process

problems. Involves discussing activities with

stakeholders

Process analysis and modelling

cmsc435 - 13

Activities in module testing

Prepare test data according to specification

Read module specification

Submit test data for review Review test data

TEST DATA PREPARATION

Read and understand module interface

Checkout module from configuration management system

Prepare test harness for module

Compile test harness

MODULE TEST HARNESS PREPARATION

Incorporate module with test harness

Run approved tests on module Record test results for regression tests

TEST EXECUTION

Write report on module testing including details of discovered problems

Submit report for approval Submit test results to CM

TEST REPORTING

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 31. Slide ##

l Wherever possible, quantitative process data

should be collected

 However, where organizations do not have clearly defined process standards this is very difficult as you don’t know what to measure. A process may have to be defined before any measurement is possible

l Process measurements should be used to

assess process improvements

 But this does not mean that measurements should drive the improvements. The improvement driver should be organizational objectives

Process measurement

cmsc435 - 15

l Time taken for process activities to be

completed

 E.g. Calendar time or effort to complete an

activity or process

l Resources required for processes or activities

 E.g. Total effort in person-days

l Number of occurrences of a particular event

 E.g. Number of defects discovered

Classes of process measurement

l Goals

 What is the organization trying to achieve? The

objective of process improvement is to satisfy

these goals

l Questions

 Questions about areas of uncertainty related to

the goals. You need process knowledge to derive

these

l Metrics

 Measurements to be collected to answer the

questions

Goal-Question-Metric Paradigm

cmsc435 - 19

DEFINING MEASUREMENT GOALS

A GOAL/QUESTION/METRIC EXAMPLE

80 70 60 50 40 30 20 10 0

10

72

8 10

% of Errors

Sources of Software Errors

Req. Hi Level Detailed Other Design Design Type of Error

  • Business Goal
    • Understand problem areas in the software business
  • A Measurement Goal
    • Analyze the final product to characterize it with respect to the various defect classes from the point of view of the organization
  • Question
    • What is the error distribution by type of error?
  • Metrics
    • Number of Requirements Errors, Number of Design Errors, ...

Importance of baseline studies

*Data from 11 Flight Dynamics projects (mid 1980s)

COMPUTA-TIONAL 15%

DATA27%

INTERFACE22%

CONTROLLOGIC/ 20%

INITIALIZA-TION 16%

TEST30%

DESIGN23%

CODE21%

OTHER26%

85% code writing 15% code reading

NASA/SEL PROCESS BASELINE EXAMPLE

Effort Distribution Classes of Errors**

Source Code Growth Rate*

Percent source code growth (LOC)

PROJECT PHASE

0

20

40

60

80

100

DESIGN CODE SYSTEMTEST ACCEPTANCETEST

cmsc435 - 21

Quality Improvement Paradigm

Developed by Basili as part of NASA/GSFC Software Engineering Laboratory (SEL) research QIP – 6 step process: l Characterize – Analyze and understand the environment. Need to understand current processes before improvement. Compare to CMM. Measurement crucial at beginning (not level 4) and each environment is unique.

l Set goals – Quantifiable goals must be based on discovered characteristics.

l Choose process – Based on characterization and goals, processes, methods, and tools have to be determined.

l Execute the process – Perform the processes constructing the required products.

l Analyze – At the end of each project, analyze the data gathered, determine problems, and make recommentations for improvement.

l Package – Structure knowledge and store it an experience base for future reuse.

Forms of Packaged Experience

Equations defining the relationship between variables, e.g. Effort = 1.48KSLOC.98, Number of Runs = 108 + 150KSLOC Histograms or pie charts of raw or analyzed data, e.g., Classes of Faults: 30% data, 24% interface, 16% control, 15% initialization, 15% computation Effort Distribution: 23% design, 21% code, 30%test, 26% other Graphs defining ranges of “normal” e.g., Fault Slippage Rate: halve faults after each test phase (4, 2, 1, .5) Specific lessons learned, e.g., an Ada design should use library units rather than a deeply nested structure; minimize the use of tasking as its payoff is minimal in this environment; size varies inversely with defect rate up to about 1KLOC per module Processes descriptions (adapted to SEL), e.g., Recommended Approach, Manager’s Handbook, Cleanroom Process Handbook, Ada Developer’s Guide, Ada Efficiency Guide

cmsc435 - 25

The SEI process maturity model

Level 3 Defined

Level 2 Repeatable

Level 1 Initial

Level 4 Managed

Level 5 Optimizing

CMM Overview

An evaluation is based upon a 5-level rating. Each level represents a more mature organization:

  1. Initial – No predefined process. Development is ad hoc. No established rules. (Note: This does not mean bad practices, but usually means it can be greatly improved. There are good development practices followed by some level 1 organizations.)
  2. Repeatable – Policies are in place to manage software development. Each project follows some process that is generally similar to others.
  3. Defined – Processes for software development fit into a corporate standard for software development. Development processes are well documented.
  4. Managed – Quantitative goals for products and processes are set. Software process attributes are quantifiable.
  5. Optimizing – Goals for continuous process improvement are in place.

cmsc435 - 27

CMM Key Process Areas (KPAs)

CMM evaluations are based upon KPAs. 18 KPAs govern the CMM. In order to be at level N, all the KPAs up to that level must be satisfied. Initial – None – This is the initial state. Repeatable – Requirements management; Project planning; Project tracking; Subcontract management; Quality assurance; Software configuration management Defined – Organization process focus; Organization process definition; Training program; Integrated software management; Software product engineering; Intergroup coordination; Peer reviews Managed – Software quality management; Quantitative process management [Is it really level 4?] Optimizing – Defect prevention; Technology change management; Process change management

Key process areas

Process change management Technology change management Defect prevention

Software quality management Quantitative process management

Peer reviews Intergroup coordination Software product engineering Integrated software management Training programme Organization process definition Organization process focus

Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning Requirements management

Initial

Repeatable

Defined

Managed

Optimizing

  • 18 KPAs
  • 52 goals
  • 316 key practices
  • 500 pages of

documentation

cmsc435 - 31

SEI Process Improvement Cycle

Initialize l Establish Sponsorship l Create vision and strategy l Establish improvement structure For Each Maturity Level l Characterize current practice in terms of key process areas l Assessment recommendations l Revise strategy (generate action plans and prioritize key process areas) For Each key Process Area l Establish process action teams l Implement tactical plan, define processes, plan and execute pilot(s), plan and execute institutionalization l Document and analyze lessons l Revise organizational approach

Aggregate results from SEI benefits study

(Herbsleb et al 1994)

Category Range Median Total yearly cost of software process improvement activities $49,000 to $1,202,

$245,

Years engaged in software process improvement 1 to 9 3. Cost of software process improvement per engineer $490 to $2004 $ Productivity gain per year 9% to 67% 35% Early detection gain per year (faults discovered pre-test) 6% to 25% 22% Yearly reduction in time to market 15% to 23% 19% Yearly reduction in post-release fault reports 10% to 94% 39% Business value of investment in software process improvement (value returned on each dollar invested)

4.0 to 8.8 5.

cmsc435 - 33

What is a level 5 organization?

l It is an organization that can manipulate process to achieve

various product characteristics.

l This requires that we have a process and an organizational

structure to help us:

 Understand our processes and products  Measure and model the project and the organization  Define and tailor process and product qualities explicitly  Understand the relationship between process and product qualities  Feedback information for project control  Experiment with methods and techniques  Evaluate our successes and failures  Learn from our experiences  Package successful experiences  Reuse successful experiences

KPA issues

Each KPA provides needed features for good

development, but there are issues with CMM:

  • Companies often look only one level ahead and ignore

ultimate goal of level 5.

  • Management only. Role of technology mostly ignored
  • Expensive, especially for small companies
  • Process is “bottom up.” “One size fits all.” (Contrast

with QIP next.)

  • “Level 3” is often a “requirement” for a DoD contract

even though not fully demonstrated higher level is an

accurate predictor of better quality products.

cmsc435 - 37

ISO 9000 Certification

ISO standard 9001 (software component) for standard

quality of a product. (Note that “good” quality is not

required, only that quality can be accurately determined.

Concrete life preservers can be “ISO certified,” but not

be very useful.)

l Companies want ISO certification as a requirement to sell

in Europe.

l Based upon 20 clauses. “ISO certification” is comparable

to CMM level 2 or level 3, but processes are different.

ISO 9000 clauses

Management Design control Quality team Purchasing Contract review Process control Training Service Control of customer supplied product

Product identification and traceability Document and data control Inspection and test cases

Control of nonconforming products

Control of quality record

Integration and testing Control of inspection, measuring, test Corrective and preventative actions

Handling, storage, packaging, delivery Interval quality audits Statistical techniques

cmsc435 - 39

ISO 9000 tasks

l writing a quality manual, describing the

organization's quality system at a high level

l writing procedure documents describing the

work is carried out in the organization

l creating a system to control distribution and

re-issue of documents

l identifying training needs for most positions in

the organization

l training people in the organization on

operation of the quality system

l planning and conducting internal audits

ISO 9000 standards

ISO 9000, "Quality management and quality assurance standards - Guidelines

for selection and use," clarifies the distinctions and interrelationships between quality concepts and provides guidelines for the selection and use of a series of international standards on quality systems that can be used for internal quality management purposes ( ISO 9004 ) and for external quality assurance purposes (ISO 9001, 9002 and 9003 ).

ISO 9001, "Quality systems - Model for quality assurance in

design/development, production, installation, and servicing." Of the ISO 9000 series, it is the standard that is most pertinent to software development and maintenance.

ISO 9002, "Quality systems - Model for quality assurance in production and

installation."

ISO 9003, "Quality systems - Model for quality assurance in final inspection

and test"

ISO 9004, "Quality management and quality system elements – Guidelines."

ISO 9000-3, provides "Guidelines for the application of ISO 9001 to the

development, supply, and maintenance of software."