PLoP®
2010 Conference
Proceedings
17th CONFERENCE ON PATTERN
LANGUAGES OF PROGRAMS
October 16th - 18th, 2010, Reno, NV, USA
Proceedings
Download the PLoP
2010 Frontmatter (PDF)
PLoP 2010 is in cooperation with ACM, AGILE, & OOPSLA
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)
’10 October 16 - 18th in Reno, Nevada, 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-4503-0107-7
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 2010
Welcome to PLoP10, the
17th
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 development, collaboration, and more,
much more.
To accomplish this, the conference program offers a rich
set of activities that altogether promote a friendly and effective
environment to share expertise, and to give and get feedback from fellow
authors. The pre-conference activities start Friday morning (October 15th)
at the BootCamp, a special session aimed at people new to patterns
and/or PLoP, led by Robert Hanmer and Linda Rising. The main conference
starts on Saturday morning (October 16th).
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. We have five groups of five to six papers each, which were selected
from an initial set of around 36 submissions, and after a considerable
period of shepherding. Papers of the Writing Group will have in addition
the
opportunity of being evolved during PLoP with the
mentoring of experienced pattern
writers.
We are excited to have keynotes from Joshua Kerievsky about “A
Timeless Way Of Communicating: Alexandrian Pattern Languages”
and
Rebecca Wirfs-Brock
who asks: “Nature of Order: Inspiration or Esoteric Distraction?”.
Eduardo Guerra
will give a presentation about “Framework
Evolution: from Inheritance to Metadata“.
There will be four focus groups this year which will give opportunity to
inspired discussions.
Other activities, such as the 'Birds of a Feather' (BoF), let you
informally organize your own session about topics you are interested in,
or to attend already organized working sessions. Just announce them or
subscribe to them!
After the conference, the papers are strongly encouraged
to be further evolved in order to
accommodate the suggestions for improvement gathered
during the discussions at the
conference. A final version of evolved papers will be
published in the ACM Digital Library as PLoP 2010 Proceedings.
This year PLoP is co-located with the SPLASH conference, in the
wonderful city of Reno/Tahoe.
And last but not least, we have the Games, a well-established and very
important activity at PLoP. Guided by Robert Hanmer, the games will help
us all on ice-breaking, to exercise 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. Of course none of
these games is related to casino gambling ;-).
We would like to thank all authors, shepherds, reviewers, and Program
Committee members for their time and collaboration with PLoP. Thank you!
All of these words just to say that we wish you an amazing and
productive time during PLoP10!
Christian Kohls, PLoP 2010 Chair
PLoP 2010
Conference Description
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 2010 was held in
Reno, NV October 16-18th, 2010.
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 '10 conference also
hosted presentations concerning a number of hot topics in the patterns
community. Following are a list of presentations from PLoP 2010:
- "A Timeless Way Of Communicating: Alexandrian Pattern Languages
"
by Joshua Kerievsky
- "Nature of Order: Inspiration or Esoteric Distraction?"
by Rebecca Wirfs-Brock
- "Framework Evolution: from Inheritance to Metadata"
by Eduardo Guerra
- "Supporting Alignment of Business and IT using Reference
Models and Reference Architectures"
by Jason Hogg
- "Focus Group on Patterns Languages: Addressing Challenges"
by Vijay Kumer Eranti, Shivanshu K. Singh, and M.E. Fayad
- "Focus Group on Unified Data Mining
Engine: Addressing Challenges"
by Shivanshu K. Singh, Vijay Kumer Eranti, and M.E. Fayad
- "Focus Group on Organizing Recurring PLoP Events"
by Lise Hvatum
The table of contents
is organized by the workshop groups and the chairs as they were
presented at PLoP.
Table of Contents
Writers' Workshops |
A.
'Frameworks & Environments' group, led by Richard P. Gabriel
|
|
"Metaprogramming in Ruby -- A Pattern
Catalog" by
Sebastian Günther, Marco Fischer
"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. |
|
"Core Patterns of Object-Oriented
Meta-Architectures"
by Hugo Sereno Ferreira, Filipe Figueiredo Correia, Joseph
Yoder, Ademar Aguiar
"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. |
|
"Design Principles for Internal
Domain-Specific Languages: A Pattern Catalog illustrated by
Ruby" by Sebastian
Günther, Thomas Cleenewerck
"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. |
|
"Architectural Patterns for
Metadata-based Frameworks Usage"
by Eduardo Guerra, Clovis Fernandes, Fábio Silveira
"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. |
|
B. 'Process
& Design' group, led by Ralph Johnson |
|
"Persistent State Pattern"
by André Saúde, Ricardo Victório, Gabriel Coutinho
"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. |
|
"Observations on the Observer Pattern "
by Christian Köppe
"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. |
|
"A Pattern for a Sensor Node"
by Anupama Sahu, Eduardo B. Fernandez, Mihaela Cardei,
Michael Van Hilst
"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. |
|
"A Pattern System of Underlying Theories
for Process Improvement"
by Michael Van Hilst, Eduardo B. Fernandez
"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. |
|
"Parameterized Strategy
Pattern" by
Ognjen Sobajic,
Mahmood Moussavi, Behrouz Far |
|
C. 'People & Ideas' group, led by
Linda Rising |
|
"Additional Patterns for Fearless Change
III"
by Mary Lynn Manns, Linda Rising
"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 Organizing PLoP" by Lise
Hvatum
"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.
|
|
"The Structure of Patterns"
by Christian Kohls
"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. |
|
"Patterns for Sustainable Development"
by Linda Rising, Karl Rehmer
"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. |
|
"Patterns for Online
Discussions" by Jill O'Sullivan, Raul Zevallos |
|
D. 'Security & Systems' group, led by
Rebecca Wirfs-Brock |
|
"Towards a Pattern Language for FLOSS
Development"
by Christoph Hannebauer, Vincent Wolff-Marting, Volker Gruhn
"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. |
|
"Dynamic Model Evolution"
by Atzmon Hen-Tov, David H. Lorenz, Lena Nikolaev, Lior
Schachter, Rebecca Wirfs-Brock, Joseph W. Yoder
"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 Security Pattern for Data Integrity
in P2P Systems" by
Benjamin Schleinzer, Nobukazu Yoshioka
"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. |
|
"Secure Chained Observer Pattern in
Distributed Systems"
by Vivek Gondi and Datta G
"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. |
|
E. 'Reliability & Trust' group, led by
Robert Hanmer |
|
"Patterns for Building Dependable
Systems with Trusted Bases"
by Eunsuk Kang and Daniel Jackson
"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 Measuring Performance-Related
QoS Properties in Service-Oriented Systems"
by Ernst Oberortner, Uwe Zdun, Schahram Dustdar
"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.
|
|
"Software Rejuvenation"
by Robert Hanmer
"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. |
|
"Sharing Bad Practices in Design to
Improve the Use of Patterns"
by Cédric Bouhours, Hervé Leblanc, Christian Percebois
"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. |
|
"Pattern-oriented Knowledge Model for
Architecture Design"
by Kiran Kumar, Prabhakar T.V.
"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. |
|
"The AnyCorrectiveAction
Stable Design Pattern"
by Shivanshu Singh, Mohamed Fayad |
|
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 2010 a
complete success.
Conference Organization Committees
Conference Chair |
Christian Kohls |
Publicity & BootCamp |
Linda Rising(Independent
Consultant, USA)
Bob Hanmer (Alcatel-Lucent,
USA) |
Publications |
Pam Rostal |
Director of Local Operations |
Joseph Yoder (The Refactory Inc., USA)
|
Registrations |
Jason Frye (Hillside Group, USA)
|
Web Design
|
Ana Ferreira
Miguel Carvalhais (id:D / FBAUP, Portugal)
Jason Frye (Hillside Group, USA)
|
Shepherding Committee
- Alejandra
Garrido
- António
Rito Silva
- Berna L.
Massingill
- Bob Hanmer
- Cecilia
Haskins
- Christian
Kohls
- Daniel May
- Eduardo
Fernandez
- Eugene
Wallingford
- Fernando
Castor Filho
- Hironori
Washizaki
- Jorge L.
Ortega Arjona
- Joseph
Bergin
- Joseph
Yoder
- Kyle Brown
-
Linda Rising
|
-
Lise Hvatum
-
Marcelo d'Amorim
-
Mary Lynn Manns
-
Michael Weiss
-
Neil Toussaint
-
Ofra Homsky
-
Paul Adamczyk
-
Peter Sommerlad
-
Rebecca Wirfs-Brock
-
Roberta Coelho
-
Rosana Teresinha Vaccare Braga
-
Scott E. Schneider
-
Terry Terunobu Fujino
-
Uwe Zdun
-
Wolfgang Herzner
|
Programming Committee
- Ademar Aguiar (INESC Porto/University of Porto, Portugal)
- Joseph Yoder (The Refactory Inc., USA)
- Linda Rising (Independent Consultant, USA)
- Rebecca Wirfs-Brock (Wirfs-Brock
Associates, USA)
- Bob Hanmer (Alcatel-Lucent, USA)
- Uwe Zdun (Vienna Technical University, Austria)
- Eduardo Fernandez (Florida Atlantic University, USA)
- Rosana Teresinha Vaccare Braga (ICMC, University of São Paulo, Brazil)
- Peter Sommerlad (Institut für Software, Switzerland)
- Jason Yip (ThoughtWorks, Australia)
- Klaus Marquardt (Dräger Medical, Germany)
- Juha Pärssinen (VTT, Technical Research Centre of Finland, Finland)
- Pavel Hruby (CSC, Denmark)
- Lise Hvatum (Schlumberger, USA)
- Pam Rostal, USA
- Nobukazu Yoshioka (National Institute of Informatics, Japan)
- António Rito Silva (INESC-ID/Technical University of Lisbon, Portugal)
|
|