هر فرآیند مهندسی، طبق یک فرمول و دانشِ ابتدایی شکل میگیرد. مهندسی مستقیم، روند ساخت یک محصول یا سیستم به طور طبیعی، از مسیر دانش(ایده، فرمول، نقشه) به سمت پیادهسازی و ساخت است. در مهندسی مستقیم، متخصصان ابتدا ایدهپردازی و نقشهکشی میکنند، سپس محصول به مرحلهی تولید میرسد. اما در مهندسی معکوس کاملاً برخلاف این مسیر پیش میرود.

مهندسی معکوس، همانطور که نامش هم گویاست، طی کردنِ مسیر ساخت از انتها به ابتداست. در این شیوه، ما از پاسخ به سوال میرسیم. محصولی به دست ما رسیده است که به دانش و فرمول ساخت آن دسترسی نداریم، بنابراین، باید دانش و فرمول ساخت آن را استخراج کنیم. چگونه؟ با تجزیهی محصول یا سیستم میتوان به قطعات تشکیل دهنده، ساز و کار و یا فرمول اولیهی آن دست یافت.

تفاوت مهندسی معکوس و مهندسی مستقیم
مسئلهي اساسی در تفاوت مهندسی مستقیم و معکوس، حضور سازنده/ مولف است. زمانی که یک محصول به شیوهی مستقیم ساخته میشود، سازندهی اصلی آن در پروسهی تولید حضور دارد؛ اما پروسهی ساخت در شیوهی معکوس در غیاب سازندهی اصلی شکل میگیرد(عموم مسائل اخلاقیای هم که پیرامون این شیوه مطرح میشود، به همین دلیل است.). تصور کنید یک شرکت خودروسازی، تولید یک خودرو را متوقف کرده است؛ شرکتهای دیگر تصمیم میگیرند آن خودرو را بازتولید کنند؛ بنابراین مسیر تولید آنها بر اساس شیوهی معکوس خواهد بود.
کاربردها
به طور کلی کارایی شیوهی معکوس در دو مورد است:
●زمانی که پاسخ را داریم، اما سوال برایمان روشن نیست.
●زمانی که پاسخ و سوال را داریم، اما فرآیند ساخت(جزئیات فنی و نقشهها) را نمیدانیم.
با توجه به این دو مورد، میتوان گفت کاربرد اصلی Reverse Engineering در گسترش دانش است؛ دانشی که در شرایط حاضر در دسترس ما نیست اما در نقاط دیگری به آن دست یافتهاند.
تاریخچهی Reverse Engineering
مهندسی معکوس شیوهای است که عموماً در کشورهای در حال توسعه مورد استفاده قرار میگیرد. اولین بار در صنعت خودروسازی ژاپن برای بازتولیدِ انبوهِ خودروهای آمریکایی و اروپایی به کار رفت. اولین ماشینهایی که به این روش توسط کارخانههای «ایشی کاواجیما» بازتولید(کپی) شدند، فورد آمریکایی و شورلت بودند. امروزه هم بسیاری از کارخانههای چینی به روش Reverse Engineering در مقیاس انبوه تولید کالا میکنند.
Reverse Engineering در IT
کاربرد غیراخلاقی آن در زمینهی IT امکان Cracking است. هکرها با استفاده از مهندسی معکوس میتوانند حق کپیرایت نرمافزار را نقض کنند. آنها با نفوذ در سورس کدهای برنامه، امنیت آن را از بین میبرند و نسخههای Crack شده را عرضه میکنند. نسخههای Crack شده، نسخههای رایگان نرمافزارها هستند. برنامهنویسها میتوانند با استفاده از تکنیک اتاق پاک، امنیت بیشتری برای نرمافزارها ایجاد کنند.
امکان سه بعدی سازی
یکی از امکانات این شیوه، سه بعدی سازی است. برای پیادهسازی و ساخت قطعات، نیازمند به دست آوردن تصویر سه بعدی هستیم. در این شیوه ابر نقاط (cloud of points) به مدل سه بعدی در CAD تبدیل میشوند. ابر نقاط مجموعه سهبعدی از نقاط است که محیط خارجی اشیاء را ترسیم میکند. این نقاط به کمک یک اسکنر سه بعدی و با آنالیز سطح خارجی(ظاهری) اشیاء به دست میآیند.
این تکنولوژی در دو صورت تماسی و غیرتماسی اجرا میشود. در حالت غیرتماسی از لیزر و نور ساخت یافته استفاده میشود و در حالت تماسی از دستگاههای CMM (Coordinate Measuring Machine).

بازتولید، کپیکاری، cloning ؟
هدف از بهکارگیری مهندسی معکوس، تولید کالای غیرانحصاری است. در مواردی مهندسی معکوس را بازتولید میدانند و در موارد دیگر کپیکاری! البته معادل دیگری هم برای مهندسی معکوس به کار میرود که آن Cloning / شبیهسازی/ همسانسازی است.
آرائی که در این باره وجود دارد، یکسان نیست. بعضی منابع مهندسی معکوس را در خدمت گسترش دانش و دسترسپذیر کردن آن برای همگان دانستهاند و بعضی منابع دیگر، این شیوه را استفاده از ایدههای دیگران میدانند. میتوان گفت اخلاقگرایانه بودن یا نبودن این شیوه، وابسته به نوع تولیدی است که انجام میشود. مهندسی معکوس، ناقض مالکیت معنوی است اما در بیشتر موارد، گسترشدهندهی دانش در خدمت فعالیت و رفع نیازهای بشری است. در کشورهای در حال توسعه برای پیشرفت، نیازمند مهندسی معکوس هستیم. نمیتوان برای کشورهای در حال توسعه، مالکیت معنوی را ارجح دانست، زیرا جامعه نمیتواند همزمان با کشورهای جهان، نیازهایش را رفع کند. هدف مهندسی معکوس، ثبت معنوی نیست؛ بلکه دستیابی به دانش و طرح محصول برای پر کردن یک فقدان است.
موضعی که سازندهی دوم اتخاذ میکند، روشن کنندهی اخلاقیاتی بودن یا نبودن مهندسی معکوس است: آیا از مهندسی معکوس جهت رفع نیاز، بازنگری در آن و تولید محصول جدید استفاده میشود یا ادعای تولید محصول انحصاری؟