Software Engineering - Architektur-Design und Prozessorientierung

Gustav Pomberger, Wolfgang Pree

Software Engineering

Architektur-Design und Prozessorientierung

2004

278 Seiten

Format: PDF, Online Lesen

E-Book: €  23,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446227880

 

Inhaltsverzeichnis

6

Vorwort

10

Dank

12

1 Gegenstandsbestimmung – Einführung und Überblick

14

1.1 Was ist Software?

14

1.2 Was ist Software Engineering?

16

1.3 Inhalt und Aufbau des Buches

18

Teil I Prozessorientierte Sicht – Organisation von Software-Projekten

22

2 Prozessmodelle

24

2.1 Das klassische sequenzielle Phasenmodell

24

2.2 Das V-Modell

31

2.3 Das Prototyping-orientierte Prozessmodell

39

2.3.1 Begriffe und Abgrenzung

39

2.3.2 Prozessmodell

42

2.4 Das Spiralmodell

45

2.4.1 Das Spiralmodell von Boehm

45

2.4.2 Das Spiralmodell von Pomberger und Pree

48

2.5 Der Unified Process

52

2.6 Ein objektorientiertes Phasenmodell

55

2.7 Leichtgewichtige (agile) Prozessmodelle

58

3 Software-Qualitätsmanagement

64

3.1 Was ist Softwarequalität?

64

3.2 Wo und wie entstehen Softwarequalität bzw. Qualitätsmängel

68

3.3 Grundzüge des Software- Qualitätsmanagements

70

3.3.1 Hauptaufgaben des Qualitätsmanagements

71

3.3.2 Objekte und Sichten des Qualitätsmanagements

71

3.3.3 Prinzipien des Qualitätsmanagements

73

3.3.4 Konstruktive und analytische Qualitätsmaßnahmen

74

Teil II Konstruktions- und Architektur-orientierte Sicht

78

4 Elementare Konzepte und Konstrukte

80

4.1 Der Algorithmenbegriff

80

4.2 Datenobjekte, Datentypen und elementare Aktionen

81

4.3 Schnittstellen und Aktivierung von Algorithmen

83

4.4 Systematischer Entwurf von Algorithmen

85

4.5 Grundlegende Konzepte der objektorientierten Programmierung

89

4.5.1 Klassen, Objekte (= Instanzen von Klassen), Instanzvariablen, Methoden

90

4.5.2 Vererbung, Polymorphismus, statischer Variablentyp, dynamischer Variablentyp und dynamische Bindung

92

5 Konstruktion anpassbarer Software

98

5.1 Konfigurationsparameter als Basis für anpassbare Software

98

5.1.1 Parametereinstellungen über globale, statische Variable

98

5.1.2 Callback-Style of Programming – Funktionen und Prozeduren als Parameter

100

5.2 Konzepte und Konstruktionsprinzipien für anpassbare, objektorientierte Produktfamilien

102

5.2.1 Das Konzept der abstrakten Kopplung

104

5.2.2 Das Konzept der Template- und Hook-Methoden

110

5.2.3 Das Hook-Method-Konstruktionsprinzip

113

5.2.4 Das Hook-Object-Konstruktionsprinzip

116

5.2.5 Das Composite-Konstruktionsprinzip

122

5.2.6 Das Decorator-Konstruktionsprinzip

129

5.2.7 Zusammenfassung der Merkmale der Konstruktionsprinzipien

138

5.3 Konstruktionsprinzipien und Entwurfsmuster

138

6 Modularisierung und Software-Architekturen

144

6.1 Software-Module

145

6.2 Erwünschte Eigenschaften von Modulen

147

6.2.1 Stabile und verständliche Modulschnittstellen durch Information Hiding

148

6.2.2 Balance zwischen Kopplung und Kohäsion

150

6.3 Ausprägungen von Modulen

153

6.3.1 Modul als Abstrakte Datenstruktur (ADS)

153

6.3.2 Modul als Abstrakter Datentyp (ADT)

154

6.3.3 Module und Komponentenstandards

158

6.4 Beispiele für ausgewogene Modularisierungen

160

6.4.1 Kohäsionsverbesserung durch Aufteilung von Modulen

160

6.4.2 Module für die Simulation diskreter Ereignisse

162

6.5 Beschreibung von Software-Architekturen

169

6.5.1 Datenzentrierung

170

6.5.2 Datenflussorientierung

171

6.5.3 Call&Return

172

6.5.4 Virtuelle Maschine

173

6.5.5 Unabhängige Komponenten

174

6.5.6 Vor- und Nachteile der Architekturmuster

175

6.6 Analyse von Software-Architekturen

175

6.6.1 Die Software-Architektur-Analyse-Methode (SAAM)

175

6.6.2 Beispiel einer Anwendung der SAAM

180

6.6.3 Was ist bei einer Anwendung der SAAM zu beachten? Was sind die Vorteile und Risiken?

185

6.7 Mehrdimensionale Modularisierung durch Aspektorientierte Programmierung (AOP)

186

6.7.1 Das Problem einer einzigen, statischen Modularisierung

187

6.7.2 Grundlegende Sprachkonzepte und -konstrukte von AOP

189

6.8 Zusammenfassung wichtiger Modularisierungsprinzipien

193

Teil III Ausgewählte Gebiete und Fallbeispiele

194

7 Transformationsorientierte Software1

196

7.1 Grundlegende Konzepte

196

7.1.1 Kontextfreie Grammatiken

197

7.1.2 Konstruktion eines Sprachanalysators (Scanner und Parser)

199

7.1.3 Attributierte Grammatiken

205

7.2 Fallbeispiel: Transformation strukturierter Texte

209

7.2.1 Entwurf einer attributierten Grammatik mit Coco/R

212

7.3 Zusammenfassung

228

8 Web-Service-basierte Software1

230

8.1 Was sind Web-Services

230

8.2 Vergleich mit anderen Technologien

232

8.2.1 CORBA

233

8.2.2 Java RMI

235

8.2.3 .NET Remoting Framework

235

8.3 Entwicklungsprozess für Web-Service-basierte Software

236

8.4 Grundlegende Konzepte und Standards

237

8.4.1 SOAP

237

8.4.2 Web-Service Description Language (WSDL)

239

8.5 Fallbeispiel: Elektronisches Telefonbuch

242

8.5.1 Ausgangssituation im Fallbeispiel

242

8.5.2 Beteiligte Komponenten

243

8.5.3 Schnittstelle des Web-Services

243

8.5.4 Implementierung des Web-Services mit Microsoft Visual Studio

244

8.5.5 Implementierung der Anwendungssoftware

245

8.5.6 Interaktionen zwischen Anwendungssoftware und Web-Service

247

8.6 Zusammenfassung

249

9 Eingebettete Echtzeitsoftware

250

9.1 Grundlegende Konzepte und Voraussetzungen

250

9.1.1 Charakteristika von Echtzeitsoftware

251

9.1.2 Logische versus tatsächliche Ausführungszeiten von Echtzeitsoftware

252

9.2 Fallbeispiel: Echtzeitsoftware eines autonom fliegenden Helikopters

254

9.2.1 Das OLGA-System

256

9.2.2 Die TDL-Spezifikation des Zeit- und Kommunikationsverhaltens

257

9.2.3 Die Übersetzung der TDL-Spezifikation in ein ausführbares Programm

260

9.2.4 Simulation eines TDL-basierten Regelungssystems

261

9.3 Zusammenfassung

263

Literaturverzeichnis

264

Stichwortverzeichnis

268

 

© 2009-2021 ciando GmbH