مجموعه ای حساس از تکنیک ها و ابزارها برای فهمیدن اینکه محتوای یک نرم افزار شامل چه چیزهایی می باشد. به عبارت دیگر عمل تجزیه و تحلیل یک سیستم برای مشخص کردن مولفه های سیستم و رابطه متقابل آنها به منظور نمایش سیستم به شکلی دیگر یا در سطحی بالاتر می باشد. این نوع تکنیک ها باعث میشود تا ساختار یک نرم افزار را نمایان نموده و راه های عملکرد آن و همچنین ویژگی هایی که طبق آن حرکت میکند را مشخص کنیم. در واقع مهندسی معکوس زمانی که شخصی کد شخص دیگری را کاوش کند نیز اتفاق می افتد.

پروژه دات کام