Jednou z výzev při komponentizaci aplikací je extrakce specifikace chování komponent z jejich implementace. Přitom je důležité, aby mezi extrahovanou specifikací a původním zdrojovým kódem zůstal zachován vztah který usnadní interpretaci výsledků následné analýzy specifikace.
Ačkoliv existují metody zpětného inženýrství pro objektové jazyky, žádná z nich neuvažuje vzájemný vzdah mezi poskytovanými a vyžadovanými metodami, což je v kontextu komponent důležité. Tento článek řeší problém v kontextu formalismu Behavior Protocol a komponent implementovaných v Jave.