Stuikys / Štuikys / Damasevicius | Meta-Programming and Model-Driven Meta-Program Development | E-Book | www.sack.de
E-Book

E-Book, Englisch, Band 5, 326 Seiten

Reihe: Advanced Information and Knowledge Processing

Stuikys / Štuikys / Damasevicius Meta-Programming and Model-Driven Meta-Program Development

Principles, Processes and Techniques
2013
ISBN: 978-1-4471-4126-6
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark

Principles, Processes and Techniques

E-Book, Englisch, Band 5, 326 Seiten

Reihe: Advanced Information and Knowledge Processing

ISBN: 978-1-4471-4126-6
Verlag: Springer
Format: PDF
Kopierschutz: 1 - PDF Watermark



Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques presents an overall analysis of meta-programming, focusing on insights of meta-programming techniques, heterogeneous meta-program development processes in the context of model-driven, feature-based and transformative approaches.The fundamental concepts of meta-programming are still not thoroughly understood, in this well organized book divided into three parts the authors help to address this. Chapters include: Taxonomy of fundamental concepts of meta-programming; Concept of structural heterogeneous meta-programming based on the original meta-language; Model-driven concept and feature-based modeling to the development process of meta-programs; Equivalent meta-program transformations and metrics to evaluate complexity of feature-based models and meta-programs; Variety of academic research case studies within different application domains to experimentally verify the soundness of the investigated approaches.Both authors are professors at Kaunas University of Technology with 15 years research and teaching experience in the field. Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques is aimed at post-graduates in computer science and software engineering and researchers and program system developers wishing to extend their knowledge in this rapidly evolving sector of science and technology.

Stuikys / Štuikys / Damasevicius Meta-Programming and Model-Driven Meta-Program Development jetzt bestellen!

Weitere Infos & Material


