Catálogo de publicaciones - libros
Generative and Transformational Techniques in Software Engineering: International Summer School, GTTSE 2005, Braga, Portugal, July 4-8, 2005. Revised Papers
Ralf Lämmel ; João Saraiva ; Joost Visser (eds.)
En conferencia: International Summer School on Generative and Transformational Techniques in Software Engineering (GTTSE) . Braga, Portugal . July 4, 2005 - July 8, 2005
Resumen/Descripción – provisto por la editorial
No disponible.
Palabras clave – provistas por la editorial
No disponibles.
Disponibilidad
| Institución detectada | Año de publicación | Navegá | Descargá | Solicitá |
|---|---|---|---|---|
| No detectada | 2006 | SpringerLink |
Información
Tipo de recurso:
libros
ISBN impreso
978-3-540-45778-7
ISBN electrónico
978-3-540-46235-4
Editor responsable
Springer Nature
País de edición
Reino Unido
Fecha de publicación
2006
Información sobre derechos de publicación
© Springer-Verlag Berlin Heidelberg 2006
Cobertura temática
Tabla de contenidos
doi: 10.1007/11877028_1
A Tutorial on Feature Oriented Programming and the AHEAD Tool Suite
Don Batory
Feature oriented programming (FOP) is the study of feature mod ularity and its use in program synthesis. AHEAD is a theory of FOP that is based on a fundamental concept of generative programming that functions map programs. This enables the design of programs to be expressed compo sitionally as algebraic expressions, which are suited for automated analysis, manipulation, and program synthesis. This paper is a tutorial on FOP and AHEAD. We review AHEAD’s theory and the tool set that implements it.
Palabras clave: Propositional Formula; Automatic Programming; Feature Diagram; Equation File; Java File.
I - Tutorials | Pp. 3-35
doi: 10.1007/11877028_2
Model Driven Engineering: An Emerging Technical Space
Jean Bézivin
As an emerging solution to the handling of complex and evolving software systems, Model Driven Engineering (MDE) is still very much in evolution. The industrial demand is quite high while the research answer for a sound set of foundation principles is still far from being stabilized. Therefore it is important to provide a current state of the art in MDE, describing what its origins are, what its present state is, and where it seems to be presently leading. One important question is how MDE relates to other contemporary technologies. This tutorial proposes the ”technical space” concept to this purpose. The two main objectives are to present first the basic MDE principles and second how these principles may be mapped onto modern platform support. Other issues that will be discussed are the applicability of these ideas, concepts, and tools to solve current practical problems. Various organizations and companies (OMG, IBM, Microsoft, etc.) are currently proposing several environments claiming to support MDE. Among these, the OMG MDA^TM(Model Driven Architecture) has a special place since it was historically one of the original proposals in this area. This work focuses on the identification of basic MDE principles, practical characteristics of MDE (direct representation, automation, and open standards), original MDE scenarios, and discussions of suitable tools and methods.
Palabras clave: Model Driven Engineering; MDE; MDA; Metamodeling; Technical Spaces.
I - Tutorials | Pp. 36-64
doi: 10.1007/11877028_3
Program Transformation with Reflection and Aspect-Oriented Programming
Shigeru Chiba
A meta-programming technique known as reflection can be regarded as a sophisticated programming interface for program transformation. It allows software developers to implement various useful program transformation without serious efforts. Although the range of program transformation enabled by reflection is quite restricted, it covers a large number of interesting applications. In particular, several non-functional concerns found in web-application software, such as distribution and persistence, can be implemented with program transformation by reflection. Furthermore, a recently emerging technology known as aspect-oriented programming (AOP) provides better and easier programming interface than program transformation does. One of the roots of AOP is reflection and thus this technology can be regarded as an advanced version of reflection. In this tutorial, we will discuss basic concepts of reflection, such as compile-time reflection and runtime reflection, and its implementation techniques. The tutorial will also cover connection between reflection and aspect-oriented programming.
Palabras clave: Program Transformation; Logging Object; Application Framework; Partial Evaluator; Public Class.
I - Tutorials | Pp. 65-94
doi: 10.1007/11877028_4
The Transformational Approach to Database Engineering
Jean-Luc Hainaut
In the database engineering realm, the merits of transformational approaches, that can produce in a systematic way correct, compilable and efficient database structures from abstract models, has long be recognized. Transformations that are proved to preserve the correctness of the source specifications have been proposed in virtually all the activities related to data structure engineering: schema normalization, logical design, schema integration, view derivation, schema equivalence, data conversion, reverse engineering, schema optimization, wrapper generation and others. This paper addresses both fundamental and practical aspects of database transformation techniques. The concept of transformation is developed, together with its properties of semantics-preservation (or reversibility). Major database engineering activities are redefined in terms of transformation techniques, and the impact on CASE technology is discussed. These principles are applied to database logical design and database reverse engineering. They are illustrated by the use of DB-MAIN, a programmable CASE environment that provides a large transformational toolkit.
Palabras clave: Conceptual Schema; Entity Type; Relationship Type; Transformational Approach; Logical Schema.
I - Tutorials | Pp. 95-143
doi: 10.1007/11877028_5
Program Optimizations and Transformations in Calculation Form
Zhenjiang Hu; Tetsuo Yokoyama; Masato Takeichi
The world of program optimization and transformation takes on a new fascination when viewed through the lens of program calculation. Unlike the traditional fold/unfold approach to program transformation on arbitrary programs, the calculational approach imposes restrictions on program structures, resulting in some suitable calculational forms such as homomorphisms and mutumorphisms that enjoy a collection of generic algebraic laws for program manipulation. In this tutorial, we will explain the basic idea of program calculation, demonstrate that many program optimizations and transformations, such as the optimization technique known as loop fusion and the parallelization transformation, can be concisely reformalized in calculational form, and show that program transformation in calculational forms is of higher modularity and more suitable for efficient implementation.
Palabras clave: Program Transformation; Program Calculation; Program Optimization; Meta Programming; Functional Programming.
I - Tutorials | Pp. 144-168
doi: 10.1007/11877028_6
Mappings Make Data Processing Go ’Round
Ralf Lämmel; Erik Meijer
Whatever programming paradigm for data processing we choose, data has the tendency to live on the other side or to eventually end up there. The major paradigms for data processing are Cobol, object, relational and XML; each paradigm offers many facets and many versions; each paradigm provides specific forms of data models (object models, relational schemas, XML schemas, etc.). Each data-processing application depends on a horde of interrelated data models and artifacts that are derived from data models (such as data-access layers). Such conglomerations of data models are challenging due to paradigmatic impedance mismatches, performance requirements, loose-coupling requirements, and others. This ubiquitous problem calls for a good understanding of techniques for mappings between data models, actual data, and operations on data. This tutorial lists and discusses mapping scenarios, mapping techniques, impedance mismatches and research challenges regarding mappings.
Palabras clave: Data processing; Mapping; XML data binding; Object-XML mapping; Object-relational mapping; Cross-paradigm impedance mismatch; Data modeling; Data access; Loose coupling; Software evolution.
I - Tutorials | Pp. 169-218
doi: 10.1007/11877028_7
On the Use of Graph Transformations for Model Refactoring
Tom Mens
Model-driven software engineering promotes the use of models and transformations as primary artifacts. Several formalisms can be used for the specification of model transformations. We propose to represent models as graphs, and model transformations as graph transformations. In particular, we focus on the activity of model refactoring, and show how graph transformation theory can provide formal support for this activity. We also show how such support can be implemented in state-of-the-art graph transformation tools such as AGG and Fujaba , and provide two concrete experiments. Critical pair analysis in AGG enables the analysis of dependencies between model refactorings. The round-trip engineering facility of Fujaba enables the automatic generation of code for model refactorings.
Palabras clave: Model Transformation; Production Rule; Class Diagram; Graph Transformation; Critical Pair.
I - Tutorials | Pp. 219-257
doi: 10.1007/11877028_8
Forms2Net – Migrating Oracle Forms to Microsoft .NET
Luis Andrade; João Gouveia; Miguel Antunes; Mohammad El-Ramly; Georgios Koutsoukos
Forms2Net is an ATX Software commercial reengineering tool that automatically converts Oracle Forms applications to the equivalent .NET (C#) ones, with approximately 75% rate of automatic conversion. From the reengineering and transformation theoretical viewpoint, Forms2Net falls in the general category of language-platform conversion tools. As theory and practice indicate, for such tools to be effective, there are two major issues that must be handled: (a) the resolution of the semantic gap between the pair of source-target languages and (b) the resolution of the dependencies (e.g., API dependencies) on functionalities provided by default by the source platform or on programming idiosyncrasies of the source platform (in this case Oracle Forms). This paper presents the important practical aspects of Forms2Net and the underlying technology. We discuss the semantic gap between Oracle Forms and .NET forms and the design principles and solution strategies used to bridge this gap.
Palabras clave: Event Handler; Target Architecture; Code Pattern; Converted Code; Architectural Mapping.
II - Technology Presentations | Pp. 261-277
doi: 10.1007/11877028_9
Applications of the Asf+Sdf Meta-Environment
M. G. J. van den Brand
Generic language technology research focuses on the development of fundamental techniques for language processing. The Asf + Sdf Meta-Environment, an interactive development environment for the automatic generation of interactive systems, is an example of research in this field. The Meta-Environment has been applied in various projects in order to enable the development of high quality tools for the analysis and transformation of large software systems written in languages such as C, Java, Cobol, and PL/I. The Meta-Environment offers the interactive construction of language definitions and the generation of tools given these definitions. Over the years, this system has been used in a variety of academic and industrial projects ranging from formal program manipulation to conversion of industrial Cobol systems.
Palabras clave: Parse Tree; Program Transformation; Concrete Syntax; Attribute Grammar; Abstract Syntax Tree.
II - Technology Presentations | Pp. 278-296
doi: 10.1007/11877028_10
MetaBorg in Action: Examples of Domain-Specific Language Embedding and Assimilation Using Stratego/XT
Martin Bravenboer; René de Groot; Eelco Visser
General-purpose programming languages provide limited facilities for expressing domain-specific concepts in a natural manner. All domain concepts need to be captured using the same generic syntactic and semantic constructs. Generative programming methods and program transformation techniques can be used to overcome this lack of abstraction in general-purpose languages. In this tutorial we describe the MetaBorg method for embedding domain-specific languages, tailored syntactically and semantically to the application domain at hand, in a general-purpose language. MetaBorg is based on Stratego/XT, a language and toolset for the implementation of program transformation systems, which is used for the definition of syntactic embeddings and assimilation of the embedded constructs into the surrounding code. We illustrate MetaBorg with three examples. JavaSwul is a custom designed language for implementing graphical user-interfaces, which provides high-level abstractions for component composition and event-handling. JavaRegex is a new embedding of regular expression matching and string rewriting. JavaJava is an embedding of Java in Java for generating Java code. For these cases we show how Java programs in these domains become dramatically more readable, and we give an impression of the implementation of the language embeddings.
Palabras clave: Regular Expression; Menu Item; Type Checker; Abstract Syntax Tree; Host Language.
II - Technology Presentations | Pp. 297-311