ELEC 875 - Design Recovery and Automated Evolution

Winter 2018

Instructor: Tom Dean
Location: WLH 302
Times: Tuesday 12:00-12:30
Wed 13:00-14:30
Text: None. The course will be based on readings from the literature


Design recovery is the extraction of a design model from the artifacts of an existing software system. This design model is used to continue the evolution of the system. The model can be used in the planning and impact analysis stage, while making the changes and to test the result. The extracted design model can also be used to automate each of these tasks to varying degrees. Topics include design models, design recovery techniques, software evolution tasks, the semantics of programming languages and execution environments, and source code transformation.

Course Structure

There will be about 5 weeks of lectures followed by a midterm. The remaining 6 weeks will be seminar format where students will survey literature and prepare reports. Students will take turns leading class discussions on the literature. Students will also do a project singley or in pairs, including a class presentation of the project. The marking scheme is:

Midterm 25%
Reports 30%
Class Participation15%
Project 30%

Course Outline

This is a very general outline of topics for the first 5 weeks. The content of the remainder of the course depends on the papers chosen by the students.

  1. Introduction to Design Recovery
    Motivation, General Description, Legacy (Vintage) System Issues, Software Evolution Tasks (Planning & Impact Analysis, Modification, Testing)
  2. General Design Recovery
    Motivation, General Models (examples: Datrix, Hungarian and Dagstuhl Middle Models)
  3. Programming Language and Execution Environment
  4. Storage Semantics, Control Semantics, Preprocessor, Formatting, Comments, Environment Interaction Program Transformation
  5. Techniques, Grammar Based Transformation, Graph Transformations, TXL, Progres
  6. Empirical Studies
  7. Tools
    Rigi, Revolve, CPPX, PBS, LS/2000, and others. Exchange Formats (GXL , etc.)

Project Suggestions

This section has some suggested projects. The student is encouraged to come up with thier own ideas as well.

Course Schedule and Readings

Week 1

T.J. Biggerstaff, "Design Recovery For Maintenance and Reuse", IEEE Computer, 22(7), July 1989, pp. 36-99.
(available in the Douglas Library and on IEEE Xplore [direct link]).

This week will focus on Design Recovery as a topic, Design Models Organization and General Terminology

Slides: Tues, Wed

Week 2

Singer, J., Lethbridge, T., Vinson, N. and Anquetil, N., "An Examination of Software Engineering Work Practices", CASCON '97, Toronto, October, pp. 209-223.

Lethbridge, T. and Singer, J. (1997), "Understanding Software Maintenance Tools: Some Empirical Research", Workshop on Empirical Studies of Software Maintenance (WESS 97), Bari Italy, October, pp. 157-162.

