RUP چیست ؟
RUP چیست ؟
RUP چیست ؟
معماری و ساختار كلی RUP
RUP ، متدولوژی ارائه شده توسط شرکت Rational ، پرکاربردترین فرآیند تولید و توسعه نرم افزاری در دنیای کنونی است و به عنوان یک استاندارد صنعتی بالفعل در دنیای IT پذیرفته شده است. به گزارش رویتر در سال 2001 میلادی بیش از ششصد هزار شرکت تولید کننده نرم افزار، از ابزارهای شرکت Rational استفاده می کردهاند که این تعداد کماکان هم در حال افزایش است. این متدولوژی، برای انواع پروژههای نرمافزاری در دامنههای مختلف ( مانند سیستمهای اطلاعاتی، سیستمهای صنعتی، سیستمهای بلادرنگ، سیستمهای تعبیه شده، ارتباطات راه دور، سیستمهای نظامی و ...) و در اندازههای متفاوت، از پروژههای بسیار کوچک (یک نفر در یک هفته) تا پروژههای بسیار بزرگ (چند صد نفر تولید کننده با پراکندگی جغرافیایی)، کاربرد دارد.
مزیت بزرگ این متدولوژی، استفاده از روش تکرار در تولید و مدیریت تولید نرمافزار است که این امر، امکان تولید مبتنی بر کاهش ریسک و مواجه با مشکلات اصلی در ابتدای کار و در نتیجه احتمال موفقیت بیشتر را فراهم میکند. از محاسن دیگر این متدولوژی مبنا قرار دادن نرمافزار و تولید یک معماری پایدار در ابتدای کار است، که در نتیجه امکان کشف مشکلات عمده ساختاری، تست و مجتمع سازی ممتد را از ابتدای کار فراهم میکند. از دیگر مزایای این روش این است که افراد تیم همزمان با پیشرفت پروژه، مطالب جدیدی فرا میگیرند و کیفیت فرآیند تولید نیز به طور مرتب افزایش مییابد.
همانطور كه در شكل بالا مشاهده میشود، RUP دارای دو بعد است:
1. محور افقی نشان دهندهی زمان است و با پیشرفت خود جنبههای چرخهی حیات فرآیند و فازهای RUP را نشان میدهد.
2. محور عمودی نمایانگر دیسیپلینهای RUP است كه فعالیتها را با استفاده از ماهیتشان به صورت منطقی دستهبندی میكند.
در هر فاز ممكن است یك یا چند تكرار وجود داشته باشد و در هر تكرار عملیات دیسپیلینهای مختلف انجام میگیرند
فازهای RUP
Inception (آغازین)
• بدست آوردن محدوده نرمافزاری پروژه و محدودیتهای آن كه شامل یك دید عملیاتی، معیار پذیرش و اینكه چه چیز باید در محصول باشد و چه چیز نباید باشد، میشود
• مشخص كردن Use-Case های اساسی سیستم، سناریوهای اصلی عملیات كه مسائل مربوط به طراحی اصلی را ایجاد میكند.
• نمایش و شاید توضیح حداقل یك معماری كاندیدا برای بعضی سناریوهای اصلی
• برآورد هزینه و زمان كلی برای كل پروژه
Elaboration (جزییات)
• اطمینان از اینكه معماری، نیازمندیها و طرحها به اندازهی كافی پایدارند و ریسكها به اندازهی كافی كاهش یافتهاند بطوریكه بتوان هزینه و زمانبندی لازم برای تكمیل تولید را پیشبینی كرد. برای اكثر پروژهها، گذر از این مرحلهی مهم مانند انتقال از یك عملیات سبك و سریع و با ریسك پایین به یك عملیات با هزینه و ریسك بالا همراه با اجبار سازمانی است.
• بیان همهی ریسكهای پروژه كه از نظر ساختاری اهمیت دارند.
• ایجاد یك معماری پایه، مشتق شده از سناریوهای مهم كه از لحاظ ساختاری اهمیت دارند، كه این معماری ریسكهای فنی عمده پروژه را نیز مشخص میكند.
• تولید یك نمونهی اولیهی تكاملی از مولفههای با كیفیت تولیدی خوب، و همچنین یك یا چند نمونهی اولیهی اكتشافی و نمونههای اولیهی غیر قابل استفاده جهت كاهش ریسكهای خاص مانند :
o سازشهای مربوط به نیازمندیها یا طراحی
o استفادهی مجدد از مؤلفهها
o عملی بودن محصول یا توضیحات برای سرمایه گذاران، مشتریان و كاربران نهایی
• توضیح اینكه معماری پایه از نیازمندیهای سیستم با هزینهی منطقی و در زمان منطقی پشتیبانی میكند
• ایجاد یك محیط پشتیبانی كننده
Construction (ساخت)
• كمینه كردن هزینههای تولید با بهینهسازی منابع و پرهیز از دور انداختن و دوبارهكاری غیر ضروری
• دستیابی هرچه سریعتر به كیفیت كافی
• دستیابی هر جه سریعتر به ویرایشهای مفید (آلفا، بتا و سایر نسخههای تست)
• كامل كردن تحلیل، طراحی، تولید و تست كارآیی مورد نیاز
• تولید تكراری و گام به گام یك محصول كامل كه آمادهی انتقال به محیط كاربران باشد
• تصمیم در مورد اینكه آیا نرمافزار، سایتها و كاربران همه برای استقرار طرح آمادگی دارند
• دستیابی به میزانی از موازی سازی در كار تیمهای تولید
Transition (انتقال)
• تست بتا برای تشخیص اعتبار سیستم جدید با توجه به انتظارات كاربر
• تست بتا و عملیات موازی همراه با یك سیستم قدیمی كه در حال جایگزینی میباشد.
• تبدیل پایگاههای دادهی عملیاتی
• آموزش كاربران و نگهداری كنندگان
• بازاریابی، توزیع و فروش برای نخستین انتشار محصول
• تنظیم فعالیتها از قبیل رفع اشكال، افزایش كارایی و قابلیت استفاده
• ارزیابی خط مبناهای استقرار در مقایسه با تصویر كلی و معیار قابلیت قابل قبول برای محصول
• دستیابی به موافقت ذینفع در مورد اینكه خط مبناهای استقرار كامل میباشند
• دستیابی به موافقع ذینفع در مور اینكه خط مبناهای استقرار با معیار ارزیابی تصویر كلی سازگارند
دیسیپلینهای RUP
Business Modeling (مدلسازی كسب و كار)
• شناخت ساختار و دینامیكهای سازمانی كه در آن یك سیستم باید استقرار یابد(سازمان هدف.)
• شناخت مشكلات فعلی در سازمان هدف و تشخیص پتانسیلهای بهبود
• تضمین اینكه مشتری، كاربر نهایی و تولید كنندگان یك شناخت مشترك از سازمان هدف دارند.
• هدایت نیازمندیهای سیستم كه برای حمایت از سازمان هدف مورد نیازند.
• دیسیپلین مدلسازی كسب و كار توضیح میدهد كه برای رسیدن به این هدف چگونه میتوان یك تصویر كلی از سازمان را تولید نمود، و براساس این تصویر كلی فرآیندها، نقشها و مسؤولیتهای آن سازمان را در یك مدل Use-case كسب وكار و یك مدل شیء كسب و كار تعریف كرد
Requirements (نیازمندیها)
• تشخیص و نگهداری موارد توافق با مشتریها و سایر ذینفعان در مورد كارهایی كه سیستم باید انجام دهد.
• فرآهم آوردن شناخت بهتر از نیازمندیهای سیستم برای تولید كنندگان سیستم
• تعریف مرزهای و حدود سیستم
• فراهم كردن یك پایه برای طرح ریزی مفاهیم تكنیكی تكرارها
• فراهم كردن یك پایه برای تخمین مخارج و زمان تولید سیستم
• تعریف یك واسط كاربر برای سیستم با تمركز بر روی نیازها واهداف كاربران
برای دستیابی به این اهداف، ابتدا فهم تعریف و محدودهی مسألهای كه سعی داریم با این سیستم آن را حل كنیم، حائز اهمیت میباشد. قوانین كسب و كارف مدل Use-Case كسب و كار و مدل شیء كسب و كار كه در طول مدلسازی كسب و كار تولید شده به عنوان ورودی با ارزشی برای این تلاش خواهند بود. در این راستا ذینفعان تشخیص داده میشوند و درخواستهای ذینفعان استخراج، جمعآوری و تجزیه و تحلیل میشوند. یك مستند تصویر كلی، یك مدل Use-Case ، Use-Case ها و مشخصههای تكمیلی برای توضیح كامل سیستم تولید میشود. این توضیح درواقع كاری را كه سیستم انجام خواهد داد بیان میكند. این مستندات بعنوان منابع مهم اطلاعات تولید میشود. در تولید این مستندات باید خواستههای همه ذینفعان را در نظر گرفت.
Analysis & Design (تحلیل و طراحی)
• تبدیل نیازمندیها به طراحی سیستم كه قرار است بوجود آید.
• پیدایش یك معماری مستحكم برای سیستم
• سازگار ساختن طراحی برای هماهنگ شدن با محیط پیادهسازی و طراحی آن برای كارایی بهتر
در اوایل فاز Elaboration ، بر ایجاد یك معماری ابتدایی برای سیستم تمركز میشود، كه یك معماری كاندیدا برای فراهم كردن یك نقطهی شروع برای تحلیل اصلی ارائه شود. اگر معماری قبلا وجود دارد (یا بدلیل اینكه در تكرارهای قبلی، در پروژههای قبلی تولید شده یا از یك چارچوب كاربردی بدست آمده)، تمركز كار برای اصلاح معماری، تحلیل رفتار و ایجاد یك مجموعهی اولیه از عناصر است كه رفتار مناسب را فراهم میآورند
Implementation (پیادهسازی)
• تعریف سازمان كد، برحسب زیر مجموعهای از مجموعههای پیادهسازی سازمان یافته در لایهها
• پیادهسازی كلاسها و اشیاء بوسیله مؤلفهها (فایلهای منبع، باینریها، فایلهای اجرایی و...)
• تست اجزاء تولید شده به عنوان واحدها
• مجتمعسازی نتایج تولید شده توسط پیاده سازان فردی (یا تیمها) به صورت یك سیستم قابل اجرا
دیسیپلین پیادهسازی مرز خود با تست را به اینكه تك تك كلاسها چگونه تست واحد میشوند، محدود میكند. تست سیستم و تست مجتمع سازی در دیسیپلین تست انجام میگیرد.
Test (آزمون)
• یافتن و مستند كردن نقایص در كیفیت نرمافزار
• آگاهی دادن در مورد كیفیت نرمافزار بررسی شده
• اثبات اعتبار فرضیاتی كه در طراحی و مشخصات نیازمندیها ساخته شدند، از طریق نمایشهای واقعی
• تصدیق عملكردهای محصول نرمافزار همانطور كه طراحی شده است.
• تصدیق اینكه نیازمندیها بدرستی پیادهسازی شدهاند
یك تفاوت جالب ولی تاحدی ظریف میان دیسیپلین تست و سایر دیسیپلینها در RUP این است كه تست گرفتن، اساسا وظیفهی یافتن و ارائه ضعفها در محصول نرمافزار را داراست. برای اینكه این تلاش موفقیتآمیز باشد، لازم است از یك روش نسبتا منفی و مخرب استفاده شود تا روشی سازنده. مسألهای كه بسیار حائز اهمیت میباشد این است كه از دو روش اجتناب كنیم : یكی روشی كه بطور مناسب و موثر نرمافزار را بكار نگیرد و مشكلات و ضعفهای آن را نشان ندهد و دیگری روشی كه آنقدر مخرب است كه احتمالا هیچگاه كیفیت محصول نرمافزاری را قابل قبول درنظر نمیگیرد.
Deployment (استقرار)
• نصب اختصاصی
• آماده فروش كردن محصول نهایی
• دستیابی به نرمافزار از طریق اینترنت
در هر نمونه، تأكید روی تست محصول در سایت تولید است و سپس انجام تست بتا، پیش از اینكه محصول نهایتا به مشتری تحویل داده شود. گرچه فعالیتهای استقرار در فاز Transition به منتها درجهی خود میرسند، اما برخی از فعالیتها در فازهای قبلی برای طرحریزی و آمادگی جهت استقرار انجام میشوند.
Environment (محیط)
جعبه ابزار مهندس فرآیند پشتیبانی ابزاری را برای پیكربندی یك فرآیند فراهم میكند. این مورد شامل ابزارها و نمونههایی برای ایجاد سایتهای وب پروژه و سازمان بر اساس RUP میشود.
Project Management (مدیریت پروژه)
اهداف این دیسیپلین عبارتند از:
• فراهم كردن یك چارچوب برای مدیریت پروژههای صرفاً نرمافزاری
• فراهم كردن رهنمودهای عملی برای طرحریزی، تعیین نیروی انسانی، اجرا و نظارت بر پروژهها
• فراهم كردن یك چارچوب برای مدیریت ریسك
• با این وجود، این دیسیپلین از RUP برای پوشش دادن همهی جنبههای مدیریت پروژه نیست. برای مثال این دیسیپلین موارد زیر را پوشش نمیدهد :
* مدیریت افراد : استخدام، آموزش، رهبری
* مدیریت بودجه : تعیین، تخصیص و غیره
* مدیریت قراردادها : با پشتیبانی كنندگان و مشتریان
این دیسیپلین بطور عمده روی جنبههای مهم یك فرآیند تكراری تمركز میكند كه عبارتند از :
* مدیریت ریسك
* طرح ریزی برای یك پروژهی تكراری، از طریق چرخهی حیات و برای یك تكرار بخصوص
* نظارت بر پیشرفت یك پروژهی تكراری و متریكها
Configuration & Change Management (مدیریت پیكربندی و تغییرات)
مدیریت پیكربندی و درخواست تغییر ( CRM, CM ) شامل موارد زیر میباشند:
• تشخیص موارد پیكربندی
• محدود كردن تغییرات آن موارد
• رسیدگی به تغییراتی كه برای آن موارد ساخته شده
• تعریف و مدیریت پیكربندی آن موارد
متدها، فرآیندها و ابزاری كه برای ایجاد تغییر و مدیریت پیكربندی برای یك سازمان استفاده میشوند، میتوانند بعنوان سیستم CM سازمان مورد توجه قرار گیرند.
سیستم مدیریت پیكربندی و درخواست تغییر (سیستم CM ) برای یك سازمان اطلاعات كلیدی در مورد تولید محصول را نگهداری میكند. این اطلاعات عبارتند از : ترفیع، استقرار و فرآیندهای نگهداری. بعلاوه یك پایگاه داده محصولاتی را كه بصورت بالقوه قابل استفاده مجدد میباشند، نگهداری میكند.
یك سیستم CM برای كنترل خروجیهای متعدد تولید شده توسط افراد زیادی كه روی یك پروژه كار میكنند، ضروری است. كنترل، به اجتناب از اغتشاشِ پرهزینه كمك میكند و تضمین مینماید كه خروجیهای بدست آمده با توجه به برخی انواع مسائل و مشكلاتی كه در زیر آمدهاند ناسازگار نیستند.
• به روز رسانی همزمان
• توجه دادن محدود شده
• نسخههای چندگانه
* ارسال مقاله توسط عضو محترم سایت با نام کاربری : sm1372
/خ
مقالات مرتبط
تازه های مقالات
ارسال نظر
در ارسال نظر شما خطایی رخ داده است
کاربر گرامی، ضمن تشکر از شما نظر شما با موفقیت ثبت گردید. و پس از تائید در فهرست نظرات نمایش داده می شود
نام :
ایمیل :
نظرات کاربران
{{Fullname}} {{Creationdate}}
{{Body}}