• DocumentCode
    2323316
  • Title

    Recovery of software design, state-machines and specifications from source code

  • Author

    Prywes, Noah ; Rehmet, Paul

  • Author_Institution
    Computer Command & Control Co., Philadelphia, PA, USA
  • fYear
    1996
  • fDate
    21-25 Oct 1996
  • Firstpage
    279
  • Lastpage
    288
  • Abstract
    While the end objective of the process described in this paper is recovery of software design, state-machines and specifications from source code, these capabilities depend on analysis and documentation of source code which are useful in themselves for software understanding. The paper therefore explains first the software analysis and construction of a software documentation database. It then follows with discussion of recovery of state machines and specifications. The focus in explaining the analysis of source code is in particular on the following. First, the recovery of design becomes significant when applied to large scale software. The source code may be in a large number of files which are analyzed sequentially. A database is constructed, where the code in each file is also used to update previously processed files. Second, the software understanding, as well as the state machines and specifications are based on discovery of a hierarchical software architecture that supports systematic software browsing and generation of state machines and specifications of respective components. The architecture discovery process must be human-guided through input of appropriate parameters that control the selection of software components based on including desired functions, critical operations and sizes. Finally, the state machines or specifications entities tend to be very voluminous. Depending on their intended use, their number can be reduced under user control
  • Keywords
    finite state machines; reverse engineering; software engineering; system documentation; systems re-engineering; hierarchical software architecture; software design; source code; specifications; specifications entities; state-machines; Command and control systems; Computer architecture; Databases; Documentation; Large-scale systems; Software architecture; Software design; Software maintenance; Software tools; Tree graphs;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Engineering of Complex Computer Systems, 1996. Proceedings., Second IEEE International Conference on
  • Conference_Location
    Montreal, Que.
  • Print_ISBN
    0-8186-7614-0
  • Type

    conf

  • DOI
    10.1109/ICECCS.1996.558574
  • Filename
    558574