This is a detail lecture about software re-engineering. To make software more maintainable. This lecture also give detail about software reverse engineering. When to re-engineer and how to re-engineer software.