Two factors limit the utility of reverse engineering technology for ma
ny distributed software systems. First, with the exception of tools th
at support Ada and its explicit tasking constructs, reverse engineerin
g tools fail to capture information concerning the flow of information
between tasks. Second, relatively few reverse engineering tools are a
vailable for programming languages in which many older legacy applicat
ions were written (e.g., Jovial, CMS-2, and Various assembly languages
). In this paper, we describe approaches that were developed for overc
oming these limitations. In particular, we have implemented an approac
h for automatically extracting task flow information from a command an
d control system written in CMS-2. Our approach takes advantage of a s
mall amount of externally provided design knowledge in order to recove
r design information relevant to the distributed nature of the target
system.