Gelebtes Software-Engineering: Ein umfassender Themenquerschnitt, von erfahrenen Praktikern dargelegt
Die Beiträge im vorliegenden Buch stammen von Praktikern der Objektorientierung, die ihren Erfahrungsschatz dokumentieren und anderen Anwendern zugänglich machen. Dabei wird vor allem auf Themen eingegangen, die in Grundlagenbüchern nicht oder nur am Rande behandelt werden, wie z. B. der Entwurf und die Dokumentation von Software-architekturen, Aspekte des Prozess- und Projektmanagements, Geschäftsmodellierung im Kontext objektorientierter Modelle und die Verwendung prädikativer Techniken.
Vom Schlagwort des letzten Jahrzehnts hat sich Objektorientierung inzwischen zum Grundprinzip heutiger Softwareentwicklung gewandelt. Im vorliegenden Buch kommen Praktiker zu Wort, die objektorientierte Techniken, Methoden und Prozesse schon seit Jahren erfolgreich in der Praxis einsetzen, Lücken kennen und die Ansätze um eigene Methoden erweitert haben. Diesen Erfahrungsschatz zu dokumentieren und anderen Anwendern zugänglich zu machen, ist das Ziel dieses Buches.
Ein Schwerpunkt der Beiträge beschäftigt sich mit dem Einsatz von Modellen im Softwareentwurf. Dabei wird vor allem auf Themen eingegangen, die in Grundlagenbüchern nicht oder nur am Rande behandelt werden, wie z. B. der Entwurf und die Dokumentation von Softwarearchitekturen, Geschäftsmodellierung im Kontext objektorientierter Modelle, die Verwendung prädikativer Techniken sowie Aspekte des Prozess- und Projektmanagements. Insgesamt soll das Buch damit zum einen einen Querschnitt von Themen bieten, die für ein gelebtes Software-Engineering im Unternehmen heute von Bedeutung sind. Zum anderen sollen Ansätze vorgestellt werden, bei denen spürbare Vorteile eines systematischen Vorgehens im Softwareentwurf sichtbar werden und die auch Vorbild für andere Unternehmen sein können. Das Buch ist entstanden aus einem gemeinsamen Workshop der Regionalgruppen München von GI und ACM und des Tiroler Arbeitskreises Softwaretechnologie zum Thema "Entwurf und Dokumentation von SW-Architekturen".
Die Beiträge im vorliegenden Buch stammen von Praktikern der Objektorientierung, die ihren Erfahrungsschatz dokumentieren und anderen Anwendern zugänglich machen. Dabei wird vor allem auf Themen eingegangen, die in Grundlagenbüchern nicht oder nur am Rande behandelt werden, wie z. B. der Entwurf und die Dokumentation von Softwarearchitekturen, Aspekte des Prozess- und Projektmanagements, Geschäftsmodellierung im Kontext objektorientierter Modelle und die Verwendung prädikativer Techniken.
Inhaltsverzeichnis
1; Vorwort; 6
2; Inhalt; 8
3; 1 Einleitung; 12
4; 2 Anwendungslandschaft: Nachverfolgung der Implementierung von IT- Modellen; 16
4. 1; 2. 1 Einführung; 17
4. 2; 2. 2 Zweck und Zielgruppe von Architekturmanagement; 17
4. 3; 2. 3 Rahmenbedingungen für Metamodell und Notation; 20
4. 4; 2. 4 Ebenen eines Anwendungslandschaftsmodells; 22
4. 5; 2. 5 Details zur Metamodellierung; 28
4. 6; 2. 6 Werkzeugunterstützung; 33
4. 7; 2. 7 Einordnung in kommende Ansätze zur Metamodellierung; 34
4. 8; 2. 8 Erfahrungen; 36
4. 9; 2. 9 Zusammenfassung; 37
4. 10; 2. 10 Danksagung; 37
4. 11; 2. 11 Literatur; 37
5; 3 Von der Idee zum Projekt Möglichkeiten und Grenzen der Model Driven Architecture; 40
5. 1; 3. 1 Anspruch und Grundgedanken der MDA; 41
5. 2; 3. 2 Wie MDA funktioniert; 44
5. 3; 3. 3 MDA im Projekteinsatz; 49
5. 4; 3. 4 Bewertung; 54
5. 5; 3. 5 Kriterien für den Einsatz der MDA; 57
5. 6; 3. 6 MDA ein Wiedergänger? ; 59
5. 7; 3. 7 Fazit; 60
5. 8; 3. 8 Literatur; 61
6; 4 Geschäftsprozessmodellierung im Kontext objektorientierter Entwurfstechniken; 62
6. 1; 4. 1 Einleitung; 63
6. 2; 4. 2 Aspekte der Geschäftsprozessmodellierung; 64
6. 3; 4. 3 Geschäftsprozesse im Kontext; 67
6. 4; 4. 4 Abläufe und Interaktionen; 70
6. 5; 4. 5 Informationsverarbeitung im Prozesskontext; 80
6. 6; 4. 6 Vom Geschäftsprozess zur Anforderung; 85
6. 7; 4. 7 Zusammenfassung; 96
6. 8; 4. 8 Literatur; 97
7; 5 Komponentenmodellierung mit den Mitteln der UML 1. x und UML 2. 0; 100
7. 1; 5. 1 Komponentenbegriff; 101
7. 2; 5. 2 Technisches vs. fachliches Komponentenmodell; 103
7. 3; 5. 3 Anforderungen an Konzepte für die Komponentenmodellierung; 106
7. 4; 5. 4 Komponentenmodellierung in der UML 1. x; 107
7. 5; 5. 5 Komponentenmodellierung in der UML 2. 0; 112
7. 6; 5. 6 Kriterien für gute Komponentenmodelle; 116
7. 7; 5. 7 Zusammenfassung; 118
7. 8; 5. 8 Literatur; 119
8; 6 Architektur im Großen kann UML helfen? ; 120
8. 1; 6. 1 Einleitung; 121
8. 2; 6. 2 Beispiele für die Vielfalt; 123
8. 3; 6. 3 Modellierung im Großen und UML; 125
8. 4; 6. 4 Zusammenfassung und Ergänzungen; 130
8. 5; 6. 5 Literatur; 133
9; 7 OCL in der Praxis; 134
9. 1; 7. 1 Einleitung; 134
9. 2; 7. 2 Einführendes Beispiel; 135
9. 3; 7. 3 Verwendung bei der Codierung; 139
9. 4; 7. 4 Verwendung im Rahmen des Testens; 141
9. 5; 7. 5 Verwendung im Rahmen der Dokumentationserstellung; 142
9. 6; 7. 6 Toolsupport; 142
9. 7; 7. 7 Weitergehende Anwendungen der OCL; 147
9. 8; 7. 8 Zusammenfassung; 149
9. 9; 7. 9 Literatur; 149
10; 8 Systematischer Entwurf zugriffssicherer Systeme; 152
10. 1; 8. 1 Einleitung; 152
10. 2; 8. 2 Der objektorientierte Kernprozess; 155
10. 3; 8. 3 Der Sicherheitsprozess PROSECO; 160
10. 4; 8. 4 Schrittweise Entwicklung von Rechtemodellen; 169
10. 5; 8. 5 Zusammenfassung und Ausblick; 180
10. 6; 8. 6 Literatur; 180
11; 9 Unternehmensweite Modellintegration; 182
11. 1; 9. 1 Einleitung; 182
11. 2; 9. 2 Architekturlandschaft; 184
11. 3; 9. 3 Modellintegration; 195
11. 4; 9. 4 Tool-Unterstützung; 202
11. 5; 9. 5 Vorgehensmodell; 203
11. 6; 9. 6 Lessons Learned; 205
11. 7; 9. 7 Zusammenfassung; 206
11. 8; 9. 8 Literatur; 206
12; 10 Ein praktischer Leitfaden für eine iterative Softwareentwicklung; 208
12. 1; 10. 1 Motivation Risiken und Vermeidungsstrategien; 209
12. 2; 10. 2 Sequentielle und iterative Entwicklung im Vergleich; 213
12. 3; 10. 3 Iterative Entwicklung im Projekt; 215
12. 4; 10. 4 Zusammenfassung und Abgrenzung; 225
12. 5; 10. 5 Referenzen; 226
13; 11 Qualitätsförderung in iterativen Prozessen; 228
13. 1; 11. 1 Einleitung; 228
13. 2; 11. 2 Test Driven Development; 230
13. 3; 11. 3 Versionskontrolle; 232
13. 4; 11. 4 Der Build-Prozess; 233
13. 5; 11. 5 Continuous Integration; 235
13. 6; 11. 6 Iterativ und agil entwickelte Software; 236
13. 7; 11. 7 Technische Bewertung von Qualität; 238
13. 8; 11. 8 Zusammenfassung; 245
13. 9; 11. 9 Literatur; 245
14; 12 Ein gesamtheitliches Verfahren für das Software Process Improvement; 248
14. 1; 12. 1 Das SPI-Verfahren im Überblick; 249
14. 2; 12. 2 Das konkrete Verfahren für SPI; 252
14. 3; 12. 3 Fazit für das Verfahren für SPI; 269
14. 4; 12. 4 Literaturverzeichnis; 270
15; 13 Schätzverfahren im Kontext objektorientierter Prozesse; 272
15. 1; 13. 1 Einleitung; 272
15. 2; 1