بخشی از مقاله
بررسی انواع مختلف متدولوژی های سبک وزن
چکیده
در متدولوژی های سنگین وزن به دلیل حجم بالای مستندات ، برنامه ریزی جامع ،مستند سازی از ابتدا تا انتها و طراحی کامل و گسترده ، سرعت توسعه تیم تا حد بالایی کاهش می یابد ولی در مقابل متدولوژی های سبک وزن برای تشریح و سادگی در مراحل تحلیل و ساخت نرم افزار تمرکز دارند و فقط روی وظایفی که در ابتدا احتیاج است تمرکز میکنند. به دلیل به کار گیری گسترده این متدولوژی ها در تولید نرم افزارارائه الگویی مشخص برای ارزیابی و انتخاب متدولوژی های سبک وزن بر اساس ویژگی های یک پروژه میتواند نقش مهمی را در فرایند ساخت نرم افزارایفا نماید. در این مقاله قصد داریم به معرفی و تحلیل انواع متدولوژی های سبک وزن مانند 1FDD ، توسعه پویایی سیستمDSDM ،رانده ،کریستال و SCRUM بپردازیم و در انتها مزایا و معایب هر یک را مورد بررسی قرار دهیم.
کلمات کلیدی : متدولوژی سبک وزن، FDD، توسعه ی پویایی سیستم، توسعه ی رانده،کریستال، SCRUM
_ 1 مقدمه
در متدولوژی های سبک وزن فازها به صورت کوتاه مدت بوده و مستندات به اندازه ایجاد میشوند. متدولوژی های چابک نیز در دسته ی متدولوژی های سبک وزن قرار میگیرند.توسه نرم افزار چابک گروهی از متدهای توسعه نرم افزار مبتنی بر تکرار و به شکل تدریجی است که در آنها راه حل ها از طریق خود سازمان دهی و همکاری بین تیم های مختلف کاری انجام میشوند. این روش برنامه ریزی تطبیقی ، توسعه و تحول تکاملی و رویکرد زمان بسته بندی تکرار شونده را ارتقا میبخشد و پاسخ های سریع و انعطاف پذیر برای انجام تغییرات را تقویت میکند. حال به بررسی تعدادی از انواع مختلف متدولوژی های سبک وزن می پردازیم.
_ 2 انواع متدولوژی سبک وزن
مسلما در ابتدای فاز های تحلیل به دلیل تغییر نیاز ها نمی توان همه چیز را پیش بینی کرد بنابراین متدلوژی های سبک وزن بوجود آمدند. این روش ها بیشتر بر روی سادگی و سرعت تمرکز دارند .در این روش ها در یک کار توسعه گروه توسعه فقط روی وظایفی که در ابتدا احتیاج است تمرکز می کنند و آنها را باید سریع تحویل می دهند و در هر مرحله به جمع آوری بازخوردها می پردازند وبه اطلاعات دریافت شده واکنش می دهند
_ 1 _ 2 متدولوژی SCRUM
اسکرام یکی از متدولوژی های توسعه چابک است .در این متدولوژی خواسته های مشتری از محصول اولویت بندی شده و تاکیید روی تحویل سریع تر خواسته های با اولویت بیش تر است.
اسکرام سه خصوصیت اصلی دارد که آنها را بسیار جذاب ساخته است اولین خصوصیت سادگی میباشد,اصول اولیه این متدولوژی را میتوان در کمتر از یک روز آموخت.دومین خصوصیت اسکرام مقایسه پذیری است, یعنی میتوان از اسکرام در ساخت انواع مختلفی از برنامه های کاربردی با تعداد متفاوت اعضای تیم و یا برای پروژه هایی که از نظر مدت زمان با هم تفاوت دارند استفاده کرد. خصوصیت مهم دیگر این است که اسکرام برای همه ذینفعان پروژه ها ارزش قائل است.اسکرام برای مشتری و کاربران محصول ارزش قائل است. در حقیقت اسکرام یک طبیعت تکراری و افزایشی دارد که با اولویت بندی نیازمندی ها همراه است. این ویژگی به مشتری اجازه میدهد که با ارزش ترین و مهمترین خصوصیت را برای تحویل سریع تر انتخاب کند. علاوه بر این در انتهای هر تکرار مشتری میتواند تصمیم بگیرد که در پروژه با افزودن قابلیت های جدید به محصول ادامه پیدا کند یا با اصلاح قابلیت های فعلی مشتری میتواند تصمیم بگیرد که به پروژه خاتمه دهد. به این دلیل که محصول فعلی به اندازه کافی خوب است یا این که ادامه پروژه ارزشی در بر ندارد. اسکرام با فراهم کردن ابزارهایی مثل نمودارهای کارهای باقی مانده ,کار انبار محصول, کار انبار دو سرعت و رویدادهایی مثل جلسه روزانه اسکرام, جلسه طرح ریزی دو سرعت , جلسه بازبینی دو سرعت که به شفاف شدن جنبه های مختلف پروژه کمک میکنند. برای مدیر اسکرام ارزش قائل است.
این شفافیت اجازه میدهد که مدیر کنترل بیشتری روی پروژه داشته باشد و بتواند مشکلاتی را که ممکن است در طی حیات پروژه روی میدهد سریعتر شناسایی میکند.
اسکرام بران توسعه دهندگان ارزش قائل است.آن ها معمولا بوسیله فرصت هان یادگیرن و چالش هان فنی به شدت تحریک میشوند. پس عضویت در یک تیم چند وظیفه ا ننگ خودسازنده مثل یک تیم اسکرام یک جایگاه ایده آل براننآنهاست. به این دلیل که آنها میتوانند در تمام فعالیت هاننتوسعه از تحلیل نیازمندننها گرفته تا نوشتن کد درگیر شوند.[8]
_ 2 _ 2 متدولوژی رانده
توسعه ویژگی رانده یک فرآیند توسعه نرم افزار مکرر وافزایشی می باشد. محورهان این روش مبتنی بر مشترن ،معمارن و عمل گرایی است.
در همه پروژه هایی که از فرآیند توسعه ویزگی رانده استفاده کنند دو ارزش اصلی مورد نظر قرار میگیرد وتمامی فعالیت ها بر اساس آن ها صورت می گیرد:
( 1 تعریف پروزه با استفاده از ویژگی ها
( 2 دنبال کردن مراحل انجام پروژه با استفاده از ویژگی ها
در زمان انجام سه مرحله متوالی ،اول مدل اولیه صورت می گیرد در ادامه در مرحله بعدن بر ن هر ویژگی تکرار می شوند.در این مرحله تعامل با مشتر ن به شکل متفاوتی ایجاد می شود و به این صورت پیش می رود که آن ها در آزمون سیستم باز خوردهان استفاده از سیستم ،آزمون کارایی،گزارش خطاها دخیل می شوند.[1]
(1 توسعه مدل اولیه (2 ایجاد لیست ویژگی ها
(3 برنامه ریزننسلااساس ویژگی ها (4 طراحی بر اساس ویژگی ها (5 ساخت بر اساس ویزگی ها (6 نقاط عطف زمانی [2] (7 نقش هانناصلی
ابتدا باید به طور کلی پروژه را بر حسب ویژگی هان باارزش مورد نظر کاربر تعریف کنیم و سپس با توجه به مراحل ذکر شده پروژه را انجام داده و براساس نقاط عطف زمانی آن را پیگیرنننماییم و مسؤلیت ها را از نقش هاننتعریف شده در پروژه خواستار باشیم.
_ 3 _ 2 متدولوژیFDD
یکی از متدولوژن هان سبک وزن است که مبتنی برتوسعه تکرارن باانتخاب بهترین وموثرترین فعالیت ها است وبرجنبه ها ن کیفیتی تاکید داردودر فواصل زمانی مشخص بخشی از کاررا تحویل مشترن میدهد. این روش تمام فرآیندساخت نرم افزار را پوشش نمیدهدوبیشتر رونندومرحله طراحی وپیاده سازننمتمرکز میشود.[3]
نقش هادر این متدولوژن درسه دسته نقش کلیدن،نقش پشتیبانی،ونقش هان اضافی دسته بندن می شوند.شش نقش کلیدن در این متدولوژن شامل مدیر پروژه ،معمارن ارشد،مدیرتوسعه برنامه نویس ارشد،صاحب کلاس ومتخصصان دامنه می باشد. وپنچ
نقش پشتیبانی شامل مدیر کنترل پروژه،متخصص زبان،مهندس ساخت،متخصص ساخت ابزار ومدیرسیستم است وسه نقش اضافی که براننهرپروژه لازم است شامل تست کننده، گسترش دهنده ونویسندگان فنی می باشد.[5]
FDDشامل دوفاز راه اندازن وساخت می باشد که فاز راه اندازن شامل فرآیندهان توسعه مدل سراسرن ساخت لیست featureها وبرنامه ریزننسلااساس featureهاوفاز ساخت شامل دو فرآیند طراحی براساس featureهاوساخت براساس featureها می باشد [4]
.
این متدولوژن درحالت ساخت است وهنوز راه زیادن بران تکامل دارد.از آنجا که هیچ گزارش شکستی درباره ن استفاده ازاین متدولوژن گزارش داده نشده پس محققان ازهر تحقیق بحث وقیاس دراین باره استقبال می کنندچون آن هارا در کاربرد بهتر این متدولوژن در هر موقعیت خاص یارن می رساند وبه آنها درتصمیم گیرن درباره زمان استفاده ازآن یازمان استفاده نکردن ازآن کمک می کند.
_ 4 _ 2 متدولوژی خانواده کریستال
کریستال نام خانواده انناز متدولوژننها در مهندسی نرم افزار و حاصل 10 سال بررسی پروژه هاننموفق است .
دسته بندن متدولوژننهانناین خانواده بر اساس دو معیار » اندازه سیستم « و » میزان بحران پروژه « صورت می گیرد .
میزان بحران پروژه در واقع میزان خسارتی است که در اثر خرابی سیستم به کاربرتحمیل می شود و شامل 4 نوع است :
( 1 از دست رفتن آرامش افراد
( 2 از دست رفتن پول احتیاطی
( 3 از دست رفتن پول لازم و حیاتی
( 4 از دست رفتن زندگی افراد
با تقلید از کریستال ها در علم زمین شناسی که هر کدام داران رنگ و سختی مخصوص به خود هستند ، به هر یک از اعضا یک رنگ و یک میزان بحران داده شود .
رنگ هان این خانواده شامل : بی رنگ ، زرد ، نارنجی ، قرمز ، آبی ، بنفش ، است . در حال حاضر فقط دو متدولوزن بی رنگ و نارنجی از این خانواده معرفی شده و بقیه هنوز در دست بررسی هستند و ویژگی هاننمشخصی براننآنها تعیین نشده است .
کریستال نارنجی
این متدولوژننسلااننپروژه هایی با ویژگی هان زیر مناسب است :
( 1 پروژه هایی با اندازه نمتوسط که مجموعاً 10 تا 40 نفر عضو دارد .
( 2 افراد سیستم باید در یک دفتر دور هم جمع شوند .
( 3 براننغلاگثه هایی با میزان بحران زندگی مناسب نیست .