Joseph Yoder and The Refactory, Inc. provided support and brought a sweeping variety of knowledge, skills, experience, and expertise to the Pre-Production Reliability Development (PPRD) project. The PPRD project greatly enhanced the quality, usability, integrity, and intelligence of the design of the project, while accelerating the project’s completion.

The PPRD project is a web-based application that resides on our Caterpillar intranet. The PPRD is part of a suite of tools known as QRWB. This application is responsible for acquiring data about the performance of equipment in the field, reporting this data, and presenting an analysis of them. It is a three-tiered architecture that uses a Java Applet for the client, Java Servlets as the middle tier, and Oracle for the backend tier. The project uses Java as the development language. Java Servlets are being used on the server side to support the Java Applet clients. The development environment is IBM's Visual Age for Java. The server environment is built using IBM's WebSphere server, with Oracle 8 on the backend.

This project demanded expertise in the following areas:

Project Design Architect:

providing the project design practice of User Story Boards, Use Cases, Task Cards, Test Design, and Paired Programming.

  • The User Story Boards outline the functionality of the project this usually includes pictures of the screens that the end users interact with.
  • The Use Cases are a conglomeration of the User Story Boards that show what the steps and activities that an end user will have to perform.
  • Task Cards break down the development cycles that represent two to three-week development iterations.
  • Test Design: Tests are written first, then the program itself is written to support the test.
  • Paired Programming is the concept that two heads are better than one. The idea being is two programmers are more productive and produce better code, and that knowledge about the program and best practices are best spread one-on-one.

Object/Data Persistence layer frameworks:

providing a set of intelligently designed object-oriented classes and frameworks to interface with the database. This reduced the development time for the servlets that interfacing with the database by allowing the code for reading and writing values to and from the database to be shared and reused.

Security frameworks:

this is a reusable robust, flexible, and scalable layer which can be used with any of our applications to provide security that permits end users to allow/disallow functionality or to access to particular data.

Evolution of our TUF frameworks (The Universal Frameworks):

within Caterpillar, there is a set of common frameworks (TUF) that most of our web-based client/server applications use. These frameworks exist in the form of Java. Joe acquainted us with the fact that frameworks must evolve. Joe aided us in adapting and evolving the frameworks to better suit development and release time of the project.

GUI-Data Mediator/Adapter Model:

Helped design and develop a reusable framework that easily aids the flow of data to and from domain objects tied to the database and the GUI user interface.

JUnit test code:

this is a set of Java code that assists in the component testing of the project. A classic example of this is to write a JUnit test code to test the Servlet's ability to read from and write to the database.

Prior to the project design, The Refactory taught a large group of the Caterpillar employees an object-oriented Design Patterns class. This class was based on the book Design Patterns - Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Indeed, Ralph Johnson is a principal collaborator with The Refactory, and participated in the early phases of the PPRD project.

Our pattern training exposed us to common patterns found in the design of good object-oriented programs. Armed with the ability to recognize patterns and apply them in your programs, one’s programming and design communication skills are both enhanced. We found these ideas helped us to better refactor our code, and helped it on its way towards constituting a truly reusable framework for our domain. It is a rare privilege to be able to get this kind of training straight from the horses' mouths.

Paul Saletzki                                                           Duane Parker
PPRD Project                             Manager QRWB Team Leader
Caterpillar, Inc.                                                    Caterpillar, Inc.