متولوژی Agile

نویسنده Zohreh Gholami, قبل از ظهر 10:09:46 - 11/15/11

« چند پیشنهاد به کاربران برای مقابله با تهدیدات اینترنتی | کامل ترین مرجع درباره روتر, Router »

0 اعضا و 1 مهمان درحال دیدن موضوع.

Zohreh Gholami

متولوژی Agile

مقدمه:
پیشرفت شگرف سخت افزار و ضعف روشهای توسعه نرم افزار در کنترل پیچیدگی نرم افزار باعث بوجود آمدن بحران نرم افزار گردیده است که یکی از علل اساسی در خلق این بحران ، عدم وجود روشهای مناسب جهت تولید و توسعه نرم افزار می باشد. فرآیند تولید و توسعه نرم افزار ، ذاتأ یک فرآیند بی نظم است که جهت نظم دادن به این بی نظمی ها، از متدولوژی ها توسعه نرم افزار بهره می گیریم. متدولوژی توسعه نرم افزار مشخص می کند که چه فرآورده ای ( What ) ، توسط چه کسی ( Who ) و در چه زمانی ( When ) تولید شود.


تعریف Agile (چابک)
Agile یک متد توسعه نرم افزار است که بر پایه توسعه تکراری و افزایشی بنا شده است که رویه طراحی سازگار ، تکامل تدریجی را تعریف می کند. متد چابک با تقسیم کردن کارها به طرح های کوچکتر ، باعث می شوند که تکرارها در چارچوب های زمانی کوتاه تری انجام شده و نسبت به تغییرات انعطاف پذیر باشند. ویژگی متفاوت فرآیندهای چابک این است که در جهت رقابت بر سر مشتری حتی از تغییراتی که در اواخر توسعه نرم افزار پدیدار می شوند استقبال کرده و رفتار خود را بر اساس تفکرات اعمال شده ، تنظیم و هم سو می کند.


تقسیم بندی متدولوژی ها
1 – سنگین وزن ( Heavy weight ): این متدولوژی ها بیش از اندازه ماشین گرا و مکانیزه بوده و به صورت فرآیندی وارد جزئیات غیر ضروری می شود. فازها به طور کامل اجرا می شوند و مستندات به طور کامل ایجاد می شوند.

2 – سبک وزن ( Light weight ):  در این متدولوژی ، فازها به صورت کوتاه مدت بوده و مستندات به اندازه ایجاد می شوند. متدولوژی چابک در دسته متدولوژی های سبک وزن قرار می گیرد.


مقایسه متدولوژی ها با یکدیگر
روش
معیار موفقیت
اندازه پروژه
سبک مدیریت
چرخه
اندازه تیم

روش
روش‌های چابک بصورت Adaptive يا سازگار عمل می‌کنند يعنی با شرايط منطبق می‌شوند.
روش‌های سنگين وزن بصورت پيشگو يا Predictive عمل می‌کنند يعنی در آغاز همه چيز را پيش‌بينی می‌کنند.
همه چيز از ابتدا قابل پيش‌بينی نیست.

معيار موفقيت
معيار موفقيت در روش‌های چابک دستيابی به ارزش کاری (Business Value) است.
در روش‌های سنگين وزن معيار موفقيت پيش رفتن در راستای طرح اوليه است.
روش‌های سنگين وزن انعطاف‌پذيری ندارند.

اندازه پروژه
اندازه پروژه در روش‌های چابک کوچک است.
اندازه پروژه در روش‌های سنگين وزن می‌تواند بسيار بزرگ باشد.
اين مسأله از محبوبيت روش‌های چابک نمی‌کاهد !!! (آمار نشان می‌دهد که تعداد پروژه‌های کوچک بسيار بيشتر است)

سبک مديريت
مديريت در روش‌های چابک بصورت غيرمتمرکز و آزاد است.
در روش‌های سنگين وزن مديريت بصورت مطلق و استبدادی است.
مديريت غيرمتمرکز امکان تصميم‌گيری بهتر را فراهم می‌کند.

نحوه مستندسازی
مستندسازی در روش‌های چابک بصورت بسيار محدود انجام می‌شود.
در روش‌های سنگين وزن مستندسازی بصورت کامل و جامع انجام می‌شود.
در بسياری از موارد مستند سازي‌های سنگين, کار بسيار دشوار و زمانبری است.

چرخه‌ها
تعداد چرخه‌ها (Cycles) در روش‌های چابک بسيار زياد است اما زمان آنها کوتاست.
در روش‌های سنگين وزن تعداد چرخه‌ها کم است ولی زمان آنها بسيار زياد است.
زمانبر بودن چرخه‌های توليد, موجب طولانی شدن زمان انتظار برای رسيدن به نشرها می‌شود.

اندازه تيم
در روش‌های چابک اندازه تيم کوچک است (بين 20 تا 30 نفر).
در روش‌های سنگين وزن اندازه تيم توسعه بزرگ است.
خلاقيت و همکاری در تيم کوچک بسيار بيشتر خواهد بود.


برگشت سرمايه
در روش‌های چابک سرمايه خيلی زود در طول پروژه بر می‌گردد.
در روش‌های سنگين وزن برای برگشت سرمايه بايد تا انتهای پروژه صبر کرد.
روش‌های چابک از لحاظ اقتصادی به صرفه‌اند.



1 (1).png


