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.