Project Goals and Processes :

The ability of a software system to adapt through its own mechanisms, or be adapted by developers, is a critical concern in Software Engineering. This is especially true in spirit of Brooks [Brooks86] who states that success brings change to most software systems, and often, the greater the success, the greater changes. To assist designers in creating more adaptable software, the concept of design patterns is being explored in both industrial and research environments. Design patterns are high-level abstractions that capture solutions to recurring problems within particular context. Due to their utility, design patterns are drawing a growing interest, as manifested through their use in commercial frameworks, notably, the Java 2 Platform, Enterprise Edition (J2EE) - an open standard for implementing and deploying component-based enterprise applications.

The goal of this project is to develop methods for organizing design patterns which would better reflect the impact of design patterns upon software adaptability and support efficient search, and effective deployment, of design patterns for the development of adaptable software. The following systematic, seven step process is proposed:

1. Investigate current design pattern classification schemes (e.g., [Gamma95], [Pree95], [Irving96] and [Schmidt99]).

2. Develop a method for estimating the impact of design patterns upon software adaptability.

3. Using the method of estimation, propose a first-cut design pattern classification scheme to support the development of adaptable software.

4. Establish an experimental environment, e.g., by installing the J2EE (Pet Store) reference application.

5. Using scenario analysis, identify changes and deploy the first-cut classification scheme to implement modifications to the reference application.

6. Reflect this experience into the impact estimating method (step 2).

7. Propose a scenario-tested design pattern classification scheme to support the development of adaptable software.

Steps 1 and 2 are currently underway and being explored by a five member research team together with potential industry collaborators including Alcatel, Centauri NetSystems and Motorola. It is anticipated that this research will have an immediate impact upon software engineers, consultants and enterprise software vendors who need to develop more adaptable software.