E-Book, Englisch, Band 33, 382 Seiten
Oriol / Aalst / Meyer Objects, Components, Models and Patterns
1. Auflage 2009
ISBN: 978-3-642-02571-6
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark
47th International Conference, TOOLS EUROPE 2009, Zurich, Switzerland, June 29-July 3, 2009, Proceedings
E-Book, Englisch, Band 33, 382 Seiten
Reihe: Lecture Notes in Business Information Processing
ISBN: 978-3-642-02571-6
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark
This book constitutes the thoroughly refereed proceedings of the 47th International Conference on Objects, Components, Models and Patterns, TOOLS EUROPE 2009, held in Zurich, Switzerland, in June/July 2009. TOOLS has played a major role in the spread of object-oriented and component technologies. It has now broadened its scope beyond the original topics of object technology and component-based development to encompass all modern, practical approaches to software development. At the same time, TOOLS has kept its traditional spirit of technical excellence, its acclaimed focus on practicality, its well-proven combination of theory and applications, and its reliance on the best experts from academia and industry. The 17 regular papers and two short papers presented in this book, together with two invited papers, were carefully reviewed and selected from 67 submissions. The topics covered in this volume are reflection and aspects, models, theory, components, monitoring, and systems generation.
Autoren/Hrsg.
Weitere Infos & Material
1;Preface;5
2;Organization;6
3;Table of Contents;9
4;On Realizing a Framework for Self-tuning Mappings;12
4.1;Introduction;12
4.2;Smart Matching at a Glance;13
4.3;A Fitness Function for Mapping Models;15
4.4;A Feedback-Aware Mapping Engine;18
4.4.1;Local Strategies;18
4.4.2;Global Strategies;19
4.5;Evaluation;23
4.6;Related Work;25
4.7;Conclusion and Future Work;25
4.8;References;26
5;Programming Models for Concurrency and Real-Time;28
6;CIF: A Framework for Managing Integrity in Aspect-Oriented Composition;29
6.1;Introduction;29
6.2;CIF’s Basic Abstractions: Domains, Realms and Configurations;31
6.2.1;Overview;31
6.2.2;Domains;32
6.2.3;Realms;34
6.2.4;Configurations;36
6.2.5;CIF Syntax;36
6.3;Application Case Study;37
6.3.1;Case Study Overview;37
6.3.2;Using CIF’s Abstractions;38
6.3.3;Using CIF in a Team-Based Software Development Environment;40
6.4;Implementation;41
6.5;Related Work;43
6.6;Conclusion;44
6.7;References;45
7;A Diagrammatic Formalisation of MOF-Based Modelling Languages;48
7.1;Introduction;48
7.2;Motivation;49
7.2.1;Constraints in UML;51
7.3;Diagram Predicate Framework;52
7.3.1;Syntax of Diagrammatic Specifications;53
7.3.2;Constraints in DPF;53
7.3.3;Semantics of Diagrammatic Specifications;55
7.4;MOF-Based Modelling Languages;59
7.4.1;The 4-Layered Modelling Architecture;59
7.4.2;Modelling Formalisms;60
7.4.3;Meta-formalism and Reflexive (Meta)Models;61
7.5;Case-Study: Formalisation of EMF;62
7.6;Related Work;64
7.7;Conclusion and Future Work;65
7.8;References;66
8;Designing Design Constraints in the UML Using Join Point Designation Diagrams;68
8.1;Introduction;68
8.2;Motivation;69
8.3;Problem Statement;71
8.4;Specifying Design Constraints;73
8.4.1;Join Point Designation Diagrams (JPDDs);73
8.4.2;Designing Constraints Using JPDDs;76
8.5;Revisiting the Problem;80
8.6;Tool Support;82
8.7;Related Work;82
8.8;Discussion and Conclusion;84
8.9;References;85
9;Stream-Based Dynamic Compilation for Object-Oriented Languages;88
9.1;Introduction;88
9.2;Trace Trees;89
9.3;Compiling Traces Trees with Tree Serialization;90
9.3.1;Compilation Pipeline;91
9.3.2;Object-OrientedModeling: Instruction Class Hierarchy;92
9.3.3;Filter Pattern;94
9.3.4;Baseline Compiler;94
9.3.5;Optimizing Compiler;97
9.4;Parallel Compilation and Parallel Pipelining;99
9.5;Benchmarks;100
9.6;Related Work;102
9.7;Conclusions and Outlook;104
9.8;References;105
10;Algebraic Semantics of OCL-Constrained Metamodel Specifications;107
10.1;Introduction;107
10.1.1;An Example: Architectural Style Preservation;108
10.2;Preliminaries;110
10.2.1;Maude;111
10.3;Algebraic Semantics of MOF Metamodels;113
10.4;Algebraic Semantics of OCL Expressions;114
10.4.1;Algebraic Executable Semantics of Meaningful OCL Expressions;115
10.5;Algebraic Executable Semantics of Metamodel Specifications;117
10.5.1;Metamodel Specifications;117
10.5.2;Algebraic Executable Semantics of Metamodel Specifications;117
10.5.3;MOMENT2-OCL;119
10.6;Dynamic Analysis with OCL Invariants;119
10.7;Related Work;122
10.8;Conclusions and Future Work;123
10.9;References;124
11;Specifying and Composing Concerns Expressed in Domain-Specific Modeling Languages;127
11.1;Introduction;127
11.2;Problem Statement;128
11.2.1;Introduction;128
11.2.2;Concern Composition;129
11.3;Concern Composition Framework;130
11.3.1;Asymmetric Approach Using a GPML;130
11.3.2;Composition Application;131
11.4;Case Study;132
11.4.1;Overview of the Method;132
11.4.2;Conceptual Instantiation of the Concern Composition Framework;133
11.4.3;Define Base Model;133
11.4.4;Define Access Control Model;134
11.4.5;Define Access Control Interface;136
11.4.6;Define Hypertext Model;137
11.4.7;Specify Base-Access Control Composition Model;137
11.4.8;Specify Base-User Interface Composition Model;138
11.4.9;Generate and Manually Complete Code;138
11.5;Discussion and Evaluation;139
11.5.1;Intraspace Compositions;139
11.5.2;Interspace Compositions;140
11.6;Related Work;142
11.6.1;Domain Specific AOP Languages;142
11.6.2;AOM Approaches;143
11.6.3;Other Approaches;143
11.7;Conclusions and Future Work;144
11.8;References;144
12;Early Crosscutting Metrics as Predictors of Software Instability;147
12.1;Introduction;147
12.2;Characterizing and Identifying Crosscutting Concerns;148
12.2.1;A Conceptual Framework for Crosscutting;149
12.2.2;Identification of Crosscutting;150
12.3;Concern-Oriented Metrics for Early Development Assessment;150
12.3.1;The MobileMedia System;150
12.3.2;Metrics for Scattering;152
12.3.3;Metrics for Tangling;153
12.3.4;Metrics for Crosscutting;153
12.4;Evaluation and Discussion;155
12.4.1;Survey of Related Metrics;155
12.4.2;Internal Validation;156
12.4.3;External Validation;160
12.5;Related Works;164
12.6;Conclusions and Future Work;165
12.7;References;166
13;Extensibility in Model-Based Business Process Engines;168
13.1;Introduction;168
13.2;Strategies for Workflow Flexibility and Extensibility;169
13.3;The Cumbia Platform;171
13.3.1;The Control Concern and XPM;172
13.4;Extensibility in Cumbia;175
13.4.1;Extensibility in a Concern: Extended Element Behavior;175
13.4.2;Extensibility in a Concern: New Element;175
13.4.3;Extensibility with Additional Concerns;176
13.5;Extending a Workflow Engine;178
13.5.1;Extending PaperXpress: Storing the Article Contents in a Remote Repository;180
13.5.2;Extending PaperXpress: Revision Control for Article Sections;181
13.5.3;Extending PaperXpress: Supporting Several Authors;183
13.6;Conclusions;184
13.7;References;185
14;Guaranteeing Syntactic Correctness for All Product Line Variants: A Language-Independent Approach;186
14.1;Introduction;186
14.2;Taxonomy of Errors in Software Product Lines and Related Work;187
14.3;Checking Syntactic Correctness of Java SPLs;190
14.4;Generalizing CIDE beyond Java;193
14.4.1;Generalizing Correctness Rules: The gCIDE Model;193
14.4.2;Automating Language Plug-in Creation;195
14.5;Experience;198
14.6;Discussion: Flexibility vs. Safety;200
14.7;Perspective: Language-Independent Checks beyond Syntax;202
14.8;Conclusion;203
14.9;References;204
15;A Sound and Complete Program Logic for Eiffel;206
15.1;Introduction;206
15.2;A Semantics for Eiffel;207
15.2.1;The Source Language;207
15.2.2;The Memory Model;208
15.2.3;Operational Semantics;209
15.3;A Program Logic for Eiffel;215
15.3.1;Basic Rules;217
15.3.2;Routine and Routine Invocation Rules;218
15.3.3;Exception Handling;219
15.3.4;Once Routines;219
15.4;Example;220
15.5;Soundness and Completeness;220
15.6;Related Work;221
15.7;Lessons Learned;222
15.8;References;224
16;A Coding Framework for Functional Adaptation of Coarse-Grained Components in Extensible EJB Servers;226
16.1;Introduction;226
16.2;Designing Is with Reusable Views;227
16.2.1;The Model Level;227
16.2.2;The Architectural Level;229
16.3;An EJB Coding Framework for Adaptable Coarse-Grained View Components;232
16.3.1;Description of Reusable View Components;233
16.3.2;Checking and Archiving Steps;234
16.4;Server Facilities;235
16.5;Related Works;238
16.6;Conclusion;239
16.7;References;239
17;A Leasing Model to Deal with Partial Failures in Mobile Ad Hoc Networks;242
17.1;Introduction;242
17.2;Leasing in Mobile Ad Hoc Networks;243
17.2.1;Running Example: The Mobile Music Player;244
17.2.2;Analysis;245
17.2.3;Related Work;246
17.3;Leased Object References;248
17.4;Leased Object References in AmbientTalk;251
17.4.1;AmbientTalk in a Nutshell;251
17.4.2;Leasing in AmbientTalk;252
17.4.3;Language Constructs for Leasing Patterns;252
17.4.4;Integrating Leasing with Future-Type Message Passing;254
17.4.5;Supporting Expiration Handling;255
17.5;Implementation;256
17.5.1;Leased Object References;256
17.6;Discussion;259
17.7;Conclusion and Future Work;261
17.8;References;262
18;Reusing and Composing Tests with Traits;263
18.1;The Case;263
18.2;Illustrating the Problem;265
18.2.1;xUnit in a Nutshell;265
18.2.2;Analyzing the Squeak Collection Library Tests;266
18.3;Experimental Context: Two Large Libraries;267
18.3.1;Streams;267
18.3.2;The Varieties of Collections;268
18.4;Experimental Process;269
18.5;Selected Examples;271
18.5.1;Test Traits by Example;271
18.5.2;Composing Test Cases;271
18.5.3;Combining Inheritance and Trait Reuse;273
18.6;Results;274
18.6.1;In the Nile Stream Library;274
18.6.2;In the Collection Library;275
18.6.3;What Did We Gain?;277
18.7;Discussion;278
18.8;Related Work;280
18.8.1;Inheritance-Based Test Class Reuse;280
18.8.2;Parametrized Test Classes in JUnit 4.0;281
18.9;Conclusion;282
18.10;References;282
19;Flow-Centric, Back-in-Time Debugging;283
19.1;Introduction;283
19.2;Motivating Example;284
19.3;Limitations of Current Back-in-Time Debuggers;286
19.4;$Compass$: A Flow-Centric Back-in-Time Debugger;289
19.4.1;Navigating Method Execution Traces;290
19.4.2;Navigating Object Flows;291
19.5;Flow-Centric Debugging in Action;292
19.6;Implementation: A Flow-Centric Debugging Metamodel;295
19.7;Conclusions and Future Work;297
19.8;References;298
20;A Classification Framework for Pointcut Languages in Runtime Monitoring;300
20.1;Introduction;300
20.2;Semantics and Joinpoint Models;301
20.2.1;The Semantics of the Base Language;302
20.2.2;Joinpoint Models;302
20.2.3;Example: A simple OO Language;303
20.2.4;Classification of Joinpoint Models;305
20.3;Pointcuts;306
20.3.1;Pointcuts and Matching;306
20.3.2;Pointcut Languages;307
20.3.3;Example Pointcut Languages;308
20.4;Comparing Pointcut Languages;309
20.4.1;Comparison of Joinpoint Abstractions;309
20.4.2;Comparison of Joinpoint Models;310
20.4.3;Criteria for the Comparison of Pointcut Languages;310
20.4.4;A Methodology for Language Comparison;312
20.5;Discussion;313
20.5.1;Shadows and Optimization;313
20.5.2;Observational Equivalence;314
20.5.3;Advice and Context Binding;314
20.6;Related Work;316
20.7;Conclusions;317
20.8;References;317
21;Fast Simulation Techniques for Design Space Exploration;319
21.1;Introduction;319
21.2;The DIPLODOCUS Environment in a Nutshell;320
21.2.1;Methodology;321
21.2.2;Toolkit;322
21.3;Modeling SoCs with DIPLODOCUS;323
21.3.1;Application Modeling;323
21.3.2;Architecture Modeling;326
21.3.3;Mapping of Applications on Architectures;326
21.4;Fast Simulation Techniques;328
21.4.1;Basic Principles;328
21.4.2;Example Illustrating the Main Scheduler;330
21.4.3;Transactions and the Timestamp Policy;330
21.4.4;Simulation Phases;332
21.5;Experimental Results;333
21.6;Related Work;334
21.7;Conclusions and Future Work;337
21.8;References;337
22;PyGirl: Generating Whole-System VMs from High-Level Prototypes Using PyPy;339
22.1;Introduction;339
22.2;PyPy in a Nutshell;340
22.2.1;The Interpreter;341
22.2.2;The Translation Toolchain;342
22.2.3;RPython;344
22.3;Game Boy Technical Details;344
22.3.1;Hardware Pieces;345
22.4;PyGirl Implementation;346
22.4.1;Source Implementation;346
22.4.2;From Java to Python;347
22.4.3;Translation;351
22.5;Performance Evaluation;353
22.5.1;Benchmark Details;354
22.5.2;Runtime Optimization Comparison;354
22.6;Future Work;356
22.6.1;Future Work for the Game Boy VM PyGirl;356
22.6.2;Future Work for PyPy;356
22.7;Conclusion;356
22.8;References;357
23;Using Grammarware Languages to Define \Operational Semantics of Modelled Languages;359
23.1;Introduction;359
23.2;General Approach;361
23.3;Integrating ASMs into Modelware;363
23.4;Conclusion;365
23.5;References;366
24;Automatic Generation of Integrated Formal Models Corresponding to UML System Models;368
24.1;Introduction;368
24.2;CSP || B;369
24.3;Generating CSP||B from UML;370
24.3.1;Transformations to CSP;370
24.3.2;Transformations to B;374
24.4;Experiences with iUML and Epsilon;376
24.5;Related Work;376
24.6;Conclusion and Future Work;376
24.7;References;377
25;Author Index;379




