In the modern era, complex software systems are mostly constructed by integrating off-the-shelf components. The efficient and quality engineering practices demand to consult the technical specification of the components to understand their possible behaviors in the overall system. But specifications are often absent or vaguely described for a detail analysis. This situation is a daunting prospect to the designers of large-scaled systems that are built-up of such "black-box" components. The book presents reverse engineering methodologies to uncover the hidden specifications of black-box components by inferring their formal models, in order to facilitate testing and analysis of the integrated systems. The book includes chapters on real-world stories of the applications of the approach in telecom, automotive and web domains.