Pattern papers
|
Michael Weiss
|
PC member: Andreas Fiesser
Shepherd: Allan Kelly
|
|
Profiting from open source
The patterns in this paper describe open source business models. How companies can make money from open source is a frequently debated topic. However, since the origins of open source, our understanding of open source business models has significantly evolved. Many businesses now incorporate open source, either leveraging open source to develop new products or starting their own open source projects and building their products and services around their open source offerings.
|
Andreas Rüping
|
PC member: Uwe Zdun
Shepherd: Filipe Correia
|
|
From Old to New -- Patterns for Data Migration
When an existing application is replaced by a new one, its data has to be transferred from the old world to the new one. This process, known as a data migration, faces several important requirements. It’s likely that the data is valuable to the organisation that owns it, so the process has to be accurate. The amount of data could be rather large, so the data migration must be reasonably efficient. A failed data migration could easily delay the launch of the new application, so robustness is required.
This paper presents a collection of patterns for handling a data migration effort. The patterns are targeted at software developers, architects and managers alike. They demonstrate techniques and strategies that help meet the typical requirements of a data migration project.
|
Dr. Moshe Weiler , Ofra Homsky , Amir Raveh
|
PC member: Paris Avgeriou
Shepherd: Andy Longshaw
|
|
Patterns for Risk Management in Projects
When planning a project, it is important to deal with Risk Management aspects. Some of the major tasks in Risk Management Process are identification, initial assessment and prioritizing.
These patterns represent the beginning of a Pattern Language for practitioners in the Risk Management problem domain.
|
Christian Kohls
|
PC member: Tim Wellhausen
Shepherd: Dietmar Schuetz
|
|
A pattern collection for interactive information graphics
Interactive graphics are frequently used in today’s information delivery strategies. The challenge is to find adequate interactive knowledge representations to communicate complex topics. Also, tools are required to enable a designer to rapidly create and develop interactive content without any programming skills. This paper summarizes the patterns for interactive displays that have been mined over the last years. Many of them have seen Writer’s Workshops already but are now presented as improved versions.
|
Rashina Hoda, James Noble, Stuart Marshall
|
PC member: Christian Kohls
Shepherd: Kristian Elof Soerensen
|
|
How Much is Just Enough: Some Documentation Patterns on Agile Projects
Agile methods advocate “just enough” documentation on Agile projects. Unfortunately, there are no clear guidelines on what is “just enough” documentation. We describe a set of patterns to help Agile software development teams define “just enough” in their own contexts. Teams can also employ these documentation patterns as strategies to overcome common challenges of adopting Agile methods.
|
Ofra Homsky
|
PC member: Klaus Marquardt
Shepherd: Neil Harrison
|
|
Both sides against the middle
This pattern describes a solution for projects with tight schedules that also carry foreseen and unforeseen uncertainties regarding difficulties during work, and presents a timeless solution.
|
Georgina Holden, Nicole Shadewitz, Chrysi Rapanta
|
PC member: Jim Siddle
Shepherd: Symeon Retalis
|
|
Patterns for the creation of elearning content and activities in a university setting
This paper reports a number of patterns identified during the creation of elearning content within the Open University, the largest provider of distance higher education in the UK. The patterns identified relate to writing and content creation and the development of active learning exercises. The patterns were identified through a mix of self and external observation and analysis.
|
Veli-Pekka Eloranta, Johannes Koskinen
|
PC member: Kristian Elof Soerensen
Shepherd: Bob Hanmer
|
|
Fault Tolerance Patterns For Distributed Machine Control Systems
When designing distributed machine control systems, developers and architects need to often tackle fault tolerance issues. There are already
some patterns available to help in design process. However, while we carried out architectural evaluations in Finnish machine industry,
we identified some fault tolerance patterns which are not so broadly documented. In this paper we will present those patterns.
In addition, we will show our whole pattern language graph to give understanding how these pattern are related to the rest of the pattern language.
|
Ville Reijonen, Johannes Koskinen
|
PC member: Neil Harrison
Shepherd: Klaus Marquardt
|
|
Setup Management Oriented Patterns for Distributed Machine Control Systems
This paper presents four patterns useful for a machine control systems which have changing configuration or long life cycles. These patterns discuss how the system setup could be recognized, configured and updated.
|
Fausto Giunchiglia, Hao Xu, Aliaksandr Birukou, Ronald Chenu
|
PC member: Till Schuemmer
Shepherd: Paris Avgeriou
|
|
Patterns for Scientific Discourse Representation
With the advancement of digital library techniques and open access services, more and more off-the-shelf utilities for managing scientific publications are emerging and widely used. However, most papers of today remain electronic facsimiles of the traditional linear structured papers lacking semantics and links between pieces of knowledge. In this paper, we propose a first draft of a pattern language for describing scientific papers. Current version was mainly created by analyzing computer science papers. Such pattern language will facilitate reading and writing of papers and provide means for linking (claims, hypothesis, etc.) within and between papers.
|
1.Farah, Lakhani, 2.Michael, Pont, 3.Anjali, Das
|
PC member: Kristian Elof Soerensen
Shepherd: Jorge Luis Ortega Arjona
|
|
Creating embedded systems with predictable patterns of behaviour: Supporting the migration between event-triggered and time-triggered software architectures
We can divide designs for embedded systems into two categories – time- triggered (TT) and event-triggered (ET) - based on the ways in which the various systems tasks are initiated.
This paper is concerned with techniques which may be used to support the migration between ET and TT architectures. We have previously introduced a small set of patterns to support such activities. In this paper, we present a number of new patterns which are intended to further support the migration process.
|
Elissaveta Gourova, Yanka Todorova
|
PC member: Allan Kelly
Shepherd: Michael Weiss
|
|
Knowledge audit distribution and analysis
The concept of business patterns for Knowledge Audit was presented at a writers workshop of EuroPLoP 2009, where the patterns for Knowledge Audit Plan, Knowledge Audit Team, Knowledge Audit Methodology, Knowledge Audit Questionnaire and Knowledge Audit Report were described [5]. The present paper is a follow-up of these business patterns for the implementation of Knowledge Audit and focuses on the implementation phase of Knowledge Audit. It considers the following patters:
1. Knowledge Audit Questionnaire Distribution
2. Knowledge Audit Analyses of Results
|
Stefan Sobernig, Uwe Zdun
|
PC member: Jim Siddle
Shepherd: Michael Weiss
|
|
Inversion-of-Control Layer
Inverting the control is a common design practise that has been used in various application areas. It gained popularity in the context of object-oriented application frameworks and designs based on abstract classes or interfaces. Recently, dependency injection techniques, especially in the context of lightweight containers such as Spring, have raised the attention for inversion of control again. However, inversion of control has not yet been described in its architectural dimension with a focus on layering architectures, and the pros and cons of the design decision for control inversion. In this paper, we present the INVERSION-OF-CONTROL LAYER pattern that describes the design practise from an architectural point of view, rather than focusing on particular implementation techniques.
|
Dirk Schnelle-Walka
|
PC member: Andreas Fiesser
Shepherd: Neil Harrison
|
|
A Pattern Language for Error Management in Voice User Interfaces
Error handling is a crucial factor for the success of voice based interfaces
since the underlying technology always leaves some uncertainty about the
recognized input. In this paper a pattern language for error management in
voice based interfaces is presented that enable designers and developers to deal
with this limitation. It integrates into our pattern language for voice user
interfaces.
|
Klaus Marquardt
|
PC member: Kristian Elof Soerensen
Shepherd: Tim Wellhausen
|
|
Patterns for Software Release Versioning
Software developers rightfully focus on the activities needed to polish the software for its first release. The management of future releases, version identification, compatibility checks, and update strategies are typically treated as an afterthought, but insufficiencies or inconsistencies here have all the potential to make your life miserable once the software has hit the market.
This paper covers techniques to identify a particular version, policies to determine version compatibility, and release update strategies. It aims to help the project participants responsible for releases. The affected roles are software architect, release manager, project lead, and product manager. In small projects these roles may be covered by one or two persons.
|
Martin Wagner, Tim Wellhausen
|
PC member: Uwe Zdun
Shepherd: Hugo Sereno Ferreira
|
|
Patterns for Data Migration Projects
Data migration is one of the most common operations in enterprise computing. Whenever new systems are introduced and after each merger and acquisition, existing data has to be moved from a legacy system to some hopefully more suitable target system.
This paper presents several patterns that deal with the complexity involved in matching two
distinct domain models and, at the same time, ensuring that the migrated data is of high quality.
|
Klaus Marquardt
|
PC member: Ademar Aguiar
Shepherd: Andy Longshaw
|
|
Monoculture
Teams and companies create their own culture. Over time the behaviour of all team members is similar, at least within accepted boundaries. The working habits, the way code is formatted and the configuration management system is used, the quality of tests pretty much resemble each other. Almost certainly, the toolset, compiler, and development environment are identical. This is a great strength as it minimizes the friction that occurs during the daily tasks.
Large companies may bring this to some extreme: that all teams follow the same standardized workflows, and use the same environment. This is also brought forward by maturity measurements like SPICE and CMMI.
However, there is a downside. Such intentional monoculture can be an obstacle to progress and productivity, and cause the company knowledge to become stale. This diagnoses shows you the mechanisms how you might get into an unhealthy monoculture state, and how to overcome it.
|
Bettina Biel, Volker Gruhn
|
PC member: Klaus Marquardt
Shepherd: Yishay Mor
|
|
Usability-Improving Mobile Application Development Patterns for Android
The fast evolution of mobile devices and their complex functionalities require an improvement of the design process applied: Using patterns allows to document and use up to date and already proven solutions. This paper introduces two usability-improving mobile application development patterns for software designers of mobile applications that run on mobile devices without accessing remote logic or data storage.
|
Dietmar Schuetz
|
PC member: Carsten Hentrich
Shepherd: Tim Wellhausen
|
|
Lean PLE
The paper is about how to introduce Product Line Engineering into an organisation, following a low risk low investment upfront approach, just lean.
Please see paper summary for more details.
|
Geert Monsieur, Monique Snoeck, Wilfried Lemahieu
|
PC member: Paris Avgeriou
Shepherd: Uwe Zdun
|
|
Managing Sequence Dependencies in Service Compositions
In a service-oriented environment services are often aggregated to coarser grained service compositions in order to form a service-based system that supports a specific business process. For each service composition, there exists coordination logic that describes all service interactions required to compose the coarser service. These service interactions should follow the constraints specified in the business process. In this article we present four patterns that facilitate the systematic development of coordination logic. In particular pattern combinations help to construct a coordination scenario that is optimized for aspects such as flexibility, loose coupling and performance.
|
Claudius, Link
|
PC member: Allan Kelly
Shepherd: Andreas Fiesser
|
|
Patterns for the commercial use of Open Source
Open Source has gained a major importance in producing value in the software business. Through open source it is possible to save considerable costs developing, deploying, and maintaining systems. And the value provided by open source components is still increasing. Even more, to stay competitive you are required to leverage Open Source as you competitor will do so as well. The general question behind the commercial usage of Open Source is how to profit from the value created.
To successfully utilize Open Source there are patterns which help to maximize the value, make decisions, minimizing the effort and risks as well as to avoid pitfalls.
|
Luis Ferreira da Silva, Fernando Brito e Abreu
|
PC member: Uwe Zdun
Shepherd: Dietmar Schuetz
|
|
Patterns for IT Infrastructure Design
The design of large IT infrastructures is a complex problem because is dependent on many variables and must evolve rapidly to cope with business changes. The use of IT infrastructure patterns can improve this design process by allowing to reuse proven solutions to recurrent problems and by facilitating communication among IT design stakeholders. However, known IT infrastructure patterns are mostly like vendor-specific blueprints. As such, they are not very helpful in comparing alternatives and supporting independent design decisions.
In this paper we introduce patterns in the domain of IT infrastructures covering aspects from its rationale to instantiation. This is the first step in the creation of a pattern language that will hopefully leverage the IT infrastructure design process.
|
Diethelm, Bienhaus
|
PC member: Andreas Fiesser
Shepherd: Ofra Homsky
|
|
Some Patterns for Innovation Processes
Innovative processes comprise several activities performed by individuals or by groups varying
from bringing out first ideas to transferring them into new products or services.
Innovation is a highly complex topic involving several human abilities, characteristics and skills
like creativity, knowledge, cooperativeness and teamwork are principal determinants.
This paper introduces a first collection of patterns focusing on challenges or problems
which are likely to come about in innovative processes.
|
Shiva Vafadar, Ahmad Abdollahzadeh Barfroush
|
PC member: Michael Weiss
Shepherd: Wolfgang Herzner
|
|
Analysis Pattern for Learning Agents
One of the capabilities which can help intelligent software agents to perform more appropriately in dynamic and volatile situations is learning. Agent Oriented Software Engineering (AOSE) tries to make Artificial Intelligence (AI) findings part of the everyday software engineering practices. Therefore, provid-ing methods for dealing with AI techniques in all phases of software develop-ment would be beneficial. In this paper, we focus on requirements analysis of the agent based software development and introduce a pattern for analysis of (requirements for) learning agents. This analysis pattern contains a group of re-lated, generic meta-classes of the learning and their relations in a domain neutral manner which can be described as elements of conceptual modeling for learning requirements of the agents. The paper also proposes a process for producing and evaluating this pattern. The applicability of the pattern has been investigated through the development of three case studies. The first results of evaluating the earlier version of the pattern are also presented in the paper and they are used to improve the pattern and introduce the new version.
|
Christian Remy, Malte Weiss, Martina Ziefle, Jan Borchers
|
PC member: Till Schuemmer
Shepherd: Christian Kohls
|
|
A Pattern Language for Interactive Tabletops in Collaborative Workspaces
In the recent two decades, research on interactive tabletops has revealed a variety of new designs and technologies. As tabletops are becoming commercially available, they might be part of everyday's life in the near future. However, the diversification of hardware designs, interaction techniques, and research findings has led to a highly specialized knowledge that lacks consensus and induces a high threshold for designers, non-researchers, and practitioners, to approach the field, to develop new solutions, or to refine their existing systems. In this paper, we present a Human-Computer Interaction (HCI) design pattern language that bundles existing knowledge on tabletop design and offers solutions to recurring problems. Our patterns enable not only developers, designers, and domain experts to improve their existing systems and facilitate the design process of new systems, we also encourage novice users to comprehend the variety of tabletop research and commercial products in this domain. We consider our language as a starting point to create a sustainable body of knowledge that will be extended and refined by the community.
|
Mandy Chessell, James Siddle
|
PC member: Tim Wellhausen
Shepherd: Lise Hvatum
|
|
Master Information Hub Pattern Language
This paper presents a pattern language for designing Master Information Hub solutions usingIBM InfoSphere Master Information Hub, a model-driven toolkit for creating a central server formanaging organizational data. We call the resulting server a Master Information Hub, or MIHub, for short.
|
Anne Hoffmann
|
PC member: Neil Harrison
Shepherd: Alexander Ernst
|
|
Requirements Pyramid
One important part during the elicitation phase in Requirements Engineering is about structuring information received from different stakeholders such as customers, marketing, analysts and developers. Thus, a suitable mental model eases these activities, especially the communication about requirements. Here, a structuring according to the level of detail and divided into problem and solution space is shown. To facilitate dependency analysis, relationships between any two requirements are modelled by linking. Once the requirements are ordered and linked accordingly, this structuring can be used for further analyses throughout the whole project or product life cycle respectively.
|
Christian Lescher
|
PC member: Allan Kelly
Shepherd: Jim Siddle
|
|
Patterns for Global Development: How to Build One Global Team?
Global Development has become a mainstream trend. Many companies today conduct development projects in teams which are distributed across sites and countries. Typical motivations include proximity to markets, availability of talent regardless of location and cost competitiveness. Global Development also creates new challenges: Geographic separation, cultural differences and different time zones make communication much more difficult and inefficient. However, software development heavily relies on communication. In fact, studies showed that the intensity of project-internal communication is positively correlated with project success. One of the main problems in Global Development is the impact of distribution on team cohesion: Based on their nature, people tend to form local in-groups. In case of difficulties in the project, often an "us versus them" situation between the different sites is the result. To avoid such situations, creating a trust relationship among team members is essential. In this paper, we present a collection of patterns that can help to build one global team and overcome the natural challenges of distributed development.
|
Tom Holvoet, Danny Weyns, Paul Valckenaers
|
PC member: Tim Wellhausen
Shepherd: Michael Weiss
|
|
Patterns for Delegate MAS
Delegate MAS has been proposed and investigated as an integrated coordination technique for so-called self-organising coordination-and-control applications. Delegate MAS consist of three types of light weight, ant-like agents that assist domain agents in their coordination tasks - the types are exploration, intention and feasibility ants. The technique is especially suitable for distributed applications in large-scale, dynamic systems.
Literature shows that, for various application domains, solution ap- proaches based on self-organisation have been proposed that have several similarities to delegate MAS, yet are not identical.
In this paper, we specify three reusable solution patterns for coordination in distributed, large-scale, dynamic systems. To motivate the patterns, we first visit several solution approaches from various domains that bear resemblance with respect to coordination. We then identify common application character- istics as well as common technical challenges that underlie the approaches. We describe recurring solution techniques, and consolidate these in three solution patterns. The patterns are ‘smart messages’, ‘delegate MAS’, and ‘delegate ant MAS’ which rely on stigmergic ant agents. Identifying the patterns fosters reuse of particularly useful coordination techniques, and can serve as a catalyst for new or altered approaches.
|
Papers on applying patterns
|
Aliaksandr Birukou
|
PC member: Ademar Aguiar
Shepherd: Uwe van Heesch
|
|
Searching and Selecting Patterns: a Survey of Existing Approaches
With ever-increasing number of patterns in the literature and online repositories, it can be hard for non-experts to know about new patterns and select patterns appropriate to their needs. In this paper we review existing approaches for searching and selecting patterns. Current version of the paper misses some approaches and details, but we are planning to eliminate this shortcoming during shepherding.
|
Lubor Sesera
|
PC member: Ademar Aguiar
Shepherd: dave west
|
|
Applying Fundamental Banking Patterns
Fundamental banking patterns are the system (pattern language) of 24 analysis patterns for banking software systems. The paper extends the previous paper on this topic and describes application of these patterns in real-world software systems. The systems include a core banking system, a branch teller system, two bank card systems, an integrated customer view system, and a loan workflow system. Each of these systems uses specific banking patterns and pattern sequences. It depends both on a subdomain which the system automates and individual features of the system.
|
Yanka Todorova, Elissaveta Gourova, Dimitar Birov
|
PC member: Michael Weiss
Shepherd: Klaus Marquardt
|
|
Patterns for Strategy Management of Technology Entrepreneurship and Innovation Executive Program
Today, innovation has become key point to sustaining growth and development, leading to a need for professionals who are skilled in the latest knowledge and best practices in innovation and entrepreneurship. However, innovation is not only about technical innovation, but also the flow of new products and services, dispersion and implementation of innovation strategies for knowledge management and organizational change. Patterns of innovative knowledge flow in the Innovation and Entrepreneurial Ecosystem.
Many existing studies observe the relationship between general education and vocational education specific to entrepreneurship from one side, and from the other side, the entrepreneurial performance.
The paper extends the EuroPLoP’2009 patterns and introduces four patterns for use by educational organizations’ managers and lecturers for creating of executive program for vocational education and training in the area of technology entrepreneurship and innovation (TEI).
|
Jorge L. Ortega-Arjona
|
PC member: Paris Avgeriou
Shepherd: Stefan Sobernig
|
|
Applying Design Patterns for Communication Components. Communicating CSE components for the One-dimensional Heat Equation
The Design Patterns for Communication Components is a collection of patterns related with a method for developing the communication sub-systems of parallel software systems. These design patterns take as input information (a) the architectural pattern of the overall parallel software system, (b) the memory organization of the parallel hardware platform, and (c) the type of synchronization required.
In this paper, it is presented the application of the design patterns along with the method for communicating the CSE components of the One-dimensional Heat Equation. The method used here takes the information from the Problem Analysis and Coordination Design, selects a Design Pattern for the communication components, and provides elements about its implementation.
This paper is aimed at those interested in the design of parallel software and require a base to understand it, with a background in parallel programming and software patterns, particularly the Patterns for Parallel Software Design. The information provided in this paper attempts to guide developers and programmers during the communication design and implementation using design patterns for communication components.
|
Jorge L. Ortega-Arjona
|
PC member: Neil Harrison
Shepherd: Veli-Pekka Eloranta
|
|
Applying Architectural Patterns for Parallel Programming. An Hypercube Sorting
The Architectural Patterns for Parallel Programming is a collection of patterns related with a method for developing the coordination of parallel software systems. These architectural patterns take as input information (a) the available parallel hardware platform, (b) the parallel programming language of 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 the architectural patterns along with the method for developing a coordination for solving an Hypercube Sorting. The method used here takes the information from the problem analysis, proposes an architectural pattern for the coordination, and provides some elements about its implementation.
|