در فرهنگ مهندسی نرمافزار، فرآیند یکپارچهٔ رشنال یا آریوپی (به انگلیسی: Rational Unified Process و به اختصار: RUP )نام یک فرآیند توسعهٔ نرمافزار است که شرکت رشنال آنرا تدوین کردهاست. آیبیام این شرکت را در سال ۲۰۰۳ خرید و هماکنون توسعهٔ این فرایند و ابزارهای آن را بهعهده دارد. به طور خلاصه آریوپی ارائه دهنده مجموعهای از روشها برای کمک به مدیریت دقیق بر روی مراحل طراحی و پیادهسازی نرمافزارهای رایانهای است. این فرآیند بستر مناسبی برای تولید و توسعه نرمافزار در اختیار تحلیلگران و طراحان سیستمهای رایانهای قرار میدهد.
به گزارش رویتر در سال 2001 بیش از 600.000 شرکت تولید کننده نرم افزار از ابزارهای شرکت rational استفاده می کرده اند.
این فرآیند یک روش نظاممند برای تخصیص کارها و مسئولیتها در یک تیم توسعه نرمافزار ارائه میدهد و هدف آن تولید نرمافزار بصورت بهینه و با کیفیت بالاست که بتواند نیازهای کارفرما را تحت یک برنامه زمانی مشخص و با بودجه قابل پیشبینی برآورده سازد. آر. یو. پی بهرهوری تیم تولید نرمافزار را با فراهم نمودن دسترسی تمام افراد تیم به یک پایگاه دانش سهلالوصول به همراه راهنماها، الگوها و ابزارهای کمکی برای همه فعالیتهای حیاتی توسعه، افزایش میدهد.
آریوپی امکان استفاده موثرتری از زبان یکپارچه مدلسازی (UML) را فراهم میسازد
مورد استفاده (Use Case)در مهندسی نرمافزار و سیستم، یک لیست از مراحل است،
به طور معمول به تعریف فعل و انفعالات بین نقش (کنشگر) و یک سیستم، برای رسیدن به یک هدف می پردازد.
محور افقی (ساختار دینامیک): فازهای مختلف RUP و زمان و پیشرفت جنبه های مختلف.
محور عمودی(ساختار استاتیک): دیسیپلین های RUP، دسته بندی فعالیت ها بر اساس ماهیتشان.
انجام هر پروژه به چند قسمت تقسیم می شود که به هر کدام از این قسمت ها فاز گفته می شود.
هر فاز، ممکن است چند تکرار داشته باشد و در هر تکرار، عملیات دیسیپلین های مختلف، انجام می شود
پایه پروژه و ابعاد آن در این مرحله مشخص میشوند. در این مرحله پروژه به طور کلی بررسی شده و هزینه و درآمد ناشی از آن محاسبه میگردد. در این مرحله برداشتی اجمالی از ابعاد پروژه بدست میآید. در انتهای این مرحله تصمیم برای انجام یا عدم انجام پروژه اتخاذ خواهد شد و تعهد لازم از کارفرما تهیه میشود.
در پروژه هایی که بر توسعه یک سیستم موجود، متمرکزند، این فاز کوتاهتر است.
تعیین معماری کلی سیستم جهت پیاده سازی در فاز بعدی Construction .
عقد قرارداد در پایان این فاز انجام می شود
ارزیابی پایداری معماری بطوریکه بتوان هزینه و زمان بندی لازم برای تکمیل تولید را پیش بینی کرد.
در این مرحله جزئیات بیشتری از نیازهای سیستم جمعآوری شده و درک بهتری از پروژه صورت میپذیرد. بدین ترتیب تحلیل و طراحی سطح بالایی از سیستم صورت گرفته و پایه معماری اولیه سیستم بنا میشود. در این مرحله نقشه ساخت سیستم تولید شدهاست.
این مرحله با پرسشهایی نظیر:
در حال ساخت چه سیستمی هستیم؟ چه چیزهایی پروژه را به مخاطره میاندازد؟ و چه ریسکهایی برای انجام آن وجود دارد؟ انجام می شود.
هر چه ریسکها بیشتر و بزرگتر باشند، دقت بیشتری در انجام پروژه باید صورت گیرد.
ریسکها:
ریسکهای مرتبط با نیازمندیهای سیستم، ریسکهای تکنولوژیکی، ریسکهای منابع انسانی(برنامه نویسان)، ریسکهای سیاسی.
هنگامی که بتوانیم مدت زمان لازم برای تولید هر یوزکیس را تخمین بزنیم و تمام ریسکهای مهم بررسی و راهحلهای مقابله با آنها برنامهریزی شده باشند، میتوان گفت مرحله دوم خاتمه یافتهاست.
واضح سازی نیازمندی های باقیمانده و تکمیل تولید سیستم
انتقال از تولید نمونه اولیه طی فازهای قبلی به تولید محصول قابل استقرار
این مرحله به روش افزایش-تکرار صورت میگیرد. به این معنی که بر خلاف روشهایی مانند توسعه آبشاری (SSADM) که ممکن است در برخی زمانها بعضی از اعضای تیم به دلیل انتظار برای دریافت نتیجه گروهی دیگر از اعضای تیم بیکار بمانند، در آر. یو. پی اساس کار بر تولید قطعات سیستم به صورت مرحله به مرحلهاست و در هر مرحله عملکرد قطعه تولید شده بهبود مییابد. لذا پس از به جریان افتادن فرآیند اعضای تیم بیکار نمانده و به افزایش حجم و دقت عملکرد قطعه تولیدی قبلی خود میپردازند.
دقت شود که هر قطعه تولید شده خود یک نرمافزار نسبتاً کامل بوده و باید توانایی برآورده کردن نیازهای مشخصی را داشته باشد، بدین معنی که قطعات تولید شده باید قابل استفاده باشند.
برای تولید هر قطعه تمام این چهار مرحله انجام شده است! این نکته مهمی در آر. یو. پی است و میتوان اینگونه در نظر گرفت که محصول نهایی به شکل یک پیاز بوده و دارای لایههایی است که هم برای تولید هر لایه و هم برای تولید کل پیاز این مراحل چهارگانه صورت گرفتهاند.
بطور خلاصه نتیجه این فاز کدنویسی و ایجاد نرمافزار است
تضمین آمادگی نرم افزار برای کاربران نهایی.
تست محصول و تنظیمات کوچک بر اساس بازخورد کاربران.
امکان خاتمه پروژه باید با اتمام این فاز فراهم شود.
تحویل کامل خروجی ها به گروه مسئول عملیات نگهداری و پیشرفت پس از پیان این فاز و همچنین آموزش کاربران نهایی.
RUP برپایه مجموعه ای از بلاکها است که محصول نهایی، مهارت های مورد نیاز و چگونگی انجام توسعه برنامه را توصیف می کند.
بلاکهای اصلی عبارتند از:
نقش (چه کسی): توصیفی از مهارت های مورد نیاز، نقاط قوت و مسئولیت ها
محصول(چه چیزی، نتیجه هر وظیفه): نتیجه هر وظیفه را توصیف می کند مثل مدلها، اسناد و دیگر مواردی که در طی فرایند، به دست می آیند
وظیفه (چگونگی): توصیفی از وظایف . فعالیت هایی که برای هر نقش در نظر گرفته شده.
در هر تکرار، وظایف به 9 دیسیپلین دسته بندی شده اند.
این دیسیپلین توضیح می دهد که برای رسیدن به هدف، چگونه می توان یک تصویر کلی از سازمان ایجاد کرد و براساس آن، فرایندها و نقش ها و مسئولیت های آن سازمان را در یک مدل Use-Case تعریف کرد.
در این دیسیپلین ذینفعان تشخیص داده می شوند و درخواستهای آنا جمع آوری و استخراج می گردد و کاری که سیستم قرار است انجام دهد، مشخص می گردد.
در این دیسیپلین باید خواسته های همه ذینفعان را در نظر گرفت.
در این دیسیپلین و در اوایل فاز Elaboration بر ایجاد یک معماری ابتدایی برای سیستم تمرکز می شود و یا یک معماری موجود، اصلاح و تحلیل می گردد.
در این دیسیپلین چگونگی استفاده مجدد از اجزا، پیاده سازی اجزای جدید، نحوه نگهداری راحت تر سیستم و افزایش امکان «استفاده مجدد» ، مشخص می گردد.
در این دیسیپلین از یک روش نسبتا منفی و مخرب استفاده می گردد تا صحت عملکرد نرم افزار بررسی گردد
باید از روشهایی که برنامه را بطور موثر بکار نمی گیرد، اجتناب کنیم
و همچنین از بکارگیری روشهای تستی که آنقدر مخرب است که هیچگاه کیفیت محصول نرم افزاری را قابل قبول در نظر نمی گیرد.
این دیسیپلین، فعالیت هایی را توضیح می دهد که تضمین می کند محصول نرم افزاری برای کاربران نهایی اش در دسترس می باشد
این دیسیپلین، تغییرات را به سمت خروجی های یک پروژه، کنترل می کند و صحت و تمامیت خروجی های پروژه را حفظ می کند.
هدف این دیسیپلین، متوازن ساختن اهداف متقابل، مدیریت ریسک و غلبه بر محدودیت ها برای تحویل موفقیت آمیز محصولی است که نیاز های مشتریان و کاربران را براورده کند.
موارد زیر را شامل نمی شود:
- مدیریت افراد : استخدام، آموزش، رهبری
- مدیریت بودجه : تعیین، تخصیص و غیره
- مدیریت قراردادها : با پشتیبانی كنندگان و مشتریان
این دیسیپلین بطور عمده روی جنبههای مهم یك فرآیند توسعه تكراری تمركز میكند كه عبارتند از :
- مدیریت ریسك
- طرح ریزی برای یك پروژهی تكراری، از طریق چرخهی حیات و برای یك تكرار بخصوص
- نظارت بر پیشرفت یك پروژهی تكراری و متریكها