Research Issues in the Renovation of Legacy Systems

  • Arie van Deursen
  • Paul Klint
  • Chris Verhoef
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1577)

Abstract

The goals of this tutorial are to: (i) give the reader a quick introduction to the field of software renovation as a whole; (ii) show that many techniques from compiler technology and formal methods can be applied; (iii) demonstrate that research should be driven by real-life, industrial, case studies; and (iv) indicate that many challenging problems are still unsolved. During the presentation of this turorial, demonstrations will be given of several of the case studies discussed here.

References

  1. 1.
    Aiken, P.H.: Data Reverse Engineering. McGraw-Hill, New York (1996)Google Scholar
  2. 2.
    Bennett, K., Khoshgoftaar, T.M. (eds.): Proceedings of the International Conference on Software Maintenance. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  3. 3.
    Bergstra, J.A., Heering, J., Klint, P. (eds.): Algebraic Specification. ACM Press Frontier Series. The ACM Press in co-operation with Addison-Wesley, New York (1989)MATHGoogle Scholar
  4. 4.
    Bergstra, J.A., Klint, P.: The discrete time toolbus—a software coordination architecture. Science of Computer Programming 31, 205–229 (1998)MATHCrossRefGoogle Scholar
  5. 5.
    Blaha, M.H., Quilici, A., Verhoef, C. (eds.): Proceedings of the Fifth Working Conference on Reverse Engineering. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  6. 6.
    van den Brand, M.G.J., van Deursen, A., Klint, P., Klusener, S., van der Meulen, E.: Industrial applications of ASF+SDF. In: Wirsing, M., Nivat, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 9–18. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  7. 7.
    van den Brand, M.G.J., Klint, P., Olivier, P.: Compilation and memory management for ASF+SDF. In: Jähnichen, S. (ed.) CC 1999. LNCS, vol. 1575, pp. 198–215. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  8. 8.
    van den Brand, M.G.J., Klint, P., Verhoef, C.: Core technologies for system renovation. In: Jeffery, K.G., Král, J., Bartošek, M. (eds.) SOFSEM 1996. LNCS, vol. 1175, pp. 235–255. Springer, Heidelberg (1996)CrossRefGoogle Scholar
  9. 9.
    van den Brand, M.G.J., Klint, P., Verhoef, C.: Reverse engineering and system renovation – an annotated bibliography. ACM Software Engineering Notes 22(1), 57–68 (1997)CrossRefGoogle Scholar
  10. 10.
    van den Brand, M.G.J., Klint, P., Verhoef, C.: Term rewriting for sale. In: Kirchner, C., Kirchner, H. (eds.) Second International Workshop on Rewriting Logic and its Applications. Electronic Notes in Theoretical Computer Science. Springer, Heidelberg (1998)Google Scholar
  11. 11.
    van den Brand, M.G.J., Sellink, M.P.A., Verhoef, C.: Control flow normalization for COBOL/CICS legacy systems. In: Nesi, P., Lehner, F. (eds.) Proc. 2nd Euromicro Conf. on Maintenance and Reengineering, pp. 11–19. IEEE Computer Society, Los Alamitos (1998)CrossRefGoogle Scholar
  12. 12.
    van den Brand, M.G.J., Sellink, M.P.A., Verhoef, C.: Current parsing techniques in software renovation considered harmful. In: Tilley, S., Visaggio, G. (eds.) Proc. Sixth International Workshop on Program Comprehension, pp. 108–117. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  13. 13.
    van den Brand, M.G.J., Visser, E.: Generation of formatters for context-free languages. ACM Transactions on Software Engineering and Methodology 5, 1–41 (1996)CrossRefGoogle Scholar
  14. 14.
    Brodie, M.L., Stonebraker, M.: Migrating Legacy Systems: Gateways, interfaces and the incremental approach. Morgan Kaufman Publishers, San Francisco (1995)Google Scholar
  15. 15.
    Brunekreef, J., Diertens, B.: Towards a user-controlled software renovation factory. In: Nesi, P., Verhoef, C. (eds.) Proc. Third European Conference on Software Maintenance and Reengineering. IEEE Computer Society, Los Alamitos (1999) (to appear)Google Scholar
  16. 16.
    Chen, Y.-F., Fowler, G.S., Koutsofios, E., Wallach, R.S.: Ciao: A graphical navigator for software and document repositories. In: Caldiera, G., Bennett, K. (eds.) Int. Conf. on Software Maintenance, ICSM 1995, pp. 66–75. IEEE Computer Society, Los Alamitos (1995)CrossRefGoogle Scholar
  17. 17.
    Chikofsky, E.J., Cross, J.H.: Reverse engineering and design recovery: A taxonomy. IEEE Software 7(1), 13–17 (1990)CrossRefGoogle Scholar
  18. 18.
    Cimitile, A., De Lucia, A., Di Lucca, G.A., Fasolino, A.R.: Identifying objects in legacy systems using design metrics. Journal of Systems and Software (1998) (to appear)Google Scholar
  19. 19.
    van Deursen, A., Heering, J., Klint, P. (eds.): Language Prototyping: An Algebraic Specification Approach. AMAST Series in Computing, vol. 5. World Scientific Publishing Co., Singapore (1996)MATHGoogle Scholar
  20. 20.
    van Deursen, A., Kuipers, T.: Rapid system understanding: Two COBOL case studies. In: Tilley, S., Visaggio, G. (eds.) Sixth International Workshop on Program Comprehension, IWPC 1998, pp. 90–98. IEEE Computer Society, Los Alamitos (1998)CrossRefGoogle Scholar
  21. 21.
    van Deursen, A., Kuipers, T.: Finding objects using cluster and concept analysis. In: 21st International Conference on Software Engineering, ICSE-21. ACM, New York (1999) (to appear)Google Scholar
  22. 22.
    van Deursen, A., Moonen, L.: Type inference for COBOL systems. In: Baxter, I., Quilici, A., Verhoef, C. (eds.) Proc. 5th Working Conf. on Reverse Engineering, pp. 220–230. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  23. 23.
    van Deursen, A., Woods, S., Quilici, A.: Program plan recognition for year 2000 tools. In: Proceedings 4th Working Conference on Reverse Engineering, WCRE 1997, pp. 124–133. IEEE Computer Society, Los Alamitos (1997)CrossRefGoogle Scholar
  24. 24.
    Eick, S.G.: A visualization tool for Y2K. IEEE Computer 31(10), 63–69 (1998)Google Scholar
  25. 25.
    Eidorff, P.H., Henglein, F., Mossin, C., Niss, H., Sorensen, M.H., Tofte, M.: Anno Domini: From type theory to Year 2000 conversion tool. In: 26th Annual Symposium on Principles of Programming Languages, POPL 1999. ACM, New York (1999) (to appear)Google Scholar
  26. 26.
    Fergen, H., Reichelt, P., Schmidt, K.P.: Bringing objects into COBOL: MOORE - a tool for migration from COBOL85 to object-oriented COBOL. In: Proc. Conf. on Technology of Object-Oriented Languages and Systems (TOOLS 14), pp. 435–448. Prentice-Hall, Englewood Cliffs (1994)Google Scholar
  27. 27.
    Fokkink, W.J., Verhoef, C.: Conservative extension in positive/negative conditional term rewriting with applications to software renovation factories. In: Fundamental Approaches to Software Engineering. LNCS (1999) (to appear)Google Scholar
  28. 28.
    Hart, J., Pizzarello, A.: A scaleable, automated process for year 2000 system correction. In: Proceedings of the 18th International Conference on Software Engineering ICSE-18, pp. 475–484. ACM, New York (1996)CrossRefGoogle Scholar
  29. 29.
    Heering, J., Hendriks, P.R.H., Klint, P., Rekers, J.: The syntax definition formalism SDF — Reference manual. SIGPLAN Notices 24(11), 43–75 (1989)CrossRefGoogle Scholar
  30. 30.
    Jones, C.: Estimating Software Costs. McGraw-Hill, New York (1998)Google Scholar
  31. 31.
    Jones, C.: The Year 2000 Software Problem – Quantifying the Costs and Assessing the Consequences. Addison-Wesley, Reading (1998)Google Scholar
  32. 32.
    Klint, P.: A meta-environment for generating programming environments. ACM Transactions on Software Engineering and Methodology 2, 176–201 (1993)CrossRefGoogle Scholar
  33. 33.
    Klint, P., Verhoef, C.: Evolutionary software engineering: A component-based approach. In: Horspool, R.N. (ed.) IFIP WG 2.4 Working Conference: Systems Implementation 2000: Languages, Methods and Tools, pp. 1–18. Chapman & Hall, Boca Raton (1998)Google Scholar
  34. 34.
    Lakhotia, A.: A unified framework for expressing software subsystem classification techniques. Journal of Systems and Software, 211–231 (March 1997)Google Scholar
  35. 35.
    Lindig, C., Snelting, G.: Assessing modular structure of legacy code based on mathematical concept analysis. In: 19th International Conference on Software Engineering, ICSE-19, pp. 349–359. ACM, New York (1997)CrossRefGoogle Scholar
  36. 36.
    Liu, S.S., Wilde, N.: Identifying objects in a conventional procedural language: An example of data design recovery. In: International Conference on Software Maintenance, ICSM 1990, pp. 266–271. IEEE Computer Society, Los Alamitos (1990)Google Scholar
  37. 37.
    Müller, H.A., Orgun, M.A., Tilley, S.R., Uhl, J.S.: A reverse engineering approach to subsystem structure identification. Journal of Software Maintenance 5(4), 181–204 (1993)CrossRefGoogle Scholar
  38. 38.
    Murphy, G.C., Notkin, D.: Lightweight lexical source model extraction. ACM Transactions on Software Engineering Methodology 5(3), 262–292 (1996)CrossRefGoogle Scholar
  39. 39.
    Nesi, P., Verhoef, C.: Proceedings of the Third European Conference on Software Maintenance and Reengineering. IEEE Computer Society, Los Alamitos (1999)Google Scholar
  40. 40.
    Newcomb, P., Kottik, G.: Reengineering procedural into object-oriented systems. In: Second Working Conference on Reverse Engineering, WCRE 1995, pp. 237–249. IEEE Computer Society, Los Alamitos (1995)CrossRefGoogle Scholar
  41. 41.
    O’Callahan, R., Jackson, D.: Lackwit: A program understanding tool based on type inference. In: 19th International Conference on Software Engeneering, ICSE-19. ACM, New York (1997)Google Scholar
  42. 42.
    Ong, C.L., Tsai, W.T.: Class and object extraction from imperative code. Journal of Object-Oriented Programming, 58–68 (March–April 1993)Google Scholar
  43. 43.
    Pigoski, T.M.: Practical Software Maintenance – Best Practices for Managing Your Software Investment. John Wiley and Sons, Chichester (1997)Google Scholar
  44. 44.
    Rich, C., Waters, R.: The Programmer’s Apprentice. Frontier Series. ACM Press, Addison-Wesley (1990)Google Scholar
  45. 45.
    Sellink, M.P.A., Sneed, H.M., Verhoef, C.: Restructuring of COBOL/CICS legacy systems. In: Nesi, P., Verhoef, C. (eds.) Proc. Third European Confrence on Software Maintenance and Reengineering. IEEE Computer Society, Los Alamitos (1999) (to appear)Google Scholar
  46. 46.
    Sellink, M.P.A., Verhoef, C.: Development, assessment, and reengineering of language descriptions. In: Proceedings of the 13th International Automated Software Engineering Conference, pp. 314–317. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  47. 47.
    Sellink, M.P.A., Verhoef, C.: Native patterns. In: Blaha, M., Quilici, A., Verhoef, C. (eds.) Proceedings of the 5th Working Conference on Reverse Engineering, pp. 89–103. IEEE Computer Scociety, Los Alamitos (1998)Google Scholar
  48. 48.
    Siff, M., Reps, T.: Identifying modules via concept analysis. In: International Conference on Software Maintenance, ICSM 1997. IEEE Computer Society, Los Alamitos (1997)Google Scholar
  49. 49.
    Sneed, H.M.: Objectorientierte Softwaremigration. Addison-Wesley, Reading (1998) (In German)Google Scholar
  50. 50.
    Snelting, G.: Concept analysis — a new framework for program understanding. In: Proceedings of the ACM SIGPLAN/SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE 1998) (1998); SIGPLAN Notices 33(7) Google Scholar
  51. 51.
    Snelting, G., Tip, F.: Reengineering class hierarchies using concept analysis. In: Foundations of Software Engineering, FSE-6, pp. 99–110. ACM, New York (1998) SIGSOFT Software Engineering Notes 23(6) Google Scholar
  52. 52.
    Tilley, S., Visaggio, G.: Proceedings of the Sixth International Workshop on Program Comprehension. IEEE Computer Society, Los Alamitos (1998)Google Scholar
  53. 53.
    Tip, F.: A survey of program slicing techniques. Journal of Programming Languages 3, 121–189 (1995)Google Scholar
  54. 54.
    Wiggerts, T., Bosma, H., Fielt, E.: Scenarios for the identification of objects in legacy systems. In: Baxter, I.D., Quilici, A., Verhoef, C. (eds.) 4th Working Conference on Reverse Engineering, pp. 24–32. IEEE Computer Society, Los Alamitos (1997)CrossRefGoogle Scholar
  55. 55.
    Woods, S., Quilici, A., Yang, Q.: Constraint-based Design Recovery for Software Reengineering: Theory and Experiments. Kluwer Academic Publishers, Dordrecht (1997)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Arie van Deursen
    • 1
  • Paul Klint
    • 1
    • 2
  • Chris Verhoef
    • 2
  1. 1.CWIAmsterdamThe Netherlands
  2. 2.Programming Research GroupUniversity of AmsterdamAmsterdamThe Netherlands

Personalised recommendations