A program transformation step prediction based reengineering approach

The essence of software reengineering is to improve or transform existing software so that it can be understood, controlled and used anew. Program transformation is used as a core technique for fulfilling the various needs in the context of software reengineering. The improvement of the automation and efficiency of program transformations for reengineering is a concern in both research and industrial areas. The proposed research aims to achieve the goal by providing an appropriate mechanism to predict the transformation steps to fulfil specific reengineering targets to enhance the efficiency and correctness of reengineering through program transformations. In this thesis, a Target Driven Program Transformation Step Prediction approach (TDPTSP) is proposed to assist the process of transformation in software reengineering. The proposed approach is explored by using a transformation-intensive language Wide Spectrum Language (WSL) as an intermediate language and its toolset that provides a well-developed transformation bank containing a large number of proven transformations. The predication of transformations is an intelligent means to guide the transformation process towards reengineering targets. In order to make the identified targets tangible, the concept of Target Model (TM) is introduced for the target representation and evaluation. In the model, software metrics selected from a reengineering intensive metrics catalogue are correlated to the corresponding targets. With the quantitative measurement and the tangible target representation, the program transformation step prediction algorithm is constructed as a heuristic based search approach. Expertise for applying program transformations in the practical work is essential for the prediction operation. The prediction approach incorporates the expertise rules in addition to the metrics based approach. When predicting the transformations on domain specific applications, domain features are the vital factors. Therefore, the

[1]  Fred Glover,et al.  Tabu Search: A Tutorial , 1990 .

[2]  Sue Black The Role of Ripple Effect in Software Evolution , 2006 .

[3]  D. E. Goldberg,et al.  Genetic Algorithms in Search , 1989 .

[4]  Ira D. Baxter,et al.  Using transformation systems for software maintenance and reengineering , 2001, ICSE.

[5]  Conor Ryan,et al.  Automatic Re-engineering of Software Using Genetic Programming , 1999, Genetic Programming Series.

[6]  Yan Shen,et al.  LDA - a java-based linkage disequilibrium analyzer , 2003, Bioinform..

[7]  Kenneth Slonneger,et al.  Formal syntax and semantics of programming languages , 1994 .

[8]  Swapna S. Gokhale,et al.  Locating program features using execution slices , 1999, Proceedings 1999 IEEE Symposium on Application-Specific Systems and Software Engineering and Technology. ASSET'99 (Cat. No.PR00122).

[9]  Kenn R. Luecke,et al.  Re-engineering C++ component models via automatic program transformation , 2005, 12th Working Conference on Reverse Engineering (WCRE'05).

[10]  David Sands,et al.  Total correctness by local improvement in the transformation of functional programs , 1996, TOPL.

[11]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[12]  Douglas R. Smith,et al.  KIDS: A Semiautomatic Program Development System , 1990, IEEE Trans. Software Eng..

[13]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[14]  Ying Zou,et al.  Techniques and methodologies for the migration of legacy systems to object-oriented platforms , 2003 .

[15]  Eelco Visser,et al.  Generalized type-based disambiguation of meta programs with concrete object syntax , 2005, GPCE'05.

[16]  Christophe Ringeissen,et al.  A Pattern Matching Compiler for Multiple Target Languages , 2003, CC.

[17]  Pierre-Etienne Moreau,et al.  An Integrated Development Environment for Pattern Matching Programming , 2004, Electron. Notes Theor. Comput. Sci..

[18]  Giovanni Agosta,et al.  Multi-objective co-exploration of source code transformations and design space architectures for low-power embedded systems , 2004, SAC '04.

[19]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.

[20]  H. Kyburg Theory and measurement , 1984 .

[21]  Rainer Koschke,et al.  Locating Features in Source Code , 2003, IEEE Trans. Software Eng..

[22]  Christopher W. Pidgeon,et al.  TMM: Software Maintenance by Transformation , 1986, IEEE Software.

[23]  Ira D. Baxter,et al.  Transformational maintenance by reuse of design histories , 1991 .

[24]  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).

