Getting Started

In January 1984, Manufacturing Productivity Operation (MPO) launched a fast track new product for just-in-time manufacturing, HPJIT, to be completed in nine months. From the start, the R & D team drew up several objectives for the project:

Several members of the project team had worked on the division's flagship product, Materials Management (MM/3000). Written several years ago, these engineers had encountered the difficulty in supporting this product. We had ``cloned'' so much of the product, meaning that a similar routine could exist in as many as 100 different transactions or batch programs.

We had many service requests that we classified as ``generic'', indicating that this problem existed in many transactions or batch programs and would involve a large effort to repair. Our dilemma was that although the code was almost the same, we still had to touch all the pieces of code that had been cloned to fix a defect. Therefore, at the beginning of the project, we decided to spend some of the project's development time creating some reusable code.

We placed many of the common calls to our tools layer inside of utility subroutines that could be called from any of the product modules (see Figure 1). We wrote this reused code for data base searches, screen handling, and transaction logging, as well as other more specific HPJIT functions. By analyzing cloned code, we produced reuse code and essentially did domain analysis at an ad hoc level.

\begin{figure}\vspace{4in}
\begin{center}
Figure 1
\end{center}\end{figure}

The initial impetus behind the development of this reuse code was to avoid duplication of Pascal source code, but we also designed each routine for maximum flexibility so as to be usable by transactions and modules yet to be developed. Through the use of flexible common utilities, we newrly eliminated the duplication of Pascal source code throughout the HP JIT software.