مهندسی نرم افزار 2 RUP محسن کامیار دانشگاه فردوسی مشهد
RUP
این روش در ابتدا توسط شرکت Rational Sofwareارائه گردید .این شرکت در سال
2003به IBMپیوست می توان RUPرا فراتر از یک روند و یا روش صرف دانست که باید برای تولید نرم افزار مورد استفاده قرار گیرد .در اصل RUPعبارت است از ابزارهای بسیار متنوع برای بیان اطلعات به همراه یک روال کامل منعطف که باید هر شرکت
RUP
مستندات این متد به صورت یک پایگاه دانش شامل تمام توضیحات و همچنین نمونه هایی از اسنادی که باید در طول RUPتولید شوند می باشد. علوه بر این IBM Rational Method Composerامکان اعمال شخصی سازی را برروی این متد فراهم می آورد( .که در نسخه 2003تحت نام RUP Builderارائه شده است).
RUP
RUPیک گسترش برروی Unified Processمحسوب می شود که دارای جزئیات بسیار بیشتری نسبت به نسخه اصلی می باشد. مهمترین رویکرد در بین طراحان RUPرا می توان حرکت به سمت مرور کامل روش های موجود و شناخت عوامل اصلی در شکست پروژه های نرم افزاری و در نهایت ارائه رویکردی برای رفع این
RUP
از مهمترین عوامل شکست پروژه های نرم افزاری می توان به موارد زیر اشاره نمود
مدیریت نیازمندیها بر اساس درخواست تعامل مبهم و غیر دقیق بین کارفرما و پیمانکار و حتی بین واحد های مختلف پیمانکار طراحی های شکننده که نمی توانند بار زیاد پردازش و یا داده را تحمل نمایند عدم توانایی در کنترل و مدیریت پیچیدگی طراحی
RUP
ناسازگاری های شناسایی نشده در شناخت، طراحی و پیاده سازی تست ناکافی محصول برآوردهای شخصی از میزان پیشرفت پروژه ناتوانی در برخورد با ریسک ها گسترش کنترل نشده تغییرات مکانیزه نبودن بسیاری از فرآیندها
RUP
در این روش از یک زبان شیءگرا به نام Unified Modeling Languageبرای تولید مستندات استفاده می شود. در روش RUPو در روند حرکت از نیازهای کسب و کار مورد مطالعه تا سیستم مورد نیاز 6نکته اساسی باید مورد نظر قرار گیرند که به اختصار ABCDEFخوانده می شوند و به شرح زیر می باشند:
RUP
( Adapt the processاصلح فرآیندها در سازمان پیمانکار براساس مشخصات پروژه در دست انجام) ( Balance stakeholder prioritiesتعدیل اولویت های افراد ذینفع در کسب و کار مورد بررسی به علت وجود تعارض در بین اهداف و اولویت های پیمانکار و افراد ذینفع در کسب و کار مورد بررسی) ( Collaborate across teamsایجاد فرآیندهای ارتباطی مناسب در بین تیم های کاری)
RUP
( Demonstrate value iterativelyبررسی، ارائه و استفاده از نتایج تکرار قبلی برای انطباق بیشتر محصول بر نیازهای کارفرما) ( Elevate the level of abstractionافزایش سطح انتزاع برای افزایش میزان استفاده مجدد و افزایش سوددهی تولید) ( Focus continuously on qualityتمرکز پیوسته برروی کیفیت که یکی از جنبه های آن ایجاد روال ها مکانیزه برای انجام تست می باشد)
RUP
RUP
( Inceptionآغاز)
این فاز به بررسی اولیه برروی جوانب مختلف پروژه می پردازد تا بتوان تا حد ممکن فاصله بین برآوردهای اولیه و واقعیت های موجود در پروژه کشف گردند. در صورت پوشش ندادن این فاز احتمال شکست پروژه بسیار بال می رود و بهتر است پروژه از ابتدا شروع گردد.
( Elaborationاستخراج جزئیات)
در این فاز دامنه مسئله به صورت کامل
RUP
در این فاز باید بتوان محصولت زیر را تولید نمود
باید use-case modelتا حد %80تولید گردد تهیه ساختار نرم افزار به نحوی که مراحل تولید در این ساختار کامل مشخص شده باشند تهیه لیستی از مهمترین use-caseها تهیه لیستی از ریسک های موجود تهیه یک طرح تولید کلی برای تمام پروژه نمونه های اولیه ای که دقیقا بیان گر ریسک های تکنیکی شناسایی شده باشند.
RUP
در این فاز نیز در صورت عدم دستیابی به تولیدات مورد نظر بهتر است که طراحی از نو صورت گیرد .پس از این فاز به مراحلی وارد می شویم که دارای ریسک بسیار بالیی هستند و نمی توان تغییرات را به راحتی پوشش داد .مسلما پس از این فاز امکان بازگشت به ابتدای پروژه از بین خواهد رفت.
( Constructionساخت)
در این فاز عمده تمرکز برروی تولید نرم افزار است در بعضی از پروژه ها چندین تکرار در این فاز
RUP
( Transitionانتقال)
در این فاز محصول از تولید کننده به سمت کاربران نهایی سیستم منتقل می شود. عمده فعالیت ها در این فاز آموزش کاربران نهایی ،کاربران نگهدارنده سیستم و انجام beta testمی باشد.
RUP
مهمترین اجزاء در روند RUPعبارتند از
نقش – افرادی که در روند پروژه دارای وظایفی می باشند محصول – خروجی هایی که باید تولید شوند شامل مدل ها ،مستندات و ... وظیفه – فعالیتهایی که به یک نقش تخصیص داده می شوند که دارای خروجی مشخصی هستند و در تولید یک محصول مورد استفاده قرار می گیرند.
RUP
در هر تکرار وظایف را می توان در دسته های زیر تقسیم نمود:
دسته مهندسی
مدل کردن کسب و کار ( :)Business Modelingدر این دسته از وظایف مهندسین نرم افزار باید نسبت به ساختار ،اجزاء پویا و مشکلت جاری در کسب و کار مورد مطالعه اطلعات کافی به دست آورند. نیازمندی ها ( :)Requirementsاستخراج جزئیات نیازهای مشتری
RUP
تحلیل و طراحی (:)Analysis and Design مهمترین مشخصه های مورد نظر در یک طراحی عبارتند از:
در بر گرفتن تمام کارکردهای پوشش داده شده در use-case model در برگرفتن تمام نیازمندی ها سهولت اعمال تغییرات در صورت نیاز در تغییر کارکردهای شناسایی شده
در طراحی باید ساختار کلی کدی که قرار است تولید گردد مشخص شود .همچنین باید دسته بندی برروی کلس ها شناسایی شده در قالب اجزاء ( )componentsو زیرسیستم ها انجام شود .علوه بر این نحوه تعامل ( )collaborationآن ها در
RUP
پیاده سازی ( :)Implementationمهمترین جنبه فعالیت های این دسته را می توان تولید کد ،انجام unit testو سرجمع کردن تمام تولیدات دانست. تست ( :)Testمهمترین جنبه ها در این دسته به شرح زیر هستند:
درستی یابی ارتباط بین اشیاء درستی یابی یکپارچه سازی اجزاء مختلف پیاده سازی درستی یابی پیاده سازی تمام نیازمندی ها شناسایی و رفع عیوب و نواقص
تست باید در 4بعد کیفیتی صورت گیرد :قابلیت اطمینان ،کارکرد ،کارایی کاربرد ،کارایی سیستم. هرچه کشف عیوب و نواقص زودتر انجام شود
RUP
استقرار ( :)Deploymentعمده مسائل مورد نظر به شرح زیر می باشند:
تولید یک نسخه خارجی از محصول ایجاد یک بسته نرم افزاری توزیع نرم افزار نصب نرم افزار فراهم نمودن راهنما
RUP
دسته پشتیبانی
مدیریت تغییرات و پیکربندی :خود شامل جنبه های زیر می باشد
مدیریت پیکربندی :مدیریت نسخه های مختلف انواع تولیدات پروژه و بررسی وابستگی های بین آنها مدیریت درخواست تغییرات مدیریت وضعیت :مدیریت فعالیتهای انجام شده برروی درخواست های تغییر
RUP
مدیریت پروژه :این دسته از فعالیت ها در دو سطح مختلف قرار دارند ،دسته اول طرح فازها که به بررسی کلیات پروژه می پردازند و دسته دوم طرح تکرارها که به توصیف هر تکرار می پردازند .این فعالیت ها همچنین برروی مهمترین مسائل مربوط به کنترل پروژه چرخه های تولید تکراری می پردازند که می توان به موارد زیر اشاره نمود:
مدیریت ریسک برنامه ریزی یک پروژه مبتنی بر تکرار نظارت بر روند پروژه
اما مواردی مانند جذب نیروی انسانی و یا مدیریت
RUP
طرح فازها :هر فاز به عنوان یک پروژه دیده می شود و باید دارای مجموعه ای از فعالیت های نظارتی بر روند اجرای آن کنترل داشته باشند که می توان به موارد زیر اشاره نمود: طرح اندازه گیری ( :)Measurment Planمجموعه ای از ابزارها برای تعیین میزان پیشرفت پروژه طرح مدیریت ریسک :در این طرح باید تمام نیازها برای مقابله و مدیریت ریسک دیده شده باشند لیست ریسک ها :شامل لیست مرتب ریسک ها بر اساس میزان اهمیت و همچنین فعالیت های مرتبط با هر یک برای مدیریت آن است. طرح حل مشکلت :طرحی برای گزارش ،تحلیل و حل مشکلتی که ممکن است در طول پروژه به وقوع بپیوندند.
RUP
طرح پذیرش محصول :شامل جزئیات مربوط به نحوه تست و بررسی محصولت ارائه شده به مشتری توسط وی می باشد. طرح تکرارها :این طرح دارای جزئیات بیشتری از جمله طرح کامل زمانی ،منابع و وابستگی های بین وطایف مختلف می باشد .در هر لحظه از زمان دو طرح تکرار فعال وجود دارد :طرح تکرار جاری ،طرح تکرار بعدی (که در تکرار جاری تهیه می گردد) .برای تهیه جزئیات هر طرح احتیاج به اطلعات زیر داریم: طرح پروژه وصعیت فعلی پروژه (میزان پیشرفت ،مشکلت موجود ،ریسک های به وجود آمده و )... لیستی از سناریوها و یا usecaseهایی که باید در این تکرار تکمیل شوند.
RUP لیستی از ریسک ها که باید تا پایان این تکرار باید مورد بررسی قرار گیرند. لیستی از تغییرات که باید در محصول در نظر گرفته شوند (باگ ها ،تغییرات در نیازمندی ها و )... لیستی از اجزاء و کلس های اصلی که باید در این تکرار به صورت کامل پیاده سازی شوند این لیست ها باید همگی براساس اهمیت مرتب شده باشند تا در صورت بروز مشکلت امکان حذف بعضی از آن ها براساس موارد کم اهمیت تر وجود داشته باشد. تعدادی ابزار و سند وجود دارند که می توانند در سنجش و ساخت طرح هر تکرار می توانند کمک نمایند و به شرح زیر می باشند. برآورد تکرار :درجه به دست آمده در برآورد، درسهای آموخته شده و تغییراتی که باید اعمال شوند
RUP
سنجش های پروژه :شامل سنجش های پروژه، منابع ،روال ها ،محصولت مربوط به مراحل موجود در این تکرار می باشد. برآورد دوره ای وضعیت :راه کاری برای مدیریت خواسته های تمام افراد جهت اطمینان از سازگاری و هماهنگی خواسته های همه. ترتیب کارها :ابزاری است برای تعیین فعالیت هایی که باید توسط افراد مرتبط انجام شوند. لیست موارد :لیستی از کلیه مشکلت ،استثنائات، ابهامات و وظایف ناقص که باید در حین انجام پروژه پیگیری گردند.
RUP محیطی :شامل مجموعه ای از فعالیت ها می شود که برای پشتیبانی تولید نزم افزار مورد نیاز هستند .این نیازها می توانند از موارد بسیار کلی مانند اطلعات مورد نیاز برای انجام پروژه تا موارد فنی مانند ابزارهای مورد نیاز برای تولید را شامل شوند. که البته این فعالیت ها به سه دسته زیر تقسیم می شوند:
آماده سازی محیط برای پروژه :تعیین نحوه شروع روال تولید تهیه شده ،تعیین تغییرات لزم در روال تولید ،تعیین محصولت مورد نیاز برای تولید جهت دستیابی به محدودیت های زمانی و همچنین سطح رسمی بودن اطلعات مورد نیاز ،تهیه منابع پروژه مانند راهنماها،
RUP
آماده سازی محیط برای یک تکرار :آماده سازی ابزارها برای استفاده در این تکرار ،تحقیق در مورد نصب و تنظیم درست ابزارها برای استفاده در این تکرار ،تهیه راهنماها و قالب های لزم برای تولید محصولتی از پروژه که باید در این تکرار تولید شوند ،اطمینان از اطلع رسانی مناسب به اعضاء در مورد تغییرات اعمال شده پشتیبانی محیط در طول یک تکرار :پشتیبانی از اعضاء در مورد استفاده از ابزارها و اجرای روال ها.
RUP
نکته مهم RUP :یک قالب کاری برای تعیین روال های لزم جهت انجام یک پروژه می باشد پس به RUPبه عنوان یک روال سنگین و غیر قابل اجرا نگاه نکنیم.