|
Dec 22, 2024
|
|
|
|
SE 4840 - Software Maintenance and Craftsmanship3 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)
|
|