I am reading a book recently called Re-Engineering Legacy Software from Chris Birchall , and find many interesting insights.
The chapter 4 to 6 discussed different types of re-engineering from small scope to large : Refactoring, Re-Architecting and The Big Rewrite. The author also discuss some real examples.
For example, in chapter 5, he discussed how to break a monolithic application (a log management app) into modules, by defining interfaces and iterative development to reduce risk.
He also discuss an example to re-architect a huge monolithic legacy ecommerce web app to Service-Oriented Architecture and what the challenges will it be.
4/5 Star, Recommended.