[25]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[26]  Steven S. Muchnick,et al.  Advanced Compiler Design and Implementation , 1997 .

[27]  E. J. Younger,et al.  Reverse engineering concurrent programs using formal modelling and analysis , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[28]  Dragan Milicev Domain Mapping Using Extended UML Object Diagrams , 2002, IEEE Softw..

[29]  S. Kotsiantis,et al.  MULTIMEDIA MINING , 2004 .

[30]  Steve McConnell,et al.  Code complete - a practical handbook of software construction, 2nd Edition , 1993 .

[31]  Ladan Tahvildari,et al.  A software transformation framework for quality-driven object-oriented re-engineering , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[32]  Hussein Zedan,et al.  Slicing as a program transformation , 2007, TOPL.

[33]  Arun Lakhotia,et al.  A formalism to automate mapping from program features to code , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[34]  C. Ravindranath Pandian Software Metrics: A Guide to Planning, Analysis, and Application , 2003 .

[35]  Michael R. Olsem An incremental approach to software systems re-engineering , 1998, J. Softw. Maintenance Res. Pract..

[36]  Kenn R. Luecke,et al.  Reengineering C++ Component Models via Automatic Program Transformation , 2005, WCRE.

[37]  Eelco Visser,et al.  Building program optimizers with rewriting strategies , 1998, ICFP '98.

[38]  Lin Liu,et al.  Designing information systems in social context: a goal and scenario modelling approach , 2004, Inf. Syst..

[39]  Eric Yu,et al.  Software refactoring guided by multiple soft-goals , 2003 .

[40]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[41]  Tom Mens,et al.  A survey of software refactoring , 2004, IEEE Transactions on Software Engineering.

[42]  Martin P. Ward A definition of abstraction , 1995, J. Softw. Maintenance Res. Pract..

[43]  Alberto Pettorossi,et al.  Semantics preserving transformation rules for Prolog , 1991 .

[44]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[45]  A. Mehta,et al.  Evolving legacy system features into fine-grained components , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[46]  Stéphane Ducasse,et al.  A language independent approach for detecting duplicated code , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

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

[48]  Roger S. Pressman,et al.  Software Engineering: A Practitioner's Approach , 1982 .

[49]  Václav Rajlich,et al.  Restructuring legacy C code into C++ , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[50]  Ki Hang Kim Measurement theory with applications to decision-making, utility and the social sciences: Fred S. Robert Reading, MA 01867: Addison-Wesley, 1979. $24.50 , 1981 .

[51]  Chelsea C. White,et al.  Multiobjective A* , 1991, JACM.

[52]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[53]  Benjamin L. Kovitz,et al.  Practical Software Requirements: A Manual of Content and Style , 1998 .

[54]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and Its Correctness , 1994, Inf. Comput..

[55]  Takeo Imai,et al.  A quantitative evaluation of maintainability enhancement by refactoring , 2002, International Conference on Software Maintenance, 2002. Proceedings..

[56]  Martin P. Ward The FermaT assembler re-engineering workbench , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[57]  William F. Opdyke,et al.  Refactoring object-oriented frameworks , 1992 .

[58]  Norman Wilde,et al.  A comparison of methods for locating features in legacy software , 2003, J. Syst. Softw..

[59]  Hongji Yang,et al.  Successful Evolution of Software Systems , 2002 .

[60]  John A. Clark,et al.  Metrics are fitness functions too , 2004 .

[61]  Václav Rajlich,et al.  Reengineering object-oriented code , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[62]  Mark Harman,et al.  Evolving transformation sequences using genetic algorithms , 2004 .

[63]  Serge Demeyer,et al.  Maintainability versus Performance: What's the Effect of Introducing Polymorphism ? , 2003 .

