Rigi is an interactive graph editor tool for software reverse engineering using the white box method, i.e. necessitating source code,[1][2]: 88  thus it is mainly aimed at program comprehension.[3]: 99  Rigi is distributed by its main author, Hausi A. Müller and the Rigi research group at the University of Victoria.[4]: 143 

Rigi provides interactive links from the graphs it produces to the source code, but not vice versa. Rigi renders trees and grid-layout graphs using its own internal engine, but relies on University of Passau's GraphEd for more advanced layouts.[3]: 99 

The public version of Rigi has built-in parsers ("fact extractors") for C and Cobol, and can leverage the C++ parser of IBM Visual Age. It can also accept external data in an RSF format (it introduced), so external parses can also feed it data, for example SHriMP tool's Java parser.[1]: 250  Some efforts were made to integrate Rigi in Microsoft Visual Studio .NET.[2] Early versions of Bauhaus were also built on top of Rigi; the author of this latter tool notes that the combination was rather slow for graphs having more than 500 nodes.[4]: 143–145  Rigi was reportedly used to analyze some (undisclosed) embedded software at Nokia, in the range of hundreds of thousands of lines of code, and was met with positive feedback from the Nokia engineers.[5]: 170–171 

Active development of Rigi has ceased in 1999, with the last official version released in 2003.[1]: 254  A 2008 paper noted that "Rigi is a mature tool that is still used in research and popular in teaching, but it is currently no longer actively evolved and is in bug-fix mode."[6]: 90 

See also edit

References edit

  1. ^ a b c Kienle, Holger M. (2010). "Rigi—An environment for software reverse engineering, exploration, visualization, and redocumentation". Science of Computer Programming. 75 (4): 247–263. doi:10.1016/j.scico.2009.10.007.
  2. ^ a b Moise, D.L.; Wong, K.; Sun, D. (2004). "Integrating a reverse engineering tool with Microsoft Visual Studio .NET". CSMR 2004: Eighth European Conference on Software Maintenance and Reengineering : proceedings : 24-26 March, 2004, Tampere, Finland. IEEE Computer Society. pp. 85–92. doi:10.1109/CSMR.2004.1281409. ISBN 978-0769521077. S2CID 5563060.
  3. ^ a b Koschke, Rainer (2003). "Software visualization in software maintenance, reverse engineering, and re-engineering: a research survey". Journal of Software Maintenance and Evolution: Research and Practice. 15 (2): 87–109. doi:10.1002/smr.270.
  4. ^ a b Koschke, Rainer (2002). "Software Visualization for Reverse Engineering". Software Visualization. Lecture Notes in Computer Science. Vol. 2269. pp. 138–150. CiteSeerX 10.1.1.465.3117. doi:10.1007/3-540-45875-1_11. ISBN 978-3-540-43323-1.
  5. ^ Riva, Claudio (2002). "Architecture Reconstruction in Practice". Software Architecture. IFIP Advances in Information and Communication Technology. Vol. 97. pp. 159–173. doi:10.1007/978-0-387-35607-5_10. ISBN 978-1-4757-6538-0.
  6. ^ Roel Wuyts; Holger M. Kienle; Kim Mens; Mark van den Brand; Adrian Kuhn (2009). "Academic Software Development Tools and Techniques. Report on the 1st Workshop WASDeTT at ECOOP 2008". In Patrick Eugster (ed.). Object-Oriented Technology. ECOOP 2008 Workshop Reader: ECOOP 2008 Workshops Paphos, Cyprus, July 7-11, 2008 Final Reports. LNCS sublibrary: Programming and software engineering. Vol. 5475. Springer Science & Business Media. pp. 87–103. doi:10.1007/978-3-642-02047-6_10. ISBN 978-3642020469.

Further reading edit

  • H. Müller; J. Uhl. "Composing subsystem structures using (k,2)-partite graphs" (PDF). Proceedings of the 1990 Conference on Software Maintenance (CSM 1990).
  • M.-A. D. Storey; H. A. Müller (1995). "Graph layout adjustment strategies" (PDF). Graph Drawing [Proceedings (GD 1995)].
  • Storey, M.-A.D.; H.A. Müller; K. Wong (1996). "Manipulating and Documenting Software Structures" (PDF). In P. Eades and K. Zhang (ed.). Software Visualization. Series on Software Engineering and Knowledge Engineering. Vol. 7. Series Editor-in-Chief S.K. Chang. World Scientific Publishing. ISBN 978-981-02-2826-2.
  • K.K. Aggarwal; Yogesh Singh (2005). Software Engineering. New Age International. p. 460. ISBN 978-8122416381.
  • Patrick Finnigan, Richard C. Holt, Ivan Kalas, Scott Kerr, Kostas Kontogiannis, Hausi A. Müller, John Mylopoulos, Stephen G. Perelgut, Martin Stanley, Kenny Wong (2002). "The Software Bookshelf". In Hakan Erdogmus; Oryal Tanir (eds.). Advances in Software Engineering: Comprehension, Evaluation, and Evolution. Springer Science & Business Media. p. 315. doi:10.1007/978-0-387-21599-0_14. ISBN 978-0387951096.{{cite book}}: CS1 maint: multiple names: authors list (link)
  • William G. Griswold; Robert W. Bowdidge (1996). "Program restructuring via design-level manipulation". In David Alex Lamb (ed.). Studies of Software Design: ICSE'93 Workshop, Baltimore, Maryland, USA, May (17-18), 1993. Selected Papers. LNCS: Lecture Notes in Artificial Intelligence. Vol. 1078. Springer Science & Business Media. p. 137. ISBN 978-3540612858.
  • Bellay, B.; Gall, H. (1997). "A comparison of four reverse engineering tools". Reverse Engineering, 1997. Proceedings of the Fourth Working Conference, Amsterdam 1997. IEEE. doi:10.1109/WCRE.1997.624571. ISBN 978-0-8186-8162-2. S2CID 29298934. Compares Rigi with Refine/C, Imagix 4D, and SNiFF+.

External links edit

  • Rigi site (free download and publications list)