EuroPLoP 2014 - List of published papers
Towards a pattern language for cooking: a generative approach to cooking Hitachi Isaku, Takashi Iba
This Paper will explore the possibilities that pattern languages have in the field of cooking. Cooking can be considered as a very simple form of design that many of goes through daily. By highlighting the similarities between cooking and architecture, we will show that pattern languages will enhance the creative process of cooking for all. We will introduce a generative approach to cooking where the process is guided both by a loose recipe and a network of patterns. As our first challenge for creating a pattern language for cooking, we have created a pattern language for sautéing, along by which we have a sample recipe to show how the patterns would support a person's cooking process.
Deriving a pattern language syntax for context-patterns Kristian Beckers, Stephan Faßbender, Maritta Heisel
In a previous publication we introduced a catalog of context-patterns. Each context pattern describes common structures and stakeholders for a specific domain. The common elements of the context were obtained from observations about the domain in terms of standards, domain specific-publications, and implementations. Whenever the domain of a system-to-be is already described by a context-pattern, one can use this context-pattern to elicit domain knowledge by instantiating the corresponding context-pattern. Moreover, we analyzed the common concepts in our context-patterns and created a meta-model to describe the relations between these concepts. This meta-model was the initial step towards a pattern language for context-patterns. In this work, we show the consequent next step for the definition of a pattern language syntax for context-patterns. Thus, we describe how to derive the connections between the existing context-pattern in a structured way and present the results.
Dream teams at the right place Christian Kohls
This paper will present two new patterns for creative thinking. Each pattern captures the appropriate context for the creative thinking tools, the reasons why the approach works in this context and provides examples of successful usage. Dream teams are mixtures of individuals who interact more actively as they share a common vision but come from different backgrounds. The right place refers to environments that fit to the individual needs of a person during her or his thinking processes. The patterns are part of a larger language of think tank tools for creative idea generation.
A process for pattern identification, authoring, and application Christoph Fehling, Johanna Barzen, Uwe Breitenbücher, Frank Leymann
The process to identify, author, and apply patterns is mostly performed manually by pattern experts. When performing pattern research in large domains involving many persons, the current state of the art of pattern research techniques, such as shepherding and writers' workshops, should be extended to a larger organizational process coordinating the work of all involved participants. This paper presents the process we followed to identify, author, and apply patterns in various domains involving multiple industry partners. Due to the diversity of these domains, we claim that the process is general enough to be applicable in other domains as well. This paper documents this process for use, discussion, further refinement, and evaluation in a larger pattern research community.
A meta-pattern and pattern form for context-patterns Kristian Beckers, Stephan Faßbender, Maritta Heisel, Santiago Suppan
In a previous EuroPlop publication we introduced a catalog of context-patterns. We described common structures and stakeholders for several different domains in our context-patterns. The common elements of the context were obtained from observations about the domain in terms of standards, domain specific-publications, and implementations. Whenever a system-to-be is already described by a context-pattern, one can use this context-pattern to elicit domain knowledge via instantiation of the context-pattern. Moreover, we analyzed the common concepts in our context-patterns and created a meta-model to describe the relations between these concepts. This meta-model was the initial step towards a pattern language for context-patterns. In this work, we show the consequent next step for the definition of a pattern language for context-patterns. In addition, we contribute a structured and guided meta-process for deriving and describing context-patterns, which relies on the previously introduced meta model. The meta process contains a pattern form for context-patterns, which helps to identify the structure of a particular context-pattern. We contribute a (context-) meta pattern, as well, which provides a basis for refinement into any given context-pattern. We illustrate our approach by describing a smart grid context-pattern, which is based on our experience with the industrial partners of the NESSoS project.
Beyond rational design patterns Till Schümmer, Joerg M. Haake, Wolfgang Stark
During the last decades, the pattern movement has been dominated by patterns describing the design of technology or matter, especially when it focused on the design of software or buildings. Positioned in the physical world, patterns are technical, full of formal instructions, and often building on a rational understanding of the world they act on. We argue that technical and formal pattern structures support the rational line of thought very well but also limit creativity of people applying the patterns. In contrast to this, a creative and performative account to design does at least not prevent the emergence of new structures not yet formalized in design patterns. In order to start a discussion about this distinction in the pattern community, this paper proposes eight theses that may serve as a research agenda towards a better understanding of the role of patterns for creative and performative design.
Creative education patterns: designing for learning by creating Yuji Harashima, Tetsuro Kubota, Takashi Iba
In this paper, we focused on the way of learning knowledge and skills "by" the practice of "creating" something new as a way to cultivate creativity and character, and proposed "Creative Education Patterns", as a tool to support education in the way. Here we present four patterns that focus on a creative project: Editing Discovery, Celebrate Together, Provoke for High Quality, and Open the Project. These patterns are meant for teachers. We think our patterns would be helpful for teachers who try to realize learning by creating, and to learners trying learning creativity.
Multi-tenancy application pattern for system administration support Roland Bijvank
Many quality aspects of software systems are addressed in the existing literature on software architecture patterns. But the aspect of system administration seems rather overlooked, even though it is perceived as important as other aspects. This work is in a certain way a sequel on our earlier paper 'Software Architecture Patterns for System Administration Support' and this paper will present a software architecture pattern that, when applied by software architects, support the work of system administrators by lowering the infrastructure costs and making their work more manageable. One pattern will be presented here: Multi-tenant Application.
Problem-oriented security patterns for requirements engineering Azadeh Alebrahim, Maritta Heisel
Security is one essential quality requirement that needs to be addressed during the software development process. While quality requirements such as security are supposed to be the architectural drivers, architecture solutions such as security patterns represent design decisions on the architecture and design levels that in turn might constrain quality requirements significantly. Thus, knowledge which is gained in the solution space, for example from security patterns, should be reflected in the requirements engineering to obtain sound architectures and correct requirements. We propose to reuse security patterns in the requirements engineering in a systematic manner to equip requirement models with security solution approaches early in the software development process. To this end, we propose problem-oriented security patterns. Each problem-oriented security pattern consists of a three-part graphical pattern representing the functional problem which describes the functional requirement annotated with a security requirement, the solution to the security requirement, and the composition of them. In addition, we provide a template that captures the affect of applying the security solution on the requirement models.
Pattern-based process for a legacy to SOA modernization roadmap Frank J. Frey, Carsten Hentrich, Uwe Zdun
Many organizations still operate their businessms which cause high maintenance costs and are difficult to change. After the hype about service-oriented architectures (SOAs) was gone, they were implemented successfully and helped replacing old legacy systems with flexible services, for example at large companies in the finance or logistics industry. While recent research and the pattern literature cover the technical aspects of SOA and the alignment between business and IT, defining and planning a roadmap for a SOA modernization program, which is essential for initiating such a program and getting the necessary commitment, has not been in the focus of research yet. Thus, we propose a design process for the definition of a high-level roadmap. It considers determining architectural decisions and planning decisions by selecting appropriate patterns and reference architectures. Furthermore we define a heuristic for the roadmap planning activities, because we see a lack of appropriate planning patterns. A case study explains how the roadmap design process has been applied in a large-scale industry project concerning a SOA modernization program of a global logistics provider. The pattern-based process should motivate pursuing further research about roadmap design processes and patterns and provide guidance for industry experts.
Patterns for hardware-independent development for embedded systems Wolfgang Raschke, Massimiliano Zilli, Stefan Orehovec, Erik Gera-Fornwald, Johannes Loinig, Christian Steger, Christian Kreiner
In embedded systems, different hardware architectures require additional effort for writing portable software. Generally, a Hardware Abstraction Layer (HAL) provides an abstraction for portable software. However, a HAL is a layer and does not support an abstraction of cross-cutting issues, such as data types. Such cross-cutting issues provide often some possibility for optimization parameters. In this paper we provide some patterns which help to mask such platform-dependent parameters. In this way, there is a defined point, where these platform-dependent parameters are inserted. The rest of the code is then abstracted and coded platform-independently. The platform-dependent parameters are then resolved during pre-processing and compilation. The described patterns have been mined and also applied in a large-scale industrial embedded software project. They have shown to cover most of the concerns that appear when platform-dependent optimizations shall be combined with platform-independent coding.
Automotive safety case pattern Georg Macher, Harald Sporer, Christian Kreiner
Automotive embedded systems have become very complex, are strongly integrated, and safety-criticality of these systems raises new challenges. Due to this safety-criticality the ISO 26262 road vehicle safety norm was introduced. Development conforming ISO 26262 requires providing consistency of the safety concept during the entire product lifecycle, and supporting evidences, known as and combined via safety case. A safety case is a collection of development artifacts (e.g. test protocols, interface descriptions, domain experts group meeting protocols, certificates) aiming to convince customers or auditors by arguing that the product is capable safe. Establishment of such a safety case is a tedious task, and practical examples and guidelines are yet rather uncommon due to intellectual property reasons. This paper presents the application of patterns to generate a ISO 26262 safety case documentation for an industrial case study. The introduced patterns and use case should serve for novices in the area of automotive safety as guidance for construction of safety cases.
Threat analysis and misuse patterns of federated inter-cloud systems C. Oscar Encina, Eduardo B. Fernandez, A. Raúl Monge
We have previously proposed a new type of pattern, the misuse pattern. The misuse pattern describes how a misuse is performed from the point of view of the attacker, what system units it uses and how, provides ways of stopping the attack by enumerating possible security patterns that can be applied for this purpose, and provides forensic information. A catalog of misuse patterns is needed to let designers evaluate their designs with respect to possible threats. On the other hand, Inter-Cloud systems grow in popularity, and some of them are federated Inter-Clouds, which allow their Service Providers to share resources when needed. We present here a misuse pattern for this kind of system. The possibility of using a false Service offered by a malicious Service Provider could lead to the leakage of information. The purpose of this paper is threefold. First, analyze the federated Inter-Cloud proposals in order to determine a list of Actors and their respective use cases. Second, describe how to reveal threats from the use cases. In third place, add a new misuse to the misuse catalog for federated Inter-Cloud systems. These misuse patterns will be used to improve the design of federated Inter-Cloud systems.
Using dynamic mixins to implement design patterns Eden Burton, Emil Sekerinski
Design patterns are used as a means of documenting solutions to commonly occurring problems. In this work, we focus on object-oriented patterns that require object extension. Typically, the implementation of such patterns is done using object composition. Dynamic mixin composition is proposed as a viable alternative in this paper. The issues of safety and reuse are considered during the comparison of the two approaches. A new mixin language is defined to illustrate the benefits of mixin composition. Then, a survey of sample GOF pattern implementations using both approaches is critiqued and finally some patterns specifically designed to address the shortcomings of object composition are critically reviewed.
The state event design pattern M. Hamri, R. Messouci, C. Frydman
In this paper, we present the state event design pattern a generalization of the state one proposed by the Gang of Four. This new pattern provides an upgradeable and maintainable structure contrary to the state pattern. In fact, the idea is to objectify events making state changes on an object in addition to objectify states, with the wish of avoiding the use of condition statements. The motivation of this work has been our wish to propose an alternative design to code discrete event simulation models in object-oriented paradigm. So, we advise this pattern for every designer who wants making code of behavioral objects abstract and reusable for other applications.
Lecture design patterns: improving the beginning of a lecture Christian Köppe, Michel Portier
Lectures are still a common method of instruction in academic institutions. But it requires a careful design of lectures in order to make them of pedagogical value. Special attention hereby needs to be paid at the beginning of a lecture, as the beginning is crucial for the success of the whole lecture. A bad beginning where students not even start to pay attention or drift away fast is hard to recover from, such recovery requires extra attention. A good beginning can contribute to an atmosphere where learning is more likely to happen. In this paper we propose five patterns that help with designing a good beginning of lectures: Clear Starting Signal, Surprise Beginning, Emphasize Relevance First, Entrance Material, and Late Attendant Discouragement.
Towards a pattern language for cognitive systems integration Christian F. Leibold, Marcus Spies
This paper discusses the influence of recent advances in cognitive computing systems on enterprise software architecture and design/development. Specifically, building on key features and capabilities of cognitive computing systems, we propose a new schema of enterprise application integration patterns in the tradition of the design pattern literature. Our schema has three groups of patterns addressing essential scoping, security and service integration issues related to cognitive components in enterprise architecture. While some patterns are modifications or refinements of known Enterprise Application Integration patterns, some of them are new and require dedicated consideration by enterprise architects and software designers.
Towards a pattern approach for improving enrollment and retention of female students in computer science education Christian Köppe, Anne Bartilla
Enrollment and retention of female students in computer science education remains very low compared to other disciplines, even though numerous efforts have been made to change the status quo. Society begins to recognize the importance of increasing the number of qualified women in information technology, but this has not yet lead to large-scale sufficient improvements when it comes to education. But education is one of the most important areas of human endeavor in need of change as it lays the foundation for a successful career in the IT field. However, there are reports on successful activities and there are research results which point to potential valuable strategies that institutions can apply. In this paper we start to explore the possibilities of applying a pattern approach to describing successful strategies for improving enrollment and retention of female students in computer science education. We propose three patterns: Applicability Highlighting, Inclusive Approach, and Inclusive Representation.
Interaction design patterns for interactive video players in video-based learning environments Niels Seidel
This paper is about interaction design patterns that describe common solutions of recurring problems in the design and development of video-based learning environments. The patterns are organized in two layers. The first layer incorporates the micro interactivity in the video player itself. Any manipulation that effects the presentation within the video or intervening its playback is part of the micro-level of interactivity. Currently, 17 patterns have been identified for that layer. Five of them will be object of this article: Annotated Timeline, Classified Marks, Playback Speed, User Traces, and Visual Summary. The second layer of the pattern language consists of 12 patterns that describe interactivity on a macro-level. Macro interactivity comprises all manipulations concerning one or more videos as a whole. That does not include the playback but the organisation and structure of the video learning environment.
Interaction design patterns for design and development of video learning environments Niels Seidel
This paper is about interaction design patterns that describe common solutions of reoccurring problems in the design and development of video-based learning environments. The patterns are organized in two layers. The first layer incorporates the micro interactivity in the video player itself. Any manipulation that effects the presentation within the video or intervening its playback is part of the micro-level of interactivity. The second layer of the pattern language consists of 12 patterns that describe the interactivity on a macro level. Macro interactivity comprises all manipulations concerning one or more videos as a whole. That does not include the playback but the organisation and structure of the video learning environment. Currently 17 macro patterns have been identified. Four of them will be object of that article: Related Videos, Playlist, Detail on Demand, and Journal Navigation. Additionally the paper includes explanations of four-step process of pattern identification and elaboration.
Module matrix: a pattern for interdisciplinary industry training design Christian Kreiner
To maximize acceptance and effectiveness of industry trainings, they have to be prepared in anticipation of individual flexibility. Both flexibility in sequence of units, time schedule of consuming the course parts, and valuation of pre-existing individual knowledge and skills is demanded. In order to be successful, all this flexibility must be paired with effective learning both objectively, in the view of the organization (employer), and in perception of the trainee. A pragmatic way of designing courses with high practical relevance, together with high individual adaptability, is described. It follows a consequent modular architecture cross-linking subject matter items with common domain concepts. The approach is illustrated with a real interdisciplinary course in the automotive field, linking Functional Safety (ISO26262), high quality system development (Automotive SPICE), and quality in production (Six Sigma).
Social interaction patterns for learning in serious games Barbara Reichart, Bernd Bruegge
Serious games usually refer to games used for purpose other than entertainment. Designing serious games for learning proves to be a very difficult task, as it requires knowledge not only about the content, but also about game design and pedagogy. Therefore there have been efforts to create collections of design patterns that help to create initial designs or improve existing ones. However those collections neglect the role of social interactions within games. But integrating social interaction as a core mechanic of a serious game can massively improve the game along several dimensions. In this paper we want to show how social interactions can enrich serious games. Furthermore we describe several patterns with concrete examples on how to achieve this exactly.
Taming the biases: a few patterns on successful decision-making Andreas Rüping
Making decisions is part of our everyday life. Unfortunately the quality of our decisions is often impaired as human intuition is subject to numerous biases. This paper presents a few lessons learned from cognitive psychology and presents them as patterns. The principles described can be applied to arbitrary situations where a decision needs to be made. Naturally this includes the decision-making processes found in IT projects, as is shown with three concrete examples from an IT context.
Towards a pattern language for software start-ups Veli-Pekka Eloranta
A growing trend in industrial software engineering is that new software products and information services are developed under conditions of notable uncertainty. This is especially visible in startup enterprises which aim at new kinds of products and services in rapidly changing social web, where potential customers can quickly adopt new behavior. Special characteristics of the startups are lack of resources and funds, and start-ups may need to change direction fast. All these affect the software engineering practices used in the start-ups. Unfortunately almost 90 percent of all start-ups fail. There are probably indefinite numbers of reasons why start-ups fail. Failure might be caused by wrongly chosen software engineering practices or inconsiderate decision making. While there is no recipe for success, we argue that good practices that can help on the way to success can be identified from successful start-ups. In this paper, we present three central patterns that could help start-ups to be successful and grow. The three patters presented in the paper are a part of larger set of patterns which was mined from successful start-ups in Finland and Switzerland.
Patterns for starting up a software startup company Marko Leppänen
Nowadays, startups have been of growing significance in software business. After the publication of the seminal work of Eric Ries, the Lean Startup concept has been a popular trend. Startup companies have especially been popping up in the volatile fields of web applications and games. Startups have even been dubbed to be the saviors of declining western economies. In this paper, we describe patterns that are a part of a larger pattern language for software start-up companies. The patterns were collected during autumn 2013. These particular patterns help start-up companies to focus on the hardships of the starting up a start-up; knowing that your idea is worth of our effort and how to finance your vision.
Towards a pattern language for model-based GUI testing Rodrigo M. L. M. Moreira, Ana C. R. Paiva
Graphical user interfaces (GUIs) have become popular as they appear in everydays' software. GUIs have become an ideal way of interacting with computer programs, making the software friendlier to its users. GUIs have grown, and so has the usage of UI Patterns featured in GUIs. UI Patterns are recurring solutions to solve common GUI design problems. We developed the notion of UI Test Patterns that, are able to test different implementations of UI Patterns. Therefore, we created a new methodology called Pattern-Based GUI Testing (PBGT) that aims at systematizing and automating the GUI testing process. PBGT samples the input space using UI Test Patterns, which provide a reusable and configurable test strategy, in order to test a GUI that was implemented using a set of UI Patterns. In this paper we present three UI Test Patterns: Login, Master/Detail and Sort.
Use of balanced scorecards for knowledge management roadmap Elissaveta Gourova, Mila Dragomirova, Lilia Zografova
Knowledge Management (KM) is a new scientific discipline which facilitates organisations to better perform in their highly competitive environment. Universities are learning organisations in the centre of the knowledge triangle. They are faced with the need to better manage their knowledge resources and to facilitate their transfer to all interested stakeholders. Similar to companies, universities are developing at different speeds, and some are lagging behind in adopting KM strategic approach. The goal of this paper is to provide guidance to university staff in developing their KM strategy roadmap on bases of the Balanced Scorecard approach and integrating it in the overall strategy.
Pattern-based safety development methods: overview and comparison Christopher Preschern, Nermin Kajtazovic, Andrea Höller, Christian Kreiner
Design patterns provide good solutions to re-occurring problems and several patterns and methods how to apply them have been documented for safety-critical systems. However, due to the large amount of safety-related patterns and methods, it is difficult to get an overview of their capabilities and shortcomings as there currently is no survey on safety patterns and their application methods available in literature. To give an overview of existing pattern-based safety development methods, this paper presents existing methods from literature and discusses and compares several aspects of these methods such as the patterns and tools they use, their integration into a safety development process, or their maturity.
Applying architectural patterns for parallel programming the fast fourier transform Jorge L. Ortega-Arjona
The Architectural Patterns for Parallel Programming is a system of patterns, related with a method for applying them for the development of the coordination of parallel software systems. These Architectural Patterns make use of input information: (a) the available parallel hardware platform, (b) the parallel programming language used by this platform, and (c) the analysis of the problem to solve, in terms of an algorithm and data. In this paper, it is presented the application of an Architectural Pattern, alon g with the method, for developing a coordination to solve the Fast Fourier Trans form. The method used here starts taking the information from the Problem Analys is, proposes an Architectural Pattern for designing the coordination, and provid es some elements about its partial implementation.
The history-based authentication pattern José Carlos Ciria, Eladio Domínguez, Inés Escario, Ángel Francés, María Jesús Lapeña, María Antonia Zapata
We propose a security pattern, namely the History-Based Authentication pattern, designed to strengthen the authentication process. It can be applied to entities endowed with communication, memory and processing capabilities. Our proposal consists of exploiting such capabilities to enable entities to record, be aware of and report on their own history. Authentication is based upon the capability of an entity to satisfactorily account for its history. Our proposal is test-bedded in a security and safety system, framed within the context of smart environments, designed for the protection of personnel and facilities and responsible for its self-protection and self-monitoring.
Strategies for hazard management process Jari Rauhamäki, Seppo Kuikka
When a system is being designed, the hazards and corresponding risks introduced by the system must be identified. Mitigation of risks is required if they are found intolerable. To mitigate risk there are multiple valid possibilities, but some are more preferable than other. Hazard elimination is the most preferable approach but it is not always applicable. In such case substitution, isolation and active protective measures in form of electric, electronic and programmable electronic systems need to be considered. In this paper, we illustrate some hazard management methods and provide the suggested order of consideration for the methods in format of strategy collection.
Patterns for content-dependent and context-enhanced authorization Eduardo B. Fernández, A. Raúl Monge, René Carvajal, Oscar Encina, Juan Hernández, Paulina Silva
We have written patterns for authorization that define access at the item (resource, data) level. However, in many cases we need to have a further level of granularity. For that purpose, we present here a pattern for Content-dependent authorization that controls access at the data value level. In some cases we need to return values with additional contextual information and for that we describe a Context-enhanced access control pattern.
Towards pattern-based reuse in safety-critical systems Nermin Kajtazovic, Christopher Preschern, Andrea Höller, Christian Kreiner
Challenges such as time-to-market, reduced costs for change and maintenance have radically influenced development of today's safety-critical systems. Many domains have already adopted their system's engineering to support modular and component-based architectures. With the component-based design paradigm, the system engineering is utilized allowing to distribute development among different development teams, however, with the price that there is no full trust in independently developed parts, which makes their reuse challenging. Until now, many approaches that address reuse, on conceptual or detailed level, have been proposed. A very important aspect addressed here is to document the information flow between system parts in detail, i.e. from higher abstraction levels down to the implementation details, in order to put more trust into independently developed parts of the system. In this paper, we describe a compact pattern system with the aim to establish a link between high level concepts for reuse and detailed description of the behavior of system parts. The main goal is to document these details up to the higher levels of abstraction in more systematic way.
On the description of software security patterns Michaela Bunke
Security patterns describe best practices to handle recurring security problems. Patterns are presented with a special description form that depicts the pattern's specific properties. A description form consists of different sections such as Motivation, Problem or Solution. Many security patterns exist and their description forms are very different. This heterogeneity is a problem for comparing security patterns, their comprehension and application in the software design, and usage in tools that should support their selection in the software development process. Some researchers desire a unique description form and others suggest description forms with new sections that capture security-specific aspects. In order to assess whether additional security-specific facets are actually needed, we assess existing descriptions of software-security patterns in depth. We compare the sections of software-security patterns publications to the common GoF and POSA design pattern templates to identify additionally used sections. Moreover, we align these additionally used sections of software-security patterns to the sections of the aforementioned description forms. Finally, we scan the additional sections to identify sections that possibly capture security-specific properties.
Patterns for the distribution of power in FLOSS projects Christoph Hannebauer, Claudius Link, Volker Gruhn
This paper presents two patterns about the government of Free/Libre and Open Source Software (FLOSS) projects. The first pattern, Single Maintainer, describes the situation where all power in the FLOSS project stems from one individual. The other pattern, Meritocracy, shows how to distribute power based on the project participants' merit for the project.