COURSE OBJECTIVES
This course explains and applies best practices to analyze and understand existing software systems; Use heuristics and tools to detect shortcomings in the design and implementation of software systems; Apply tests and re-factoring techniques to systematically remove the shortcoming and forward engineering techniques to re-built the software for fitness of purpose.
COURSE LEARNING OUTCOMES (CLO)
CLO: 1. Explain the concepts and technique of software reengineering.
CLO: 2. Apply reengineering techniques to maintain and modify software systems.
CLO: 3. Analyze and understand maintenance related problems associated with object-oriented software systems.
CLO: 4. Able to perform complex design reengineering and reverse engineering problems
COURSE CONTENTS
- Introduction to Software Re-Engineering
- Software Evolution
- Legacy Systems
- RE-Engineering Techniques overview (reverse engineering, restructuring & forward propagation)
- Reverse Engineering & its techniques
- Refactoring code to analysis artifacts
- Refactoring code to architecture
- Object Oriented Re-engineering Patterns
- Program Comprehension
- Code restructuring
- Quality issues in re-engineering processes
- Tool support for Re-engineering, Challenges & Stakeholder aspiration
- Software maintenance and re-engineering economics
- Student Project demonstrations