|
Preface |
5 |
|
|
Acknowledgments |
8 |
|
|
Committee Members |
8 |
|
|
Contents |
11 |
|
|
Introduction: Models, Modeling, and Model-Driven Architecture (MDA) |
13 |
|
|
1 Introduction |
13 |
|
|
2 Modeling Approaches |
15 |
|
|
3 MDA Principles |
18 |
|
|
3.1 A Simple Example |
20 |
|
|
3.2 Summary |
21 |
|
|
4 Automating Generation with Patterns and Transformations |
22 |
|
|
4.1 How Models Evolve |
22 |
|
|
4.2 Understanding Model Transformation |
23 |
|
|
4.3 Applying Model Transformations |
24 |
|
|
5 Summary |
27 |
|
|
6 Acknowledgements |
27 |
|
|
Part I Conceptual Foundations of Model-Driven Development |
29 |
|
|
A Systematic Look at Model Transformations |
30 |
|
|
1 Foundation |
30 |
|
|
2 Classification of Model Transformations |
32 |
|
|
2.1 Fine-Grained Classification Scheme |
33 |
|
|
2.2 System and Model Transformations |
34 |
|
|
2.3 Model and Formalism Transformations |
35 |
|
|
3 Using the Classification Scheme |
36 |
|
|
3.1 High-level Language Compiler Transformations |
37 |
|
|
3.2 Transformational Software Development |
37 |
|
|
3.3 MDSD Transformations |
38 |
|
|
3.4 Horizontal Transformations |
43 |
|
|
4 Conclusion |
43 |
|
|
5 Acknowledgments |
44 |
|
|
Tool Support for Model-Driven Development of Security-Critical Systems with UML |
45 |
|
|
1 Introduction |
45 |
|
|
1.1 Overview and Background |
47 |
|
|
2 UML Machines and UML Machine Systems |
48 |
|
|
3 Formal Semantics for a Fragment of UML |
51 |
|
|
3.1 Sequence Diagrams |
51 |
|
|
3.2 Reasoning about Model Properties |
53 |
|
|
3.3 Using External Verification Tools |
54 |
|
|
4 UML and XML-Based Analysis for Critical Systems Development |
55 |
|
|
5 Tools for Advanced XML-Based Processing of UML Models |
56 |
|
|
5.1 XML-Based Data Binding with MDR |
58 |
|
|
5.2 XML-Based UML Tools Suite |
60 |
|
|
6 Related Work |
64 |
|
|
7 Conclusion |
64 |
|
|
Caste-centric Modelling of Multi-agent Systems: The CAMLE Modelling Language and Automated Tools |
66 |
|
|
1 Introduction |
66 |
|
|
2 Meta-model of Multi-agent Systems |
68 |
|
|
3 The CAMLE Modelling Language |
71 |
|
|
3.1 The Overall Structure of Models |
71 |
|
|
3.2 Caste Model |
71 |
|
|
3.3 Collaboration Model |
73 |
|
|
3.3.1 Scenarios of Collaboration |
74 |
|
|
3.3.2 Re.nement of Collaboration Models |
75 |
|
|
3.4 Behaviour Model |
75 |
|
|
3.4.1 Scenario Diagrams |
76 |
|
|
3.4.2 Behaviour Diagrams |
78 |
|
|
4 Consistency Constraints on the Models |
79 |
|
|
4.1 Intra-model Consistency |
80 |
|
|
4.1.1 Constraints on Caste Models |
80 |
|
|
4.1.2 Constraints on Collaboration Models |
80 |
|
|
4.1.3 Constraints on Behaviour Models |
83 |
|
|
4.2 Inter-model Consistency |
83 |
|
|
4.2.1 Consistency Between Collaboration Models and Caste Models |
83 |
|
|
4.2.2 Consistency Between Behaviour Models and Caste Models |
84 |
|
|
4.2.3 Consistency Between Collaboration Models and Behaviour Models |
85 |
|
|
4.3 Discussion |
86 |
|
|
5 Automatic Generation of Formal Specifications |
88 |
|
|
5.1 The Specfication Language SLABS |
88 |
|
|
5.2 The Overall Transformation Algorithm |
89 |
|
|
5.3 Generation of Behaviour Descriptions |
91 |
|
|
5.3.1 Recognition of Behaviour Rules |
91 |
|
|
5.3.2 Translation of Rules into SLABS Format |
92 |
|
|
5.3.3 Transformation Rules for Behaviour Patterns |
93 |
|
|
5.3.4 Transformation Rules for Scenarios |
93 |
|
|
5.4 Discussion |
95 |
|
|
6 The CAMLE Modelling Environment |
95 |
|
|
6.1 The Overall Architecture |
95 |
|
|
6.2 Case Studies |
97 |
|
|
7 Conclusion |
98 |
|
|
8 Acknowledgements |
98 |
|
|
Using Graph Transformation for Practical Model-Driven Software Engineering |
99 |
|
|
1 Introduction |
99 |
|
|
2 A Basic Introduction to the Graph Transformation Concepts |
100 |
|
|
2.1 Directed Typed Graphs and Graph Morphisms |
101 |
|
|
2.2 Graph Variants |
101 |
|
|
2.3 Graph Transformation and Graph Transformation Systems Basic Principles |
102 |
|
|
2.4 Graph Transformation Variants |
104 |
|
|
2.5 Alternatives for a Graph Transformation Approach |
104 |
|
|
3 Graph Transformations for Vertical Model Transformation |
106 |
|
|
3.1 The Fujaba Approach |
106 |
|
|
3.2 Comparison with other Related Approaches |
113 |
|
|
4 Graph Transformations for Horizontal Model Transformation |
114 |
|
|
4.1 The Fujaba Approach Refactoring as an Example of Horizontal Rephrasing |
115 |
|
|
4.2 Comparison with other Related Approaches Hypergraph Transformation Approaches |
116 |
|
|
5 Graph Grammars for Model Analysis and Verification |
118 |
|
|
5.1 Correctness Criteria for Transformations |
118 |
|
|
5.2 CheckVML: A Tool for Model Checking Graph Grammars |
118 |
|
|
5.3 Reachability Analysis of Flattened Statecharts |
122 |
|
|
5.4 Comparison with other Related Approaches |
123 |
|
|
6 Conclusions and FutureWork |
124 |
|
|
A Generalized Notion of Platforms for Model-Driven Development |
126 |
|
|
1 Introduction |
126 |
|
|
2 What Is a Platform? |
128 |
|
|
2.1 Hardware |
129 |
|
|
2.2 Operating System |
129 |
|
|
2.3 Virtual Machine |
129 |
|
|
2.4 Language Support |
130 |
|
|
2.5 Libraries |
130 |
|
|
2.6 Framework |
130 |
|
|
3 Describing Platforms |
131 |
|
|
3.1 Hardware |
131 |
|
|
3.2 Operating System |
131 |
|
|
3.3 Virtual Machine |
131 |
|
|
3.4 Language Support |
132 |
|
|
3.5 Library and Framework |
132 |
|
|
4 Platforms and Platform Models for MDA |
132 |
|
|
4.1 Generalized MDD Platform Model |
133 |
|
|
4.2 Stack Example |
135 |
|
|
5 Model Transformation Tools |
139 |
|
|
6 Summary |
142 |
|
|
7 Acknowledgements |
143 |
|
|
Part II Technical Infrastructure of Model-Driven Development |
144 |
|
|
A Tool Infrastructure for Model-Driven Development Using Aspectual Patterns |
145 |
|
|
1 Introduction |
145 |
|
|
2 Characteristics of MDD Tools |
146 |
|
|
2.1 Support for Multiple Artifact Types |
147 |
|
|
2.2 Support for Various Development Activities |
148 |
|
|
2.3 Support for Decomposing Systems into Separate Concerns |
149 |
|
|
2.4 A Two-Dimensional Development Approach |
149 |
|
|
3 Concepts for MDD Tool Infrastructure |
151 |
|
|
3.1 Separation of Concerns |
151 |
|
|
3.2 Aspectual Patterns |
151 |
|
|
3.3 Pattern Role Diagrams |
153 |
|
|
3.4 Using Aspectual Patterns for Multiple Artifact Types |
154 |
|
|
3.5 Composition of Aspectual Patterns |
155 |
|
|
3.6 Identifying and Documenting Aspectual Patterns |
158 |
|
|
3.7 Aspectual Patterns as Transformations |
159 |
|
|
4 Implementation – MADE |
159 |
|
|
4.1 MADE Toolset |
159 |
|
|
4.2 Presenting Heterogeneous Aspectual Patterns in MADE |
161 |
|
|
4.3 Composing Aspectual Patterns |
163 |
|
|
4.4 Main Features of MADE |
164 |
|
|
5 Supporting Different Activities |
165 |
|
|
5.1 Feature Variability Management |
166 |
|
|
5.2 Maintenance |
170 |
|
|
5.3 Framework Specialization |
173 |
|
|
5.4 Comprehension |
177 |
|
|
6 Related Work |
180 |
|
|
6.1 Aspectual Patterns |
181 |
|
|
6.2 Separation of Concerns |
181 |
|
|
6.3 MDD |
182 |
|
|
6.4 Tools |
182 |
|
|
7 Conclusions |
183 |
|
|
8 Acknowledgements |
184 |
|
|
Automatically Discovering Transitive Relationships in Class Diagrams |
185 |
|
|
1 Introduction |
185 |
|
|
2 Illustrative Example |
186 |
|
|
3 Simple Abstraction |
188 |
|
|
3.1 Semantic Rules |
188 |
|
|
3.2 Living with Ambiguous Class Definitions |
190 |
|
|
3.3 Other Abstraction Rules |
192 |
|
|
3.4 The Complete List |
192 |
|
|
4 Composite Abstraction |
195 |
|
|
4.1 Path Abstraction |
195 |
|
|
4.2 Paths among Neighboring Important Classes |
196 |
|
|
4.3 Abstracting Cardinalities |
198 |
|
|
4.4 Path Exploration |
199 |
|
|
5 Automation and Tool Support |
200 |
|
|
6 Validation |
200 |
|
|
6.1 Validity of Abstraction Rules and Algorithm |
200 |
|
|
6.2 Manual Abstraction Versus Automation |
201 |
|
|
7 Related Work |
202 |
|
|
8 Conclusion |
204 |
|
|
9 Acknowledgements |
204 |
|
|
Generic and Domain-Specific Model Refactoring Using a Model Transformation Engine |
205 |
|
|
1 Introduction |
205 |
|
|
2 Background: Model Transformation with GME and C-SAW |
206 |
|
|
2.1 The Generic Modeling Environment |
206 |
|
|
2.2 Constraint-Specification Aspect Weaver |
207 |
|
|
3 Model Refactoring Browser |
208 |
|
|
4 Generic Model Refactorings |
210 |
|
|
4.1 Class Diagram Refactorings |
210 |
|
|
4.2 GME Meta-model Refactorings |
212 |
|
|
5 Domain-Specific Model Refactorings |
214 |
|
|
5.1 Refactoring Quality of Service Models |
214 |
|
|
5.2 Refactoring Petri nets |
218 |
|
|
6 Related Work |
221 |
|
|
7 Conclusions and FutureWork |
222 |
|
|
8 Acknowledgements |
223 |
|
|
A Testing Framework for Model Transformations |
224 |
|
|
1 Introduction |
224 |
|
|
2 Background |
227 |
|
|
3 Detecting the Differences Between Models |
228 |
|
|
3.1 Graph Representation of Models |
228 |
|
|
3.2 Model Mapping and Difference |
229 |
|
|
3.3 Model Comparison |
230 |
|
|
4 A Framework for Model Transformation Testing |
232 |
|
|
4.1 Test Case Constructor |
232 |
|
|
4.2 Test Engine |
233 |
|
|
4.3 Test Analyzer |
233 |
|
|
5 Case Study: Example Application of Model Transformation Testing |
234 |
|
|
5.1 Test Specification Definition |
236 |
|
|
5.2 Test Case Construction |
237 |
|
|
5.3 Test Results and Difference Indication |
238 |
|
|
5.4 Correction of the Model Transformation Specification |
238 |
|
|
6 Related Work |
239 |
|
|
7 Conclusions and FutureWork |
240 |
|
|
8 Acknowledgements |
241 |
|
|
Parallax - An Aspect-Enabled Framework for Plug-in-Based MDA Refinements Towards Middleware |
242 |
|
|
1 Introduction |
242 |
|
|
2 Parallax and Enterprise Fondue |
244 |
|
|
2.1 The Architecture of Parallax |
247 |
|
|
2.2 The Parallax Core |
248 |
|
|
3 The Framework of Parallax Plug-ins |
252 |
|
|
3.1 Code Generator Plug-ins |
256 |
|
|
3.2 Parallax Aspect-Plug-ins |
257 |
|
|
3.2.1 Concern-Oriented and Concern-on-Technology Aspect-Plug-ins |
258 |
|
|
3.2.2 Concern-on-Platform Aspect-Plug-ins |
261 |
|
|
3.3 Discussion |
264 |
|
|
4 The Parallax Tool Support |
264 |
|
|
5 Related Work |
268 |
|
|
6 Conclusions and FutureWork |
270 |
|
|
7 Acknowledgements |
272 |
|
|
Evolution and Maintenance of MDA Applications |
273 |
|
|
1 Software Evolution |
273 |
|
|
1.1 Innovation Cycles |
273 |
|
|
1.2 Dependency Chains |
274 |
|
|
1.3 Maintainability |
276 |
|
|
2 MDA Development Environment |
276 |
|
|
2.1 "Funcar” Application Case Study |
276 |
|
|
2.2 Run-time Environment |
276 |
|
|
2.3 Development Tool Chain |
277 |
|
|
2.4 Reference Architectures |
277 |
|
|
2.5 Business Modeling with UML |
279 |
|
|
2.6 Model Interchange with XMI |
279 |
|
|
2.7 Code Generation with Velocity |
280 |
|
|
2.8 Business Code in the Target Language Java |
281 |
|
|
2.9 Model Transformation |
282 |
|
|
3 Maintainability of MDA Applications |
283 |
|
|
3.1 Change in the Run-time Environment |
284 |
|
|
3.2 Evolution of the Reference Architecture |
286 |
|
|
3.3 Change in the Development Tool Chain |
286 |
|
|
3.4 External Evolution of UML, XMI, or MDA |
287 |
|
|
3.5 New Requirements |
288 |
|
|
4 Related Work |
289 |
|
|
5 Conclusion |
289 |
|
|
Part III Case Studies |
291 |
|
|
Intents and Upgrades in Component-Based High-Assurance Systems |
292 |
|
|
1 Introduction |
292 |
|
|
2 Intents and Upgrades |
294 |
|
|
2.1 Dependability and Components |
294 |
|
|
2.2 Constructing the Correct |
296 |
|
|
2.3 Dependable Assemblies of Correct Components |
297 |
|
|
3 Intent Specifications |
298 |
|
|
4 Support for Upgrades |
299 |
|
|
4.1 Example: Unmanned Vehicle |
300 |
|
|
5 From Specification to Design |
302 |
|
|
6 Results and Lessons Learnt |
303 |
|
|
6.1 Upgraded Unmanned Vehicle |
303 |
|
|
6.2 Secure Communication Platform |
304 |
|
|
6.3 Airbag Software |
305 |
|
|
6.4 Final Remarks |
305 |
|
|
7 Acknowledgements |
306 |
|
|
On Modeling Techniques for Supporting Model-Driven Development of Protocol Processing Applications |
307 |
|
|
1 Introduction |
307 |
|
|
1.1 Models and Modeling Languages |
308 |
|
|
1.2 Model-Driven Software Development Methods |
309 |
|
|
2 Tool Support for MDA |
310 |
|
|
2.1 SMW Tool |
311 |
|
|
2.2 Scripts |
311 |
|
|
2.3 Queries: Metrics, Constraints, and Guidelines |
312 |
|
|
2.4 Model Transformations |
315 |
|
|
3 A Design Methodology for Protocol Processing Applications |
316 |
|
|
3.1 Functional Specification of the Application |
318 |
|
|
3.2 From General Specifications to Specific Implementations |
319 |
|
|
3.3 System Generation |
323 |
|
|
4 Automating Model Transformations in the Methodology |
324 |
|
|
5 Conclusions |
329 |
|
|
6 Acknowledgements |
330 |
|
|
An Integrated Model-Driven Development Environment for Composing and Validating Distributed Real-Time and Embedded Systems |
331 |
|
|
1 Introduction |
332 |
|
|
2 An Overview of the CoSMIC and Cadena MDD Environments |
334 |
|
|
2.1 Overview of CoSMIC |
334 |
|
|
2.2 Overview of Cadena |
337 |
|
|
3 Approaches to Integrating MDD Tools for DRE Systems |
341 |
|
|
4 Demonstrating Integrated CoSMIC - Cadena Capabilities via a Robot Assembly Case Study |
348 |
|
|
4.1 Structure and Functionality of the Robot Assembly Application |
348 |
|
|
4.2 Key Capabilities Provided by CoSMIC and Cadena Integration for the Robot Assembly Application |
350 |
|
|
4.3 Summary of the Robot Assembly Case Study |
358 |
|
|
5 Related Work |
359 |
|
|
6 Concluding Remarks |
360 |
|
|
A Model-Driven Technique for Development of Embedded Systems Based on the DEVS Formalism |
364 |
|
|
1 Introduction |
364 |
|
|
2 Background |
365 |
|
|
3 The CD++ Toolkit |
367 |
|
|
4 Incremental development of a DEVS Simulation Model |
371 |
|
|
5 Hybrid Applications: An Automated Factory Model |
376 |
|
|
6 Development Improvements |
382 |
|
|
7 Conclusion |
383 |
|
|
8 Acknowledgements |
384 |
|
|
Model-Driven Service Engineering |
385 |
|
|
1 The MDA Idea |
385 |
|
|
2 Model-Driven Development |
387 |
|
|
3 Abstraction Criteria |
390 |
|
|
4 Towards Model-Driven Service Engineering |
391 |
|
|
4.1 The Nature of Services |
392 |
|
|
4.2 Role and Actor Modeling – RAM |
393 |
|
|
4.3 Service Modeling |
395 |
|
|
4.4 Implementation and Platform Issues |
396 |
|
|
4.5 RAM and MDA |
397 |
|
|
5 Concluding Remarks |
399 |
|
|
6 Acknowledgements |
400 |
|
|
Practical Insights into Model-Driven Architecture: Lessons from the Design and Use of an MDA Toolkit |
402 |
|
|
1 Introduction |
402 |
|
|
2 The MDA Toolkit for IBM Rational XDE Java |
404 |
|
|
2.1 Motivation |
404 |
|
|
2.2 Key Aspects of the MDA Toolkit |
404 |
|
|
2.3 The Role of UML Profiles |
406 |
|
|
2.4 Packaging and Delivering MDA Toolkit Transformations |
406 |
|
|
3 Lessons in the Design and Application of MDA Solutions |
407 |
|
|
3.1 Semantic Model Connections |
407 |
|
|
3.2 Identify Candidate Transformations |
408 |
|
|
3.3 Document Transformation Requirements |
409 |
|
|
3.4 Create UML Profiles |
417 |
|
|
3.5 Develop the Transformation |
419 |
|
|
3.6 Deploy the Transformation |
423 |
|
|
4 Commentary |
424 |
|
|
4.1 The MDA Process |
424 |
|
|
4.2 Using MDA to Customize a Solution Framework |
427 |
|
|
5 Summary and Future Directions |
429 |
|
|
6 Acknowledgements |
430 |
|
|
References |
431 |
|
|
Index |
457 |
|