#سیستم_نرم_افزاری

مهندسی معکوس (Reverse Engineering)

مهندسی معکوس

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

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

هدف از مهندسی معکوس تسهیل در اِعمال تغییر از طریق فهمیدن سیستم نرم‌افزاری با توجه به ماهیت کار، چگونگی کار و نمایش معماری آن است. به‌عنوان اهداف پیگیریِ این مقصود می‌توان به ترمیم اطلاعات از دست رفته، تسهیل جابه‌جایی بین بسترها، بهبود و (یا) تهیه مستندات جدید، استخراج عناصر قابل استفادهٔ مجدد، کاهش تلاش برای نگهداری، مقابله با پیچیدگی، کشف عوارض جانبی، کمک به انتقال به محیط CASE و ایجاد محصولات مشابه یا رقابتی اشاره کرد. از دیگر مزایای مهندسی معکوس کاهش هزینه‌ها و سریع آماده شدن نرم افزار است.

براي مثال هنگاميكه يك خودرو به بازار مي‏آيد رقيبان آن شركت توليدي ، مدلي از خودرو را تهيه كرده و آن را جداسازي مي كنند (Disassembling) تا طرز كار و چگونگي ساخت آن را ببينند و از تكنيكهاي آن در توليدات خود استفاده كنند ؛ يا در مهندسي راه و ساختمان از طرح پلها و ساختمانهاي قديمي كه هنوز پابرجا باقي مانده‏اند كپي گرفته مي‌شود و در مورد چگونگي ساخت آنها ، مواد اوليه استفاده شده و علل سالم ماندن آن تحقيق مي‌شود تا در طرحهاي خود براي استحكام بيشتر استفاده كنند .

در بعضي موارد طراحان ، شكلي از ايده ‏هايشان را با استفاده از گچ ، سفال و … نشان مي‌دهند (ساخت ماكت) كه نيازي به اندازه‏گيري دقيق ندارد ؛ اين در حاليست كه مدل كامپيوتري (CAD) نياز به اندازه‏گيري دقيق قسمتهاي مختلف دارد و تا زماني كه اين اندازه‏ها دقيق نباشند وارد كردن آن در CAD بسيار دشوار و حتي ناممكن است ؛ زيرا هيچ تضميني وجود ندارد كه مدل ارائه شده در CAD و مدلهاي ساخته شده بعدي با مدل اوليه مطابقت داشته باشند . مهندسي معكوس راه حلي براي اين مشكل دارد :

از نظر مهندسي معكوس در اين حالت مدل فيزيكي يك منبع اطلاعاتي مناسب براي مدل CAD است . در اين حالت با استفاده از ابعاد سه‌بعدي و اسكنرهاي ليزري و سطح‏نگارها با در نظر گرفتن ابعاد فيزيكي‌ ، جنس ماده تشكيل دهنده و ديگر جنبه‏ها يك مدل و الگوي پارامتري بدست مي‏آيد ؛ سپس اين مدل به CAD فرستاده مي‌شود و تغييرات نهايي روي آن انجام مي‌شود و سپس به دستگاه‏هاي برش و توليد (CAM) فرستاده مي‌شود كه CAM اين قسمت فيزيكي را توليد مي‌نمايد .

پس مي‌توان گفت كه مهندسي معكوس با كالا آغاز مي‌شود و به فرايند طراحي مي‌رسد و اين دقيقا مخالف مسير روش توليد (Product Definition Statement = PDS) است و به همين علت آن را مهندسي معكوس ناميده‏اند . به وسيله اين روش بيشترين اطلاعات ممكن درباره‏ ايده‏هاي مختلف طراحي كه براي توليد يك كالا استفاده مي‌شود بدست مي‏آيد . بدين وسيله هم مي‌توان كالا را دوباره توليد كرد و هم مي‌توان از ايده‏هاي مفيد آن براي توليد كالايي جديد بهره برد . همين امر باعث شده كه مهندسي معكوس به يكي از شاخه‏هاي مهم مهندسي تبديل گردد و همواره نگاهها به سوي توليدات وارد شده به بازار جلب شود .

اگر سابقه ی صنعت و چگونگی رشد آن در کشورهای جنوب شرقی آسیا را مورد مطالعه قرار دهیم به این مطلب خواهیم رسید که در کمتر مواردی این کشورها دارای ابداعات فن آوری بوده اند و تقریبا در تمامی موارد، کشورهای غربی (‌آمریکا و اروپا) پیشرو بوده اند. پس چه عاملی باعث این رشد شگفت آور و فنی در کشورهای خاور دور گردیده است؟

در این نوشتار به یکی از راهکارهای این کشورها در رسیدن به این سطح از دانش فنی می پردازیم.

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

این سخن اگر هم که درست باشد و در صورتی که کپی برداری راهی مطمئن برای رسیدن به هدف باشد چه مانعی دارد که این کار انجام شود.این مورد، به خصوص درباره ی کشورهای در حال توسعه ویا جهان سوم به شکاف عمیق فن آوری بین این کشورها و کشورهای پیشرفته دنیا، امری حیاتی به شمار می رود و این کشورها باید همان شیوه را پیش بگیرند(البته در قالب مقتضیات زمان و مکان و سایر محدودیت ها) به عنوان یک نمونه، قسمتی از تاریخچه ی صنعت خودرو و آغاز تولید آن در ژاپن را مورد بررسی قرار می دهیم:

تولید انبوه خودرو در ژاپن قبل از جنگ جهانی دوم ودر سال ۱۹۲۰ بوسیله ی کارخانه های “ایشی کاواجیما” آغاز شد که مدل ژاپنی فورد آمریکایی را کپی کرده و به شکل تولید انبوه به بازار عرضه نمود.

همچنین شورلت ژاپنی AE جزو اولین خودرو های کپی شده آمریکایی توسط ژاپنی ها بود که به تعداد زیاد تولید می شد. سپس با تلاش های فراوانی که انجام شد(آنهم در شرایط بحرانی ژاپن در آن دوره) مهمترین کارخانه‌ی خودرو سازی ژاپن یعنی “تویوتا” درسال ۱۹۳۲ فعالیت خود را با ساخت خودرویی با موتور “کرایسلر” آغاز نمود ، در سال ۱۹۳۴، نوع دیگری از خودرو را با موتور”شورلت” ساخته و وارد بازار نموده و از سال ۱۹۳۶، اولین تلاش ها برای ساخت خودروی تمام ژاپنی آغاز شد. البته تا مدت ها ژاپنی ها مشغول کپی برداری از اتومبیل های آمریکایی و اروپایی بودند.

آنها خودروی پاکارد و بیوک آمریکایی و رولزرویس، مرسدس بنز و فیات اروپایی را نیز تولید کردند که همین تولیدها زمینه ساز گسترش فعالیت خودروسازی ژاپن شد و سرانجام در دهه ی ۱۹۶۰ میلادی پس از سعی و کوشش فراوان ، اولین اتومبیل تمام ژاپنی که ضمنا دارای استاندارد جهانی بود، تولید و به بازار عرضه شد.

نتیجه گیری

در تمامی مطاب فوق رد پای یک شگرد خاص و بسیار مفید به چشم می خورد که “مهندسی معکوس”(Reverse Engineering ) نام دارد.

0