RUP

هر تیم نرم افزاری خواه ملی یا بین المللی، روشی را برای تولید سیستم نرم افزاری دنبال می کند. در یک تیم کوچک با یک، دو و یا تعداد انگشت شمار اعضا، روش کار معمولا ساده است. مستندات بسیار کمی تولید می گردد. هر چند تحلیل و طراحی هم معمولا بسیار بدون تشریفات و غیر رسمی و در مدتی کوتاه انجام می شود، کدهای نهایی سیستم مرکز ثقل پروژه محسوب شده و همه فعالیت ها حول ان انجام می شود.

ارایه درگاه پرداخت بانکی ePayBank.ir برای مهندسان و دانشجویان نرم افزار و شرکتهای نرم افزاری

تبلیغات محصولات دیجیتال و نرم افزاری خود را در سایت آگهی و تبلیغات MyCityAd.ir میتوانید درج کنید.


در تیم های بزرگ متشکل از تعداد بسیار و حتی صدها نفر عضو، که معمولا در ساختمان ها و حتی سرزمین ها و کشورهای مختلف توزیع شده اند، روش کار از قبل، بیشتر و بهتر تعریف شده است. مستندات بسیار رسمی تر و با تشریفات مفصلی، تولید و بازبینی می گردد، کار تحلیل و طراحی همکاری افرادی خارج از تیم را می طلبد و صورت جلسات و بیانیه ها و مستندات و فرآورده ها در ملاقات ها، جلسات رد و بدل می گردند و کدهای پروژه اگر چه در نهایت یکی است با وجود این بسیار مهمتر از یک فرآورده قابل لمسی است که سیستم نهایی با کامپایل آن ارائه می گردد، نه به آن معنی که این دو روش در مقابل هم قرار دارند و یکی خوب و دیگری بد است بلکه هر حوزه ایف هر فرهنگ تولیدی و هر پروژه خاصی، نیازمند فرآیند و روشی متناسب با شرایط ویژه و مختص آن است.

گفته می شود، تمامی پروژه های موفق بدون توجه به بزرگی آنها، عناصر مشترکی دارند. این عناصر به طور قابل توجهی در پروژه های ناموفق وجود ندارد. یک پروژه مشخص را در نظر بگیرید، ریتم منظم و ثابتی از همکاری را میان تولید کنندگان منفردی که فعالیت ها و فرآورده های خود را راهبری کرده و همزمان و به عمد با دیگر مجموعه ها و سازمان ها ارتباط و اصطکاک دارند براحتی لمس می شود. این گونه پروژه ها معمولا بسیار سریع و چابک در مقابل تغییر انعطاف پذیر بوده و براحتی تغییرپذیرند اما در همین پروژه ها هم همچنان تولید کدهایی با کیفیت قابل قبول در فرآیندی قابل پیش بینی و مطمئن واقعا موضوع اصلی است. دقیقا ان چیزی که کمتر قابل مشاهده است. کوتاه انکه، برای این گونه پروژه ها، فرایندی که دنبال می شود، تنها در روش و مسیری که اعضای تیم به کار بسته و ان را دنبال می کنند خلاصه نمی شود بلکه روح آن فرایند علت اصلی هر فرآورده یا Artifact به وسیله اعضای تیم و به اتفاق یکدیگر می باشد.

روح RUP دقیقا از این نوع پدیده های غیر قابل مشاهده است. RUP در طول سالیان تحول و تکامل یافته تا متضمن تجربیات کلمه به کلمه هزاران پروژه در هر زمینه ممکن باشد. Per Kroll و Philippe Kruchten مخصوصا در توضیح RUP با روشی گام به گام و کاربردی به خوبی عمل کرده اند چرا که خود زیر فشارهای بسیار شدیدی بودند که در شرکت Rational software و در پس آفرینش RUP و تمامی آنچه برای پروژه ها در سراسر جهان ارائه کرده، وجود داشته است.

RUP چیست؟

