PDA

View Full Version : مهندسی مجدد و معکوس یعنی چی؟



maryamb
شنبه 04 خرداد 1387, 15:15 عصر
لطفا یکی به من بگه منظور از مهندسی مجدد و معکوس چیه؟

Bahram0110
شنبه 04 خرداد 1387, 15:30 عصر
سلام
یه مثال می زنم

فرض کن یه کشور خارجی یه ماشین طراحی می کنه
بعد یه کشور مثلا داخلی ، می خواد ماشین طراحی کنه. میاد قطعات اون ماشین خارجی رو باز می کنه و بصورت معکوس به تکنولوژی یا طرز ساخت اون پی می بره
این یه مثال از مهندسی معکوس بود

whitehat
شنبه 04 خرداد 1387, 15:33 عصر
دو لينك زير را ببينيد
http://barnamenevis.org/forum/showthread.php?t=67527
http://barnamenevis.org/forum/showthread.php?t=67528

aram_1987f
شنبه 18 خرداد 1387, 13:48 عصر
ميتونى واسه پيدا كردن توضيحاتِ بيشتر برى به scholargoogle.com اين سايت واسه جستجوی متون تخصصی اغلب استفاده ميشه بعد بنويسى bpr كلى توضیح داستان شکست و داستانهاى موفقيت آميز از اين bpr يا همون مهندسى دوباره پيدا ميكنى
اگرهم رشتت IT باشه تو دروس تخصصی زياد راجع بش حرف ميزنن
موفق باشى

cups_of_java
سه شنبه 21 خرداد 1387, 21:35 عصر
مهندسی مجدد بعنی اینکه یک نرم افزار موجود رو دوباره طراحی کنیم. اینکار هم در کد انجام میشه هم در سطوح بالا مثل طراحی و تحلیل های انجام شده.

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

maryam_ch
یک شنبه 28 مهر 1387, 16:53 عصر
ميشه بگين چه موقع هايي مهندسي مجدد انجام ميشه؟

Pr0grammer
چهارشنبه 08 آبان 1387, 01:20 صبح
ميشه بگين چه موقع هايي مهندسي مجدد انجام ميشه؟

خب، خیلی جاها، مثلاً :
طراحان آنتی ویروس ها برای پی بردن به روش کار یا نفوذ ویروس خاص، از مهندسی معکوس استفاده می کنند،
یا فرض کنید یک برنامه یه مشکلی داره، اما کدش در دسترس نیست، با این مهندسی میشه به مراحل طراحیش پی برد و دوباره اون برنامه رو با تصحیح اون مشکلی که داشت ، نوشت.
یا ک.ر.ک.ر ها برای ک.ر.ک کردن یه قفل نرم افزاری و .... از این مهندسی استفاده می کنند!

موفق باشید

Pr0grammer
چهارشنبه 08 آبان 1387, 01:32 صبح
مهندسی معکوس رسیدن از کد نرم افزار موجود به طرح های اولیه و سطح بالای اون کد هستش.

فکر نکنم این تعریف درست باشه! :متفکر: اگه کد برنامه ای رو داشته باشی دیگه مراحل انجام اونو هم داری خب! پس می خوای به چه مرحله ی اولیه دیگه ای برسی؟!:متعجب:

تا اونجایی که من می دونم، برای مهندسی معکوس از Disassembler ها استفاده میشه که مثلاً یه فایل exe رو به اسمبلی تبدیل می کنه تا یک مهندس معکوس از اونا به نتیجه ای که مد نظر هست برسه! نه از کد؟!

اگه اشتباه می کنم، لطفاً دوستان بگن تا منم یاد بگیرم! :قلب:

xvision
پنج شنبه 09 آبان 1387, 01:39 صبح
مهندسي معكوس يعني از فراورده برسي به مواد اوليه اون ...
مثلا از برنامه اي كه داره كار مي كنه ( exe ) برسي به كد توليد كننده اش
يا مثلا از قورمه سبزي برسي به مواد اوليه اش و روش پختش ( اين و خيلي مهمه )

Pr0grammer
پنج شنبه 09 آبان 1387, 11:45 صبح
دوستان، فکر کنم صاحب تاپیک (maryamb) متوجه شد مهندسی معکوس یعنی چی؟! :لبخند:
همین طور تا n تا post می خواین ادامه بدید؟ و هر کی یه جور تعریف کنه! :عصبانی++:

بهترین و کامل ترین توضیحات رو whitehat (http://barnamenevis.org/forum/member.php?u=4167) با دو تا لینکی که گذاشتن معرفی کردن، من که خیلی استفاده کردم! :متفکر: هر چند به نظر من عزیز maryamb باید قبل از ایجاد تاپیک یه جستجو می کرد، این موضوع چند بار قبل هم مطرح شده بود! :لبخند:
بهتره مدیر بخش این تاپیک رو قفل کنه! :لبخند:

MrJacob
یک شنبه 12 آبان 1387, 15:19 عصر
با سلام خدمت دوستان مهندسي مجدد و معكوس در ضمينه هاي مختلفي كاربرد دارهتوي پروژه هاي سازماني، اجتماعي، نظامي و ...
اصل و مفهوم آن تو همه موارد يكسان هست، اما اينكه چه جوري ازش تو دنياي كامپيوتر استفاده مي كنند براي ما مهم هست.
به تعاريف زير دقت كنيد :

مهندسي مجدد نرم افزار
"تغییر یک محصول نرم افزاری بعد از تشکیل مشکلات آن بطوریکه باعث بهبود کیفیت یا بهبود سایرمعیارهای سیستم مذکور گردد و یا اینکه باعث سازگار سازی سیستم برای سازگاری با تغییرات بسترهای مختلف می باشد." [1]
اساسا فرایند مهندسی مجدد، یک سیستم قدیمی موجود را که دارای هزینه نگهداری زیادی شده و یا دارای معماری یا پیاده سازی غیر قابل استفاده یا کهنه ای می باشد را به عنوان ورودی گرفته و با انجام یک سری عملیات روی سیستم با توجه به تکنولوژی های نرم افزاری و سخت افزاری روز آن را دوباره مهیا می کند. فرایند مهندسی مجدد شامل ترکیبی از فرایندهایی همچون مهندسی معکوس، مستند سازی دوباره سیستم، ساختار بندی دوباره سیستم، ترجمه و انتقال سیستم قبلی به سیستم جدید و در نهایت مهندسی مستقیم روی مستندات جدید برای تولید سیستم جدید می باشد. [2]

مهندسي معكوس نرم افزار
سابقه مهندسي معكوس به تحليل سخت افزار براي منافع تجاري يا نظامي بر مي گردد. هدف آن، تسهيل تغييرات با ايجاد درك درباره ي ماهيت كار نرم افزار، نحوه كار آن و معماري اش است. به طور خلاصه مي توان مهندسي معكوس را "تحليل يك سيستم نرم افزاري براي تشخيص قطعات و وابستگي هاي آن ها، استخراج و ايجاد تجرد سيستم و اطلاعات طراحي" ناميده مي شود. مهندسي معكوس مشتمل بر بكارگيري سطوح تجرد با روش هاي مختلف است. اين امر شامل يافتن ساختارهاي سطح پايين پياده سازي شده و سپس جايگزيني آن ها با همتاهاي سطح بالاست. فرايند مذكور به يك فرموله سازي كلي از معماري برنامه نيز منجر خواهد شد. [3]



D.Gjörwell, S.Haglund, Daniel Sandell. Reengineering And Reengineering Patterns, 2002
A.Le Gear. Thematic Review Of Software Reengineering And Maintenance 2004
E.Hassan, "Architecture Recovery of Web Applications", MSc Thesis, Waterloo Univ, 2001




مهندسي مجدد نرم افزار براي خودش همانند مهندسي نرم افزار داراي الگوها ( pattern ) و قوانين خاصي هست. همچنين همان طور كه تو تعاريف ديدين مهندسي معكوس بخشي از مهندسي مجدد بوده و در حقيقت براي اينكه يك سيستم نرم افزاري رو بتونيم مهندسي مجدد روش انجام بديم در اكثر مواقع نياز پيدا مي كنيم رو سيستم مهندسي معكوس انجام بديم.

بنظرم بهتره اينجا بيشتر به software Reengineering and software Reverse Engineering بپردازيم نه به Reengineering and Reverse Engineering