Rational Unified Process1
چه چیز میتواند یک پروسه تولید نرمافزار را توصیف کند؟ آیا منظور از پروسه، آمادهسازی نرمافزار صرفاً برای ارائه در بازار است؟ مسلماً در هر کاری وجود یک سامانه و فرایند کاری ضروری است؛ ولی چه چیزی میتواند موجب ایجاد سرعت و کیفیت در فرایند تولید یک نرمافزارشود؟ لزوماً طراحی و پیادهسازی یک فرایند یکپارچه و منطقی میتواند چنین نتیجهای در بر داشته باشد. بدین منظور امروزه از روشی استفاده میشود که اصطلاحاً RUP نامیده میشود. به حداقل رساندن حجم پروسه تولید یک نرمافزار همزمان با حفظ کیفیت و صرفهجویی در زمان از مهمترین ویژگیهای این روش میباشند. معمولاً برای یک شرکت تولید نرمافزار، سرعت عمل به موقع برای پاسخگویی به تقاضا و شرایط اجتماعی اهمیت دارد، اما گاهی این شتابزدگی سبب فدا شدن کیفیت میگردد. RUP با ارائه یک چارچوب منطقی علاوه بر تعیین زمانبندی مناسب، کیفیت مورد نظر تولید کننده و استفاده کننده نرمافزار را تأمین می نماید. در این مقاله ضمن مروری بر RUP به عنوان روش یکپارچه تولید نرمافزار، قابلیتهای آن در افزایش سرعت تولید نرمافزار و حفظ کیفیت آن برشمرده میشوند.
مقدمه
یک پروسه چابک، پروسهای است که همیشه آماده در آغوش کشیدن درخواستهای جامعه بوده و این درجه از سازگاری را دارا باشد. بنابراین منظور از سرعت عمل، فقط کاستن از حجم پروسه تولید نرمافزار یا سرعت ارائه آن به بازار نیست؛ بلکه منظور، انعطافپذیری و حفظ کیفیت است. مطلبی که در این مقاله قصد توضیح آن را داریم این است که RUP 1 ساختاری پروسهای (چیو 2000) است که امکان انعطافپذیری را برای تولیدکنندگان نرمافزار فراهم میآورد.
منظور از RUP چیست؟ در این مقاله از چند منظر به RUP خواهیم پرداخت:
RUP یک پروسه تولید نرمافزار است.
RUP مجموعهای از تجربیات بسیار عالی تولید نرمافزار را که در عمل با آنها برخورد شده است، در خود دارد.
RUP همانند یک محصول نرمافزاری به بازار ارائه شده و به فروش می رسد با این تفاوت که RUP اولین ساختار تولید نرمافزار را ارائه داده و گام نخست را در این زمینه برداشته است.
RUP چیست؟
با پیشرفت تکنولوژیهای مرتبط با کامپیوتر، نیاز هر چه بیشتر به گسترش علم نرمافزاری نیز احساس می شد که با پیدایش متدولوژیهای همانند SSADM 2 و روش آبشاری3 (چیو 2000) آغاز شد. در ابتدا، این روشها مناسب بود و جوابگوی نیازهای آن زمان بودند ولی با افزایش دادهها و پیدایش مفاهیمی همچون شبکه، وب و غیره دیگر کارآیی لازم را جهت پیادهسازی و هدایت پروژههای نرمافزاری نداشتند. پس مفاهیم برنامهنویسی شیءگرا پا به عرصه وجود گذاشتند و در سال 1991 بطور جدی مورد مطالعه و بحث قرار گرفتند. استفاده از این روشها و متدهای برنامهنویسی، قدرت و انعطاف بسیاری را به برنامهها داد و شرکتهای نرمافزاری توانستند با کاهش هزینهها و بهینهسازی کدهای خود، نرمافزارهای قویتری را به بازار عرضه کنند ولی این روش جدید نیز نیاز به مدیریت و یکپارچگی داشت. پس روشها و متدولوژیهای جدیدی مطرح شد که شامل Booch، OMT، OSE و ... می باشند. در سال 2000 شرکت Rational روشی را تحت عنوان RUP مطرح ساخت (گروه کاسمیک 2003ب) که بعد از روش MSF شرکت مایکروسافت به دنیای نرمافزار عرضه شد و امروزه از طرفداران بسیاری برخوردار است. فرایند یکپارچه Rational در اصل یک متدولوژی است که در جهت کنترل و انجام پروژههای نرمافزاری در نظر گرفته شده است. در اصل این چارچوبی در جهت انجام صحیح و موفق پروژههای نرمافزاری می باشد که کلیه مراحل انجام یک پروژه که با معماری و آنالیز سازمان شروع شده و به تست نرمافزار و ارائه Gold Release ختم می شود را در بر میگیرد (گروه کاسمیک 2003 الف).
چرا RUP را یک فرآیند یکپارچه میگویند؟ به سه علت RUP را یکپارچه مینامند:
این متدولوژی از یکپارچهسازی سه متدولوژی معروف دیگر بوجود آمده است که شامل Booch، OMT و OSE میباشد.
از UML در جهت کارهای خود استفاده میکند. در واقع میتوان گفت UML خود ثمره RUP می باشد و این خود بسیار خوب است که متدولوژیی با خودش گسترش یابد (گروه کاسمیک 2003الف). مفاهیمی از قبیل Object، Class و ... مفاهیم ساده و ثابتی هستند ولی قبلاً متدولوژیها علامتهای خاصی داشتند که اکنون همه آنها یکسان شدهاند.
در داخل RUP یک چارچوب تولید نرمافزار است که ما آنرا برای سازمان و پروژه خود بومی میکنیم و می توان گفت که در واقع یک قالب فرآیند5 است.
Rup شامل 4 فاز می باشد و اگر در هر لحظه به آن نگاه کنیم شامل 9 قالب خواهد بود.
این فرآیند یک روش نظاممند برای تخصیص کارها و مسئولیتها در یک تیم توسعه نرمافزار ارائه می دهد و هدف آن تولید نرمافزار بصورت بهینه و با کیفیت بالاست که بتواند نیازهای کارفرما را تحت یک برنامه زمانی مشخص و با بودجه قابل پیشبینی برآورده سازد. آر.یو.پی بهرهوری تیم تولید نرمافزار را با فراهم نمودن دسترسی تمام افراد تیم به یک پایگاه دانش سهلالوصول به همراه راهنماها، الگوها و ابزارهای کمکی برای همه فعالیتهای حیاتی توسعه، افزایش میدهد. از آنجا که تمام افراد به منابع یکسانی دسترسی دارند، لذا دید مشترکی برای توسعه نرمافزار برخوردار هستند.
آر.یو.پی امکان استفاده موثرتری از زبان یکپارچه مدلسازی (UML) را فراهم میسازد (دقت شود که در عین حال آر.یو.پی و یو.ام.ال کاملاً مستقل از یکدیگر هستند و نباید آنها را با هم یکی فرض کنیم). به کمک تکنیک های آر.یو.پی بخشهای عمدهای از فرآیند تولید نرمافزار به طور خودکار انجام شده و همچنین استفاده از مدلهای تولید شده در فرآیندهای گذشته در پروژههای جاری به سادگی امکانپذیر است. این فرآیند با موقعیتهای مختلف تطبیق یافته و برای سازمانهای بزرگ یا حتی کوچک تولید و توسعه نرمافزار قابل استفاده است.
آر.یو.پی کلیه مراحل انجام یک پروژه شامل تحلیل سیستم، برنامهریزی، بررسی ریسکها، تولید و تست نرمافزار را در بر می گیرد و چهارچوبی در جهت انجام صحیح و موفق پروژههای نرم افزاری فراهم میسازد.
چرا آر.یو.پی را یکپارچه نامیدهاند:
1. این فرآیند از ترکیب و یکپارچهسازی چند فرآیند و متدولوژی شامل Booch، OMT و OSE دیگر ایجاد شده است.
2. از زبان یکپارچه مدلسازی (UML) به طور موثری بهره میگیرد.
3. مفاهیمی نظیر کلاس و شیء در متدهای قبلی علائم خاص و مختلفی داشتهاند حال آنکه در آر.یو.پی یکسان شدهاند.
حرفه ها وتخصص ها
به منظور بررسی(شناخت،آنالیز، نیاز سنجی،طراحی، پیاده سازی و...)فرایندهای یک سازمان یا یک تیم کاری حرفه ها و تخصص های مختلفی بکار میروند که در بکار گیری آنها عوامل زیر مؤثر می باشد:
ـ تنوع حوزه کاری سازمان یا تیم کاری
هر چه حوزه فعالیت های مورد بررسی وسیعتر باشد ونوع کارها متفاوت تر باشد تخصص های بررسی کننده نیاز بایستی متنوع تر باشند.از طرفیتخصص ها و دانشهایی که در مورد کلیت فعالیت ها و پروسه ها اظهار نظر می نماید نیز وابسته به تنوع حوزه فعالیت پروسه های مورد مطالعه می باشند.از نظر تعداد اعضا شرکت کننده در تیم امکان سنجی،نیاز سنجی،طراحی،پیاده سازی نیز بستگی به تنوع حوزه کاری مورد مطالعه دارد.
ـمیزان شناخت و متعاقب آن تغییرات مورد انتظار در سیستم
سازمان ها و تیم های کاری با اهداف مختلفی به مطالعه وامکان سنجی پروسه های خود می پردازند عمده این اهداف عبارتند از:
*شناخت ساختار و مدل ایستای سازمان یا تیم کاری مو جود یا در حال شکل گیری.
*شناخت(ایجاد شناسنامه) پروسه های موجود/در حال شکل گیری/امکان کشف در سازمان یا تیم کاری.
*شناخت روشها و متد های مدیریت پروژه بهینه.
*شناخت مستندات جاری یا در حال شکل گیری سازمان یا تیم کاری ودر نهایت بززسی گردش اسناد.
*شناخت گردش کار پروسه های موجود(DFD)
*شناخت موجودیت های سیستم و رسیدن به ERD متناسب با ساختار سیستم.
*شناخت مدل کامل سیستم که بیانگر وضعیت جاری/مناسب/مورد نظر باشد.
*زسیدن به مدلی که در طراحی سیستم کارا/قابل اطمینان/معقول و مقرون/ راحت و متناسب(اصول مهندسی نرم افزار) مؤثر باشد.
*رسیدن به مدلی که در پیاده سازی سیستم کارا/ قابل اطمینان/معقول و مقرون/ راحت و متناسب(اصول مهندسی نرم افزار) مؤثر باشد.
با توجه به اهداف نوع تخصص و سطح خروجی تخصص که همان پیشنهاد های مؤثر برای ابقا/ تغییر/ایجاد سیستم جایگزین برای سیستم جاری می باشد، مشخص می گردد.می توان گفت خروجی تخصص می تواند یکی از موارد زیر باشد:
_ مستندات واقعی/ استاندارد/ بهینه سیستم موجود یا در حال شکل گیری
_ ابزار های کمکی مؤثر در بهبود/ ایجاد سیستم موجود یا در حال شکل گیری
_ سیستم کاملاً جدید که در حوزه موضوع مورد نظر ایفای نقش خواهد کرد
_ پیشنهادات دستورالعملی ، سازمانی،آیین نامه ای و... برای سیستم موجود یا در حال شکل گیری
در انتخاب نوع خروجی باید موارد پیشنهادی را بر اساس( شاخص گذاری/ در نظر داشتن)موارد زیر ارائه کرد:
_ فرهنگ کاری و مسائل محیطی
_ میزان هزینه و منابع مورد نیاز دیگر مانند زمان
_ میزان انعطاف پذیری و علاقه مندی به تغییر
و.......
- سطح فن آوری و تکنیکی بکار رفته در شناخت و تغییر
در فاز امکان سنجی و کشف نیازمند یها وآنالیز:
OOPیا SSADM ؟
در فازطراحی سیستم جدید:
Tier3 یا؟
در فاز پیاده سازی و گذار به سیستم جدید:
Desktop یا Client/Server یا Web Base یا توزیعی؟چند کاره ؟ در چه محدوده هایی؟ با چه امنیتو سطح دسترسی؟
خصوصیات RUP چیست؟
RUP مبتنی بر نوعی معماری است که به اجزاء اصلی میپردازد ولی طراحی به جزئیات نیز وارد میشود. همچنین میتوان گفت معماری یکسری اجزا و ارتباط بین آنها است که سیستم را میسازد و ما را به سمت توسعه مؤلفهمحور6 راهنمایی میکند.
ویژگی Usecase Driven: یکی از مشکلات OOA این بود که میگفتند با هر روشی تبدیل و کار کنند و بعد بتوان آنرا به شیءگرا تبدیل کرد. یعنی مثلاً پروژه SSADM را طراحی کرده و بعداً به شیءگرا تبدیل نمود. ولی آن عقیده اشتباه بود و حتماً تحلیل شیءگرا باید صورت بگیرد. خصوصیت خوب شیءگرا که در دیگر روشها نمیباشد این است که نوتاسیونی که استفاده میشود (بوچ، رامباق و جاکوبسون 1999) در همه مراحل یکی است یعنی مفاهیمی از قبیل شیء، کلاس، روابط کلاسها و ... در تمامی مراحل یکی است. اهمیتی که Usecase Driven دارد این است که با زبان مشتری نوشته میشود. مشتری میتواند آنرا بفهمد و بسیار مناسب برای تشخیص نیازمندیهای سیستم میباشد. در بخش تحلیل و طراحی از روی Usecaseها تحلیل و طراحی انجام میدهیم و مسائلی مانند مدیریت پروژه نیز تحت تاثیر Usecaseها هستند که ما آنها را دستهبندی کرده و مدیریت میکنیم. همچنین راهنماهای سیستم هم تحت تاثیر Usecaseها (کراچتن 2000، 298) ایجاد میشوند.
ویژگی Incremental: به معنی آن است که پروژه بصورت چهار مرحله حلقهای جلو میرود ولی در هر مرحله چرخش یک دسته از Usecaseها کامل و آماده استفاده میشود و کلیه این کارها در 9 جریان کار7 که در شکل 1 مشخص شده بود، قابل مشاهده است.
دیدگاه اولیه درباره RUP
دیدگاهی که RUP بر اساس آن طراحی شده، به گونهای است که محدوده وسیعی از اهداف را پوشش دهد تا ضمانت اجرایی جهت انطباق با موارد زیر حاصل شود (کراچتن 2003):
ابعاد پروژه
حوزه کاربردی برنامه (سیستمهای تجاری یا سیستمهای فنی)
زمینههای تجارت (توسعه خانگی، توسعه محصولات، فروشندگان نرمافزار مستقل، توسعه قراردادی).
همانند هر ساختار پروسه دیگری، RUP نیز روش سیستماتیکی را برای به دست آوردن، سازماندهی و ارائه راهکارهای مهندسی نرمافزار در اختیارتان قرار میدهد. RUP برای سازماندهی راهکارها، بر یک مدل پروسه ساده و کاملاً زیربنایی استوار شده است که توضیح این امر در قالب چند مقاله یا کتاب نمیگنجد.
با این وجود، ساختار پروسه مزبور را نمیتوان به یک ظرف خالی تشبیه نمود. این ساختار از قبل توسط حجم عظیمی از پروسههای راهکاری که قبلاً در پانزده سال گذشته توسط ملیتهای مختلف تحصیل شده است و با شرکت Rational ارتباط داشتهاند (افرادی که قبلاً این شرکت آنها را به خود جذب کرده و برخی از شرکای این شرکت نظیر IBM ، HP و BEA (کراچتن 2003)) انباشته گردیده است. RUP مجموعه محدود و بستهای نیست که به منظور کاربردهای عمومی منتشر شده باشد و پاسخ یا راهحل تمامی مشکلات توسعه نرمافزاری را دربرگیرد؛ بلکه ساختار RUP ساختار بازی است که به منظور استنتاج باید شاخههای آنرا دنبال کنید و این ساختار سالانه دوبار روزآمد میگردد. ساختار RUP تصفیه شده است و پشتیبانی ابزاری و مندرجات آن نیز توسعه یافتهاند.
از یک سو، گروه توسعه پروسه شرکت Rational، امر به روز سازی محتویات RUP را همگام با مقتضیات فنآوری و بازخوردهایی که کاربران این ساختار ارائه میدهند، به عهده دارند و از سوی دیگر شرکای متعدد این شرکت و افرادی که RUP را برای استحصال و سازماندهی فرایندهای راهکاری خود پذیرفتهاند و از آن برای اهداف مربوط به خود استفاده میکنند، ساختار ارائه شده توسط شرکت Rational را تبلیغ نموده و آنرا را تکمیل میکنند.
ساختار RUP پیرامون چند منطق ساده و مرتبط به هم سازماندهی شده است:
RUP نقشهایی را تعریف میکند که باید در پروسه وجود داشته باشد و بر مبنای آن، صلاحیتها، تخصصها و مسئولیتهای افرادی که باید پیشرفت پروژه را محقق سازند، مشخص میشود.
RUP کارهایی را که هر یک از افراد باید در عمل انجام دهند، به طور گام به گام تشریح میکند.
این عملیات با استفاده از ابزارهایی واقعی مانند مدلها، کدها، اسناد و گزارشها اداره میشوند.
در RUP به وفور با راهنماییهای مربوط به نقشهایی که افراد باید به عهده بگیرند، فعالیتهایی که باید انجام شوند و مصنوعات مورد نیاز برخورد خواهید نمود که در قالب خطوط راهنما، الگوها، مثالها و معلمهای ابزاری ارائه میشوند که چگونگی به وقوع پیوستن دستهای از فعالیتها توسط یک ابزار بخصوص را شرح میدهند.
تمامی این المانهای توصیف پروسه در قالب سامانههایی سازماندهی شدهاند.
اجازه بدهید مقایسهای انجام دهیم. اگر فرهنگ لغات مناسبی از 800 لغت را انتخاب کرده باشید، میتوانید در خیلی از نقاط دنیا و در بسیاری شرایط، گلیم خود را از آب بیرون بکشید؛ ولی با انتخاب فرهنگ لغات حجیمی چون Webster ، اولاً هیچکس شما را مجبور به استفاده از لغاتی که در فرهنگ لغات وجود دارد نمیکند، ثانیاً میتوانید سطح لغات محفوظی خود را برای انطباق با وضعیتهای مختلف ارتقا ببخشید و ثالثاً میتوانید فرهنگ لغات خود را بهبود دهید. فرهنگ لغت800 لغتی باید فقط زیرمجموعهای از یک فرهنگ لغات باشد.
انعطافپذیری RUP و انطباق با آن:
RUP یک اصل عقیدتی یا یک آیین مذهبی نیست. ساختار RUP ساختار خشکی نیست که بخواهد همه چیز را برای تولید نرمافزار در قالب خود درآورد. نیازی نیست که حداقل چهل نفر را برای تکمیل پروسهای که چهل نقش در آن تعریف شده است، به خدمت بگیرید و نیازی ندارید که بیش از صد محصول مختلف را پرورش دهید. اگر سعی خود را به انجام این کار معطوف سازید، خیلی زود در معرض آشفتگی قرار خواهید گرفت. این المانها در RUP و در فرم الکترونیکی (کراچتن 2003) برای فراهمآوردن انعطافپذیری مورد نیاز برای انطباق با تقاضایی ارائه شدهاند که به شرایط محیطی که درآن به سر میبرید، بستگی دارد.
RUP تمرینات تولید نرمافزار ثابت شده فراوانی را در بردارد. شرکت Rational میدان دید بالایی را برای موارد زیر، ارائه میدهد:
توسعه مکرر
مدلسازی بصری
مدیریت ملزومات تغییرات کنترل
بازبینی مداوم کیفیت
استفاده از معماری بر مبنای اجزا
همچنین URP بر مبنای دیگر اصول کلیدی دیگری که کمتر قابل مشاهده هستند و سادهتر به محاق فراموشی سپرده میشوند، استوار شده است که فقط برای یادآوری اشارهای به آنها مینماییم (جنر 2002):
منحصراً آنچه را که مورد نیاز است، پرورش دهید.
روی نتایج ارزشمند تمرکز کنید، نه روی چگونگی حصول نتایج
کاغذبازی را به حداقل برسانید.
انعطافپذیر باشید.
از اشتباهات خود عبرت بگیرید.
به طور منظم، مخاطرات محتمل را مورد بازبینی قرار دهید.
برای پروسه موردنظر معیارهای قابل اندازهگیری و علمی را بدون موضعگیری شخصی استوار کنید.
از گروههای کوچک و توانمند استفاده کنید.
طرحی را در ذهن داشته باشید.
ذهنیت کلیدی در سازگار شدن و سازگار کردن RUP قالب توسعه8 میباشد. یک قالب توسعه نمونهای از RUP است که برای پروژه ویژهای که مد نظرتان است، مناسب باشد. با مراجعه به ساختار RUP به توضیح پروسهای دست مییابید که موارد زیر را تعریف نموده و شناسایی میکند (جنر 2002):
چه چیزی توسعه داده خواهد شد؟
به چه مصنوعاتی واقعاً نیاز داریم؟
چه الگوهایی باید مورد استفاده قرار بگیرند؟
کدام مصنوعات در حال حاضر وجود دارند؟
به چه نقشهایی نیاز داریم؟
چه فعالیتهایی انجام خواهند شد؟
کدام خطوط راهنما، استانداردهای پروژه و ابزارهایی مورد استفاده قرار خواهند گرفت؟
فرآیند یکپارچه رشنال:
در فرهنگ مهندسی نرمافزار، فرآیند یکپارچهٔ رشنال یا آر.یو.پی. (Rational Unified Process و به اختصار: RUP) نام یک فرآیند توسعهٔ نرمافزار است که شرکت آیبیام آنرا تدوین کرده است. به طور خلاصه آر.یو.پی ارائه دهنده مجموعهای از روشها برای کمک به مدیریت دقیق بر روی مراحل طراحی و پیادهسازی نرمافزارهای رایانهای است. این فرآیند بستر مناسبی برای تولید و توسعه نرمافزار در اختیار تحلیلگران و طراحان سیستمهای رایانهای قرار میدهد.
مهمترین مزایای آر.یو.پی
تسهیل توسعه تکراری نرمافزار
مدیریت نیازها
مدل کردن تصویری نرمافزار
بازبینی کیفیت نرمافزار
کنترل تغییرات در نرمافزار
امکان استفاده از طریق وب
ویژگیهای آر.یو.پی
بر اساس یوزکیسها عمل میکند.(نیازهای کاربر از طریق یوزکیس بیان میشود)
اساس آن طراحی معماری سیستم است و سیستم تولید شده از معماری استواری برخوردار خواهد بود.
مبتنی بر تکرار است.
قابلیت استفاده مجدد را فراهم میسازد زیرا پروژه به قطعات کوچک تقسیم و انجام میشود.
http://www.parsianstar.com/2010-04-01-09-50-22/40-downlod-computer/158-rational-unified-process
آخرین محصولات
|
|
|
||||||
|
|
|
||||||
|
|
|
مقالات
برنامه نویسی و پایگاه های داده نرم افزارهای تحت وب نرم افزارهای کامپیوتر موتورهای جستجو و بهینه سازی سایت شبکه ، سرور و میزبانی وب سخت افزار و قطعات کامپیوتر گرافیک ، انیمیشن و تدوین وسایل صوتی و تصویری امنیت ، هک ، کرک اینترنت آموزش ها لینک ها تستاخبار
اخبار دنیای رایانه در ایران اخبار دنیای رایانه در جهان اخبار اینترنت در جهان اخبار اینترنت در ایران اخبار امنیت و هک وب سایت های ایرانیآخرین محصولات
|
|
ویدئو پروژکتور اپسون Epson EB-445Wi
قیمت: 1 ﷼ |
|
|
تدی Teddy
قیمت: 1 ﷼ |
|
|
پاندا Panda
قیمت: 1 ﷼ |
|
|
موش Mouse
قیمت: 1 ﷼ |
|
|
ببر سیاه Black Panther
قیمت: 1 ﷼ |
| محصولات جدید | |
ورود كاربر
آمار
بازدید كننده: 971713رأی گیری
تبادل لینک فقط با پیج رنک 4 و 5: پنل اس ام اس | ایران تجارت | موبایل | بهترین سایت تفریحی دنیا | دانلود | ایران سیتی | دانلود | آگهی رایگان شیراز تجارت | پرتال آی تی مگ | دانلود کامل | آرشیو فیلم های آموزش کامپیوتر | دانلود رایگان | مقالات دانشجویی | فروشگاه اینترنتی | سایت تفریحی دیف دیفی | دانلود پروژه و نرم افزار | سایت فرهنگی سیناکو | پرشین رکس | عکس | سایت درج آگهی و تبلیغات |
منتظر برای تایید: عکس |



0 نظر
هیچ نظری وجود ندارد. اولین نفر برای نظر دهی به این مقاله باشید!