مروري بر RUP و قابليت‌هاي آن در توليد نرم‌افزار

يك پروسه چابك، پروسه‌اي است كه هميشه آماده در آغوش كشيدن درخواستهاي جامعه بوده و اين درجه از سازگاري را دارا باشد. بنابراين منظور از سرعت عمل، فقط كاستن از حجم پروسه توليد نرم‌افزار يا سرعت ارائه آن به بازار نيست؛ بلكه منظور، انعطاف‌پذيري و حفظ کيفيت است. مطلبي كه در اين مقاله قصد توضيح آن را داريم اين است
چهارشنبه، 21 ارديبهشت 1390
تخمین زمان مطالعه:
موارد بیشتر برای شما
مروري بر RUP و قابليت‌هاي آن در توليد نرم‌افزار

مروري بر RUP و قابليت‌هاي آن در توليد نرم‌افزار
مروري بر RUP و قابليت‌هاي آن در توليد نرم‌افزار


 

نويسنده: حجازي، سيد عليرضا




 
چكيده: چه چيز مي‌تواند يك پروسه توليد نرم‌افزار را توصيف كند؟ آيا منظور از پروسه، آماده‌سازي نرم‌افزار صرفاً براي ارائه در بازار است؟ مسلماً در هر كاري وجود يك سامانه و فرايند كاري ضروري است؛ ولي چه چيزي مي‌تواند موجب ايجاد سرعت و كيفيت در فرايند توليد يك نرم‌افزارشود؟ لزوماً طراحي و پياده‌سازي يك فرايند يكپارچه و منطقي مي‌تواند چنين نتيجه‌اي در بر داشته باشد. بدين منظور امروزه از روشي استفاده مي‌شود كه اصطلاحاً RUP ناميده مي‌شود. به حداقل رساندن حجم پروسه توليد يك نرم‌افزار همزمان با حفظ كيفيت و صرفه‌جويي در زمان از مهمترين ويژگي‌هاي اين روش مي‌باشند. معمولاً براي يك شركت توليد نرم‌افزار، سرعت عمل به موقع براي پاسخ‌گويي به تقاضا و شرايط اجتماعي اهميت دارد، اما گاهي اين شتابزدگي سبب فدا شدن كيفيت مي‌گردد. RUP با ارائه يك چارچوب منطقي علاوه بر تعيين زمانبندي مناسب، كيفيت مورد نظر توليد كننده و استفاده كننده نرم‌افزار را تأمين مي‌نمايد. در اين مقاله ضمن مروري بر RUP به عنوان روش يكپارچه توليد نرم‌افزار، قابليت‌هاي آن در افزايش سرعت توليد نرم‌افزار و حفظ كيفيت آن برشمرده مي‌شوند.

1- مقدمه
 

يك پروسه چابك، پروسه‌اي است كه هميشه آماده در آغوش كشيدن درخواستهاي جامعه بوده و اين درجه از سازگاري را دارا باشد. بنابراين منظور از سرعت عمل، فقط كاستن از حجم پروسه توليد نرم‌افزار يا سرعت ارائه آن به بازار نيست؛ بلكه منظور، انعطاف‌پذيري و حفظ کيفيت است. مطلبي كه در اين مقاله قصد توضيح آن را داريم اين است كه RUP 1 ساختاري پروسه‌اي (چيو 2000) است كه امكان انعطاف‌پذيري را براي توليد‌كنندگان نرم‌افزار فراهم مي‌آورد.
منظور از RUP چيست؟ در اين مقاله از چند منظر به RUP خواهيم پرداخت:
RUP يك پروسه توليد نرم‌افزار است.
RUP مجموعه‌اي از تجربيات بسيار عالي توليد نرم‌افزار را كه در عمل با آنها برخورد شده است، در خود دارد.
RUP همانند يك محصول نرم‌افزاري به بازار ارائه شده و به فروش مي‌رسد با اين تفاوت كه RUP اولين ساختار توليد نرم‌افزار را ارائه داده و گام نخست را در اين زمينه برداشته است.

2- RUP چيست؟
 

با پيشرفت تكنولوژي‌هاي مرتبط با كامپيوتر، نياز هر چه بيشتر به گسترش علم نرم‌افزاري نيز احساس مي‌شد كه با پيدايش متدولوژيهاي همانند SSADM 2 و روش آبشاري3 (چيو 2000) ‎آغاز شد. در ابتدا، اين روشها مناسب بود و جوابگوي نيازهاي آن زمان بودند ولي با افزايش داده‌ها و پيدايش مفاهيمي همچون شبكه، وب و غيره ديگر كارآيي لازم را جهت پياده‌سازي و هدايت پروژه‌هاي نرم‌افزاري نداشتند. پس مفاهيم برنامه‌نويسي شيءگرا پا به عرصه وجود گذاشتند و در سال 1991 بطور جدي مورد مطالعه و بحث قرار گرفتند. استفاده از اين روشها و متدهاي برنامه‌نويسي، قدرت و انعطاف بسياري را به برنامه‌ها داد و شركتهاي نرم‌افزاري توانستند با كاهش هزينه‌ها و بهينه‌سازي كدهاي خود، نرم‌افزارهاي قويتري را به بازار عرضه كنند ولي اين روش جديد نيز نياز به مديريت و يكپارچگي داشت. پس روشها و متدولوژيهاي جديدي مطرح شد كه شامل Booch، OMT، OSE و ... مي‌باشند. در سال 2000 شركت Rational روشي را تحت عنوان RUP مطرح ساخت (گروه كاسميك 2003ب) كه بعد از روش MSF شركت مايكروسافت به دنياي نرم‌افزار عرضه شد و امروزه از طرفداران بسياري برخوردار است. فرايند يكپارچه Rational در اصل يك متدولوژي است كه در جهت كنترل و انجام پروژه‌هاي نرم‌افزاري در نظر گرفته شده است. در اصل اين چارچوبي در جهت انجام صحيح و موفق پروژه‌هاي نرم‌افزاري مي‌باشد كه كليه مراحل انجام يك پروژه كه با معماري و آناليز سازمان شروع شده و به تست نرم‌افزار و ارائه Gold Release ختم مي‌شود را در بر مي‌گيرد (گروه كاسميك 2003 الف).
چرا RUP را يک فرايند يکپارچه مي‌گويند؟ به سه علت RUP را يكپارچه مي‌نامند:
اين متدولوژي از يكپارچه‌سازي سه متدولوژي معروف ديگر بوجود آمده است كه شامل Booch، OMT و OSE مي‌باشد.
از UML4 در جهت كارهاي خود استفاده مي‌كند. در واقع مي‌توان گفت UML خود ثمره RUP مي‌باشد و اين خود بسيار خوب است كه متدولوژيي با خودش گسترش يابد (گروه كاسميك 2003الف). مفاهيمي از قبيل Object، Class و ... مفاهيم ساده و ثابتي هستند ولي قبلاً متدولوژيها علامتهاي خاصي داشتند كه اكنون همه آنها يكسان شده‌اند.
در داخل RUP يك چارچوب توليد نرم‌افزار است كه ما آنرا براي سازمان و پروژه خود بومي مي‌كنيم و مي‌توان گفت كه در واقع يك قالب فرايند5 است.
شكل 1 ساختار اصلي RUP را مشخص مي‌كند. اگر در بعد زمان به آن نگاه كنيم شامل 4 فاز مي‌باشد و اگر در هر لحظه به آن نگاه كنيم شامل 9 قالب خواهد بود.
شکل 1. ساختار اصلي RUP

3- خصوصيات RUP چيست؟
 

RUP مبتني بر نوعي معماري است كه به اجزاء اصلي مي‌پردازد ولي طراحي به جزئيات نيز وارد مي‌شود. همچنين مي‌توان گفت معماري يكسري اجزا و ارتباط بين آنها است كه سيستم را مي‌سازد و ما را به سمت توسعه مؤلفه‌محور6 راهنمايي مي‌كند.
ويژگي Usecase Driven: يكي از مشكلات OOA اين بود كه مي‌گفتند با هر روشي تبديل و كار كنند و بعد بتوان آنرا به شيءگرا تبديل كرد. يعني مثلاً پروژه SSADM را طراحي كرده و بعداً به شيءگرا تبديل نمود. ولي آن عقيده اشتباه بود و حتماً تحليل شيءگرا بايد صورت بگيرد. خصوصيت خوب شيءگرا كه در ديگر روشها نمي‌باشد اين است كه نوتاسيوني كه استفاده مي‌شود (بوچ، رامباق و جاكوبسون 1999) در همه مراحل يكي است يعني مفاهيمي از قبيل شيء، كلاس، روابط كلاسها و ... در تمامي مراحل يكي است. اهميتي كه Usecase Driven دارد اين است كه با زبان مشتري نوشته مي‌شود. مشتري مي‌تواند آنرا بفهمد و بسيار مناسب براي تشخيص نيازمنديهاي سيستم مي‌باشد. در بخش تحليل و طراحي از روي Usecaseها تحليل و طراحي انجام مي‌دهيم و مسائلي مانند مديريت پروژه نيز تحت تاثير Usecaseها هستند كه ما آنها را دسته‌بندي كرده و مديريت مي‌كنيم. همچنين راهنماهاي سيستم هم تحت تاثير Usecaseها (كراچتن 2000، 298) ايجاد مي‌شوند.
ويژگي Incremental: به معني آن است که پروژه بصورت چهار مرحله حلقه‌اي جلو مي‌رود ولي در هر مرحله چرخش يك دسته از Usecaseها كامل و آماده استفاده مي‌شود و كليه اين كارها در 9 جريان كار7 كه در شكل 1 مشخص شده بود، قابل مشاهده است.

4- ديدگاه اوليه درباره RUP
 

ديدگاهي كه RUP بر اساس آن طراحي شده، به گونه‌اي است كه محدوده وسيعي از اهداف را پوشش دهد تا ضمانت اجرايي جهت انطباق با موارد زير حاصل شود (كراچتن 2003):
ابعاد پروژه
حوزه كاربردي برنامه (سيستمهاي تجاري يا سيستمهاي فني)
زمينه‌هاي تجارت (توسعه خانگي، توسعه محصولات، فروشندگان نرم‌افزار مستقل، توسعه قراردادي).
همانند هر ساختار پروسه‌ ديگري، RUP نيز روش سيستماتيكي را براي به دست آوردن، سازماندهي و ارائه راهكارهاي مهندسي نرم‌افزار در اختيارتان قرار مي‌دهد. RUP براي سازماندهي راهكارها، بر يك مدل پروسه‌ ساده و کاملاً زيربنايي استوار شده است كه توضيح اين امر در قالب چند مقاله يا كتاب نمي‌گنجد.
با اين وجود، ساختار پروسه مزبور را نمي‌توان به يك ظرف خالي تشبيه نمود. اين ساختار از قبل توسط حجم عظيمي از پروسه‌هاي راهكاري كه قبلاً در پانزده سال گذشته توسط مليت‌هاي مختلف تحصيل شده است و با شركت Rational ارتباط داشته‌‌اند (افرادي كه قبلاً اين شركت آنها را به خود جذب كرده و برخي از شركاي اين شركت نظير IBM ، HP و BEA (كراچتن 2003)) انباشته گرديده‌ است. RUP مجموعه محدود و بسته‌اي نيست كه به منظور كاربردهاي عمومي منتشر شده باشد و پاسخ يا راه‌حل تمامي مشكلات توسعه نرم‌افزاري را دربرگيرد؛ بلكه ساختار RUP ساختار بازي است كه به منظور استنتاج بايد شاخه‌هاي آنرا دنبال كنيد و اين ساختار سالانه دوبار روزآمد مي‌گردد. ساختار RUP تصفيه شده است و پشتيباني ابزاري و مندرجات آن نيز توسعه يافته‌اند.
از يك سو، گروه توسعه پروسه شركت Rational، امر به روز سازي محتويات RUP را همگام با مقتضيات فن‌آوري و بازخوردهايي كه كاربران اين ساختار ارائه مي‌دهند، به عهده دارند و از سوي ديگر شركاي متعدد اين شركت و افرادي كه RUP را براي استحصال و سازماندهي فرايندهاي راهكاري خود پذيرفته‌اند و از آن براي اهداف مربوط به خود استفاده مي‌كنند، ساختار ارائه شده توسط شركت Rational را تبليغ نموده و آنرا را تكميل مي‌كنند.
ساختار RUP پيرامون چند منطق ساده و مرتبط به هم سازمان‌دهي شده است:
RUP نقشهايي را تعريف مي‌كند كه بايد در پروسه وجود داشته باشد و بر مبناي آن، صلاحيتها، تخصصها و مسئوليتهاي افرادي كه بايد پيشرفت پروژه را محقق سازند، مشخص مي‌شود.
RUP كارهايي را كه هر يك از افراد بايد در عمل انجام دهند، به طور گام به گام تشريح مي‌كند.
اين عمليات با استفاده از ابزارهايي واقعي مانند مدل‌ها، كدها، اسناد و گزارشها اداره مي‌شوند.
در RUP به وفور با راهنماييهاي مربوط به نقش‌هايي كه افراد بايد به عهده بگيرند، فعاليتهايي كه بايد انجام شوند و مصنوعات مورد نياز برخورد خواهيد نمود كه در قالب خطوط راهنما، الگوها، مثالها و معلمهاي ابزاري ارائه مي‌شوند كه چگونگي به وقوع پيوستن دسته‌اي از فعاليتها توسط يك ابزار بخصوص را شرح مي‌دهند.
تمامي اين المانهاي توصيف پروسه در قالب سامانه‌هايي سازماندهي شده‌اند.
RUP مقدماتي نه سامانه، بيش از چهل نقش و صد محصول را تعريف مي‌كند و حاوي بيش از هزار صفحه راهنما است. همچنين مي‌توانيد به پروسه‌هاي الحاقي متعددي كه وظايف و مندرجات بيشتري را به RUP اضافه مي‌كند، دسترسي پيدا كنيد. برخي از منتقدين RUP آنرا پروسه‌اي بسيار سنگين تصور نموده و آنرا به كرگدني تشبيه مي‌كنند كه توان انجام تعداد نامحدودي عمل غير معمول را براي شما فراهم مي‌آورد؛ با اين وجود نگاه ما به RUP همانند لوح باشكوهي از معارف است كه مي‌توانيد آنچه را كه نياز داريد، از داخل آن برگزينيد.
اجازه بدهيد مقايسه‌اي انجام دهيم. اگر فرهنگ لغات مناسبي از 800 لغت را انتخاب كرده باشيد، مي‌توانيد در خيلي از نقاط دنيا و در بسياري شرايط، گليم خود را از آب بيرون بكشيد؛ ولي با انتخاب فرهنگ لغات حجيمي چون Webster ، اولاً هيچ‌كس شما را مجبور به استفاده از لغاتي كه در فرهنگ لغات وجود دارد نمي‌كند، ثانياً مي‌توانيد سطح لغات محفوظي خود را براي انطباق با وضعيتهاي مختلف ارتقا ببخشيد و ثالثاً مي‌توانيد فرهنگ لغات خود را بهبود دهيد. فرهنگ لغت800 لغتي بايد فقط زيرمجموعه‌اي از يك فرهنگ لغات باشد.

5- انعطاف‌پذيري RUP و انطباق با آن
 

RUP يك اصل عقيدتي يا يك آيين مذهبي نيست. ساختار RUP ساختار خشكي نيست كه بخواهد همه چيز را براي توليد نرم‌افزار در قالب خود درآورد. نيازي نيست كه حداقل چهل نفر را براي تكميل پروسه‌اي كه چهل نقش در آن تعريف شده است، به خدمت بگيريد و نيازي نداريد كه بيش از صد محصول مختلف را پرورش دهيد. اگر سعي خود را به انجام اين كار معطوف سازيد، خيلي زود در معرض آشفتگي قرار خواهيد گرفت. اين المانها در RUP و در فرم الكترونيكي (كراچتن 2003) براي فراهم‌آوردن انعطاف‌پذيري مورد نياز براي انطباق با تقاضايي ارائه شده‌اند كه به شرايط محيطي كه درآن به سر مي‌بريد، بستگي دارد.
RUP تمرينات توليد نرم‌افزار ثابت شده فراواني را در بردارد. شركت Rational ميدان ديد بالايي را براي موارد زير، ارائه مي‌دهد:
توسعه مكرر
مدل‌سازي بصري
مديريت ملزومات تغييرات كنترل
بازبيني مداوم كيفيت
استفاده از معماري بر مبناي اجزا
همچنين URP بر مبناي ديگر اصول كليدي ديگري كه كمتر قابل مشاهده هستند و ساده‌تر به محاق فراموشي سپرده مي‌شوند، استوار شده است كه فقط براي يادآوري اشاره‌اي به آنها مي‌نماييم (جنر 2002):
منحصراً آنچه را كه مورد نياز است، پرورش دهيد.
روي نتايج ارزشمند تمركز كنيد، نه روي چگونگي حصول نتايج
كاغذبازي را به حداقل برسانيد.
انعطاف‌پذير باشيد.
از اشتباهات خود عبرت بگيريد.
به طور منظم، مخاطرات محتمل را مورد بازبيني قرار دهيد.
براي پروسه موردنظر معيارهاي قابل اندازه‌گيري و علمي را بدون موضع‌گيري شخصي استوار كنيد.
از گروه‌هاي كوچك و توانمند استفاده كنيد.
طرحي را در ذهن داشته باشيد.
ذهنيت كليدي در سازگار شدن و سازگار كردن RUP قالب توسعه8 مي‌باشد. يك قالب توسعه نمونه‌اي از RUP است كه براي پروژه ويژه‌‌اي كه مد نظرتان است، مناسب باشد. با مراجعه به ساختار RUP به توضيح پروسه‌اي دست‌ مي‌يابيد كه موارد زير را تعريف نموده و شناسايي مي‌كند (جنر 2002):
چه چيزي توسعه داده خواهد شد؟
به چه مصنوعاتي واقعاً نياز داريم؟
چه الگوهايي بايد مورد استفاده قرار بگيرند؟
كدام مصنوعات در حال حاضر وجود دارند؟
به چه نقش‌هايي نياز داريم؟
چه فعاليتهايي انجام خواهند شد؟
كدام خطوط راهنما، استانداردهاي پروژه و ابزارهايي مورد استفاده قرار خواهند گرفت؟
6- نتيجه گيري
از آنچه گذشت در مي‌يابيم اولاً در حال حاضر تنها روش توسعه نرم‌افزاري که مورد پذيرش در عرصه جهاني است، RUP مي‌باشد. ثانياً اين روش علاوه بر ساماندهي به فرايند توليد نرم‌افزار از دو بعد زمان و کيفيت، به لحاظ برخورداري از انعطاف‌پذيري بالا در صورت کاربرد و پياده سازي صحيح مي‌تواند سبب تسريع فرايند توليد و توسعه نرم‌افزار و تأمين کيفيت مورد نظر در نرم‌افزار گردد و نهايتاً اين که يکي از مهم ترين ويژگي‌هاي RUP اين است که قابليت توسعه و تغيير نرم‌افزار ها را بر اساس تغيير نيازهاي کاربران و نيز تغيير فناوري، از قبل پيش بيني نموده است.

پي نوشت ها :
 

1. Rational Unified Process
2. Structured System Analysis and Design Method
3. waterfall
4. Unified Modeling Language
5. Process Framework
6. Component Base Development (CBD)
7. workflow
8. Development case
 

مراجع
Booch, G., J. Rumbaugh and I. Jacobson. 1999. The Unified Modeling Language User Guide. Addison- Wesley.
COSMIC Group. 2003a. Valve Control System – Cosmic Group Case Study. École de technologie supérieure, Université du Québec, Montréal, Canada, January 25, 2003 version http://www.lrgl.uqam.ca/cosmic-ffp/casestudies/
COSMIC Group. 2003b. Rice Cooker – Cosmic Group Case Study. École de technologie supérieure, Université du Québec, Montréal, Canada, Janua ry 26, 2003 version http://www.lrgl.uqam.ca/cosmic-ffp/casestudies/
Jenner, M. 2002. Automation of Counting of Functional Size Using COSMIC-FFP in UML. 12th International Workshop on Software Measurement – IWSM 2002, Magdeburg, Germany, Oct. 7-9, 43-51.
Kruchten, P. 2000. The Rational Unified Process, an introduction. Addison Wesley.
Kruchten, P. 2003. The RUP platform. Montréal-SPIN . November, 33.
Schewe, K.D. 2000. UML: A Modern Dinosaur? A Critical Analysis of the Unified Modeling Language. Proc. 10th European-Japanese Conf. on Information Modeling and Knowledge Bases. Saariselk/Finland.

ارسالي از طرف کاربر محترم :sabamm



 



ارسال نظر
با تشکر، نظر شما پس از بررسی و تایید در سایت قرار خواهد گرفت.
متاسفانه در برقراری ارتباط خطایی رخ داده. لطفاً دوباره تلاش کنید.
مقالات مرتبط