Instructor: Dr. Miryung Kim (ACES 5.118)
    Office Hours
    Tue 4:00 pm - 5:00 pm or by appointment
Teaching Assistant: Fatemeh Alavi  
    Office Hours
    Mon/ Wed 2:00 pm - 3:00 pm
Monday and Wednesday: 3:30 PM to 5 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.
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
    * Reading Assignments: 20%
    * Problem sets and any other non-project assigned tasks: 15%
    * Option (A) Project: 55%
          o proposal
          o midpoint review
          o presentation
          o final report
    * Option (B) Literature Survey + Tool Evaluation: 55%
          o literature survey: 35%
                + proposal
                + presentation
                + final report
          o tool evaluation: 20%
                + final report  
    * Class participation: 10%
For the project, students may choose to do (A) a research project or (B) both a literature survey paper and a tool evaluation.
Students submit a brief proposal for either option (A) or (B).  If a student takes the option (A), he or she is requied to carry out a small research project and submit 10 page research paper.  Good projects will result in work that is of a quality expected for conference or workshop submission. If a student takes the option (B), he or she is required to write 10 page literature survey paper and to perform a case study using one of the tools studied in the class.

If you are in a Ph.D program or pursuing Ph.D in the future, or you would like to do research in software engineering, I strongly encourage you to take the option (A). If you would like to broaden your knowledge about software engineering and am interested in evaluating cutting-edge software engineering tools, I encourage you to take the option (B).  If you need help in deciding which option to choose, please feel free to contact me. Please send me a brief description about your background, your research interests, what you need to get out of this class, etc.

Projects and tool evaluations can be done in team. Teams of two are strongly encouraged. If you want to work solo, you will have to convince me that you really are capable of delivering on your plans all by yourself. Small groups bring together a mix of skills and can support each other.

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.

Email Response Hours
Tue and Fri, 3:30-4:30 pm
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, Tue and Fri, 3:30-4:30 pm. 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.