Inhoudsopgave

Voorwoord  11

Inleiding  17

1   Op een dag …  21

1.1   Verhaal  21

1.2   Software Engineering  22

1.2.1 Verwachtingen versus realiteit  22

1.2.2 Ethiek  24

1.3   Regels (algemeen = AL)  25

1.4   Terzijde  25

1.4.1 Sommetje (deel 1)  25

1.4.2 Referentiekaders  26

1.5   Vragen en Opdrachten  27

2   Wat voor een huis?  29

2.1   Verhaal  29

2.2   Software Engineering (oriëntatie)  30

2.2.1 Dimensies van een project  31

2.2.2 Productie-eenheid  34

2.2.3 Onmogelijke projecten  36

2.2.4 Use cases  38

2.3   Regels voor oriëntatiefase (OR)  40

2.4   Terzijde  40

2.4.1 Snel verdiend  40

2.4.2 Kast met één knop  41

2.5   Vragen en Opdrachten  42

3   De eerste voorbereidingen  45

3.1   Verhaal  45

3.2   Software Engineering (planning, deel I)  46

3.2.1 Projectdoelstelling en -afbakening  46

3.2.2 Projectfasering  47

3.2.3 Projectorganisatie  49

3.2.4 Teamsamenstelling  51

3.2.5 Ontwikkelomgeving  53

3.2.6 Outsourcing  55

3.3   Regels voor planningsfase (PL)  56

3.4   Terzijde  57

3.4.1 Rekenmachines  57

3.4.2 Ponskaarten  57

3.4.3 Met de billen bloot  58

3.5   Vragen en Opdrachten  60

4   Het bouwplan  63

4.1   Verhaal  63

4.2   Software Engineering (planning, deel II)  64

4.2.1 Schatten van productgrootte  64

4.2.2 Doorlooptijd, inspanning en bezettingsprofiel  69

4.2.3 Beschikbare ervaringscijfers  72

4.2.4 Planning  73

4.2.5 Risico’s  74

4.3   Regels voor planningsfase (PL)  76

4.4   Terzijde  76

4.4.1 Pot met erwten  76

4.4.2 Pot met stenen  77

4.5   Vragen en Opdrachten  77

5   Het huis  79

5.1   Verhaal  79

5.2   Software Engineering (analyse)  80

5.2.1 Context  80

5.2.2 Functionele specificaties  81

5.2.3 UML  83

5.2.4 Niet-functionele specificaties  84

5.3   Regels voor de analysefase (AN)  86

5.4   Terzijde  86

5.4.1 De wolf, de geit en de kool  86

5.4.2 Twee echtparen  87

5.4.3 Drie kannibalen en drie missionarissen  89

5.5   Vragen en Opdrachten  90

6   De bouwtekeningen  93

6.1   Verhaal  93

6.2   Software Engineering (ontwerp)  94

6.2.1 Architectuurstijlen  96

6.2.2 Decompositieregels  98

6.2.3 Koppeling  98

6.2.4 Cohesie  100

6.2.5 Foutafhandeling  101

6.2.6 Andere voorzieningen  104

6.2.7 Documentatie  107

6.3   Regels voor de architectuur (AR)  109

6.4   Terzijde  110

6.4.1 LEGO-oefening  110

6.4.2 Kastje bouwen  111

6.4.3 Televisie  112

6.5   Vragen en Opdrachten  113

7   Aan de slag  115

7.1   Verhaal  115

7.2   Software Engineering (realisatie)  116

7.2.1 Voorbereiding  117

7.2.2 Implementatie  118

7.2.3 Componenttest  120

7.2.4 Documentatie  122

7.2.5 Configuratiebeheer (deel 1)  124

7.3   Regels voor de realisatiefase (RE)  125

7.4   Terzijde  125

7.4.1 Programmaatje  125

7.4.2 Gekleurde kaarten  127

7.4.3 Wat is er mis?  130

7.5   Vragen en Opdrachten  131

8   Intermezzo I: toezicht op de bouw  133

