Se2 4 Unified Process

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Se2 4 Unified Process as PDF for free.

More details

  • Words: 1,877
  • Pages: 28
‫مهندسی نرم افزار ‪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‬به عنوان یک روال‬ ‫سنگین و غیر قابل اجرا نگاه نکنیم‪.‬‬

Related Documents

Se2 4 Unified Process
November 2019 11
Se2
October 2019 7
Unified Proposal
November 2019 11
Se2 9 Metrics
November 2019 9
Se2 1 Outline
November 2019 8