[64]  William C. Chu,et al.  Measuring abstractness for reverse engineering in a re-engineering tool , 1999 .

[65]  Xiaodong Liu Abstraction : a notion for reverse engineering , 1999 .

[66]  William G. Griswold,et al.  Automated support for program refactoring using invariants , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[67]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[68]  Patrick Suppes,et al.  Foundations of measurement , 1971 .

[69]  Klara Nahrstedt,et al.  Multimedia Applications , 2004, X.media.publishing.

[70]  Alberto Pettorossi,et al.  Program Transformation: Theoretical Foundations and Basic Techniques. Part 1 , 2005, Fundam. Informaticae.

[71]  S. E. Keller,et al.  Tree transformation techniques and experiences , 1984, SIGPLAN '84.

[72]  John Mylopoulos,et al.  Reasoning with Goal Models , 2002, ER.

[73]  Robert Balzer,et al.  A 15 Year Perspective on Automatic Programming , 1985, IEEE Transactions on Software Engineering.

[74]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[75]  Václav Rajlich,et al.  Case study of feature location using dependence graph , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[76]  Keith H. Bennett,et al.  Maintenance and abstraction of program data using formal transformations , 1996, 1996 Proceedings of International Conference on Software Maintenance.

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

[78]  Ben Wegbreit Goal-Directed Program Transformation , 1976, IEEE Trans. Software Eng..

[79]  Mark Harman,et al.  Getting results from search-based approaches to software engineering , 2004, Proceedings. 26th International Conference on Software Engineering.

[80]  Haruhiko Kaiya,et al.  Ontology based requirements analysis: lightweight semantic processing approach , 2005, Fifth International Conference on Quality Software (QSIC'05).

[81]  M. P. Ward,et al.  Program Analysis by Formal Transformation , 1996, Comput. J..

[82]  Keith D. Cooper,et al.  Optimizing for reduced code space using genetic algorithms , 1999, LCTES '99.

[83]  William A. Florac,et al.  Goal-Driven Software Measurement. A Guidebook. , 1996 .

[84]  M. H. Halstead,et al.  Natural laws controlling algorithm structure? , 1972, SIGP.

[85]  Hussein Zedan,et al.  MetaWSL and meta-transformations in the FermaT transformation system , 2005, 29th Annual International Computer Software and Applications Conference (COMPSAC'05).

[86]  James F. Allen Maintaining knowledge about temporal intervals , 1983, CACM.

[87]  John Mylopoulos,et al.  Representing and Using Nonfunctional Requirements: A Process-Oriented Approach , 1992, IEEE Trans. Software Eng..

[88]  Magdalena Balazinska,et al.  Advanced clone-analysis to support object-oriented system refactoring , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

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

[90]  Richard Millham,et al.  Evolution of batch-oriented COBOL systems into object-oriented systems through unified modelling language , 2006 .

[91]  Chris F. Kemerer,et al.  A Metrics Suite for Object Oriented Design , 2015, IEEE Trans. Software Eng..

[92]  Eliseo Clementini,et al.  A Small Set of Formal Topological Relationships Suitable for End-User Interaction , 1993, SSD.

[93]  Andrew W. Appel,et al.  Modern Compiler Implementation in ML , 1997 .

[94]  Shari Lawrence Pfleeger,et al.  Software Metrics : A Rigorous and Practical Approach , 1998 .

[95]  John Mylopoulos,et al.  From object-oriented to goal-oriented requirements analysis , 1999, CACM.

[96]  Mark T True,et al.  Software Requirements , 2005 .

[97]  Kevin A. Schneider,et al.  Software engineering by source transformation - experience with TXL , 2001, Proceedings First IEEE International Workshop on Source Code Analysis and Manipulation.

[98]  Jia Liu,et al.  Feature oriented refactoring of legacy applications , 2006, ICSE.

[99]  Ladan Tahvildari,et al.  Quality-driven object-oriented re-engineering framework , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..