Software Engineering for Students A Programming Approach
Software Engineering for Students A Programming Approach Software Engineering for Students A Programming Approach
Time taken Figure 28.2 Having a baby Time taken Figure 28.3 Typical software development 28.2 The principles of teams 349 To make matters worse, human beings are not well known for precise communication with each other. It is therefore likely that there will be faults in a system constructed by a team. The division of labor Number of people Number of people The second major question in team organization is deciding how to break down the large task into smaller tasks so that several people can carry them out. Developers carry out a whole variety of tasks, some of which, like design, are challenging and others, like keying corrections or filing listings, are less demanding. One way of dividing the work of software development amongst a set of people is to expect everyone to do a mix of tasks. Another approach is to separate out tasks that require different degrees of skill so that, for example, one person does all the design and another all the keying in of test data. This principle of the division of labor has long been recognized.
350 Chapter 28 ■ Teams Level of skill required Requirements specification Architectural design Program design Stage of project Figure 28.4 Skill requirements at each stage of a project Figure 28.4 illustrates a (controversial) conjecture about the differing skills involved during the development of software. Creating specialist roles has several advantages. First, it means that each person becomes an expert, highly skilled and productive at the particular task. Another feature of this type of organization is that instead of paying several highly skilled people uniformly high wages, management can pay people who have different skills different salaries. Overall the wages of the people with unequal skills will be lower than those of the skilled people. Thus the wages bill is reduced. To give a crude example, it would be cheaper to employ a programmer at $50,000 and a designer at $100,000, rather than employ two designer/programmers each at $180,000. It is no coincidence that Charles Babbage, one of the founding fathers of computing, was well aware of this effect. SELF-TEST QUESTION 28.1 Identify the different roles of the workers in the kitchen of a restaurant. In summary, specialization offers: 1. greater productivity, since the team member does just one type of work and becomes very skilled at it 2. the chance to pay the different team members according to the separate skills involved in their work, rather than pay everyone at the same rate for the most highly skilled work. Coding Debugging and testing
- Page 322 and 323: 22.2 The spiral model 299 to try to
- Page 324 and 325: 22.4 ● Discussion Exercises 301 A
- Page 326 and 327: CHAPTER 23 Prototyping This chapter
- Page 328 and 329: Therefore, in summary: ■ the prod
- Page 330 and 331: 23.5 Evolutionary prototyping 307 U
- Page 332 and 333: Reuse components 23.6 Rapid prototy
- Page 334 and 335: Pitfalls For users, the problems of
- Page 336 and 337: Answers to self-test questions 313
- 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: 348 Chapter 28 ■ Teams The commun
- 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 and 388: 364 Chapter 29 ■ Software metrics
- Page 389 and 390: 366 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
350 Chapter 28 ■ Teams<br />
Level of skill required<br />
Requirements<br />
specification<br />
Architectural<br />
design<br />
Program<br />
design<br />
Stage of project<br />
Figure 28.4 Skill requirements at each stage of a project<br />
Figure 28.4 illustrates a (controversial) conjecture about the differing skills involved<br />
during the development of software.<br />
Creating specialist roles has several advantages. First, it means that each person<br />
becomes an expert, highly skilled and productive at the particular task. Another feature<br />
of this type of organization is that instead of paying several highly skilled people uni<strong>for</strong>mly<br />
high wages, management can pay people who have different skills different<br />
salaries. Overall the wages of the people with unequal skills will be lower than those of<br />
the skilled people. Thus the wages bill is reduced. To give a crude example, it would be<br />
cheaper to employ a programmer at $50,000 and a designer at $100,000, rather than<br />
employ two designer/programmers each at $180,000. It is no coincidence that Charles<br />
Babbage, one of the founding fathers of computing, was well aware of this effect.<br />
SELF-TEST QUESTION<br />
28.1 Identify the different roles of the workers in the kitchen of a restaurant.<br />
In summary, specialization offers:<br />
1. greater productivity, since the team member does just one type of work and<br />
becomes very skilled at it<br />
2. the chance to pay the different team members according to the separate skills<br />
involved in their work, rather than pay everyone at the same rate <strong>for</strong> the most highly<br />
skilled work.<br />
Coding<br />
Debugging<br />
and testing