Softwareprofessionals rely on internaldocumentationas an aid in understanding programs. Unfortunately, the documentation for most programs is usually out-of-date and cannot be trusted. Withoutit, the only reliable and objective informationis thesource code itself. Personnel must spend an inordinate amount of time exploring the system bylookingat low-levelsource code togain an understanding of its functionality. One way of producing accurate documentation for an existing software system is through reverse engineering. This paper outlines a reverse engineering methodologyfor buildingsubsystem structures out of software building blocks, and describes how documenting a software system with views created by this process can produce numerous bene ts. It addresses primarilythe needs of the software engineer and technical manager as document users. Key words: Software documentation, reverse engineering, software maintenance.
Scott R. Tilley, Hausi A. Müller, Mehmet A. O