The ReverseAndReengineeringTaxonomy defines reverse engineering as: _The process of analyzing a subject system with two goals in mind:_ 1 _to identify the system's components and their interrelationships; and,_ 1 _to create representations of the system in another form or at a higher level of abstraction._ Observe that reverse engineering is a process of _examination_ only: the software system under consideration is not modified (which would make it ReEngineering). ---- Reverse engineering resources include: * The European conference on SoftwareMaintenance and ReEngineering CSMR * The working conference on reverse engineering WCRE. * The TcseCommitteeOnReverseAndReengineering * The ReengineeringForum * The [[http://www.cc.gatech.edu/reverse][Reverse Engineering Group]] at [[http://www.cc.gatech.edu][Georgia Tech]] includes links to many other research institutions around the world. * A [[http://wiki.reverse-engineering.net][wiki on reverse engineering]] ---- Reverse engineering topics covered on this wiki include: * ArchitectureExtraction * ClusterAnalysis * ConceptAnalysis * DesignPatternRecovery * ObjectIdentification * SwarmDagstuhl * DeCompilation * DocumentationGeneration * DomainEngineering * LegalIssues ---- Many reverse engineering tools follow a three step approach: * FactsExtraction * Abstraction * Presentation One of the papers discussing this in more detail is S. Tilley, S. Paul, and D. B. Smith; [[http://citeseer.nj.nec.com/266671.html][Towards a Framework for Program Understanding]]; IWPC 1996. In this paper, these activities are also explained as * Data Gathering * Knowledge Organization * Information Exploration ---- And for the lighter side... * [[http://www.thinkgeek.com/stuff/apparel/31fc.shtml][Reverse Engineering T-Shirts]] * The [[http://www.atsf.co.uk/dottext/domesday.html][Domesday Book]] project in which reverse engineering is applied to emulate equipment in order to read data stored on obsolete video disks. ---- CategoryReverseEngineering | Contributions by ArieVanDeursen