ELEC 875 - Design Recovery and Automated Evolution

Winter 2020

Instructor: Tom Dean
Location: WLH 722
Times: Monday 2:30-4:30
Wed 3:30-4:30
Text: None. The course will be based on readings from the literature

News.

The first class will be on Wed Jan 8 because of a seminar on Monday


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 Participation 15%
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 their 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: 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: Mon 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]

Monday: C Program,   Java ProgramPic 1, Pic2, Pic3, Pic4, Pic 5, Java example DMM

Slides: Wed

Programs: grok for Mac grok for Linux

Grok for linux has been successfuly run on Mohave and on Ubuntu 16.04 LTS and 18.04 LTS, but not extensively tested in 64 bit code.

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: Mon 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.

Slides Mon Wed

Wed will be more 'Txl, with a talk based on the paper Txl Cookbook.Please do not distribute the slides, since they are from a third party source, and I only have permission to give them to the class.

Week 6

Monday is an advanced TXL class and organization for rest of term

Wed is exam.

2010 Exam

Groups for 2nd Part of Course


Monday 1

Monday 2

Monday 3

Wed

Week 7

MA&CC

NM&AHS

IJ&M

AG&JDC

Week 8

PP&XT

AA&KP&AB

MA&CC

NM&AHS

Week 9

IJ&M

AG&JDC

PP&XT

AA&KP&AB

Week 10

MA&CC

NM&AHS

IJ&M

AG&JDC

Week 11

PP&XT

AA&KP&AB

MA&CC

AA&NM&AHS

Week 12

IJ&M

AG&JDC

PP&XT

AA&KP&AB

Week 7

Monday

MA&CC: Li, H., Li, S., Sun, J., Xing, Z., Peng, X., Liu, M. and Zhao, X., Improving API caveats accessibility by mining API caveats knowledge graph. In 2018 IEEE International Conference on Software Maintenance and Evolution (ICSME) (pp. 183-193).

NM&AHS: Bogner, J. Fritzsch, J. Wagner, J., Zimmerman, A., "Assuring the Evolvability of Microservices: Insights into Industry Practices and Challenges", International Conference on Software Maintenance and Reengineering, 2019

IJ&M: Lung, C.H., "Agile software architecture recovery through existing solutions and design patterns", Presented at the 6th IASTED International Conference on Software Engineering and Applications, SEA 2002

Wednesday

AG&JDC: Adams, B. Tromp, H. de Schutter, W., "Design recovery and maintenance of build systems", International Conference on Software Maintenance, 2007., pp 114-123.

Week 8

Monday

PP&XT: Cordy, James R. "Comprehending reality-practical barriers to industrial adoption of software maintenance automation." 11th IEEE International Workshop on Program Comprehension, 2003.. IEEE, 2003.

AA&KP&AB: Hassan, A., Holt, R. "Architecture Recovery of Web Applications",  24th International Conference on Software Engineering (ICSE) Pages (349–359)

MA&CC:DiPenta, M, Cerulo, L.,Aversano,L., The Evolution and Decay of Statically Detected Source Code Vulnerabilities, SCAM 2008 pp 101-110

Wednesday

NM&AHS: Pantiuchina, J., Lanza, M., Bavota, G., "Improving Code: The (Mis)perception of Quality Metrics", 2018 IEEE International Conference on Software Maintenance and Evolution.

Week 9

Monday

IJ&M:Su, CT, Downming Y, Software Architecture Recovery and Re- documentation Tool of a Hospital Information  System,International Conference on Computer and Communication Engineering (ICCCE 2012), 3-5 July 2012, Kuala Lumpur, Malaysia

AG&JDC: Fernandez, A., Bergel A., "A domain-specific language to visualize software evolution", Information and Software Technology, 98(2018), pp 118-130

PP&XT: Chan, Brian, Lionel Marks, and Ying Zou. "An approach for estimating code changes in e-commerce applications." 2008 10th International Symposium on Web Site Evolution. IEEE, 2008.

Wednesday

AA&KP&AB: Tobias Roehm, Rebecca Tiarks “How Do Professional Developers Comprehend Software?” Proceedings of the 34th International Conference on Software Engineering June 2012 Pages 255–265.

Week 10

Monday

AHS & NM: Arcelli, D., Cortellessa, V., DiPompeo D., Earmo, R., Tucci, M., Exploiting Architecture/Runtime Model-Driven Traceability for Performance Improvement, 2019 IEEE International Conference on Software Architecture (ICSA)

IJ&M: Carey M. Gannod, G., "Recovering Concepts from Source Code with Automated Concept Identification", 15th IEEE International Conference on Program Comprehension (ICPC'07)

MA&CC: Kalliamvakou, Eirini, Georgios Gousios, Kelly Blincoe, Leif Singer, Daniel M. German, and Daniela Damian. "The promises and perils of mining GitHub." In Proceedings of the 11th working conference on mining software repositories (MSR), pp. 92-101. 2014.

Wednesday

AG&JDC: Hill, E, Pollock L, Vijay-Shanker, K. "Exploring the Neighborhood with Dora to Expedite Software Maintenance", ASE 07, pp 14-23.

Week 11

Monday

AA&KP&AB: Beat Fluri​ “Do Code and Comments Co-Evolve? On the Relation between Source Code and Comment Changes” 14th Working Conference on Reverse Engineering · WCRE 2007

PP&XT: Basit, Hamid Abdul, and Stan Jarzabek. "Detecting higher-level similarity patterns in programs." ACM Sigsoft Software engineering notes 30.5 (2005): 156-165.

MA&CC:Gonzalez et al., Automated Characterization of Software Vulnerabilities, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)

Wednesday

NM&AHS: Zimmermann et al. Impact of switching bug trackers: a case study on a medium-sized open source project, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)

Week 12

Monday

IJ&M:  Sadiq, J., Waheed, T., "Reverse Engineering & Design Recovery: An Evaluation of Design Recovery Techniques",  International Conference on Computer Networks and Information Technology.

AG&JDC: Costagliola, G,  De Lucia, A,  Deufemia, V,  Gravino, C,  Risi, M, "Design Pattern Recovery by Visual Language Parsing", Proceedings of the Ninth European Conference on Software Maintenance and Reengineering, CSMR 05.

PP&XT:  De Lucia, Andrea, et al. "Migrating legacy systems towards object-oriented platforms." 1997 Proceedings International Conference on Software Maintenance. IEEE, 1997.

Wednesday

AA&KP&AB:  Tobias Roehm, Rebecca Tiarks​ “How Do Professional Developers Comprehend Software?” 2012 34th International Conference on Software Engineering (ICSE). (From Week 9)

AA&KP&AB: Andrian Marcus, Andrey Sergeyev, “An Information Retrieval Approach to  Concept Location in Source Code” 11th Working Conference on Reverse Engineering.