بخشی از پاورپوینت

اسلاید 1 :

بازسازي معماري نرم افزار

اسلاید 2 :

مفاهيم کليدي
نياز به بازسازي معماري
استخراج اطلاعات
ساخت پايگاه دادهها
ترکيب ديدها
بازسازي

اسلاید 3 :

نياز به بازسازي معماري
همواره سيستمهايي وجود دارند که داراي مستندات معماري نيستند که ميتواند ناشي از:
عدم ثبت مستندات معماري باشد
بروز رساني معماري نرمافزار ثبت نشده باشد
مستندات معماري گم شده باشند

اسلاید 4 :

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

اسلاید 5 :

فرآيند بازسازي
فرآيند بازسازي معماري، فرآيند تفسيري، تکراري و داراي گامهاي بسياري است
در واقع اين فرآيند اتوماتيک نيست
اين فرآيند هم نياز به مهارت معماري دارد و هم نياز به تبحر در مهندسي معکوس کد

اسلاید 6 :

فرآيند بازسازي (ادامه)
ساختارهاي معماري ميتوانند توسط بسياري از مکانيزمهاي معکوسسازي در پيادهسازي مانند مجموعهاي از توابع، کلاسها و فايلها و از اين دست تحقق يابند
يک نگاشت بين ساختارهاي پيادهسازي به ساختارهاي معماري انجام ميشود
آشنايي با تکنيکهاي ساخت کامپايلر و ابزارهايي چون grep، sed، perl، lex، Yacc و . ميتواند کمک شاياني به بازسازي معماري نمايد

اسلاید 7 :

برخي پروژههاي بازسازي
MRI scanners
Public telephone switches
Helicopter guidance systems
Classified NASA systems
Physics simulation systems
Embedded control software for mining machinery
Satellite ground systems
A variety of automotive software

اسلاید 8 :

روش Workbench
بازسازي معماري نياز به مجموعه ابزارهاي مختلف دارد
عوامل متعددي در متفاوت بودن ابزارهاي بازسازي نقش دارند
اغلب ابزارهاي معماري وابسته به زبان هستند
MRI Scanner شامل ابزارهايي از 15 زبان مختلف است
ابزارهاي جداسازي داده، ناقص هستند
اين ابزارها اغلب نتايج ناقص يا اشتباه ميدهند
اهداف بازسازي معماري متفاوت هستند
اهداف متفاوت سبب ميشوند که اطلاعاتي که بايد بازيابي شوند، متفاوت باشند

اسلاید 9 :

روش Workbench (ادامه)
Workbench
مجموعهاي از ابزارها که قابليت افزودن ابزارهاي جديد بدون تاثير روي ابزارها و دادههاي موجود را دارد
نمونهاي از workbench نرمافزار Dali است که توسط SEI توسعه داده شده است

اسلاید 10 :

مراحل بازسازي
مراحل بازسازي معماري که به صورت تکراري انجام ميشود
استخراج اطلاعات
استخراج اطلاعات از منابع مختلف
ساخت پايگاه دادهها
تبديل اطلاعات به يک شکل استاندارد مانند فرم استاندارد Rigi و يک استاندارد برپاية SQL
ترکيب ديدها
ترکيب اطلاعات و ايجاد يک ديد يکپارچه از معماري
بازسازي
ساخت خلاصهها و نمايشهاي متفاوت از دادهها براي توليد نمايشي از معماري

اسلاید 11 :

مراحل بازسازي (ادامه)

اسلاید 12 :

گام بعدي
نياز به بازسازي معماري
استخراج اطلاعات
ساخت پايگاه دادهها
ترکيب ديدها
بازسازي

اسلاید 13 :

استخراج اطلاعات
تحليل فرآوردهها و پيادهسازي موجود و ساخت مدلي از آنها
نتيجة اين کار مجموعهاي از دادهها است که در پايگاه دادهها قرار دارند
استخراج دادهها ترکيبي از اهداف ايدهآل و عملي است
ايدهآل
چه اطلاعاتي درباره معماري ميخواهيد کشف کنيد تا بيشتر به شما کمک کند که اهداف بازسازي معماري شما برآورده شود
عملي
ابزارهاي موجود در عمل چه اطلاعاتي را ميتوانند استخراج و نمايش دهند

اسلاید 14 :

استخراج اطلاعات (ادامه)
عناصر دلخواه سيستم (فايلها، توابع و متغيرها) و ارتباط بين آنها را ميتوان از فرآوردههاي منبع (کد برنامه، سرفايلها و غيره) و ديگر فرآوردهها (فايلهاي اجرايي و نظير آن) کسب نمود

اسلاید 15 :

استخراج اطلاعات (ادامه)
نمونهاي از عناصر و ارتباطات استخراج شده

اسلاید 16 :

استخراج اطلاعات (ادامه)
هر رابطه بين عناصر مختلف اطلاعاتي راجع به سيستم ميدهد
نياز است تا به تمام روابط بين عناصر توجه شود
سطح جزئينگري نبايد بسيار پائين و يا بسيار بالا باشد
مجموعه عناصر و ارتباطات استخراج شده به سيستمي که در حال تحليل است و نوع ابزار بر ميگردد

اسلاید 17 :

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

اسلاید 18 :

ابزارهاي استخراج اطلاعات
Parsers (e.g., Imagix, SNiFF+, CIA, rigiparse)
اين ابزارهاي براي تحليل و توليد کد مياني مورد استفاده قرار مي گيرند. اين کدها ميتوانند براي دستيابي به يک ديد مورد استفاده قرار گيرند
Abstract Syntax Tree (AST) analyzers (e.g., Gen++, Refine)
مانند ابزارهاي Parsers کار ميکنند با اين تفاوت که نمايش درختي از اطلاعات پارس شده ميسازند
Lexical Analyzers (e.g., LSME)
فرآوردههاي منبع را به صورت رشتهاي از عناصر لغوي يا توکن جدا ميسازد

اسلاید 19 :

ابزارهاي استخراج اطلاعات (ادامه)
Profilers (e.g., gprof)
براي استخراج اطلاعات از برنامه در حال اجرا مورد استفاده قرار ميگيرند. اين ابزارها کد جديدي به سيستم اضافه نميکنند
Code instrumentation tools
اين ابزارها بيشتر در زمينه تست مورد استفاده قرار ميگيرند. در واقع اين ابزارها براي افزودن کد به سيستم در حال اجرا مورد استفاده قرار ميگيرند تا برنامه خروجي مورد نظر را بدهد
Ad hoc (e.g., grep, perl)
ابزارهاي ديگري که براي اشکالزدايي، تحليل، ساخت فايلها و غيره مورد استفاده قرار ميگيرند

اسلاید 20 :

نکاتي در مورد استخراج اطلاعات
از «کمترين تلاش» براي استخراج اطلاعات استفاده کنيد
با توجه به نيازهايي که داريد، ابزارهاي مناسب را استفاده نمائيد
ابزارهاي لغوي ارزانترين ابزارها هستند و در صورتيکه اهداف ساده هستند، بايد مورد توجه قرار گيرند
اطلاعاتي استخراج شده را ارزيابي نمائيد
قبل از اينکه شروع به ترکيب و دستکاري ديدها نمائيد، مطمئن شويد که اطلاعات درست در مورد ديد را استخراج نمودهايد

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید