Rational Unified Process نام کاملترين فرآيند توسعه نرم افزار مي باشد که از ترکيب چند فرآيند ومتد ديگر ايجاد شده و به اختصار به آن RUP گفته مي شود.
اين فرآيند بستر مناسبي براي توسعه مکانيزمهاي مديريتي در اختيار کسب و کارها قرار مي دهد. با توسعه آن نسبت به نظام بهره مندي از تجربيات ديگر افراد و سازمانها ،
فرآيند ISRUP بستري مناسب براي بهبود مستمر کسب و کارها ايجاد مي کند.
براي تحليل طراحي و پيادهسازي سيستم مورد نظر از متدولوژي RUP استفاده ميشود. RUP يك فرآيند مهندسي نرمافزار است.
اين فرآيند يك روش نظاممند براي تخصيص كارها و مسئوليتها در يك تيم توسعه نرمافزار ميباشد و هدف آن توليد نرمافزار با كيفيت بالاست كه نيازهاي
كاربران نهايي را توسط يك برنامه و با بودجه قابل پيشبيني تأمين نمايد. RUP يك فرآيند محصول ( Process Product ) است كه توسط شركت Rational،
تهيه و پشتيبان شده است. تيم توليد RUP به منظور كسب آخرين تجارب و تكاملهاي روز از نزديك با مشتريان و شركاء كار ميكنند. فرآيند RUP بهرهوري تيم را
با فراهم نمودن دسترسي تمام افراد تيم به يك پايگاه دانش سهلالوصول به همراه راهنماها، الگوها و ابزارهاي كمكي براي همه فعاليتهاي بحراني توسعه، افزايش ميدهد.
با تأمين دسترسي همه اعضاي تيم به يك پايگاه دانش، افراد در هر قسمت از يك زبان، فرآيند و ديد مشترك براي توسعه نرمافزار برخوردار هستند.
درفعاليتهاي RUP، بجاي تمركز بر روي توليد مستندات بزرگ كاغذي، مدلهايي توليد ميشوند كه بخوبي سيستم در حال توسعه را ارائه مينمايند.
فرآيند RUP، راهنمايي براي استفاده مؤثر از زبان يكپارچه مدلسازي، UML ميباشد. UML، زباني استاندارد براي تبادل شفاف نيازها، معماري و طراحي است.
زبان UML در ابتدا توط شركت رشنال ايجاد شد و هم اكنون توسط موسسه استانداردهاي OMG ( Object Management Group ) پيشتيباني ميشود.
فرآيند RUP توسط ابزارهايي پشتيباني ميشود كه هر يك بخشهاي بزرگي از فرآيند را به صورت خودكار انجام ميدهند. آنها براي استفاده و نگهداري از
محصولات متنوع- مخصوصاً مدلها- در فرآيند مهندسي نرمافزار مورد استفاده قرار ميگيرند.
فرآيند RUP فرآيندي قابل شكلدهي است. هيچ فرآيند واحدي براي همه نرمافزارها مناسب نميباشد فرآيندRUP، همانطور كه براي سازمانهاي بزرگ
توسعه نرمافزار مناسب ميباشد، براي تيمهاي كوچك نيز مفيد است. اين فرآيند ميتواند براي تطبيق موقعيتهاي مختلف سازش پيدا كند.
فرآيندRUP، چگونگي استفاده مؤثر روشهاي تجاري براي توسعه نرمافزاري در گروههاي نرمافزاري را بيان ميكند. اين روشها كه بهترين تمرينها( Best Practices )
ناميده ميشوند به طور مشترك در همة صنايع مورد استفاده قرار ميگيرند.
فرآيند توسعه ، يک چارچوب عمومي است که براي کليه پروژه ها صرف نظر از اندازه و ميزان پيچيدگي آنها امکاناتي فراهم مي کند. RUP
يک فرآيند بزرگ صنعتي ( مخصوصا براي توسعه سيستمهاي نرم افزاري ) است که براي سهولت تفهيم آن، کلياتي از آن بدون نام شرکت Rational و
بدون محرز کردن جريانهاي کاري مربوط به فعاليتهاي حمايتي توليد نرم افزار و مدلسازي کسب و کار و بدون اشاره به قدرت RUP که همان ابزارهاي
حمايت کننده آن مي باشند در قالب فرآيند توسعه توسعه نرم افزار يکنواخت شده (USDP) در دانشگاههاي معتبر جهان ظهور کرده است در واقع مي توان
گفت که RUP نسخه پياده سازي شده اي از USDP است. USDP بعنوان يک فرآيند شي گراي توليد و توسعه سيستمها، داراي مدل فرآيندي است
که روند کلي توسعه را مشخص مي کند يک فرآينده توسعه سيستم حداقل بايد داراي ويژگيهاي زير باشد :
- مشخص کردن ترتيب فعاليتها
- مشخص شود که چه محصولاتي در چه زماني توليد مي شود. ( محصولات مياني و نهايي )
- مديريت وظايف توسعه دهندگان اعم از افراد يا تيمها معين باشد. ( نقشهاي مورد نياز تيمها )
- معيارهايي براي اندازه گيري کيفيت محصولات پروژه و روند پيشرفت فعاليتهاي آن فراهم باشد.
- امکانات بهرمندي از تجربيات موفق و ناموفق افراد و پروژه هاي ديگر در آن فراهم باشد.
RUP چيست؟
با پيشرفت تكنولوژي كامپيوتر، نياز هرچه بيشتر به گسترش علم نرم افزاري نيز احساس ميشد كه با پيدايش متدولوژيهاي همانند SSADM و روش آبشاري آغاز شد.
در ابتدا، اين روشها مناسب بود و جوابگوي نيازهاي آن زمان بودند ولي با افزايش دادهها و پيدايش مفاهيمي همچون شبكه، Web و ... ديگر كارآيي لازم
را جهت پيادهسازي و هدايت پروژههاي نرم افزاري نداشتند. پس مفاهيم برنامه نويسي شيءگرا پا به عرصه وجود گذاشت و در سال 1991 بطور جدي
مورد مطالعه و بحث قرار گرفت. استفاده از اين روشها و متدهاي برنامه نويسي قدرت و انعطاف بسياري را به برنامهها داد و شركتهاي نرم افزاري توانستند
با كاهش هزينهها و بهينه سازي كدهاي خود، نرم افزارهاي قويتري را به بازار عرضه كنند ولي اين روش جديد نيز نياز به مديريت و يكپارچگي داشت.
پس روشها و متدولوژيهاي جديدي مطرح شد كه شامل Booch، OMT، OSE و ... ميباشد. در سال 2000 شركت Rational روشي را تحت
عنوان (Rational Unfied Process) RUP مطرح ساخت كه بعد از روش MSF شركت مايكروسافت به دنياي نرم افزار عرضه شد
و امروزه از طرفداران بسياري برخوردار است.
Rational Unified Process :RUP
پالاينده يكپارچه Rational در اصل يك متدولوژي است كه در جهت كنترل و انجام پروژههاي نرم افزاري در نظر گرفته شده است.
در اصل اين چارچوبي در جهت انجام صحيح و موفق پروژههاي نرم افزاري ميباشد كه كليه مراحل انجام يك پروژه كه با معماري و آناليز سازمان
شروع شده و به تست نرم افزار و ارائه Gold Release ختم ميشود را دربرميگيرد.
چرا ميگوييم يكپارچه:
به سه علت RUP را يكپارچه مينامند:
1 – اين متدولوژي از يكپارچه سازي سه متدولوژي معروف ديگر بوجود آمده است كه شامل Booch، OMT و OSE ميباشد.
2 – از UML در جهت كارهاي خود استفاده ميكند. در واقع ميتوان گفت UML خود ثمره RUP ميباشد و اين خود بسيار خوب است كه متدولوژيي با خودش گسترش يابد.
3 - مفاهيمي از قبيل Object، Class و ... مفاهيم ساده و ثابتي هستند ولي قبلاً متدولوژيها علامتهاي خاصي داشتند كه اكنون همه آنها يكسان شدهاند.
منظور از Process چيست؟
به ما بگويند چه كسي، چه كاري را انجام دهد و چگونه انجام دهد. اين تعريف در حالت عمومي ميباشد ولي از نظر علمي چه كسي تحليل را انجام دهد؟
چگونه تحليل كند؟ چه Documentهايي را توليد كند.
Jack Hopson پالايند را بصورت ديگري تعريف ميكند :
Process عبارت است از يكسري فعاليتها كه نيازهاي خاص كاربر را به يك محصول نرم افزاري ميرساند در اصل فرآيند نرم افزاري كه ما داريم
از يكسري پارامترها گرفته شده كه شامل موارد زير ميباشد:
· تكنولوژي: منظور اين است كه 10 سال قبل چگونه بوده است و ما چه قابليتها و نيازهايي داشتهايم و بعد چه امكاناتي بوجود آمده و
در اختيار ما قرار گرفته و اكنون چه نيازمنديهايي داريم؟
· افرادي كه در پروژه يا سازمان ما كار ميكنند.
· خود سازماني كه در حال توليد محصول ميباشد بايد نيازها و امكانات و معماري آن مشخص شود.
RUP سالي دوبار توسط Rational به روز ميشود. از مزاياي RUP ميتوان به اين موضوع اشاره نمود كه چون ميتواند بر پايه Web باشد پس
قابل Customize ميباشد و ميتوان آنرا جهت استفاده همگان بر روي سايت قرارداد. از طرفي مثل هر نرم افزار شيءگراي ديگري با UML كاركرده و رشد ميكند.
براي تحليل طراحي و پيادهسازي سيستم مورد نظر از متدولوژي RUP استفاده ميشود. RUP يك فرآيند مهندسي نرمافزار است.
اين فرآيند يك روش نظاممند براي تخصيص كارها و مسئوليتها در يك تيم توسعه نرمافزار ميباشد و هدف آن توليد نرمافزار با كيفيت بالاست كه
نيازهاي كاربران نهايي را توسط يك برنامه و با بودجه قابل پيشبيني تأمين نمايد.
RUP يك فرآيند محصول ( Process Product ) است كه توسط شركت Rational، تهيه و پشتيبان شده است. تيم توليد RUP به منظور كسب آخرين تجارب
و تكاملهاي روز از نزديك با مشتريان و شركاء كار ميكنند.
فرآيند RUP بهرهوري تيم را با فراهم نمودن دسترسي تمام افراد تيم به يك پايگاه دانش سهلالوصول به همراه راهنماها، الگوها و ابزارهاي كمكي
براي همه فعاليتهاي بحراني توسعه، افزايش ميدهد. با تأمين دسترسي همه اعضاي تيم به يك پايگاه دانش، افراد در هر قسمت از يك زبان، فرآيند
و ديد مشترك براي توسعه نرمافزار برخوردار هستند.
درفعاليتهاي RUP، بجاي تمركز بر روي توليد مستندات بزرگ كاغذي، مدلهايي توليد ميشوند كه بخوبي سيستم در حال توسعه را ارائه مينمايند.
فرآيند RUP، راهنمايي براي استفاده مؤثر از زبان يكپارچه مدلسازي، UML ميباشد. UML، زباني استاندارد براي تبادل شفاف نيازها، معماري و طراحي است.
زبان UML در ابتدا توط شركت رشنال ايجاد شد و هم اكنون توسط موسسه استانداردهاي OMG ( Object Management Group ) پيشتيباني ميشود.
فرآيند RUP توسط ابزارهايي پشتيباني ميشود كه هر يك بخشهاي بزرگي را فرآيند را به صورت خودكار انجام ميدهند. آنها براي استفاده و نگهداري
از محصولات متنوع- مخصوصاً مدلها- در فرآيند مهندسي نرمافزار مورد استفاده قرار ميگيرند.
فرآيند RUP فرآيندي قابل شكلدهي است. هيچ فرآيند واحدي براي همه نرمافزارها مناسب نميباشد فرآيندRUP، همانطور كه براي سازمانهاي
بزرگ توسعه نرمافزار مناسب ميباشد، براي تيمهاي كوچك نيز مفيد است. اين فرآيند ميتواند براي تطبيق موقعيتهاي مختلف سازش پيدا كند.
فرآيندRUP، چگونگي استفاده مؤثر روشهاي تجاري براي توسعه نرمافزاري در گروههاي نرمافزاري را بيان ميكند. اين روشها كه بهترين
تمرينها( Best Practices ) ناميده ميشوند به طور مشترك در همة صنايع مورد استفاده قرار ميگيرند. فرآيند RUP براي هر يك از اعضاي تيم،
راهنماها، الگوها و ابزارهايي مهيا ميكند كه تيم بهترين استفاده را از بهترين تمرينهاي زير ببرد:
توسعه تكراري نرمافزار
مديريت نيازها
• استفاده از معماري مبتني بر مؤلفه
• مدل كردن تصويري نرمافزار
• بازبيني كيفيت نرمافزار
• كنترل تغييرات در نرمافزار
توسعه تكراري نرمافزار:
در سيستمهاي پيچيده امروزي انجام مراحل تعيين تمام مسأله، طراحي تمام راهحل و ساخت تمام نرمافزا و در انتها تست كامل آن به صورت متوالي ممكن نيست. در اينجا نياز به فرآيندي مكرر است كه اجازه فهم افزايشي مسأله به همراه پيرايش آن و تكامل راهحل مؤثر را در طول چندين تكرار بدهد.RUP از روش، تكرار استفاده مي:ند كه اجزاء با ريسك بالا در هر مرحله از چرخه حيات مشخص ميكند، و اين باعث كاهش ريسك ميشود. فرآيند تكراري مقابله با ريسك را با نمايش پيشرفت فرآيند و نسخههاي اجرايي كه امكان درگيري و بازخورد از كاربران، فراهم ميكند. همچنين فرآيند تكراري قابليت انجام تغييرات تاكتيكي در نيازها، قابليتها و برنامهها را سبب ميشود.
مديريت نيازها:
فرآيند RUP طريقة استخراج، سازماندهي و مستند كردن عملكرد و شرايط مورد نياز دنبال كردن و مستند كردن موازنهها و تصميمگيري و مبادله
آسان نيازهاي كاري را بيان ميكند. همچنين اثبات شده است كه ورش نمادي كه در آن مورد كاربرد وسناريوها مدل ميشوند، راهي مناسب براي گرفتن
نيازهاي كار كردي و اطمينان از تأمين نيازهاي كاربران توسط نهايي، ميباشد. مزيت ديگر آن ايجاد رشتههايي منسجم و قابل رديابي درون سيستم در حال توسعه و تحويل شده ميباشد.
استفاده از معماري مبتني بر مؤلفه:
مؤلفهها، ماژولها يا زير سيستمهاي هستند كه كاركردهاي مشخصي دارند. RUP روشي سيستماتيك براي تعريف معماري با استفاده
از مؤلفههاي جديد و موجود ايجاد ميكند كه توسط يك معماري خوش ساخت، كه ميتواند بصورت ad hoc و يا در يك چارچوب مؤلفهاي مانندCORBA و COM سر هم شوند، ايجاد ميكند.
مدل كردن تصويري نرمافزار:
اين فرآيند چگونگي مدل كردن بصري نرمافزار به منظور ساختار و رفتار معماري و مؤلفهها را نشان ميدهد. اين روش امكان پنهان كردن
جزئيات و نوشتن كد توسط سنگبناهاي گرافيكي را فراهم مينمايد.
بازبيني كيفيت نرمافزار:
دو عامل مهم و مشتركي كه امروزه سبب عدم پذيرش نرمافزارها ميشوند، قابليت اطمينان پايين و كارآيي ضعيف ميباشد.
فرآيندRUP در ايجاد برنامهريزي،طراحي ، پياده سازي و ارزيابي آزمايشهايي كه بر جنبههاي مختلف نرمافزار نظارت داشته باشند، كمك مؤثري ميباشد.
http://forum.sohail2d.com/viewtopic.php?p=59151
http://fa.wikipedia.org/wiki/RUP
http://www.developercenter.ir/download/RUP-Overview.zip