Software in Zahlen - Die Vermessung von Applikationen

Harry M. Sneed, Manfred Baumgartner, Richard Seidl

Software in Zahlen

Die Vermessung von Applikationen

2010

386 Seiten

Format: PDF, Online Lesen

E-Book: €  31,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446424487

 

Inhalt

6

Geleitwort

14

Vorwort

17

Die Autoren

19

1 Softwaremessung

22

1.1 Das Wesen von Software

22

1.2 Sinn und Zweck der Softwaremessung

27

1.2.1 Zum Verständnis (Comprehension) der Software

28

1.2.2 Zum Vergleich der Software

28

1.2.3 Zur Vorhersage

29

1.2.4 Zur Projektsteuerung

29

1.2.5 Zur zwischenmenschlichen Verständigung

29

1.3 Dimensionen der Substanz Software

30

1.3.1 Quantitätsmetrik von Software

30

1.3.2 Komplexitätsmetrik von Software

31

1.3.3 Qualitätsmetrik von Software

31

1.4 Sichten auf die Substanz Software

32

1.5 Objekte der Softwaremessung

34

1.6 Ziele einer Softwaremessung

35

1.7 Zur Gliederung dieses Buches

38

2 Softwarequantität

42

2.1 Quantitätsmaße

42

2.2 Codegrößen

44

2.2.1 Codedateien

45

2.2.2 Codezeilen

46

2.2.3 Anweisungen

46

2.2.4 Prozeduren bzw. Methoden

46

2.2.5 Module bzw. Klassen

46

2.2.6 Entscheidungen

47

2.2.7 Logikzweige

47

2.2.8 Aufrufe

47

2.2.9 Vereinbarte Datenelemente

47

2.2.10 Benutzte Datenelemente bzw. Operanden

47

2.2.11 Datenobjekte

48

2.2.12 Datenzugriffe

48

2.2.13 Benutzeroberflächen

48

2.2.14 Systemnachrichten

48

2.3 Entwurfsgrößen

49

2.3.1 Strukturierte Entwurfsgrößen

49

2.3.2 Datenmodellgrößen

49

2.3.3 Objektmodellgrößen

49

2.4 Anforderungsgrößen

53

2.4.1 Anforderungen

54

2.4.2 Abnahmekriterien

55

2.4.3 Anwendungsfälle

55

2.4.4 Verarbeitungsschritte

55

2.4.5 Oberflächen

55

2.4.6 Systemschnittstellen

55

2.4.7 Systemakteure

56

2.4.8 Relevante Objekte

56

2.4.9 Objektzustände

56

2.4.10 Bedingungen

56

2.4.11 Aktionen

56

2.4.12 Testfälle

57

2.5 Testgrößen

57

2.5.1 Testfälle

57

2.5.2 Testfallattribute

58

2.5.3 Testläufe

58

2.5.4 Testskriptebzw. Testprozeduren

59

2.5.5 Testskriptzeilen

59

2.5.6 Testskriptanweisungen

59

2.5.7 Fehlermeldungen

59

2.6 Abgeleitete Größenmaße

60

2.6.1 Function-Points

60

2.6.2 Data-Points

61

2.6.3 Object-Points

62

2.6.4 Use-Case-Points

63

2.6.5 Testfall-Points

63

3 Softwarekomplexität

66

3.1 Komplexität in der Softwaremetrik

69

3.1.1 Software Komplexität nach dem IEEE-Standard

69

3.1.2 Softwarekomplexität aus der Sicht von Zuse

70

3.1.3 Softwarekomplexität nach Fenton

70

3.1.4 Komplexität als Krankheit der Softwareentwicklung

71

3.1.5 Komplexitätsmessung nach Ebert und Dumke

73

3.1.6 Die Alpha-Komplexitätsmetrik

75

3.2 Steigende Softwarekomplexität

77

3.2.1 Codekomplexität – Warum Java komplexer als COBOL ist

79

3.2.2 Entwurfskomplexität – Warum verschiedene Entwurfsansätze im Endeffekt gleich komplex sind

81

3.2.3 Anforderungskomplexität – Warum die zu lösenden Aufgaben immer komplexer werden

84

3.3 Allgemeingültige Maße für die Softwarekomplexität

85

3.3.1 Sprachkomplexität

85

3.3.2 Strukturkomplexität

86

3.3.3 Algorithmische Komplexität

86

4 Die Messung der Softwarequalität

88

4.1 Qualitätseigenschaften nach Boehm

89

4.1.1 Verständlichkeit nach Boehm

90

4.1.2 Vollständigkeit nach Boehm

91

4.1.3 Portabilität nach Boehm

91

4.1.4 Änderbarkeit nach Boehm

91

4.1.5 Testbarkeit nach Boehm

91

4.1.6 Benutzbarkeit nach Boehm

92

4.1.7 Zuverlässigkeit nach Boehm

92

4.1.8 Effizienz nach Boehm

92

4.2 Gilb und die Quantifizierung der Qualität

93

4.2.1 Funktionalitätsmessung nach Gilb

94

4.2.2 Performance-Messung nach Gilb

94

4.2.3 Zuverlässigkeitsmessung nach Gilb

94

4.2.4 Datensicherungsmessung nach Gilb

95

4.2.5 Effizienzmessung nach Gilb

95

4.2.6 Verfügbarkeitsmessung nach Gilb

95

4.2.7 Wartbarkeitsmessung nach Gilb

96

4.3 McCalls Qualitätsbaum

96

4.4 Eine deutsche Sicht auf Softwarequalität

98

4.4.1 Qualitätsbegriff

99

4.4.2 Qualitätsklassifizierung

99

4.4.3 Qualitätsmaße

100

4.4.4 Qualitätsgrößen

100

4.5 Automatisierte Softwarequalitätssicherung

100

4.5.1 Automatisierte Messung der Anforderungsqualität

101

4.5.2 Automatisierte Messung der Entwurfsqualität

102

4.5.3 Automatisierte Messung der Codequalität

103

4.5.4 Automatisierte Messung der Testqualität

105

4.6 Zielgerichtete Softwarequalitätssicherung

106

4.6.1 Qualitätszielbestimmung

106

4.6.2 Qualitätszielbefragung

106

4.6.3 Qualitätszielbemessung

107

4.7 IEEE- und ISO-Standards für Softwarequalität

108

4.7.1 Funktionalität nach ISO 9126

109

4.7.2 Zuverlässigkeit nach ISO 9126

109

4.7.3 Benutzbarkeit nach ISO 9126

109

4.7.4 Effizienz nach ISO 9126

110

4.7.5 Wartbarkeit nach ISO 9126

110

4.7.6 Portabilität nach ISO 9126

110

4.8 Folgen fehlender Qualitätsmessung

111

5 Anforderungsmessung

112

5.1 Tom Gilbs Anstoß der Anforderungsmessung

113

5.2 Weitere Ansätze zur Anforderungsmessung

115

5.2.1 Der Boehm-Ansatz

115

5.2.2 N-Fold Inspektion

117

5.2.3 Parnas & Weis Anforderungsprüfung

118

5.2.4 Abgleich der Anforderungen nach Fraser und Vaishnavi (Anforderungsprüfung)

118

5.2.5 Verfolgung der Anforderungen nach Hayes

119

5.2.6 Bewertung der Anforderungen nach Glinz

120

5.2.7 ISO-Standard 25030

121

5.2.8 Das V-Modell-XT als Referenzmodell für die Anforderungsmessung

122

5.3 Eine Metrik für Anforderungen von C. Ebert

123

5.3.1 Zahl aller Anforderungen in einem Projekt

124

5.3.2 Fertigstellungsgrad der Anforderungen

124

5.3.3 Änderungsrate der Anforderungen

124

5.3.4 Zahl der Änderungsursachen

124

5.3.5 Vollständigkeit des Anforderungsmodells

124

5.3.6 Anzahl der Anforderungsmängel

125

5.3.7 Anzahl der Mängelarten

125

5.3.8 Nutzwert der Anforderungen

125

5.4 Die Sophist-Anforderungsmetrik

126

5.4.1 Eindeutigkeit der Anforderungen

127

5.4.2 Ausschluss der Passivform bei den Anforderungen

127

5.4.3 Klassifizierbarkeit der Anforderungen

127

5.4.4 Identifizierbarkeit der Anforderungen

127

5.4.5 Lesbarkeit

128

5.4.6 Selektierbarkeit

128

5.5 Werkzeuge für die Anforderungsmessung

128

5.5.1 Anforderungsmessung in den früheren CASE-Werkzeugen

128

5.5.2 Anforderungsmessung im CASE-Tool SoftSpec

129

5.5.3 Anforderungsmessung in den gegenwärtigen Requirements Management Tools

130

5.5.4 Anforderungsmetrik aus dem Werkzeug TextAudit

131

5.5.5 Darstellung der Anforderungsmetrik

134

5.6 Gründe für die Anforderungsmessung

135

6 Entwurfsmessung

136

6.1 Erste Ansätze zu einer Entwurfsmetrik

137

6.1.1 Der MECCA-Ansatz von Tom Gilb

137

6.1.2 Der Structured-Design-Ansatz von Yourdon und Constantine

137

6.1.3 Der Datenflussansatz von Henry und Kafura

139

6.1.4 Der Systemgliederungsansatz von Belady und Evangelisti

140

6.2 Entwurfsmessung nach Card und Glass

141

6.2.1 Entwurfsqualitätsmaße

142

6.2.2 Entwurfskomplexitätsmaße

144

6.2.3 Erfahrung mit der ersten Entwurfsmetrik

147

6.3 Die SOFTCON Entwurfsmetrik

148

6.3.1 Formale Vollständigkeits- und Konsistenzprüfung

149

6.3.2 Technische Qualitätsmaße für den Systementwurf

150

6.4 Objektorientierte Entwurfsmetrik

153

6.4.1 Die OO-Metrik von Chidamer und Kemerer

154

6.4.2 MOOD-Entwurfsmetrik

158

6.5 Entwurfsmetrik in UMLAudit

161

6.5.1 Entwurfsquantitätsmetrik

162

6.5.2 Entwurfskomplexitätsmetrik

164

6.5.3 Entwurfsqualitätsmetrik

168

6.5.4 Entwurfsgrößenmetrik

174

6.6 Entwurfsmetrik für Webapplikationen

177

7 Codemetrik

180

7.1 Programmaufbau

180

7.2 Ansätze zur Messung von Codekomplexität

183

7.2.1 Halsteads Software Science

183

7.2.2 McCabe‘s Zyklomatische Komplexität

185

7.2.3 Chapins Q-Komplexität

186

7.2.4 Elshofs Referenzkomplexität

187

7.2.5 Prathers Verschachtelungskomplexität

188

7.2.6 Weitere Codekomplexitätsmaße

190

7.3 Ansätze zur Messung von Codequalität

190

7.3.1 Der Codequalitätsindex von Simon

190

7.3.2 Der Maintainability-Index von Oman

192

7.3.3 Zielorientierte Codequalitätsmessung

193

7.4 Codemetrik im SoftAudit-System

201

7.4.1 Codequantitätsmetrik

202

7.4.2 Codekomplexität

203

7.4.3 Codequalität

206

7.5 Werkzeuge für die Codemessung

211

7.5.1 Die ersten Codemessungswerkzeuge

211

7.5.2 Codemessungswerkzeuge der 90er Jahre

212

7.5.3 Heutige Codemessungswerkzeuge

214

7.6 Beispiel einer Codemessung

216

8 Testmetrik

218

8.1 Testmessung in der früheren Projektpraxis

219

8.1.1 Das ITS-Projekt bei Siemens

219

8.1.2 Das Wella-Migrationsprojekt

220

8.2 Testmetrik nach Hetzel

222

8.3 Testmetrik bei IBM Rochester

224

8.4 Maßzahlen für den Systemtest

227

8.4.1 Testzeit

227

8.4.2 Testkosten

228

8.4.3 Testfälle

228

8.4.4 Fehlermeldungen

228

8.4.5 Systemtestüberdeckung

229

8.4.6 Empfehlungen von Hutcheson

229

8.4.7 Test-Points

230

8.5 Testmetrik im GEOS-Projekt

231

8.5.1 Messung der Testfälle

232

8.5.2 Messung der Testüberdeckung

235

8.5.3 Messung der Fehlerfindung

235

8.5.4 Auswertung der Testmetrik

237

8.6 Testmetrik nach Sneed und Jungmayr

238

8.6.1 Testbarkeitsmetrik

238

8.6.2 Testplanungsmetrik

241

8.6.3 Testfortschrittsmetrik

244

8.6.4 Testqualitätsmetrik

245

9 Produktivitätsmessungvon Software

250

9.1 Produktivitätsmessung – Ein umstrittenes Thema

253

9.2 Softwareproduktivität im Rückblick

254

9.2.1 Dokumentenmessung mit dem Fog-Index

254

9.2.2 Produktivitätsmessung bei der Standard Bank of South Africa

255

9.2.3 Die Entstehung der Function-Point-Methode

256

9.2.4 Das COCOMO-I-Modell von Boehm

258

