فرآیند یکپارچه رشنال یا RUP را میتوان یک راهنمای نهایی برای واگذاری مسئولیتها و وظایف در یک سازمان توسعهیافته دانست؛ از دیگر سو راهنمایی است برای توسعه یک نرمافزار باکیفیت که نیازها و خواستههای کاربرانش را برآورده میکند. این فرآیند امروزه مورداستفاده گسترده توسط سازمانهای بزرگ به منظور توسعه نرمافزارها قرار گرفته است. در این مطلب قصد داریم بگوییم rup چیست و چه ویژگیهایی دارد.
تاریخچه rup چیست ؟
در فرهنگ مهندسی نرمافزار، فرآیند یکپارچه رشنال، که معمولا با (Rational Unified Process (RUP شناخته میشود، نام یک فرآیند توسعه نرمافزار است که شرکت رشنال IBM، آن را تدوین کردهاست. IBM این شرکت را در سال ۲۰۰۳ خرید و هماکنون توسعه این فرایند و ابزارهای آن را بهعهده دارد. بهطور خلاصه، آریوپی ارائهدهنده مجموعهای از روشها برای کمک به مدیریت دقیق بر روی مراحل طراحی و پیادهسازی نرمافزارهای رایانهای است. این فرآیند، بستر مناسبی برای تولید و توسعه نرمافزار در اختیار تحلیلگران و طراحان سیستمهای رایانهای قرار میدهد.
هدف از ابداع فرآیند rup چیست ؟
فرآیند یکپارچه رشنال، RUP روشی است که با هدف تجزیه و تحلیل زمان واقعی بر روی توسعه پروژهها طراحی شده است. این فرآیند ابداع شد تا اطمینان حاصل شود نرمافزار و سختافزار در اولویتهای اصلی پروژه قرار گیرند. در این فرآیند تنها کار اصلی، به حداقل رساندن ریسک پروژه نیست و باید موارد دیگری را هم در نظر گرفت تا از هم پاشیدگی پروژه جلوگیری کرد.
RUP امکان استفاده مؤثرتری از زبان یکپارچه مدلسازی (UML) را فراهم میسازد. به کمک تکنیکهای RUP، بخشهای عمدهای از فرآیند تولید نرمافزار بهطور خودکار انجام شده و همچنین استفاده از مدلهای تولید شده در فرآیندهای گذشته در پروژههای جاری به سادگی امکانپذیر است. این فرآیند، با موقعیتهای مختلف تطبیق یافته و برای سازمانهای بزرگ یا حتی کوچک تولید و توسعه نرمافزار قابل استفاده است.
RUP کلیه مراحل انجام یک پروژه شامل تحلیل سیستم، برنامهریزی، بررسی ریسکها، تولید و تست نرمافزار را در بر میگیرد و چهارچوبی در جهت انجام صحیح و موفق پروژههای نرمافزاری فراهم میسازد.
فرآيند RUP، فرآيندی قابل شكلدهی است. هيچ فرآيند واحدی برای همه نرمافزارها مناسب نیست، فرآيند RUP، همانطور كه برای سازمانهای بزرگ توسعه نرمافزار مناسب است، برای تيمهای كوچك نيز مفيد است. اين فرآيند میتواند با موقعيتهای مختلف تطبيق پيدا كند.
به سه علت RUP را يكپارچه مینامند:
- اين متدولوژی از يكپارچهسازی سه متدولوژی معروف ديگر به وجود آمده است، كه شامل Booch، OMT و OSE ميشود.
- از UML در جهت كارهای خود استفاده میكند. در واقع میتوان گفت UML، خود ثمره RUP است و اين خود بسيار خوب است كه متدولوژيی با خودش گسترش يابد.
- مفاهيمی از قبيل Object، Class و … مفاهيم ساده و ثابتی هستند، ولی متدولوژیهای قبلی علامتهای خاصی داشتند كه اكنون همه آنها يكسان شدهاند.
ویژگیهای فرآیند rup چیست ؟
مبتنی بر موارد قابل کاربرد
مدل موارد کاربرد به عنوان نمونهای از مدل خواستهها، علاوه بر آنکه کل وظیفهمندی سیستم را شرح میدهد، اساس فعالیتهای بعدی یعنی طراحی، پیادهسازی و آزمون را نیز ایجاد میکند. به مجموعهای از فعالیتهای قابل انجام که یک سیستم انجام میدهد تا یک نتیجهی قابل مشاهده به یک کاربر یا یک سیستم خارجی بدهد، مورد کاربرد میگوییم. این موارد کاربرد، قابلیت استفاده و کاربرد مجدد و بهرهمندی از سرویسها در سیستمهای همگون را افزایش میدهد.
ممکن است در این توالی فعالیتها، دگرگونیهائی نیز وجود داشته باشد. کاربر یا سیستم خارجی را «عامل» مینامیم. مدل مورد کاربرد شامل عاملها، موارد کاربرد و ارتباطات بین آنهاست. این مدل همچنین شرح میدهد که سیستم برای کاربران خود تحت شرایط متفاوت چه عملکردهایی میتواند داشته باشد.
مبتنی بر معماری
معماری نرمافزار همانند معماری ساختمان است. معماری در حوزهای بر بهرهمندی از تلفیق علم، هنر و تجربه، تکیه دارد. معماری نرمافزار مطابق نظر آقای Kruchen، در معماری 4+1 از دیدگاههای مختلف شامل دیدگاه مورد کاربرد، دیدگاه منطقی، دیدگاه فرآیندها، دیدگاه استقرار و دیدگاه پیادهسازی تشکیل شده است.
تکرار شونده و افزایشی
تکرار، یعنی یکبار انجام دادن همه نظامهای یک فرآیند توسعه. یک پروژه را به چندین پروژه کوچک (مینی پروژه) تقسیم نموده و در هر تکرار، یکی از مینی پروژهها را تولید میکنیم. RUP از دو بعد قابل بررسی است: فازها و نظامها (جریانهای کاری)
فازهای RUP چیست ؟
فاز 1: آغازین (Inception)
این فاز چه در توسعه و چه در تولید نرمافزار، اهمیت ویژهای دارد. شامل به دست آوردن دید عملیاتی، امکان سنجی، بررسی نیازمندیها و به دست آوردن محدوده نرمافزاری پروژه و محدودیتهای آن است.
فاز 2: تحلیل جزئیات (Elaboration)
در این بخش ما اطمینان حاصل میکنیم که معماری، نیازمندیها و طرحها به اندازهی کافی پایدارند و ریسکها به اندازهی کافی کاهش یافتهاند. به طوری که بتوان هزینه و زمانبندی لازم برای تکمیل تولید را پیشبینی کرد.
فاز 3: ساخت (Construction)
فاز ساخت، در واقع به نوعی یک فرآیند ساخت است که در آن تأکید بر مدیریت منابع و کنترل عملیات به منظور بهینهسازی هزینهها، زمانبندیها و کیفیت است. به علاوه شامل کامل کردن تحلیل، طراحی، تولید و تست کارآیی مورد نیاز نیز است.
فاز 4: انتقال (Transition)
در این فاز، بخش زیادی از تمرکز بر این است که تضمین کند، نرمافزار برای کاربران نهایی آماده شده است یا خیر. همچنین این فاز میتواند به چندین تکرار تقسیم شود، و شامل تست کردن محصول برای آمادهسازی جهت انتشار و ایجاد تنظیمات کوچک بر اساس بازخورد کاربران باشد.
جریانهای کاری RUP چیست ؟
مدلسازی فعالیتهای کسب و کار
هدف این جریانکاری، الگوبرداری از زمینه شغلی، دامنه سیستم شما است. فعالیتهای مدلسازی متداول، شامل موارد توسعه زیر است:
- یک مدل متنی (اغلب یک نمودار جریان داده) که نشان میدهد چگونه سیستم شما در محیط کلی خود قرار میگیرد.
- یک مدل نیازمندیهای کسب و کار سطح بالا (اغلب مدل مورد کاربرد ضروری)
- واژه نامهای که اصطلاحات مهم تجاری را تعریف میکند.
- یک مدل دامنه (اغلب یک نمودار کلاس یا نمودار داده) که کلاسها یا اشخاص اصلی را به تصویر میکشد.
- یک مدل فرآیند کسب و کار (اغلب یک نمودار جریان داده یا نمودار فعالیت) که سطح بالایی از روند کار را نشان میدهد تا توسط سیستم شما پشتیبانی شود.
مدیریت خواستهها
هدف از این جریان کاری، مهندسی شرایط مورد نیاز پروژه شماست که شامل شناسایی، مدلسازی و مستندسازی الزامات است. تحویل اصلی این جریان کاری، مشخصات مورد نیاز نرمافزار (SRS) است که به آن الگوی مورد نیاز نیز گفته میشود، که شامل الزامات ضبط شده است.
تحلیل و طراحی
هدف از این جریان کاری، تکامل یک معماری مستحکم براساس نیازمندیهای سیستم شماست، به عبارت دیگر تبدیل الزامات به یک طرح و اطمینان از اینکه مسائل مربوط به محیط اجرا در طراحی شما منعکس شده است.
پیاده سازی
هدف از این جریان کاری:
- پیاده سازی کلاسها و اشیاء از نظر مؤلفهها (پروندههای منابع، باینری ، اجرایی و …)
- برای تست اجزای توسعه یافته به عنوان واحد
- برای ادغام نتایج تولید شده توسط مجریان انفرادی (یا تیمها) در یک سیستم اجرایی
آزمون
هدف از این جریان کاری:
- بررسی تعامل بین اشیاء
- بررسی یکپارچهسازی مناسب از تمام اجزای نرمافزار است
- تأیید صحت اجرای همه الزامات
- شناسایی و اطمینان از برطرف شدن نقصها قبل از استقرار نرمافزار
استقرار (Deployment)
هدف از جریان کاری استقرار، عرضه نسخههای موفقیتآمیز محصول و تحویل نرمافزار به کاربران نهایی خود است. این برنامه، طیف گستردهای از فعالیتها را شامل میشود:
- تولید نسخههای خارجی نرمافزار
- بستهبندی نرمافزار
- توزیع نرمافزار
- نصب نرمافزار
- ارائه کمک و رسیدگی به کاربران
مدیریت پروژه
مدیریت پروژه نرمافزار، هنر متعادلسازی اهداف رقابتی، مدیریت ریسک و غلبه بر محدودیتها برای ارائه موفقیتآمیز محصولی است که پاسخگوی نیازهای هر دو مشتری (پرداختکنندگان صورتحساب) و کاربران باشد. هدف از این جریان کاری، سادهتر کردن کار با ارائه موارد زیر است:
- چارچوبی برای مدیریت پروژههای فشرده نرمافزاری.
- راهنمای عملی برای پروژههای برنامهریزی، نیروی انسانی، اجرا، و نظارت.
- چارچوبی برای مدیریت ریسک.
مدیریت پیکربندی و تغییرات
این جریان کاری، دستورالعملهایی را برای مدیریت انواع مختلف سیستمهای نرمافزاری در حال تحول، ردیابی نسخههای مورد استفاده در ساخت نرمافزارهای داده شده، اجرای برنامههای فردی یا کل نسخهها با توجه به مشخصات نسخه تعریف شده توسط کاربر، و اجرای سیاستهای توسعه یافته را ارائه میدهد.
آمادهسازی محیط
هدف از این جریان کاری:
- هدف از این جریان کاری ، فراهم کردن محیط توسعه نرمافزار – هم فرآیندها و هم ابزارها – در سازمان توسعه نرمافزار است که برای پشتیبانی از تیم توسعه مورد نیاز است.
- محیط و شرایط را برای به کارگیری بانک الگو در پروژه آماده میکند.
- محیط را در طول یک تکرار پشتیبانی میکند.
همانطور که در مراحل اولیه تکامل محصول میبینیم، تمرکز روی رسمیسازی پروژه (تجزیه و تحلیل ، مدلسازی) است که با هدف کاهش خطرات تجاری و کاهش هزینه خطاهای طراحی انجام میشود. هنگامی که تصویر کم و بیش مشخص شود، توسعه واقعی، آزمایش و سرانجام معرفی محصول آغاز میشود.
مزایای اصلی فرآیند rup چیست ؟
به راحتی ریسکها را حل و فصل میکند
فرآیند RUP معمولا به حل و فصل ریسک پروژهها کمک میکند تا اطمینان حاصل شود که مشتریها در راستای موارد مورد نیاز خود قرار گرفته اند. علاوه بر این، منابع کمتری برای ادغام فرایندها در توسعه نرمافزارها استفاده میشود.
تغییرات را کنترل میکند
این فرآیند، هماهنگسازی اجزای مختلف پروژه که توسط تیمهای مختلف انجام میشود را آسانتر میکند. با این حال، باید اطمینان حاصل شود که تغییرات را میتوان به راحتی کنترل کرد.
در برگیرنده الگوهای انعطافپذیری است
توسعه نرمافزارها به مدیران این فرصت را میدهد تا از فرآیندهای رسیدگی به مشکلات رایج، مجدد استفاده کنند. از آنجایی که پروژهها مشابه هم نیستند، امکان تغییر فرآیندهای خاص به منظور رسیدگی به نیازهای پروژه، راهحلی کارآمد خواهد بود.
پروژه کارآمدتری را تحویل میدهد
در RUP ، فرآیند تحویل کارآمد است و به مدیران پروژه فرصتی برای برنامهریزی و شروع پروژه را میدهد. فرآیند توسعه، منابع مورد نیاز کل پروژه را در اختیار مدیران میگذارد و بهترین شیوههایی که در جهان پذیرفته شده است را در طول پروژه استفاده میکند.
از توسعه تکرار شونده حمایت میکند
سیستم توسعه نرمافزار RUP، در مرحلهای است که اطمینان میدهد در هر فرآیند، تکرارها قابل اجرا هستند. البته نمیتوان گفت فرآیند تکرار همیشه با موفقیت در سازمانها استفاده شده است. بسیاری از برنامهنویسان این روش را آشفته و پیچیده دانستند. از سوی دیگر، پروژههایی که نیازمند فناوری جدیدی هستند، به شما اجازه استفاده مجدد فرآیندها و یا اجزاء را نمیدهد.
بطور کلی فرآيند RUP بهرهوری تيم را با فراهم نمودن دسترسی تمام افراد تيم به يك پايگاه دانش سهلالوصول به همراه راهنماها، الگوها و ابزارهای كمكی برای همه فعاليتهای بحرانی توسعه، افزايش میدهد. با تأمين دسترسی همه اعضای تيم به يك پايگاه دانش، افراد در هر قسمت از يك زبان، فرآيند و ديد مشترك برای توسعه نرمافزار برخوردار هستند. همچنین به جای تمركز بر روی توليد مستندات بزرگ كاغذی، مدلهايی توليد میشوند كه به خوبی سيستم در حال توسعه را ارائه میدهند.
در ادامه، تفاوت بین متدولوژی RUP و اسکرام را بیان میکنیم:
فرق بین متدولوژی RUP و اسکرام
هر دو روش از سری روشهای چابک هستند و در فعالیتهای پروژه از رویکردی تکرار شونده استفاده میشود. با این حال، متدولوژی RUP خواستار یک تعریف رسمی از هدف و نقاط عطف پروژه به همراه تاریخهای خاص است. ولی روش اسکرام از بک لاگ پروژه به جای هدف استفاده میکند و این اجازه را میدهد تا در پایان هر تکرار (معمولا هر 4 هفته) دوباره تعریف شوند. علاوه بر این، چرخه عمر پروژههایRUP به 4 فاز اصلی (آغازین، تحلیل جزئیات، ساخت، انتقال) تقسیم میشود. این روش، مشوق جریانهای کاری همزمان در سراسر چرخه است. در این روش، برخی فعالیتها در طول برخی مراحل به اوج خود میرسد (به عنوان مثال: تجزیه و تحلیل نیازمندیها در مرحله تحلیل جزئیات افزایش مییابد). در مقابل، اسکرام حکم چرخه عمر “سنتی” متناسب با یک تکرار را دارد. به عبارت دیگر، برای هر تکرار یک حجم کاری در یک زمان تعیین میشود، سپس کل چرخه در یک تکرار رخ میدهد (به عنوان مثال: الزامات مورد نیاز برای یکی از ویژگیهای خاص جمعآوری میشود، مستند به عنوان یک داستان کاربر است که بعد از آن کدگذاری و سپس تست و در آخر، برای کاربر ارائه میشود).
سخن آخر
همانطور که گفته شد، RUP مزایای بسیاری دارد، از جمله کمک به یکپارچگی حین توسعه نرمافزار و ایجاد مستندات دقیق، اما از معایبی که میتوان برشمرد این است که در تیمها، پروژهها و کسب و کارهای کوچک ممکن است با چالشهایی مواجه شود. همچنین در واگذاری مسئولیتها، وابستگی شدیدی به کارشناسان و حرفهایها دارد. با این وجود موفقیتی که این فرآیند در سطح سازمانها داشته است، آن را به یک نرمافزار با کیفیت که از همان مراحل ابتدایی اجرای پروژه به کار گرفته میشود، تبدیل کرده است.