|
Apr 25, 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, 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)
|
|