گزارش سمینار کارشناسی ارشد
گروه کامپیوتر
فصل اول
مفاهیم بنیادی
١-١ متدولوژی
یکی از علل اساسی بحران نرم افزار عدم وجود روشهای مناسبی برای تولید نرم افزار می باشد. روش ، فرآیند منظمی است که با استفاده از مجموعه ای از نمادگذاریهای خوش تعریف ، مجموعه ای از مدلها را ایجاد می کند که هر کدام بخشی از سیستم نرم افزاری در دست تولید یا توسعه را توصیف می نماید
متدولوژی ، مجموعه ای از روشهای است که در تمام چرخه حیات سیستم نرم افزاری اعمال شده و بر یک نگرش کلی درباره جهان نرم افزار متکی می باشند. به نظر بسیاری از متخصصین به کارگیری یک متدولوژی مدون در تولید نرم افزار می تواند تا اندازه قابل توجهی مشکلات بیان شده را برطرف سازد ویژگیهای یک متدولوژی مطلوب به صورت زیر می باشد .
• ارائه تعاریف از مفاهیم بکار رقته در متدولوژی
• ارائه مدلی برای فرآیند تولید
• داشتن مدل زیر بنائی ( مدل معماری )
• ارائه یک شیوه علامت گذاری استاندارد
• معرفی تکنیکهای برای پیاده سازی متدولوژی که توانایی کنترل پیچیدگی سیستمهای کنونی را دارا باشند.
• ارائه معیارهای برای ارزیابی نتایج حاصل از بکارگیری متدولوژی
• وجود ابزار اتوماتیک برای کمک به تولید و اجرای مدلهای مبتنی بر متدولوژی
فصل اول – مفاهیم بنیادی ٢
١-٢ ابعاد فرآیند RUP
فرآیند عبارت است از گامهای نیمه مرتب که نتیجه آن رسیدن به یک هدف معین است
RUP یک فرآیند مهندسی نرم افزار است که یک روش منظم برای تعیین وظایف و مسئولیتها در یک سازمان تولید کننده نرم افزار را ارائه می دهد و هدف آن اطمینان از تولید نرم افزار با کیفیت بالاست که نیازهای کاربران نهایی را با زمان بندی و بودجه قابل پیش بینی برآورده سازد
RUP یک فرآیند تولید دو بعدی است ( برعکس فرآیندهای تولید سنتی که یک بعدی هستند )
این ابعاد عبارتند از :
١. بعد (محور) عمودی : این محور گردش کارهای اصلی را نشان می دهد.
٢. بعد (محور) افقی : این محور ساختار چرخه تولید نرم افزار در RUP را در بستر زمان نشان می دهد.
محور عمودی نشان دهنده نظم ها است که فعالیت ها را با استفاده از ماهیتشان به صورت منطقی دسته بندی می کند و جنبه ایستای فرآیند را نشان می دهد و با عبارات نظم ها ، فعالیت ها ، گردش های کاری ، خروجی ها ، نقش ها و اجزای فرآیند توصیف می شود .
محور افقی نمایانگر زمان است و جنبه های چرخه حیات فرآیند را نشان می دهد و این محور با پیشرفت خود جنبه پویایی فرآیند را نشان می دهد و با عبارات فازها ، تکرارها و فرسنگ شمارها بیان می شود .
فصل اول – مفاهیم بنیادی ٣
١-٣ نقش ( Role )
نقش ، رفتار و مسئولیتهایی که یک نفر ( یا افراد یک تیم ) در پروژه بعهده دارد را مشخص می نماید رفتار عبارت است از فعالیتهایی که یک نفر باید انجام دهد
مسئولیتها عبارت است از وظیفه ای که یک نفر در رابطه با تولید، به روز رسانی و یا استفاده از فرآورده ها دارد.
یک نقش ، یک تعریف انتزاعی از مجموعه ای از فعالیتهای انجام شده و محصولات خروجی مربوط به آن می باشد.
١-٤ فعالیت (Activity)
کارهایی که یک نقش باید انجام دهد به صورت فعالیت بیان می شوند
یک فعالیت :
• دارای هدف روشنی است .
• تنها به یک نقش انتساب می شود .
• بر یک فرآورده ( یا مجموعه کوچکی از فرآورده ها ) اثر می گذارد .
• مدت زمانی انجام فعالیت
• در برنامه ریزی و زمان بندی واحد انجام کار
١-٥ فرآورده ها (Artifacts)
فرآورده ها عبارتند از محصولاتی (یا قطعه های اطلاعاتی ) که در طی فرآیند تولید نرم افزار ، ایجاد ، استفاده ، یا به روز رسانی می شوند.
فصل اول – مفاهیم بنیادی ۴
فرآورده ها :
• خروجی قابل لمس فرآیند تولید را تشکیل می دهند .
• ورودی و خروجی فعالیت ها هستند .
• تنها یک مسئول دارند ، ولی
• استفاده کنندگان مختلفی می توانند داشته باشند.
١-٦ نظم (Discipline )
نظم عبارت است از مجموعه ای از فعالیت های مرتبط که به یکی از نواحی مهم پروژه وابسته باشند .
نواحی مهم اشاره ای به مراحل کلاسیک فرآیند تولید آبشاری را دارد.
یک نظم همه فعالیتها ، برای تولید مجموعه خاصی از خروجیها را نشان می دهد.
١-٧ گردش کارها (Workflows)
گردش کار عبارت است از توالی مجموعه ای از فعالیت ها که نتیجه با ارزشی در پی دارند در RUP برای نمایش گردش کار یک نظم از نمودارهای فعالیت ( در UML) استفاده می شود .
١-٨ جزئیات گردش کارها
جزئیات گردش کار عبارت است از مجموعه ای از فعالیتها که معمولا با یکدیگر انجام می شوند جزئیات گردش کار ، جریان اطلاعات و نحوه ارتباط فعالیتها بوسیله فرآورده های متفاوت را نشان می دهد.
فصل اول – مفاهیم بنیادی ۵
١-٩ فرسنگ شمارها (Milestone)
فرسنگ شمارها عبارتند از نقاطی در زمان که بر اساس معیارهای دقیق باید معین نمائیم که آیا مرحله قبل موفق بوده است یا نه .
١-١٠ تکرار (Iteration)
یک تکرار عبارت است از یک گذر کامل از همه نظم ها که منتهی به یک نشر داخلی یا خارجی می گردد .
فصل دوم
تعریف متدولوژی EUP با توسعه RUP
٢-١ متدولوژی Rational Unified Process( RUP)
RUP ، متدولوژی ارائه شده توسط شرکت رشنال ، پرکاربردترین فرآیند تولید و توسعه سیستم های نرم افزاری در دنیای کنونی است . این متدولوژی برای انواع پروژه های نرم افزاری در دامنه های مختلف و در اندازه های متفاوت ، از پروژه های بسیار کوچک تا پروژه های بسیار بزرگ کاریرد دارد مزیت بزرگ این متدولوژی ، استفاده از روش تکرار در تولید و مدیریت تولید نرم افزار است که این امر ، امکان تولید مبتنی بر کاهش ریسک و مواجهه با مشکلات در ابتدای کار و در نتیجه احتمال موفقیت بیشتر را فراهم می کند.
٢-٢ چرخه فعالیت RUP
همانطور که در شکل ٢-١ نشان داده شده است ، متدلوژی RUP دارای ٤ فاز و ٩ نظم اصلی است
(تصاویر و نمودار در فایل اصلی موجود است)
فصل دوم – متدولوژی EUP ٧
در فاز آغازین ١، محدوده پروژه و سازمان مورد نظر در سیستم مشخص می شوند. موارد کاربری اولیه شناسایی و موارد اصلی به طور مختصر توضیح داده می شوند. موارد کاربری نیازهای اساسی سیستم را تعیین می کنند. در این فاز جزئیات بیان نمی شود. سندهای اصلی مدیریت پروژه شامل ارزیابی خطرات و تخمین و برنامه ریزی پروژه شروع می شوند. در این فاز تولیدات و نقشه های سیستم بررسی و تبیین می شوند . موازنه بین فاکتورهای گوناگون از جمله زمان و هزینه پروژه و سودآوری آن نیز از جمله فعالیتهای این فاز است .
فاز تشریح ٢بر روی تحلیل جزئیات تمرکز دارد، دامنه مشکلات و نوع طراحی پروژه را تعیین می کند. در این فاز معماری مناسب و مستحکم برای سیستم مشخص می شود. در این فاز موارد کاربری کاملتر می شوند. مولفه های لازم انتخاب می شوند و نیازهای غیر وظیفه مندی و تکمیلی از فرآورده های این فاز است . در طول این فاز تصمیم گیری های لازم در مورد خرید و یا استفاده مجدد از مولفه های مورد نیاز انجام می شود و نقشه مفصلی از توسعه کل پروژه تولید می شود .
در طول فاز ساخت ٣مدیریت منابع و تکمیل آنها صورت می گیرد . فاز ساخت قلب نرم افزار است ، جائیست که جزئیات طراحی و کدهای منابع مشخص می شوند. در این فاز مرکز توجه به زیانها و خطرات پروژه است زیرا سازمانها معمولا منابع ذخیره شده ای در دو فاز قبل به عنوان مستندات در اختیار ندارند و در این فاز با شناخت کمبودها، پایه و اساس طراحی نرم افزاری فارغ از خطا و موفقیت آمیز بودن ریخته می شود. در این فاز همچنین مستندات تنظیم می شوند تا در صورت لزوم برای کاربران در دسترس و قابل توسعه باشند.
فصل دوم – متدولوژی EUP ٨
آخرین فاز، فاز انتقال ١است ، هدف اصلی این فاز عملیاتی کردن نرم افزار یا انتقال آن به جامعه کاربران است .
این فاز در ادامه فاز ساخت است . در این مرحله بسته بندی محصول نهایی و نصب آن برای کاربر و اصلاح خطاهای احتمالی و انجام سناریو تست ها و همچنین آموزش کاربران و پشتیبانی محصول است .
٢-٣ مزایا و معایب متدلوژی RUP
این متدولوژی نقاط قوت متعددی دارد :
١. بر اساس اصول خوبی از مهندسی نرم افزار بنا نهاده شده است . خط مشی تکراری و مبتنی بر معماری آن که گرایش آن بیشتر توجه به نیازمندیهای کاربران است ، از جمله این اصول هستند.
٢. مکانیزم های متعددی برای مدیران فراهم میکند تا بتوانند فرآیندهای توسعه را مشاهده کنند. تهیه یک نمایه از محصول ٢در پایان هر تکرار و نیز در نظر گرفتن یک نقطه تصمیم گیری در پایان هر فاز برای اخذ تصمیم در مورد ادامه یا عدم ادامه دادن کار، از جمله این مکانیزم ها هستند.
٣. شرکت Rational سرمایه گذاری عظیمی بر روی این محصول انجام داده است و یک توضیح به صورت
HTML از RUP ارائه داده است که می توان آن را متناسب با نیازهای دقیق سازمان به کار برد.
اما در عین حال متدلوژی RUP همچنین دارای عیوب متعددی نیز می باشد :
١. RUP تنها فرآیندی برای توسعه است . نسخه جاری از آن تمامی فرآیندهای نرم افزاری را پوشش نمی دهد، همانطور که در شکل ٢-١ نشان داده شده است ، کاملاً مشخص است که RUP مفهوم سیستمهای پشتیبانی و عملیاتی را تنها در فاز تولید در نظر گرفته است و نیز سیستمهایی را که به تدرج کنار گذاشته می شوند، فراموش کرده است .
فصل دوم – متدولوژی EUP ٩
٢. RUP صریحاٌ از فعالیتهای مدل کردن معماری یک سازمان که مستلزم توسعه چند سیستم است ، پشتیبانی نمیکند و از این رو فرصت استفاده مجدد از منابع در سطح سازمان را می گیرد.
٣. بسیاری از توسعه دهندگان باتجربه سیستمها، با طبیعت تکراری چرخه حیات RUP بیگانه هستند و ارائه چرخه حیات موجود در شکل ٢-١ نیز کمک زیادی به حل این مسأله نمیکند. تکراری بودن RUP هم نقطه قوت و هم نقطه ضعف آن است .
٤. از آنجا که از ابتدا خط مشی Rational برای توسعه فرآیند مبتنی بر ابزاری بوده است که خود ارائه داده است ، فرآیندی که ارائه کرده است (RUP) برای برآوردن نیازهای پیچیده توسعه دهندگان مدرن ، هنوز کافی نیست . و نمی توان همه چیز را مکانیزه کرد.
٢-٤ متدلوژی Enterprise Unified Process( EUP)
EUP توسعه یافته RUP است و نیازهای واقعی بسیاری از سازمانها را بیان می کند، در این راستا ابتدا، محدوده تعریف (UP)Unified Process توسعه می یابد تا بتوان به جای فرآیند توسعه ، تمام فرآیندهای IT را پوشش داد.
با توجه به اینکه بیشتر سازمانهای امروزی روی توسعه ، عملیات و پشتیبانی مجموعه ای از سیستمها (به جای یک سیستم واحد) تمرکز می کنند، بنابراین فرآیندهای مربوط به عملیات ، پشتیبانی و نگهداری سیستمهای به علاوه مدیریت پرت فولیوی پروژه ها به UP افزوده شده است . در نهایت EUP توسعه یافته RUP می باشد که ابزارهای منبع باز و فرآیندهای نرم افزاری شئ گرایی را به همراه دارد.