Automated Mass Maintenance of Software Assets

This is research summary of a PhD project in the area of massive software maintenance automation. We explain the context, approach, and contributions

[1]  Mark Harman,et al.  7 th European Conference on Software Maintenance and Reengineering , 2003 .

[2]  Kevin A. Schneider,et al.  Source transformation in software engineering using the TXL transformation system , 2002, Inf. Softw. Technol..

[3]  N. Pennington Stimulus structures and mental representations in expert comprehension of computer programs , 1987, Cognitive Psychology.

[4]  Ralf Lämmel,et al.  Deriving tolerant grammars from a base-line grammar , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[5]  Eelco Visser,et al.  Disambiguation Filters for Scannerless Generalized LR Parsers , 2002, CC.

[6]  Darrel C. Ince,et al.  The Automatic Generation of Test Data , 1987, Comput. J..

[7]  Paul Klint,et al.  Semantics of programming languages: a tool-oriented approach , 1999, SIGP.

[8]  Leon Moonen,et al.  Generating robust parsers using island grammars , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[9]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[10]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[11]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

[12]  Gerbrand Stap Cobol Data Flow Restructuring , 2005 .

[13]  Charles W. Krueger,et al.  Software reuse , 1992, CSUR.

[14]  E. Burton Swanson,et al.  The dimensions of maintenance , 1976, ICSE '76.

[15]  Ralf Lämmel,et al.  Grammar Adaptation , 2001, FME.

[16]  K. H. Bennett,et al.  Journal of software maintenance : research and practice , 1989 .

[17]  Jan A. Bergstra,et al.  The algebraic specification formalism ASF , 1989 .

[18]  Arie van Deursen,et al.  Research Issues in the Renovation of Legacy Systems , 1999, FASE.

[19]  Donald E. Knuth,et al.  Structured Programming with go to Statements , 1974, CSUR.

[20]  Mehdi T. Harandi,et al.  An experimental COBOL restructuring system , 1983, Softw. Pract. Exp..

[21]  Wan Fokkink,et al.  Introduction to Process Algebra , 1999, Texts in Theoretical Computer Science. An EATCS Series.

[22]  John Field,et al.  Identifying procedural structure in Cobol programs , 1999, PASTE '99.

[23]  Chris Verhoef,et al.  Towards automated modification of legacy assets , 2000, Ann. Softw. Eng..

[24]  Ralf Lämmel,et al.  Towards an engineering discipline for GRAMMARWARE Draft as of August 17 , 2003 , 2003 .

[25]  Martin P. Ward Assembler to C migration using the FermaT transformation system , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[26]  Harry M. Sneed,et al.  Restructuring of COBOL/CICS legacy systems , 2002, Sci. Comput. Program..

[27]  Thomas Reps,et al.  The synthesizer generator , 1984 .

[28]  Meir M. Lehman,et al.  Program evolution and its impact on software engineering , 1976, ICSE '76.

[29]  Corrado Böhm,et al.  Flow diagrams, turing machines and languages with only two formation rules , 1966, CACM.

[30]  Merijn de Jonge,et al.  XT: a bundle of program transformation tools , 2001, Electron. Notes Theor. Comput. Sci..

[31]  Paul Klint,et al.  Term rewriting with traversal functions , 2003, TSEM.

[32]  Frank W. Calliss Problems with automatic restructurers , 1988, SIGP.

[33]  Martin P. Ward Pigs from sausages? Reengineering from assembler to C via FermaT transformations , 2004, Sci. Comput. Program..

[34]  Chris Verhoef,et al.  Scaffolding for software renovation , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[35]  Meir M. Lehman,et al.  A Model of Large Program Development , 1976, IBM Syst. J..

[36]  Emden R. Gansner,et al.  Drawing graphs with dot , 2006 .

[37]  Alexander L. Wolf,et al.  Software architecture , 2001 .

[38]  Ira D. Baxter,et al.  Design maintenance systems , 1991, CACM.

[39]  Wan Fokkink,et al.  Conservative Extension in Positive/Negative Conditional Term Rewriting with Applications to Software Renovation Factories , 1999, FASE.

[40]  Ralf Lämmel,et al.  Semi‐automatic grammar recovery , 2001, Softw. Pract. Exp..

[41]  Harry M. Sneed,et al.  Architecture and functions of a commercial software reengineering workbench , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[42]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[43]  Martin Fowler,et al.  Refactoring - Improving the Design of Existing Code , 1999, Addison Wesley object technology series.

[44]  Ralf Lämmel,et al.  Architectural modifications to deployed software , 2005, Sci. Comput. Program..

[45]  Chris Verhoef,et al.  An architecture for automated software maintenance , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[46]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[47]  Alfred V. Aho,et al.  The awk programming language , 1988 .

[48]  James M. Boyle,et al.  Transformations to Restructure and Re–engineer COBOL Programs , 2004, Automated Software Engineering.

[49]  Alejandra Garrido,et al.  Challenges of refactoring C programs , 2002, IWPSE '02.

[50]  Larry Wall,et al.  Programming Perl , 1991 .

[51]  Chris Verhoef,et al.  Quantitative IT portfolio management , 2002, Sci. Comput. Program..

[52]  Niels P. Veerman,et al.  Cobol minefield detection , 2006, Softw. Pract. Exp..

[53]  Ralf Lämmel,et al.  The Grammar Deployment Kit - System Demonstration , 2002, Electron. Notes Theor. Comput. Sci..

[54]  Jos C. M. Baeten,et al.  Process Algebra , 2007, Handbook of Dynamic System Modeling.

[55]  Meir M. Lehman,et al.  Software evolution - Background, theory, practice , 2003, Inf. Process. Lett..

[56]  Ernst-jan Verhoeven COBOL Island Grammars in SDF , 2000 .

[57]  William G. Griswold,et al.  Automated assistance for program restructuring , 1993, TSEM.

[58]  Barry Boehm,et al.  Top 10 list [software development] , 2001 .

[59]  Niels P. Veerman Automated mass maintenance of a software portfolio , 2006, Sci. Comput. Program..

[60]  Gerald M. Weinberg,et al.  Quality Software Management Volume 1: Systems Thinking , 1991 .

[61]  Harry M. Sneed Extracting business logic from existing COBOL programs as a basis for redevelopment , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[62]  Chris Verhoef,et al.  Software product line migration and deployment , 2003, Softw. Pract. Exp..

[63]  James R. McKee Maintenance as a function of design , 1984, AFIPS '84.

[64]  Lee E. McMahon Sed—a non-interactive text editor , 1990 .

[65]  Girish Parikh,et al.  Exploring the world of software maintenance: what is software maintenance? , 1986, SOEN.

[66]  Tony Mason,et al.  Lex & Yacc , 1992 .

[67]  Ralf Lämmel,et al.  Transformation of SDF syntax definitions in the ASF+SDF Meta-Environment , 2001, LDTA@ETAPS.

[68]  Ira D. Baxter,et al.  Preprocessor conditional removal by simple partial evaluation , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[69]  Eelco Visser,et al.  A Survey of Strategies in Program Transformation Systems , 2001, WRS.

[70]  P. Klint,et al.  Efficient annotated terms , 2000 .

[71]  Chris Verhoef,et al.  9210: The Zip Code of Another IT-Soap , 2004, Software Quality Journal.

[72]  Thomas J. Mowbray,et al.  AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis , 1998 .

[73]  Jacob Brunekreef,et al.  Towards a user-controlled software renovation factory , 2002, Sci. Comput. Program..

[74]  Victor L. Winter,et al.  Proving the Correctness of Program Transformations , 1997 .

[75]  Eelco Visser,et al.  Generation of formatters for context-free languages , 1996, TSEM.

[76]  A. Steven Klusener Source code based function point analysis for enhancement projects , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[77]  Carolyn Seaman,et al.  Practical Software Maintenance , 2000, J. Softw. Maintenance Res. Pract..

[78]  Harry M. Sneed,et al.  Risks involved in reengineering projects , 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303).

[79]  Chris Verhoef,et al.  Obtaining a COBOL grammar from legacy code for reengineering purposes , 1997 .

[80]  Harry M. Sneed,et al.  Creating Web services from legacy host programs , 2003, Fifth IEEE International Workshop on Web Site Evolution, 2003. Theme: Architecture. Proceedings..

[81]  Vytautas Štuikys,et al.  TAXONOMY OF THE PROGRAM TRANSFORMATION PROCESSES , 2002 .

[82]  Penny Grubb,et al.  Software maintenance , 1996 .

[83]  Jan Willem Klop,et al.  Term Rewriting Systems: From Church-Rosser to Knuth-Bendix and Beyond , 1990, ICALP.

[84]  Paul Klint,et al.  Re-engineering needs generic programming language technology , 1997, SIGP.

[85]  Chris Verhoef,et al.  Generation of components for software renovation factories from context-free grammars , 2000, Sci. Comput. Program..

[86]  Carolyn B. Seaman,et al.  Practical Software Maintenance , 2000, J. Softw. Maintenance Res. Pract..

[87]  Thomas Reps,et al.  The Synthesizer Generator: A System for Constructing Language-Based Editors , 1988 .

[88]  Harry M. Sneed,et al.  Critical success factors in software maintenance: a case study , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[89]  Andreas Krause,et al.  The basics of S and S-Plus , 1997 .

[90]  Susan Horwitz,et al.  Semantics-preserving procedure extraction , 2000, POPL '00.

[91]  E. Schmidt,et al.  Lex—a lexical analyzer generator , 1990 .

[92]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.

[93]  James M. Boyle,et al.  Applications of the TAMPR Transformation System , 1998, IWFM.

[94]  Harry M. Sneed,et al.  Integrating legacy software into a service oriented architecture , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[95]  Helmut A. Partsch,et al.  Specification and transformation of programs , 1990 .

[96]  Arie van Deursen,et al.  Industrial Applications of ASF+SDF , 1996, AMAST.

[97]  Paul W. Oman Maintenance tools , 1990, IEEE Software.

[98]  Chris Verhoef,et al.  Quantifying the value of IT-investments , 2005, Sci. Comput. Program..

[99]  Paul Klint,et al.  Compiling language definitions: the ASF+SDF compiler , 2000, TOPL.

[100]  Chris Verhoef,et al.  Current parsing techniques in software renovation considered harmful , 1998, Proceedings. 6th International Workshop on Program Comprehension. IWPC'98 (Cat. No.98TB100242).

[101]  Brian W. Kernighan,et al.  The C Programming Language , 1978 .

[102]  Hans Zaadnoordijk,et al.  Source code transformations using the new ASF+SDF Meta-Environment , 2001 .

[103]  Judy Pearsall,et al.  The concise Oxford English dictionary , 2016 .

[104]  Fritz Henglein,et al.  AnnoDomini: from type theory to Year 2000 conversion tool , 1999, POPL '99.

[105]  Niels P. Veerman Towards lightweight checks for mass maintenance transformations , 2005, Sci. Comput. Program..

[106]  Elaine J. Weyuker,et al.  The distribution of faults in a large industrial software system , 2002, ISSTA '02.

[107]  Darius Blasband,et al.  Parsing in a hostile world , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[108]  Charles L. A. Clarke,et al.  Syntactic approximation using iterative lexical analysis , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[109]  Rob J. van Glabbeek,et al.  Branching time and abstraction in bisimulation semantics , 1996, JACM.

[110]  Murray Hill,et al.  Yacc: Yet Another Compiler-Compiler , 1978 .

[111]  Bernhard Westfechtel,et al.  Graph-based tools for re-engineering , 2002, J. Softw. Maintenance Res. Pract..

[112]  Jürgen Ebert,et al.  GUPRO - Generic Understanding of Programs , 2002, Electron. Notes Theor. Comput. Sci..

[113]  Chris Verhoef,et al.  Concrete process algebra , 1995, LICS 1995.

[114]  Niels P. Veerman Revitalizing modifiability of legacy assets , 2004, J. Softw. Maintenance Res. Pract..

[115]  Paul Klint,et al.  The syntax definition formalism SDF—reference manual— , 1989, SIGP.

[116]  Barry W. Boehm,et al.  Software Engineering Economics , 1993, IEEE Transactions on Software Engineering.

[117]  Edsger W. Dijkstra,et al.  Go To Statement Considered Harmful , 2022, Software Pioneers.

[118]  E. Burton Swanson,et al.  Characteristics of application software maintenance , 1978, CACM.

[119]  Chris Verhoef,et al.  Control flow normalization for COBOL/CICS legacy systems , 1998, Proceedings of the Second Euromicro Conference on Software Maintenance and Reengineering.

[120]  Eelco Visser,et al.  Scannerless Generalized-LR Parsing , 1997 .

[121]  Gerald M. Weinberg,et al.  Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products , 1990 .

[122]  T. Capers Jones,et al.  Estimating software costs , 1998 .

[123]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[124]  Arie van Deursen,et al.  Building program understanding tools using visitor combinators , 2002, Proceedings 10th International Workshop on Program Comprehension.

[125]  Capers Jones The year 2000 software problem: Quantifying the cost and addressing the consequences , 2005, AI & SOCIETY.

[126]  Capers Jones,et al.  Programming Productivity , 1986 .

[127]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[128]  James R. Cordy,et al.  TXL: A Rapid Prototyping System for Programming Language Dialects , 1991, Comput. Lang..

[129]  James A. Whittaker,et al.  What is software testing? And why is it so hard? , 2000 .

[130]  Bennet P. Lientz,et al.  Software Maintenance Management: A Study of the Maintenance of Computer Application Software in 487 Data Processing Organizations , 1980 .

[131]  Marian Vittek Refactoring browser with preprocessor , 2003, Seventh European Conference onSoftware Maintenance and Reengineering, 2003. Proceedings..

[132]  Ralf Lämmel,et al.  Cracking the 500-Language Problem , 2001, IEEE Softw..

[133]  William G. Griswold,et al.  Effective pattern matching of source code using abstract syntax patterns , 2006, Softw. Pract. Exp..

[134]  James R. Cordy,et al.  Comprehending reality - practical barriers to industrial adoption of software maintenance automation , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[135]  Barry W. Boehm,et al.  Software Defect Reduction Top 10 List , 2001, Computer.

[136]  Jurgen Vinju,et al.  An Architecture for Context-sensitive Formatting ∗ Extended Abstract , 2005 .

[137]  Paul Klint,et al.  Core Technologies for System Renovation , 1996, SOFSEM.

[138]  Rene L. Krikhaar,et al.  Software architecture reconstruction , 1999 .

[139]  Norman E. Fenton,et al.  Quantitative Analysis of Faults and Failures in a Complex Software System , 2000, IEEE Trans. Software Eng..

[140]  Mohamed E. Fayad Software Maintenance , 2005, IEEE Softw..

[141]  Chris Verhoef,et al.  Native patterns , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[142]  Mark van den Brand,et al.  A language independent framework for context-sensitive formatting , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[143]  Mark van den Brand,et al.  An architecture for context-sensitive formatting , 2005, 21st IEEE International Conference on Software Maintenance (ICSM'05).

[144]  F. P. Coyle,et al.  Cobol: perception and reality , 1997 .

[145]  Masaru Tomita,et al.  Efficient Parsing for Natural Language: A Fast Algorithm for Practical Systems , 1985 .

[146]  Peter M. Maurer,et al.  Generating test data with enhanced context-free grammars , 1990, IEEE Software.

[147]  Mark van den Brand,et al.  Generalized Parsing and Term Rewriting: Semantics Driven Disambiguation , 2003, Electron. Notes Theor. Comput. Sci..

[148]  Peter Linz,et al.  An Introduction to Formal Languages and Automata , 1997 .

[149]  Eelco Visser,et al.  Program Transformation with Stratego/XT: Rules, Strategies, Tools, and Systems in Stratego/XT 0.9 , 2003, Domain-Specific Program Generation.

[150]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[151]  Jurgen Vinju,et al.  Analysis and transformation of source code by parsing and rewriting , 2005 .