Title
Deferring design pattern decisions and automating structural pattern changes using a design-pattern-based programming system
Abstract
In the design phase of software development, the designer must make many fundamental design decisions concerning the architecture of the system. Incorrect decisions are relatively easy and inexpensive to fix if caught during the design process, but the difficulty and cost rise significantly if problems are not found until after coding begins. Unfortunately, it is not always possible to find incorrect design decisions during the design phase. To reduce the cost of expensive corrections, it would be useful to have the ability to defer some design decisions as long as possible, even into the coding stage. Failing that, tool support for automating design changes would give more freedom to revisit and change these decisions when needed. This article shows how a design-pattern-based programming system based on generative design patterns can support the deferral of design decisions where possible, and automate changes where necessary. A generative design pattern is a parameterized pattern form that is capable of generating code for different versions of the underlying design pattern. We demonstrate these ideas in the context of a parallel application written with the CO2P3S pattern-based parallel programming system. We show that CO2P3S can defer the choice of execution architecture (shared-memory or distributed-memory), and can automate several changes to the application structure that would normally be daunting to tackle late in the development cycle. Although we have done this work with a pattern-based parallel programming system, it can be generalized to other domains.
Year
DOI
Venue
2009
10.1145/1498926.1498927
ACM Trans. Program. Lang. Syst.
Keywords
Field
DocType
design decisions,generative design pattern,structural pattern change,design-pattern-based programming system,parallel programming,design process,incorrect design decision,underlying design pattern,additional key words and phrases: design patterns,object-oriented frameworks,design decision,design phase,pattern-based parallel programming system,deferring design pattern decision,software maintenance,fundamental design decision,design change,shared memory,distributed memory,design patterns,design pattern
State pattern,Programming language,Strategy pattern,Computer science,Software design pattern,Specification pattern,Design process,Software development,Design pattern,Generative Design
Journal
Volume
Issue
ISSN
31
3
0164-0925
Citations 
PageRank 
References 
8
0.46
39
Authors
4
Name
Order
Citations
PageRank
Steve Macdonald113913.66
Kai Tan21008.26
Jonathan Schaeffer31929220.77
D. Szafron41579210.88