References of General_Information_about_Reverse_Design

    Using Modern Design Practices to Upgrade Aging Software Systems, Robert N. Britcher and James J. Craig
    @Article{	  britcher.craig:using,
      author	= {Robert N. Britcher and James J. Craig},
      title		= {Using Modern Design Practices to Upgrade Aging Software
    		  Systems},
      journal	= {IEEE Software},
      year		= {1986},
      pages		= {16-24},
      month		= may,
      class		= {Software_Reverse_Engineering, Reverse_Design,
    		  General_Information_about_Reverse_Design}
    }
    
    
    Recognizing Design Decisions in Programs, Spencer Rugaber and Stephen B. Ornburn and Richard J. LeBlanc, jr.
    @Article{	  rugaber.ornburn.ea:recognizing,
      author	= {Spencer Rugaber and Stephen B. Ornburn and Richard J.
    		  LeBlanc, jr.},
      title		= {Recognizing Design Decisions in Programs},
      journal	= {IEEE Software},
      year		= {1990},
      volume	= {7},
      number	= {1},
      pages		= {46-54},
      month		= jan,
      abstract	= {The importance of capturing design decisions is described.
    		  Design desicions are categorized in (1) composition and
    		  decomposition (2) encapsulation and interleaving (3)
    		  generalization and specialization (4) representation (5)
    		  data and procedures (6) function and relation.
    		  
    		  The detection of design decision is bottom-up and
    		  incremental with the following activities: (1) interleaving
    		  program fragments (2) representing structured control flow
    		  (3) interleaving by code sharing (4) data interleaving by
    		  reusing variable names (5) generalizing code (6) variable
    		  introduction (7) describing program architecture.
    		  
    		  The found decisions should be represented. A representation
    		  should: (1) be easy to construct during development (2) be
    		  easy to reconstruct during reverse engineering (3)
    		  facilitate queries and report generation (4) be formal
    		  enough to being automatically manipulated (5) let all
    		  design information be attached (high level specification,
    		  architectural overviews, detailed interfaces, resulting
    		  code) (6) support requirements tracing, informal
    		  annotations, version information.},
      ftp		= {ftp.cc.gatech.edu//pub/groups/reverse/repository/software.ps.gz}
    		  ,
      note		= {In this paper it is advocated that in order to effectively
    		  maintain an existing system, the maintenance programmer
    		  must be able to sustain decisions made earlier in the
    		  design process. To accomplish this, she/he must be able to
    		  recognize and understand this decisions. A way is given to
    		  characterize such decisions},
      class		= {Software_Reverse_Engineering, Reverse_Design,
    		  General_Information_about_Reverse_Design}
    }
    
    
    The Interleaving Problem in Program Understanding, Spencer Rugaber and Kurt Stirewalt and Linda M. Wills
    @InProceedings{	  rugaber.stirewalt.ea:interleaving,
      author	= {Spencer Rugaber and Kurt Stirewalt and Linda M. Wills},
      title		= {The Interleaving Problem in Program Understanding},
      booktitle	= {2nd Working Conference on Reverse Engineering},
      address	= {Toronto, Ontario, Canada},
      month		= jul,
      year		= {1995},
      abstract	= {One of the factors that can make a program difficult to
    		  understand is that code responsible for accomplishing more
    		  than one purpose may be woven together in a single section.
    		  We call this interleaving, and it may arise either
    		  intentionally - for example, in optimizing a program, a
    		  programmer may use some intermediate result for several
    		  purposes - or unintentionally, dut to patches, quick fixes,
    		  or other hasty maintenance practices. To understand this
    		  phenomenon, we have looked at a variety of interleaving
    		  instances in actual programs and have distilled
    		  characteristic features. If the characterization proves to
    		  be robust then it will enable the design of tools for
    		  detection of interleavings and the extraction of the
    		  individual strands of computation.},
      ftp		= {ftp.cc.gatech.edu//pub/groups/reverse/repository/interleaving.ps}
    		  ,
      class		= {Software_Reverse_Engineering, Reverse_Design,
    		  General_Information_about_Reverse_Design}
    }
    
    
    Program Understanding, Spencer Rugaber
    @Article{	  rugaber:program,
      author	= {Spencer Rugaber},
      title		= {Program Understanding},
      journal	= {Encyclopedia of Computer Science and Technology},
      year		= {1996},
      note		= {To Appear},
      abstract	= {Program comprehension is the process of acquiring
    		  knowldege about a computer program. Increased knowledge
    		  enables such activities as bug correction, enhancement,
    		  reuse, and documentation. While efforts are underway to
    		  automate the understanding process, such significant
    		  amounts of knowledge and analytical power are required that
    		  today program understanding is largely a manual task.
    		  
    		  This paper explaines relationship to other activities such
    		  as reverse engineering, design recovery, and reengineering.
    		  It answers the question why program understanding is that
    		  difficult. It gives a brief overview about human and
    		  automated program understanding and program comprehension
    		  tools.},
      ftp		= {ftp.cc.gatech.edu//pub/groups/reverse/repository/encyc.draft.ps}
    		  ,
      class		= {Software_Reverse_Engineering, Reverse_Design,
    		  General_Information_about_Reverse_Design}
    }
    

koschke@informatik.uni-stuttgart.de (Feedback).
Copyright © 1998-2000 University of Stuttgart, Germany. $Revision: 1.5 $
Date: Sat Nov 21 22:21:26 CET 2009