

















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
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
1 / 25
This page cannot be seen from the preview
Don't miss anything!


















cmsc435 - 1
cmsc435 - 3
cmsc435 - 7
cmsc435 - 9
cmsc435 - 13
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 ##
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
But this does not mean that measurements should drive the improvements. The improvement driver should be organizational objectives
cmsc435 - 15
cmsc435 - 19
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
*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
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
Level 3 Defined
Level 2 Repeatable
Level 1 Initial
Level 4 Managed
Level 5 Optimizing
An evaluation is based upon a 5-level rating. Each level represents a more mature organization:
cmsc435 - 27
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
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
cmsc435 - 31
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
(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?
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
cmsc435 - 37
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
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 ).
design/development, production, installation, and servicing." Of the ISO 9000 series, it is the standard that is most pertinent to software development and maintenance.
installation."
and test"
development, supply, and maintenance of software."