Software Engineering for Students A Programming Approach
Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach
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.
- Page 338 and 339: 24.2 ● Big-bang implementation 24
- Page 340 and 341: Tested component Figure 24.1 Top-do
- Page 342 and 343: 24.7 ● Use case driven implementa
- Page 344 and 345: ■ middle-out ■ use case based.
- Page 346 and 347: SELF-TEST QUESTION 25.1 What is the
- Page 348 and 349: sharing of software or their own re
- Page 350 and 351: Summary 327 Inappropriate patches,
- Page 352 and 353: Further reading 329 Cathedral and t
- Page 354 and 355: These are qualified by the statemen
- Page 356 and 357: 26.3 Extreme programming 333 develo
- Page 358 and 359: SELF-TEST QUESTION 26.3 Which of th
- Page 360 and 361: CHAPTER 27 This chapter explains:
- Page 362 and 363: Figure 27.1 The phases of the unifi
- Page 364 and 365: 27.5 ● Iteration 27.6 Case study
- Page 366 and 367: The transition phase Summary 343 Th
- Page 368: PART F PROJECT MANAGEMENT
- Page 371 and 372: 348 Chapter 28 ■ Teams The commun
- Page 373 and 374: 350 Chapter 28 ■ Teams Level of s
- Page 375 and 376: 352 Chapter 28 ■ Teams A chief pr
- Page 377 and 378: 354 Chapter 28 ■ Teams benefits o
- Page 379 and 380: 356 Chapter 28 ■ Teams • Furthe
- Page 381 and 382: 358 Chapter 29 ■ Software metrics
- Page 383 and 384: 360 Chapter 29 ■ Software metrics
- Page 385 and 386: 362 Chapter 29 ■ Software metrics
- Page 387: 364 Chapter 29 ■ Software metrics
- Page 391 and 392: 368 Chapter 29 ■ Software metrics
- Page 393 and 394: CHAPTER 30 This chapter: 30.1 ● I
- Page 395 and 396: 372 Chapter 30 ■ Project manageme
- Page 397 and 398: 374 Chapter 30 ■ Project manageme
- Page 399 and 400: 376 Chapter 30 ■ Project manageme
- Page 401 and 402: 378 Chapter 30 ■ Project manageme
- Page 403 and 404: 380 Chapter 30 ■ Project manageme
- Page 405 and 406: 382 Chapter 30 ■ Project manageme
- Page 408 and 409: CHAPTER 31 This chapter: 31.1 ● I
- Page 410 and 411: 31.3 Case study - assessing verific
- Page 412 and 413: 31.5 A single development method? 3
- Page 414 and 415: Further reading 391 31.2 Draw up a
- Page 416 and 417: 32.3 ● The world of programming l
- Page 418 and 419: 32.5 ● The real world of software
- Page 420 and 421: 32.6 Control versus skill 397 Final
- Page 422 and 423: Formal methods 32.7 Future methods
- Page 424 and 425: Summary 401 In the short-term futur
- Page 426: Further reading 403 An extensive tr
- Page 430 and 431: APPENDIX A Case studies are used th
- Page 432 and 433: Figure A.1 Cyberspace invaders A.4
- Page 434 and 435: APPENDIX B Glossary Within the fiel
- Page 436 and 437: C.2 ● Class diagrams C.2 Class di
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