![]() |
||||
|
||||
Prerequisites Undergraduate level knowledge of data structures and object-oriented program languages is required. Knowledge of compilers and program analysis is encouraged. Readings Relevant papers will be drawn from the leading software engineering journals and conference proceedings such as: TOSEM, TSE, ICSE, FSE, ASE, OOPSLA, and ICSM Optional Textbooks
Student with Disabilities The University of Texas at Austin provides upon request appropriate academic accommodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4641 TTY or the College of Engineering Director of Students with Disabilities at 471-4382. |
||||
Course Outline | ||||
Week 1 - (1/21): Introduction | ||||
Week 2 - (1/26 , 1/28) | ||||
Software Design for Ease of Change | ||||
Mythical Man-Month Fredrick P. Brooks, Jr. "No Silver Bullet: Essence and Accidents of Software Engineering", Computer, April 1987 |
||||
Information Hiding Principle
David Lorge Parnas. "On the criteria to be used in decomposing systems into modules", Communications of the ACM, 15(12):10531058, 1972. |
||||
Tool Support for Designing Software for Ease of Change
Vibha Sazawal, Miryung Kim, and David Notkin. "A study of evolution in the presence of source-derived partial design representations". In IWPSE 04: Proceedings of the Principles of Software Evolution, 7th International Workshop, pages 2130, Washington, DC, USA, 2004. IEEE Computer Society. |
||||
Week 3 - (2/2 , 2/4) | ||||
Design Patterns and Software Architecture | ||||
Erich Gamma, Richard Helm, Ralph E. Johnson, John M. Vlissides, "Design Patterns: Abstraction and Reuse of Object-Oriented Design", ECOOP 1993: 406-431 | ||||
David Garlan and Mary Shaw. "An Introduction to Software Architecture", CMU Tech Report, January 1994. | ||||
Week 4 - (2/9 , 2/11) | ||||
Empirical Studies of Software Evolution | ||||
Laszlo A. Belady and M.M. Lehman. "A Model of Large Program Development", IBM Systems Journal, 15(3):225252, 1976. | ||||
Code Decay and Analysis of Fault Prone Modules Stephen G. Eick, Todd L. Graves, Alan F. Karr, J. S. Marron, and Audris Mockus. "Does code decay? Assessing the evidence from change management data", IEEE Transactions on Software Engineering, 27(1):112, 2001. |
||||
Corrective, Adaptive, and Perfective Changes
Swanson, E.B., The Dimensions of Software Maintenance, Proceedings of the 2nd IEEE International Conference on Software Engineering, 1976, pp. 492-497. |
||||
Chris F. Kemerer and Sandra Slaughter. "An empirical approach to studying software evolution". IEEE Transactions on Software Engineering, 25(4):493509, 1999. | ||||
Week 5 - (2/16 , 2/18) | ||||
Software Change: Program Differencing Techniques | ||||
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 213, Washington, DC, USA, 2004. IEEE Computer Society. | ||||
Miryung Kim and David Notkin. "Program element matching for multi-version program analyses". In Proceedings of the International Workshop on Mining Software Repositories, pages 5864, 2006. | ||||
Week 6 - (2/23 , 2/25) | ||||
Software Change: Source Transformation Languages and Tools | ||||
Marat Boshernitsan, Susan L. Graham, and Marti A. Hearst. "Aligning development tools with the way programmers think about code changes", In CHI 07: Proceedings of the SIGCHI conference on Human factors in computing systems, pages 567576, New York, NY, USA, 2007. ACM. | ||||
James R. Cordy, Thomas R. Dean, Andrew J.Malton, and Kevin A. Schneider. "Source transformation in software engineering using the txl transformation system", Journal of Information and Software Technology, 44:827837, 2002. | ||||
Week 7 - (3/2 , 3/4) | ||||
Mining Software Repositories: Reconstruction of Related Changes | ||||
Thomas Zimmermann, Peter Weiίgerber, Stephan Diehl, and Andreas Zeller. "Mining version histories to guide software changes", IEEE Transactions on Software Engi-neering, 31(6):429445, 2005. | ||||
Mining Software Repositories: Analysis of Version Control System and Bug Database
Data
Davor Cubranic and Gail C. Murphy. "Hipikat: recommending pertinent software development artifacts". In ICSE 03: Proceedings of the 25th International Conference on Software Engineering, pages 408418, Washington, DC, USA, 2003. IEEE Computer Society. |
||||
Sunghun Kim, Thomas Zimmermann, E. James Whitehead Jr., Andreas Zeller. "Predicting Faults from Cached History", ICSE 2007: 489-498 | ||||
Week 8 - (3/9 , 3/11) | ||||
Program Restructuring | ||||
Martin Fowler. "Refactoring: Improving the Design of Existing Code". Addison-Wesley Professional, 2000. | ||||
Refactoring Reconstruction 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. |
||||
Danny Dig and Ralph Johnson. "Automated detection of refactorings in evolving components", In ECOOP 06: Proceedings of European Conference on Object-Oriented Programming, pages 404428. Springer, 2006. | ||||
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 5465, New York, NY, USA, 2005. ACM. | ||||
Week 9 - (3/16 , 3/21): Spring Break | ||||
Week 10 - (3/23 , 3/18) | ||||
Crosscutting Concerns | ||||
N-Dimensional Separation of Concerns
Peri Tarr, Harold Ossher, William Harrison, and Jr. Stanley M. Sutton. "N degrees of zeparation: multi-dimensional separation of concerns", In ICSE 99: Proceedings of the 21st International Conference on Software Engineering, pages 107119, Los Alamitos, CA, USA, 1999. IEEE Computer Society Press. |
||||
Aspect J
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 220242. Lecture Notes in Computer Science 1241, 1997 |
||||
Week 11 - (3/23 , 3/25) | ||||
Crosscutting Concerns | ||||
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 5869, New York, NY, USA, 1996. ACM. | ||||
Martin P. Robillard and Gail C. Murphy, "Feat: a tool for locating, describing, and analyzing concerns in source code", In ICSE 03: Proceedings of the 25th International Conference on Software Engineering, pages 822823, Washington, DC, USA, 2003. IEEE Computer Society. | ||||
Week 12 - (3/30 , 4/1) | ||||
Code Clones | ||||
Clone Detection Toshihiro Kamiya, Shinji Kusumoto, and Katsuro Inoue, "CCFinder: A multilinguistic token-based code clone detection system for large scale source code", IEEE Trans-actions on Software Engineering, 28(7):654670, 2002. |
||||
Is Cloning Considered Harmful?
James R. Cordy, "Comprehending reality practical barriers to industrial adoption of software maintenance automation", In IWPC 03: Proceedings of the 11th IEEE Inter-national Workshop on Program Comprehension, page 196, Washington, DC, USA, 2003. IEEE Computer Society |
||||
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 187196, New York, NY, USA, 2005. ACM. | ||||
Week 13 - (4/6 , 4/8) | ||||
Program Comprehension and Visualization of Software Evolution | ||||
Metric and Visualization Michele Lanza and St΄ephane Ducasse, "Polymetric views-a lightweight visual approach to reverse engineering", IEEE Transactions on Software Engineering, 29(9):782795, 2003. |
||||
Reverse Engineering and Knowledge Discovery Susan Elliott Sim, Margaret-Anne D. Storey, "A Structured Demonstration of Program Comprehension Tools", WCRE 2000: 184-193 Margaret-Anne D. Storey, Hausi A. Mόller: Manipulating and documenting software structures using SHriMP views. ICSM 1995: 275- |
||||
Reflexion Model
Gail C. Murphy, David Notkin, and Kevin Sullivan, "Software reflexion models: bridging the gap between source and high-level models", In SIGSOFT 95: Proceedings of the 3rd ACM SIGSOFT Symposium on Foundations of Software Engineering, pages 1828, New York, NY, USA, 1995. ACM. |
||||
Week 14 - (4/13 , 4/15) | ||||
Regression Testing and Change Impact Analysis | ||||
Regression Test Selection, Prioritization
and Augmentation
Gregg Rothermel and Mary Jean Harrold. "A safe, efficient regression test selection technique", ACM Transactions on Software Engineering and Methodology, 6(2):173 210, 1997. |
||||
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 241251, New York, NY, USA, 2004. ACM. | ||||
Change Impact Analysis
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 432449, New York, NY, USA, 1997. Springer-Verlag New York, Inc. |
||||
Week 15 - (4/20) | ||||
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 432448, New York, NY, USA, 2004. ACM. |
||||
Maximilian Stoerzer, Barbara G. Ryder, Xiaoxia Ren, and Frank Tip. "Finding failure inducing changes in java programs using change classification", In SIGSOFT 06/FSE- 14: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 5768, New York, NY, USA, 2006. ACM. | ||||
Week 15 - (4/22) | ||||
Fault Isolation and Debugging | ||||
Delta Debugging
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 253267, London, UK, 1999. Springer-Verlag. |
||||
Statistical Bug Isolation
Ben Liblit, Alexander Aiken, Alice X. Zheng, Michael I. Jordan, "Bug isolation via remote program sampling", PLDI 2003: 141-154 |
||||
Week 16 - (4/27 , 4/29): Final Presentations | ||||
Week 17 - (5/4 , 5/6): Final Presentations |