Modellgetriebene Softwareentwicklung: Techniken, Engineering, Management
Gespeichert in:
Vorheriger Titel: | Stahl, Thomas Modellgetriebene Softwareentwicklung |
---|---|
Format: | Buch |
Sprache: | German |
Veröffentlicht: |
Heidelberg
dpunkt.-Verl.
2007
|
Ausgabe: | 2., aktualisierte und erw. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltstext Inhaltsverzeichnis |
Beschreibung: | XV, 441 S. Ill., graph. Darst. |
ISBN: | 9783898644488 3898644480 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV022422627 | ||
003 | DE-604 | ||
005 | 20100414 | ||
007 | t | ||
008 | 070514s2007 gw ad|| |||| 00||| ger d | ||
015 | |a 07,N20,0092 |2 dnb | ||
015 | |a 07,A28,0028 |2 dnb | ||
016 | 7 | |a 983932336 |2 DE-101 | |
020 | |a 9783898644488 |c kart. : EUR 49.00 (DE), EUR 50.40 (AT) |9 978-3-89864-448-8 | ||
020 | |a 3898644480 |9 3-89864-448-0 | ||
035 | |a (OCoLC)180107846 | ||
035 | |a (DE-599)BVBBV019628465 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a ger | |
044 | |a gw |c XA-DE-BW | ||
049 | |a DE-384 |a DE-29T |a DE-859 |a DE-92 |a DE-N2 |a DE-Aug4 |a DE-824 |a DE-91G |a DE-1050 |a DE-703 |a DE-1051 |a DE-898 |a DE-473 |a DE-573 |a DE-355 |a DE-522 |a DE-523 |a DE-634 |a DE-20 |a DE-83 |a DE-861 |a DE-863 |a DE-11 |a DE-858 | ||
082 | 0 | |a 005.12 |2 22/ger | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a 720 |2 sdnb | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 310f |2 stub | ||
245 | 1 | 0 | |a Modellgetriebene Softwareentwicklung |b Techniken, Engineering, Management |c Thomas Stahl ... |
250 | |a 2., aktualisierte und erw. Aufl. | ||
264 | 1 | |a Heidelberg |b dpunkt.-Verl. |c 2007 | |
300 | |a XV, 441 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Modellgetriebene Entwicklung |0 (DE-588)4832365-2 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Modellgetriebene Entwicklung |0 (DE-588)4832365-2 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Stahl, Thomas |e Sonstige |0 (DE-588)133034151 |4 oth | |
780 | 0 | 0 | |i 1. Auflage |a Stahl, Thomas |t Modellgetriebene Softwareentwicklung |
856 | 4 | 2 | |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=2945541&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m Digitalisierung UB Augsburg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015630923&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-015630923 |
Datensatz im Suchindex
DE-BY-863_location | 1000 1340 |
---|---|
DE-BY-FWS_call_number | 1000/ST 230 S781(2)st 1340/ST 230 S781(2) |
DE-BY-FWS_katkey | 291800 |
DE-BY-FWS_media_number | 083101123976 083101334686 |
_version_ | 1814215610625687552 |
adam_text |
Inhaltsverzeichnis
Teil
1 Einleitung 3
1.1 Das Thema des Buches.3
1.2 Zielgruppen.5
1.3 Ziele des Buches.6
1.4 Abgrenzung.7
1.5 Struktur des Buches und Leitfaden für den Leser.7
1.6 Die zweite Auflage.9
1.7 Webseite zum Buch.10
1.8 Danksagungen.10
2 Einführung in MDSD 11
2.1 Was ist MDSD.11
2.1.1 Formale Modelle.11
2.1.2 Lauffähige Software erzeugen.12
2.1.3 Automatisch. 13
2.2 Gründe für MDSD.13
2.2.1 Abstraktion.13
2.2.2 Einheitliche Architektur. 14
2.2.3 Entwicklungsgeschwindigkeit. 14
2.2.4 Wiederverwendung.15
2.2.5 Interoperabilität und Plattformunabhängigkeit. 15
2.2.6 Softwarequalität. 16
2.3 Erstes Fallbeispiel: Generator für einfache Webanwendungen. 16
2.3.1 Die technische Basis.16
2.3.2 Entitäten, Komponenten und Webseiten.17
2.3.3 Anwendungscode.19
2.3.4
2.3.5 Gesamtsicht.23
2.3.6 Fazit und Ausblick.25
3 Begriffe und Konzepte 27
3.1 Definitionen.27
3.1.1 Modellierung.28
3.1.2 Software-Systemfamilien.34
3.2 Verwandte Ansätze.35
3.2.1 Model
3.2.2 Generative Programming.37
3.2.3 Software
3.2.4
3.2.5 Sprachorientierte Programmierung.42
3.2.6 Domänenspezifische Modellierung.43
3.3 Vergleich mit anderen Techniken.43
3.3.1 CASF, 4GL und Wizards.43
3.3.2 Roundtrip Engineering.44
3.3.3
3.3.4 Domain
3.3.5 MDSD, datengetriebene Entwicklung und Interpreter.48
3.3.6 MDSD und Agile Softwareentwicklung.49
Teil
4 Das Beispiel - eine Versicherungsanwendung 55
4.1 Das Projekt.55
4.2 Fachlichkeit.56
4.2.1 Funktionalität.56
4.2.2 Entitäten.57
4.3 Architektur.57
4.3.1 Client-Server-Architektur.57
4.3.2 Plattform.58
4.3.3 Serverseitiges Komponentenmodell.58
5 Metamodellierung 59
5.1 Einführung.59
5.1.1 Was ist Metamodellierung?.59
5.1.2
5.1.3 Metametamodelle.61
5.2 Konkrete Technologien.64
5.2.1 MOF/UML.64
5.2.2 EMF und Ecore.71
5.2.3 Klassen als Metamodell.73
5.2.4 Abstrakter Syntaxbaum.74
5.2.5 XML und XSD.74
5.2.6 Vergleich der Technologien.74
5.3 Best
5.3.1 Lebendiges Metamodell.75
5.3.2 Metamodell an erster Stelle.76
5.3.3 Modulares Metamodell.76
5.3.4
5.3.5 Metamodell als Projektsprache.77
5.4 Typische Metamodellbestandteile.78
5.4.1 Komponenteninfrastruktur.78
5.4.2 Implementierung von Komponenten.86
5.4.3 Ausdrücke.87
5.5 Validierung von Metamodellen.89
5.6 Beispiel.89
5.6.1 Typen und Komponenten.89
5.6.2 Persistenz.91
5.6.3 Formbriefe.93
6 Domänenspezifische Sprachen 97
6.1 Kategorisierung.98
6.1.1 Interne
6.1.2 Wiederverwendung
6.1.3 Grafische
6.2 Techniken der DSL-Entwicklung. 103
6.2.1
6.2.2 Das
6.2.3 Parsergeneratoren. 107
6.2.4 Andere Arten von DSL-Editoren. 109
6.2.5 Integrierte Metamodellierungs-IDEs. 110
6.3 Best
6.3.1 Evolution von DSLs
6.3.2 Modellierung von Verhalten.114
6.3.3 Konkrete Syntax ist wichtig!. 115
6.3.4
6.3.5
6.3.6
6.4 Anwendung im Versicherungsbeispiel.117
6.4.1 Typen und Komponenten.117
6.4.2 Persistenz.120
6.4.3 Formbriefe.121
7 Konstruktion MDSD-tauglicher Zielarchitekturen 123
7.1 Softwarearchitektur im Kontext von MDSD.123
7.2 Was ist eine gute Architektur?.125
7.3 Wie kommt man zu einer guten Architektur?.126
7.3.1 Architekturmuster und
7.4 Bausteine für Softwarearchitektur.127
7.4.1 Frameworks.127
7.4.2 Middleware.127
7.4.3 Komponenten.128
7.5 Architektur-Referenzmodell.129
7.6 Ausbalancierung der Plattform.130
7.6.1 Beispiele.131
7.6.2 Integration von Frameworks.131
7.7
7.7.1
7.7.2 BPM.135
7.7.3
8 Codegenerierung 139
8.1
8.1.1 Die Workflow-Engine des MWE-Projekts.140
8.1.2
8.2 Codegenerierung - warum?.141
8.2.1 Performance. 141
8.2.2 Codegröße.141
8.2.3 Analysierbarkeit.141
8.2.4 Fehlerfrüherkennung.142
8.2.5 Einschränkungen der (Programmiersprache.142
8.2.6 Aspekte.142
8.2.7
8.3 Kategorisierung.143
8.3.1 Metaprogramme.143
8.3.2 Präprozessoren (Makroprozessoren).143
8.3.3 Integrierte Metaprogrammierfunktionalität.144
8.3.4 Interpreter.144
8.3.5 Codegeneratoren bei der MDSD.145
8.4 Konstruktion von Codegeneratoren. 145
8.4.1 Templates.146
8.4.2 Generieren mit imperativen Programmiersprachen. 149
8.4.3 Codegenerierung mit openArchitectureWare 4.x. 152
8.5 Best
8.5.1 Generiere gut aussehenden Code - wann immer möglich.158
8.5.2 Verquickung von generiertem und nicht-generiertem Code . 159
8.6 Testen von Generatoren.166
8.6.1 Testen gegen die konkrete Syntax. 166
8.6.2 Testen mit Referenzmodell.167
8.7 Versicherungsbeispiel.168
8.7.1 Verzeichnisstruktur.169
8.7.2 Entitäten.169
8.7.3 Komponenten.172
9 Interpreter 173
9.1 Interpreter und Generatoren.174
9.2 MDSD-Terminologie aus Sicht von Interpretern.175
9.2.1 Domäne.176
9.2.2 Metamodell.176
9.2.3 Metametamodell.176
9.2.4 Formales Modell.177
9.2.5 Plattform.177
9.3 Nichtfunktionale Eigenschaften von Interpretern. 177
9.3.1 Performance.178
9.3.2 Umfang des Programmcodes.178
9.3.3 Zeitpunkt des Bindens.178
9.4 Integration eines Interpreters in ein System.179
9.4.1 Aufruf des Interpreters.179
9.4.2 Erweiterungspunkte.180
9.4.3 Bereitstellen der Modelle. 180
9.5 Interpretation von Ausdrücken.181
9.5.1 Implementierung eines Interpreters.181
9.5.2
9.6 Interpreter und Tests.188
9.6.1 Testen des Interpreters.188
9.6.2 Testen der Modelle.190
9.7 Interpreter im Versicherungsbeispiel.190
9.7.1 Auswertung des Parse-Baums.191
9.7.2 Eingabetexte speziell für einen Brief.193
10 Modell-zu-Modell-Transformationen 195
10.1 Wozu Modelltransformationen?.195
10.1.1
10.2 Kategorisierung.199
10.2.1 Modellmodifikation.199
10.2.2 Modelltransformation.199
10.2.3 Modell-Weaving
10.3 Herausforderungen.201
10.3.1 Umgang mit Mengen.201
10.3.2 Zyklen.201
10.3.3 Debug-Fähigkeiten.202
10.3.4 Inkrementelle Transformationen.203
10.3.5
10.3.6 Bidirektionale Transformationen.203
10.4 Konkrete Lösungen.204
10.4.1 QVT.204
10.4.2 Atlas Transformation
10.4.3 Xtend.206
10.4.4 Vergleich.207
10.5 Testen von Modelltransformationen.207
10.6 Modelltransformationen im Versicherungsbeispiel.208
10.6.1 Modelltransformation im Kontext.209
10.6.2 Konkrete Transformation.209
Teil
11 MDSD-Prozessbausteine und Best
11.1 Einleitung.215
11.2 Trennung von Anwendungs- und Domänenarchitekturentwicklung. 215
11.2.1 Grundprinzip.215
11.2.2 Architektur-Entwicklungsstrang.217
11.2.3 Anwendungs-Entwicklungsstrang.224
11.2.4 Organisatorische Aspekte.225
11.3 Zweigleisig iterative Entwicklung.225
11.4 Entwicklungsprozess für Zielarchitekturen.227
11.4.1 Drei Phasen.229
11.4.2 Phase 1: Elaboration.229
11.4.3 Phase 2: Iteration.234
11.4.4 Phase 3: Automation.235
11.5 Grundlagen des
11.5.1 Software-Systemfamilien und Produktlinien.238
11.5.2 Einordnung in den MDSD-Prozess.238
11.5.3 Methodik.239
11.5.4 Domänenmodellierung.244
11.5.5 Weiterführende Literatur.245
12 Testen 247
12.1 Testen von Softwaresystemen.248
12.1.1
12.1.2 Lasttests.251
12.1.3 Nicht-funktionale Tests.252
12.1.4 Oberflächentests.252
12.2 Testen mit MDSD.253
12.2.1 Generieren von automatischen Testfällen.253
12.2.2
12.3 Modellgetriebenes Testen.256
12.3.1 Abgrenzung.257
12.3.2 Konzeptionelle Grundlagen.257
12.3.3 Fallstudie: Oberflächentests mit oAW-Test und JMeter.260
13
13.1 Was wird versioniert?.267
13.2 Projekte und Abhängigkeiten.268
13.3 Struktur von Anwendungsprojekten.269
13.4 Versionsmanagement und Build-Prozess bei gemischten Dateien.270
13.5 Modellierung im Team und Versionierung von Teilmodellen.272
13.5.1 Partitionierung
13.5.2 Verschiedene generative Softwarearchitekturen.273
13.5.3 Weiterentwicklung der DSL.273
13.5.4 Partitionierung und Integration.276
13.5.5 »Echte« dateiübergeifende Referenzierung.276
14 Fallstudie: Eingebettete Komponenteninfrastrukturen 279
14.1 Überblick.279
14.1.1 Einführung und Motivation.279
14.1.2 Komponenteninfrastrukturen.280
14.1.3 Anforderungen an Komponenteninfrastrukturen bei
eingebetteten Systemen.281
14.1.4 Grundsätzlicher Ansatz.281
14.2
14.2.1 Domain
14.2.2 Variabilitätsanalyse und Domänenstrukturierung.283
14.2.3 Domänendesign.287
14.2.4 Domänenimplementierung.290
14.3 Modellierung.290
14.3.1 Definition von Interfaces.290
14.3.2 Definition von Komponenten und Ports.292
14.3.3 Definition eines Systems.293
14.3.4 Gesamtmodell.296
14.3.5 Verarbeitung.296
14.4 Implementierung von Komponenten.297
14.5 Generatorentwicklung.299
14.5.1 Definition der textuellen Syntax.299
14.5.2
14.5.3 Deklarative Modellvalidierung.302
14.6 Codegenerierung.305
14.6.1 Referenzen.305
14.6.2 Polymorphismus.307
14.6.3 Trennung von Verantwortlichkeiten im Metamodell.309
14.6.4 Generierung der Build-Files.310
14.6.5 Verwendung von AspectJ .310
14.7 Kaskadierte Domänenarchitekturen.312
14.7.1 Modellierung.313
14.7.2 Generierung.314
Teil
15 Entscheidungshilfen 319
15.1 Betriebswirtschaftliches Potenzial.319
15.2 Automation und Wiederverwendung.321
15.3 Qualität.326
15.3.1 Wohldefinierte Architektur.326
15.3.2 Konserviertes Expertenwissen.326
15.3.3 Stringentes Programmiermodell.327
15.3.4 Aktuelle und nutzbare Dokumentation.327
15.3.5 Qualität von generiertem Code.328
15.3.6 Testaufwand und mögliche Fehlerquellen.328
15.4 Wiederverwendung.329
15.5 Portabilität, Änderbarkeit.330
15.6 Investitionen und erzielbare Gewinne.331
15.6.1 Architekturzentrierte MDSD.331
15.6.2 Fachlich ausgerichtete MDSD-Domänen .336
15.7 Kritische Fragen.337
15.8 Zusammenfassung.342
15.9 Weiterführende Literatur.342
16 Organisatorische Aspekte 343
16.1 Rollenverteilung.343
16.1.1 Domänenarchitektur-Entwicklung.343
16.1.2 Anwendungsentwicklung.347
16.2
16.2.1 Ausgestaltung der Rollen und Personalbedarf.349
16.2.2 Querschnitts-Teams .350
16.2.3 Aufgaben der Architekturgruppe.350
16.3 Software-Produktentwicklungsmodelle .352
16.3.1 Terminologie.352
16.3.2 In-House-Entwicklung.353
16.3.3 Klassisches
16.3.4 Offshoring.355
16.3.5 Radikales Offshoring.356
16.3.6 Kontrolliertes Offshoring.357
16.3.7 Komponentenweise Entscheidung .359
17 Adaptionsstrategien für MDSD 361
17.1 Voraussetzungen.361
17.2
17.2.1 Risikoanalyse.363
17.2.2 Projektinitialisierung.363
17.3 MDSD-Adaptierung bestehender Systeme.364
17.4 Klassifikation des Software-Inventars.366
17.5 Bauen, Kaufen oder
17.6 Entwurf einer Zulieferkette.369
17.7 Inkrementelle Evolution von Domänenarchitekturen.370
17.8 Risikomanagement.371
17.8.1 Risiko: Toolzentriertheit.371
17.8.2 Risiko: Für MDSD kontraproduktive
Entwicklungs-Toolkette.371
17.8.3 Risiko: Überlastetes Domänenarchitekturteam.372
17.8.4 Risiko: Wasserfall-Vorgehensmodell, datenbankzentrierte
Entwicklung.372
17.8.5 Risiko: Elfenbeinturm.373
17.8.6 Risiko: Keine Trennung von Anwendung und
Domänenarchitektur .373
Anhang
A
A.l Ziele.377
A.2 Kernkonzepte.378
A.3 Herausforderungen für die
В
B.1 Historie.393
B.2 Architektur.394
B.3 Eine Beispiel-Transformation.396
B.4 Bewertung.409
С
C.I Complete QVT Relations alma2db Example
С.
D
E
Stichwortverzeichnis 433 |
adam_txt |
Inhaltsverzeichnis
Teil
1 Einleitung 3
1.1 Das Thema des Buches.3
1.2 Zielgruppen.5
1.3 Ziele des Buches.6
1.4 Abgrenzung.7
1.5 Struktur des Buches und Leitfaden für den Leser.7
1.6 Die zweite Auflage.9
1.7 Webseite zum Buch.10
1.8 Danksagungen.10
2 Einführung in MDSD 11
2.1 Was ist MDSD.11
2.1.1 Formale Modelle.11
2.1.2 Lauffähige Software erzeugen.12
2.1.3 Automatisch. 13
2.2 Gründe für MDSD.13
2.2.1 Abstraktion.13
2.2.2 Einheitliche Architektur. 14
2.2.3 Entwicklungsgeschwindigkeit. 14
2.2.4 Wiederverwendung.15
2.2.5 Interoperabilität und Plattformunabhängigkeit. 15
2.2.6 Softwarequalität. 16
2.3 Erstes Fallbeispiel: Generator für einfache Webanwendungen. 16
2.3.1 Die technische Basis.16
2.3.2 Entitäten, Komponenten und Webseiten.17
2.3.3 Anwendungscode.19
2.3.4
2.3.5 Gesamtsicht.23
2.3.6 Fazit und Ausblick.25
3 Begriffe und Konzepte 27
3.1 Definitionen.27
3.1.1 Modellierung.28
3.1.2 Software-Systemfamilien.34
3.2 Verwandte Ansätze.35
3.2.1 Model
3.2.2 Generative Programming.37
3.2.3 Software
3.2.4
3.2.5 Sprachorientierte Programmierung.42
3.2.6 Domänenspezifische Modellierung.43
3.3 Vergleich mit anderen Techniken.43
3.3.1 CASF, 4GL und Wizards.43
3.3.2 Roundtrip Engineering.44
3.3.3
3.3.4 Domain
3.3.5 MDSD, datengetriebene Entwicklung und Interpreter.48
3.3.6 MDSD und Agile Softwareentwicklung.49
Teil
4 Das Beispiel - eine Versicherungsanwendung 55
4.1 Das Projekt.55
4.2 Fachlichkeit.56
4.2.1 Funktionalität.56
4.2.2 Entitäten.57
4.3 Architektur.57
4.3.1 Client-Server-Architektur.57
4.3.2 Plattform.58
4.3.3 Serverseitiges Komponentenmodell.58
5 Metamodellierung 59
5.1 Einführung.59
5.1.1 Was ist Metamodellierung?.59
5.1.2
5.1.3 Metametamodelle.61
5.2 Konkrete Technologien.64
5.2.1 MOF/UML.64
5.2.2 EMF und Ecore.71
5.2.3 Klassen als Metamodell.73
5.2.4 Abstrakter Syntaxbaum.74
5.2.5 XML und XSD.74
5.2.6 Vergleich der Technologien.74
5.3 Best
5.3.1 Lebendiges Metamodell.75
5.3.2 Metamodell an erster Stelle.76
5.3.3 Modulares Metamodell.76
5.3.4
5.3.5 Metamodell als Projektsprache.77
5.4 Typische Metamodellbestandteile.78
5.4.1 Komponenteninfrastruktur.78
5.4.2 Implementierung von Komponenten.86
5.4.3 Ausdrücke.87
5.5 Validierung von Metamodellen.89
5.6 Beispiel.89
5.6.1 Typen und Komponenten.89
5.6.2 Persistenz.91
5.6.3 Formbriefe.93
6 Domänenspezifische Sprachen 97
6.1 Kategorisierung.98
6.1.1 Interne
6.1.2 Wiederverwendung
6.1.3 Grafische
6.2 Techniken der DSL-Entwicklung. 103
6.2.1
6.2.2 Das
6.2.3 Parsergeneratoren. 107
6.2.4 Andere Arten von DSL-Editoren. 109
6.2.5 Integrierte Metamodellierungs-IDEs. 110
6.3 Best
6.3.1 Evolution von DSLs
6.3.2 Modellierung von Verhalten.114
6.3.3 Konkrete Syntax ist wichtig!. 115
6.3.4
6.3.5
6.3.6
6.4 Anwendung im Versicherungsbeispiel.117
6.4.1 Typen und Komponenten.117
6.4.2 Persistenz.120
6.4.3 Formbriefe.121
7 Konstruktion MDSD-tauglicher Zielarchitekturen 123
7.1 Softwarearchitektur im Kontext von MDSD.123
7.2 Was ist eine gute Architektur?.125
7.3 Wie kommt man zu einer guten Architektur?.126
7.3.1 Architekturmuster und
7.4 Bausteine für Softwarearchitektur.127
7.4.1 Frameworks.127
7.4.2 Middleware.127
7.4.3 Komponenten.128
7.5 Architektur-Referenzmodell.129
7.6 Ausbalancierung der Plattform.130
7.6.1 Beispiele.131
7.6.2 Integration von Frameworks.131
7.7
7.7.1
7.7.2 BPM.135
7.7.3
8 Codegenerierung 139
8.1
8.1.1 Die Workflow-Engine des MWE-Projekts.140
8.1.2
8.2 Codegenerierung - warum?.141
8.2.1 Performance. 141
8.2.2 Codegröße.141
8.2.3 Analysierbarkeit.141
8.2.4 Fehlerfrüherkennung.142
8.2.5 Einschränkungen der (Programmiersprache.142
8.2.6 Aspekte.142
8.2.7
8.3 Kategorisierung.143
8.3.1 Metaprogramme.143
8.3.2 Präprozessoren (Makroprozessoren).143
8.3.3 Integrierte Metaprogrammierfunktionalität.144
8.3.4 Interpreter.144
8.3.5 Codegeneratoren bei der MDSD.145
8.4 Konstruktion von Codegeneratoren. 145
8.4.1 Templates.146
8.4.2 Generieren mit imperativen Programmiersprachen. 149
8.4.3 Codegenerierung mit openArchitectureWare 4.x. 152
8.5 Best
8.5.1 Generiere gut aussehenden Code - wann immer möglich.158
8.5.2 Verquickung von generiertem und nicht-generiertem Code . 159
8.6 Testen von Generatoren.166
8.6.1 Testen gegen die konkrete Syntax. 166
8.6.2 Testen mit Referenzmodell.167
8.7 Versicherungsbeispiel.168
8.7.1 Verzeichnisstruktur.169
8.7.2 Entitäten.169
8.7.3 Komponenten.172
9 Interpreter 173
9.1 Interpreter und Generatoren.174
9.2 MDSD-Terminologie aus Sicht von Interpretern.175
9.2.1 Domäne.176
9.2.2 Metamodell.176
9.2.3 Metametamodell.176
9.2.4 Formales Modell.177
9.2.5 Plattform.177
9.3 Nichtfunktionale Eigenschaften von Interpretern. 177
9.3.1 Performance.178
9.3.2 Umfang des Programmcodes.178
9.3.3 Zeitpunkt des Bindens.178
9.4 Integration eines Interpreters in ein System.179
9.4.1 Aufruf des Interpreters.179
9.4.2 Erweiterungspunkte.180
9.4.3 Bereitstellen der Modelle. 180
9.5 Interpretation von Ausdrücken.181
9.5.1 Implementierung eines Interpreters.181
9.5.2
9.6 Interpreter und Tests.188
9.6.1 Testen des Interpreters.188
9.6.2 Testen der Modelle.190
9.7 Interpreter im Versicherungsbeispiel.190
9.7.1 Auswertung des Parse-Baums.191
9.7.2 Eingabetexte speziell für einen Brief.193
10 Modell-zu-Modell-Transformationen 195
10.1 Wozu Modelltransformationen?.195
10.1.1
10.2 Kategorisierung.199
10.2.1 Modellmodifikation.199
10.2.2 Modelltransformation.199
10.2.3 Modell-Weaving
10.3 Herausforderungen.201
10.3.1 Umgang mit Mengen.201
10.3.2 Zyklen.201
10.3.3 Debug-Fähigkeiten.202
10.3.4 Inkrementelle Transformationen.203
10.3.5
10.3.6 Bidirektionale Transformationen.203
10.4 Konkrete Lösungen.204
10.4.1 QVT.204
10.4.2 Atlas Transformation
10.4.3 Xtend.206
10.4.4 Vergleich.207
10.5 Testen von Modelltransformationen.207
10.6 Modelltransformationen im Versicherungsbeispiel.208
10.6.1 Modelltransformation im Kontext.209
10.6.2 Konkrete Transformation.209
Teil
11 MDSD-Prozessbausteine und Best
11.1 Einleitung.215
11.2 Trennung von Anwendungs- und Domänenarchitekturentwicklung. 215
11.2.1 Grundprinzip.215
11.2.2 Architektur-Entwicklungsstrang.217
11.2.3 Anwendungs-Entwicklungsstrang.224
11.2.4 Organisatorische Aspekte.225
11.3 Zweigleisig iterative Entwicklung.225
11.4 Entwicklungsprozess für Zielarchitekturen.227
11.4.1 Drei Phasen.229
11.4.2 Phase 1: Elaboration.229
11.4.3 Phase 2: Iteration.234
11.4.4 Phase 3: Automation.235
11.5 Grundlagen des
11.5.1 Software-Systemfamilien und Produktlinien.238
11.5.2 Einordnung in den MDSD-Prozess.238
11.5.3 Methodik.239
11.5.4 Domänenmodellierung.244
11.5.5 Weiterführende Literatur.245
12 Testen 247
12.1 Testen von Softwaresystemen.248
12.1.1
12.1.2 Lasttests.251
12.1.3 Nicht-funktionale Tests.252
12.1.4 Oberflächentests.252
12.2 Testen mit MDSD.253
12.2.1 Generieren von automatischen Testfällen.253
12.2.2
12.3 Modellgetriebenes Testen.256
12.3.1 Abgrenzung.257
12.3.2 Konzeptionelle Grundlagen.257
12.3.3 Fallstudie: Oberflächentests mit oAW-Test und JMeter.260
13
13.1 Was wird versioniert?.267
13.2 Projekte und Abhängigkeiten.268
13.3 Struktur von Anwendungsprojekten.269
13.4 Versionsmanagement und Build-Prozess bei gemischten Dateien.270
13.5 Modellierung im Team und Versionierung von Teilmodellen.272
13.5.1 Partitionierung
13.5.2 Verschiedene generative Softwarearchitekturen.273
13.5.3 Weiterentwicklung der DSL.273
13.5.4 Partitionierung und Integration.276
13.5.5 »Echte« dateiübergeifende Referenzierung.276
14 Fallstudie: Eingebettete Komponenteninfrastrukturen 279
14.1 Überblick.279
14.1.1 Einführung und Motivation.279
14.1.2 Komponenteninfrastrukturen.280
14.1.3 Anforderungen an Komponenteninfrastrukturen bei
eingebetteten Systemen.281
14.1.4 Grundsätzlicher Ansatz.281
14.2
14.2.1 Domain
14.2.2 Variabilitätsanalyse und Domänenstrukturierung.283
14.2.3 Domänendesign.287
14.2.4 Domänenimplementierung.290
14.3 Modellierung.290
14.3.1 Definition von Interfaces.290
14.3.2 Definition von Komponenten und Ports.292
14.3.3 Definition eines Systems.293
14.3.4 Gesamtmodell.296
14.3.5 Verarbeitung.296
14.4 Implementierung von Komponenten.297
14.5 Generatorentwicklung.299
14.5.1 Definition der textuellen Syntax.299
14.5.2
14.5.3 Deklarative Modellvalidierung.302
14.6 Codegenerierung.305
14.6.1 Referenzen.305
14.6.2 Polymorphismus.307
14.6.3 Trennung von Verantwortlichkeiten im Metamodell.309
14.6.4 Generierung der Build-Files.310
14.6.5 Verwendung von AspectJ .310
14.7 Kaskadierte Domänenarchitekturen.312
14.7.1 Modellierung.313
14.7.2 Generierung.314
Teil
15 Entscheidungshilfen 319
15.1 Betriebswirtschaftliches Potenzial.319
15.2 Automation und Wiederverwendung.321
15.3 Qualität.326
15.3.1 Wohldefinierte Architektur.326
15.3.2 Konserviertes Expertenwissen.326
15.3.3 Stringentes Programmiermodell.327
15.3.4 Aktuelle und nutzbare Dokumentation.327
15.3.5 Qualität von generiertem Code.328
15.3.6 Testaufwand und mögliche Fehlerquellen.328
15.4 Wiederverwendung.329
15.5 Portabilität, Änderbarkeit.330
15.6 Investitionen und erzielbare Gewinne.331
15.6.1 Architekturzentrierte MDSD.331
15.6.2 Fachlich ausgerichtete MDSD-Domänen .336
15.7 Kritische Fragen.337
15.8 Zusammenfassung.342
15.9 Weiterführende Literatur.342
16 Organisatorische Aspekte 343
16.1 Rollenverteilung.343
16.1.1 Domänenarchitektur-Entwicklung.343
16.1.2 Anwendungsentwicklung.347
16.2
16.2.1 Ausgestaltung der Rollen und Personalbedarf.349
16.2.2 Querschnitts-Teams .350
16.2.3 Aufgaben der Architekturgruppe.350
16.3 Software-Produktentwicklungsmodelle .352
16.3.1 Terminologie.352
16.3.2 In-House-Entwicklung.353
16.3.3 Klassisches
16.3.4 Offshoring.355
16.3.5 Radikales Offshoring.356
16.3.6 Kontrolliertes Offshoring.357
16.3.7 Komponentenweise Entscheidung .359
17 Adaptionsstrategien für MDSD 361
17.1 Voraussetzungen.361
17.2
17.2.1 Risikoanalyse.363
17.2.2 Projektinitialisierung.363
17.3 MDSD-Adaptierung bestehender Systeme.364
17.4 Klassifikation des Software-Inventars.366
17.5 Bauen, Kaufen oder
17.6 Entwurf einer Zulieferkette.369
17.7 Inkrementelle Evolution von Domänenarchitekturen.370
17.8 Risikomanagement.371
17.8.1 Risiko: Toolzentriertheit.371
17.8.2 Risiko: Für MDSD kontraproduktive
Entwicklungs-Toolkette.371
17.8.3 Risiko: Überlastetes Domänenarchitekturteam.372
17.8.4 Risiko: Wasserfall-Vorgehensmodell, datenbankzentrierte
Entwicklung.372
17.8.5 Risiko: Elfenbeinturm.373
17.8.6 Risiko: Keine Trennung von Anwendung und
Domänenarchitektur .373
Anhang
A
A.l Ziele.377
A.2 Kernkonzepte.378
A.3 Herausforderungen für die
В
B.1 Historie.393
B.2 Architektur.394
B.3 Eine Beispiel-Transformation.396
B.4 Bewertung.409
С
C.I Complete QVT Relations alma2db Example
С.
D
E
Stichwortverzeichnis 433 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author_GND | (DE-588)133034151 |
building | Verbundindex |
bvnumber | BV022422627 |
classification_rvk | ST 230 |
classification_tum | DAT 310f |
ctrlnum | (OCoLC)180107846 (DE-599)BVBBV019628465 |
dewey-full | 005.12 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.12 |
dewey-search | 005.12 |
dewey-sort | 15.12 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Architektur Informatik |
discipline_str_mv | Architektur Informatik |
edition | 2., aktualisierte und erw. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV022422627</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20100414</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">070514s2007 gw ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,N20,0092</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">07,A28,0028</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">983932336</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783898644488</subfield><subfield code="c">kart. : EUR 49.00 (DE), EUR 50.40 (AT)</subfield><subfield code="9">978-3-89864-448-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">3898644480</subfield><subfield code="9">3-89864-448-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)180107846</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV019628465</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-384</subfield><subfield code="a">DE-29T</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-92</subfield><subfield code="a">DE-N2</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-824</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-1050</subfield><subfield code="a">DE-703</subfield><subfield code="a">DE-1051</subfield><subfield code="a">DE-898</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-522</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-634</subfield><subfield code="a">DE-20</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-861</subfield><subfield code="a">DE-863</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-858</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.12</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">720</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 310f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Modellgetriebene Softwareentwicklung</subfield><subfield code="b">Techniken, Engineering, Management</subfield><subfield code="c">Thomas Stahl ...</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">2., aktualisierte und erw. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Heidelberg</subfield><subfield code="b">dpunkt.-Verl.</subfield><subfield code="c">2007</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XV, 441 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Modellgetriebene Entwicklung</subfield><subfield code="0">(DE-588)4832365-2</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Modellgetriebene Entwicklung</subfield><subfield code="0">(DE-588)4832365-2</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Stahl, Thomas</subfield><subfield code="e">Sonstige</subfield><subfield code="0">(DE-588)133034151</subfield><subfield code="4">oth</subfield></datafield><datafield tag="780" ind1="0" ind2="0"><subfield code="i">1. Auflage</subfield><subfield code="a">Stahl, Thomas</subfield><subfield code="t">Modellgetriebene Softwareentwicklung</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=2945541&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Augsburg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015630923&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-015630923</subfield></datafield></record></collection> |
id | DE-604.BV022422627 |
illustrated | Illustrated |
index_date | 2024-07-02T17:26:12Z |
indexdate | 2024-10-29T04:00:32Z |
institution | BVB |
isbn | 9783898644488 3898644480 |
language | German |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015630923 |
oclc_num | 180107846 |
open_access_boolean | |
owner | DE-384 DE-29T DE-859 DE-92 DE-N2 DE-Aug4 DE-824 DE-91G DE-BY-TUM DE-1050 DE-703 DE-1051 DE-898 DE-BY-UBR DE-473 DE-BY-UBG DE-573 DE-355 DE-BY-UBR DE-522 DE-523 DE-634 DE-20 DE-83 DE-861 DE-863 DE-BY-FWS DE-11 DE-858 |
owner_facet | DE-384 DE-29T DE-859 DE-92 DE-N2 DE-Aug4 DE-824 DE-91G DE-BY-TUM DE-1050 DE-703 DE-1051 DE-898 DE-BY-UBR DE-473 DE-BY-UBG DE-573 DE-355 DE-BY-UBR DE-522 DE-523 DE-634 DE-20 DE-83 DE-861 DE-863 DE-BY-FWS DE-11 DE-858 |
physical | XV, 441 S. Ill., graph. Darst. |
publishDate | 2007 |
publishDateSearch | 2007 |
publishDateSort | 2007 |
publisher | dpunkt.-Verl. |
record_format | marc |
spellingShingle | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management Modellgetriebene Entwicklung (DE-588)4832365-2 gnd |
subject_GND | (DE-588)4832365-2 |
title | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management |
title_auth | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management |
title_exact_search | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management |
title_exact_search_txtP | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management |
title_full | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management Thomas Stahl ... |
title_fullStr | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management Thomas Stahl ... |
title_full_unstemmed | Modellgetriebene Softwareentwicklung Techniken, Engineering, Management Thomas Stahl ... |
title_old | Stahl, Thomas Modellgetriebene Softwareentwicklung |
title_short | Modellgetriebene Softwareentwicklung |
title_sort | modellgetriebene softwareentwicklung techniken engineering management |
title_sub | Techniken, Engineering, Management |
topic | Modellgetriebene Entwicklung (DE-588)4832365-2 gnd |
topic_facet | Modellgetriebene Entwicklung |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=2945541&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015630923&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT stahlthomas modellgetriebenesoftwareentwicklungtechnikenengineeringmanagement |
Beschreibung
THWS Würzburg Zentralbibliothek Lesesaal
Signatur: |
1000 ST 230 S781(2)st |
---|---|
Exemplar 1 | ausleihbar Verfügbar Bestellen |
Würzburg Teilbibliothek SHL, Raum I.2.11
Signatur: |
1340 ST 230 S781(2) |
---|---|
Exemplar 1 | nicht ausleihbar Verfügbar |