Towards automated modification of legacy assets

Abstract

In this paper we argue that there is a necessity for automating modifications to legacy assets. We propose a five layered process for the introduction and employment of tool support that enables automated modification to entire legacy systems. Furthermore, we elaborately discuss each layer on a conceptual level, and we make appropriate references to sources where technical contributions supporting that particular layer can be found. We sketch the perspective that more and more people working in the software engineering area will be contributing to working on existing systems and/or tools to support such work.

This is a preview of subscription content, access via your institution.

References

  1. Adams, S. (1996), The Dilbert Principle, MacMillan.

  2. Aho, A., R. Sethi, and J. Ullman (1986), Compilers. Principles, Techniques and Tools, Addison-Wesley, Reading, MA.

    Google Scholar 

  3. Albrecht, A. (1979), "Measuring Application Development Productivity," In Proceedings of the Joint SHARE/GUIDE/IBM Application Development Symposium, pp. 83-92.

  4. Allen, P. and S. Frost (1998), Component-Based Development for Enterprise Systems, Cambridge University Press.

  5. ANSI-COBOL (1985), Programming Language-COBOL, American National Standards Institute, Inc., ANSI X3.23-1985 Edition.

  6. Augusteijn, L. (1993), "Functional Programming, Program Transformations and Compiler Construction," Ph.D. thesis, Eindhoven University of Technology.

  7. Aycock, J. and N. Horspool (1999), "Faster Generalized LR Parsing," In Proceedings of the eight International Conference on Compiler Construction, S. Jähnichen, Ed., Lecture Notes in Computer Science, Vol. 1575, Springer-Verlag, pp. 32-46.

  8. Backus, J. (1960), "The Syntax and Semantics of the Proposed International Algebraic Language of the Zurich ACM-GAMM Conference," In Proceedings of the International Conference on Information Processing, S. de Picciotto, Ed., Unesco, Paris, pp. 125-131.

  9. Basili, V., G. Caldiera, and G. Cantone (1992), "A Reference Architecture for the Component Factory," ACM Transactions on Software Engineering and Methodology 1, 1, 53-80.

    Article  Google Scholar 

  10. Bass, L., P. Clements, and R. Kazman (1998), Software Architecture in Practice, Addison-Wesley, Reading, MA.

    Google Scholar 

  11. Baxter, I., A. Quilici, and C. Verhoef, Eds. (1997), Proceedings of the Fourth Working Conference on Reverse Engineering, IEEE Computer Society Press.

  12. Belady, B. and M. Lehman (1976), "A Model of Large Program Development," IBM Systems Journal 15, 3, 225-252.

    Article  Google Scholar 

  13. Bennett, K. and T. Khoshgoftaar, Eds. (1998), Proceedings of the International Conference on Software Maintenance, IEEE Computer Society Press.

  14. Bentley, J. (1988), More Programming Pearls-Confessions of a Coder, Addison-Wesley, Reading, MA.

    MATH  Google Scholar 

  15. Bergstra, J. and P. Klint (1996a), "The TOOLBUS Coordination Architecture," In Coordination Languages and Models, P. Ciancarini and C. Hankin, Eds., Lecture Notes in Computer Science, Vol. 1061, pp. 75-88.

  16. Bergstra, J. and P. Klint (1996b), "The Discrete Time TOOLBUS," In Algebraic Methodology and Software Technology, M. Wirsing and M. Nivat, Eds., Lecture Notes in Computer Science, Vol. 1101, Springer-Verlag, pp. 286-305.

  17. Bergstra, J. and P. Klint (1998), "The Discrete Time TOOLBUS-A Software Coordination Architecture," Science of Computer Programming 31, 205-229.

    Google Scholar 

  18. Blaha, M., A. Quilici, and C. Verhoef, Eds. (1998), Proceedings of the Fifth Working Conference on Reverse Engineering, IEEE Computer Society Press.

  19. Blasband, D. (1998), RainCode, 1st Edition, RainCode, Brussels, Belgium, ftp://ftp.raincode.com/ cobrc.ps.

    Google Scholar 

  20. Bouldin, B. (1989), Agents of Change-Managing the Introduction of Automated Tools, Yourdon-Press.

  21. Brand, M., P. Klint, and C. Verhoef (1996), "Core Technologies for System Renovation," In SOFSEM'96: Theory and Practice of Informatics, K. Jeffery, J. Král, and M. Bartošek, Eds., Lecture Notes in Computer Science, Vol. 1175, Springer-Verlag, pp. 235-255.

  22. Brand, M., P. Klint, and C. Verhoef (1997a), "Re-engineering Needs Generic Programming Language Technology," ACM SIGPLAN Notices 32, 2, 54-61, Available at http://adam.wins.uva.nl/_x/sigplan/ plan.html.

    Article  Google Scholar 

  23. Brand, M., P. Klint, and C. Verhoef (1997b), "Reverse Engineering and System Renovation-An Annotated Bibliography," ACM Software Engineering Notes 22, 1, 57-68, Available at http://adam.wins. uva.nl/_x/reeng/REanno.html.

    Article  Google Scholar 

  24. Brand, M., M. Sellink, and C. Verhoef (1997c), "Generation of Components for Software Renovation Factories from Context-free Grammars," In Proceedings Fourth Working Conference on Reverse Engineering, I. Baxter, A. Quilici, and C. Verhoef, Eds., pp. 144-153, Available at http://adam.wins.uva. nl/_x/trans/trans.html.

  25. Brand, M., M. Sellink, and C. Verhoef (1997d), "Obtaining a COBOL Grammar from Legacy Code for Reengineering Purposes," In Proceedings of the 2nd International Workshop on the Theory and Practice of Algebraic Specifications, M. Sellink, Ed., Electronic Workshops in Computing, Springer Verlag, Available at http://adam.wins.uva.nl/_x/coboldef/coboldef.html.

  26. Brand, M., P. Klint, and C. Verhoef (1998a), "Term Rewriting for Sale," In Second International Workshop on Rewriting Logic and its Applications, C. Kirchner and H. Kirchner, Eds., Electronic Notes in Theoretical Computer Science, Springer-Verlag, Available at: http://adam.wins.uva.nl/_x/sale/sale. html.

  27. Brand, M., P. Olivier, J. Heering, and P. Klint (1998b), "Compiling Rewrite Systems: The ASF+SDF Compiler," Technical report, CWI/University of Amsterdam, In preparation.

  28. Brand, M., M. Sellink, and C. Verhoef (1998c), "Control Flow Normalization for COBOL/CICS Legacy Systems," In Proceedings of the Second Euromicro Conference on Maintenance and Reengineering, P. Nesi and F. Lehner, Eds., pp. 11-19, Available at http://adam.wins.uva.nl/_x/cfn/cfn.html.

  29. Brand, M., M. Sellink, and C. Verhoef (1998d), "Current Parsing Techniques in Software Renovation Considered Harmful," In Proceedings of the Sixth International Workshop on Program Comprehension, S. Tilley and G. Visaggio, Eds., pp. 108-117, Available at http://adam.wins.uva.nl/_x/ref/ref.html.

  30. Brand, M., M. Sellink, and C. Verhoef (1999), "Generation of Components for Software Renovation Factories from Context-free Grammars," Accepted for publication in Science of Computer Programming. Available at http://adam.wins.uva.nl/_x/scp/scp.html. An extended abstract with the same title appeared earlier: [Brand et al. 1997c].

  31. Brand, M. and E. Visser (1996), "Generation of Formatters for Context-free Languages," ACM Transactions on Software Engineering and Methodology 5, 1-41.

    Google Scholar 

  32. Brooks Jr., F. (1995), The Mythical Man-Month-Essays on Software Engineering, Anniversary Edition, Addison-Wesley, Reading, MA.

    Google Scholar 

  33. Brown, A., Ed. (1996), Component-Based Software Engineering, IEEE Computer Society Press.

  34. Brunekreef, J. and B. Diertens (1999), "Towards a User-Controlled Software Renovation Factory," In Proceedings of the Third European Conference on Maintenance and Reengineering, P. Nesi and C. Verhoef, Eds., IEEE Computer Society Press, pp. 83-90.

  35. Chikofsky, E. and J. Cross (1990), "Reverse Engineering and Design Recovery: A Taxonomy," IEEE Software 7, 1, 13-17.

    Article  Google Scholar 

  36. Cordy, J., C. Halpern-Hamu, and E. Promislow (1991), "TXL: A Rapid Prototyping System for Programming Language Dialects," Computer Languages 16, 1, 97-107.

    Article  Google Scholar 

  37. COSMOS (1998), Emendo Y2K White paper, Emendo Software Group, The Netherlands, Available at http://www.emendo.com/.

    Google Scholar 

  38. Danziger, J. (1977), "Computers, Local Governments and the Litany to EDP," Public Administration Review 37, 28-37.

    Google Scholar 

  39. Eastwood, A. (1992), "It's a Hard Sell-and Hard Work Too. (Software Reengineering)," Computing Canada 18, 22, 35.

  40. Elegant (1993), The Elegant Home Page, Philips Electronics B.V., The Netherlands, http://www.research. philips.com/generalinfo/special/elegant/elegant.html.

    Google Scholar 

  41. Fagan, M. (1976), "Design and Code Inspections to Reduce Errors in Programs," IBM Systems Journal 15, 3, 182-211.

    Google Scholar 

  42. Fagan, M. (1986), "Advances in Software Inspections," IEEE Transactions on Software Engineering 12, 7, 744-751.

    Google Scholar 

  43. Fokkink, W. and C. Verhoef (1999), "Conservative Extension in Positive/Negative Conditional Term Rewriting with Applications to Software Renovation Factories," In Proceedings 2nd Conference on Fundamental Approaches to Software Engineering, J.-P. Finance, Ed., Lecture Notes in Computer Science, Vol. 1577, Springer-Verlag, Amsterdam, pp. 98-113.

    Google Scholar 

  44. Gallagher, K. and J. Lyle (1991), "Using Program Slicing in Software Maintenance," IEEE Transactions on Software Engineering 17, 8, 751-761.

    Article  Google Scholar 

  45. Gilb, T. and D. Graham (1993), Software Inspection, Addison-Wesley, Reading, MA.

    Google Scholar 

  46. Graaf, M. (1997), "A Specification of Box to HTML in ASF+SDF," Technical Report P9720, University of Amsterdam, Programming Research Group, Available at http://ftp.wins.uva.nl/pub/programmingresearch/ reports/1997/P9720.ps.Z.

  47. Hall, B. (1996), "Year 2000 Tools and Services," In Symposium/ITxpo 96, The IT Revolution Continues: Managing Diversity in the 21st Century, GartnerGroup.

  48. Heering, J., G. Kahn, P. Klint, and B. Lang (1986), "Generation of Interactive Programming Environments," In Esprit '85-Status Report of Continuing Work 1, T. C. of the European Communities, North-Holland, pp. 467-477.

    Google Scholar 

  49. IBM-COBOL (1997), IBM SAA AD/Cycle COBOL/370, 1st Edition, IBM Corporation.

  50. Johnson, S. (1975), "YACC-Yet Another Compiler-Compiler," Technical Report Computer Science No. 32, Bell Laboratories, Murray Hill, NJ.

    Google Scholar 

  51. Jones, C. (1986), Programming Productivity, McGraw-Hill.

  52. Jones, C. (1993), Software Productivity and Quality-The World Wide Perspective, IS Management Group, Carlsbad, CA.

    Google Scholar 

  53. Jones, C. (1994), Assessment and Control of Software Risks, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  54. Jones, C. (1996), Patterns of Software Systems Failure and Success, International Thomsom Computer Press.

  55. Jones, C. (1997), Software Quality-Analysis and Guidelines for Success, International Thomsom Computer Press.

  56. Jones, C. (1998a), Estimating Software Costs, McGraw-Hill.

  57. Jones, C. (1998b), The Year 2000 Software Problem-Quantifying the Costs and Assessing the Consequences, Addison-Wesley, Reading, MA.

    Google Scholar 

  58. Jones, N. (1998c), "Year 2000 Market Overview," Technical Report, GartnerGroup, Stamford, CT.

    Google Scholar 

  59. Kernighan, B. and D. Ritchie (1978), The C Programming Language, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  60. Klint, P. (1993), "A Meta-Environment for Generating Programming Environments," ACM Transactions on Software Engineering and Methodology 2, 2, 176-201.

    Article  Google Scholar 

  61. Klint, P. and C. Verhoef (1998), "Evolutionary Software Engineering: A Component-Based Approach," In IFIP WG 2.4 Working Conference: Systems Implementation 2000: Languages, Methods and Tools, R. Horspool, Ed., Chapman & Hall, pp. 1-18, Available at: http://adam.wins.uva.nl/_x/evol-se/evolse. html.

  62. Knuth, D. (1968), The Art of Computer Programming-Fundamental Algorithms, Addison-Wesley, Reading, MA.

    Google Scholar 

  63. Koster, C. (1991), "Affix Grammars for Programming Languages," In International Summer School on Attribute Grammars, Applications and Systems, H. Alblas and B. Melichar, Eds., Lecture Notes in Computer Science, Vol. 545, Springer-Verlag, pp. 358-373.

  64. Lang, B. (1974), "Deterministic Techniques for Efficient Non-Deterministic Parsers," In Proceedings of the Second Colloquium on Automata, Languages and Programming, J. Loeckx, Ed., Lecture Notes in Computer Science, Vol. 14, Springer-Verlag, pp. 255-269.

  65. Lesk, M. and E. Schmidt (1986), LEX-A Lexical Analyzer Generator, Bell Laboratories, UNIX Programmer's Supplementary Documents, Volume 1 (PS1) Edition.

  66. Levine, J., T. Mason, and D. Brown (1992), LEX & YACC, 2nd Edition, O'Reilly & Associates, Inc.

  67. Matsumoto, Y. (1989), "An Overview of Japanese Software Factories," In Japanese Perspectives in Software Engineering, Y. Matsumoto and Y. Ohno, Eds., Addison-Wesley, Reading, MA, pp. 303-320.

    Google Scholar 

  68. McCabe, T. (1976), "A Complexity Measure," IEEE Transactions on Software Engineering 12, 3, 308-320.

    MathSciNet  Google Scholar 

  69. McConnell, S. (1993), Code Complete, Microsoft Press.

  70. Nederhof, M., C. Koster, C. Dekkers, and A. Zwol (1992), "The Grammar Workbench: A First Step Towards Lingware Engineering," In Proceedings of the second Twente Workshop on Language Technology-Linguistic Engineering: Tools and Products, W. Stal, A. Nijholt, and H. Akker, Eds., Memoranda Informatica, Vol. 92-29, University of Twente, pp. 103-115.

  71. Nesi, P. and C. Verhoef, Eds. (1999), Proceedings of the Third European Conference on Software Maintenance and Reengineering, IEEE Computer Society Press.

  72. Pressman, R. (1988), Making Software Engineering Happen, Prentice-Hall, Englewood Cliffs, NJ.

    Google Scholar 

  73. Randall, A. (1997), "Reinterpreting 'Luddism': Resistance to New Technology in the British Industrial Revolution," In Resistance to New Technology: Nuclear Power, Information Technology, and Biotechnology, M. Bauer, Ed., reprint edition, Cambridge University Press, pp. 57-79.

  74. REFINE (1992), Refine User's Guide, Reasoning Systems, Palo Alto, CA.

  75. Rekers, J. (1992), "Parser Generation for Interactive Environments," Ph.D. thesis, University of Amsterdam, Available at ftp://ftp.cwi.nl/pub/gipe/reports/Rek92.ps.Z.

  76. Rogers, E. (1973), Communication Strategies for Family Planning, Free Press.

  77. Rogers, E. (1995), Diffusion of Innovations, 4th Edition, Free Press.

  78. Rubin, H. (1997), Worldwide Benchmark Report for 1997, Pound Ridge, NY; Rubin Systems, Inc.

    Google Scholar 

  79. Sellink, M.P.A., H. Sneed, and C. Verhoef (1998), "Systolic Structuring Algorithm in Steps," Available at http://adam.wins.uva.nl/_x/systolic/systolic.html.

  80. Sellink, M.P.A., H. Sneed, and C. Verhoef (1999), "Restructuring of COBOL/CICS Legacy Systems," In Proceedings of the Third European Conference on Maintenance and Reengineering, P. Nesi and C. Verhoef, Eds., pp. 72-82, Available at http://adam.wins.uva.nl/_x/cics/cics.html.

  81. Sellink, M.P.A. and C. Verhoef (1998a), "Development, Assessment, and Reengineering of Language Descriptions," In Proceedings of the 13th International Automated Software Engineering Conference, pp. 314-317, Full version in [Sellink and Verhoef 2000a].

  82. Sellink, M.P.A. and C. Verhoef (1998b), "Native Patterns," In Proceedings of the Fifth Working Conference on Reverse Engineering, M. Blaha, A. Quilici, and C. Verhoef, Eds., IEEE Computer Society Press, pp. 89-103, Available at http://adam.wins.uva.nl/_x/npl/npl.html.

  83. Sellink, M.P.A. and C. Verhoef (1999a), "An Architecture for Automated Software Maintenance," In Proceedings of the seventh International Workshop on Program Comprehension, D. Smith and S. Woods, Eds., pp. 38-48, Available at http://adam.wins.uva.nl/_x/asm/asm.html.

  84. Sellink, M.P.A. and C. Verhoef (1999b), "Generation of Software Renovation Factories from Compilers," In Proceedings of the International Conference on Software Maintenance, H. Yang and L. White, Eds., IEEE Computer Society Press, pp. 245-255, Available via http://adam.wins.uva.nl/_x/com/com. html.

  85. Sellink, M.P.A. and C. Verhoef (2000a), "Development, Assessment, and Reengineering of Language Descriptions," In Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, J. Ebert and C. Verhoef, Eds., IEEE Computer Society Press, Full version of [Sellink and Verhoef 1998a], Available at http://adam.wins.uva.nl/_x/cale/cale.html.

  86. Sellink, M.P.A. and C. Verhoef (2000b), "Scaffolding for Software Renovation," In Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, J. Ebert and C. Verhoef, Eds., IEEE Computer Society Press, Available via http://adam.wins.uva.nl/_x/scaf/scaf.html.

  87. Smith, D., G. Kotik, and S. Westfold (1985), "Research on Knowledge-Based Software Environments at Kestrel Institute," IEEE Transactions on Software Engineering 11, 11, 1278-1295.

    Google Scholar 

  88. Sneed., H. (1997), "Dealing with the Dual Crisis-Year 2000 and Euro-What Reverse Engineering can do to Help," Technical Report P9716, University of Amsterdam, Programming Research Group.

  89. Sneed, H. (1998), "Architecture and Functions of a Commercial Software Reengineering Workbench," In Proceedings of the Second Euromicro Conference on Maintenance and Reengineering, P. Nesi and F. Lehner, Eds., pp. 2-10.

  90. Tilley, S. and G. Visaggio, Eds. (1998), Proceedings of the Sixth International Workshop on Program Comprehension, IEEE Computer Society Press.

  91. Tomita, M. (1986), Efficient Parsing for Natural Languages-A Fast Algorithm for Practical Systems, Kluwer Academic.

  92. Ulrich, W. (1990), "The Evolutionary Growth of Software Reengineering and the Decade Ahead," American Programmer 3, 11, 14-20.

    Google Scholar 

  93. Visser, E. (1997), "Scannerless Generalized-LR Parsing," Technical Report P9707, Programming Research Group, University of Amsterdam, Available at http://www.wins.uva.nl/pub/programming-research/ reports/1997/P9707.ps.

  94. Wall, L. and R. Schwartz (1991), Programming Perl, O'Reilly & Associates, Inc.

  95. Weinberg, G. (1971), The Psychology of Computer Programming, Van Nostrand Reinhold.

  96. Weinberg, G. (1988), Understanding the Professional Programmer, Dorset House.

  97. Weinberg, G. (1992), Quality Software Management, Vol. 1: Systems Thinking, Dorset House.

Download references

Author information

Affiliations

Authors

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Verhoef, C. Towards automated modification of legacy assets. Annals of Software Engineering 9, 315–336 (2000). https://doi.org/10.1023/A:1018941228255

Download citation

Keywords

  • Software Engineer
  • IEEE Computer Society
  • Business Logic
  • Software Maintenance
  • Reverse Engineer