Software Engineering for Students A Programming Approach

Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach

web.firat.edu.tr
from web.firat.edu.tr More from this publisher
21.08.2013 Views

29.7 Process improvement 365 specify what methods they are using. In addition, the organization must demonstrate that they are using the methods. Thus an organization must not only use sound methods but must be seen to be using them. Therefore a quality plan describes a number of quality controls. A quality control is an activity that checks that the project’s quality factors are being achieved and produces some documentary evidence. In the kitchen, an example is an inspection carried out after potatoes have been peeled. The documentary evidence is the signature of the chief cook on a checklist recording that this has been done. These documents are then available to anyone – such as the customer – with an interest in checking that the quality of the product is assured. Depending on the quality factors for the project, quality controls might include: Action Document Factor being checked Collect a complexity metric Data on complexity Maintainability for each component in the system Component test Test result Correctness Walkthrough to examine component Minutes of walkthrough Reusability for re-usability SELF-TEST QUESTION 29.4 What quality factors would the measurement of fault density help achieve? 29.7 ● Process improvement We have seen how quality can be measured, attained and ensured. A more ambitious goal is to improve quality. One perspective on improving quality is suggested by W. Edwards Deming, an influential management guru, who suggests that processes can be continuously improved. In his approach, the work processes are subject to continuous examination by the workers themselves as well as the organization in order to see how things can be done better. So, for example, suppose that the number of faults discovered during testing is measured. But simply measuring does not achieve anything; measurements may help to ensure repeatability, but this is not the same as improvement. To improve the process, someone looks at how and why the faults were caused and what can be done to improve the processes. So, for example, it might be that a significant number of faults arise because of lack of clarity in module specifications. Therefore, to improve the process it might be decided that module specifications should be subject to walkthroughs before they are used. Alternatively it might be suggested that a more formal notation is to be

366 Chapter 29 ■ Software metrics and quality assurance used for documenting module specifications. After any changes have been made, measurements are continued, and the search goes on for further improvements. Deming suggests that improvements can continue to be made indefinitely. Deming argues that quality improvements of this type benefit everyone: ■ workers, because they can take control and pride in their work ■ organizations, because they can make increased profits ■ customers, because they get better quality. 29.8 ● The Capability Maturity Model The Capability Maturity Model (CMM) is a grading system that measures how good an organization is at software development. This scheme specifies five levels, ranging from level 1 (bad) to level 5 (good). An organization’s ranking is determined by questionnaires administered by the Software Engineering Institute of Carnegie Mellon University, USA. The levels are: ■ Level 1, initial – the development process is ad hoc and even, occasionally, chaotic. Few processes are defined and the success of any project depends on effort by individuals. Thus the organization survives through the actions of individual heroes and heroines who help ensure some success in spite of the way that the organization is run. ■ Level 2, repeatable – basic project management processes are established within the organization to track cost, schedule and functionality. The processes enable the organization to repeat its success obtained with earlier, similar applications. ■ Level 3, defined – the development process for both management and software engineering activities is documented, standardized and integrated into an organizationwide development process. All projects use an approved and documented version of the standard process. This level includes all the characteristics defined for level 2. ■ Level 4, managed – detailed measures of the development process and of the software product are collected. Both are quantitative and measured in a controlled fashion. This level includes all the characteristics defined for level 3. ■ Level 5, optimizing – measurements are continuously used to improve the process. New techniques and tools are used and tested. This level includes all the characteristics defined for level 4. Any particular development organization will typically use a mix of good and bad practice and so the level achieved is the average for the organization. An organization with a good rating can clearly advertise the fact to get increased business. If an organization, or individual, is buying or commissioning software, it is clearly better to buy from a CMM level 5 software development organization, who will probably supply better software and not necessarily at a more expensive price. Indeed, the evidence is that an organization that uses better methods achieves higher quality software at a lower cost.

29.7 Process improvement 365<br />

specify what methods they are using. In addition, the organization must demonstrate<br />

that they are using the methods. Thus an organization must not only use sound methods<br />

but must be seen to be using them. There<strong>for</strong>e a quality plan describes a number of<br />

quality controls. A quality control is an activity that checks that the project’s quality factors<br />

are being achieved and produces some documentary evidence. In the kitchen, an<br />

example is an inspection carried out after potatoes have been peeled. The documentary<br />

evidence is the signature of the chief cook on a checklist recording that this has been<br />

done. These documents are then available to anyone – such as the customer – with an<br />

interest in checking that the quality of the product is assured. Depending on the quality<br />

factors <strong>for</strong> the project, quality controls might include:<br />

Action Document Factor being checked<br />

Collect a complexity metric Data on complexity Maintainability<br />

<strong>for</strong> each component in the system<br />

Component test Test result Correctness<br />

Walkthrough to examine component Minutes of walkthrough Reusability<br />

<strong>for</strong> re-usability<br />

SELF-TEST QUESTION<br />

29.4 What quality factors would the measurement of fault density help<br />

achieve?<br />

29.7 ● Process improvement<br />

We have seen how quality can be measured, attained and ensured. A more ambitious<br />

goal is to improve quality. One perspective on improving quality is suggested by<br />

W. Edwards Deming, an influential management guru, who suggests that processes can<br />

be continuously improved. In his approach, the work processes are subject to continuous<br />

examination by the workers themselves as well as the organization in order to see<br />

how things can be done better.<br />

So, <strong>for</strong> example, suppose that the number of faults discovered during testing is measured.<br />

But simply measuring does not achieve anything; measurements may help to<br />

ensure repeatability, but this is not the same as improvement. To improve the process,<br />

someone looks at how and why the faults were caused and what can be done to improve<br />

the processes. So, <strong>for</strong> example, it might be that a significant number of faults arise<br />

because of lack of clarity in module specifications. There<strong>for</strong>e, to improve the process it<br />

might be decided that module specifications should be subject to walkthroughs be<strong>for</strong>e<br />

they are used. Alternatively it might be suggested that a more <strong>for</strong>mal notation is to be

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

Saved successfully!

Ooh no, something went wrong!