وقتی این سوال پرسیده می شود، بسته به زمینه سوال و مخاطب احتمالا پاسخ های مختلفی دریافت می شود، موضوع از آنجا ابهام برانگیز است که در حقیقت RUP سه معنی مختلف دارد.

  • RUP روش توسعه سیستم های نرم افزاری با ویژگی تکراری، معماری محور و مبتنی بر یوزکیس است. RUP در نوشته ها، مقالات و کتابهای بسیاری توصیف شده و جامع ترین اطلاعات را میتوان از خود محصولات RUP بدست آورد که شامل راهنمایی های دقیق، مثال ها و الگوهایی برای تمامی چرخه حیات سیستم های نرم افزاری است.
  • RUP فرایند خوش تعریف و خوش سازمان مهندسی نرم افزار است. به روشنی می گوید که چه کسی مسئول چه چیزی است، چگونه کارها باید انجام شود و چه کسی باید آنها را انجام دهد. همچنین RUP ساختار خوش تعریفی برای چرخه حیات یک پروژه فراهم می آورد و بوضوح و مهارت نقاط مهم تصمیم گیری را روشن می سازد.
  • RUP خود ابزار تولید فرایند است یعنی امکاناتی را جهت سازمان دادن چهارچوب فرایند مهندسی نرم افزار به شکل دلخواه و متناسب با ویژگی های خاص یک سازمان و یا یک پروژه فراهم می سازد. محصولات RUP امکان جرح و تعدیل فرایند و مدیریت و سازمان دهی انرا فراهم می سازند به طوری که مجموعه وسیعی از فرایند ها را میتوان از آن استخراج و استنتاج نمود. این قابلیت RUP میتواند تیم های کوچک تا بزرگ و دستورالعمل های رسمی تا روش های غیررسمی را در کار توسعه سیستم پوشش دهد. محصولات RUP شامل امکاناتی کامل جهت انطباق پذیری است به شکلی که میتواند راهنمای چگونگی تولید نرم افزار برای تحلیل گران، طراحان، برنامه نویسان، کارشناسان آزمون و همچنین مدیران پروژه ها و سازمانها، تحلیل گران داده و دیگر اعضای یک تیم تولید و توسعه نرم افزار باشد. RUP توسط مجموعه وسیع و متنوعی از شرکت ها و سازمانها در بخش ها و حوزه های مختلف مورد استفاده قرار گرفته است.

اصول اساسی فرایند RUP

این اصول از بررسی و تحلیل نتایج پروژه های موفق متعددی استنتاج و عصاره آن در چند سرخط راهنما بیان شده است.

  • حمله مدام به ریسک های پروژه از همان ابتدا …. و در غیر این صورت آمادگی برای تهاجم به آنها : به جای اشاره به ریسک های محیطی، تکنیکی و دیگر ریسک ها در اواخر زمان پروژه، باید هر چه زودتر ریسک های اصلی شناسایی شده و به طور مداوم هدف قرار گیرند.
  • اطمینان از ارزش آنچه به مشتری تحویل می شود : نیازهای سیستم باید با قالبی که به راحتی برای مشتری قابل فهم است مستند گردیده و در طول مراحل طراحی و پیاده سازی و آزمایش سیستم مرتبا و به دقت روی آنها کار شود تا اطمینان حاصل گردد سیستمی که در نهایت ارائه می گردد، نیازهای مشتری را به خوبی پاسخ می دهد.
  • توجه به نرم افزار قابل اجرا :  مستند سازی، طراحی و برنامه ریزی همگی بسیار خوب هستند اما به سختی میتوانند پیشرفت صحیح پروژه را نشان دهند چرا که تولید و تکامل انها هدف اصلی نبوده و اهمیت آنها در مقایسه با کد، ثانوی تلقی می گردد. کدهای اجرایی که کامپایل شده و از بوته آزمایش سربلند درآیند، بهترین معیار پیشرفت محسوب می شوند.
  • تشخیص و اعمال تغییرات در مراحل اولیه پروژه : امروزه نرم افزارها بسی پیچیده تر از آنند از که همان ابتدا بتوان کلیه نیازهای آنها را دریافته و آنها را طراحی و پیاده سازی کرد. به بیان دیگر برای اینکه سیستمی به اندازه کافی خوب ساخته شود، لازم است تغییرات به دقت در نظر گرفته شود.
  • معماری قابل اجرا در همان ابتدا : بسیاری از ریسک های پروژه میتواند به وسیله طراحی، پیاده سازی و آزمایش در همان مراحل اولیه کاهش یابد. بنا نهادن یک معماری پایدار در همان ابتدای پروژه، راه آسان ارتباط با کاربران و مشتریان را فراهم ساخته و تبعات نیازهای سیستم را محدود نماید.
  • استفاده از کامپوننت ها : نرم افزارهای ساخته شده با کامپوننت ها در مقابل تغییرات بسیار انعطاف پذیر بوده و به طور قابل ملاحظه ای هزینه های نگهداری و پشتیبانی را کاهش می دهند. کامپوننت ها استفاده مجدد را نیز آسان ساخته و اجازه می دهند که نرم افزار با کیفیت بالاتر و در زمانی کوتاه تر ساخته شود.
  • سازمان تیمی و همکاری در قالب یک تیم : توسعه نرم افزار کار تیمی را می طلبد. روش تکرارپذیر نیز موکد ارتباطات تیمی خوب بوده و روح کار تیمی را در طول پروژه تقویت می کند. در کار تیمی هر یک از اعضای تیم احساس مسئولیت فراوانی نسبت به تکمیل محصول نهایی خواهد داشت.
  • کیفیت، سرمشق کار : اطمینان از کیفیت تنها وظیفه تیم آزمون نرم افزار نیست. توجه به کیفیت توسط همه اعضای تیم و در همه اجزای چرخه حیات سیستم اهمیت فراوان دارد. روش تکرارپذیر از همان اولین مراحل کار تولید و توسعه به ازمایش سیستم با استفاده از روش ها و ابزارهای نرم افزاری آزمون توجه ویژه ای داشته و به همین دلیل باعث کاهش تعداد نواقص و اشکالات سیستم می شود.