Skip to main content
Log in

Towards automated modification of legacy assets

  • Published:
Annals of Software Engineering

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, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

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

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

    Google Scholar 

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

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

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

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

  • 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.

  • 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.

  • 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 

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

    Google Scholar 

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

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

    Article  Google Scholar 

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

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

    MATH  Google Scholar 

  • 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.

  • 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.

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

    Google Scholar 

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

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

    Google Scholar 

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

  • 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.

  • 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 

  • 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 

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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].

  • 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 

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

    Google Scholar 

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

  • 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.

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

    Article  Google Scholar 

  • 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 

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

    Google Scholar 

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

    Google Scholar 

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

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  • 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 

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

    Article  Google Scholar 

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

    Google Scholar 

  • 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.

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

  • 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 

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

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

    Google Scholar 

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

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

    Google Scholar 

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

    Google Scholar 

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

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

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

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

  • 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.

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

    Google Scholar 

  • 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.

  • 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.

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

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

  • 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 

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

    MathSciNet  Google Scholar 

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

  • 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.

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

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

    Google Scholar 

  • 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.

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

  • 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.

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

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

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

    Google Scholar 

  • 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.

  • 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.

  • 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].

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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 

  • 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.

  • 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.

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

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

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

    Google Scholar 

  • 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.

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

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

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

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

Download references

Author information

Authors and 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

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1018941228255

Keywords

Navigation