صفحه 1:
Agile

صفحه 2:
سخت افزار و ضعف روشهای توسعه نرم افزار در ۲ 1 باعث بوجود آمدن بحران نرم افزار كرديده است كه يكى از علل بحران » عدم وجود روشهاى مناسب جهت توليد و توسعه نرم افزار ليد و توسعه نرم افزار» ذاتأ يكك فرآ يند بى نظم است كه جهت نه توسعه نرم افزار مشخص مى كند كه جه ف رآورده اى ( :10171284 0 و در جه زمانى ( 1/17126©12) توليد شود.

صفحه 3:
۳۳ ۳ “bes ١ 0 ull

صفحه 4:
۳ “i متد: فازها به ژٍی » فازها ب تدولوق ‎ele : CLigh‏ ‎it wei‏ ‎eight‏ ‏۵(

صفحه 5:
۳ ۱ ۲ ِا" ‎Mell‏ my 1 ۱۱۱

صفحه 6:
11 wh

صفحه 7:

صفحه 8:

صفحه 9:
“ii

صفحه 10:
ا ull

صفحه 11:
زياد است اما جابكك بسيار زيا ها (2(/65)) در روش‌های چاب 00 ار 0

صفحه 12:
‌های چابک اندازه تیم کوچک است (بین ‎Care bye‏ های سنگین وزن اندازه تیم توسعه بز رگ است

صفحه 13:

صفحه 14:
14 Heavy Methods Predictive Conformation to plan Large ‘Autocratic Heavy Process-Oriented Limited Predictable Large Agile Methods ‘Adaptive Business Value Small Low People-Oriented Numerous Unpredictable/Exploratory Small/Creative ww.prozhe.c parameter ‘Approach’ Success Measurement Project Size Management Style Documentation ‘Emphasis Gycles Domain Team Size

صفحه 15:
00 0 1 My 7 ‏نا‎ ۳ ۳

صفحه 16:
۱۲6۲۵۲6 ۲ Adaptive software develop Dynamic software devel Open source soft ware d

صفحه 17:

صفحه 18:
ia ۳۳۳ ار کامل شده است . در واقع در توسعه افزایشی ما پروژه را به تکه ها

صفحه 19:
]ند 1 می کند ‎E‏ ‏محصول خود را توسعه دهید » ید هرلت 000 سعه محصول می گیرد.

صفحه 20:
که امکان دارد اجایی سيستم نامه نویسی ‏ ت انجام هر یک از فعالیت های ( طراحی بر ni

صفحه 21:
ل است بر برنامه نویسی دو نفره ( ۳۳۲۲۳7۳۳۸۷ ‎(pair‏ » بازنویسی کا 1 ۳ كدهاء جلوگیری از کد نویسی واحد هاتازما. ۲ ۲

صفحه 22:

صفحه 23:
۳۳

صفحه 24:

صفحه 25:
0

صفحه 26:
رن ی ۷ ۸ ‎oT‏ ان ‎Y i)‏ ‎

صفحه 27:
in ۳۳ ‏ا‎ ۱۱ ۱ ۳ 00

صفحه 28:
یش پیروی از اصول Wt ۱۸۸ Mm 1 il! iil ۳

Agile www.prozhe.com 1 مقدمه : پیشرفت شگرف سخت افزار و ضعف روشهای توسعه نرم افزار در کنترل پیچیدگی نرم افزار باعث بوجود آمدن بحران نرم افزار گردیده است که یکی از علل اساسی در خلق این بحران ،عدم وجود روشهای مناسب جهت تولید و توسعه نرم افزار می باشد. فرآیند تولید و توسعه نرم افزار ،ذاتأ یک فرآیند بی نظم است که جهت نظم دادن به این بی نظمی ها ،از متدولوژی ها توسعه نرم افزار بهره می گیریم. متدولوژی توسعه نرم افزار مشخص می کند که چه فرآورده ای ( ، ) Whatتوسط چه کسی ( ) Whoو در چه زمانی ( ) Whenتولید شود. 2 ‏www.prozhe.com تعریف ( Agileچابک ) ک تد ت وسعه ن رم افزار استک ه ب ر پ ایه ت وسعه ت کراریو افزایشی Agileی م عریف یک ند .م تد م ل دریجیرا ت ب نا ش ده استک ه رویه ط راحیس ازگار ،ت کام ت اعث یش وند ک ه م ک ا ت قسیم ک رد نک ارها ب ه ط رح هایک وچکتر ،ب چاب ب سبت ه ت غییراتانعطاف ب ت کرارها در چارچوبهایزمان یک وتاه ت ریانجام ش ده و ن پ ذیر ب اشند. ویژگی متفاوت فرآیندهای چابک این است که در جهت رقابت بر سر مشتری حتی از تغییراتی که در اواخر توسعه نرم افزار پدیدار می شوند استقبال کرده و رفتار خود را بر اساس تفکرات اعمال شده ،تنظیم و هم سو می کند. 3 ‏www.prozhe.com تقسیم بندی متدولوژی ها – 1سنگین وزن ( : ) Heavy weightاین متدولوژی ها بیش از اندازه ماشین گرا و مکانیزه بوده و به صورت فرآیندی وارد جزئیات غیر ضروری می شود .فازها به طور کامل اجرا می شوند و مستندات به طور کامل ایجاد می شوند. – 2سبک وزن ( : ) Light weightدر این متدولوژی ،فازها به صورت کوتاه مدت بوده و مستندات به اندازه ایجاد می شوند .متدولوژی چابک در دسته متدولوژی های سبک وزن قرار می گیرد. 4 ‏www.prozhe.com مقایسه متدولوژی ها با یکدیگر •روش •معیار موفقیت •اندازه پروژه •سبک مدیریت •چرخه •اندازه تیم 5 ‏www.prozhe.com روش روش‌های چابک بصورت Adaptiveيا سازگار عمل می‌کنند يعنی با شرايط منطبق می‌شوند روش‌های سنگين وزن بصورت پيشگو يا Predictiveعمل می‌کنند يعنی در آغاز همه چيز را پيش‌بينی می‌کنند نیست. ‌بينینیست. ش‌بينی قابلپيپيش ابتداقابل چيز ازازابتدا همهچيز همه 6 ‏www.prozhe.com معيار موفقيت معيار موفقيت در روش‌های ( )Business Valueاست چاب ک دس تيابی ب ه ارزش کاری در روش‌های س نگين وزن معيار موفقيت پيش رفت ن در راس تای طرح اوليه است ندارند ‌پذيریندارند ف‌پذيری انعطاف وزنانعطا سنگينوزن ‌هایسنگين روش‌های روش 7 ‏www.prozhe.com 7 اندازه پروژه اندازه پروژه در روش‌های چابک کوچک است اندازه پروژه در روش‌های سنگين وزن می‌تواند بسيار بزرگ باشد ‌کاهد!!!!!! چابکنمنمیی‌کاهد ‌هایچابک روش‌های محبوبيتروش مسألهازازمحبوبيت اينمسأله اين بيشتر بسياربيشتر کوچکبسيار ‌هایکوچک پروژهه‌های تعدادپروژ کهتعداد ‌دهدکه نشانممیی‌دهد (آمارنشان (آمار است) است) 8 ‏www.prozhe.com سبک مديريت مديريت در روش‌های چابک بصورت غيرمتمرکز و آزاد است در روش‌های سنگين وزن مديريت بصورت مطلق و استبدادی است ‌کند فراهمممیی‌کند بهتررارافراهم ‌گيریبهتر تصميم‌گيری امکانتصميم غيرمتمرکزامکان مديريتغيرمتمرکز مديريت 9 ‏www.prozhe.com نحوه مستندسازی مستندسازی در روش‌های چابک بصورت بسيار محدود انجام می‌شود در روش‌های سنگين وزن مستندسازی بصورت کامل و جامع انجام می‌شود بسيار کاربسيار سنگين,کار ‌هایسنگين, سازي‌های مستندسازي مواردمستند بسياریازازموارد دربسياری در است زمانبریاست دشوارووزمانبری دشوار 10 ‏www.prozhe.com چرخه‌ها تعداد چرخه‌ها ( )Cyclesدر روش‌های چابک بسيار زياد است اما زمان آنها کوتاست در روش‌های سنگين وزن تعداد چرخه‌ها کم است ولی زمان آنها بسيار زياد است انتظار زمانانتظار شدنزمان طوالنیشدن موجبطوالنی توليد,موجب ‌هایتوليد, چرخه‌های بودنچرخه زمانبربودن زمانبر ‌شود نشرهاممیی‌شود رسيدنبهبهنشرها برایرسيدن برای 11 ‏www.prozhe.com اندازه تيم در روش‌های چابک اندازه تيم کوچک است (بين 20تا 30نفر) در روش‌های سنگين وزن اندازه تيم توسعه بزرگ است بود خواهدبود بيشترخواهد بسياربيشتر کوچکبسيار تيمکوچک درتيم همکاریدر خالقيتووهمکاری خالقيت 12 ‏www.prozhe.com برگشت سرمايه در روش‌های چابک سرمايه خيلی زود در طول پروژه بر می‌گردد در روش‌های سنگين وزن برای برگشت سرمايه بايد تا انتهای پروژه صبر کرد ‌اند بصرفهه‌اند اقتصادیبصرف لحاظاقتصادی چابکازازلحاظ ‌هایچابک روش‌های روش 13 ‏www.prozhe.com parameter Agile Methods Heavy Methods Adaptive Predictive Business Value Conformation to plan Small Large Decentralized Autocratic Low Heavy People-Oriented Process-Oriented Cycles Numerous Limited Domain Unpredictable/Exploratory Predictable Small/Creative Large Approach Success Measurement Project Size Management Style Documentation Emphasis Team Size www.prozhe.com 14 تیم ها بین 5الی 9نفره بیانیه توسعه نرم افزار چابک تیم ها دارای ساختاری باز می افراد و تعامالت کاهش ریسک پروژه پا س خ گ و ی ی به شکستن پروژه به طرح تغییرات های کوچکتر زار م اف نر لا قاب هدف اصلی هر توسعه نرم افزار 15 ارتباط بین تیم ها از طریق ویدئو کنفرانس اصول بیانیه جرا باشند هریک از اعضای تیم باید به ه م ک ار یکدیگر گزارش دهند ی با م شت ر ی ارتباط از طریق نماینده Stack holderو نماینده هر تیم اولویت بندی و ارزشگذاری اهداف ‏www.prozhe.com متد چابک XP• FDD• Crystal• Scrum• Water Fall• Iterate & Incremental• Adaptive software development• Dynamic software development• Open source soft ware development• www.prozhe.com 16 مدل : incremental & iterate توسعه تکراری & افزایشی ،در واقع قلب چرخه توسعه نرم افزار است .این مدل با طراحی اولیه شروع کرده و با استفاده از چرخه تکرار ،توسعه محصول را به پیش می برد .مدل مذکور بخش اصلی بسیاری از فرآیندهای توسعه نرم افزار نظیر Rupو XP و تمامی متد توسعه نرم افزار می باشد .این امکان وجود دارد که هریک از متد باال را به صورت جداگانه یا ترکیبی استفاده کرد. 17 ‏www.prozhe.com تعریف توسعه : incremental مرحل ه بندی ،زمان بندی اس تراتژی در بخ ش های مختلف س یستم که در زمان های مختلف و به میزان متفاوت پیشرفت کرده اند و با اجتماع بخش های مختلف در حال حاضر کامل شده است .در واقع در توسعه افزایشی ما پروژه را به تکه های کوچکتر تقسیم کرده و آنها را جهت توسعه ،زمان بندی کرده و به محض تکمیل شدن آنها را یکپارچ ه م ی کنیم .ای ن روی ه مان ع توس عه تکراری نبوده بلک ه م ی توان د ب ا استراتژی iterateهمکاری کند. 18 ‏www.prozhe.com تعریف توسعه : iterate زمان بندی مجدد اس تراتژی که زمان مجموع ه ایس ت از بخ ش های مختل ف سیستم جه ت بازبین ی و توس عه بخ ش های مختل ف س یستم .در واق ع در توسعه تکراری ، کارهایی را که باید انجام دهیم ،در یک مجموعه زمانی کنار یکدیگر می گذاریم و به شما کمک می کند محصول خود را توسعه دهید ،هر لحظه ای که تصمیم به اعمال تغییرات یا توسعه محصول می گیرد. 19 ‏www.prozhe.com مزایا : •توسعه سیستم تا جایی که امکان دارد • امکان انجام هر یک از فعالیت های ( طراحی ،برنامه نویسی ،تست ،تحلیل ) چندین دفعه • امکان انجام هر یک از فعالیت های ( طراحی ،برنامه نویسی ،تست ،تحلیل ) در زمان های مختلف 20 ‏www.prozhe.com مدل ) : XP ( extreme programming ی ک متدولوژ ی توس عه نرم افزار م ی باش د ک ه جه ت افزای ش کیفیت نرم افزار و پاسخگویی به تغییرات مورد نیاز مشتری به کار گرفته می شود .عناصر مدل XP مشتمل است بر برنامه نویسی دو نفره ( ، ) pair programmingبازنویسی کدها ، تست واحد کلیه کدها ،جلوگیری از کد نویسی واحد ها تا زمانی که واقعا به آنها نیاز داریم ،ساختار مدیریت یکپارچه ،کد نویسی به صورت ساده و واضح ،پیش بینی تغییر در نیازهای مشتری و میزان روابط مشتری و برنامه نویسان 21 ‏www.prozhe.com شامل پنج فاز استXP چرخه حيات  Exploration  Planning  Iterations To Release  Product Tionizing  Maintenance and Dead www.prozhe.com 22 Pair programming •تعریف •شرایط الزم جهت PP •کاربرد PPدر صنعت •مزایا و معایب 23 ‏www.prozhe.com برنامه نویسی جفتی یکی از تکنیک های توسعه نرم افزار چابک است که در آن ؛ برنامه نویسی با یکدیگر در یک محیط کاری و بر روی یک پروژه کار می کنند. PPرا می توان یک توانایی اجتماعی دانست که منجر به یادگیری شده و شما می کوشید که کاری را با همکاری یکدیگر بدون در نظر گرفتن شرایط و وضعیت همکاریتان انجام دهید. 24 ‏www.prozhe.com – 1برنامه نویس ( ) Driverکه کد نویسی برنامه را به عهده دارد. – 2مشاهده گر ( ) Navigatorکه در طول زمانی که برنامه نویس در حال کد نویسی است ،هر یک از خطوط نوشته شده را مورد بازبینی قرار می دهد. مشاهده گر در طول بازبینی پروژه مسیر ( استراتژی ) پروژه را در نظر گرفته و ایده هایی را برای حل مسئله به برنامه نویس ارائه می دهد. 25 ‏www.prozhe.com شرایط الزم جهت: PP 1 •همدیگر را از لحاظ دهنی برای کد نویسی آماده کنید. •بر روی یک راه حل توافق کنید. •زیاد صحبت کنید. •لحظاتی را برای تفریح و سرگرمی هایتان صرف کنید. •غالبا نقش هایتان را عوض کنید ( هر نیم ساعت ) •سطح رابطه بین خودتان را باال ببرید. •بر روی هدف های کوچک سریعا توافق کنید. •قبل از شروع به کار ،راجع به کاری که قرار است انجام دهید ،فکر کنید و با یکدیگر صحبت کنید. •هم گروهی خود را حمایت کرده و سواالت او را پاسخگو باشید. 26 ‏www.prozhe.com در صنعتPP کاربرد www.prozhe.com 27 مزایا •افزایش پیروی از اصول •کدنویسی بهتر •خطای کمتر •افزایش خردمندی •افزایش روحیه افراد •افزایش همکاری تیمی 28 ‏www.prozhe.com

51,000 تومان