بررسي و شناخت متدولوژي RUP
چکیده :
Rational Unified Process نام کاملترين فرآيند توسعه نرم افزار مي باشد که از ترکيب چند فرآيند ومتد ديگر ايجاد شده و به اختصار به آن RUP
گفته مي شود. اين فرآيند بستر مناسبي براي توسعه مکانيزمهاي مديريتي در
اختيار کسب و کارها قرار مي دهد. با توسعه آن نسبت به نظام بهره مندي از
تجربيات ديگر افراد و سازمانها ، فرآيند ISRUP بستري مناسب براي بهبود مستمر کسب و کارها ايجاد مي کند.
براي تحليل طراحي و پياده*سازي سيستم مورد نظر از متدولوژي RUP استفاده مي*شود. RUP
يك فرآيند مهندسي نرم*افزار است. اين فرآيند يك روش نظاممند براي تخصيص كارها و مسئوليتها در يك تيم توسعه نرم*افزار مي*باشد و هدف آن توليد نرم*افزار با كيفيت بالاست كه نيازهاي كاربران نهايي را توسط يك برنامه و با بودجه قابل پيش*بيني تأمين نمايد.
RUP يك فرآيند محصول ( ProcessProduct ) است كه توسط شركت Rational، تهيه و پشتيبان شده است.
تيم توليد RUP به منظور كسب آخرين تجارب و تكامل هاي روز از نزديك با مشتريان و شركاء كار مي*كنند.
فرآيند RUP بهره وري تيم را با فراهم نمودن دسترسي تمام افراد تيم به يك پايگاه دانش سهل الوصول به همراه راهنماها، الگوها و ابزارهاي كمكي براي همه فعاليتهاي بحراني توسعه، افزايش مي*دهد.
با تأمين دسترسي
همه اعضاي تيم به يك پايگاه دانش، افراد در هر قسمت از يك زبان، فرآيند و
ديد مشترك براي توسعه نرم*افزار برخوردار هستند. درفعاليتهاي RUP، بجاي تمركز بر روي توليد مستندات بزرگ كاغذي، مدلهايي توليد مي*شوند كه بخوبي سيستم در حال توسعه را ارائه مي*نمايند. فرآيند RUP، راهنمايي براي استفاده مؤثر از زبان يكپارچه مدل*سازي، UML مي*باشد. UML، زباني استاندارد براي تبادل شفاف نيازها، معماري و طراحي است. زبان UML در ابتدا توط شركت رشنال ايجاد شد و هم اكنون توسط موسسه استانداردهاي OMG ( Object Management Group ) پيشتيباني مي*شود. فرآيند RUP
توسط ابزارهايي پشتيباني مي*شود كه هر يك بخشهاي بزرگي را فرآيند را به
صورت خودكار انجام مي*دهند. آنها براي استفاده و نگهداري از محصولات متنوع-
مخصوصاً مدلها- در فرآيند مهندسي نرم*افزار مورد استفاده قرار مي*گيرند.
فرآيند RUP فرآيندي قابل شكل*دهي است. هيچ فرآيند واحدي براي همه نرم*افزارها مناسب نمي*باشد فرآيندRUP،
همانطور كه براي سازمانهاي بزرگ توسعه نرم*افزار مناسب مي*باشد، براي
تيمهاي كوچك نيز مفيد است. اين فرآيند مي*تواند براي تطبيق موقعيتهاي مختلف
سازش پيدا كند. فرآيندRUP، چگونگي استفاده مؤثر روشهاي تجاري براي توسعه نرم*افزاري در گروههاي نرم*افزاري را بيان مي*كند. اين روشها كه بهترين تمرينها( Best Practices ) ناميده مي*شوند به طور مشترك در همة صنايع مورد استفاده قرار مي*گيرند.
کلمات کليدی :RUP, Rational UnifiedProcess,USDP, Unified Software Development Process, ISRUP,UML
مقدمه :
فرآيند توسعه ، يک چارچوب عمومي است که براي کليه پروژه ها صرف نظر از اندازه و ميزان پيچيدگي آنها امکاناتي فراهم مي کند. RUP يک فرآيند بزرگ صنعتي ( مخصوصا براي توسعه سيستمهاي نرم افزاري ) است که براي سهولت تفهيم آن، کلياتي از آن بدون نام شرکت Rational و بدون محرز کردن جريانهاي کاري مربوط به فعاليتهاي حمايتي توليد نرم افزار و مدلسازي کسب و کار و بدون اشاره به قدرت RUP که همان ابزارهاي حمايت کننده آن مي باشند در قالب فرآيند توسعه توسعه نرم افزار يکنواخت شده (USDP) در دانشگاههاي معتبر جهان ظهور کرده است در واقع مي توان گفت که RUP نسخه پياده سازي شده اي از USDP است. USDP
بعنوان يک فرآيند شي گراي توليد و توسعه سيستمها، داراي مدل فرآيندي است
که روند کلي توسعه را مشخص مي کند يک فرآينده توسعه سيستم حداقل بايد داراي
ويژگيهاي زير باشد :
● مشخص کردن ترتيب فعاليتها
● مشخص شود که چه محصولاتي در چه زماني توليد مي شود. ( محصولات مياني و نهايي )
● مديريت وظايف توسعه دهندگان اعم از افراد يا تيمها معين باشد. ( نقشهاي مورد نياز تيمها )
● معيارهايي براي اندازه گيري کيفيت محصولات پروژه و روند پيشرفت فعاليتهاي آن فراهم باشد.
● امکانات بهرمندي از تجربيات موفق و ناموفق افراد و پروژه هاي ديگر در آن فراهم باشد.RUP چيست؟
با پيشرفت تكنولوژي كامپيوتر، نياز هرچه بيشتر به گسترش علم نرم افزاري نيز احساس مي*شد كه با پيدايش متدولوژيهاي همانند SSADM
و روش آبشاري آغاز شد. در ابتدا، اين روشها مناسب بود و جوابگوي نيازهاي
آن زمان بودند ولي با افزايش داده*ها و پيدايش مفاهيمي همچون شبكه، Web
و ... ديگر كارآيي لازم را جهت پياده*سازي و هدايت پروژه*هاي نرم افزاري
نداشتند. پس مفاهيم برنامه نويسي شيءگرا پا به عرصه وجود گذاشت و در سال
1991 بطور جدي مورد مطالعه و بحث قرار گرفت. استفاده از اين روشها و متدهاي
برنامه نويسي قدرت و انعطاف بسياري را به برنامه*ها داد و شركتهاي نرم
افزاري توانستند با كاهش هزينه*ها و بهينه سازي كدهاي خود، نرم افزارهاي
قويتري را به بازار عرضه كنند ولي اين روش جديد نيز نياز به مديريت و
يكپارچگي داشت. پس روشها و متدولوژيهاي جديدي مطرح شد كه شامل Booch، OMT، OSE و ... مي*باشد. در سال 2000 شركت Rational روشي را تحت عنوان (RationalUnfiedProcess) RUP مطرح ساخت كه بعد از روش MSF شركت مايكروسافت به دنياي نرم افزار عرضه شد و امروزه از طرفداران بسياري برخوردار است.Rational UnifiedProcess :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 يك فرآيند محصول ( ProcessProduct ) است كه توسط شركت 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
در ايجاد برنامه*ريزي،طراحي ، پياده سازي و ارزيابي آزمايشهايي كه بر
جنبه*هاي مختلف نرم*افزار نظارت داشته باشند، كمك مؤثري مي*باشد.
ساختار RUP
ساختار RUP پيرامون چند منطق ساده و مرتبط به هم سازمان*دهي شده است:
- RUP
نقشهايي را تعريف مي*كند كه بايد در پروسه وجود داشته باشد و بر مبناي آن،
صلاحيتها، تخصصها و مسئوليتهاي افرادي كه بايد پيشرفت پروژه را محقق
سازند، مشخص مي*شود.
- RUP كارهايي را كه هر يك از افراد بايد در عمل انجام دهند، به طور گام به گام تشريح مي*كند.
- اين عمليات با استفاده از ابزارهايي واقعي مانند مدل*ها، كدها، اسناد و گزارشها اداره مي*شوند.
- در RUP
به وفور با راهنماييهاي مربوط به نقش*هايي كه افراد بايد به عهده بگيرند،
فعاليتهايي كه بايد انجام شوند و مصنوعات مورد نياز برخورد خواهيد نمود كه
در قالب خطوط راهنما، الگوها، مثالها و معلمهاي ابزاري ارائه مي*شوند كه
چگونگي به وقوع پيوستن دسته*اي از فعاليتها توسط يك ابزار بخصوص را شرح
مي*دهند.
- تمامي اين المانهاي توصيف پروسه در قالب منظومه*هايي سازماندهي شده*اند.
RUP
مقدماتي نه منظومه، بيش از چهل نقش و صد محصول را تعريف مي*كند و حاوي بيش
از هزار صفحه راهنما است. همچنين مي*توانيد به پروسه*هاي الحاقي متعددي كه
وظايف و مندرجات بيشتري را به RUP اضافه مي*كند، دسترسي پيدا كنيد. برخي از منتقدين RUP
آنرا پروسه*اي بسيار سنگين تصور نموده و آنرا به كرگدني تشبيه مي*كنند كه
توان انجام تعداد نامحدودي عمل غير معمول را براي شما فراهم مي*آورد؛ با
اين وجود نگاه ما به RUP همانند لوح باشكوهي از معارف است كه مي*توانيد آنچه را كه نياز داريد، از داخل آن برگزينيد.
اجازه
بدهيد مقايسه*اي انجام دهيم. اگر فرهنگ لغات مناسبي از 800 لغت را انتخاب
كرده باشيد، مي*توانيد در خيلي از نقاط دنيا و در بسياري شرايط، گليم خود
را از آب بكشيد؛ ولي با انتخاب فرهنگ لغات حجيمي چون Webster
، اولاً هيچ*كس شما را مجبور به استفاده از لغاتي كه در فرهنگ لغات وجود
دارد نمي*كند، ثانياً مي*توانيد سطح ناطقه خود را براي انطباق با وضعيتهاي
مختلف ارتقا بخشيد و ثالثاً مي*توانيد فرهنگ لغات خود را بهبود بخشيد.
فرهنگ لغت800 لغتي بايد فقط زيرمجموعه*اي از يك فرهنگ لغات باشد.
انطباق با RUP
RUP يك اصل عقيدتي يا يك آيين مذهبي نيست. ساختار RUP
ساختار خشكي نيست كه بخواهد همه چيز را براي توليد نرم*افزار در قالب خود
درآورد. نه، نيازي نيست كه حداقل چهل نفر را براي تكميل پروسه*اي كه چهل
نقش در آن تعريف شده است، به خدمت بگيريد و نيازي نداريد كه بيش از صد
محصول مختلف را پرورش دهيد. اگر سعي خود را به انجام اين كار معطوف سازيد،
خيلي زود در معرض آشفتگي قرار خواهيد گرفت. اين المانها در RUP
و در فرم الكترونيكي براي فراهم*آوردن انعطاف*پذيري مورد نياز براي انطباق
با تقاضايي ارائه شده*اند كه به شرايط محيطي كه درآن به سر مي*بريد، بستگي
دارد. RUP تمرينات توليد نرم*افزار ثابت شده فراواني را دربر دارد. شركت Rational ميدان ديد بالايي را براي موارد زير، ارائه مي*دهد:
- توسعه مكرر
- مدل*سازي بصري
- مديريت ملزومات تغييرات كنترل
- بازبيني مداوم كيفيت
- استفاده از معماري بر مبناي اجزا
همچنين URP
بر مبناي ديگر اصول كليدي ديگري كه كمتر قابل مشاهده هستند و ساده*تر به
محاق فراموشي سپرده مي*شوند، استوار شده است كه فقط براي يادآوري اشاره*اي
به آنها مي*نماييم:
- منحصراً آنچه را كه مورد نياز است، پرورش دهيد.
- روي نتايج ارزشمند تمركز كنيد، نه روي چگونگي حصول نتايج
- كاغذبازي را به حداقل برسانيد.
- نعطاف*پذير باشيد.
- از اشتباهات خود عبرت بگيريد.
- به طور منظم، مخاطرات محتمل را مورد بازبيني قرار دهيد.
- براي پروسه موردنظر معيارهاي قابل اندازه*گيري و علمي را بدون موضع*گيري شخصي استوار كنيد.
- از گروه*هاي كوچك و توانمند استفاده كنيد.
طرحي را در ذهن داشته باشيد.
ذهنيت كليدي در سازگار شدن و سازگار كردن RUP قالب توسعه (DevelopmentCase) مي*باشد. يك قالب توسعه نمونه*اي از RUP است كه براي پروژه ويژه**اي كه مد نظرتان است، مناسب باشد. با مراجعه به ساختار RUP به توضيح پروسه*اي دست* مي*يابيد كه موارد زير را تعريف نموده و شناسايي مي*كند.
- چه چيزي توسعه داده خواهد شد؟
- به چه مصنوعاتي واقعاً نياز داريم؟
- چه الگوهايي بايد مورد استفاده قرار بگيرند؟
- كدام مصنوعات در حال حاضر وجود دارند؟
- به چه نقش*هايي نياز داريم؟
- چه فعاليتهايي انجام خواهند شد؟
- كدام خطوط راهنما، استانداردهاي پروژه و ابزارهايي مورد استفاده قرار خواهند گرفت
در
بسياري از شركت ها حدود 30 تا 50 درصد هزينه توليد نرم افزار صرف تست آن
مي شود.، هنوز هم خيلي از افراد اعتقاد دارند كه نرم افزارها قبل از
انتشار، به درستي تست نمي شوند. اين شرايط به دو دليل به وجود مي*آيد. اول
اين كه تست نرم افزار امري بسيار مشكل است. دوم اين كه تست معمولا" بدون
متدولوژي مشخص و ابزار لازم انجام مي گيرد.
آنچه كه باعث مي شود تا شركت*ها هزينه زيادي صرف تست نرم افزارها كنند، چيزي جز دستيابي به كيفيت مطلوب نيست.
خصوصیتهای RUP :
1- مبتنی بر موارد قابل کاربرد
مدل
موار قابل کاربرد بعنوان نمونه ای از مدل خواسته ها ، علاوه بر آنکه کل
وظیفه مندی سیستم را شرح میدهد ، اساس فعالیتهای بعدی یعنی طراحی ، پیاده
سازی و آزمون را نیز ایجاد میکند. بهمجموعه ای از فعالیتهای قابل انجام که
یک سیستم انجام میدهد تا یک نتیجه ی قابل مشاهده به یک کاربر یا یک سیستم
خارجی بدهد ، مورد قابل کاربرد می گوییم این موارد قابل کاربرد، قابلیت
استفاده و کاربرد مجدد و بهرمندی از سرویسها در سیستمهای همگون را افزایش
میدهد. ممکن است در این توالی فعالیتها ، دگرگونیهائی نیز وجود داشته باشد.
کاربر یا سیستم خارجی را عامل می نامیم . مدل مورد قابل کاربرد شامل
عاملهای ، موارد قابل کاربرد و ارتباطات بین آنهاست . این مدل همچنین شرح
میدهد که سیستم برای کاربران خود تحت شرایط متفاوت چه عملکردهایی می تواند
داشته باشد.
2- مبتنی بر معماری
معماری نرم افزار همانند
معماری ساختمان است . معماری در حوزه ای بر بهره مندی از تلفیق علم ، هنر و
تجربه ، تکیه دارد. معماری نرم افزار مطابق نظر آقای Kruchen
در معماری 4+1 از دیدگاههای مختلف شامل دیدگاه مورد قابل کاربرد ، دیدگاه
منطقی ، دیدگاه فرآیندها ، دیدگاه استقرار و دیدگاه پیاده سازی تشکیل شده
است .
3- تکرار شونده و افزایشی
تکرار یعنی یکبار انجام
دادن همه نظامهای یک فرآیند توسعه . یک پروژه را به چندین پروژه کوچک (
مینی پروژه ) تقسیم نموده و در هر تکرار یکی از مینی پروژه ها را تولید می
کنیمو همانگونه که در شکل زیر دیده میشود . RUP از دو بعد قابل بررسی می باشد: فازها و نظامها ( جریانهای کاری )
Workflow :
مجموعه فعاليتهايي كه ما انجام مي*دهيم تا به يك هدف تجاري كاري برسيم. RUP به اين Workflowها وابسته است و در هر مرحله نقش موثري را دارند.
اهداف فازهای RUP :
چنانکه
در شکل بالا دیده میشود اگر از چپ به راست حرکت کنیم در راستای فازها حرکت
کرده ایم و چنانچه دیده میشود دارای چهار فاز آغازین ، تعیین ، ساخت و
انتقال است که هر فاز ممکن است از چندین تکرار تشکیل شده باشد. در ادامه به
اهم اهداف فازها به صورت خلاصه می پردازیم .
فاز آغازین :
اهداف اساسی این فاز عبارتند از :
• مشخص نمودن محدوده ی نرم افزار پروژه
• مشخص نمودن موارد قابل کاربرد و سناریوهای بسیار مهم
• پیشنهاد یک معماری کاندید برای موارد قابل کاربرد معرفی شده
• تخمین هزینه کلی و زمان پروژه
• تعیین ریسکهای بالقوه
• فراهم نمودن محیط و شرایط برای پشتیبانی پروژه
• مشخص نمودن محیط توسعه و تولید با توجه به الگوها.
فاز تعیین :
اهداف اساسی این فاز عبارتند از :
• اطمینان حاصل نمودن از اینکه معماری ، خواسته ها و تصمیمات به اندازه کافی پایدار شده اند
• مشخص نمودن ریسکهایی که از نظر معماری مهم اند.
• ایجاد یک معماری پایدار از سناریوهای اساسی و مهم
• ایجاد یک نمونه ی اولیه ثابل تکمیل شدن
• بیان اینکه معماری پیشنهاد شده خواسته های سیستم را با هزینه و زمان معقول پشتیبانی می کند
• فراهم نمودن محیط برای پشتیبانی توسعه
• تعیین الگوهای موجود و الگوهایی که باید تهیه شوند در CCB (ChangeConrolBoard)
فاز ساخت :
اهداف اساسی این فاز عبارتند از :
• به حداقل رساندن هزینه های ایجاد با بهبود بخشیدن منابع و جلوگیری از دوباره کاری با بهرمندی از الگوها
• بدست آوردن کیفیت کافی از طریق بهبود مستمر
• رسیدن به نسخه های مفید ( آلفا ، بتا و دیگر نسخه های آزمون )
• تکمیل تحلیل ، طراحی ، پیاده سازی و آزمون همه ی وظیفه مندیهای خواسته شده با توجه به الگوها
• ایجاد یک محصول کامل با روش تکرار و افزایش و بهبود
• تصمیم گیری آنکه آیا نرم افزار ، سایتها ، کاربران برای تحویل محصول آماده هستند
• دستیابی به درجات بالای کار کردن بصورت گرئهی و موازی
فاز انتقال:
اهداف اساسی این فاز عبارتند از :
• آزمون بتا
• انجام عملیات موازی در مقایسه با سیستم قدیمی با توجه به ضد الگوهای مربوط به استقرار سیستمهای جدید
• تبدیل پایگاه داده های عملیاتی
• آموزش کاربران و مسئولان مراقبت و نگهداری
• بازاریابی با توجه به الگوها و چارچوبهای بازاریابی
• هماهنگ کردن فعالیتهائی مانند اصلاح عیبها، افزودنها بخاطر عملکرد و قابلیت استفاده ی بالاتر
• ارزیابی آنچه مستقر شده در مقایسه با آنچه در چشم انداز مستند شده است.
• تعلیم کاربران به حدی که خود بتوانند سیستم را پشتیبانی کنند
• کسب تایید و رضایت افراد ذینفع پروژه.
جریانهای کاری RUP :
RUP دارای 9 نظام است . هر ترکیب متوالی یا موازی از آن فعالیتها به عنوان یک جریان کاری می تواند در قالب یک نمودار فعالیت UML نشان داده شود. اگر در نظامهای RUP
از بالا به پائین حرکت کنیم ، در راستای جریانهای کاری ، یعنی بعد دیگر
فرآیند حرکت کرده ایم. در هر جریان کاری تعدادی فعالیت انجام میشود تا به
یک مجموعه فرآورده های خاص برسیم . هر جریان کاری از یک سری جزء فرآیند
تشکیل شده است . این جزء فرآینده ها به ترتیب خاصی و گاه به صورت موازی
انجام میگیرد تا اهداف نظامهای مربوطه حاصل شود. بازنمایی توالی و توازی
انجام گرفتن جزءفرآیندها را نیز با یک نمودار فعالیت نشان خواهیم داد.
یک
جزء فرآیند بیان میکند که چه فعالیتی توسط چه کسی انجام میگیرد و کدام
فرآورده ها تولید می شوند یعنی در یک جزءفرآیند ، نقشها ، فعالیتها و
فرآورده های مشخصی وجوددارد .
1- جریان کاری مدلسازی فعالیتهای کسب و کار
چنانچه در شکل زیر دیده میشود جزء فرآیندهای موجود در این جریان کاری عبارتند از :
1- وضعیت کسب و کار فعلی را ارزیابی کنید
2- وضعیت کسب و کار فعلی را تشریح کنید
3- فرآیندهای کسب و کار را شناسائی کنید
4- الگوهای کسب و کار متناسب با حوزه کاری را تعیین کنید.
5- فرآیند های کسب و کار را بهبود دهید
6- محقق سازی فرآیندهای کسب و کار فعلی را طراحی کنید
7- نقشها و مسئولیتها را بهبود دهید
8- در مورد اتوماسیون فرآینده های کسب و کار تحقیق کنید
9- به جای انجام دادن جزء فرآینده های فوق می توانید مدل دامنه کسب و کار را ایجاد کنید و آنرا توسعه دهید.
2- جریان کاری مدیریت خواسته ها
مطابق شکلهای فوق ، جزء فرآینده های موجود در این جریان کاری عبارتند از :
1- مساله را تحلیل کنید
2- خواسته هاس افراد ذینفع را با استفاده از IFD ( یاگرام جریان اطلاعات ) شناسائی کنید
3- سیستم را توصیف کنید
4- محدوده ی سیستم را مدیریت کنید
5- توصیف سیستم را بصورت تطبیقی بهبود دهید
6- خواسته های تغییر کننده را مدیریت کنید.
3- جریان کاری تحلیل و طراحی
مطابق شکل زیر جزء فرآینده های موجود در این جریان کاری عبارتند از :
1- یک معماری کاندید از چارچوبهای موجود و قابل توسعه برای نرم افزار معرفی کنید
2- رفتار را تحلیل کنید
3- اجزاء را با بهره گیری از الگوها طراحی کنید
4- اجزاء بی درنگ را طراحی کنید
5- پایگاه داده را طراحی کنید
6- معماری نرم افزار را با توجه به قابلیت استفاده مجدد پالایش کنید.
4- جریان کاری پیاده سازی
مطابق شکل فوق ، جزء فرآینده های موجود در این جریان کاری عبارتند از :
1- مدل پیاده سازی را ساختاردهی کنید
2- در مورد مجتمع سازی(Integration) تصمیم گیری کنید
3- حتی الامکان با استفاده از idiom ها اجزاء را پیاده سازی کنید
4- هر زیر سیستم را مجتمع سازی کنید
5- سیستم را مجتمع سازی کنید.
5- جریان کاری آزمون
مطابق شکل زیر جزءفرآینده های موجود در این جریان کاری عبارتند از :
1- در مورد آزمون تصمیم گیری کنید
2- آزمون را زراحی کنید
3- آزمون را پیاده سازی کنید
4- آزمون را مجتمع سازی کنید
5- آزمون سیستمی را اجرا کنید
6- آزمون را ارزیابی کنید
6- جریان کاری استقرار (Deployment)
مطابق شکل زیر جزءفرآینده های موجود در این جریان کاری عبارتند از :
1- در مورد استقرار ، تصمیم گیری کنید.
2- موارد قابل پشتیبانی را معین کنید
3- آزمون پذیرش را در سایت ایجاد مدیریت کنید ( در صورت رخ دادن درخواست تغییر)
4- واحد استقرار را با توجه به نحوه قرارگیری مولفه های نرم افزاری روی مولفه های سخت افزاری ایجا کنید.
5- در مرحله ی آزمون بتا ، محصول آزمون بتا را تولید کنید.
6- برای تحویل به مشتری یکی از اعمال زیر را انجام دهید:
- آزمون پذیرش را در سایت نصب مدیریت کنید
- محصول را بسته بندی کنید
- امکان دسترسی به سایت را برا گرفتن نرم افزار فراهم کنید ( اگر محصول برای گرفتن از روی سایت ایجاد شده است )
7- جریان کاری مدیریت پروژه
مطابق شکل زیر جزءفرآینده های موجود در این جریان کاری عبارتند از :
1- پروژه جدید را درک کنید
2- ریسکهای عمومی پروژه ها را در نظر بگیرید
3- ریسکهای خاص پروژه و محدوده ی آنها را ارزیابی کنید
4- مستند توسعه نرم افزار را تولید کنید
5- پروژه را کنترل و مانیتور کنید
6- برای تکرار بعدی تصمیم گیری کنید
7- تکرار را مدیریت کنید
8- فاز را ببندید ( در انتهای فاز )
9- پروژه را ببندید ( در انتهای پروژه )
8- جریان کاری مدیریت پیکربندی و تغییرات
مطابق شکل زیر جزءفرآینده های موجود در این جریان کاری عبارتند از :
1- درباره پیکربندی پروژه و کنترل تغییرات ، تصمیم بگیرید
2- محیط و شرایط مدیریت پیکربندی پروژه را فراهم کنید
3- برای محیط های توسعه با پراکندگی فیزیکی می توان از الگوهای مدیریت پیکربندی استفاده کرد.
4- فقره های پیکربندی را تغییر داده و تحویل دهید
5- نسخه ها و خطوط پایه را مدیریت کنید
6- وعیت پیکربندی را در نظر داشته باشید و گزارش کنید
7- درخواستهاس تغییر را مدیریت کنید.
9- جریان کاری آماده سازی محیط
مطابق شکل زیر جزءفرآینده های موجود در این جریان کاری عبارتند از :
1- محیط و شرایط را برای بکارگیری بانک الگو در پروژه آماده کنید
2- محیط و شرایط را برای یک تکرار آماده کنید
3- خطوط کلی را برای یک تکرار آماده کنید
4- محیط را در طول یک تکرار پشتیبانی کنید
مفهوم تکرار :
در
هر تکرار یکبار همه جریانهای کاری که هر کدام فعالیتهای مخصوص خود را دارا
می باشند انجام می گیرند. این نکته قابل توجه است که میزان تمرکز روی
جریانهای کاری در هر تکرار متفاوت است .
در هر تکرار ، توسعه دهندگان
خواسته ها مربوطه را شناسایی و مشخص میکنند ، آنها را با استفاده از
راهنماییهایی که معماری انتخاب ش
مطالب مشابه :
دانلود پروژه مهندسی نرم افزار 2
پروژه مهندسی نرم افزار. تجزیه وتحلیل آژانس هواپیمایی. توضیح : هدف از طراحی این پروژه این است
نمونه سوال مهندسی نرم افزار2
نمونه سوال مهندسی نرم افزار2. 5.يكي از مخرب ترين جنبه هاي هر پروژه ي نرم افزار
فرایند نرم افزار و معیارهای پروژه
مهندسی نرم نرم افزار2 كارآمد بودن فرايند و پروژه هاي نرم افزاري بينش پيدا
نمونه سوال مهندسی نرم افزار2
مدیریت و کنترل پروژه های فناوری نمونه سوال مهندسی نرم افزار2. نمونه سوال مهندسی نرم افزار2.
مجموعه کتاب های مورد نیاز رشته مهندسی صنایع
وبلاگ تخصصی مهندسی صنایع- جزوه- نرم افزار- کلاسهای آموزشی کنترل پروژه، تالیف:
نمونه سوال مهندسی نرم افزار2
مدیریت و کنترل پروژه های مهندسی نرم افزار2. نیاز برای تایید مهندسی نرم افزار
عدم تشکیل کلاس مهندسی نرم افزار
افق مهندسی نرم افزار نمونه سوال مهندسی نرم افزار2. زمان تحویل پروژه.
بررسي و شناخت متدولوژي RUP
افق مهندسی نرم مهندسی نرم افزار2. صحيح و موفق پروژه*هاي نرم افزاري مي*باشد كه
چرخه حيات نرم افزار
بررسی مباحث جدید در اصول مهندسی نرم نمونه سوال مهندسی نرم افزار2. كليه پروژه هاي نرم
برچسب :
پروژه مهندسی نرم افزار2