Proceedings of the 18th annual conference on Computer graphics and interactive techniques
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
PVM: Parallel virtual machine: a users' guide and tutorial for networked parallel computing
Automatic code generation from design patterns
IBM Systems Journal
Pattern hatching: design patterns applied
Pattern hatching: design patterns applied
Separating features in source code: an exploratory study
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Building parallel applications using design patterns
Advances in software engineering
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
MPI: The Complete Reference
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects
Design pattern implementation in Java and aspectJ
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
From desgign patterns to parallel architectural skeletons
Journal of Parallel and Distributed Computing
Design erosion: problems and causes
Journal of Systems and Software
The Enterprise Model for Developing Distributed Applications
IEEE Parallel & Distributed Technology: Systems & Technology
Implementing Scoped Behavior for Flexible Distributed Data Sharing
IEEE Concurrency
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
A pattern-based J2EE application development environment
Nordic Journal of Computing
From patterns to frameworks to parallel programs
Parallel Computing - Special issue: Advanced environments for parallel and distributed computing
Design Pattern Rationale Graphs: linking design to source
Proceedings of the 25th International Conference on Software Engineering
Using generative design patterns to generate parallel code for a distributed memory environment
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the 17th IEEE international conference on Automated software engineering
Pattern-Based Parallel Programming
ICPP '02 Proceedings of the 2002 International Conference on Parallel Processing
Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies
Core J2EE Patterns (Core Design Series): Best Practices and Design Strategies
Making patterns explicit with metaprogramming
Proceedings of the 2nd international conference on Generative programming and component engineering
Using AspectJ to separate concerns in parallel scientific Java code
Proceedings of the 3rd international conference on Aspect-oriented software development
Documenting Maintenance Tasks Using Maintenance Patterns
CSMR '04 Proceedings of the Eighth Euromicro Working Conference on Software Maintenance and Reengineering (CSMR'04)
Adaptable Concern-Based Framework Specialization in UML
Proceedings of the 19th IEEE international conference on Automated software engineering
Evaluation of Tool Support for Architectural Evolution
Proceedings of the 19th IEEE international conference on Automated software engineering
Architectural modifications to deployed software
Science of Computer Programming
RoadMapAssembler: a new pattern-based J2EE development tool
CASCON '05 Proceedings of the 2005 conference of the Centre for Advanced Studies on Collaborative research
Crosscutting Concerns in Parallelization by Invasive Software Composition and Aspect Weaving
HICSS '06 Proceedings of the 39th Annual Hawaii International Conference on System Sciences - Volume 09
Software Architecture as a Set of Architectural Design Decisions
WICSA '05 Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture
Object-Oriented and Classical Software Engineering
Object-Oriented and Classical Software Engineering
Is MPI suitable for a generative design-pattern system?
Parallel Computing - Algorithmic skeletons
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Object-oriented pattern-based parallel programming with automatically generated frameworks
COOTS'99 Proceedings of the 5th conference on USENIX Conference on Object-Oriented Technologies & Systems - Volume 5
Patterns for parallel programming
Patterns for parallel programming
Pattern-based AI scripting using ScriptEase
AI'03 Proceedings of the 16th Canadian society for computational studies of intelligence conference on Advances in artificial intelligence
Parallelisation of sequential programs by invasive composition and aspect weaving
APPT'05 Proceedings of the 6th international conference on Advanced Parallel Processing Technologies
Computer Languages, Systems and Structures
An assessment of design patterns' influence on a Java-based e-commerce application
Journal of Theoretical and Applied Electronic Commerce Research
Hi-index | 0.00 |
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.