8.1   Verhaal  133

8.2   Software Engineering (reviewen)  134

8.2.1 Definities  134

8.2.2 Soorten reviews  139

8.2.3 Toepassing in de praktijk  142

8.2.4 Quality Assurance  144

8.3   Regels voor toezicht (TO)  145

8.4   Terzijde   145

8.4.1 Kunnen we naar de volgende fase?  145

8.4.2 Doorlichten  147

8.4.3 Geen tijd  148

8.5   Vragen en Opdrachten  149

9   Intermezzo II: de voortgang  151

9.1   Verhaal  151

9.2   Software Engineering (voortgang)  152

9.2.1 Milestone-trendanalyse  153

9.2.2 S-curve  154

9.2.3 Bijhouden van projectparameters  157

9.2.4 Koppeling met configuratiebeheer  158

9.2.5 Terugkoppeling  158

9.3   Regels voor de voortgang (VO)  159

9.4   Terzijde  159

9.4.1 Sommetje (deel 2)  159

9.4.2 Thermometer  160

9.5   Vragen en Opdrachten  161

10   De laatste loodjes  163

10.1   Verhaal  163

10.2   Software Engineering (testen)  164

10.2.1 Rekenvoorbeelden  164

10.2.2 Integratietest  168

10.2.3 Systeemtest  169

10.2.4 Start- en eindcriteria  171

10.2.5 Registraties  172

10.3   Regels voor testfase (TE)  173

10.4   Terzijde  173

10.4.1 Nieuwe compiler  173

10.4.2 Zoek de verschillen  174

10.5   Vragen en Opdrachten  177

11   De oplevering  179

11.1   Verhaal  179

11.2   Software Engineering (acceptatie)  180

11.2.1 Externe acceptatie  181

11.2.2 Interne acceptatie  181

11.3   Regels voor acceptatiefase (AC)  182

11.4   Terzijde  182

11.4.1 Techneuten  182

11.4.2 Imago  184

11.5   Vragen en Opdrachten  184

12   Hoe het project eindigde  187

12.1   Verhaal  187

12.2   Software Engineering (evaluatie)  188

12.2.1 Projectevaluatie  188

12.2.2 Gebruik resultaten  190

12.2.3 Meten is weten  191

12.3   Regels voor evaluatiefase (EV)  194

12.4   Terzijde  195

12.4.1 Zwijgen is goud  195

12.4.2 Hoeveel tanden heeft een paard?  195

12.5   Vragen en Opdrachten  196

13   En hoe het allemaal verder liep  199

13.1   Verhaal  199

13.2   Software Engineering (onderhoud)  200

13.2.1 Soorten onderhoud  200

13.2.2 Onderhoudsproblemen  203

13.2.3 Organisatievorm  205

13.2.4 Configuratiebeheer (deel 2)  206

13.2.5 Testen  207

13.3   Regels voor onderhoudsfase (ON)  208

13.4   Terzijde  208

13.4.1 Succesvolle amateur?  208

13.4.2 Te ambitieus  209

13.5   Vragen en Opdrachten   212

14   De toekomst  213

14.1   Verhaal  213

14.2   Software Engineering (verbeteringen)  213

14.2.1 Overheid  214

14.2.2 Onderwijs  215

14.2.3 Bedrijfsleven  218

14.2.4 Veranderingen  220

14.2.5 De re-use paradox  224

14.2.6 Oplossingsrichting  227

14.3   Regels voor verbeteringen (VE)  229

14.4   Terzijde  229

14.4.1 De vogel  229

14.4.2 De apen  230

14.5   Vragen en Opdrachten  231

Appendix A: Overzicht basisregels  233

Appendix B: Kwaliteitsmodellen en kwaliteitsstandaarden  239

B.1 TQM en ISO 9000  239

B.2 CMM, SPICE, CMMi, PSP en TSP  241

B.3 ITIL  245

B.4 Managementmodellen  246

B.5 Waarde  250

Literatuurlijst  253

Nawoord  257

Over de auteur  259

Index  261