E-Book, Englisch, 464 Seiten
Beydeda / Book / Gruhn Model-Driven Software Development
1. Auflage 2005
ISBN: 978-3-540-28554-0
Verlag: Springer-Verlag
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
E-Book, Englisch, 464 Seiten
ISBN: 978-3-540-28554-0
Verlag: Springer-Verlag
Format: PDF
Kopierschutz: Adobe DRM (»Systemvoraussetzungen)
Abstraction is the most basic principle of software engineering. Abstractions are provided by models. Modeling and model transformation constitute the core of model-driven development. Models can be refined and finally be transformed into a technical implementation, i.e., a software system.
The aim of this book is to give an overview of the state of the art in model-driven software development. Achievements are considered from a conceptual point of view in the first part, while the second part describes technical advances and infrastructures. Finally, the third part summarizes experiences gained in actual projects employing model-driven development.
Beydeda, Book and Gruhn put together the results from leading researchers in this area, both from industry and academia. The result is a collection of papers which gives both researchers and graduate students a comprehensive overview of current research issues and industrial forefront practice, as promoted by OMG’s MDA initiative.
Autoren/Hrsg.
Weitere Infos & Material
1;Preface;5
1.1;Acknowledgments;8
1.1.1;Committee Members;8
2;Contents;11
3;Introduction: Models, Modeling, and Model-Driven Architecture (MDA);13
3.1;1 Introduction;13
3.2;2 Modeling Approaches;15
3.3;3 MDA Principles;18
3.3.1;3.1 A Simple Example;20
3.3.2;3.2 Summary;21
3.4;4 Automating Generation with Patterns and Transformations;22
3.4.1;4.1 How Models Evolve;22
3.4.2;4.2 Understanding Model Transformation;23
3.4.3;4.3 Applying Model Transformations;24
3.5;5 Summary;27
3.6;6 Acknowledgements;27
4;Part I Conceptual Foundations of Model-Driven Development;29
4.1;A Systematic Look at Model Transformations;30
4.1.1;1 Foundation;30
4.1.2;2 Classification of Model Transformations;32
4.1.2.1;2.1 Fine-Grained Classification Scheme;33
4.1.2.2;2.2 System and Model Transformations;34
4.1.2.3;2.3 Model and Formalism Transformations;35
4.1.3;3 Using the Classification Scheme;36
4.1.3.1;3.1 High-level Language Compiler Transformations;37
4.1.3.2;3.2 Transformational Software Development;37
4.1.3.3;3.3 MDSD Transformations;38
4.1.3.4;3.4 Horizontal Transformations;43
4.1.4;4 Conclusion;43
4.1.5;5 Acknowledgments;44
4.2;Tool Support for Model-Driven Development of Security-Critical Systems with UML;45
4.2.1;1 Introduction;45
4.2.1.1;1.1 Overview and Background;47
4.2.2;2 UML Machines and UML Machine Systems;48
4.2.3;3 Formal Semantics for a Fragment of UML;51
4.2.3.1;3.1 Sequence Diagrams;51
4.2.3.2;3.2 Reasoning about Model Properties;53
4.2.3.3;3.3 Using External Verification Tools;54
4.2.4;4 UML and XML-Based Analysis for Critical Systems Development;55
4.2.5;5 Tools for Advanced XML-Based Processing of UML Models;56
4.2.5.1;5.1 XML-Based Data Binding with MDR;58
4.2.5.2;5.2 XML-Based UML Tools Suite;60
4.2.6;6 Related Work;64
4.2.7;7 Conclusion;64
4.3;Caste-centric Modelling of Multi-agent Systems: The CAMLE Modelling Language and Automated Tools;66
4.3.1;1 Introduction;66
4.3.2;2 Meta-model of Multi-agent Systems;68
4.3.3;3 The CAMLE Modelling Language;71
4.3.3.1;3.1 The Overall Structure of Models;71
4.3.3.2;3.2 Caste Model;71
4.3.3.3;3.3 Collaboration Model;73
4.3.3.4;3.3.1 Scenarios of Collaboration;74
4.3.3.5;3.3.2 Re.nement of Collaboration Models;75
4.3.3.6;3.4 Behaviour Model;75
4.3.3.7;3.4.1 Scenario Diagrams;76
4.3.3.8;3.4.2 Behaviour Diagrams;78
4.3.4;4 Consistency Constraints on the Models;79
4.3.4.1;4.1 Intra-model Consistency;80
4.3.4.1.1;4.1.1 Constraints on Caste Models;80
4.3.4.1.2;4.1.2 Constraints on Collaboration Models;80
4.3.4.1.3;4.1.3 Constraints on Behaviour Models;83
4.3.4.2;4.2 Inter-model Consistency;83
4.3.4.2.1;4.2.1 Consistency Between Collaboration Models and Caste Models;83
4.3.4.2.2;4.2.2 Consistency Between Behaviour Models and Caste Models;84
4.3.4.2.3;4.2.3 Consistency Between Collaboration Models and Behaviour Models;85
4.3.4.3;4.3 Discussion;86
4.3.5;5 Automatic Generation of Formal Specifications;88
4.3.5.1;5.1 The Specfication Language SLABS;88
4.3.5.2;5.2 The Overall Transformation Algorithm;89
4.3.5.3;5.3 Generation of Behaviour Descriptions;91
4.3.5.3.1;5.3.1 Recognition of Behaviour Rules;91
4.3.5.3.2;5.3.2 Translation of Rules into SLABS Format;92
4.3.5.3.3;5.3.3 Transformation Rules for Behaviour Patterns;93
4.3.5.3.4;5.3.4 Transformation Rules for Scenarios;93
4.3.5.4;5.4 Discussion;95
4.3.6;6 The CAMLE Modelling Environment;95
4.3.6.1;6.1 The Overall Architecture;95
4.3.6.2;6.2 Case Studies;97
4.3.7;7 Conclusion;98
4.3.8;8 Acknowledgements;98
4.4;Using Graph Transformation for Practical Model-Driven Software Engineering;99
4.4.1;1 Introduction;99
4.4.2;2 A Basic Introduction to the Graph Transformation Concepts;100
4.4.2.1;2.1 Directed Typed Graphs and Graph Morphisms;101
4.4.2.2;2.2 Graph Variants;101
4.4.2.3;2.3 Graph Transformation and Graph Transformation Systems Basic Principles;102
4.4.2.4;2.4 Graph Transformation Variants;104
4.4.2.5;2.5 Alternatives for a Graph Transformation Approach;104
4.4.3;3 Graph Transformations for Vertical Model Transformation;106
4.4.3.1;3.1 The Fujaba Approach;106
4.4.3.2;3.2 Comparison with other Related Approaches;113
4.4.4;4 Graph Transformations for Horizontal Model Transformation;114
4.4.4.1;4.1 The Fujaba Approach Refactoring as an Example of Horizontal Rephrasing;115
4.4.4.2;4.2 Comparison with other Related Approaches Hypergraph Transformation Approaches;116
4.4.5;5 Graph Grammars for Model Analysis and Verification;118
4.4.5.1;5.1 Correctness Criteria for Transformations;118
4.4.5.2;5.2 CheckVML: A Tool for Model Checking Graph Grammars;118
4.4.5.3;5.3 Reachability Analysis of Flattened Statecharts;122
4.4.5.4;5.4 Comparison with other Related Approaches;123
4.4.6;6 Conclusions and FutureWork;124
4.5;A Generalized Notion of Platforms for Model-Driven Development;126
4.5.1;1 Introduction;126
4.5.2;2 What Is a Platform?;128
4.5.2.1;2.1 Hardware;129
4.5.2.2;2.2 Operating System;129
4.5.2.3;2.3 Virtual Machine;129
4.5.2.4;2.4 Language Support;130
4.5.2.5;2.5 Libraries;130
4.5.2.6;2.6 Framework;130
4.5.3;3 Describing Platforms;131
4.5.3.1;3.1 Hardware;131
4.5.3.2;3.2 Operating System;131
4.5.3.3;3.3 Virtual Machine;131
4.5.3.4;3.4 Language Support;132
4.5.3.5;3.5 Library and Framework;132
4.5.4;4 Platforms and Platform Models for MDA;132
4.5.4.1;4.1 Generalized MDD Platform Model;133
4.5.4.2;4.2 Stack Example;135
4.5.5;5 Model Transformation Tools;139
4.5.6;6 Summary;142
4.5.7;7 Acknowledgements;143
5;Part II Technical Infrastructure of Model-Driven Development;144
5.1;A Tool Infrastructure for Model-Driven Development Using Aspectual Patterns;145
5.1.1;1 Introduction;145
5.1.2;2 Characteristics of MDD Tools;146
5.1.2.1;2.1 Support for Multiple Artifact Types;147
5.1.2.2;2.2 Support for Various Development Activities;148
5.1.2.3;2.3 Support for Decomposing Systems into Separate Concerns;149
5.1.2.4;2.4 A Two-Dimensional Development Approach;149
5.1.3;3 Concepts for MDD Tool Infrastructure;151
5.1.3.1;3.1 Separation of Concerns;151
5.1.3.2;3.2 Aspectual Patterns;151
5.1.3.3;3.3 Pattern Role Diagrams;153
5.1.3.4;3.4 Using Aspectual Patterns for Multiple Artifact Types;154
5.1.3.5;3.5 Composition of Aspectual Patterns;155
5.1.3.6;3.6 Identifying and Documenting Aspectual Patterns;158
5.1.3.7;3.7 Aspectual Patterns as Transformations;159
5.1.4;4 Implementation – MADE;159
5.1.4.1;4.1 MADE Toolset;159
5.1.4.2;4.2 Presenting Heterogeneous Aspectual Patterns in MADE;161
5.1.4.3;4.3 Composing Aspectual Patterns;163
5.1.4.4;4.4 Main Features of MADE;164
5.1.5;5 Supporting Different Activities;165
5.1.5.1;5.1 Feature Variability Management;166
5.1.5.2;5.2 Maintenance;170
5.1.5.3;5.3 Framework Specialization;173
5.1.5.4;5.4 Comprehension;177
5.1.6;6 Related Work;180
5.1.6.1;6.1 Aspectual Patterns;181
5.1.6.2;6.2 Separation of Concerns;181
5.1.6.3;6.3 MDD;182
5.1.6.4;6.4 Tools;182
5.1.7;7 Conclusions;183
5.1.8;8 Acknowledgements;184
5.2;Automatically Discovering Transitive Relationships in Class Diagrams;185
5.2.1;1 Introduction;185
5.2.2;2 Illustrative Example;186
5.2.3;3 Simple Abstraction;188
5.2.3.1;3.1 Semantic Rules;188
5.2.3.2;3.2 Living with Ambiguous Class Definitions;190
5.2.3.3;3.3 Other Abstraction Rules;192
5.2.3.4;3.4 The Complete List;192
5.2.4;4 Composite Abstraction;195
5.2.4.1;4.1 Path Abstraction;195
5.2.4.2;4.2 Paths among Neighboring Important Classes;196
5.2.4.3;4.3 Abstracting Cardinalities;198
5.2.4.4;4.4 Path Exploration;199
5.2.5;5 Automation and Tool Support;200
5.2.6;6 Validation;200
5.2.6.1;6.1 Validity of Abstraction Rules and Algorithm;200
5.2.6.2;6.2 Manual Abstraction Versus Automation;201
5.2.7;7 Related Work;202
5.2.8;8 Conclusion;204
5.2.9;9 Acknowledgements;204
5.3;Generic and Domain-Specific Model Refactoring Using a Model Transformation Engine;205
5.3.1;1 Introduction;205
5.3.2;2 Background: Model Transformation with GME and C-SAW;206
5.3.2.1;2.1 The Generic Modeling Environment;206
5.3.2.2;2.2 Constraint-Specification Aspect Weaver;207
5.3.3;3 Model Refactoring Browser;208
5.3.4;4 Generic Model Refactorings;210
5.3.4.1;4.1 Class Diagram Refactorings;210
5.3.4.2;4.2 GME Meta-model Refactorings;212
5.3.5;5 Domain-Specific Model Refactorings;214
5.3.5.1;5.1 Refactoring Quality of Service Models;214
5.3.5.2;5.2 Refactoring Petri nets;218
5.3.6;6 Related Work;221
5.3.7;7 Conclusions and FutureWork;222
5.3.8;8 Acknowledgements;223
5.4;A Testing Framework for Model Transformations;224
5.4.1;1 Introduction;224
5.4.2;2 Background;227
5.4.3;3 Detecting the Differences Between Models;228
5.4.3.1;3.1 Graph Representation of Models;228
5.4.3.2;3.2 Model Mapping and Difference;229
5.4.3.3;3.3 Model Comparison;230
5.4.4;4 A Framework for Model Transformation Testing;232
5.4.4.1;4.1 Test Case Constructor;232
5.4.4.2;4.2 Test Engine;233
5.4.4.3;4.3 Test Analyzer;233
5.4.5;5 Case Study: Example Application of Model Transformation Testing;234
5.4.5.1;5.1 Test Specification Definition;236
5.4.5.2;5.2 Test Case Construction;237
5.4.5.3;5.3 Test Results and Difference Indication;238
5.4.5.4;5.4 Correction of the Model Transformation Specification;238
5.4.6;6 Related Work;239
5.4.7;7 Conclusions and FutureWork;240
5.4.8;8 Acknowledgements;241
5.5;Parallax - An Aspect-Enabled Framework for Plug-in-Based MDA Refinements Towards Middleware;242
5.5.1;1 Introduction;242
5.5.2;2 Parallax and Enterprise Fondue;244
5.5.2.1;2.1 The Architecture of Parallax;247
5.5.2.2;2.2 The Parallax Core;248
5.5.3;3 The Framework of Parallax Plug-ins ;252
5.5.3.1;3.1 Code Generator Plug-ins;256
5.5.3.2;3.2 Parallax Aspect-Plug-ins;257
5.5.3.2.1;3.2.1 Concern-Oriented and Concern-on-Technology Aspect-Plug-ins;258
5.5.3.2.2;3.2.2 Concern-on-Platform Aspect-Plug-ins;261
5.5.3.3;3.3 Discussion;264
5.5.4;4 The Parallax Tool Support;264
5.5.5;5 Related Work;268
5.5.6;6 Conclusions and FutureWork;270
5.5.7;7 Acknowledgements;272
5.6;Evolution and Maintenance of MDA Applications;273
5.6.1;1 Software Evolution;273
5.6.1.1;1.1 Innovation Cycles;273
5.6.1.2;1.2 Dependency Chains;274
5.6.1.3;1.3 Maintainability;276
5.6.2;2 MDA Development Environment;276
5.6.2.1;2.1 "Funcar” Application Case Study;276
5.6.2.2;2.2 Run-time Environment;276
5.6.2.3;2.3 Development Tool Chain;277
5.6.2.4;2.4 Reference Architectures;277
5.6.2.5;2.5 Business Modeling with UML;279
5.6.2.6;2.6 Model Interchange with XMI;279
5.6.2.7;2.7 Code Generation with Velocity;280
5.6.2.8;2.8 Business Code in the Target Language Java;281
5.6.2.9;2.9 Model Transformation;282
5.6.3;3 Maintainability of MDA Applications;283
5.6.3.1;3.1 Change in the Run-time Environment;284
5.6.3.2;3.2 Evolution of the Reference Architecture;286
5.6.3.3;3.3 Change in the Development Tool Chain;286
5.6.3.4;3.4 External Evolution of UML, XMI, or MDA;287
5.6.3.5;3.5 New Requirements;288
5.6.4;4 Related Work;289
5.6.5;5 Conclusion;289
6;Part III Case Studies;291
6.1;Intents and Upgrades in Component-Based High-Assurance Systems;292
6.1.1;1 Introduction;292
6.1.2;2 Intents and Upgrades;294
6.1.2.1;2.1 Dependability and Components;294
6.1.2.2;2.2 Constructing the Correct;296
6.1.2.3;2.3 Dependable Assemblies of Correct Components;297
6.1.3;3 Intent Specifications;298
6.1.4;4 Support for Upgrades;299
6.1.4.1;4.1 Example: Unmanned Vehicle;300
6.1.5;5 From Specification to Design;302
6.1.6;6 Results and Lessons Learnt;303
6.1.6.1;6.1 Upgraded Unmanned Vehicle;303
6.1.6.2;6.2 Secure Communication Platform;304
6.1.6.3;6.3 Airbag Software;305
6.1.6.4;6.4 Final Remarks;305
6.1.7;7 Acknowledgements;306
6.2;On Modeling Techniques for Supporting Model-Driven Development of Protocol Processing Applications;307
6.2.1;1 Introduction;307
6.2.1.1;1.1 Models and Modeling Languages;308
6.2.1.2;1.2 Model-Driven Software Development Methods;309
6.2.2;2 Tool Support for MDA;310
6.2.2.1;2.1 SMW Tool;311
6.2.2.2;2.2 Scripts;311
6.2.2.3;2.3 Queries: Metrics, Constraints, and Guidelines;312
6.2.2.4;2.4 Model Transformations;315
6.2.3;3 A Design Methodology for Protocol Processing Applications;316
6.2.3.1;3.1 Functional Specification of the Application;318
6.2.3.2;3.2 From General Specifications to Specific Implementations;319
6.2.3.3;3.3 System Generation;323
6.2.4;4 Automating Model Transformations in the Methodology;324
6.2.5;5 Conclusions;329
6.2.6;6 Acknowledgements;330
6.3;An Integrated Model-Driven Development Environment for Composing and Validating Distributed Real-Time and Embedded Systems ;331
6.3.1;1 Introduction;332
6.3.2;2 An Overview of the CoSMIC and Cadena MDD Environments;334
6.3.2.1;2.1 Overview of CoSMIC;334
6.3.2.2;2.2 Overview of Cadena;337
6.3.3;3 Approaches to Integrating MDD Tools for DRE Systems;341
6.3.4;4 Demonstrating Integrated CoSMIC - Cadena Capabilities via a Robot Assembly Case Study;348
6.3.4.1;4.1 Structure and Functionality of the Robot Assembly Application;348
6.3.4.2;4.2 Key Capabilities Provided by CoSMIC and Cadena Integration for the Robot Assembly Application;350
6.3.4.3;4.3 Summary of the Robot Assembly Case Study;358
6.3.5;5 Related Work;359
6.3.6;6 Concluding Remarks;360
6.4;A Model-Driven Technique for Development of Embedded Systems Based on the DEVS Formalism;364
6.4.1;1 Introduction;364
6.4.2;2 Background;365
6.4.3;3 The CD++ Toolkit;367
6.4.4;4 Incremental development of a DEVS Simulation Model;371
6.4.5;5 Hybrid Applications: An Automated Factory Model;376
6.4.6;6 Development Improvements;382
6.4.7;7 Conclusion;383
6.4.8;8 Acknowledgements;384
6.5;Model-Driven Service Engineering;385
6.5.1;1 The MDA Idea;385
6.5.2;2 Model-Driven Development;387
6.5.3;3 Abstraction Criteria;390
6.5.4;4 Towards Model-Driven Service Engineering;391
6.5.4.1;4.1 The Nature of Services;392
6.5.4.2;4.2 Role and Actor Modeling – RAM;393
6.5.4.3;4.3 Service Modeling;395
6.5.4.4;4.4 Implementation and Platform Issues;396
6.5.4.5;4.5 RAM and MDA;397
6.5.5;5 Concluding Remarks;399
6.5.6;6 Acknowledgements;400
6.6;Practical Insights into Model-Driven Architecture: Lessons from the Design and Use of an MDA Toolkit;402
6.6.1;1 Introduction;402
6.6.2;2 The MDA Toolkit for IBM Rational XDE Java;404
6.6.2.1;2.1 Motivation;404
6.6.2.2;2.2 Key Aspects of the MDA Toolkit;404
6.6.2.3;2.3 The Role of UML Profiles;406
6.6.2.4;2.4 Packaging and Delivering MDA Toolkit Transformations;406
6.6.3;3 Lessons in the Design and Application of MDA Solutions;407
6.6.3.1;3.1 Semantic Model Connections;407
6.6.3.2;3.2 Identify Candidate Transformations;408
6.6.3.3;3.3 Document Transformation Requirements;409
6.6.3.4;3.4 Create UML Profiles;417
6.6.3.5;3.5 Develop the Transformation;419
6.6.3.6;3.6 Deploy the Transformation;423
6.6.4;4 Commentary;424
6.6.4.1;4.1 The MDA Process;424
6.6.4.2;4.2 Using MDA to Customize a Solution Framework;427
6.6.5;5 Summary and Future Directions;429
6.6.6;6 Acknowledgements;430
7;References;431
8;Index;457