9.2.5 Putnams Softwaregleichung

259

9.2.6 Die Data-Point-Methode

262

9.2.7 Die Object-Point-Methode

264

9.2.8 Die Use-Case-Point-Methode

268

9.3 Alternative Produktivitätsmaße

270

9.4 Produktivitätsberechnung anhand der Softwaregröße

272

9.5 Aufwandserfassung

273

9.6 Softwareproduktivitätsarten

274

9.6.1 Programmierproduktivität

274

9.6.2 Designproduktivität

275

9.6.3 Analyseproduktivität

275

9.6.4 Testproduktivität

276

9.6.5 Gesamtproduktivität

276

9.7 Produktivitätsstudien

277

9.7.1 Studien über Softwareproduktivität in den USA

277

9.7.2 Studien über Softwareproduktivität in Europa

279

9.7.3 Probleme beim Produktivitätsvergleich

282

9.8 Produktivitätsmessung nach Wertbeitrag

282

10 Die Messung der Wartungsproduktivität

284

10.1 Frühere Ansätze zur Messung der Wartbarkeit von Software

286

10.1.1 Stabilitätsmaße von Yau und Collofello

287

10.1.2 Maintenance-Umfrage bei der U.S. Air Force

288

10.1.3 Die Wartbarkeitsstudie von Vessey und Weber

289

10.1.4 Bewertung der Softwarewartbarkeit nach Berns

290

10.1.5 Die Wartungsuntersuchung von Gremillion

291

10.1.6 Wartungsmetrik bei Hewlett-Packard

292

10.1.7 Wartungsmessung nach Rombach

293

10.1.8 Messung der Wartbarkeit kommerzieller COBOL Systeme

294

10.1.9 Der Wartbarkeitsindex von Oman

296

10.2 Ansätze zur Messung der Wartbarkeitobjektorientierter Software

298

10.2.1 Erste Untersuchung der Wartbarkeit objektorientierterProgramme

299

10.2.2 Chidamer/Kemerers OO-Metrik für Wartbarkeit

300

10.2.3 MOOD-Metrik als Indikator der Wartbarkeit

301

10.2.4 Eine empirische Validation der OO-Metrik für die Schätzung des Wartungsaufwands

302

10.2.5 Der Einfluss einer zentralen Steuerung auf die Wartbarkeit eines OO-Systems

302

10.2.6 Kalkulation vom Wartungsaufwand aufgrund der Programmkomplexität

303

10.2.7 Vergleich der Wartbarkeit objektorientierter und prozeduraler Software

304

10.2.8 Zur Änderung der Wartbarkeit im Laufe der Softwareevolution

306

10.3 Wartungsproduktivitätsmessung

308

10.3.1 Erste Ansätze zur Messung von Wartungsproduktivität

308

10.3.2 Messung von Programmwartbarkeit im ESPRIT-Projekt MetKit

311

10.3.3 Wartungsproduktivitätsmessung in der US-Marine

313

10.3.4 Messung der Wartungsproduktivität bei Martin-Marietta

315

10.3.5 Vergleich der Wartungsproduktivität repräsentativer Schweizer Anwender

316

11 Softwaremessung in der Praxis

320

11.1 Dauerhafte Messverfahren

322

11.1.1 Beteiligung der Betroffenen

322

11.1.2 Aufbauen auf vorhandener Metrik

323

11.1.3 Transparenz des Verfahrens

323

11.2 Beispiele dauerhafter Messverfahren

324

11.2.1 Die Initiative von Hewlett-Packard zur Softwaremessung

324

11.2.2 Prozess- und Produktmessung in der Siemens AG

328

11.2.3 Die eingebaute Softwaremessung im GEOS-Projekt

332

11.3 Übergreifende Software-Cockpits und Dashboards

335

11.3.1 Aufbau und Funktionalität des Software-Cockpits

337

11.3.2 Dashboard

338

11.3.3 Scorecard

339

11.3.4 Interaktive Analysen und Berichte

340

11.4 Einmalige Messverfahren

340

11.4.1 Vereinbarung der Messziele

342

11.4.2 Auswahl der Metrik

342

11.4.3 Bereitstellung der Messwerkzeuge

343

11.4.4 Übernahme der Messobjekte

343

11.4.5 Durchführung der Messung

344

11.4.6 Auswertung der Messergebnisse

344

11.5 Beispiel einer einmaligen Messung

345

Literatur

350

Register

372

 

© 2009-2024 ciando GmbH