[color=#black]توسعه نرم افزار, مقالات کامپیوتر, مقالات فناوری اطلاعات, متولوژی Agile, متولوژی سبک وزن, فناوری اطلاعات و ارتباطات, متولوژی سنگین وزن, اندازه گیری پروژه, مدیریت غیر متمرکز, مستند سازی در روش چابک, چرخه های تولید, زمانبندی استراتژی, چرخه حیات xp, برنامه نویسی جفتی, پیشگامان متا, meta4u.com[/color]

Zohreh Gholami

#1
بیانیه توسعه نرم افزار چابک

2 (1).png
متد چابک
XP
FDD
Crystal
Scrum
Water Fall
Iterate & Incremental
Adaptive software development
Dynamic software development
Open source soft ware development



مدل incremental & iterate:
توسعه تکراری & افزایشی ، در واقع قلب چرخه توسعه نرم افزار است . این مدل با طراحی اولیه شروع کرده و با استفاده از چرخه تکرار ، توسعه محصول را به پیش می برد. مدل مذکور بخش اصلی بسیاری از فرآیندهای توسعه نرم افزار نظیر Rup و XP و تمامی متد توسعه نرم افزار می باشد. این امکان وجود دارد که هریک از متد بالا را به صورت جداگانه یا ترکیبی استفاده کرد.


تعریف توسعه incremental:
مرحله بندی ، زمان بندی استراتژی در بخش های مختلف سیستم که در زمان های مختلف و به میزان متفاوت پیشرفت کرده اند و با اجتماع بخش های مختلف در حال حاضر کامل شده است . در واقع در توسعه افزایشی ما پروژه را به تکه های کوچکتر تقسیم کرده و آنها را جهت توسعه ، زمان بندی کرده و به محض تکمیل شدن آنها را یکپارچه می کنیم. این رویه مانع توسعه تکراری نبوده بلکه می تواند با استراتژی iterate همکاری کند.


تعریف توسعه iterate:
زمان بندی مجدد استراتژی که زمان مجموعه ایست از بخش های مختلف سیستم جهت بازبینی و توسعه بخش های مختلف سیستم. در واقع در توسعه تکراری ، کارهایی را که باید انجام دهیم ، در یک مجموعه زمانی کنار یکدیگر می گذاریم و به شما کمک می کند محصول خود را توسعه دهید ، هر لحظه ای که تصمیم به اعمال تغییرات یا توسعه محصول می گیرد.


مزایا:
توسعه سیستم تا جایی که امکان دارد
امکان انجام هر یک از فعالیت های (طراحی، برنامه نویسی، تست، تحلیل) چندین دفعه.
امکان انجام هر یک از فعالیت های (طراحی، برنامه نویسی، تست، تحلیل) در زمان های مختلف.


مدل XP ( extreme programming ):
یک متدولوژی توسعه نرم افزار می باشد که جهت افزایش کیفیت نرم افزار و پاسخگویی به تغییرات مورد نیاز مشتری به کار گرفته می شود. عناصر مدل XP مشتمل است بر برنامه نویسی دو نفره ( pair programming ) ، بازنویسی کدها ، تست واحد کلیه کدها ، جلوگیری از کد نویسی واحد ها تا زمانی که واقعا به آنها نیاز داریم، ساختار مدیریت یکپارچه ، کد نویسی به صورت ساده و واضح ، پیش بینی تغییر در نیازهای مشتری و میزان روابط مشتری و برنامه نویسان


چرخه حيات XP  شامل پنج فاز است 
Exploration
Planning
Iterations To Release
Product  Tionizing
Maintenance and Dead



Pair programming
تعریف
برنامه نویسی جفتی یکی از تکنیک های توسعه نرم افزار چابک است که در آن ؛ برنامه نویسی با یکدیگر در یک محیط کاری و بر روی یک پروژه کار می کنند. PP را می توان یک توانایی اجتماعی دانست که منجر به یادگیری شده و شما می کوشید که کاری را با همکاری یکدیگر بدون در نظر گرفتن شرایط و وضعیت همکاریتان انجام دهید.

شرایط لازم جهت PP
1 – برنامه نویس ( Driver ) که کد نویسی برنامه را به عهده دارد.
2 – مشاهده گر ( Navigator ) که در طول زمانی که برنامه نویس در حال کد نویسی است ، هر یک از خطوط نوشته شده را مورد بازبینی قرار می دهد. مشاهده گر در طول بازبینی پروژه مسیر (استراتژی) پروژه را در نظر گرفته و ایده هایی را برای حل مسئله به برنامه نویس ارائه می دهد.

کاربرد PP در صنعت
همدیگر را از لحاظ دهنی برای کد نویسی آماده کنید.
بر روی یک راه حل توافق کنید.
زیاد صحبت کنید.
لحظاتی را برای تفریح و سرگرمی هایتان صرف کنید.
غالبا نقش هایتان را عوض کنید (هر نیم ساعت)
سطح رابطه بین خودتان را بالا ببرید.
بر روی هدف های کوچک سریعا توافق کنید.
قبل از شروع به کار ، راجع به کاری که قرار است انجام دهید ، فکر کنید و با یکدیگر صحبت کنید.
هم گروهی خود را حمایت کرده و سوالات او را پاسخگو باشید.

مزایا
افزایش پیروی از اصول
کدنویسی بهتر
خطای کمتر
افزایش خردمندی
افزایش روحیه افراد
افزایش همکاری تیمی

Tags:

Share via facebook Share via linkedin Share via telegram Share via twitter Share via whatsapp