Design mentoring based on design evolution analysis

The basic intuition underlying this work is that experienced designers are able to point out problematic patterns in the design structure of an artifact and questionable events and trends in its evolution. We believe that the very process of recognizing and reflecting upon specific interesting designs and design-evolution examples may help software developers acquire valuable design experience to complement their textbook knowledge. The objective of this work is to further develop JDEvAn, so that it becomes a software design-evolution mentor that can advise developers on a desired course of software maintenance and evolution, based on its assessment of the system's current design and the design rationale implicit in the system's evolution history. JDEvAn focuses on the logical view of object-oriented Java systems as the first design artifact to analyze.

[1]  Eleni Stroulia,et al.  Understanding phases and styles of object-oriented systems' evolution , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[2]  Atif M. Memon,et al.  GUI ripping: reverse engineering of graphical user interfaces for testing , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

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

[4]  Rajiv Sabherwal,et al.  An Empirical Taxonomy of Implementation Processes Based on Sequences of Events in Information System Development , 1993 .

[5]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[6]  Serge Demeyer,et al.  Reconstruction of successful software evolution using clone detection , 2003, Sixth International Workshop on Principles of Software Evolution, 2003. Proceedings..

[7]  Leon Moonen,et al.  Java quality assurance by detecting code smells , 2002, Ninth Working Conference on Reverse Engineering, 2002. Proceedings..

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

[9]  Eleni Stroulia,et al.  Data-mining in Support of Detecting Class Co-evolution , 2004, SEKE.

[10]  Alexander Egyed,et al.  Scalable consistency checking between diagrams - the VIEWINTEGRA approach , 2001, Proceedings 16th Annual International Conference on Automated Software Engineering (ASE 2001).

[11]  Murray Hill,et al.  Lint, a C Program Checker , 1978 .

[12]  Michele Lanza,et al.  The evolution matrix: recovering software evolution using software visualization techniques , 2001, IWPSE '01.

[13]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.

[14]  Klaus Simon,et al.  An Improved Algorithm for Transitive Closure on Acyclic Digraphs , 1986, Theor. Comput. Sci..

[15]  Eleni Stroulia,et al.  Understanding class evolution in object-oriented software , 2004, Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004..

[16]  Harald C. Gall,et al.  Detection of logical coupling based on product release history , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[17]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[18]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[19]  A. Abbott,et al.  Measuring Resemblance in Sequence Data: An Optimal Matching Analysis of Musicians' Careers , 1990, American Journal of Sociology.

[20]  Gail C. Murphy,et al.  Hipikat: recommending pertinent software development artifacts , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[21]  Eleni Stroulia,et al.  MATHAINO: SIMULTANEOUS LEGACY INTERFACE MIGRATION TO MULTIPLE PLATFORMS1 , 2001 .

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

[23]  Rakesh Agarwal,et al.  Fast Algorithms for Mining Association Rules , 1994, VLDB 1994.

[24]  Richard C. Holt,et al.  Studying the chaos of code development , 2003, 10th Working Conference on Reverse Engineering, 2003. WCRE 2003. Proceedings..

[25]  Eleni Stroulia,et al.  Recognizing Refactoring from Change Tree , 2003 .

[26]  Gerhard Fischer,et al.  Information delivery in support of learning reusable software components on demand , 2002, IUI '02.

[27]  Audris Mockus,et al.  Visualizing Software Changes , 2002, IEEE Trans. Software Eng..

[28]  Stan Matwin,et al.  Supporting software maintenance by mining software update records , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.