مهندسی معکوس به زبان ساده فرایندی است که طی آن یک محصول با توجه به عملکرد و ساختارش، بازیابی میشود. هنگام ابداع یک محصول، عموما مهندسان طرحی را رسم و آن را خلق میکنند؛ به این ترتیب محصول نهایی ساخته میشود. اما در مهندسی معکوس، محصول نهایی مبدأ کار مهندس است؛ در این مطلب توضیح میدهیم مهندسی معکوس یعنی چه و کاربردهای آن چیست. همچنین فرایند و چند مثال از آن را بررسی میکنیم.
به زبان ساده مهندسی معکوس (Reverse Engineering) فرایندی است که طی آن با باز کردن اجزای یک محصول یا شیء و بازسازی آن، به اطلاعات مهمی دربارهی شیوه طراحی محصول دست مییابیم.
این محصولات میتواند شامل سازههای معماری و نرمافزاری، ماشینآلات، وسایل ترابری هوایی و هر چیز دیگری باشد. مهندسی معکوس، که به عنوان مهندسی برگشتی نیز شناخته میشود، به مهندسان این امکان را میدهد که به چگونگی طراحی یک محصول پی ببرند، به طوری که بتوانند آن را بازسازی کنند. پس اینکه توضیح دادیم مهندسی معکوس یعنی چه وقت آن است که با کاربردهای آن آشنا شویم و در آخر نتیجهگیری کنیم که آیا مهندسی معکوس جواب میدهد یا خیر.
مهندسی معکوس به شما این امکان را میدهد تا دربارهی طراحی محصول، ابعاد آن و ویژگی اجزای سازنده آن اطلاعات مفیدی به دست آورید. به عبارت سادهتر، این فرایند یک نقشهی کلی از طراحی اصلی یک محصول را در اختیار شما قرار میدهد. اما در درجه اول باید بدانیم که چرا یک نفر باید اجزای یک محصول موجود را از هم باز کند؟
مهندسی معکوس راهی برای از نو ساختن محصولات و اجزایی است که دیگر تولید نمیشوند. ممکن است در برخی موارد طرح اولیه محصول از بین رفته یا مفقود شده باشد. در این موارد، مهندسی معکوس به شما کمک میکند تا به مراحل طرحریزی محصول پی ببرید و از این معلومات برای تعمیر، بازسازی، یا بهبود محصول جدید استفاده کنید. این فرایند برای اصلاح محصول، بهبود امور تولیدی و مقرون به صرفهتر کردن محصول استفاده میشود.
در ادامه به برخی از کاربردهای مهندسی معکوس خواهیم پرداخت:
مهندسی معکوس مطمئنترین راه برای ساختن شیئی است که هیچ اطلاعاتی از آن در دسترس ندارید یا فقط خود شیء را در اختیار دارید. به عنوان مثال، شکل اصلی یک محصول را فرض کنید. هنگامی که به کمک نرمافزارها طرحی از آن ایجاد میشود، اطمینان از اینکه مدل طراحی شده با کامپیوتر مشابه تندیس آن است، چالشبرانگیز خواهد بود. با وجود این، ساخت دوباره محصول را بیدردسر میکند، چون مدل فیزیکی محصول، به عنوان منبع اطلاعاتی شما برای طراحی محصول به وسیلهی کامپیوتر خواهد بود.
ممکن است یک محصول یا یک قطعه نیاز به بهسازی و ارتقا داشته باشد. اگر برای قطعهی موردنظر، جایگزینی در بازار پیدا نکردید، میتوانید با مهندسی معکوس، یک نسخه از طرح اصلی محصول بسازید. نه تنها میتوانید قطعات را از نظر خرابی مورد تجزیهوتحلیل قرار دهید، بلکه میتوانید قطعات را برای افزایش ضخامت آنها یا استفاده از مواد مقاومتر مجددا طراحی کنید.
در مهندسی معکوس، میتوان فایلهای کد را به عنوان مرجعی برای آینده مطالعه کرد. با این روش همچنین قادرید برای آزمودن مراحل تولید و دستیافتن به روشهای افزایش بهره وری از مدلهای طراحی شده با کامپیوتر بهره ببرید. این امر به مهندسان کمک میکند تا اطلاعات دقیقی به دست آورند و در زمان خود صرفهجویی کنند.
مهندسی معکوس در پیدا کردن نواقص و خطاهای محصول نیز به شما کمک میکند. هنگامی که یک محصول موجود را با مهندسی معکوس امتحان میکنید، میتوانید قطعات معیوب آن را تشخیص دهید و از ایمنی و رفاه کاربران مطمئن شوید. توجه به فایلهای دیجیتالی که به وسیلهی این فرایند ساخته شدهاست، نقصها و کمبودها را به روشنی نشان میدهد به گونهای که میتوانید برای تعمیر یا جایگزینی آنها برنامهریزی کنید.
با مهندسی معکوس میتوانید نسخهی کاملا مشابهی را از یک محصول یا قطعه موجود بسازید (حتی زمانی که هیچ سند، مدل یا طرحی از محصول ندارید). تقریبا همه صنایع، اعم از صنایع تولیدی، صنایع مرتبط با خودرو، صنایع مرتبط با هوافضا یا صنایع هستهای میتوانند اطلاعات مورد نیازشان را به دست آورده و از آنها در مهندسی معکوس استفاده کنند.
در درجهی اول، شما باید درباره اینکه این فرآیند برای محصول شما مناسب است یا نه، تصمیم بگیرید. پس از آن قادر خواهید بود از مراحل زیر برای اجرای فرایند مهندسی معکوس برای یک محصول یا قطعه پیروی کنید:
این فرایند را میتوان به صورت زیر خلاصه کرد:
بدون شک تکنولوژی رشد و تحول زیادی یافتهاست. شما پس از اسکن بخشهای مختلف، فایلهای نهایی دقیقی دریافت میکنید. با این حال، این فرایند مقداری زمان میبرد. در درجهی اول، میزان پیچیدگی محصول، قطعه یا جزء، بر زمان اسکن تأثیر میگذارد. اگر نیاز باشد که اجزای محصول را از هم باز کنید، و هر جزء را جداگانه اسکن کنید، این فرایند حتی بیشتر هم طول میکشد. در درجهی دوم، میزان پیچیدگی و سایز قطعه بر زمان لازم برای اصلاح و بهسازی مدلهای طراحی شده با کامپیوتر اثر دارد.
بعضی از نمونههای مهندسی معکوس عبارتاند از:
نرمافزارها: یکی از مثالهای متدوال مهندسی معکوس در نرمافزار، استفاده از کدهای یک ماشین برنامه نویسی است که به یک پردازندهی منطقی (Logic Processor) ارسال میشود. سپس، دستورهای زبان برنامهنویسی، کدها را به کدهای اصلی تبدیل میکند. نمونههای دیگر استفاده از این فرایند در نرمافزار شامل رفع اشکالات، تصحیح خطاها در زمانی که کد منبع در دسترس نیست و بازسازی کدهای گمشده هستند؛
ساختوساز: اسکنرهای بزرگ در مهندسی معکوس برای برآورد اندازهی شکل سهبعدی ساختمانها یا کارخانههای فرآوری استفاده میشود. اطلاعات حاصل از این اندازهگیری در قالب BIM یا مدل اطلاعاتی ساختمان (Building Information Mode) ارائه میشود. معماران یا مهندسان میتوانند با مطالعهی این مدل بر مشکلات خاص، نظارت، و روشهای برطرف کردن آنها را پیدا کنند؛
قطعات کامپیوتر: هنگامی که یک قطعه دیگر در دسترس نیست، ساختن قطعه جایگزین از طریق مهندسی معکوس عملی درست و اصولی است. به عنوان مثال، در پروژه صفر گوگل (Google’s Project Zero)، جنبههای آسیبپذیر ریزپردازندهها از طریق این فرایند شناسایی میشود.