Transactions on Pattern Languages of Programming III 123 LNCS 7840 James Noble · Ralph Johnson Editors-in-Chief Journal Subline www.it-ebooks.info Lecture Notes in Computer Science 7840 Commenced Publication in 1973 Founding and Former Series Editors: Gerhard Goos, Juris Hartmanis, and Jan van Leeuwen Editorial Board David Hutchison Lancaster University, UK Takeo Kanade Carnegie Mellon University, Pittsburgh, PA, USA Josef Kittler University of Surrey, Guildford, UK Jon M. Kleinberg Cornell University, Ithaca, NY, USA Friedemann Mattern ETH Zurich, Switzerland John C. Mitchell Stanford University, CA, USA Moni Naor Weizmann Institute of Science, Rehovot, Israel Oscar Nierstrasz University of Bern, Switzerland C. Pandu Rangan Indian Institute of Technology, Madras, India Bernhard Steffen TU Dortmund University, Germany Madhu Sudan Microsoft Research, Cambridge, MA, USA Demetri Terzopoulos University of California, Los Angeles, CA, USA Doug Tygar University of California, Berkeley, CA, USA Moshe Y. Vardi Rice University, Houston, TX, USA Gerhard Weikum Max Planck Institute for Informatics, Saarbruecken, Germany www.it-ebooks.info James Noble Ralph Johnson Uwe Zdun Eugene Wallingford (Eds.) Transactions on Pattern Languages of Programming III 13 www.it-ebooks.info Editors-in-Chief James Noble Victoria University of Wellington, School of Engineering and Computer Science P.O. Box 600, Wellington 6140, New Zealand E-mail: kjx@ecs.vuw.ac.nz Ralph Johnson Siebel Center for Computer Science 201 North Goodwin Avenue, Urbana, IL 61801, USA E-mail: rjohnson@illinois.edu Managing Editors Uwe Zdun University of Vienna, Faculty of Computer Science Währingerstraße 29, 1090 Vienna, Austria E-mail: uwe.zdun@univie.ac.at Eugene Wallingford University of Northern Iowa, Department of Computer Science Cedar Falls, IA 50613, USA E-mail: wallingf@cs.uni.edu ISSN 0302-9743 (LNCS) e-ISSN 1611-3349 (LNCS) ISSN 1869-6015 (TPLOP) ISBN 978-3-642-38675-6 e-ISBN 978-3-642-38676-3 DOI 10.1007/978-3-642-38676-3 Springer Heidelberg Dordrecht London New York Library of Congress Control Number: 2013939834 CR Subject Classification (1998): D.2.11, D.2, D.3, D.1, K.6 © Springer-Verlag Berlin Heidelberg 2013 This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executedon a computersystem, for exclusive usebythe purchaser ofthe work. Duplicationofthis publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’s location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication does not imply, even in the absence of a specific statement, that such names are exempt from the relevant protective laws and regulations and therefore free for general use. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Typesetting: Camera-ready by author, data conversion by Scientific Publishing Services, Chennai, India Printed on acid-free paper Springer is part of Springer Science+Business Media (www.springer.com) www.it-ebooks.info Preface It is our pleasure to present the third volume of Springer’s LNCS Transactions on Pattern Languages of Programming. TPLOP aims to publish the best and most substantial work in design patterns, recognizing outstanding patterns and pattern languages, and making them available to the patterns community — and indeed, to the wider community of programmers and software developers. This volume — like all the volumes in TPLOP — contains revised and re- viewed articles that were first presented at one of the Pattern Languages of Pro- gramming (PLoP) conferences. Every paper submitted to a PLoP conference is shepherded by an experienced pattern writer who provides several rounds of detailed feedback to the authors. If the paper is considered ready, after the shep- herding is complete the paper will be accepted to the conference itself, where a group of pattern authors will read the paper in depth, provide detailed feedback to the authors, and discuss the paper in a structured writers workshop. After the conference, authors are expected to make another round of improvements to the paper, taking into account the findings of the workshop. Only then may the paper be eligible for consideration by TPLOP: Many papers have several rounds of shepherding and reviewing before they are ready. Every paper considered by TPLOP receives at least three reviews ab initio, from experts in the paper’s domain as well as pattern experts. Each article in this volume has been through this process before being accepted for publication in these Transactions. This third volume contains five papers. The first paper, from longtime pat- terns contributor Andreas R¨uping, is in the classic PLoP conference style: eight patterns that describe how data can be transformed as part of data migra- tion. The patterns are clear, concise, and immediately practically applicable. The following three papers are substantial collections of interrelated patterns, or pattern languages. Christian K¨oppe’s pattern language describes how to teach design patterns, drawing heavily upon Christopher Alexander’s A Pattern Lan- guage for form and presentation. Eduardo Guerra, Jerffeson de Souza, and Clovis Fernandes present eight patterns for building reflexive frameworks, in substan- tial detail, based on analyses of 14 successful systems. Andreas Ratzka organizes 18 patters for multimodal interaction design. These larger articles, containing many patterns, describing their interdependencies, and based on considerable analysis, typically draw together several shorter papers presented at different PLoP conferences. TPLOP has a particular role in recognizing and presenting thesemoresubstantialworks. The last paper, from Neil B. Harrison and Paris Avgeriou, reflects the ma- turity of the patterns movement in another way: Rather than presenting new patterns, this paper describes a technique for conducing architectural reviews of software systems based upon patterns. The paper then goes on to present the www.it-ebooks.info VI Preface results of an exploratory research study of applying pattern-based reviews to nine small software systems. Once again, we believe the papers in this volume collect and represent some of the best work that has been carried out in design patterns and pattern languages of programming over the last few years. We thank the conference shepherds, the workshop groups, and the TPLOP reviewers who have ensured we continue to maintain this standard. Finally, we thank the authors for sharing the fruits of their insights and experience. March 2013 James Noble Ralph Johnson Uwe Zdun Eugene Wallingford www.it-ebooks.info Organization Editorial Board Paris Avgeriou University of Groningen, The Netherlands Joe Bergin Pace University, New York, USA Robert Biddle Carleton University, Ottawa, Canada Grady Booch IBM, USA Frank Buschmann Siemens AG, Germany Jim Coplien Nordija, Denmark Ward Cunningham AboutUS, USA Jutta Eckstein Consultant, Germany Susan Eisenbach Imperial College London, UK Richard P. Gabriel IBM Research, USA Erich Gamma IBM, Switzerland Neil B. Harrison Utah Valley State College, USA Kevlin Henney Curbralan Ltd., UK Doug Lea SUNY Oswego, USA Mary Lynn Manns University of North Carolina at Asheville, USA Michael J. Pont The University of Leicester, UK Lutz Prechelt Free University Berlin, Germany Dirk Riehle SAP Research, SAP Labs LLC, USA Mary Beth Rosson Pennsylvania State University, USA Andreas Rueping Consultant, Germany Doug Schmidt Vanderbilt University, TN, USA Peter Sommerlad Institute for Software at HSR Rapperswil, Switzerland Jenifer Tidwell Consultant, USA Joseph W. Yoder Consultant, USA Reviewers Ademar Aguiar C´edric Bouhours Robert Biddle Jutta Eckstein Alexander Ernst Sebastian G¨unther Jan Hannemann Bob Hanmer Rich Hilliard Mary Lynn Manns Tommi Mikkonen Jeff Overbey Juha Parssinen Andreas Ratzka Linda Rising Stefan Sobernig Neelam Soundarajan Hiroshi Wada Rebecca Wirfs-Brock www.it-ebooks.info Table of Contents Transform! Patterns for Data Migration 1 Andreas R¨uping A Pattern Language for Teaching Design Patterns 24 Christian K¨oppe Pattern Language for the Internal Structure of Metadata-Based Frameworks 55 Eduardo Guerra, Jerffeson de Souza, and Clovis Fernandes User Interface Patterns for Multimodal Interaction 111 Andreas Ratzka Using Pattern-Based Architecture Reviews to Detect Quality Attribute Issues – An Exploratory Study 168 Neil B. Harrison and Paris Avgeriou Author Index 195 www.it-ebooks.info J. Noble et al. (Eds.): TPLOP III, LNCS 7840, pp. 1–23, 2013. © Springer-Verlag Berlin Heidelberg 2013 Transform! Patterns for Data Migration Andreas Rüping Sodenkamp 21 A, D-22337 Hamburg, Germany andreas.rueping@rueping.info www.rueping.info Abstract. When an existing application is replaced by a new one, its data has to be transferred from the old world to the new. This process, known as data migration, faces several important requirements. Data migration must be accurate, otherwise valuable data would be lost. It must be able to handle legacy data of poor quality. It must be efficient and reliable, so as not to jeopardise the launch of the new application. This paper presents a collection of patterns for handling a data migration effort. The patterns focus on the design of the migration code as well as on process issues. Introduction There are many reasons that may prompt an organisation to replace an existing application, usually referred to as the legacy system, by a new one. Perhaps the legacy system has become difficult to maintain and should therefore be replaced. Perhaps the legacy system isn’t even that old, but business demands still require some new functionality that turns out difficult to integrate. Perhaps technological advances make it possible to develop a new system that is more convenient and offers better usability. Whatever reason there is for the development of a new system, that system cannot go operational with an empty database. Some existing data has to be made available to the new application before it can be launched. In many cases the amount of data will be rather large; for typical business applications it may include product data, customer data, and the like. Since this data is valuable to the organisation that owns it, care must be taken to transfer it to the new application accurately. This is where data migration enters the scene. The data models of the old world and the new will probably not be the same; in fact the two could be fundamentally different. The objective of data migration is to extract data from the existing system, to re-format and re-structure it, and to upload it into the new system ([11], [2], [7], [8], [9], [10]). 1 1 Data migration is different from database migration. Database migration refers to the replacement of one database system by another, which may make some changes to database tables necessary for technical reasons. Database migration is outside the scope of this paper However, data migration includes the transfer of data from one data model to another. This is what this paper is about. www.it-ebooks.info 2 A. Rüping Migration projects typically set up a migration platform in between the legacy system and the target system. The migration platform is where all migration-related processing takes place, as Figure 1 illustrates. Similar diagrams can be found in the literature ([9], [8]). Fig. 1. Overall migration process The technical basis can vary a lot: • The migration platform often contains a copy of the legacy database (as indicated in the diagram), so that the live database remains undisturbed from any migration efforts. An alternative strategy is to extract the legacy data into flat files. • The migration platform may also contain a copy of the target database. • Various technologies can be used for the actual transformation, including Java programs, PL/SQL scripts, XML processing and more. While database vendors make tools available that cover most of the extraction and uploading functionality, the actual transformation usually requires custom software. The transformation depends heavily on the data models used, and so differs from one migration effort to the next. Migration projects involve quite a few risks. According to the literature ([11], [9], [10], [5], [6]), the most common risks include the following: • The legacy data might be complex and difficult to understand. • The legacy data might be of poor quality. • The amount of data can be rather large. • The target data model might still be subject to change. As a consequence, care must be taken for a migration project to be successful. A failed data migration could easily delay the launch of the new application. The patterns in this paper address these requirements. They demonstrate techniques and strategies that help meet the typical requirements of a data migration project. The patterns are targeted at software developers, architects and technical project leads alike. www.it-ebooks.info [...]... described, followed by another three diamonds The third part offers the solution (again in bold), the qualification of the pattern, the consequences of the pattern application — which are part of the resulting context — and a discussion of possible implementations In the final part of each pattern in italics, we present some known applications 1 This work focuses on the design patterns as described in [13], but... their related pattern parts can be found in nearly all pattern formats The described patterns are therefore applicable independent of the description format of the design patterns to be taught Although initially the patterns of this language were intended for application of teaching software design patterns only, it showed that some of the patterns are on a higher level/qualification These patterns actually... good design Abstraction The concept of a pattern is often not well understood by the students, as patterns are at a higher abstraction level than e.g programming language constructs or the graphical UML notations This higher abstraction level makes it harder to understand what a pattern is and how to apply it But if the overall concept of a pattern — and specifically that of a design pattern — is not understood,...Transform! Patterns for Data Migration 3 Fig 2 Overview of the patterns Figure 2 gives an overview of the patterns and briefly sketches the relationships between them Six patterns address the design of the migration code, while two patterns (those in the grey-shaded area) focus more on the data migration process I have mined these patterns from three migration projects in which I was... developer and consultant The first was the data migration made necessary by the introduction of a new life insurance system The second was the migration of the editorial content for an online catalogue for household goods from one content management system to another The third was the migration of customer data and 4 A Rüping purchase records for a web shop from an old application to a new one Although... patterns actually form true invariants in the context of teaching patterns of any domain These patterns are marked — using the notation as introduced by Alexander — with two asterisks The patterns which are only applicable in the context of teaching (software) design patterns, but form invariants in this domain, are marked with one asterisk The patterns which are only applicable in specific circumstances... solutions to their problems? (pattern 9) All patterns in this language are just parts of the whole language and should not be used in isolation Even if the application of separate patterns would add some value related to the learning objectives, the combination of the patterns will lead to a much deeper understanding in total: the whole is greater than the sum of its parts These patterns use a version of. .. publication of the book from the Gang of Four (GoF) [13] Many books and papers have been written since, introducing a wide range of patterns and pattern languages and covering diverse fields as design, architecture, requirements, processes, and many others Not much research on the successfulness of the application of these patterns exists, but practitioners often report that patterns are regularly mis- or... Heidelberg 2013 A Pattern Language for Teaching Design Patterns 25 the pattern concept” and that “such misunderstandings inevitably lead to inappropriate application and realization of the patterns themselves” [8] One part of this problem lies in the inappropriate teaching of the patterns [3, 10, 15–17, 22] To help in solving this problem we describe a pattern language for teaching design patterns This... reduce application down time during the FINAL MIGRATION (8) A powerful strategy is to apply INCREMENTAL TRANSFORMATION (7) Transform! Patterns for Data Migration 7 17 Incremental Transformation Context A TRIAL MIGRATION (6) has revealed how long the migration of the complete legacy data might take Problem How can you avoid unacceptable down times of your application while the data migration takes place? . purchaser ofthe work. Duplicationofthis publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’s location, in its current version, and permission for. LNCS Transactions on Pattern Languages of Programming. TPLOP aims to publish the best and most substantial work in design patterns, recognizing outstanding patterns and pattern languages, and. Transactions on Pattern Languages of Programming III 123 LNCS 7840 James Noble · Ralph Johnson Editors-in-Chief Journal Subline www.it-ebooks.info Lecture