- Rational Unified process چیست؟
هنگامیکه این سئوال پرسیده می شود، معمولاً جوابهای مختلفی شنیده می شود. این پاسخها بسته به اینکه سؤال از چه کسی پرسیده شده و زمینه سؤال چه بوده متفاوتند. آنچه موضوع را عجیب می کند این است که Rational Unified process ( RUP) به سه مورد کاملاً متفاوت اشاره می کند :
- RUP یک روش تولید و توسعه نرم افزار می باشد که تکراری ، معماری محور و Use – Case گر است، و در مقالات و کتابهای مختلفی در مورد آن صحبت شده است. کاملترین اطلاعات در مورد RUP را می توان در خود محصول یافت که شامل راهنمائیهای مشروح، مثالها و قالبهایی است که کل چرخه حیات نرم افزار را شامل می شوند.
- RPU یک فرآیند مهندسی نرم افزار خوش ساختار و خوش تعریف است. RUP طور روشن و واضح مشخص می کند که چه کسی مسئول چه چیزی است و چگونه و چه موقع هر چیزی انجام شود. RUP همچنین یک ساختار خوش تعریف برای چرخه حیات یک پروژه فراهم می کند که بطور روشن مراحل مهم و نقاط تصمیم گیری را بیان می کند.
- RUP یک محصول فرآیندی است که یک چارچوب فرآیند با قابلیت سفارشی شدن را برای مهندسی نرم افزار فراهم می کند. محصول RUP از سفارشی کردن فرآیند و تألیف آن، و دامنه وسیعی از فرآیندها با پیکربندی های فرآیند، پشتیبانی می کند که می توان از RUP بدست آورد.
پیکربندی های مختلف RUP را می توان برای پشتیبانی از تیم های کوچک یا بزرگ و با استفاده از روشهای تولید و توسعه قانونمند یا نیمه قانونمند، انجام داد. محصول RUP شامل چندین نوع پیکربندی فرآیند و نماهای مختلف از فرآیند می باشد که تحلیلگران ، توسعه دهندگان، تست کنندگان، مدیران پروژه، مدیران پیکربندی، تحلیلگران داده، و دیگر اعضای تیم را در نحوه تولید و توسعه نرم افزار هدایت می کنند. RUP در بسیاری از شرکتها و صنایع مختلف استفاده شده است.
در این فصل با شرح سه دیدگاه فوق از RUP به فهم بهتری از آن دست خواهیم یافت.
- روش RUP
در این قسمت در مورد اصول اساسی که RUP جهت تسهیل فرآیند تولید و توسعه نرم افزار، از آنها استفاده می کند و همچنین روش تکراری برای بکار بردن این اصول بحث می کنیم.
- اصول اساسی روش RUP
هسته RUP از چندین اصل اساسی تشکیل شده است که از تولید تکراری4 پشتیبانی کرده و معرف ماهیت آن می باشد.
این اصول از مجموعه ای از پروژه های موفق، جمع آوری شده و چکیده آن به صورت مجموعه ای از رهنمودهای ساده در آمده اند. این اصول در ذیل شرح داده می شوند :
حمله سریع و مداوم به ریسک های اصلی .... در غیر اینصورت آنها به شما حمله خواهند کرد.
تضمین کنید که محصول با ارزشی به مشتری تحویل می دهید.
روی نرم افزار قابل اجرا متمرکز بمانید.
تغییرات را هرچه زودتر در پروژه بگنجانید.
هرچه زودتر معماری قابل اجرایی را مبنا قرار دهید.
سیستم را با مؤلفه ها بسازید.
در قالب یک تیم با هم کار کنید.
کیفیت را بعنوان یک اصل قرار دهید نه یک فرع
- RUP و تولید تکراری
اکثر تیمهای نرم افزاری هنوز هم از فرآیند آبشاری برای پروژه های تولیدی استفاده می کنند که در آن هر فاز را در یک مرحله کامل می کنند. در این توالی ابتدا شناخت نیازمندیها انجام می شود و سپس تحلیل و طراحی و بعد از آن پیاده سازی یا مجتمع سازی و سپس تست انجام می شود. رایج تر از این روش، یک روش تست آبشاری تغییر یافته است که در آن حلقه های بازخورد به این جریان کلی و اساسی که توضیح داده شد، اضافه می شود. چنین روشهایی، اعضاء کلیدی تیم را برای مدت طولانی بیکار می کند و تست کردن را تا پایان چرخه حیات پروژه، یعنی زمانی که حل کردن مشکلات سخت و پرهزینه است و تهدیدهای جدی برای ضرب الاجلهای انتشار نرم افزار وجود دارد، به تأخیر می اندازد.
برخلاف این روش، RUP از یک روش تکراری استفاده می کند، یعنی یک توالی از گامها افزایشی یا تکرارها. هر تکرار چنانکه در شکل 1-1 می بینید شامل تعداد زیادی دیسیپلین های تولید است. (نیازمندیها، تحلیل، طراحی، پیاده سازی و غیره) . هر تکرار مجموعه ای تعریف شده از اهداف است و بخشی از پیاده سازی سیستم نهائی را تولید می کند که این بخش قابلیت کار کردن دارد. هریک از این تکرارهای متوالی برای تکمیل و اصلاح سیستم تا زمان کامل شدن محصول نهائی ، بر مبنای نتایج کار تکرارهای قبلی ساخته می شود.
شکل 1-1 تولید تکراری در RUP RUP , از یک روش تکراری استفاده می کند. در هر تکرار، مقداری از نیازمندیها و کار تحلیل، طراحی، پیاده سازی و تست انجام می شود. هر تکرار برای تولید یک برنامه قابل اجرا که یک گام به محصول نهائی نزدیک تر است و بر اساس نتایج تکرارهای قبلی ساخته می شود.
تکرارهای اولیه بر نیازمندیها، تحلیل و طراحی و تکرارهای بعدی بر پیاده سازی و تست تأکید دارند. روش تکراری به دلایل زیر نسبت به روش آبشاری برتری دارد:
روش تکراری با نیازمندیهای متغییر سازگار است.
در روش تکراری ، مجتمع سازی یک اتفاق بزرگ در آخر پروژه نیست.
در روش تکراری، ریسکها معمولاً در مجتمع سازیهای اولیه کشف می شوند
در روش تکراری، مدیریت می تواند در محصول، تغییرات تاکتیکی ایجاد کند.
در روش تکراری، استفاده مجدد آسان می شود.
در روش تکراری ، نقص ها در طی چندین تکرار کشف و تصحیح می شوند.
در روش تکراری، از پرسنل پروژه بهتر استفاده می شود.
در روش تکراری، اعضاء تیم در ضمن انجام کار، مطالب جدیدی فرا می گیرند.
در روش تکراری، خود فرآیند تولید نیز همراه با انجام کار ، اصلاح شده و بهبود می یابد.
- یک فرآیند مهندسی نرم افزار خوش تعریف
متدولوژی RUP با تکنیکهای طراحی نرم افزار، طراحی شده است. RUP مخصوصا ً با استفاده از متامدل مهندسی فرآیند نرم افزار ( SPEM) طراحی می شود که استانداردیست برای مدلسازی فرآیند بر اساس UML . شکل 2-1 ، معماری کلی RUP را نشان می دهد.
این فرآیند ، دارای دو ساختار یا بعد است :
- ساختار دینامیک ( پویا) . بعد از افقی، ساختار دینامیک یا بعد زمانی فرآیند را نشان می دهد. این ساختار نشان می دهد که فرآیند چگونه در قالب چرخه ها، فازها، تکرارها و مراحل مهم، موجود در چرخه حیات یک پروژه ، بیان می شود.
- ساختار استاتیک . بعد عمودی ساختار استاتیک فرآیند را نشان می دهد. این ساختار توضیح می دهد که عناصر فرآیند (فعالیت ها، دیسیپلینها ، خروجی ها و نقشها) چگونه به طور منطقی و به صورت دیسیپلینهای اصلی فرآیند ( با جریان کارها) دسته بندی می شوند.