Results 1 - 10
of
132
Design Pattern Implementation in Java and AspectJ
, 2002
"... AspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements are manifested in terms of better code locality, reusability, composability, and (un)pluggability. The degree of ..."
Abstract
-
Cited by 311 (3 self)
- Add to MetaCart
AspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements are manifested in terms of better code locality, reusability, composability, and (un)pluggability. The degree of
Evolving Object-Oriented Designs with Refactorings
, 2001
"... Refactorings are behavior-preserving program transformations that automate design evolution in object-oriented applications. Three kinds of design evolution are: schema transformations, design pattern microarchitectures, and the hot-spot-driven-approach. This research shows that all three are automa ..."
Abstract
-
Cited by 100 (2 self)
- Add to MetaCart
Refactorings are behavior-preserving program transformations that automate design evolution in object-oriented applications. Three kinds of design evolution are: schema transformations, design pattern microarchitectures, and the hot-spot-driven-approach. This research shows that all three are automatable with refactorings. A comprehensive list of refactorings for design evolution is provided and an analysis of supported schema transformations, design patterns, and hot-spot meta patterns is presented. Further, we evaluate whether refactoring technology can be transferred to the mainstream by restructuring non-trivial C++ applications. The applications that we examine were evolved manually by software engineers. We show that an equivalent evolution could be reproduced significantly faster and cheaper by applying a handful of general-purpose refactorings. In one application, over 14K lines of code were transformed automatically that otherwise would have been coded by hand. Our experiments identify benefits, limitations, and topics of further research related to the transfer of refactoring technology to a production environment.
Design Patterns as Language Constructs
- Journal of Object-Oriented Programming
, 1998
"... Design patterns have proven to be very useful for the design of object-oriented systems. The power of design patterns stems from their ability to provide generic solutions to reappearing problems that can be specialised for particular situations. The implementation of design patterns, however, has r ..."
Abstract
-
Cited by 83 (5 self)
- Add to MetaCart
Design patterns have proven to be very useful for the design of object-oriented systems. The power of design patterns stems from their ability to provide generic solutions to reappearing problems that can be specialised for particular situations. The implementation of design patterns, however, has received only little attention and we have identified four problems associated with the implementation of design patterns using conventional object-oriented languages. First, the traceability of a design pattern in the implementation is often insufficient; often the design pattern is ‘lost’. Second, since several patterns require an object to forward messages to other objects to increase flexibility, the self problem often occurs. Thirdly, since the pattern implementation is mixed with the domain class, the reusability of pattern implementations is often limited. Finally, implementing design patterns may present significant implementation overhead for the software engineer. Often, a, potentially large, number of simple methods has to be implemented with trivial behaviour, e.g. forwarding a message to another object. In this paper, a solution to these problems is presented in the context of the layered object model (LayOM). LayOM provides language support for the explicit representation of design patterns in the programming language. LayOM is an extended object-oriented language in that it contains several components that are not part of the conventional object model, such as states, categories and layers. Layers are used to represent design patterns at the level of the programming language and example layer types for eight design patterns are presented, i.e. Adapter, Bridge, Composite, Facade, State, Observer, Strategy andMediator. Since LayOM is an extensible language, the software engineer may extend the language model with abstractions for other design patterns. 1
Precise Specification and Automatic Application of Design Patterns
, 1997
"... Despite vast interest in design patterns, the specification and application of patterns is generally assumed to rely on manual implementation. We describe a precise method of specifying how a design pattern is applied: by phrasing it as an algorithm in a meta-programming language. We present a proto ..."
Abstract
-
Cited by 61 (9 self)
- Add to MetaCart
(Show Context)
Despite vast interest in design patterns, the specification and application of patterns is generally assumed to rely on manual implementation. We describe a precise method of specifying how a design pattern is applied: by phrasing it as an algorithm in a meta-programming language. We present a prototype of a tool that supports the specification of design patterns and their realization in a given program. Our prototype allows automatic application of design patterns without obstructing the source code text from the programmer, whom may edit it at will. We demonstrate pattern specification in meta-programming techniques and a sample outcome of its application. Keywords: Application of design patterns, tool support for design patterns, metaprogramming i Also available at: http://www.math.tau.ac.il/~eden/precise_specification_and_automatic_application_of_d esign_patterns.{ps.Z,rtf.zip} ii Supported in part by the German-Israeli Foundation for Scientific Research and Development (GIF) an...
From Patterns to Frameworks to Parallel Programs
, 2002
"... Parallel programming offers potentially large performance benefits for computationally intensive problems. Unfortunately, it is difficult to obtain these benefits because parallel programs are more complex than their sequential counterparts. One way to reduce this complexity is to use a parallel p ..."
Abstract
-
Cited by 51 (9 self)
- Add to MetaCart
(Show Context)
Parallel programming offers potentially large performance benefits for computationally intensive problems. Unfortunately, it is difficult to obtain these benefits because parallel programs are more complex than their sequential counterparts. One way to reduce this complexity is to use a parallel programming system to write parallel programs. This dissertation shows a new approach to writing object-oriented parallel programs based on design patterns, frameworks, and multiple layers of abstraction. This approach is intended as the basis for a new generation of parallel programming systems. A critical
Role-based refactoring of crosscutting concerns
- In AOSD ’05: Proceedings of the 4th international conference on Aspect-oriented software development
, 2005
"... In presenting this thesis in partial fulfilment of the requirements for an advanced degree at the University of British Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarly purpos ..."
Abstract
-
Cited by 42 (1 self)
- Add to MetaCart
(Show Context)
In presenting this thesis in partial fulfilment of the requirements for an advanced degree at the University of British Columbia, I agree that the Library shall make it freely available for reference and study. I further agree that permission for extensive copying of this thesis for scholarly purposes may be granted by the head of my department or by his or her representatives. It is understood that copying or publication of this thesis for financial gain shall not be allowed without my written permission. Computer Science
Design Pattern Modelling and Instantiation using DPML
, 2002
"... We describe the Design Pattern Modelling Language, a notation supporting the specification of design pattern solutions and their instantiation into UML design models. DPML provides a set of modelling constructs allowing design pattern solutions to be modelled and reused. A corresponding notation lin ..."
Abstract
-
Cited by 39 (0 self)
- Add to MetaCart
We describe the Design Pattern Modelling Language, a notation supporting the specification of design pattern solutions and their instantiation into UML design models. DPML provides a set of modelling constructs allowing design pattern solutions to be modelled and reused. A corresponding notation links design pattern solution elements to UML model elements, verifying fulfilment of the design pattern in the UML model. A prototype tool is described, together with an evaluation of the language and tool.
Pushing Reuse in Hypermedia Design: Golden Rules, Design Patterns and Constructive Templates
- In HYPERTEXT ‘98. Proceedings of the ninth ACM conference on Hypertext and hypermedia: links, objects, time and space—structure in hypermedia systems
, 1998
"... Reuse is increasingly strategic for reducing cost and improving quality of hypermedia design and development. In this paper, based on the design and development of a real hypermedia application, we classify and explore different types of reuse in hypermedia design. We show how constructive templates ..."
Abstract
-
Cited by 38 (0 self)
- Add to MetaCart
(Show Context)
Reuse is increasingly strategic for reducing cost and improving quality of hypermedia design and development. In this paper, based on the design and development of a real hypermedia application, we classify and explore different types of reuse in hypermedia design. We show how constructive templates constitute a practical technique for capturing the specification of reusable structures and components and enabling the automation of the production process. We also discuss connections between constructive templates and design patterns.
Damask: A Tool for Early-Stage Design and Prototyping of Cross-Device User Interfaces
- WORKSHOP AT CHI 2003, FORT LAUDERDALE
, 2003
"... People often use a variety of computing devices, such as PCs, PDAs, and cell phones, to access the same information. The user interface to this information needs to be different for each device, due to the different input and output constraints of each device. Currently designers designing such mult ..."
Abstract
-
Cited by 35 (2 self)
- Add to MetaCart
(Show Context)
People often use a variety of computing devices, such as PCs, PDAs, and cell phones, to access the same information. The user interface to this information needs to be different for each device, due to the different input and output constraints of each device. Currently designers designing such multi-device user interfaces either have to design a UI separately for each device, which is time consuming, or use a program to automatically generate interfaces, which often result in interfaces that are awkward. Each method also discourages iterative design, considered critical for creating good user interfaces. We are creating a system called Damask to support the early-stage design of user interfaces targeted at multiple devices. With Damask, the designer will design a user interface for one device, by sketching the design and by specifying which design patterns the interface uses. The patterns will help Damask generate user interfaces optimized for the other devices targeted by the designer. The generated interfaces will be of sufficient quality so that it will be more convenient to use Damask than to design each of the other interfaces separately, and the ease with which designers will be able to create designs will encourage them to engage in iterative design. Damask will also
Using Generative Design Patterns to Generate Parallel Code for a Distributed Memory Environment
, 2003
"... A design pattern is a mechanism for encapsulating the knowledge of experienced designers into a re-usable artifact. Parallel design patterns reflect commonly occurring parallel communication and synchronization structures. Our tools, CO 2 P 3 S (Correct Object-Oriented Pattern-based Parallel Program ..."
Abstract
-
Cited by 33 (11 self)
- Add to MetaCart
(Show Context)
A design pattern is a mechanism for encapsulating the knowledge of experienced designers into a re-usable artifact. Parallel design patterns reflect commonly occurring parallel communication and synchronization structures. Our tools, CO 2 P 3 S (Correct Object-Oriented Pattern-based Parallel Programming System) and MetaCO 2 P 3 S, use generative design patterns. A programmer selects the parallel design patterns that are appropriate for an application, and then adapts the patterns for that specific application by selecting from a small set of code-configuration options. CO 2 P 3 S then generates a custom framework for the application that includes all of the structural code necessary for the application to run in parallel. The programmer is only required to write simple code that launches the application and to fill in some applicationspecific sequential hook routines. We use generative design patterns to take an application specification (parallel design patterns + sequential user code) and use it to generate parallel application code that achieves good performance in shared memory and distributed memory environments. Although our implementations are for Java, the approach we describe is tool and language independent. This paper describes generalizing CO 2 P 3 S to generate distributed-memory parallel solutions.