Pattern Based Software Re-engineering: A Case Study

Author(s): William C. Chu, Chih-Wei Lu, J.P. Shiu, Xudong He
Venue: IEEE
Date: 1999

Type of Experiement: Case Study
Class/Experience Level: Professional


Number of Projects: 1
Type of Projects: open source
Language: Java
Size of Projects: large
Design Patterns Analyzed: Pipes, Mediator, Observer, Strategy, State, Command

Software Domain: Parallel programming environment

In this case study a large Parallel Programming Generation Environment is re-engineered by using design patterns, to become more adaptable to the expected changes. This software system was designed as a program generator for solving differential equations. It is in need of refactoring because it contains subcomponents from vary different domains(GUI, Algorithms, Parallel Communication Models) which are tightly coupled.

During recovery of design nine major components were identified. A few new component library are introduced during refactoring. Application Process management framework utilizes, mediator, strategy, command. These seem appropriate since APM deals with human interaction with the system and these patterns are widely used in that domain. The CS-agent coordinates low-level services in the system and takes advantage of the factory pattern to allow use of any algorithm, in any stage of the PPGE process.