A. J. Gray, ``Development of an Unanticipated Member of a Program Family'', M.S. Thesis, Technical Report CS97-560, Department of Computer Science and Engineering, University of California, San Diego, October 1997.

Warning: this thesis was produced with MS Word and cannot be viewed under some postscript viewers. However, it has printed fine on MS Windows and Sun Unix systems.


In today's rapidly changing world, software systems will inevitably evolve in response to evolving requirements, but software maintenance activities-such as enhancing function, repairing defects, and retargeting to other platforms-are very expensive, often consuming over 70% of project resources. Exacerbating this situation is the fact that most software programs will ultimately exist in multiple similar-but different-versions to accommodate varying requirements. To address these issues, Parnas proposed a method for developing and maintaining families of related programs. However, Parnas' method presumes that the software is planned to anticipate the design decisions that differentiate the variants and that the family members are developed incrementally rather than sequentially. Motivated by the need to make unanticipated modifications to a software tool, we used Griswold's "just-in-time architecture" concept and retroactively applied Parnas' program family principles to an existing system in order to create an unanticipated member of a program family.