The mission of this multi-site reuse program is to create a set of software components for reuse without modification in APG products. A subset of these components is designed for multiple platforms (i.e. hardware and operating system), others are specifically designed for one platform. APG software products are developed for HP-UX/X-Window, MS-DOS/MS-Windows, and firmware platforms.
Reusable components are expected to meet the following criteria:
* Functionality is generic within our domain: meet the need of at least three products.
* Platform dependencies are isolated.
* Internal elements, in particular data structures, are hidden through encapsulation.
Workproducts and services other than just code are essential to facilitate reuse across platforms, products and organizations. The following items are provided together with reusable components:
* Documentation: Specifications, Application Programmer's Interface, Installation Guide.
* Test suites at component level for quality control independent of an application.
* An example application.
* Consultation to consumers.
* Commitment for maintainance over several years of component lifetime.
The content of a reusable component is very similar to that of a software product. The same is true for its development process, i.e. the component life cycle. We are using a scaled down software product life cycle to create and maintain software components. A panel of R+D section managers from all three sites chaired by the program manager reviews the projects and approves phase transitions. This panel holds telephone or video conferences every two week for this purpose. A council consisting of all APG R+D Managers meets three times per year and provides strategic guidance and funding for the reuse program.