Apr 25, 2024  
2018-2019 Undergraduate Academic Catalog 
    
2018-2019 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, Instructor consent)
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Upon successful completion of this course, the student will:
    • Have a solid understanding of software evolution and maintenance
    • Be able to reverse engineer a non-trivial system
    • Be able to recognize and locate software design problems in code
    • Be able to identify code smells and execute appropriate refactorings
    • Be able to 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
Brad Dennis



Add to Portfolio (opens a new window)