PLoP®
2007 Conference
Proceedings
14th CONFERENCE ON PATTERN LANGUAGES
OF PROGRAMS
September 5th - 8th, 2007, Monticello, IL, USA
Proceedings
PLoP 2007 is in cooperation with ACM & OOPSLA
Download the PLoP 2007
Frontmatter (PDF)
Welcome to PLoP 2007
Welcome to PLoP '07, the 14th Conference on Pattern
Languages of Programs, a premier event for pattern authors and pattern
enthusiasts to gather, discuss and learn more about patterns, pattern
writing, pattern reviewing, shepherding, software develop-ment,
collaboration, and more.
The conference program offers a rich set of
activities that promote a friendly and effective environment to share
expertise, and to give and receive feedback from fellow authors.
The pre-conference activities started Wednesday
morning with the BootCamp, a special session aimed at people new to
patterns, and led by Linda Rising and Robert Hanmer. Writers' Workshops
are the primary focus of our time at PLoP and it will be during them
that we will discuss and review each other’s papers in a very fruitful
way. Papers of each Writing Group will evolve during PLoP with the
mentoring of very experienced pattern writers, concretely by Linda
Rising, Brian Foote, Richard Gabriel, and Ralph Johnson.
The Invited Talks will be the time to get inspired
and energized by the words and thoughts of Richard Gabriel, Linda
Rising, and Ralph Johnson on hot topics related to design, agility, and
enterprise application patterns. Other activities, such as the 'Birds of
a Feather' (BoF), or the Focus Groups allow you to organize your own
sessions. Just announce your topics!
And last but not least, we have Games, a
well-established and very important activity at PLoP. Guided by Robert
Hanmer, the games will help us (re)energize our body and mind, to
collaborate better, and to reinforce a community of trust. Some of the
games have become 'traditions, while others will be a surprise.
This year we are back to this beautiful scenery of
Allerton Park, the original PLoP location. Allerton is a beautiful place
so be sure to take time to enjoy the scenery.
We wish you enjoyment at
PLoP07!
Ademar Aguiar and Joe Yoder
PLoP 2007 Chair and Program Chair
PLoP 2007 Conference Proceedings
Pattern Languages of Programs (PLoP®)
conference is a premier event for pattern authors and pattern
enthusiasts to gather, discuss and learn more about patterns and
software development.
Preliminary versions of
these papers were workshopped at Pattern Languages of Programming (PLoP)
’07 September 5th - 8th, 2007, Monticello, IL, USA. Permission to make digital
or hard copies of all or part of this work for personal or classroom
use is granted without fee provided that copies are not made or
distributed for profit or commercial advantage and that copies
bear this notice and the full citation on the first page. To copy
otherwise, to republish, to post on servers or to redistribute to
lists, requires prior specific permission. Copyright is held by the
authors.
ISBN:
978-1-60558-411-9
Additional copies may be
ordered prepaid from:
ACM Order Department
General Post Office
P.O. Box 30777, New York, NY 10087-0777
ACM Order Number: TBD
Made in the USA
Welcome to PLoP 2007
Welcome to PLoP '07, the 14th Conference on Pattern Languages of Programs, a
premier event for pattern authors and pattern enthusiasts to gather, discuss and
learn more about patterns, pattern writing, pattern reviewing, shepherding,
software develop-ment, collaboration, and more.
The conference program offers a rich set of activities that promote a friendly
and effective environment to share expertise, and to give and receive feedback
from fellow authors.
The pre-conference activities started Wednesday morning with the BootCamp, a
special session aimed at people new to patterns, and led by Linda Rising and
Robert Hanmer. Writers' Workshops are the primary focus of our time at PLoP and
it will be during them that we will discuss and review each other’s papers in a
very fruitful way. Papers of each Writing Group will evolve during PLoP with the
mentoring of very experienced pattern writers, concretely by Linda Rising, Brian
Foote, Richard Gabriel, and Ralph Johnson.
The Invited Talks will be the time to get inspired and energized by the words
and thoughts of Richard Gabriel, Linda Rising, and Ralph Johnson on hot topics
related to design, agility, and enterprise application patterns. Other
activities, such as the 'Birds of a Feather' (BoF), or the Focus Groups allow
you to organize your own sessions. Just announce your topics!
And last but not least, we have Games, a well-established and very important
activity at PLoP. Guided by Robert Hanmer, the games will help us (re)energize
our body and mind, to collaborate better, and to reinforce a community of trust.
Some of the games have become 'traditions, while others will be a surprise.
This year we are back to this beautiful scenery of Allerton Park, the original
PLoP location. Allerton is a beautiful place so be sure to take time to enjoy
the scenery.
We wish you enjoyment at PLoP07!
Ademar
Aguiar and Joe Yoder
PLoP 2007 Chair and Program Chair
PLoP 2007
Conference Description
Ademar Aguiar, General Chair
Universidade do Porto
ademar.aguiar@fe.up.pt |
Joseph Yoder, Program Chair
The Refactory, Inc.
joe@refactory.com |
Pattern Languages of
Programs (PLoP) conference is a place for pattern authors to have
their pattern languages reviewed by fellow authors. The purpose of
PloP is to promote development of pattern languages on all aspects of
software, including design and programming, software architecture,
user interface design, domain modeling, and software process.
Domain-specific patterns were encouraged for PLoP 2007.
PLoP 2007 was held in
Monticello, IL, September 5-8.
We invited
contributions from practitioners and researchers
on:
-
Patterns and
pattern languages
-
Critiques of
patterns and pattern languages
-
Research on
patterns and pattern languages
-
Case studies of
the use of patterns and pattern languages
PLoP is different
from other conferences. It is run in the "writers' workshop" style, as
described in Richard
Gabriel's book. Before the conference, authors interact with a
"shepherd" who helps them improve their paper to make it as ready for
PLoP as possible. A program committee reviews the papers for final
acceptance after they have gone through the shepherding process. The
writers workshops provide more feedback, and so authors revise their
paper again after PLoP. The papers here are the version produced by
authors after PLoP, not the ones reviewed at PLoP.
The PLoP '07 conference also
hosted presentations concerning a number of hot topics in the patterns
community. Following are a list of presentations from PLoP 2007:
- "Pattern design in the context space: A methodological framework for
designing auditory display with patterns"
by Christopher Frauenberger, Tony Stockman, Marie-Luce Bourguetby
- "Software Pattern Communities: Current Practices and Challenges"
by Scott Henninger, Victor Correa
- "A Pattern Story for Aspect-Oriented State Machines"
by Mark Mahoney, Tzilla Elrad
- "Design Patterns in Eos"
by Hridesh Rajan
- "A Metric for Measuring Abstraction Level of Design Patterns"
by Atsuto Kubo, Hironori Washizaki, Yoshiaki Fukazawa
The table of contents
is organized by the workshop groups and the chairs as they were
presented at PLoP.
Table of Contents
Writers' Workshops |
'Girl
with a Scarf' group, led by Linda Rising |
|
"Misuse Patterns in VoIP"
by Juan C. Pelaez, Eduardo B. Fernandez, Maria M.
Larrondo-Petrie, Christian Wieser
"Attack Patterns in VoIP"
by Juan C. Pelaez, Eduardo B. Fernandez, Maria M.
Larrondo-Petrie, Christian Wieser In VoIP, in
order to avoid attacks and discover security
vulnerabilities, it is necessary to be aware of
typical risks and to have a good understanding of
how vulnerabilities can be exploited. In a previous
paper we presented the concept of attack patterns.
Attack patterns describe from the point of view of
the attacker, how a type of attack is performed
(what system units it uses and how), analyzes the
ways of stopping the attack by enumerating possible
security patterns that can be applied for this
purpose, and describes how to trace the attack once
it has happened by appropriate collection and
observation of forensics data. We present a set of
attack patterns for VoIP: Denial of Service (DoS),
Call Interception, and Theft of Service on VoIP. |
|
"Scalability Design Patterns"
by Kanwardeep Singh Ahluwalia
"Scalability Design Patterns"
by Kanwardeep Singh Ahluwalia Achieving
highest possible scalability is a complex
combination of many factors. This paper presents a
pattern language that can be used to make a system
highly scalable. |
|
"Patterns for Access Control in Distributed Systems"
by Nelly Delessy, Eduardo B. Fernandez, Maria M.
Larrondo-Petrie, Jie Wu
"Patterns for Access Control in Distributed
Systems" by
Nelly Delessy, Eduardo B. Fernandez, Maria M.
Larrondo-Petrie, Jie Wu Distributed systems
introduce a new variety of security threats. The
organizations that own them must protect their
information assets from attacks. To do this we need
to start with highlevel models that represent the
security policies of the institution. We present
patterns that derive from traditional models: first,
the Policy-Based Access Control which models how to
decide if a subject is authorized to access an
object according to policies defined in a central
policy repository. Then we present
implementation-oriented patterns that implement the
Access Matrix or RBAC model: The ACL pattern allows
control access to objects by indicating which
subjects can access an object and in what way. There
is usually an ACL associated with each object. The
Capability pattern allows control access to objects
by providing a credential or ticket to be given to a
subject for accessing an object in a specific way.
Capabilities are given to the principal. |
|
"Network Congestion Control at the Application Layer"
by Paul Adamczyk, Federico Balaguer, Munawar Hafiz,
Craig L. Robinson
"Network Congestion Control at the Application
Layer" by
Paul Adamczyk, Federico Balaguer, Munawar Hafiz,
Craig L. Robinson Application-layer protocols
play a special role in network programming. Typical
programmers are more familiar with them and more
likely to implement them. Well-designed
application-layer protocols follow many patterns
that improve the performance of applications using
these protocols. We present a subset of these
patterns that focuses on the congestion control at
the application layer. |
|
“SEAMLESS APPLICATION” for Seamless
and Personal Mobile Computing
by Paul Austrem
"A Design Pattern for the Transfer of Running
Applications between Devices"
by Paul Austrem Mobile information systems are
growing in acceptance; in order for the vision of
true mobility to be realized users must be able to
seamlessly move running applications between devices
in an adhoc manner. The task of implementing
mechanisms to ensure that a running application is
successfully moved from one device to another can be
considered a generic task, wherein the same
fundamental design can be reused. This work tenders
a domain specific design pre-pattern that resolves
the problems associated with transferring a running
application from one device to another whilst
maintaining state and tailoring to capabilities. It
is meant to aid in the domain of mobile workers, and
can be applied as a container between the OS and the
applications or as a value-added service by ASPs.
The solution adds complexity and imposes conventions
on the extendibility of a system, but allows users
to maintain state so they can seamlessly move their
work between devices. |
|
'Fu
Dog' group, led by Ralph Johnson |
|
"SIMD: An Additional Pattern for PLPP (Pattern
Language for Parallel Programming)"
by Berna L. Massingill, Timothy G. Mattson, Beverly A.
Sanders
"SIMD: An Additional Pattern for PLPP (Pattern
Language for Parallel Programming)"
by Berna L. Massingill, Timothy G. Mattson, Beverly
A. Sanders Recent trends in hardware, such as
IBM's Cell Broadband Engine and GPUs that can be
used for general-purpose computing, have made widely
available systems for which a SIMD (Single
Instruction, Multiple Data) style of data-parallel
programming is appropriate. This paper presents a
pattern to help software developers construct
parallel programs for environments that support this
style of data parallelism. In this approach, the
program is viewed as a single thread of control,
with implicitly parallel updates to data. This
pattern is a new addition to the Pattern Language
for Parallel Programming (PLPP) presented in our
previous work. |
|
"Patterns for Refactoring to Aspects: an incipient
Pattern Language"
by Miguel Pessoa Monteiro, Ademar Aguiar
"Patterns for Refactoring to Aspects: an
incipient Pattern Language"
by Miguel Pessoa Monteiro, Ademar Aguiar
Aspect-Oriented Programming is an emergent
programming paradigm providing novel constructs that
eliminate code scattering and tangling by
modularizing crosscutting concerns in their own
aspect modules. Many current aspect-oriented
languages are backwards compatible extensions to
existing, popular languages, which opens the way to
aspectize systems written in those languages. This
paper contributes with the beginnings of a pattern
language for refactoring existing systems into
aspect-oriented versions of those systems. The
pattern language covers the early assessment and
decision stages: when it is feasible to refactor to
aspects, assessment of the necessary pre-requisites
and establishing the desirable strategy for the
refactoring process.
|
|
"A Pattern Story for
Combining Crosscutting Concern State Machines"
by Mark Mahoney, Tzilla Elrad
"A Pattern Story for Aspect-Oriented State
Machines" by
Mark Mahoney, Tzilla Elrad This paper
describes a solution to a real world problem using a
combination of well-known patterns. The problem
deals with combining implementations of state based
behaviors in a loosely coupled manner. The state
based behaviors are modeled with state machines and
implemented with the State Pattern. The coordination
between the loosely coupled state machines is
achieved with the Interceptor Pattern. The Abstract
Factory Pattern is used to shield the original state
machine developers from being aware that their state
machines are being combined in new and different
ways. |
|
"Design Pattern Implementations in Eos"
by Hridesh Rajan
"Design Patterns in Eos"
by Hridesh Rajan In earlier work, we showed
that the AspectJ notions of aspect and class can be
unified in a new module construct that we called the
classpect, and that this new model is simpler and
able to accommodate a broader set of requirements
for modular solutions to complex integration
problems. We embodied our unified model in the Eos
language design. The main contribution of this paper
is a case study, which considers the implementation
of the Gang-of-Four (GOF) design patterns [3] in Eos
to analyze the effect of new programming language
constructs on these implementations. We also compare
these implementations with the AspectJ's
implementation. Our result shows that the Eos
implementation showed improvement in 7 out of 23
design patterns, and are no worse in case of other
16 patterns. These improvements were mainly
manifested in being able to realize the intent of
the design patterns more clearly. The design
structures realized in the Eos implementation
provide supporting evidence for the potential
benefits of the unified model. |
|
"Telecom Service Delivery Design
Patterns"
by Atul Jain
"Service Delivery & Deployment Design Patterns"
by Atul Jain In today's rapidly expanding and
highly competitive telecom market, the goal of every
service provider is to create and bring to market
new, highly adaptive and compelling services which
will increase revenue and differentiate them from
the competition. From a service user perspective,
the consumer expects convenience, ease of use,
security and support to be always best connected.
Services are getting decoupled from the underlying
network infrastructure delivering those services
leading to a true service oriented architecture and
subscriber-centric approach to service delivery.
This paper attempts to bring few patterns that are
fundamental to the design of evolving service
networks. |
|
'Sun
Singer' group, led by Richard Gabriel |
|
"Hands-On Release Planning with Poker Chips"
by Jason Yip
"Hands-On Release Planning with Poker Chips"
by Jason Yip You've gathered enough user
stories or features that you're now interested in
figuring out what to include in the next release.
You have a reasonable view on how large everything
is and how many people will be available, though of
course at this stage of the game there is a
reasonable likelihood of variation. This is the
point in which you engage in the practice of Release
Planning. This paper is about a subtle adjustment to
how that last item is done and why that adjustment
is worth doing. |
|
"Rendering Patterns for Adaptive
Object-Models"
by Leon Welicki, Joe Yoder, Rebecca Wirfs-Brock
"A Pattern Language for Adaptive Object Models:
Part I - Rendering Patterns"
by Leon Welicki, Joe Yoder, Rebecca Wirfs-Brock
Adaptive Object-Model architectures are usually made
up of several smaller patterns. TypeObject [JW98]
provides a way to dynamically define new business
entities for the system. TypeObject is used to
separate an Entity from an EntityType. Entities have
Attributes, which are implemented with the Property
pattern [FY98]. The TypeObject pattern is used a
second time in order to define the legal types of
Attributes, called AttributeTypes. As is common in
Entity-Relationship modeling, an Adaptive
Object-Model usually separates attributes from
relationships. |
|
"Where to go and what to show - More patterns for a
pattern language of interactive information graphics"
by Christian Kohls, Tobias Windbrake
"Where to go and what to show - More patterns for
a pattern language of interactive information
graphics" by
Christian Kohls, Tobias Windbrake Interactive
graphics are an effective way of communication and
information delivery, especially for complex
domains. However, domain experts are rarely aware of
the potentials of interactive visual displays and
which interaction principles can be in charge for
communication and teaching purposes. In this paper
we extend a pattern language for interactive
information graphics and present four new patterns.
These patterns are all based on drag operations and
explain how to define flexible area restrictions and
how to change the visual appearance of elements
according to their positions. |
|
"Software Pattern Communities: Current Practices and
Challenges" by
Scott Henninger, Victor Correa
"Software Pattern Communities: Current Practices
and Challenges"
by Scott Henninger, Victor Correa Software
pattern designers and users have few resources
available to support pattern-based development
practices. Patterns are currently disseminated in
disjoint collections in various publishing mediums
with little or no technology support. As the number
of patterns and diversity of pattern types continue
to proliferate, pattern users and developers are
faced with difficulties of understanding what
patterns already exist and when, where, and how to
use or reference them properly. This defeats the
very purpose of patterns as a medium to encapsulate
and disseminate recurring design experiences. In
this paper, an initial study is done among a set of
pattern collections is performed to better
understand the difficulties related to improve
pattern-based support for support software
development activities. Based on the empirical
survey, challenges are identified that define
impediments to the federation of software patterns
into an interconnected body of knowledge. A Semantic
Web ontology is presented as an initial attempt at
solving some of these issues through the use of
Web-based ontologies. |
|
'Centaur'
group, led by Brian Foote |
|
"Stateless Process Enactment"
by Raf Haesen, Lotte De Rore, Stijn Goedertier, Monique
Snoeck, Wilfried Lemahieu, Stephan Poelmans
"Stateless Process Enactment"
by Raf Haesen, Lotte De Rore, Stijn Goedertier,
Monique Snoeck, Wilfried Lemahieu, Stephan Poelmans
An average company contains many information systems
to support the daily work of its employees. A set of
database and mainframe transactions enable the
consistent retrieval and modification of business
data. On top of those transactions, applications are
offered that support the execution of clearly
delineated activities, such as opening a new claim
case, registering damage, fraud detection or
indemnity payment. A business process represents the
coordination of a set of activities to achieve a
higherlevel business goal. For example, a claim
handling process coordinates different activities to
process insurance claims. The coordination of these
activities can be automated by means of a workflow
engine that interprets process descriptions and
manages the accompanying process instances. |
|
"Batch Lazy Loader"
by Ryan Senior
"Batch Lazy Loader Pattern"
by Ryan Senior Retrieve many related, Lazy
Loaded objects simultaneously, overcoming the
performance degradation that can be associated with
the Lazy Load pattern (called ripple loading by
[Fowler2003]). |
|
"Pattern design in the context space: A
methodological framework for designing auditory display
with patterns" by
Christopher Frauenberger, Tony Stockman, Marie-Luce
Bourguet
"Pattern design in the context space: A
methodological framework for designing auditory
display with patterns"
by Christopher Frauenberger, Tony Stockman,
Marie-Luce Bourguet This paper introduces a
methodological framework for contextual design with
patterns (paco). Its development was driven by the
lack of guidance in designing audio in the user
interface and by the need to communicate design
knowledge within the community and to designers
outside the field. The fundamental concepts
presented in this paper, however, are generic and
might be applicable similarly to other disciplines.
The framework provides methods to create, apply and
refine design patterns considering the
particularities of small or pre-mature scientific
disciplines which have less successful examples to
draw upon - such as auditory display. After
providing background on research in auditory display
and current design practice, a set of requirements
for the framework is developed, an appropriate
format for design patterns is discussed and the
context space is introduced as a key concept to
facilitate the workflow within the framework. An
example workflow shows the usage of the framework
during the life-cycle of a design pattern and we
elaborate on the next steps discussing an online
design tool and the evaluation of the framework. |
|
"The Selex Design Pattern: Decomposing State Machines
Cluttered by Message Multiplexing"
by Frank Roessler, Birgit Geppert
"The Selex Design Pattern: Decomposing State
Machines Cluttered by Message Multiplexing"
by Frank Roessler, Birgit Geppert State
machine specifications and their implementations are
often complex because they have many
responsibilities mixed together. A potential cause
for responsibility clutter is message multiplexing,
which means that one or more incoming and/or
outgoing messages of the state machine contain data
that belongs to different concerns. The Selex
pattern untangles responsibility clutter due to
message multiplexing without changing the external
behavior of the state machine. |
|
"A Metric for Measuring Abstraction Level of Design
Patterns" by
Atsuto Kubo, Hironori Washizaki, Yoshiaki Fukazawa
"A Metric for Measuring Abstraction Level of
Design Patterns"
by Atsuto Kubo, Hironori Washizaki, Yoshiaki
Fukazawa The abstraction level of the problem
treated by a design pattern has wide variety, from
architecture to near implementation. There is no
objective metric indicating the abstraction level of
the problems addressed by patterns. Thus, it is
difficult to understand abstraction level of each
pattern and to position a new pattern. In this
paper, a metric is proposed. It indicates relative
abstraction level of each pattern's problem. We
propose a metric obtained from inter-pattern
relationships. We also propose a visualization
method for the metric. Using such metric, we look
for helping developers on easily understanding
abstraction level of each pattern and therefore to
better decide about its usefulness for the problem
at hand. |
|
Committees
The PLoP Conference would not be a success without the
volunteer help of the shepherds and program committee members. The shepherds
devote hours of their time to helping authors improve their papers
pre-conference. The program committee members help organize the conference,
handle requests, and communicate with attendees.
We would like to thank all those who helped make PLoP 2007 a
complete success.
Conference Organization Committees
Conference Chair |
Ademar Aguiar (FEUP & INESC Porto,
Universidade do Porto, Portugal)
|
Program Chair |
Joseph Yoder (The Refactory Inc., USA)
|
Publicity & BootCamp |
Linda Rising(Independent Consultant, USA)
Bob Hanmer (Alcatel-Lucent, USA)
|
Registrations |
Jason Frye (Hillside Group, USA)
|
Web Design
|
Ana Ferreira
Miguel Carvalhais (id:D / FBAUP, Portugal)
|
Shepherding Committee
- Arno Schmidmeier
- Jason Yip
- Linda Rising
- Sami Lehtonen
- Eduardo B. Fernandez
- Rito Silva
- John Sinnott
- Berna Massingill
- Owen Astrachan
- Ademar Aguiar
- Dirk Riehle
- Kyle Brown
|
- Dave West
- Danny Dig
- Jorge L. Ortega Arjona
- Peter Sommerlad
- Bob Hanmer
- Michael VanHilst
- Michael Weiss
- Mark Snir
- Amir Raveh
- Roberta Coehlo
- Paul Adamczyk
- Michael Stal
- Gerard Meszaros
|
Programming Committee
- Ademar Aguiar
- Joseph Yoder
- Linda Rising
- Richard P. Gabriel
- Bob Hanmer
- Eduardo Fernandez
Richard P. Gabriel
- Rosana Teresinha Vaccare Braga
|
- Peter Sommerlad
- Ward Cunningham
- Jason Yip
- Juha Pärssinen
- Pavel Hruby
- Ralph Johnson
- António Rito Silva
- Jorge Ortega-Arjona
|
|