Abstract
Deeply understanding the intricacies of software must always come before any considerations for modifying it.
- Anderson, P. and Teitelbaurn, T. Software inspection using CodeSurfer. In Proc. of the 1st Workshop on Inspection in Software Engineering, 2001, 4--11.Google Scholar
- Antoniol, G., canfora, G., Casazza, G., De Lucia, A., and Merlo, E. Recovering traceability links between code and documentation. IEEE Transactions on Software Engineering 28, 10 (2002), 970--983. Google ScholarDigital Library
- Baxter, I.D., Pidgeon, C., and Mehlich, M. DMS: Program transformations for practical scalable software evolution. In Proc. of the 26th International Conference on Software Engineering, 2004, 625--634. Google ScholarDigital Library
- Beyer, D. and Hassan, A.E. Animated visualization of software history using evolution storyboards. In Proc. of the 13th Working Conference on Reverse Engineering, 2006. IEEE CS Press, 199--210. Google ScholarDigital Library
- Beyer, D. and Lewerentz, C. CrocoPat: Efficient pattern analysis in object-oriented programs. In Proc. of the 11th International Workshop on Program Comprehension, 2003. IEEE CS Press, 294--295. Google ScholarDigital Library
- Binkley, D. Source code analysis: A road map. In Proc. of the International Conference on Software Engineering---Future of Software Engineering Track (FOSE). IEEE CS Press, 104--119. Google ScholarDigital Library
- Bird, C., Pattison, D., D'Souza, R., Filkov, V., and Devanbu, P. Latent social structure in open source projects. In Proc. of the 16th ACM SIGSOFT international Symposium on Foundations of Software Engineering, 2008. ACM Press, 24--35. Google ScholarDigital Library
- Burnett, M., Cook, C., and Rothermel, G. End-user software engineering. Comm. ACM 47, 9 (Sept. 2004), 53--58. Google ScholarDigital Library
- Canfora, G. and Di Penta, M. New frontiers of reverse engineering. In Proc. of the International Conference on Software Engineering - Future of Software Engineering Track (FOSE), 2007. IEEE CS Press, 326--341. Google ScholarDigital Library
- Canfora, G., Fasolino, A.R., Frattolillo, G., and Tramontana, P. A wrapping approach for migrating legacy system interactive functionalities to service oriented architectures. Journal of Systems and Software 81, 4 (2008), 463--480. Google ScholarDigital Library
- Canfora, G., Cerulo, L., and Di Penta, M. Tracking your changes: A language-independent approach. IEEE Software 27, 1 (2009), 50--57. Google ScholarDigital Library
- Chikofsky, E., and Cross, J.I. Reverse engineering and design recovery: A taxonomy. IEEE Software 7, 1 (1990), 13--17. Google ScholarDigital Library
- Cifuentes, C. and Gough, K.J. Decompilation of binary programs. Software Practice and Experience 25, 7 (1995), 811--829. Google ScholarDigital Library
- Collard, M.L., Kagdi, H.H., and Maletic, J.I. An XML-based lightweight C++ fact extractor. In Proc. of the 11th International Workshop on Program Comprehension, 2003. IEEE CS Press, 134--143. Google ScholarDigital Library
- Cordy, J.R., Dean, T.R., Malton, A.J., Schneider, K.A. Source transformation in software engineering using the TXL transformation system. Information & Software Technology 44, 13 (2002), 827--837.Google ScholarDigital Library
- Cornelissen, B., Zaidman, A., van Deursen, A., Moonen, L., and Koschke, R. A systematic survey of program comprehension through dynamic analysis. IEEE Transactions on Software Engineering. http://doi.ieeecomputersociety.org/10.1109/TSE.2009.28 Google ScholarDigital Library
- Duala-Ekoko, E., and Robillard, M.P. Tracking code clones in evolving software. In Proc. of the 29th International Conference on Software Engineering, 2007. IEEE CS Press, 158--167. Google ScholarDigital Library
- Ernst, M.D., Cockrell, J., Griswold, W.G., Notkin, D. Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering 27, 2 (2001), 1--25. Google ScholarDigital Library
- Ferenc, R., Beszédes, À., Tarkiainen, and M., Gyimòthy, T. Columbus---reverse engineering tool and schema for C++. In Proc. of the 18th International Conference on Software Maintenance, 2002. IEEE CS Press, 172--181. Google ScholarDigital Library
- Fluri, B., Würsch, M., Pinzger, M., Gall, H. Change distilling: Tree differencing for finegrained source code change extraction. IEEE Transactions on Software Engineering 33, 11 (2007), 725--743. Google ScholarDigital Library
- Godfrey, M.W., Hassan, A.E., Herbsleb, J.D., Murphy, G.C., Robillard, M.P., Devanbu, P.T., Mockus, A., Perry, D.E., and Notkin, D. Future of mining software archives: A roundtable. IEEE Software 26, 1 (2009), 67--70. Google ScholarDigital Library
- Gold, N., Knight, C., Mohan, A., and Munro, M. Understanding service-oriented software. IEEE Software 21, 2 (2004), 71--77. Google ScholarDigital Library
- Hassan, A.E., Martin, D.J., Flora, P., Mansfield, P., and Dietz, D. An industrial case study of customizing operational profiles using log compression. In Proc. of the 30th international Conference on Software Engineering 2008. ACM Press, 713--723. Google ScholarDigital Library
- Kagdi, H.H., Collard, M.L., and Maletic, J.I. A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of Software Maintenance 19, 2 (2007). Wiley, 77--131. Google ScholarDigital Library
- Kamiya, T., Kusumoto, S., and Inoue, K. CCFinder: A multilinguistic token-based code clone detection system for large scale source code. IEEE Transactions on Software Engineering 28, 7, (2002), 654--670. Google ScholarDigital Library
- Koschke, R. Atomic architectural component recovery for program understanding and evolution. Ph.D. thesis, Univ. of Stuttgart, Germany, 2000.Google Scholar
- Koschke, R. Software visualization in software maintenance, reverse engineering, and reengineering: A research survey. Journal of Software Maintenance 15, 2 (2003), Wiley, 87--109. Google ScholarDigital Library
- Kuhn, A. Ducasse, S., and Gîrba, T. Semantic clustering: Identifying topics in source code. Information & Software Technology 49, 3 (2007), 230--243. Google ScholarDigital Library
- Lanza, M. and Ducasse, S. Polymetric views---A lightweight visual approach to reverse engineering. IEEE Transactions on Software Engineering 29, 9 (2003), 782--795. Google ScholarDigital Library
- Lehman, M.M. and Belady, L.A. Program Evolution---Processes of Software Change. Academic Press, London, 1985. Google ScholarDigital Library
- Lorenzoli, D., Mariani, L., and Pezzè, M. Automatic generation of software behavioral models. In Proc. of the 30th International Conference on Software Engineering, 2008. ACM Press, 501--510. Google ScholarDigital Library
- Maqbool, O. and Babri, H.A. Hierarchical clustering for software architecture recovery. IEEE Transactions on Software Engineering 33, 11 (2007), 759--780. Google ScholarDigital Library
- Marin, M., van Deursen, A., and Moonen, L. Identifying crosscutting concerns using fan-in analysis. ACM Transactions on Software Engineering and Methodology 17, 1 (2007), 1--37. Google ScholarDigital Library
- Muller, H.A., Jahnke, J.H., Smith, D.B., Storey, M.D., Tilley, S.R., and Wong, K. Reverse engineering: A roadmap. In Proc. of the 22nd International Conference on Software Engineering---Future of Software Engineering Track, 2000, 47--60. Google ScholarDigital Library
- Moonen, L. Generating robust parsers using island grammars. In Proc. of the 8th Working Conference on Reverse Engineering, 2001. IEEE CS Press, 13--22. Google ScholarDigital Library
- Murphy, G.C. Houston: We are in overload. In Proc. of the 23rd IEEE International Conference on Software Maintenance, 2007, IEEE CS Press.Google Scholar
- Nierstrasz, O., Ducasse, S., and Gîrba, T. The story of Moose: An agile reengineering environment. In Proc. of the 10th European Software Engineering Conference held jointly with 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering, 2005, Lisbon, Portugal, (Sept. 5--9, 2005). ACM Press, 1--10. Google ScholarDigital Library
- Ducasse, S, and Pollet, D. Software architecture reconstruction: A process-oriented taxonomy. IEEE Transactions on Software Engineering 35, 4 (2009), 573--591. Google ScholarDigital Library
- Resnick, P. and Varian, H.R. Recommender systems. Comm. ACM 40, 3 (Mar. 1997), 6--89. Google ScholarDigital Library
- Systa, T. Static and Dynamic Reverse Engineering Techniques for Java Software Systems. Ph.D. thesis, Univ. of Tampere, Finland, 2000.Google Scholar
- Storey, M.D., and Müller, H.A. Manipulating and documenting software structures using Shrimp views. In Proc. of the 11th International Conference on Software Maintenance, 1995. IEEE CS Press, 275--284. Google ScholarDigital Library
- Tonella, P. and Potrich, A. Reverse Engineering of Object Oriented Code. Springer-Verlag, Berlin, Heidelberg, New York, 2005. Google Scholar
- Tsantalis, N., Chatzigeorgiou, A., Stephanides, G., and Halkidis, S. T. Design pattern detection using similarity scoring. IEEE Transactions on Software Engineering 32, 11 (2006), 896--909. Google ScholarDigital Library
- Woodside, C.M., Franks, G., and Petriu, D.C. The future of software performance engineering. In Proc. of the International Conference on Software Engineering, Future of Software Engineering Track (FOSE) 2007. IEEE CS Press, 171--187. Google ScholarDigital Library
- Wong, K., Tilley, S., Muller, H.A., and Storey, M.D. Structural redocumentation: A case study. IEEE Software (Jan. 1996), 46--54. Google ScholarDigital Library
Index Terms
- Achievements and challenges in software reverse engineering
Recommendations
Reverse engineering: a roadmap
ICSE '00: Proceedings of the Conference on The Future of Software EngineeringSoftware visualization in software maintenance, reverse engineering, and re-engineering: a research survey
Software visualization is concerned with the static visualization as well as the animation of software artifacts, such as source code, executable programs, and the data they manipulate, and their attributes, such as size, complexity, or dependencies. ...
Reverse engineering technique to enhance software engineering education
This poster presents our experience incorporating reverse engineering techniques on software engineering education to enhance the productivity of students' team projects. In this approach, the students were provided with an existing working software by ...
Comments