'Girl with a Scarf' group, led by Linda Rising
|  |
"Attack 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. |  |
"A Design Pattern for the Transfer of Running Applications between Devices" 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 Aspect-Oriented 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 Patterns 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. |  |
"Service Delivery & Deployment 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. |  |
"A Pattern Language for Adaptive Object Models: Part I - Rendering Patterns" 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. |  |
"A Pattern for Protein Identification" by Jens Lichtenberg, Lonnie Welch
"A Pattern for Protein Identification" by Jens Lichtenberg, Lonnie Welch
This paper presents the protein identification problem in form of a design pattern. Not unlike biological patterns, who describe reoccurring structures within biological objects, a design pattern in regard of software engineering is seen as the description of a thing, which is alive and the process, which creates it. The pattern presented in this article addresses the identification of the correct protein based on a given peak list. It provides a process on how to infer the identity and primary structure of such protein based on searches of existing protein mass databases and a process describing how to create these databases. The design pattern for protein identification enables software developers to create their own protein mass fingerprinting solutions, which can be adjusted, modified and extended to an experiment's specific needs. To visualize and enhance the understanding of the pattern a process flowchart of protein identification is presented as well as a local implementation of the pattern. |  |
'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 Pattern" 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. |  |