Home
Research Publications
Teaching Students CV Software Funding Activities

EE382V Software Evolution (Fall, 2010)

Instructor: Dr. Miryung Kim (ACES 5.118)
    Office Hours: Wednesday 12:30PM to 2PM
    Email Response Hours: Monday & Wednesday 9AM - 10AM.  
 
Monday and Wednesday: 11 AM to 12:30 PM, ENS 116

Quick Links

General Description
Software evolution plays an ever-increasing role in software development. Programmers rarely build software from scratch but often spend more time in modifying existing software to provide new features to customers and fix defects in existing software. Evolving software systems is often a time-consuming and error-prone process. This course focuses on state-of-the art methods, tools, and techniques for evolving software.
 
I will begin by addressing software design principles for ease of change and reviewing empirical studies on software evolution. Subsequently, I will cover program differencing techniques and source transformation languages and tools. Next, I will cover analysis, testing, debugging and visualization methods for evolving software. This course also presents the-state-of-the-art research in analyzing software evolution by mining software repositories such as CVS, Subversion, and Bugzilla.

Audience and Prerequisites
This class is intended to students to introduce current research topics in software engineering with focus on software evolution.
Undergraduate level knowledge of data structures and object-oriented program languages is required. Knowledge of compilers, program analysis and program representations is encouraged. If you are unsure of your qualifications, please contact the instructor, who will be happy to help you decide if this course is right for you. You are welcome to just sit in for a few days and see how this class feels.
 
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
 
    * Software Fundamentals, edited by Daniel M. Hoffman and David M. Weiss, Addison Wesley, 2001
    * Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley Professional,1994
    * Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 1999
 
Grading
At the end of the course, students will present their projects to the class and submit 10 pages final reports. All final reports must follow ACM format.
Oral discussion of homework problems is encouraged. However, be sure to submit your own independent solution. Copying of any part of a solution without explicit reference to its source is plagiarism and considered cheating. Copying text from the papers that you are reviewing is also considered as plagiarism.  

Email Response Hours
When you send me an email about this class, please put a header [EE 382V] in the subject line. This will tag your email as a course-related email. I will respond to you as soon as I can or during my email office hours.  Please be brief and explicit about where you were stuck and what you need from me. I will try to answer them the best I can either by email, during the class, or using the blackboard discussion board. If you need immediate or interactive response, please try to talk to me after class or make an appointment to see me.

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.

Changes from the previous Software Evolution class
I decided to make the following changes based on my experience and students' feedback on the software evolution class in Fall 2009. 

(1) Midpoint project presentation: In addition to submitting a midpoint review report, we will have an in-class project presentations about your midpoint project progress.
(2) Reading assignments:  Every sunday evening 11:59PM, your paper review assignment is due. I understand that you may not be able to hand-in paper reviews in time for whatever reasons. You will have one immunity allowance for paper reviews. Out of 9 paper reviews, your best 8 scores will count toward your grade.
(3) Peer review task activities: You will be participating in code review tasks as both as an author and a reviewer. As an author (the developer who modified a program), you will prepare the inspection of your own program modification using a number of software engineering tools. As a reviewer, you will inspect the author's code using a number of software engineering tools and describe your confidence about the correctness of the modification. 
(4) No late policy: For reading assignments and project-related assignments, there is no late policy. I will not be accepting any late assignment. If you'd like to submit your assignments in advance, yet the blackboard submission site is not open for submission, you may email me your assignments.