21.08.2013 Views

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

366 Chapter 29 ■ <strong>Software</strong> metrics and quality assurance<br />

used <strong>for</strong> documenting module specifications. After any changes have been made, measurements<br />

are continued, and the search goes on <strong>for</strong> further improvements. Deming<br />

suggests that improvements can continue to be made indefinitely.<br />

Deming argues that quality improvements of this type benefit everyone:<br />

■ workers, because they can take control and pride in their work<br />

■ organizations, because they can make increased profits<br />

■ customers, because they get better quality.<br />

29.8 ● The Capability Maturity Model<br />

The Capability Maturity Model (CMM) is a grading system that measures how good an<br />

organization is at software development. This scheme specifies five levels, ranging from<br />

level 1 (bad) to level 5 (good). An organization’s ranking is determined by questionnaires<br />

administered by the <strong>Software</strong> <strong>Engineering</strong> Institute of Carnegie Mellon University, USA.<br />

The levels are:<br />

■ Level 1, initial – the development process is ad hoc and even, occasionally, chaotic.<br />

Few processes are defined and the success of any project depends on ef<strong>for</strong>t by<br />

individuals. Thus the organization survives through the actions of individual<br />

heroes and heroines who help ensure some success in spite of the way that the<br />

organization is run.<br />

■ Level 2, repeatable – basic project management processes are established within the<br />

organization to track cost, schedule and functionality. The processes enable the<br />

organization to repeat its success obtained with earlier, similar applications.<br />

■ Level 3, defined – the development process <strong>for</strong> both management and software engineering<br />

activities is documented, standardized and integrated into an organizationwide<br />

development process. All projects use an approved and documented version of<br />

the standard process. This level includes all the characteristics defined <strong>for</strong> level 2.<br />

■ Level 4, managed – detailed measures of the development process and of the software<br />

product are collected. Both are quantitative and measured in a controlled<br />

fashion. This level includes all the characteristics defined <strong>for</strong> level 3.<br />

■ Level 5, optimizing – measurements are continuously used to improve the process.<br />

New techniques and tools are used and tested. This level includes all the characteristics<br />

defined <strong>for</strong> level 4.<br />

Any particular development organization will typically use a mix of good and bad<br />

practice and so the level achieved is the average <strong>for</strong> the organization. An organization<br />

with a good rating can clearly advertise the fact to get increased business. If an organization,<br />

or individual, is buying or commissioning software, it is clearly better to buy<br />

from a CMM level 5 software development organization, who will probably supply<br />

better software and not necessarily at a more expensive price. Indeed, the evidence is<br />

that an organization that uses better methods achieves higher quality software at a<br />

lower cost.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!