Mar 29, 2024  
2019-2020 Undergraduate Academic Catalog 
    
2019-2020 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

SE 4840 - Software Maintenance and Craftsmanship

3 lecture hours 0 lab hours 3 credits


Course Description
This course is an introduction to software evolution and maintenance.   The course begins with a discussion on software evolution and the different kinds of processes people use when conducting software maintenance.  Course lectures and activities will include select topics from the following technical domains; reverse engineering, reengineering, refactoring, software maintenance models, software craftsmanship and software reuse. Students will apply their knowledge by engaging in a quarter long course project to make incremental improvements to a non-trivial open-source software system.   (prereq: SE 3030 , senior standing and instructor consent)
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Have a solid understanding of software evolution and maintenance
  • Reverse engineer a non-trivial system
  • Recognize and locate software design problems in code
  • Identify code smells and execute appropriate refactorings
  • Write high quality, self-documenting code

Prerequisites by Topic
  • Project experience on non-trivial software systems
  • Experience with SCM tools such as git

 


Course Topics
  • Maintenance and evolution
  • Maintenance models
  • Software configuration management
  • Impact analysis
  • Program comprehension
  • Reengineering
  • Reverse engineering
  • Refactoring
  • Clean code

Coordinator
Dr. Christopher Taylor



Add to Portfolio (opens a new window)