"Systematic OO Reuse - A Tale Of Two Cultures"

Leader(s):
Martin L. Griss, HP Laboratories, and
a co-conspirator/co-leader to be named
(Martin will also act as envoy to the case-study group)

Scope:
Many software organizations adopt object technology (OT), hoping for substantial reuse, yet do little to develop specific reuse-enhancing plans or use known and emerging methods of systematic reuse (such as CFRP-based process, Creator/Utilizer organizations, Domain Engineering methods, system and component generators). While acknowledging that reuse is a balanced People, Process and Technology issue, most OO researchers focus on purely technical issues - frameworks and patterns seem most popular now, and business objects are coming on strong. OO companies seem to focus only on selling training on the latest methodology, and tools to support it, or low level libraries.

This problem is in part fueled by two communities that rarely meet each other or read each others literature, in part because of historically different foci (software engineering in the large vs. rapid development in the small). There is little general software engineering education in most CS programs, and specifically almost no reuse engineering in most computer science programs, while many do (try) to teach OO methods. But it is time for these two cultures to work much more closely together.

There are many TECHNICAL issues: For example, how should Domain Engineering and OOA/OOD relate - do we "reuse adapt" a conventional OO method, or do we take pieces of an OO method and use it within some DA method (e.g, FODA->JODA)? How and where do system generators and domain-specific (non-OO?) languages fit within an OO design and implementation approach? Which DA/DE methods work best with OO? Which reuse tools should be used? How do 3C and DFR guidelines get injected. How do Patterns and Use-cases relate? How does a repository of models, patterns and components get used in an OO based DWR?

There are many PROCESS and PEOPLE issues, ranging from education, management, to staging incremental/iterative development, to using OO metrics to guide the evolution of a repository, components and systems, to organization of Creator/Utilizer group (or reuse teams). How should BPR and OO-BPR be used to design reuse organizations and processes. How does this relate to OO reuse support tools development and business object management?

We have attempted to collect, tabulate and discuss the most important of these issues in our working group sessions.

Goals:
1. Collect information/examples of specific attempts to combine some systematic reuse techniques with OO methods and technology (e.g., REBOOT, EDLC, ...)

2. Tabulate OO-specific issues that need changes or cause difficulties with OO methods or Reuse Techniques

3. Develop a short list of recommendations and questions for other working groups to consider, and actively infiltrate/lobby with those groups to solicit feedback on the list

4. Suggest directions of education, practice and research that integrate the best of both, or that would lead to an acceleration of integration of best practice.

Process:
1. We used a "Bruce Anderson" model of rapid merge small group writing and merging, with short presentations, to synthesize our knowledge.

2. As appropriate we allowed short presentations by attendees.

3. We periodically send out "envoys" to other working groups to convey interim results, surface issues.

Preparation:
Our preparation was to think about topic and issues, bring "short lists", copies of references, and material to show.

References:
1. Adele Goldberg & Kenny Rubin's new book "Succeeding with Objects" (has a lot of reuse organization & process discussion)

2. The REBOOT book - Software Reuse, a Holistic Approach - Edited by EA Karlsson.

3. My Object Magazine columns on software reuse, Feb 95, May 95, etc.

Working Group Final Report