1;Preface;6
2;Acknowledgements;9
3;Contents;10
4;Part I ;17
4.1;Chapter
1 Introduction;18
4.1.1;1.1 What Is Meta-Programming?;18
4.1.2;1.2 Origins of Meta-Programming and Its Evolution;20
4.1.3;1.3 Other Definitions of Meta-Programming;22
4.1.4;1.4 Why Is Meta-Programming Needed?;23
4.1.5;1.5 Meta-Programming as a Higher-Level Thinking Paradigm to Develop Systems;26
4.1.6;1.6 The Topics This Book Addresses;26
4.1.7;1.7 Summary and Concluding Remarks;27
4.1.8;1.8 Exercise Questions;28
4.1.9;References;28
4.2;Chapter
2 Taxonomy of Fundamental Concepts of Meta-Programming;31
4.2.1;2.1 What Is Taxonomy?;31
4.2.2;2.2 Fundamental Concepts of Meta-Programming;31
4.2.2.1;2.2.1 Transformation;32
4.2.2.2;2.2.2 Generation;33
4.2.2.3;2.2.3 Meta-Program;33
4.2.2.4;2.2.4 Levels of Abstraction;34
4.2.2.5;2.2.5 Generalization;35
4.2.2.6;2.2.6 Separation of Concerns;35
4.2.2.7;2.2.7 Reflection;36
4.2.2.8;2.2.8 Metadata;36
4.2.3;2.3 Taxonomy of Meta-Programming Concepts;36
4.2.4;2.4 Analysis of Meta-Programming Sources;39
4.2.5;2.5 What Can One Learn from Meta-Programming Taxonomy?;39
4.2.6;2.6 Summary;42
4.2.7;2.7 Exercise Questions;42
4.2.8;References;42
4.3;Chapter
3 A Background of Meta-Programming Techniques;44
4.3.1;3.1 Introduction;44
4.3.2;3.2 Preliminary Principles;45
4.3.3;3.3 Fundamental Principles of Meta-Programming;46
4.3.3.1;3.3.1 Separation of Concepts;46
4.3.3.2;3.3.2 Taxonomy Axes to Describe Relationships Between Concepts;48
4.3.3.3;3.3.3 Levels of Abstractions and Meta-Programming;50
4.3.3.4;3.3.4 Integration of Concepts;51
4.3.4;3.4 Process-Based Relationships of Meta-Programming Concepts;52
4.3.5;3.5 Multidimensional Separation of Concepts and Meta-Programming;54
4.3.6;3.6 Representation of Meta-Programming Concepts Using Feature Diagrams: MDSoC View;56
4.3.7;3.7 Summary and Evaluation;58
4.3.8;3.8 Exercise Questions;59
4.3.9;References;59
4.4;Chapter
4 Homogeneous Meta-Programming Techniques with Case Study;61
4.4.1;4.1 Introduction;61
4.4.2;4.2 Language-Independent Aspects of Homogeneous Meta-Programming;62
4.4.3;4.3 Terminology, Taxonomy and Formal Description of Homogeneous Meta-Programming Domain;64
4.4.3.1;4.3.1 Functional Homogeneous Meta-Programming;64
4.4.3.2;4.3.2 Structural Homogeneous Meta-Programming;67
4.4.3.3;4.3.3 Mixed Homogeneous Meta-Programming;69
4.4.4;4.4 Homogeneous Meta-Programming in Java;70
4.4.4.1;4.4.1 Basic Built-In Abstractions;70
4.4.4.2;4.4.2 Taxonomy of Homogeneous Meta-Programming Techniques in Java;71
4.4.4.3;4.4.3 Functional Homogeneous Meta-Programming Techniques;72
4.4.4.4;4.4.4 Structural Homogeneous Meta-Programming Techniques;74
4.4.5;4.5 Homogeneous Meta-Programming in VHDL;78
4.4.5.1;4.5.1 Similarities and Differences Between VHDL and General-Purpose Programming Languages (GPLs);78
4.4.5.2;4.5.2 Component Generalization Framework in VHDL;79
4.4.6;4.6 Case Study: Development of Generic GATE Component in VHDL;80
4.4.6.1;4.6.1 Formulation of Requirements;80
4.4.6.2;4.6.2 Development of Generic Interface;81
4.4.6.3;4.6.3 Development of Generic Architecture;83
4.4.6.4;4.6.4 How Generic Component Is Used to Compose a Higher-Level Component/System;85
4.4.7;4.7 Summary;85
4.4.8;4.8 Exercise Questions;86
4.4.9;References;87
4.5;Chapter
5 Structural Heterogeneous Meta-Programming;90
4.5.1;5.1 Introduction;90
4.5.2;5.2 Analysis of Structural Meta-Programming;90
4.5.3;5.3 Basics of Heterogeneous Meta-Programming;92
4.5.3.1;5.3.1 Explicit Separation of Concerns: A Two-Dimensional Model;93
4.5.3.2;5.3.2 Integration of Separated Concerns;95
4.5.3.3;5.3.3 Component Instance Models;97
4.5.3.4;5.3.4 Generic Component Models;98
4.5.4;5.4 Pre-Requirements for Meta-Languages;99
4.5.5;5.5 Summary, Evaluation and Conclusions;102
4.5.6;5.6 Exercise Questions;102
4.5.7;References;103
4.6;Chapter
6 Open PROMOL: A Meta-Language for Heterogeneous Meta-Programming;104
4.6.1;6.1 Introduction and Motivation;104
4.6.2;6.2 What Concepts Does the Language Implement?;105
4.6.3;6.3 Basic Features of the Syntax and Semantics;108
4.6.4;6.4 Main Capabilities of the Language;108
4.6.5;6.5 Case Study: VHDL Code Modification via Widening, Narrowing and Isolation;110
4.6.6;6.6 Comparative Studies;111
4.6.6.1;6.6.1 Open PROMOL vs. Java (C=+=+) as Meta-Languages;111
4.6.6.2;6.6.2 PHP as Meta-Language for Web-Based Applications;116
4.6.7;6.7 Evaluation of the Approach;118
4.6.8;6.8 Summary, Current State of the Language and Conclusions;119
4.6.9;6.9 Exercise Questions;120
4.6.10;References;121
5;Part II ;124
5.1;Chapter
7 A Framework to Deal with Heterogeneous Meta-Programming in Large: Meta-Program Lifecycle;125
5.1.1;7.1 Introduction;125
5.1.2;7.2 Preliminary Assumptions and Motivation;126
5.1.3;7.3 General Description of the Framework;127
5.1.4;7.4 Roles of Actors Within the Framework;129
5.1.5;7.5 Meta-Design, Design Spaces and Meta-Programming;131
5.1.6;7.6 Domain Variability Modelling and Meta-Programming;133
5.1.7;7.7 Design-for-Change, Context Modelling and Meta-Programming;134
5.1.8;7.8 Summary;135
5.1.9;7.9 Exercise Questions;135
5.1.10;References;136
5.2;Chapter
8 A Model-Driven View to Meta-Program Development Process;137
5.2.1;8.1 Introduction;137
5.2.2;8.2 Related Works;138
5.2.3;8.3 Framework for Model-Driven Analysis of Meta-Program Development;139
5.2.3.1;8.3.1 Basic Assumptions and Terminology;139
5.2.3.2;8.3.2 Description of the Framework;141
5.2.3.3;8.3.3 Meta-Model to Specify Problem Domain Abstractions;142
5.2.3.4;8.3.4 Instances of FD Meta-Model;144
5.2.3.4.1;8.3.4.1 Meta-Model of Meta-Program;145
5.2.3.4.2;8.3.4.2 Instance of the Meta-Program Meta-Model;146
5.2.3.5;8.3.5 Elements of the Instance of Meta-Program Meta-Model;147
5.2.4;8.4 Interpretation of Transformations;147
5.2.5;8.5 Requirements for Tools to Support (Semi-) Automatic Development of Meta-Programs;149
5.2.6;8.6 Summary and Evaluation;150
5.2.7;8.7 Exercise Questions;151
5.2.8;References;151
5.3;Chapter
9 Cognitive Insights into Feature Diagram Notation and Beyond;153
5.3.1;9.1 Introduction;153
5.3.2;9.2 Overview of Feature Variability Management Research;154
5.3.3;9.3 Introduction into Feature Diagrams;155
5.3.3.1;9.3.1 Feature Definitions and Original Context of Use;155
5.3.3.2;9.3.2 Feature Model;155
5.3.3.3;9.3.3 Feature Types;156
5.3.3.4;9.3.4 Feature Diagram Definition and Variants of Notation;157
5.3.3.5;9.3.5 Basic Set of Abstractions in Standard Feature Diagram;160
5.3.4;9.4 Extensions of Feature Diagrams;160
5.3.4.1;9.4.1 Ontology-Based Extension;160
5.3.4.2;9.4.2 Extension for Quality-Oriented Modelling;162
5.3.4.3;9.4.3 Feature Diagram Extension for Variation Sequence Modelling;166
5.3.4.4;9.4.4 Other Known Extensions of Feature Diagram Notation;173
5.3.5;9.5 Summary;175
5.3.6;9.6 Exercise Questions;175
5.3.7;References;176
5.4;Chapter
10 Meta-Programming Task Specification Using Feature-Based Patterns and Domain Program Scenarios;180
5.4.1;10.1 Introduction;180
5.4.2;10.2 Problem Statement;180
5.4.3;10.3 Binding the Task with Other Domains;182
5.4.3.1;10.3.1 Analysis of Feature-Based Modelling Research;182
5.4.3.2;10.3.2 Analysis of Program Understanding Research;183
5.4.4;10.4 Framework to Consider Meta-Program Specification Tasks;187
5.4.5;10.5 Concept of Feature-Based Patterns;189
5.4.5.1;10.5.1 Definitions;189
5.4.5.2;10.5.2 Elements of Feature Diagram Instance as Patterns;191
5.4.5.3;10.5.3 Some Properties of Patterns;193
5.4.6;10.6 Summary, Evaluation and Further Research;194
5.4.7;10.7 Exercise Questions;194
5.4.8;References;195
5.5;Chapter
11 Meta-Program Development as a Model Transformation Process;198
5.5.1;11.1 Introduction;198
5.5.2;11.2 Meta-Program Development Strategies;198
5.5.3;11.3 Transformation Tasks;199
5.5.4;11.4 Meta-Program Understanding and Concept of Multi-Stage Meta-Programming;200
5.5.4.1;11.4.1 Definition of Basic Terms;200
5.5.4.2;11.4.2 Understanding of One-Stage Meta-Programs;201
5.5.4.3;11.4.3 Understanding of Multi-Stage Meta-Programs;201
5.5.4.4;11.4.4 Static and Dynamic Analysis and Properties of Models for Understanding;204
5.5.5;11.5 Representation of Source Models;207
5.5.6;11.6 Representation of Target Model and Overall Design Process;209
5.5.7;11.7 Transformation Rules and Methodology;211
5.5.7.1;11.7.1 Stages of the Methodology;211
5.5.7.2;11.7.2 Transformation Rules with Example;211
5.5.8;11.8 Summary, Evaluation and Conclusions;215
5.5.9;11.9 Exercise Questions;215
5.5.10;References;216
5.6;Chapter
12 Complexity Evaluation of Feature Models and Meta-Programs;218
5.6.1;12.1 What Is Complexity?;218
5.6.2;12.2 Complexity Management;219
5.6.3;12.3 Complexity Metrics;220
5.6.4;12.4 Complexity Measures of Feature Models as Meta-Programs Specifications;222
5.6.5;12.5 Evaluation of Abstraction Levels;225
5.6.6;12.6 Complexity of Meta-Programs and Meta-Programming Techniques;230
5.6.7;12.7 Complexity Metrics of Heterogeneous Meta-Programs;231
5.6.7.1;12.7.1 Information Dimension: Relative Kolmogorov Complexity;231
5.6.7.2;12.7.2 Meta-language Dimension: Meta-language Richness;232
5.6.7.3;12.7.3 Graph Dimension: Cyclomatic Complexity;232
5.6.7.4;12.7.4 Algorithmic Complexity: Normalized Difficulty;233
5.6.7.5;12.7.5 Cognitive Complexity: Cognitive Difficulty;234
5.6.8;12.8 Complexity of Homogeneous Meta-Programming;234
5.6.9;12.9 Theoretical Validation of Complexity Metrics;236
5.6.10;12.10 Examples of Meta-Program Complexity Calculation;238
5.6.10.1;12.10.1 Complexity of Heterogeneous Meta-Programs;238
5.6.10.2;12.10.2 Complexity of Homogeneous Meta-Programs;240
5.6.11;12.11 Summary, Evaluation and Future Work;241
5.6.12;12.12 Exercise Questions;243
5.6.13;References;244
6;Part III ;247
6.1;Chapter
13 A Framework: How Can Heterogeneous Meta-Programs Be Further Generalized?;248
6.1.1;13.1 Introduction;248
6.1.2;13.2 A Framework to Analyse Generalization;249
6.1.2.1;13.2.1 Generalization Concept and Tasks;249
6.1.2.2;13.2.2 Why Structural Generalization Is Needed?;250
6.1.2.3;13.2.3 Why More Than Two Languages Are Needed?;252
6.1.2.4;13.2.4 More About the Language Aspects;252
6.1.2.5;13.2.5 Combining the Development and Evolution Stages Through Prediction and Anticipation;255
6.1.3;13.3 Summary;256
6.1.4;13.4 Exercise Questions;256
6.1.5;References;257
6.2;Chapter
14 Meta-Meta-Programming and Equivalent Transformations of Heterogeneous Meta-Programs;259
6.2.1;14.1 Introduction;259
6.2.2;14.2 Related Works;259
6.2.3;14.3 Definitions of Basic Terms;262
6.2.4;14.4 Transformation Tasks;268
6.2.5;14.5 Transformation Method;269
6.2.6;14.6 Transformation Properties;271
6.2.7;14.7 Theoretical Background and Formal Description;273
6.2.8;14.8 Transformation-Based Processes to Develop Multi-Stage Meta-Programs;276
6.2.9;14.9 Summary, Discussion and Evaluation;279
6.2.10;14.10 Conclusions;280
6.2.11;14.11 Exercise Questions;280
6.2.12;References;281
6.3;Chapter
15 Multi-Linguistic Aspects of Heterogeneous Meta-Programming in Web Applications;284
6.3.1;15.1 Introduction;284
6.3.2;15.2 A Survey of Technologies to Support Portal Development;284
6.3.3;15.3 Identification of Typical Web Components;286
6.3.4;15.4 Problem Statement;287
6.3.5;15.5 Properties of Web Component Instances;288
6.3.6;15.6 Web Component Generator Model;289
6.3.7;15.7 Analysis of Web Generators Designed Using Multi-Linguistic Meta-Programming;291
6.3.8;15.8 Summary, Evaluation and Conclusions;291
6.3.9;15.9 Exercise Questions;294
6.3.10;References;294
6.4;Chapter
16 Applications of Meta-Programming Methodology;296
6.4.1;16.1 Introduction;296
6.4.2;16.2 Meta-Programming in HW Design;297
6.4.3;16.3 Meta-Programming for Creating LOs for Teaching HW Design;298
6.4.4;16.4 Context-Related Modelling and Meta-Programming for Embedded SW Domain;302
6.4.5;16.5 Meta-Programming as Component Wrapping Technology;307
6.4.5.1;16.5.1 Communication-Based Design;308
6.4.5.2;16.5.2 Reliable System Design;313
6.4.6;16.6 Internet-Based Application of Meta-Programming;314
6.4.7;16.7 Summary and Evaluation;316
6.4.8;16.8 Exercise Questions;319
6.4.9;References;320
7;What Is on the Horizon?;322
8;Glossary;325
9;Index;327



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.