بخشی از پاورپوینت
اسلاید 1 :
به نام ايزد يکتا
سمينار درس مهندسی نرم افزار پيشرفته
اسلاید 2 :
اهداف سمينار
بحث دربارة نگهداری نرم افزار و عوامل هزينة نگهداری
چرا تغييرات درسيستمهای نرم افزاری برای سودمند باقی ماندن، غيرقابل اجتناب است؟
تشريح فرآيند تکامل نرم افزار
اسلاید 3 :
مباحث تحت پوشش
نگهداری نرم افزار
فرآيندهای تکامل
تکنيکهای نگهداری نرم افزار
اسلاید 4 :
تغيير نرم افزار غيرقابل اجتناب است:
بعد از استفاده از نرم افزار نيازهای جديدی پديدار می شوند
محيط کار مورد استفاده نرم افزار تغيير می کند
خطاها بايد برطرف شوند
تغيير نرم افزار
اسلاید 5 :
نمودار وان حمام برای قابليت اعتماد سيستمهای نرم افزاری
اسلاید 6 :
تغيير نرم افزار غيرقابل اجتناب است:
بعد از استفاده از نرم افزار نيازهای جديدی پديدار می شوند
محيط کار مورد استفاده نرم افزار تغيير می کند
خطاها بايد برطرف شوند
کامپيوترها و تجهيزات جديدی به سيستم اضافه می شوند
شايد احتياج شود کارآيی و قابليت اعتماد سيستم بهبود يابد
مسئلة کليدی برای سازمانها تغيير و مديريت در سيستمهای نرم افزاری موجود می باشد
تغيير نرم افزار
اسلاید 7 :
اهميت تکامل
سازمانها سرمايه گذاری کلانی روی سيستمهای نرم افزاری خود انجام می دهند بنابراين دارايي های بحرانی تجاری آنها هستند
برای حفظ ارزش اين دارايي های تجاری، بايد تغيير کنند و بروز شوند
بودجة اصلی نرم افزاری در کمپانيهای بزرگ صرف تکامل نرم افزار موجود می شود تا ايجاد نرم افزار جديد
اسلاید 8 :
مدل مارپيچی (حلزونی) تکامل
اسلاید 9 :
پويايي های تکامل برنامهProgram Evolution Dynamics
پويايي های تکامل برنامه، مطالعه مراحل تغيير سيستم است
بعد از تحقيقات تجربی بسيار، ”لمن“ و ”بليدی“ هشت ” قانون“ که در حين توليد سيستمهای بزرگ در سازمانهای بزرگ بکار می رفتند، پيشنهاد کردند
بيشتر مشاهدات بودند تا قوانين
اسلاید 10 :
قوانين لمن
اسلاید 12 :
قابليت اجرای قوانين لمن
بنظر می رسد قوانين لمن عموماً برای سيستمهای بزرگ و سادة توليد شده توسط سازمانهای بزرگ قابل اجرا می باشد
واضح نيست چگونه بايد برای موارد زير اصلاح شود:
توليدات نرم افزاری Shrink-Wrapped
سيستمهايي که از کمپوننت های COTS استفاده می کنند
سازمانهای کوچک
سيستمهای با اندازة متوسط
اسلاید 13 :
نگهداری نرم افزار
اصلاح يک برنامه بعد از اينکه مورد استفاده قرار گرفت
بخشی از فرآيند مهندسی نرم افزار پس از اينکه نرم افزار تحويل گرديد (رونالد ليچ)
اصلاحات کد و مستندات مربوطه در برخورد با يک مشکل يا نياز به بهينه سازی. هدف آن اصلاح محصول نرم افزاری در حين نگهداری جامعيت آن می باشد (IEEE/EIA 12207)
تعريف ISO/IEC 14764 همانند IEEE/EIA 12207 است ولی تاکيد بيشتری بر جنبة قبل از تحويل آن مثل طراحي دارد
اسلاید 14 :
نگهداری نرم افزار
نگهداری، تغييرات اساسی در صفات و ويژگيهای سيستم را شامل نمی شود
تغييرات با اصلاح کمپوننت های موجود و اضافه کردن کمپوننت های جديد به سيستم انجام می شود
سئوالهای مهم در نگهداری نرم افزار: (رونالد ليچ)
مشکلات کجا هستند؟
چگونه برطرف شوند؟
کی برطرف شوند؟
کدامها برطرف شوند؟
اسلاید 15 :
نگهداری غيرقابل اجتناب است
نيازهای سيستم احتمالاً در حين توليد آن تغيير می کنند زيرا محيط در حال تغيير است. بنابراين يک سيستم تحويل داده شده نيازهايش را برآورده نخواهد کرد
سيستمها به محيط بسيار وابسته و در هم گره خورده هستند. زمانی که سيستمی در يک محيط نصب می شود آن محيط را تغيير می دهد و بنابراين نيازهای سيستم هم تغيير می کند
سيستمها بايد نگهداری شوند تا کارآمد باقي بمانند
اسلاید 16 :
طبيعت نگهداری
نگهداری دامنة وسيع تری همراه با کنترل و پيچيدگی بيشتر نسبت به توليد دارد (Pf 101)
فعاليّتهای اصلی نگهداری: (IEEE/EIA 12207)
فرآيند پياده سازی
مساله و آناليز اصلاح
پياده سازی اصلاح
بازنگری/ قبول نگهداری
مهاجرت
بازنشستگی
اسلاید 17 :
انواع نگهداری
نگهداری برای رفع عيبهای نرم افزار
تغيير يک سيستم برای تصحيح کمبودها بمنظور برآورده کردن نيازها
نگهداری برای سازگاری نرم افزار با محيط عملی متفاوت
تغيير يک سيستم تا بتواند دريک محيط متفاوت از پياده سازی ابتدايي آن عمل کند (کامپيوتر، سيستم عامل و .)
نگهداری برای اضافه کردن يا اصلاح عملکرد سيستم
اصلاح سيستم تا نيازهای جديد را برآورده کند
رونالد ليچ نگهداری پيشگيرانه را نيز معرفی می کند
اسلاید 18 :
انواع نگهداری
انواع نگهداری (ISO/IEC 14764)
نگهداری تصحيحی: رفتارهای اصلاحی يک محصول نرم افزاری که بعد از تحويل برای تصحيح عيوب کشف شده انجام می شود
نگهداری سازگاری: اصلاح يک محصول نرم افزاری که بعد از تحويل برای نگهداری محصول نرم افزاری در حال استفاده در يک محيط تغيير يافته يا در حال تغيير
نگهداری تکاملی: اصلاح يک محصول نرم افزاری بعد از تحويل برای بهبود کارآيی و قابليت نگهداری
نگهداری پيشگيرانه: اصلاح يک محصول نرم افزاری بعد از تحويل برای تشخيص و تصحيح عيوب پوشيده در محصول نرم افزاری قبل از فعال شدن عيوب
اسلاید 19 :
انواع نگهداری
بعداً ISO/IEC 1476 نگهداری سازگاری و تکاملی را با هم به نام نگهداری پيشرفته سازی بروز کرد
طبق Lientz & Swansonسه نوع نگهداری معرفی شده:
تصحيحی
سازگاری
کاملسازی
نگهداری پيشگيرانه در محصولات نرم افزاری که ايمنی در آنها بحرانی است انجام می شود
اسلاید 20 :
نياز به نگهداری
دلايل نگهداری (Pif 101,Pig 97,Tak 97)
رفع عيوب
بهبود طراحی
پيشرفتهای پياده سازی
تبادل با سيستمهای ديگر
تطابق برنامه ها تا بتوان سخت افزار و نرم افزار و خصوصيات سيستم و امکانات ارتباطی متفاوت را استفاده کرد
مهاجرت نرم افزار قديمی (Legacy Software)
بازنشستگی نرم افزار