
پایان نامه : مهندسي معکوس
فرمت : word
تعداد صفحه : 171
قیمت : مبلغ ۱۸ هزار تومان
چكيده:
مهندسي معکوس در اساس در تحليل سخت افزار براي استفاده در تجارت و ارتش ايجاد شد. هدف استنتاج تصميمات طراحي از محصولات نهايي است که در مورد روالهاي واقعي آنها دانش کمي وجود دارد يا اصلاً دانشي وجود ندارد[49]. همين تکنيک هم اکنون براي استفاده در سيستمهاي نرم افزاري قديمي بکار گرفته شده است و بيشتر براي نوشتن مستندات نادرست، ناکامل و يا حتي مستنداتي که در دسترس نيستند مورد استفاده قرار مي گيرد. مهندسي معکوس نرم افزار يا استخراج مفهوم برنامه يا درک آن يک زمينه تحقيقاتي است که در جهت توليد ابزارها و متدولوژي هاي با هدف درک و مديريت شمار روزافزون سيستمهاي قديمي بکار مي رود. تحقيقات و توسعه مهندسي نرم افزار بصورت سنتي بر افزايش بهره وري و کيفيت سيستمهاي در حال توسعه و يا برنامه ريزي شده تمرکز دارد. دهه 1980، پايه و اساس محکمي براي زمينه مهندسي معکوس با قوانين تکامل نرم افزار، تئوري هايي براي استراتژي هاي بنيادي درک برنامه و يک طبقه بندي براي مهندسي معکوس ايجاد کرد. دهه 1990 با مجموعه اي از مقالات شروع شد که چالشها و مسيرهاي تحقيقاتي را براي اين دهه مشخص مي نمود. در اين دهه، کميته مهندسي معکوس زير ساختها و ابزارهايي براي سه مولفه اصلي يک سيستم مهندسي معکوس تدوين کرد : پارسرها، يک مخزن و يک موتور مصور سازي. محققان استراتژي هايي براي سناريو هاي خاص مهندسي مجدد توسعه دادند و در نيتجه فن آوري درک برنامه براي اين سناريوها با استفاده از ابزارهاي تبديلي و مهندسي معکوس صنعتي مورد تحقيق و بررسي قرار گرفت..........
مهندسي معکوس سيستمهاي نرم افزاري بخصوص سيستمهاي قديمي و بزرگ بلحاظ تکنيکي کار دشواري است چراکه دراين سيستمها عموماً مشکلات عديده اي وجود دارد. هدف شخصي که مهندسي معکوسِ يک سيستم نرم افزاري را انجام ميدهد، ساخت مدلهاي ذهني از سيستم است که بطور فزاينده اي بهبود يافته باشد تا قادر باشد تصميمات آگاهانه اي در رابطه با نرم افزار اتخاذ کند. مهندس معکوس براي ايجاد يک مدل ذهني بهبود يافته از سيستم نرم افزاري، بايستي اطلاعاتي را در مورد سيستم جمع آوري نمايد که به وي در اين فرايند کمک کند. در اينجا سوالي مطرح ميشود : در مورد يک سيستم نرم افزاري چه بايد بدانيم تا آنرا بهتر درک نماييم؟ در پاسخ به اين سوال بايد گفت که اطلاعات لازم در سطوح مختلفي از دانه بندي قرار دارند مثل اطلاعات در مورد کل سيستم و ساختار کلي آن(اطلاعات در سطح دانه درشت)، اطلاعات در مورد ساختار کلاسها و سلسله مراتب کلاسها، اطلاعات در مورد حالتهايي که احتمالاً اشياء يک کلاس بخود مي گيرند و گذر هايي که از يک حالت به حالتي ديگر با فراخواني احتمالي متدها انجام ميشود و اطلاعات در مورد تبادل پيغام بين اشيائي که توسط يک برنامه ايجاد مي شوند (اطلاعات در سطح ريز دانه) و اطلاعات در مورد تکامل سيستم و کلاسها. اطلاعات ريز دانه حاصل از مهندسي معکوس کد شيي گرا و تحليل برنامه مجموعه اي از ديدگاههاي مفيد را در قالب نمودارهايي براي برنامه نويسان فراهم مي کند.
زبان مدلسازي يکپارچه يک زبان گرافيکي استاندارد براي نمايش سيستمهاي شيي گرا بصورت اشکال و نمودارهاي هندسي است. زبان مدلسازي يکپارچه از 9 نمودارِ بهم مرتبط تشکيل شده که برخي از آنها عبارتند از : نمودار کلاس، نمودار شي، نمودار تعامل، نمودار حالت، نمودار توالي و نمودار بسته.
در بين نمودار هاي زبان مدلسازي يکپارچه يکي از مشکلترين و زمانگير ترين نمودارها، نمودار تعامل شي ميباشد که به دو صورت نمودار توالي يا نمودار همکاري نمايش داده ميشود.
آنچه که در اين تحقيق انجام شده، بررسي مهندسي معکوس کد شيي گرا در ابتدا و سپس بررسي مفاهيم، تعاريف، اهداف و چالشها، تکنيکهاي ساخت و توسعه، پيشينه و کارهاي انجام شده توسط ساير محققين، ابزارهاي توليد خودکار و مسايل و مشکلات پيش رو براي ايجاد نمودارهاي توالي و حالت ميباشد.
هدف از اين سمينار بررسي مهندسي معکوس کد شيي گرا و روشهاي استخراج مدل رفتاري برنامه هاي شيي گرا از درون کد منبع آنها بکمک فنون مهندسي معکوس با تمرکز بر دو نمودار مهم بنام نمودار توالي و نمودار حالت ميباشد. هدف مهندسي معکوس کد استخراج مفهوم برنامه با استفاده از کد منبع بعنوان منبع اصلي اطلاعات ، سازمان و رفتار برنامه ميباشد و مجموعه اي از ديدگاههاي مفيد را در قالب نمودارهايي براي برنامه نويسان فراهم مي کند. اهداف اصلي مهندسي معکوس شيي گرا بشرح زير است :
- فايق آمدن بر پيچيدگي
- ايجاد ديدگاه هاي متفاوت و متنوع
- بازيابي اطلاعات مفقود
- کشف اثرات جنبي
- ترکيب انتزاعهاي سطح بالاتر
- تسهيل بازکاربري(استفاده مجدد)
در جريان تکامل نرم افزار، دقيقترين و قابل اعتماد ترين توصيف رفتار يک سيستم نرم افزاري، کد منبع آن ميباشد. در حقيقت نمودارهاي طراحي اغلب قديميشده يا از دست مي روند. چنين منبع ارزشمندي از اطلاعات نمي تواند مستقيما پاسخگوي همه سوالات مربوط به سيستم باشد. فنون مهندسي معکوس امکان استخراج ديدگاههاي سطح بالاتري از سيستم را فراهم ميکنند که به کمک آنها بعضي از جنبه هاي بهم مرتبط و وابسته اي که در محاسبات دستورات برنامه وجود دارد، خلاصه ميشود. نمودارهاي حاصل از مهندسي معکوس، قابليت رديابي برنامه و تغيير ساختار آنرا فراهم مي نمايند. زبان مدلسازي يکپارچه (يواِم اِل) يک زبان گرافيکي استاندارد براي نمايش نمودارهاي شيي گرا بصورت اشکال هندسي است. از اين جا به بعد در سراسر متن منظور از زبان مدلسازي يکپارچه، يواِم اِل خواهد بود. دو مورد از نمودارهاي مهم زبان مدلسازي يکپارچه، نمودارهاي توالي و نمودارهاي حالت هستند.
در اين سمينار بنا داريم تا پس از بررسي اجمالي مهندسي معکوس، بطور خاص به تشريح اين دو نمودار و جزييات بازيابي و پياده سازي و ابزارهاي توليد شده در سالهاي اخير براي استخراج آنها بپردازيم و نيز مهمترين کارهاي صورت گرفته در توسعه آنها را که همگي بصورت مقالات پذيرفته شده در سمينارها و کنفرانسها و انجمن هاي مهم برق و کامپيوتر ارايه شدهاند مورد بحث قرار مي دهيم.
در اين سمينار ابتدا کارهاي انجام شده براي مهندسي معکوس و کاربرد هاي آن و دو نمودار مهم آنرا بر طبق آخرين مقالات موجود و کارهاي صورت گرفته در دنيا و نيز سمينارها و پروژه هاي انجام شده در دانشگاه علم و صنعت طي سالهاي اخير بررسي مي کنيم. پس از آن به بررسي ضرورت تحقيق در مورد مهندسي معکوس و سير تحقيقاتي آن مي پردازيم. در اين بررسي ابتدا تعاريف مهندسي معکوس را بيان مي نماييم و روشهاي تحقيقاتي منتخب براي مهندسي معکوس و نيز استراتژي هاي تحقيقاتي براي ساخت و تکامل ابزارها را توصيف خواهيم کرد. در ادامه آن مشکلات مهندسي معکوس، روشهاي خودکار سازي آن نيز بحث خواهند شد. در فصل بعد به بررسي مهندسي معکوس و دلايل پيدايش آن، فنون و روشهاي مهندسي معکوس کد شيي گرا خواهيم پرداخت.در ادامه مفاهيم گراف جريان شيي بررسي خواهند شد. بخش بعد به تفصيل درباره دو مورد از نمودارهاي مهم زبان مدلسازي يکپارچه موجود در مهندسي معکوس به نامهاي نمودار توالي و نمودار حالت خواهد پرداخت.در اين بخش ابتدا اين دو نمودار معرفي خواهند شد و مفاهيم آنها را بررسي خواهيم کرد. در ادامه به تشريح چگونگي استخراج اين دو نمودار از متن کد برنامه هاي شيي گرا مي پردازيم. فصل بعد ابتدا يک مطالعه اجمالي روي روشهاي ايجاد نمودارهاي توالي در سالهاي گذشته، توسط ساير محققين که در منابع ديگر آمده مي نمايد و در ادامه روشي ابتکاري(اکتشافي ) براي ساخت نمودارهاي توالي همراه با يک مطالعه موردي ارايه ميدهد. سپس يکي از کاربردهاي نمودارهاي توالي در مدلسازي سيستمهاي مبتني بر وب تشريح خواهد شد. در ادامه شماري از ابزارهاي مهم و کاربردي مهندسي معکوس و نيز ابزارهاي استخراج نمودارهاي توالي و حالت که در سالهاي اخير در پروژه هاي مختلف در سراسر دنيا توليد شدهاند را بهمراه خصوصيات داخلي و ويژگيهاي طراحي آنها مورد بررسي قرار خواهيم داد. فصل آخر نيز به نتيجه گيري و کارهاي آتي در باب مهندسي معکوس و استخراج انواع نمودارهاي آن و مسايل باز در اين حيطه مي پردازد.
فهرست مطالب
فصل 1 : مقدمه
1-1-هدف
2-1-شرح مساله
3-1- تاريخچه
4-1-مروري بر مطالب سمينار
فصل 2- شرح مساله و کارهاي انجام شده
1-2- شرح مساله
2-2- کارهاي انجام شده در پروژه هاي مختلف ارشد
3-2- کارهاي انجام شده در منابع و مقالات خارجي
فصل 3 :بررسي ادبيات تحقيق
1-3- مقدمه
2-3- تعاريف مهندسي معکوس
3-3- مهندسي معکوس کد
1-3-3- درک پيوسته از برنامه
2-3-3- فرايند مهندسي معکوس
3-3-3- جهت دهي به تحقيق
4-3- مهندسي معکوس داده ها
5-3- مشکلات مهندسي معکوس
6-3- جديد ترين تکنولوژيها در مهندسي معکوس به اجمال
7-3- روشهاي خودکار سازي مهندسي معکوس
8-3- ابزارهاي مهندسي معکوس
9-3- نتيجه گيري
فصل 4 : مقدمه اي بر مهندسي معکوس
1-4- مقدمه
2-4- نمودارهاي حالت
3-4- نمودارهاي تعامل
فصل 5 : گراف جريان شيي
1-5- مقدمه
2-5- زبان انتزاعي
1-2-5- اعلانها
2-2-5- دستورات
3-5- گراف جريان شيي
4-5- نگهدارنده
5-5- الگوريتم انتشار جريان
6-5- حساسيت به شي
7-5- کارهاي مرتبط
فصل 6 : نمودار حالت
1-6- مقدمه
2-6- نمودارهاي حالت
3-6- تفسير انتزاعي
4-6- بازيابي نمودار حالت
5-6- پياده سازي نمودارهاي حالت
6-6- کي بايد از نمودار حالت استفاده کرد؟
فصل 7- نمودارهاي تعامل
1-7- مقدمه
2-7- نمودارهاي تعامل
3-7- نمودارهاي توالي
1-3-7- ايجاد و حذف اشياء
2-3-7- حلقه ها، شرطها و امثال آن
3-3-7- فراخواني هاي همزمان و غير همزمان
4-3-7- کي بايد از نمودارهاي توالي استفاده کرد؟
4-7- بازيابي نمودارهاي تعامل
1-4-7- سيستمهاي ناکامل
5-7- تحليل پويا
1-5-7- بحث
6-7- کارهاي مرتبط
فصل 8-ساخت نمودارهاي توالي در زبان مدلسازي يکپارچه
1-8- مقدمه
2-8- نمودارهاي توالي
3-8- مطالعه اجمالي نمودارهاي توالي و پيشرفتهاي آن
4-8- اشياء کرانه اي و کنترلي
5-8- روش اکتشافي ده مرحله اي براي ساخت و توسعه نمودارهاي توالي
6-8- مطالعه موردي
2-6-8- نمودار مورد کاربرد
3-6-8- نمودار کلاس
7-8- نتيجه گيري
فصل 9- مدلسازي سيستم هاي مبتني بر وب با نمودارهاي توالي
1-9- مقدمه
2-9- استخراج نمودارهاي توالي زبان مدلسازي يکپارچه از سيستم مبتني بر وب
1-2-9- بدست آوردنِ عاملها
3-2-9- دسته بندي فراخوانيها
4-2-9- بهبود پيامها از سيستم مبتني بر وب
5-2-9- تشخيص نمودار توالي
3-9- نتيجه گيري
فصل 10- مروري بر ابزارهاي مهندسي معکوس
1-10- مقدمه
2-10- معماري ابزارها
3-10- باهاس ، يک مجموعه ابزار براي تحليل برنامه و مهندسي معکوس
4-10- محيط مدلسازي و الگوسازي کد باز جامع
5-10- کلمبوس
6-10- رِويل
1-6-10- مروري بر سه ابزار نامبرده در اين بخش
7-10- شناسايي، کشف و بهبود رديابي الگو در جاوا
8-10- سيک ، يک ابزار سبک وزن براي نمودارهاي توالي زبان مدلسازي يکپارچه
9-10- کد کُرولِر
10-10- باندِرا
11-10- مسير ياب جاوا
12-10- ساير ابزارها
13-10- ارزيابي ابزارهاي مهندسي معکوس
1-13-10- بازبيني هاي ماهرانه
2-13-10- مطالعات کاربران
3-13-10- مشاهدات ميداني
4-13-10- مطالعات موردي
5-13-10- زمينه يابي
14-10- نتيجه گيري
فصل 11- نتيجه گيري، مسايل باز و کارهاي آينده
2-11- کارهاي مرتبط
منابع
***************************************************************************************
در صورت تمایل
به دریافت فایل فوق در مدت 10 دقیقه ، لطفاً اینجا کلیک
کنید
***************************************************************************************
مشاوره ؛نگارش پایان نامه ؛ مقاله + شبیه سازی
در تمام مقاطع دانشگاهی پذیرفته می شود
در صورت
تمایل می توانید عنوان و جزئیات پروژه خود را در قسمت نظرات این پست
اعلام فرمایید. ضمنا می توانید اطلاعات درخواستی خود را به ایمیل یا تلگرام
نمایید
ایمیل :
com.dr@yahoo.com
|