A reverse engineering process to support software design document generator

Reverse engineering provides a better understanding of an existing system by maintenance team, especially when they are facing a large and evolving legacy system. Documentations made manually by developers in some cases are inconsistent. Some change requests, updates, or bugs fixing somehow are not included in the documentation as the software evolves. Developers tend to be focusing on source code rather than the documentation. Consequently, code is the most reliable source to be referred as the system representation. Therefore, generating the documentation directly from the source code makes the result consistent with the code at all times. This study focuses on the process of reverse engineering to extract related information from source code of software. Three steps performed in this research. First, extract information from database to XML. Next step is processing data from XML into database. Finally, Word-like document is arranged from the database. The output of this process will be a software design document (SDD) which is an IEEE standard and should be significant for developer team in analyzing their old systems.

[1]  Václav Rajlich,et al.  Incremental redocumentation with hypertext , 1997, Proceedings. First Euromicro Conference on Software Maintenance and Reengineering.

[2]  Nicolas Anquetil,et al.  Software Maintenance Ontology , 2006, Ontologies for Software Engineering and Software Technology.

[3]  Hausi A. Müller,et al.  Structural Redocumentation: A Case Study , 1995, IEEE Softw..

[4]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[5]  Mario Piattini,et al.  Ontologies for Software Engineering and Software Technology , 2010 .

[6]  Michael Rovatsos,et al.  Handbook of Software Engineering and Knowledge Engineering , 2005 .

[7]  Gottfried Vossen,et al.  Aspect‐oriented re‐engineering of e‐learning courseware , 2005 .

[8]  S. Tilley,et al.  Three Challenges in Program Redocumentation for Distributed Systems , 2008, 2008 2nd Annual IEEE Systems Conference.

[9]  James Cheney,et al.  A lightweight implementation of generics and dynamics , 2002, Haskell '02.

[10]  Claude Tadonki Universal Report: a generic reverse engineering tool , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[11]  John A. Anderson,et al.  Tailoring the DOD-STD-2167A software design document to support layered abstractions , 1990, WADAS '90.

[12]  Roland J. Weiss,et al.  ProgDOC - A New Program Documentation System , 2003, Ershov Memorial Conference.

[13]  Douglas Kramer,et al.  API documentation from source code comments: a case study of Javadoc , 1999, SIGDOC '99.

[14]  Ho-Jin Choi,et al.  Software Reverse Engineering to Requirements , 2007, 2007 International Conference on Convergence Information Technology (ICCIT 2007).

[15]  Simon Marlow Haddock, a Haskell documentation tool , 2002, Haskell '02.

[16]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[17]  Arie van Deursen,et al.  Building documentation generators , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[18]  Gerardo Canfora,et al.  New Frontiers of Reverse Engineering , 2007, Future of Software Engineering (FOSE '07).

[19]  Nicolas Anquetil,et al.  A study of the documentation essential to software maintenance , 2005, SIGDOC '05.

[20]  Roger S. Pressman,et al.  Software Engineering: A Practitionerʼs Approach, 7/e , 2009 .

[21]  Andrian Marcus,et al.  A case study on the long-term effects of software redocumentation , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[22]  Donald M. Leslie Using Javadoc and XML to produce API reference documentation , 2002, SIGDOC '02.