Affiliation:
1. University of Waterloo, ON, Canada
2. University of Alberta, Edmonton, AL, Canada
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 CO
2
P
3
S pattern-based parallel programming system. We show that CO
2
P
3
S 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.
Publisher
Association for Computing Machinery (ACM)
Reference64 articles.
1. TreadMarks: shared memory computing on networks of workstations
2. Anvik J. 2002. Evaluating generative parallel design patterns. M.S. thesis Department of Computing Science University of Alberta. Anvik J. 2002. Evaluating generative parallel design patterns. M.S. thesis Department of Computing Science University of Alberta.
3. Apache Jakarta Project. 2005. http://jakarta.apache.org/velocity Apache Jakarta Project. 2005. http://jakarta.apache.org/velocity
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献