Model-driven software development: technology, engineering, management
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English German |
Veröffentlicht: |
Chichester
Wiley
2006
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XVI,428 S. Ill., graph. Darst. |
ISBN: | 9780470025703 0470025700 |
Internformat
MARC
LEADER | 00000nam a2200000zc 4500 | ||
---|---|---|---|
001 | BV022234723 | ||
003 | DE-604 | ||
005 | 20140604 | ||
007 | t | ||
008 | 070122s2006 xxkad|| |||| 00||| eng d | ||
010 | |a 2006007375 | ||
020 | |a 9780470025703 |9 978-0-470-02570-3 | ||
020 | |a 0470025700 |c pbk. : alk. paper |9 0-470-02570-0 | ||
035 | |a (OCoLC)254756806 | ||
035 | |a (DE-599)BVBBV022234723 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 1 | |a eng |h ger | |
044 | |a xxk |c GB | ||
049 | |a DE-703 |a DE-573 |a DE-384 |a DE-91G |a DE-355 |a DE-473 |a DE-188 |a DE-B768 |a DE-83 | ||
050 | 0 | |a QA76.76.D47 | |
082 | 0 | |a 005.1 |2 22 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
084 | |a DAT 310f |2 stub | ||
100 | 1 | |a Stahl, Thomas |e Verfasser |4 aut | |
240 | 1 | 0 | |a Modellgetriebene Softwareentwicklung |
245 | 1 | 0 | |a Model-driven software development |b technology, engineering, management |c Thomas Stahl and Markus Völter |
264 | 1 | |a Chichester |b Wiley |c 2006 | |
300 | |a XVI,428 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Logiciels - Développement | |
650 | 4 | |a Computer software |x Development | |
650 | 0 | 7 | |a Software Engineering |0 (DE-588)4116521-4 |2 gnd |9 rswk-swf |
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 | 1 | |a Software Engineering |0 (DE-588)4116521-4 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Völter, Markus |d 1974- |e Sonstige |0 (DE-588)1067464913 |4 oth | |
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=015445749&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-015445749 |
Datensatz im Suchindex
_version_ | 1804136223914065920 |
---|---|
adam_text | Contents
Part I Introduction
Introduction
3
1.1
The Subject of the Book
3
1.1.1
MDA
4
1.2
Target Audience
4
1.2.1
Software Architects
5
1.2.2
Software Developers
5
1.2.3
Managers and Project Leaders
5
1.3
The Goals of the Book
5
1.4
The Scope of the Book
6
1.5
The Structure of the Book and Reader Guidelines
6
1.6
The Accompanying Web site
8
1.7
About the Authors
8
1.8
About the Cover
8
1.9
Acknowledgments
9
MDSD
-
Basic Ideas and Terminology
11
2.
1 The Challenge II
2.
1.1 Historical View
12
2.1.2
The Status Quo
12
2.2
The Goals of MDSD
13
2.3
The MDSD Approach
14
2.4
Basic Terminology
16
2.4.1
An Overview of
MDA
Concepts
18
2.5
Architecture-Centric MDSD
21
2.5.1
Motivation
21
2.5.2
Generative Software Architectures
22
2.5.3
Architecture-Centric Design
24
2.5.4
Development Process
26
2.5.5
The Properties of Architecture-Centric MDSD
27
Contents
Case Study: A Typical Web Application
29
3.1
Application Development
29
3.1.1
The Application Example
30
3.1.2
MDSD Tools
32
3.1.3
Example
1 :
Simple Changes to Models
33
3.1.4
Example
2:
Model Changes and Protected Regions
35
3.1.5
Example
3:
Working with Dynamic Models
37
3.1.6
Interaction Between Development and Architecture
39
3.1.7
Intermediate Result
3 9
3.2
Architecture Development
40
3.2.1
The UML Profile
40
3.2.2
Transformations
42
3.2.3
The Mode of Operation of the MDSD Generator
47
3.2.4
Bootstrapping
49
3.2.5
Adaptations of the Generative Software Architecture
49
3.2.6
The Boundary of Infrastructure Code
53
3.2.7
Structuring Metaprograms
53
3.3
Conclusion and Outlook
54
Concept Formation
55
4.1
Common MDSD Concepts and Terminology
55
4.1.1
Modeling
56
4.1.2
Platforms
59
4.1.3
Transformations
60
4.1.4
Software System Families
61
4.2
Model-Driven Architecture
63
4.3
Architecture-Centric MDSD
64
4.4
Generative Programming
65
4.5
Software Factories
68
4.5.1
The Software Factory Schema
68
4.5.2
The Software Factory Template
69
4.5.3
The Role of DSLs and their Relationship to MDSD
69
4.6
Model-Integrated Computing
70
4.7
Language-Oriented Programming
70
4.8
Domain-Specific Modeling
71
Classification
73
5.1
MDSD vs. CASE, 4GL and Wizards
73
5.2
MDSD vs. Roundtrip Engineering
74
5.3
MDSD and Patterns
75
5.3.1
Patterns and Transformations
75
5.3.2
Patterns and Profiles
76
5.3.3
Patterns Languages as a Source of DSLs
77
Contents
vu
I
5.4
MDSD and Domain-Driven Design
77
5.5
MDSD, Data-Driven Development and Interpreters
78
5.6
MDSD and Agile Software Development
78
5.6.1
The Agile Manifesto and MDSD
79
5.6.2
Agile Techniques
80
Part II Domain
■
Architectures
83
6
Metamodeling
85
6.1
What Is Metamodeling?
85
6.2
Metalevels vs. Level of Abstraction
88
6.3
MOF
and UML
88
6.4
Extending UML
89
6.4.1
Extension Based on the Metamodel
89
6.4.2
Extension With Stereotypes in UML
1
.x
92
6.4.3
Extension With Profiles in UML
2
92
6.5
UML Profiles
93
6.6
Metamodeling and OCL
96
6.7
Metamodeling: Example
1
98
6.8
Metamodeling: Example
2
99
6.9
Tool-supported Model Validation
102
6.10
Metamodeling and Behavior
106
6.11
A More Complex Example
107
6.11.1
The Basics
108
6.11.2
Value Types
109
6.11.3
Physical Quantities
110
6.12
Pitfalls in Metamodeling
113
6.12.1
Interfaces
113
6.12.2
Dependencies
114
6.12.3
IDs
115
6.12.4
Primary Keys
116
6.12.5
Metalevels and Instanceof
116
7
MDSD-Capable Target Architectures
119
7.1
Software Architecture in the Context of MDSD
119
7.2
What Is a Sound Architecture?
120
7.3
How Do You Arrive at a Sound Architecture?
121
7.3.1
Architectural Patterns and Styles
121
7.4
Building Blocks for Software Architecture
122
7.4.1
Frameworks
122
7.4.2
Middleware
123
7.4.3
Components
123
7.5
Architecture Reference Model
124
Contents
7.6
Balancing the
MDSD
Platform
125
7.6.1
Examples
126
7.6.2
Integration of Frameworks
127
7.7
Architecture Conformance
127
7.8
MDSD and CBD
129
7.8.1
Three viewpoints
129
7.8.2
Viewpoint Dependencies
132
7.8.3
Aspect Models
132
7.8.4
Variations
134
7.8.5
Component Implementation
136
7.9
SOA, BPM
and MDSD
137
7.9.1
SOA
137
7.9.2
BPM
139
7.9.3
SOA
and BPM
140
8
Building Domain Architectures
143
8.1
DSL construction
143
8.1.1
Choose a suitable DSL
143
8.1.2
Configuration and Construction
-
Variants
144
8.1.3
Modeling Behavior
146
8.1.4
Concrete Syntax Matters!
148
8.1.5
Continuous Validation of the Metamodel
149
8.2
General Transformation Architecture
150
8.2.1
Which Parts of the Target Architecture Should
Be Generated?
150
8.2.2
Believe in Reincarnation
150
8.2.3
Exploit the Model
150
8.2.4
Generate Good-looking Code
-
Whenever Possible
152
8.2.5
Model-driven Integration
153
8.2.6
Separation of Generated and Non-generated Code
154
8.2.7
Modular Transformations
155
8.2.8
Cascaded Model-Driven Development
158
8.3
Technical Aspects of Building Transformations
159
8.3.1
Explicit Integration of Generated Code and Manual Parts
159
8.3.2
Dummy Code
164
8.3.3
Technical
Subdomains
166
8.3.4
Proxy Elements
167
8.3.5
External Model Markings
168
8.3.6
Aspect Orientation and MDSD
169
8.3.7
Descriptive
Meta
Objects
170
8.3.8
Generated Reflection Layers
172
8.4
The Use of Interpreters
173
8.4.1
Interpreters
174
Contents
8.4.2 MDSD
Terminology Revisited
175
8.4.3
Non-
functional Properties of
Interpreters 176
8.4.4
Integrating Interpreters into a System
177
8.4.5
Interpreters and Testing
179
9
Code Generation Techniques
181
9.1
Code Generation
-
Why?
181
9.1.1
Performance
181
9.1.2
Code Volume
181
9.1.3
Analyzability
182
9.1.4
Early Error Detection
182
9.1.5
Platform Compatibility
182
9.1.6
Restrictions of the (Programming) Language
182
9.1.7
Aspects
182
9.1.8
Introspection
182
9.2
Categorization
183
9.2.1
Metaprogramming
183
9.2.2
Separation/Mixing of Program and Metaprogram
183
9.2.3
Implicit or Explicit Integration of Generated With
Non-generated Code
184
9.2.4
Relationships
184
9.2.5
Examples of the Blending of Program and Metaprogram
185
9.3
Generation Techniques
186
9.3.1
Templates and Filtering
187
9.3.2
Templates and Metamodel
188
9.3.3
Frame Processors
189
9.3.4
API-based Generators
192
9.3.5
In-line Generation
194
9.3.6
Code Attributes
196
9.3.7
Code Weaving
197
9.3.8
Combining Different Techniques
198
9.3.9
Commonalities and Differences between the
Different Approaches
199
9.3.10
Other Systems
201
10
Model Transformations with QVT
203
I O.I History
203
10.2
M2M language requirements
204
10.3
Overall Architecture
207
10.4
An Example Transformation
209
10.4.1
The Example in the QVT Relations language
212
10.4.2
The Example in the QVT Operational Mappings language
217
Contents
10.5
The OMG Standardization Process and Tool Availability
220
- 10.6
Assessment
221
11
MDSD Tools: Roles, Architecture, Selection Criteria,
and Pointers
223
11.1
The Role of Tools in the Development Process
223
11.1.1
Modeling
223
11.1.2
Model Validation and Code Generation
224
11.1.3
Build Tool
225
11.1.4
Recipe Frameworks
226
11.1.5
IDE Toolkit
227
11.2
Tool Architecture and Selection Criteria
227
11.2.1
Implement the Metamodel
227
11.2.2
Ignore the Concrete Syntax
227
11.2.3
Modular Transformations
229
11.2.4
Model Transformations are First-Class Citizens
229
11.3
Pointers
230
11.3.1
The Eclipse World
230
233
233
235
236
12
The
MDA
Standard
239
239
239
240
24
1
242
243
244
244
247
248
250
Part HI Processes and Engineering
251
13
MDSD Process Building Blocks and Best Practices
253
13.1
Introduction
253
13.2
Separation between Application and Domain Architecture
Development
253
13.2.1
The Basic Principle
253
11.3.2
Trends in UML tools
11.3.3
UML
2
Composite Structure Diagrams
11.3.4
Other kinds of Editors
11.3.5
Integrated Metamodeling IDEs
The
MDA
Standard
12.1
Goals
12.2
Core Concepts
12.2.1
UML
2.0
12.2.2
MOF
-
The
Meta
Object Facility
12.2.3
XMI
12.2.4
PIM/PSM/PDM
12.2.5
Multi-stage Transformations
12.2.6
Action Languages
12.2.7
Core Models
12.2.8
Controlling the PIM to PSM Transformation
12.2.9
Executable UML
Contents
13.2.2 Domain
Architecture
Development
Thread
255
13.2.3 Application Development
Thread
260
13.3
Two-Track
Iterative Development 262
13.4 Target
Architecture
Development
Process
263
13.4.1
Three Phases
264
13.4.2 Phase 1: Elaborate 265
13.4.3 Phase 2:
Iterate
269
13.4.4 Phase 3: Automate 269
13.5
Product-Line
Engineering 271
13.5.1 Software System
Families and Product
Lines 272
13.5.2 Integration
into the MDSD Process
272
13.5.3
Methodology
272
13.5.4 Domain
Modeling
277
13.5.5
Further Reading
277
14
Testing
279
14.
1 Test Types
279
14.2
Tests in Model-Driven Application Development
280
14.2.1
Unit Tests
281
14.2.2
Acceptance Tests
286
14.2.3
Load Tests
287
14.2.4
Non-functional Tests
288
14.2.5
Model Validation
288
14.3
Testing the Domain Architecture
290
14.3.1
Testing the Reference Implementation and the
MDSD Platform
290
14.3.2
Acceptance Test of the DSL
290
14.3.3
Test of the MDSD Transformations
290
15
Versioning
293
1
5.
1 What Is Versioned?
293
15.2
Projects and Dependencies
293
15.3
The Structure of Application Projects
294
15.4
Version Management and Build Process for Mixed Files
295
15.5
Modeling in a Team and Versioning of Partial Models
297
15.5.1
Partitioning vs.
Subdomains
297
15.5.2
Various Generative Software Architectures
298
15.5.3
Evolution of the DSL
298
15.5.4
Partitioning and Integration
300
16
Case Study: Embedded Component Infrastructures
305
16.1
Overview
305
16.1.1
Introduction and Motivation
306
16.1.2
Component Infrastructures
306
Contents
16.1.3
Component Infrastructure Requirements for
Embedded Systems
307
16.1.4
The Basic Approach
307
16.2
Product-Line Engineering
307
16.2.1
Domain Scoping
308
16.2.2
Variability Analysis and Domain Structuring
309
16.2.3
Domain Design
312
16.2.4
Domain Implementation
315
16.3
Modeling
315
16.3.1
Definition of Interfaces
315
16.3.2
Definition of Components and Ports
316
16.3.3
Definition of a System
318
16.3.4
The Complete Model
320
16.3.5
Processing
320
16.4
Implementation of Components
321
16.5
Generator Adaptation
323
16.5.1
Parsing of the textual syntax
323
16.5.2
Parsing the System Definition XML
325
16.5.3
Parsing and Merging the Complete Model
326
16.5.4
Pseudo-declarative Metamodel Implementation
328
16.6
Code Generation
330
16.6.1
References
330
16.6.2
Polymorphism
333
16.6.3
Separation of Concerns in the Metamodel
335
16.6.4
Generation of Build Files
337
16.6.5
UseofAspectJ
338
17
Case
Study: An Enterprise System
341
17.1
Overview
34
1
17.2
Phase
1:
Elaboration
34
1
17.2.1
Technology-Independent Architecture
34
1
17.2.2
Programming Model
342
17.2.3
Technology Mapping
343
17.2.4
Mock Platform
344
17.2.5
Vertical Prototype
344
17.3
Phase
2:
Iterate
344
17.4
Phase
3:
Automate
345
17.4.1
Architecture Metamodel
345
17.4.2
Glue Code Generation
346
17.4.3
DSL-based Programming Model
346
17.4.4
Model-Based Architecture Validation
354
17.5
Discussion
355
Contents xiii
I
Part IV Management
357
18
Decision Support
359
18.
1 Business Potential
359
18.2
Automation and Reuse
361
18.3
Quality
365
365
365
365
366
366
367
367
368
369
369
373
374
378
378
19
Organizational Aspects
379
379
379
382
383
384
385
385
386
387
387
388
389
389
390
391
20
Adoption Strategies for MDSD
393
20.
1 Prerequisites
393
20.2
Getting Started
-
MDSD Piloting
393
20.2.
1 Risk Analysis
394
20.2.2
Project Initialization
395
18.3.1
Well-defined Architecture
18.3.2
Preserved Expert Knowledge
18.3.3
A Stringent Programming Model
18.3.4
Up-to-date and Usable Documentation
18.3.5
The Quality of Generated Code
18.3.6
Test Effort and Possible Sources of Errors
18.4
Reuse
18.5
Portability, Changeability
18.6
Investment and Possible Benefits
18.6.1
Architecture-centric MDSD
18.6.2
Functional/Professional MDSD Domains
18.7
Critical
Questions
18.8
Conclusion
18.9
Recommended Reading
Organizational Aspects
19.1
Assignment of Roles
19.1.1
Domain Architecture Development
19.1.2
Application Development
19.2
Team Structure
19.2.1
Definition of Roles and Staffing Requirements
19.2.2
Cross-Cutting Teams
19.2.3
Tasks of the Architecture Group
19.3
Software Product Development Models
19.3.1
Terminology
19.3.2
In-house Development
19.3.3
Classical Outsourcing
19.3.4
Offshoring
19.3.5
Radical Offshoring
19.3.6
Controlled Offshoring
19.3.7
Component-wise Decision
Contents
20.3 MDSD Adaptation
of Existing
Systems 396
20.4
Classification of the Software Inventory
397
20.5
Build, Buy, or Open Source
398
20.6
The Design of a Supply Chain
399
20.7
Incremental Evolution of Domain Architectures
400
20.8
Risk Management
400
20.8.1
Risk: Tool-centeredness
400
20.8.2
Risk: A Development Tool Chain Counterproductive
to MDSD
401
20.8.3
Risk: An Overburdened Domain Architecture Team
401
20.8.4
Risk: Waterfall Process Model, Database-centered
Development
402
20.8.5
Risk: The Ivory Tower
402
20.8.6
Risk: No Separation of Application and Domain
Architecture
403
Model Transformation Code
405
A.
1
Complete QVT Relations alma2db Example
405
A.2 Complete QVT Operational Mappings alma2db Example
411
References
415
Index
421
|
adam_txt |
Contents
Part I Introduction
Introduction
3
1.1
The Subject of the Book
3
1.1.1
MDA
4
1.2
Target Audience
4
1.2.1
Software Architects
5
1.2.2
Software Developers
5
1.2.3
Managers and Project Leaders
5
1.3
The Goals of the Book
5
1.4
The Scope of the Book
6
1.5
The Structure of the Book and Reader Guidelines
6
1.6
The Accompanying Web site
8
1.7
About the Authors
8
1.8
About the Cover
8
1.9
Acknowledgments
9
MDSD
-
Basic Ideas and Terminology
11
2.
1 The Challenge II
2.
1.1 Historical View
12
2.1.2
The Status Quo
12
2.2
The Goals of MDSD
13
2.3
The MDSD Approach
14
2.4
Basic Terminology
16
2.4.1
An Overview of
MDA
Concepts
18
2.5
Architecture-Centric MDSD
21
2.5.1
Motivation
21
2.5.2
Generative Software Architectures
22
2.5.3
Architecture-Centric Design
24
2.5.4
Development Process
26
2.5.5
The Properties of Architecture-Centric MDSD
27
Contents
Case Study: A Typical Web Application
29
3.1
Application Development
29
3.1.1
The Application Example
30
3.1.2
MDSD Tools
32
3.1.3
Example
1 :
Simple Changes to Models
33
3.1.4
Example
2:
Model Changes and Protected Regions
35
3.1.5
Example
3:
Working with Dynamic Models
37
3.1.6
Interaction Between Development and Architecture
39
3.1.7
Intermediate Result
3 9
3.2
Architecture Development
40
3.2.1
The UML Profile
40
3.2.2
Transformations
42
3.2.3
The Mode of Operation of the MDSD Generator
47
3.2.4
Bootstrapping
49
3.2.5
Adaptations of the Generative Software Architecture
49
3.2.6
The Boundary of Infrastructure Code
53
3.2.7
Structuring Metaprograms
53
3.3
Conclusion and Outlook
54
Concept Formation
55
4.1
Common MDSD Concepts and Terminology
55
4.1.1
Modeling
56
4.1.2
Platforms
59
4.1.3
Transformations
60
4.1.4
Software System Families
61
4.2
Model-Driven Architecture
63
4.3
Architecture-Centric MDSD
64
4.4
Generative Programming
65
4.5
Software Factories
68
4.5.1
The Software Factory Schema
68
4.5.2
The Software Factory Template
69
4.5.3
The Role of DSLs and their Relationship to MDSD
69
4.6
Model-Integrated Computing
70
4.7
Language-Oriented Programming
70
4.8
Domain-Specific Modeling
71
Classification
73
5.1
MDSD vs. CASE, 4GL and Wizards
73
5.2
MDSD vs. Roundtrip Engineering
74
5.3
MDSD and Patterns
75
5.3.1
Patterns and Transformations
75
5.3.2
Patterns and Profiles
76
5.3.3
Patterns Languages as a Source of DSLs
77
Contents
vu
I
5.4
MDSD and Domain-Driven Design
77
5.5
MDSD, Data-Driven Development and Interpreters
78
5.6
MDSD and Agile Software Development
78
5.6.1
The Agile Manifesto and MDSD
79
5.6.2
Agile Techniques
80
Part II Domain
■
Architectures
83
6
Metamodeling
85
6.1
What Is Metamodeling?
85
6.2
Metalevels vs. Level of Abstraction
88
6.3
MOF
and UML
88
6.4
Extending UML
89
6.4.1
Extension Based on the Metamodel
89
6.4.2
Extension With Stereotypes in UML
1
.x
92
6.4.3
Extension With Profiles in UML
2
92
6.5
UML Profiles
93
6.6
Metamodeling and OCL
96
6.7
Metamodeling: Example
1
98
6.8
Metamodeling: Example
2
99
6.9
Tool-supported Model Validation
102
6.10
Metamodeling and Behavior
106
6.11
A More Complex Example
107
6.11.1
The Basics
108
6.11.2
Value Types
109
6.11.3
Physical Quantities
110
6.12
Pitfalls in Metamodeling
113
6.12.1
Interfaces
113
6.12.2
Dependencies
114
6.12.3
IDs
115
6.12.4
Primary Keys
116
6.12.5
Metalevels and Instanceof
116
7
MDSD-Capable Target Architectures
119
7.1
Software Architecture in the Context of MDSD
119
7.2
What Is a Sound Architecture?
120
7.3
How Do You Arrive at a Sound Architecture?
121
7.3.1
Architectural Patterns and Styles
121
7.4
Building Blocks for Software Architecture
122
7.4.1
Frameworks
122
7.4.2
Middleware
123
7.4.3
Components
123
7.5
Architecture Reference Model
124
Contents
7.6
Balancing the
MDSD
Platform
125
7.6.1
Examples
126
7.6.2
Integration of Frameworks
127
7.7
Architecture Conformance
127
7.8
MDSD and CBD
129
7.8.1
Three viewpoints
129
7.8.2
Viewpoint Dependencies
132
7.8.3
Aspect Models
132
7.8.4
Variations
134
7.8.5
Component Implementation
136
7.9
SOA, BPM
and MDSD
137
7.9.1
SOA
137
7.9.2
BPM
139
7.9.3
SOA
and BPM
140
8
Building Domain Architectures
143
8.1
DSL construction
143
8.1.1
Choose a suitable DSL
143
8.1.2
Configuration and Construction
-
Variants
144
8.1.3
Modeling Behavior
146
8.1.4
Concrete Syntax Matters!
148
8.1.5
Continuous Validation of the Metamodel
149
8.2
General Transformation Architecture
150
8.2.1
Which Parts of the Target Architecture Should
Be Generated?
150
8.2.2
Believe in Reincarnation
150
8.2.3
Exploit the Model
150
8.2.4
Generate Good-looking Code
-
Whenever Possible
152
8.2.5
Model-driven Integration
153
8.2.6
Separation of Generated and Non-generated Code
154
8.2.7
Modular Transformations
155
8.2.8
Cascaded Model-Driven Development
158
8.3
Technical Aspects of Building Transformations
159
8.3.1
Explicit Integration of Generated Code and Manual Parts
159
8.3.2
Dummy Code
164
8.3.3
Technical
Subdomains
166
8.3.4
Proxy Elements
167
8.3.5
External Model Markings
168
8.3.6
Aspect Orientation and MDSD
169
8.3.7
Descriptive
Meta
Objects
170
8.3.8
Generated Reflection Layers
172
8.4
The Use of Interpreters
173
8.4.1
Interpreters
174
Contents
8.4.2 MDSD
Terminology Revisited
175
8.4.3
Non-
functional Properties of
Interpreters 176
8.4.4
Integrating Interpreters into a System
177
8.4.5
Interpreters and Testing
179
9
Code Generation Techniques
181
9.1
Code Generation
-
Why?
181
9.1.1
Performance
181
9.1.2
Code Volume
181
9.1.3
Analyzability
182
9.1.4
Early Error Detection
182
9.1.5
Platform Compatibility
182
9.1.6
Restrictions of the (Programming) Language
182
9.1.7
Aspects
182
9.1.8
Introspection
182
9.2
Categorization
183
9.2.1
Metaprogramming
183
9.2.2
Separation/Mixing of Program and Metaprogram
183
9.2.3
Implicit or Explicit Integration of Generated With
Non-generated Code
184
9.2.4
Relationships
184
9.2.5
Examples of the Blending of Program and Metaprogram
185
9.3
Generation Techniques
186
9.3.1
Templates and Filtering
187
9.3.2
Templates and Metamodel
188
9.3.3
Frame Processors
189
9.3.4
API-based Generators
192
9.3.5
In-line Generation
194
9.3.6
Code Attributes
196
9.3.7
Code Weaving
197
9.3.8
Combining Different Techniques
198
9.3.9
Commonalities and Differences between the
Different Approaches
199
9.3.10
Other Systems
201
10
Model Transformations with QVT
203
I O.I History
203
10.2
M2M language requirements
204
10.3
Overall Architecture
207
10.4
An Example Transformation
209
10.4.1
The Example in the QVT Relations language
212
10.4.2
The Example in the QVT Operational Mappings language
217
Contents
10.5
The OMG Standardization Process and Tool Availability
220
- 10.6
Assessment
221
11
MDSD Tools: Roles, Architecture, Selection Criteria,
and Pointers
223
11.1
The Role of Tools in the Development Process
223
11.1.1
Modeling
223
11.1.2
Model Validation and Code Generation
224
11.1.3
Build Tool
225
11.1.4
Recipe Frameworks
226
11.1.5
IDE Toolkit
227
11.2
Tool Architecture and Selection Criteria
227
11.2.1
Implement the Metamodel
227
11.2.2
Ignore the Concrete Syntax
227
11.2.3
Modular Transformations
229
11.2.4
Model Transformations are'First-Class Citizens'
229
11.3
Pointers
230
11.3.1
The Eclipse World
230
233
233
235
236
12
The
MDA
Standard
239
239
239
240
24
1
242
243
244
244
247
248
250
Part HI Processes and Engineering
251
13
MDSD Process Building Blocks and Best Practices
253
13.1
Introduction
253
13.2
Separation between Application and Domain Architecture
Development
253
13.2.1
The Basic Principle
253
11.3.2
Trends in UML tools
11.3.3
UML
2
Composite Structure Diagrams
11.3.4
Other kinds of Editors
11.3.5
Integrated Metamodeling IDEs
The
MDA
Standard
12.1
Goals
12.2
Core Concepts
12.2.1
UML
2.0
12.2.2
MOF
-
The
Meta
Object Facility
12.2.3
XMI
12.2.4
PIM/PSM/PDM
12.2.5
Multi-stage Transformations
12.2.6
Action Languages
12.2.7
Core Models
12.2.8
Controlling the PIM to PSM Transformation
12.2.9
Executable UML
Contents
13.2.2 Domain
Architecture
Development
Thread
255
13.2.3 Application Development
Thread
260
13.3
Two-Track
Iterative Development 262
13.4 Target
Architecture
Development
Process
263
13.4.1
Three Phases
264
13.4.2 Phase 1: Elaborate 265
13.4.3 Phase 2:
Iterate
269
13.4.4 Phase 3: Automate 269
13.5
Product-Line
Engineering 271
13.5.1 Software System
Families and Product
Lines 272
13.5.2 Integration
into the MDSD Process
272
13.5.3
Methodology
272
13.5.4 Domain
Modeling
277
13.5.5
Further Reading
277
14
Testing
279
14.
1 Test Types
279
14.2
Tests in Model-Driven Application Development
280
14.2.1
Unit Tests
281
14.2.2
Acceptance Tests
286
14.2.3
Load Tests
287
14.2.4
Non-functional Tests
288
14.2.5
Model Validation
288
14.3
Testing the Domain Architecture
290
14.3.1
Testing the Reference Implementation and the
MDSD Platform
290
14.3.2
Acceptance Test of the DSL
290
14.3.3
Test of the MDSD Transformations
290
15
Versioning
293
1
5.
1 What Is Versioned?
293
15.2
Projects and Dependencies
293
15.3
The Structure of Application Projects
294
15.4
Version Management and Build Process for Mixed Files
295
15.5
Modeling in a Team and Versioning of Partial Models
297
15.5.1
Partitioning vs.
Subdomains
297
15.5.2
Various Generative Software Architectures
298
15.5.3
Evolution of the DSL
298
15.5.4
Partitioning and Integration
300
16
Case Study: Embedded Component Infrastructures
305
16.1
Overview
305
16.1.1
Introduction and Motivation
306
16.1.2
Component Infrastructures
306
Contents
16.1.3
Component Infrastructure Requirements for
Embedded Systems
307
16.1.4
The Basic Approach
307
16.2
Product-Line Engineering
307
16.2.1
Domain Scoping
308
16.2.2
Variability Analysis and Domain Structuring
309
16.2.3
Domain Design
312
16.2.4
Domain Implementation
315
16.3
Modeling
315
16.3.1
Definition of Interfaces
315
16.3.2
Definition of Components and Ports
316
16.3.3
Definition of a System
318
16.3.4
The Complete Model
320
16.3.5
Processing
320
16.4
Implementation of Components
321
16.5
Generator Adaptation
323
16.5.1
Parsing of the textual syntax
323
16.5.2
Parsing the System Definition XML
325
16.5.3
Parsing and Merging the Complete Model
326
16.5.4
Pseudo-declarative Metamodel Implementation
328
16.6
Code Generation
330
16.6.1
References
330
16.6.2
Polymorphism
333
16.6.3
Separation of Concerns in the Metamodel
335
16.6.4
Generation of Build Files
337
16.6.5
UseofAspectJ
338
17
Case
Study: An Enterprise System
341
17.1
Overview
34
1
17.2
Phase
1:
Elaboration
34
1
17.2.1
Technology-Independent Architecture
34
1
17.2.2
Programming Model
342
17.2.3
Technology Mapping
343
17.2.4
Mock Platform
344
17.2.5
Vertical Prototype
344
17.3
Phase
2:
Iterate
344
17.4
Phase
3:
Automate
345
17.4.1
Architecture Metamodel
345
17.4.2
Glue Code Generation
346
17.4.3
DSL-based Programming Model
346
17.4.4
Model-Based Architecture Validation
354
17.5
Discussion
355
Contents xiii
I
Part IV Management
357
18
Decision Support
359
18.
1 Business Potential
359
18.2
Automation and Reuse
361
18.3
Quality
365
365
365
365
366
366
367
367
368
369
369
373
374
378
378
19
Organizational Aspects
379
379
379
382
383
384
385
385
386
387
387
388
389
389
390
391
20
Adoption Strategies for MDSD
393
20.
1 Prerequisites
393
20.2
Getting Started
-
MDSD Piloting
393
20.2.
1 Risk Analysis
394
20.2.2
Project Initialization
395
18.3.1
Well-defined Architecture
18.3.2
Preserved Expert Knowledge
18.3.3
A Stringent Programming Model
18.3.4
Up-to-date and Usable Documentation
18.3.5
The Quality of Generated Code
18.3.6
Test Effort and Possible Sources of Errors
18.4
Reuse
18.5
Portability, Changeability
18.6
Investment and Possible Benefits
18.6.1
Architecture-centric MDSD
18.6.2
Functional/Professional MDSD Domains
18.7
Critical
Questions
18.8
Conclusion
18.9
Recommended Reading
Organizational Aspects
19.1
Assignment of Roles
19.1.1
Domain Architecture Development
19.1.2
Application Development
19.2
Team Structure
19.2.1
Definition of Roles and Staffing Requirements
19.2.2
Cross-Cutting Teams
19.2.3
Tasks of the Architecture Group
19.3
Software Product Development Models
19.3.1
Terminology
19.3.2
In-house Development
19.3.3
Classical Outsourcing
19.3.4
Offshoring
19.3.5
Radical Offshoring
19.3.6
Controlled Offshoring
19.3.7
Component-wise Decision
Contents
20.3 MDSD Adaptation
of Existing
Systems 396
20.4
Classification of the Software Inventory
397
20.5
Build, Buy, or Open Source
398
20.6
The Design of a Supply Chain
399
20.7
Incremental Evolution of Domain Architectures
400
20.8
Risk Management
400
20.8.1
Risk: Tool-centeredness
400
20.8.2
Risk: A Development Tool Chain Counterproductive
to MDSD
401
20.8.3
Risk: An Overburdened Domain Architecture Team
401
20.8.4
Risk: Waterfall Process Model, Database-centered
Development
402
20.8.5
Risk: The Ivory Tower
402
20.8.6
Risk: No Separation of Application and Domain
Architecture
403
Model Transformation Code
405
A.
1
Complete QVT Relations alma2db Example
405
A.2 Complete QVT Operational Mappings alma2db Example
411
References
415
Index
421 |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Stahl, Thomas |
author_GND | (DE-588)1067464913 |
author_facet | Stahl, Thomas |
author_role | aut |
author_sort | Stahl, Thomas |
author_variant | t s ts |
building | Verbundindex |
bvnumber | BV022234723 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.D47 |
callnumber-search | QA76.76.D47 |
callnumber-sort | QA 276.76 D47 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 |
classification_tum | DAT 310f |
ctrlnum | (OCoLC)254756806 (DE-599)BVBBV022234723 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01842nam a2200457zc 4500</leader><controlfield tag="001">BV022234723</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20140604 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">070122s2006 xxkad|| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2006007375</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780470025703</subfield><subfield code="9">978-0-470-02570-3</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0470025700</subfield><subfield code="c">pbk. : alk. paper</subfield><subfield code="9">0-470-02570-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)254756806</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)BVBBV022234723</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="1" ind2=" "><subfield code="a">eng</subfield><subfield code="h">ger</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">xxk</subfield><subfield code="c">GB</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-703</subfield><subfield code="a">DE-573</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-473</subfield><subfield code="a">DE-188</subfield><subfield code="a">DE-B768</subfield><subfield code="a">DE-83</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.D47</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">22</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">DAT 310f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Stahl, Thomas</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">Modellgetriebene Softwareentwicklung</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Model-driven software development</subfield><subfield code="b">technology, engineering, management</subfield><subfield code="c">Thomas Stahl and Markus Völter</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Chichester</subfield><subfield code="b">Wiley</subfield><subfield code="c">2006</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XVI,428 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=" " ind2="4"><subfield code="a">Logiciels - Développement</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software</subfield><subfield code="x">Development</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</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="1"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</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">Völter, Markus</subfield><subfield code="d">1974-</subfield><subfield code="e">Sonstige</subfield><subfield code="0">(DE-588)1067464913</subfield><subfield code="4">oth</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=015445749&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-015445749</subfield></datafield></record></collection> |
id | DE-604.BV022234723 |
illustrated | Illustrated |
index_date | 2024-07-02T16:33:42Z |
indexdate | 2024-07-09T20:53:00Z |
institution | BVB |
isbn | 9780470025703 0470025700 |
language | English German |
lccn | 2006007375 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-015445749 |
oclc_num | 254756806 |
open_access_boolean | |
owner | DE-703 DE-573 DE-384 DE-91G DE-BY-TUM DE-355 DE-BY-UBR DE-473 DE-BY-UBG DE-188 DE-B768 DE-83 |
owner_facet | DE-703 DE-573 DE-384 DE-91G DE-BY-TUM DE-355 DE-BY-UBR DE-473 DE-BY-UBG DE-188 DE-B768 DE-83 |
physical | XVI,428 S. Ill., graph. Darst. |
publishDate | 2006 |
publishDateSearch | 2006 |
publishDateSort | 2006 |
publisher | Wiley |
record_format | marc |
spelling | Stahl, Thomas Verfasser aut Modellgetriebene Softwareentwicklung Model-driven software development technology, engineering, management Thomas Stahl and Markus Völter Chichester Wiley 2006 XVI,428 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier Logiciels - Développement Computer software Development Software Engineering (DE-588)4116521-4 gnd rswk-swf Modellgetriebene Entwicklung (DE-588)4832365-2 gnd rswk-swf Modellgetriebene Entwicklung (DE-588)4832365-2 s Software Engineering (DE-588)4116521-4 s DE-604 Völter, Markus 1974- Sonstige (DE-588)1067464913 oth Digitalisierung UB Augsburg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015445749&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Stahl, Thomas Model-driven software development technology, engineering, management Logiciels - Développement Computer software Development Software Engineering (DE-588)4116521-4 gnd Modellgetriebene Entwicklung (DE-588)4832365-2 gnd |
subject_GND | (DE-588)4116521-4 (DE-588)4832365-2 |
title | Model-driven software development technology, engineering, management |
title_alt | Modellgetriebene Softwareentwicklung |
title_auth | Model-driven software development technology, engineering, management |
title_exact_search | Model-driven software development technology, engineering, management |
title_exact_search_txtP | Model-driven software development technology, engineering, management |
title_full | Model-driven software development technology, engineering, management Thomas Stahl and Markus Völter |
title_fullStr | Model-driven software development technology, engineering, management Thomas Stahl and Markus Völter |
title_full_unstemmed | Model-driven software development technology, engineering, management Thomas Stahl and Markus Völter |
title_short | Model-driven software development |
title_sort | model driven software development technology engineering management |
title_sub | technology, engineering, management |
topic | Logiciels - Développement Computer software Development Software Engineering (DE-588)4116521-4 gnd Modellgetriebene Entwicklung (DE-588)4832365-2 gnd |
topic_facet | Logiciels - Développement Computer software Development Software Engineering Modellgetriebene Entwicklung |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=015445749&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT stahlthomas modellgetriebenesoftwareentwicklung AT voltermarkus modellgetriebenesoftwareentwicklung AT stahlthomas modeldrivensoftwaredevelopmenttechnologyengineeringmanagement AT voltermarkus modeldrivensoftwaredevelopmenttechnologyengineeringmanagement |