R. Ferenc, S. Sim, R. Holt , R. Koschke, T. Gyimothy, "Towards a Standard Schema for C/C++", 8th Working Conference On Reverse Engineering (WCRE'01) , Stuttgart, Germany, October, pp. 49-58.

Slides: Tues, Wed

Week 3

T. Lethbridge, E. Plödereder, S. Techelaar, C. Riva, P. Linos, S. Marchenko, “The Dagstuhl Middle Model” [here]

H. Fahmy, R.C. Holt and J.R. Cordy, "Wins and Losses of Algebraic Transformations of Software Architectures", Proc. ASE'2001, IEEE 16th International Conference on Automated Software Engineering, San Diego, November 2001, pp. 51-62. [here]

Code: C, Java

Board Pictures, C1 C2 C3, Java1, Java2 Java3

As mentioned in class, the C diagram is missing the Sets and Uses edges. There should be a sets edge between main and x and a uses edge between main and x and a uses edge betwen Foo and s.

Wed Slides

Week 4

Michael L. Van De Vanter, "The Documentary Structure of Source Code" Journal of Information and Software Technology, Elsevier, Volume 44, No 13, pp. 767-782

Queen's has a subscription to the Elsevier Journals. You must be on a Queen's Computer or using the secure proxy server in order to download the paper. Go to the Elsevier website. In the Journal or Book title search box, type "Information and Software Technology", then select Volume 44, Issue 13. You can then download the Van de Vanter Paper.

Vaclav Rajlich, N. Wilde, "The role of Concepts in Program Comprehension" Proc. 2002 International Workshop on Program Comprehension (IWPC'02), June 2002, Paris, 271-278.

I.T. Bowman, R. Holt, N.V. Brewster, "Linux as a Case Study: It's Extracted Software Architecture", Proc. 21st International Conference on Software Engineering (ICSE'99), May 1999, Los Angeles, pp. 555-563

Available from IEEE Xplore.

Slides: Tues, Wed

Week 5

Bull, R.I.; Trevors, A.; Malton, A.J.; Godfrey, M.W. Semantic grep: regular expressions + relational abstraction 9th Working Conference on Reverse Engineering(WCRE 2002), October, 2002, Richmond, Virginia, pp. 267- 276.

Philipp Schugerl, "Scalable Clone Detection Using Description Logic" Proceeding IWSC '11 Proceedings of the 5th International Workshop on Software Clones, 201, pp 47-53 (Available at ACM digital library). Library access from Queen's IP address.

Slides: Tues, Wed

Week 6

The exam is this week. It is closed book except for the DMM specification document.

Previous exam

Week 7

Sorry for the delay. I has some other issues to deal with during reading week and a touch of the flu. Please do your best to read the papers this week. The deadline for the critical sumaries is Friday.

Tues: Groups 1, 4

Roy et al, NICAD: Accurate Detection of Near-Miss Intentional Clones Using Flexible Pretty-Printing and Code Normalization – 16th International Conference on Program Comprehension. 2008

Zhang et al, Predicting Consistent Clone Change, IEEE 27th International Symposium on Software Reliability Engineering (ISSRE)

Wed: Groups 2,3

Ali Mesbah, Software Analysis for the Web: Achievements and Prospects, IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)

Sheneamer et al, A Detection framework for semantic code clones and obfuscated code Expert Systems with Applications, Volume 97, 1 May 2018, Pages 405-420

Week 8

Tues: Groups 5,6

Minelli, Roberto, Andrea Mocci, and Michele Lanza. "I know what you did last summer: an investigation of how developers spend their time." Proceedings of the 2015 IEEE 23rd International Conference on Program Comprehension. IEEE Press, 2015. (6)

Codoban et al. Software History under the Lens: A Study on Why and How Developers Examine It, ICSME 2015. (5)

Wed: Groups 1, 4

Stevenson et al, Models are code too: Near-miss clone detection for Simulink models, ICSM 2012. (4)

Gueheneuc et al., A comparative framework for design recovery tools,Conference on Software Maintenance and Reengineering (CSMR'06), Bari, 2006, pp. 10 pp.-134. (1)

Week 9

Tues: Groups 2,3

Yandrapally et al, Robust Test Automation using Contextual Clues, ISSTA’14, pp 304-314 (2)

Xiaobing Sun et at. What Information in Software Historical Repositories Do We Need to Support Software Maintenance Tasks? An Approach Basedon Topic Model, Computer and information Science

Wed: Groups 5,6

Mondal, Manishankar, Chanchal K. Roy, and Kevin A. Schneider. "Bug Propagation through Code Cloning: An Empirical Study." Software Maintenance and Evolution (ICSME), 2017 IEEE International Conference on. IEEE, 2017.(6)

Marcus et al, An Information Retrieval Approach to Concept Location in Source Code, WCRE 2004.

Week 10

Tues: Groups 1, 4

ImanKeivanloo, Chanchal K.Roy, Juergen Rilling, SeByte: Scalable clone and similarity search for bytecode,Science of Computer Programming,Volume 95, Part 4

Roy,Zibran, Koschke,The Vision of Software Clone Management: Past, Present, and Future, CSMR-WCRE 2014 (1)

Wed: Groups 2,3

Kasper & Godfrey, "Cloning Considered Harmful" Considered Harmful, WCRE 2006 (3)

Blondeau et al. What are the Testing Habits of Developers


Week 11

Tues: Groups 5,6

Selim, Gehan MK, James R. Cordy, and Juergen Dingel. "How is ATL Really Used? Language Feature Use in the ATL Zoo." Proceedings of the 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems. IEEE Press. 2017.(6)

Ahmed E. Hassan and Richard C. Holt, "Architecture Recovery of Web Applications", ICSE 2002. (5)

Wed: Groups 1, 4

Jeffrey Svajlenko Chanchal K. Roy,Evaluating Clone Detection Tools with BigCloneBench, IEEE CSME 2015 (1)

Stephan and Cordy, Model-Driven Evaluation of Software Architecture Quality Using Model Clone Detection, QRS 2016.

Week 12

Tues: Groups 2,3

Beller et al, When, how, and why developers (do not) test in their IDEs,Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering


Eskavari et al, Identifying and locating interference issues in PHP applications: the case of WordPress, ICPC’14 (3)

Wed: Groups 5,6

Singer et al, Software Engineering at the Speed of Light: How Developers Stay Current using Twitter ICSE 2015

Sulír, Matúš, and Jaroslav Porubän. "RuntimeSearch: Ctrl+ F for a running program." Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. IEEE Press, 2017. (6)