Model-Driven Software Development (eBook)
XII, 464 Seiten
Springer Berlin (Verlag)
978-3-540-28554-0 (ISBN)
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.
Sami Beydeda is an IT officer at the Federal Finance Office (Bundesamt füer Finanzen), Germany. His research interests besides model-driven development include software testing and component-based development. He has written his PhD thesis on 'The Self-Testing COTS Components (STECC) Method'. Sami Beydeda is a program committee co-chair of TECOS 2004, TQACBS 2005, program committee member of COMPSAC 2004, SEA 2004, QATWBA 2004, QATWBA 2005, TQACBS 2005.
Matthias Book is a research associate at the Chair of Applied Telematics / e-Business at the University of Leipzig in Germany. He is writing his PhD thesis on dialog flow control in web applications. His research interests include software engineering for distributed applications and especially model-driven design of web applications.
Volker Gruhn is a full professor at the computer science department of the University of Leipzig, Germany. His research interests are component-based development, software processes for distributed systems, architecture of electronic commerce applications and workflow management. He has been chief technical officer of a German software house called LION from 1992 to 1996. In this position he was responsible for a software development department of 150 people. Volker Gruhn was a PC member of major software engineering conferences (ESEC95, ESEC97, ICSE2004) and several software process workshops and conferences. He was program chair of the 6th European Workshop on Software Process Technology and the 8th European Software Engineering Conference. Volker Gruhn has already organized a workshop at ICSE, the Engineering Distributed Objects Workshop during ICSE 99. In 1997 Volker Gruhn co-founded adesso AG, a German software house specialized in component-based software development. adesso AG currently has 170 employees.
Sami Beydeda is an IT officer at the Federal Finance Office (Bundesamt füer Finanzen), Germany. His research interests besides model-driven development include software testing and component-based development. He has written his PhD thesis on "The Self-Testing COTS Components (STECC) Method". Sami Beydeda is a program committee co-chair of TECOS 2004, TQACBS 2005, program committee member of COMPSAC 2004, SEA 2004, QATWBA 2004, QATWBA 2005, TQACBS 2005. Matthias Book is a research associate at the Chair of Applied Telematics / e-Business at the University of Leipzig in Germany. He is writing his PhD thesis on dialog flow control in web applications. His research interests include software engineering for distributed applications and especially model-driven design of web applications. Volker Gruhn is a full professor at the computer science department of the University of Leipzig, Germany. His research interests are component-based development, software processes for distributed systems, architecture of electronic commerce applications and workflow management. He has been chief technical officer of a German software house called LION from 1992 to 1996. In this position he was responsible for a software development department of 150 people. Volker Gruhn was a PC member of major software engineering conferences (ESEC95, ESEC97, ICSE2004) and several software process workshops and conferences. He was program chair of the 6th European Workshop on Software Process Technology and the 8th European Software Engineering Conference. Volker Gruhn has already organized a workshop at ICSE, the Engineering Distributed Objects Workshop during ICSE 99. In 1997 Volker Gruhn co-founded adesso AG, a German software house specialized in component-based software development. adesso AG currently has 170 employees.
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
Erscheint lt. Verlag | 11.11.2005 |
---|---|
Zusatzinfo | XII, 464 p. 195 illus. |
Verlagsort | Berlin |
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik ► Software Entwicklung |
Schlagworte | Design • Domain Architecture • Embedded Systems • generic model management • MDA • Middleware • Model-Driven Architecture • model-driven development • Modeling • model transformation • Processing • Refactoring • Software engineering • unified modeling language (UML) |
ISBN-10 | 3-540-28554-7 / 3540285547 |
ISBN-13 | 978-3-540-28554-0 / 9783540285540 |
Haben Sie eine Frage zum Produkt? |
![PDF](/img/icon_pdf_big.jpg)
Größe: 6,1 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich