Class Schedule and Reading List
Introduction
(8/27, 9/1)
Program
Differencing (9/3, 9/8, 9/10)
- The Longest Common
Subsequence Algorithm (diff)
- Abstract
syntactic tree
based program differencing (CDiff)
- Control Flow Graph based
Program Differencing (JDiff)
- Taweesup Apiwattanapong,
Alessandro Orso, and Mary Jean Harrold. "A
differencing algorithm for object-oriented programs".
In ASE ’04: Proceedings of the 19th IEEE International
Conference on Automated Software Engineering, pages
2–13, Washington, DC, USA, 2004. IEEE Computer Society.
- Class
Activity on Line-based and AST-based Program Diffferencing
- Logical Structural
Diff
- Reading Assignment
#1 Due (9/11)
Mining
Software Repositories (9/15, 9/17)
- Recommending
Related
Changes
- Recommending
Relevant
Artifacts
- Class
Activity on
Recommendation Systems
- Pre-Proposal
Due (9/15)
- Quiz
#1 (9/17)
Program
Restructuring (9/22, 9/29)
- Refactoring
- Refactoring
Class Activity
- Refactoring
Reconstruction
- Zhenchang Xing and Eleni
Stroulia. "Umldiff:
an algorithm for object-oriented design differencing",
In ASE ’05: Proceedings of the 20th IEEE/ACM International
Conference on Automated Software Engineering, pages 54–65,
New York, NY, USA, 2005. ACM.Optional: Beat
Fluri, Michael W¨ursch, Martin Pinzger, and Harald C. Gall. "Change
distilling tree differencing for fine-grained source code change
extraction".
IEEE Transactions on Software Engineering, 33(11):18, November 2007.
- Optional: Danny
Dig and Ralph Johnson. "Automated
detection of refactorings in evolving components",
In ECOOP ’06: Proceedings of European Conference on
Object-Oriented Programming, pages 404–428. Springer, 2006.
- Reading
Assignment #2 Due (9/25)
- Proposal
Due (9/29)
Note:
Dr. Kim will be
attending conferences on 9/24 and 10/1. We will have a guest lecture
from Dr. Christine Julien on 9/24. We will have a presentation on
support for collaborative software development by Alex Loh and a
quiz on 10/1.
Software
Design for Ease of Change (10/6, 10/8)
- Information
Hiding
Principle
- Design
Patterns
- Class
Activity on Design
Patterns
- Software Architecture
- Project
One-on-One Meeting (10/6)
- Reading Assignment
#3 Due (10/9)
Crosscutting
Concerns (10/13, 10/15)
- Separation of Concerns
- Concern Management
- Language-based Approaches
toward Crosscutting Concerns
- Optional: Gregor Kiczales,
John Lamping, Anurag Menhdhekar, Chris Maeda, Cristina
Lopes, Jean-Marc Loingtier, and John Irwin, "Aspect-oriented
programming",
In European Conference on Object-oriented Programming, volume 1241,
pages 220–242. Lecture Notes in Computer Science 1241, 1997
- Optional: Michael
VanHilst and David Notkin, "Decoupling
change from design",
In SIGSOFT ’96: Proceedings of the 4th ACM SIGSOFT Symposium
on Foundations of Software Engineering, pages 58–69, New
York, NY, USA, 1996. ACM.
- Activity on Crosscutting
Concerns & Visitor Pattern
- Quiz
#3 (10/15)
Empirical
Studies of Software Evolution (10/20, 10/22)
- Code Decay
- Corrective,
Adaptive, and Perfective Changes
- Midpoint
Review Due (10/20)
- Quiz
#4 (10/22)
- Reading
Assignment #4 Due (10/23)
Delta
Debugging (10/27, 10/29)
- Andreas Zeller. "Yesterday,
my program worked. today, it does not. why?",
In ESEC/FSE-7: Proceedings of the 7th European Software Engineering
Conference held jointly with the 7th ACM SIGSOFT International
Symposium on Foundations of Software Engineering, pages
253–267, London, UK, 1999. Springer-Verlag.
- Activity on Delta
Debugging
- Applications of the Delta
Debugging Algorithm
- Statistical
Bug Isolation
Regression
Testing and Change Impact Analysis (11/3, 11/5)
- Regression Testing Selection
- Alessandro Orso, Nanjuan
Shi, and Mary Jean Harrold, "Scaling
regression testing to large software systems",
In SIGSOFT ’04/FSE-12: Proceedings of the 12th ACM SIGSOFT
twelfth International Symposium on Foundations of Software Engineering,
pages 241–251, New York, NY, USA, 2004. ACM.
- Path
Profiling
- Optional: Thomas Reps,
Thomas Ball,
Manuvir Das, and James Larus, "The
use of program profiling for software maintenance with applications to
the year 2000 problem",
In ESEC ’97/FSE-5: Proceedings of the 6th European Conference
held jointly with the 5th ACM SIGSOFT International Symposium on
Foundations of Software Engineering, pages 432–449, New York,
NY, USA, 1997. Springer-Verlag New York, Inc.
- Class Activity on Code
Coverage
- Change
Impact Analysis
- Xiaoxia Ren, Fenil Shah,
Frank Tip, Barbara G. Ryder, and Ophelia
Chesley, "Chianti:
a tool for change impact analysis of java programs",
In OOPSLA ’04: Proceedings of the 19th annual ACM SIGPLAN
Conference on Object-Oriented Programming, Systems, Languages, and
Applications, pages 432–448, New York, NY, USA, 2004.
ACM.
- Class Activity on Change
Impact Analysis
- One-on-One
Meeting (11/3)
- Quiz
#5 (11/5)
- Reading
Assignment #5 Due (11/6)
Reverse
Engineering and Knowledge Discovery (11/10, 11/12)
- Reflexion Model
- Metrics
and Visualization
Code
Clones (11/17, 11/19)
- Automatic Clone Detection
- Code Clone Genealogy
- Miryung Kim, Vibha
Sazawal, David Notkin, and Gail Murphy, "An
empirical study of code clone genealogies",
In ESEC/FSE-13: Proceedings of the 10th European Soft-ware Engineering
Conference held jointly with 13th ACM SIGSOFT International Symposium
on Foundations of Software Engineering, pages 187–196, New
York, NY, USA, 2005. ACM.
- Draft
Report Due (11/17)
- Quiz
# 6 (11/19)
Discussions
on Practical Applications of Software Evolution Research (11/24)
Project
Presentations
(12/1, 12/3)
- Final
Report and Electronic Presentation Due (11/30)