Catálogo de publicaciones - libros

Compartir en
redes sociales


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

Información sobre derechos de publicación

© Springer-Verlag Berlin Heidelberg 2006

Tabla de contenidos

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

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

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

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

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

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

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

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

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

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