skip to main content
10.1145/336512.336526acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article
Free access

Reverse engineering: a roadmap

Published: 01 May 2000 Publication History
First page of PDF

References

[1]
P. Aiken. Data Reverse Engineering: Slaying the Legacy Dragon. McGraw-Hill, 1995.]]
[2]
M. Armstrong and C. Trudeau. Evaluating architectural extractors. In Proceedings of the 5th Working Conference on Reverse Engineering (WCRE-98), Honolulu, Hawaii, USA, pages 30-39, October 1998.]]
[3]
L. Bass, P. Clements, and R. Kazman. Software Architecture in Practice. Addison-Wesley, 1997.]]
[4]
A. Behm, A. Geppert, and K. R. Dittrich. On the migration of relational schemas and data to objectoriented database systems. In Proceedings 5th International Conference on Re-Technologies for Information Systems, Klagenfurt, Austria, pages 13- 33.0sterreichische Computer Gesellschaft, December 1997.]]
[5]
B. BeUay and H. Gall. An evaluation of reverse engineering tool capabilities. Journal of Software Maintenance: Research and Practice, 10:305-331, 1998.]]
[6]
K. Bennett and V. Rajlich. Software maintenance and evolution: A roadmap. In this volume, June 2000.]]
[7]
J. Bergey, D. Smith, N. Weiderman, and S. Woods. Options analysis for reengineering (OAR): Issues and conceptual approach. Technical Report CMU/SEI-99-TN- 014, Carnegie Mellon Software Engineering Institute, 1999.]]
[8]
T. Biggerstaff, B. Mitbander, and D. Webster. Program understanding and the concept assignment problem. Communications of the ACM, 37(5):72-83, May 1994.]]
[9]
A. Blackwell. Questionable practices: The use of questionnaire in psychology of programming research. The Psychology of Programming Interest Group Newsletter, 22, July 1998.]]
[10]
M. Blaha. On reverse engineering of vendor databases. In Working Conference on Reverse Engineering (WCRE-98), Honolulu, Hawaii, USA, pages 183-190. IEEE Computer Society Press, October 1998.]]
[11]
M. Blaha and W. Premerlani. Observed idiosyncracies of relational database designs. In Second Working Conference on Reverse Engineering (WCRE-95), Toronto, Ontario, Canada. IEEE Computer Society Press, 1995.]]
[12]
K. Brade, M. Guzdial, M. Steckel, and E. Soloway. Whorl: A visualization tool for software maintenance. In Proceedings 1992 IEEE Workshop on Visual Languages, Seattle, Washington, pages 148-154, September 1992.]]
[13]
M. Brodie and M. Stonebraker. Migrating Legacy Systems: Gateways, Interfaces, and the Incremental Approach. Morgan Kauffman, 1995.]]
[14]
R. Brooks. Towardsatheoryofcomprehensionofcompurer programs. International Journal of Man-Machine Studies, 18:86-98, 1983.]]
[15]
A. Brown and K. Wallnau. A framework for evaluating software technology. IEEE Software, pages 39--49, September 1996.]]
[16]
B. Brown, X. Malveau, X. M. III, and T. Mowbray. AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. John Wiley & Sons, 1998.]]
[17]
E. Buss, R. DeMori, W. Gentleman, J. Henshaw, H. Johnson, K. Kontogiannis, E. Merlo, H. M/iller, J. Mylopoulos, S. Paul, A. Prakash, M. Stanley, S. R. Tilley, J. Troster, and K. Wong. Investigating reverse engineering technologies for the cas program understanding project. IBM Systems Journal, 33(3):477-500, August 1994.]]
[18]
Y.-E Chen, M. Nishimoto, and C. Ramamoorthy. The C information abstraction system. 1EEE Transactions on Software Engineering, 16(1):325-334, March 1990.]]
[19]
S. Chidamber and C. Kemerer. A metrics suite for object-oriented design. IEEE Transactions Software Engineering, 20(6):476-493, 1994.]]
[20]
E. Chikofsky and J. Cross. Reverse engineering and design recovery: A taxonomy. IEEE Software, 7(1):13- 17, January 1990.]]
[21]
R. Clayton, S. Rugaber, and L. Wills. On the knowledge required to understand a program. In Proceedings of the 5th Working Conference on Reverse Engineering (WCRE-98), Honolulu, Hawaii, USA, pages 69-78, October 1998.]]
[22]
A. Clewett, D. Franklin, and A. McCown. NetworkResource Planning For SAP R/3, BAAN In, and PEOPLE- SOFT." A Guide to Planning Enterprise Applications. McGraw-Hill, 1998.]]
[23]
M. Consens, A. Mendelzon, and A. Ryman. Visualizing and querying software structures. In Proceedings of the 14th International Conference on Software Engineering (ICSE), Melbourne, Australia, pages 138-156. IEEE Computer Society Press, 1992.]]
[24]
J. Cross II, T. Hendrix, L. Barowski, and K. Mathias. Scalable visualizations to support reverse engineering: A framework for evaluation. In Proceedings of the 5th Working Conference on Reverse Engineering (WCRE- 98), Honolulu, Hawaii, USA, pages 201-209, October 1998.]]
[25]
J. Cross II, S. Maghsoodloo, and T. Hendrix. The control structure diagram: An initial evaluation. Empirical Software Engineering, 3(2):131-156, 1998.]]
[26]
C. Fahrner and G. Vossen. Transforming relational database schemas into object-oriented schemas according to ODMG-93. In Proceedings of the 4th International Conference on Deductive and Object-Oriented Databases, 1995.]]
[27]
N. Fenton and S. L. Pfleeger. Software Metrics: A Rigorous and Practical Approach. PWS Publishing Company, 1997.]]
[28]
P. Finnigan, R. Holt, I. Kalas, S. Kerr, K. Kontogiannis, H. Miiller, J. Mylopoulos, S. Perelgut, M. Stanley, and K. Wong. The software bookshelf. IBM Systems Journal, 36(4):564-593, 1997.]]
[29]
P. Finnigan, R. Holt, I. Kalas, S. Kerr, K. Kontogiannis, H. Miiller, J. Mylopoulos, S. Perelgut, M. Stanley, and K. Wong. The software bookshelf. IBM Systems Journal, 36(4):564-593, November 1997.]]
[30]
M. Fowler. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 1999.]]
[31]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.]]
[32]
I. Graham. Migrating to Object Technology. Addison- Wesley, 1994.]]
[33]
J.-L. Hainaut, J. Henrard, J.-M. Hick, and D. Roland. Database design recovery. Lecture Notes in Computer Science, 1080:272ff, 1996.]]
[34]
W. Harrison, H. Ossher, and P. Tarr. Software engineering tools and environments: A roadmap. In this volume, June 2000.]]
[35]
P. Hausler, M. Pleszkoch, R. Linger, andA. Hevner. Using function abstraction to understand program behavior. IEEE Software, 7(1):55-63, January 1990.]]
[36]
W. S. Humphrey. Managing the Software Process. Addison-Wesley, 1989.]]
[37]
W. S. Humphrey. A Discipline for Software Engineering. Addison-Wesley, 1995.]]
[38]
Imagix 4D. Imagix Corp. http://www.imagix.com.]]
[39]
J. H. Jahnke. Management ofUncertainty and lnconsistency in Database Reengineering Processes. PhD thesis, Department of Mathematics and Computer Science, Universit/it Paderborn, Germany, September 1999.]]
[40]
J. H. Jahnke, W. Schiller, and A. Zfindorf. Generic fuzzy reasoning nets as a basis for reverse engineering relational database applications. In Proceedings of European Software Engineering Conference (ESEC/FSE), number 1302 in LNCS. Springer, September 1997.]]
[41]
J. H. Jahnke and J. Wadsack. Integration of analysis and redesign activities in information system reengineering. In Proceedings of the 3rd European Conference on Software Maintenance and Reengineering (CSMR-99), Amsterdam, The Netherlands, pages 160- 168. IEEE CS, March 1999.]]
[42]
R. Kazman and S. Carrie're. Playing detective: Reconstructing software architecture from available evidence. Journal of Automated Software Engineering, 6(2):107- 138, April 1999.]]
[43]
R. Kazman, S. Woods, and S. Carriere. Requirements for integrating software architecture and reengineering models: CORUM II. In Proceedings of the Fifth Working Conference on Reverse Engineering (WCRE-98), Honolulu, Hawaii, USA, pages 154-163. IEEE Computer Society Press, October 1998.]]
[44]
U. Kolsch. Methodische Integration und Migration von Informationssystemen in objektorientierte Umgebungen. PhD thesis, Forschungszentrum Informafik, Universitat Karlsruhe, Germany, December 1999.]]
[45]
K. Kontogiannis, J. Martin, K. Wong, R. Gregory, H. Mfiller, and J. Mylopoulos. Code migration through transformations: An experience report. In Proceedings of CASCON-98, Toronto Ontario, Canada, November 1998.]]
[46]
M. Lehman. Programs, life cycles and laws of software evolution. Proceedings of lEEE Special Issue on Software Engineering, 68(9): 1060-1076, September 1980.]]
[47]
T. Lethbridge and J. Singer. Understanding software maintenance tools: Some empirical research. In IEEE Workshop on Empirical Studies of Software Maintenance (WESS-97), Bad, Italy, pages 157-162, October 1997.]]
[48]
S. Letovsky. Cognitive Processes in Program Comprehension, pages 58-79. Ablex Publishing Corporation, 1986.]]
[49]
P. Linos, P. Aubet, L. Dumas, Y. Helleboid, E Lejeune, and E Tulula. Visualizing program dependencies: An experimental study. Software-Practice and Experience, 24(4):387--403, April 1994.]]
[50]
J. Martin. Leveraging ibm visualage c++ for reverse engineering tasks. In Proceedings of CASCON-99, Toronto, Ontario, Canada, November 1999.]]
[51]
E Martin, J. R. Cordy, and R. Abu-Hamdeh. Information capacity preserving of relational schemas using structural transformation. Technical Report ISSN 0836-0227-95-392, Department of Computing and Information Science, Queen's University, Kingston, Ontario, Canada, November 1995.]]
[52]
A. Mendelzon and J. Sametinger. Reverse engineering by visualizing and querying. Software Concepts and Tools, 16:170-182, 1995.]]
[53]
H. Miiller and K. Klashinsky. Rigi--A system for programming-in-the-large. In Proceedings of the lOth International Conference on Software Engineering (ICSE), Raffles City, Singapore, pages 80--86. IEEE Computer Society Press, April 1988.]]
[54]
H. Miiller, S. Tilley, M. O. B. Corrie, and N. Madhavji. A reverse engineering environment based on spatial and visual software interconnection models. In Proceedings of the Fifth A CM SIGSOFT Symposium on Software Development Environments (SIGSOFT-92), Tyson's Corner, Virginia, USA, In ACM Software Engineering Notes, volume 17, pages 88-98, December 1992.]]
[55]
T. Munakata. Knowledge discovery. Communications of the ACM, 42(11):26-29, November 1999.]]
[56]
G. Murphy, D. Notkin, and S. Lan. An empirical study of static call graph extractors. In Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, pages 90-100. IEEE Computer Society Press, March 1996.]]
[57]
J. Nielsen. Usability Engineering. Academic Press, New York, 1994.]]
[58]
J. Ning. A Knowledge-based Approach to Automatic Program Analysis. PhD thesis, Department of Computer Science, University of Illinois at Urbana- Champaign, 1989.]]
[59]
S. Paul and a. Prakash. On formal query languages for source code search. IEEE Transactions on Software Engineering, SE-20(6):463-475, June 1994.]]
[60]
N. Pennington. Stimulus structures and mental representations in expert comprehension of computer programs. Cognitive Psychology, 19:295-341, 1987.]]
[61]
P. Penny. The Software Landscape: A Visual Formalism for Programming-in-the-Large. PhD thesis, Department of Computer Science, University of Toronto, 1992.]]
[62]
D. Perry, A. Porter, and J. L. Votta. Empirical studies: A roadmap. In this volume, June 2000.]]
[63]
R. C. W. Peter G. Selfridge and E. J. Chikofsky. Challenges to the field of reverse engineering. In Working Conference on Reverse Engineering (WCRE-93), Baltimore, Maryland, USA, pages 144-150, 1993.]]
[64]
W. J. Premerlani and M. R. Blaha. An approach for reverse engineering of relational databases. Communications of the ACM, 37(5):42-49, May 1994.]]
[65]
B. A. Price, R. M. Baecker, and I. S. Small. A principled taxonomy of software visualization. Journal of Visual Languages and Computing, 4(3):211-266, 1993.]]
[66]
C. Rich and L. Wills. Recognizing a program's design: A graph-parsing approach. IEEE Software, 7(1):82-89, January 1990.]]
[67]
S. Rugaber and S. Ornburn. Recognizing design decisions in programs. IEEE Software, 7(1):46-54, January 1990.]]
[68]
M. Shaw. Software engineering education: A roadmap. In this volume, June 2000.]]
[69]
B. Shneiderman. Designing the User Interface: Strategies for Effective Human-Computer Interaction. Addison-Wesley, 1998. Third Edition.]]
[70]
O. Signore, M. Loffredo, M. Gregori, and M. Cima. Reconstruction of er schema from database applications: a cognitive approach. In Proceedings ofl3th International Conference of ERA, Manchester, UK, pages 387- 402. Springer, 1994.]]
[71]
S. Sim, C. Clarke, and R. Holt. Archetypal source code searches: A survey of software developers and maintainers. In Proceedings of the 5th Working Conference on Reverse Engineering (WCRE-98), Honolulu, Hawaii, USA, pages 180-187, October 1998.]]
[72]
S. Sim and M.-A. D. Storey. A collective demonstration of program comprehension tools, a CASCON-99 workshop, November 1999. http://www.csr.uvic.ca/cascon99/.]]
[73]
J. Singer and T. Lethbridge. Studying work practices to assist tool design in software engineering. In Proceedings of the 6th International Workshop on Program Comprehension (WPC-98), Ischia, Italy, pages 173- 179, June 1998.]]
[74]
SNIFF+. User's Guide and Reference, Take- Five Software, version 2.3, December 1996. http://www.takefive.com.]]
[75]
T. Standish. An essay on software reuse. IEEE Transactions on Software Engineering, SE-10(5):49 A, A.97, September 1984.]]
[76]
P. Stevens and R. Pooley. Systems reengineering patterns. In A CM SIGSOFT Foundations of Software Engineering (FSE-98), Lake Buena Vista, Florida, USA, pages 17-23. ACM Press, 1998.]]
[77]
M.-A. Storey and H. Mfiller. Manipulating and documenting software structure using shrimp views. In Proceedings of the International Conference on Software Maintenance (ICSM), Opio, France, pages 275- 284. IEEE Computer Society Press, October 1998.]]
[78]
M.-A. Storey, K. Wong, P. Fong, D. Hooper, K. Hopkins, and H. Miiller. On designing an experiment to evaluate a reverse engineering tool. In Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE-96), Monterey, California, USA, pages 31-40, November 1996.]]
[79]
M.-A. Storey, K. Wong, and H. Miiller. How do program understanding tools affect how programmers understand programs. In Proceedings of the 4th Working Conference on Reverse Engineering (WCRE-97), Amsterdam, The Netherlands, pages 12-21, October 1997.]]
[80]
T. Syst. On the relationships between static and dynamic models in reverse engineering java software. In Proceedings of the Sixth Working Conference on Reverse Engineering (WCRE-99), Atlanta, Georgia, USA, pages 304-313. IEEE Computer Society Press, October 1999.]]
[81]
S. Tilley, K. Wong, M.-A. Storey, and H. Miiller. Programmable reverse engineering. International Journal of Software Engineering and Knowledge Engineering, 4(4):501-520, December 1994.]]
[82]
S. R. Tilley. Coming attractions in program understanding II: Highlights of 1997 and opportunities for 1998. Technical Report CMU/SEI-98-TR-001, Carnegie Mellon Software Engineering Institute, February 1998.]]
[83]
S. R. Tilley. The Canonical Activities of Reverse Engineering. Baltzer Science Publishers, The Netherlands, February 2000.]]
[84]
S. R. Tilley and S. Huang. Just enough understanding and not enough time. Technical report, Department of Computer Sciene, University of California Riverside, December 1999.]]
[85]
J. Troster, J. Henshaw, and E. Buss. Filtering for quality. In the Proceedings of CASCON-93, Toronto, Ontario, Canada, pages 429-449, October 1993.]]
[86]
A. Umar. Application (Re)Engineering: Building Web- Based Applications and Dealing with Legacies. Prentice Hall, 1997.]]
[87]
A. von Mayrhauser and A. Vans. From code understanding needs to reverse engineering tool capabilities. In Proceedings of CASE-93, Singapore, pages 230-239, July 1993.]]
[88]
R. C. Waters and E. J. Chikofsky. Reverse engineering--Introduction to the special section. Communications oftheACM, 37(5):22-25, May 1994.]]
[89]
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, SE-10(4):352-357, July 1984.]]
[90]
K. Wong. Reverse Engineering Notebook. PhD thesis, Department of Computer Science, University of Victoria, October 1999.]]
[91]
K. Wong, S. Tilley, H. Miiller, and M.-A. Storey. Structural redocumentation. IEEE Software, 12(1):46-54, January 1995.]]

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '00: Proceedings of the Conference on The Future of Software Engineering
May 2000
381 pages
ISBN:1581132530
DOI:10.1145/336512
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2000

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. data reverse engineering
  2. program comprehension
  3. program understanding
  4. reverse engineering
  5. software analysis
  6. software engineering
  7. software evolution
  8. software maintenance
  9. software migration
  10. software reengineering
  11. software tools
  12. tool adoption
  13. tool evaluation

Qualifiers

  • Article

Conference

ICSE00
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)644
  • Downloads (Last 6 weeks)102
Reflects downloads up to 23 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media