صفحه 1:
فصل ۴ درس مهندسی نرم‌افزار ۲ دکتر احمد عبداله زاده بارفروش تهیه کنده: پوبا جافریان Maecenas 1 0

صفحه 2:
‎Pernt]‏ تاد ‏* "ما راه‌های بهتری را برای توسعه نرم‌افزار با انجام آن و ا ل ل نر ‏ع ا ال ا ا ‎Sete‏ ‏چا را ‎Fe‏ ‏- اهميت نرمافزار عملياتى نسبت به مستندات كامل - اهميت همكارى مشترى نسبت به مذاكرات در حين قرارداد - اهميت ياسخ به تغييرات نسبت به ييكيرى يك طرح اوليه ‎05000 1 ‏ال‎ ‏مطرح‎ (ibe caval eas alee BA. ۱ eee ‏ا‎ ie Rowe pee OnE OU) ‎۳ ea enact 2 ‏ومامتوطه1 و‎

صفحه 3:
ع ان ا ل ‎Dero‏ ‏ا 0 * توسعه ©8011 بر ارتباطات و همكارى ييوسته ميان توسعه دهندكان و مشتريان تاكيد دارد. ۳ ea enact 3 ‏ومامتوطه1 و‎

صفحه 4:
ع ان * مهندسى نرمافزار به روش ©8011 بر مبناى فلسفه رضايت مشترىء تحويل نرمافزار به صورت افزايشىء تيمهاى نرمافزارى كوجك (متشكل از مهندسین نرم‌افزار و ذینفعان» روش‌های غیر فورمال. و محصولات کاری ۷۷/0۲۱ ل و 0 0 ا رهنمودهاى مهندسى نرمافزار به روش ©6011 بر تحويل به موقع نرمافزار عملياتى به صورت ا ل رای اليم ۳ ea enact 3 0

صفحه 5:
fume Agility * ياسخكويى موثر (سريع و سازكار) به تغييرات * ارتباطات موثر ميان همه ذينفعان * قراردادن مشترى در تيم نرمافزارى ‎pes he, Jlgeey‏ ار ا کنترل باشد ‏و این موارد موجب می‌شود : ‎16701511 eee Deer epee ose ‎۳ ea enact ‏ومامتوطه1 و‎ ‎35

صفحه 6:
۳:2 pe) ؟ از نیازهای ارائه شده (سناریوها) توسط مشتری ا * طردهاء كوتاه مدت هستند. * توسعه نرم‌افزار به صورت چرخشی با تاکید زیاد بر روی فعالیت‌های ساخت سیستم * تحويل نرم ‎igre Meet ce ON RC‏ 9 وی ‎NC Rees nS Teno ae i‏ ۳ ea enact 6 ‏ومامتوطه1 و‎

صفحه 7:
توانایی‌های لازم برای تبدیل نرم‌افزار به مهندسی * فازهاى طراحى و ساخت به طور كامل از هم جدا شون ‎Tee‏ ا ا ا سات و ساخت مناسب و آماده باشد. سا و ‎rome ess‏ قد ‎CHER‏ ‎Sere els eter‏ ل كت ۳ ea enact 0 0

صفحه 8:
ميزان فعاليتهاى صورت كرفته در توسعه نرمافزار * تجزيه و تحليل (5أ5لا|813) ‎١5‏ / * طراحى (0©51010]) 17 7¥¥ Code/Unit Test) w1,/ ss cus * * تست سيستم/يكيارجه (©5ع1 دوأعغوعغىا/ممعؤوا5) 184 لع تار ۱۱۸ vi. dmplementation/Install) W2s,>1 * ۳ ea enact 8 0

صفحه 9:
متدولوژی‌های 16 ۸0/موجود eXtreme Programming Yella) Crystal Family of Methodologies Feature Driven Development Dynamic System Development ۳ ea enact 9 ‏ومامتوطه1 و‎ Method

صفحه 10:
مشخصات يروزههايى كه از روشهاى ©8011 استفاده م ىكنند (۱۱۱۱6۲/) : ۱ ‏ره‎ Greys Coors ‏تکرار پذیر بودن (6۲311۷6]]) با دوره‌های تکرار کوتاه‎ * ‏كه موجب رسيدكى سريع و صحت در عملكرد مى كردد.‎ POE gee cae ‏ا ل ل‎ ts * صرفه جويى در فرايند توسعه با كنار كذارى تمام فعاليتهاى غير ضرورى * قابل تطبيق با ريسكهاى جديدى كه احتمال بروز دارند. ۳ ea enact 10 0

صفحه 11:
مشخصات يروزههايى كه از روشهاى ©8011 استفاده م ىكنند : )/۱۱۱۱6۲( 00 روند فرايند افزايشى كه موجب مىشود يروثه تابع كرا شده و در كامهاى كوجك ساخته شود. روند همگرلیی و افزایشی که موجب کاهش ریسک ‎ES aoe‏ يشتيبانى 0 ل در همه فرایندها و تکنولوژی‌ها از افراد پروژه طرفدارى و ايشان را يشتيبانى مى كنند. روش كارى به صورت همكارى و ايجاد ارتباط باس ۳ ea enact ‏ومامتوطه1 و‎

صفحه 12:
توسعه نرم‌افزار به صورت ۸۵016 * ترس از شکست پروژه موجب می‌شود که فرایندی وأمسصر عساو ويك “عاق درف * يك فرايند بزرك و ييجيده مى تولند مسائل بزركى اناه كي 5000 en ۱ ‏ا‎ ‏تکنیک‌های ساده برای رسیدن به اهداف, به وجود‎ ‏آمده اند.‎ ۳ ea enact 12 0

صفحه 13:
13 The Agile Alliance گروهی از متخصصین صنعتی گرد هم آمده ند تا ارزشها و قوانينى را ايجاد كنند كه براى تيمهاى ا ا ل ل 0 تغييرات را بدهد. اين كروه خود را ۸0116 6 نامیده اند و بیانیه ارزش‌های ‎eer Un. Ce (=‏ 0 ۳ ea enact ‏ومامتوطه1 و‎

صفحه 14:
02 * ما می‌خواهيم فرایند ایجاد کنیم که بنا بر اعتقاد ما مى تواند أن جيزى را كه نكرانش هستيم از بين ببرد. ‎op ule allel O‏ ره ‎Sy ae‏ ا 5 7 پروژه محصولی نامرغوب تولید نماید. - پروژه با تاخیر انجام شود. ‎tet yo rer eS ey oy eS ii‏ را م ا ‎ce Rel ane‏ 0 ‎۳ ea enact 14 ‏ومامتوطه1 و‎

صفحه 15:
02 * اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار ‎ee a eee oe lie‏ هم دارند معمولا خيلى بيشتر از كروهى برنامه نويس ‎Polo Veg) OS cee os‏ ۰ ۰ کار می‌کنند. - تصور نداشته باشيد مجموعهاى از ابزارهاى بزركتر و بهتر به طور خودکار موجب بهبود کار شما می‌شوند. ۳ ea enact 15 0

صفحه 16:
؟ اهمیت نرم‌افزار عملیاتی نسبت به مستندات کامل لت ا كت - مستندات بیش از حد بدتر از مستندات بسیار محدود ابت زيرا توليد اين مستندات زمان ريادى خواهد ارد ل ی - دو مستندى كه بهترين شكل مىىتواند اطلاعات را به اعضاى جديد تيم منتقل كند. كد و خود تيم مىباشد. ۳ ea enact 16 0

صفحه 17:

صفحه 18:
18 نرمفزار باید به طور متناوب» از چندین هفته تا چندین ماه یکبار به مشتری تحویل داده شود. افراد مربوط به کسب و کار و توسعه دهندگان باید به صورت روزانة در طول يروقّه با هم همكارى داشته باشند. پروثه را بر پلیه افراد با انگیزه شكل دهيد. نيازها و مجح ای وا رای ای ات کی ما اعتماد كرده و اجازه دهيد كار را انجام دهند. ۳ ea enact ‏ومامتوطه1 و‎

صفحه 19:
بهترين راه براى بيان اطلاعات در تيم نرمافزار ‎ce)‏ ا 00 نرمافزار عملياتى اولين معيار اندازهكيرى يبشرفت است. نرمافزار با همكارى 1 زور ۱ 001ع/اع(آ هاء و اع 5لا ها انجام م ىكيرد. در یرب ی یز رای ریت ری 0 * سادگی یک اصل اولیه می‌باشد. 19 ۳ ea enact ‏ومامتوطه1 و‎

صفحه 20:
‎ates‏ رس تست ارو وت وف ۱۳۱۱۱۱ ‏* در بازدهاى زمانى مشخصى تيمها بررسى م ىكنند ‎20 ‏كه حكونه كارايى خود را افزايش دهند. ‎۳ ea enact ‏ومامتوطه1 و‎

صفحه 21:
مدل‌های فرایند ۸۸0116 * eXtreme Programming (XP) * Adaptive Software Development (ASD) * Dynamic Systems Development Method (DSDM) * Scrum * Crystal * Feature Driven Development ٠ Agile Modeling ۳ ea enact Pat ‏ومامتوطه1 و‎

Agileتوسعه فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده :پويا جافريان 1 ‏Artificial Intelligent System ‏s Laboratory ايده اصلي توسعه Agile نرمافزار ب+ا انجام آن و راههاي بهتري را براي توس+عه ‌ • ”م+ا ‌ كمك به ديگران براي انجام آن ،نشان خواهيم داد“ ارزشهاي زير دست يافته ايم : ‌ • در طي اين كار ما به – – – – اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار نرمافزار عملياتي نسبت به مستندات كامل اهميت ‌ اهميت همكاري مشتري نسبت به مذاكرات در حين قرارداد اهميت پاسخ به تغييرات نسبت به پيگيري يك طرح اوليه • ب+ا توج+ه ب+ه مطال+ب باال ،درحال+ي ك+ه مسائل مطرح شده در ميباشن+د ،مسائل مطرح س+مت چ+پ جمالت داراي اهمي+ت ‌ شده در سمت راست از اهميت باالتري برخوردارند. 2 ‏Artificial Intelligent System ‏s Laboratory توسعه نرم‌افزار Agile ميتوان+د س+يستم موفق را • توس+عه ب+ه روش ‌ Agile سريع تحويل دهد. • توس+عه Agileبر ارتباطات و همكاري پيوسته ميان توسعه دهندگان و مشتريان تاكيد دارد. 3 ‏Artificial Intelligent System ‏s Laboratory توسعه نرم‌افزار Agile • مهندس+ي نرم‌افزار به روش Agileبر مبناي فلس+فه رضاي+ت مشتري ،تحوي+ل نرم‌افزار ب+ه صورت تيمهاي نرم‌افزاري كوچ+ك (متشكل از افزایش+ی‌ ، مهندس+ين نرم‌افزار و ذينفعان) ،روش‌هاي غير فورمال ،و محصوالت كاري (Work )Productsكوچك و حداقل بنا شده است. • رهنمودهاي مهندس+ي نرم‌افزار به روش Agileبر ‌ تحوي+ل ب+ه موق+ع نرم‌افزار عمليات+ي ب+ه صورت مرحلهاي در طي آناليز و طراحي تاكيد دارد. ‌ 4 ‏Artificial Intelligent System ‏s Laboratory Agilityچ+يست؟ • پاسخگويي موثر (سريع و سازگار) به تغييرات • ارتباطات موثر ميان همه ذينفعان • قراردادن مشتري در تيم نرم‌افزاري • تشكي+ل ي+ك تي+م براي اينك+ه كار انجام شده تحت كنترل باشد ميشود : و اين موارد موجب ‌ • تحوي+ل س+ريع و افزايشي ()Incremental نرمافزار ‌ 5 ‏Artificial Intelligent System ‏s Laboratory فرايند Agile نيازهاي ارائه شده (سناريو‌ها) توسط مشتري • از ‌ ميگيرد. نشات ‌ طرحها ،كوتاه مدت هستند. • ‌ • توسعه نرم‌افزار به صورت چرخشي با تاكيد زياد بر روي فعاليت‌هاي ساخت سیستم • تحويل نرم افزار در چندین افزایش ()Increment مييابد. • در صورت تغيير ،با تغييرات تطابق ‌ 6 ‏Artificial Intelligent System ‏s Laboratory تواناييهاي الزم براي تبديل نرم‌افزار به مهندسي ‌ فازهاي طراح+ي و س+اخت ب+ه طور كام+ل از هم جدا • ‌ شوند. • تعيين و ارائه يك برنامه ريزي قابل پيشگويي • طراح+ي محص+ول ب+ه طوري ك+ه ب+ه اندازه كافي براي ساخت مناسب و آماده باشد. • انجام فاز ساخت با نيروي انساني كم هزينه • در نظ+ر گرفت+ن ميزان ارزندگ+ي محص+ول كه ارتباط مستقيم با زمان و نيروي انساني دارد. 7 ‏Artificial Intelligent System ‏s Laboratory فعاليتهاي صورت گرفته در توسعه نرم‌افزار ‌ ميزان % 16 )Analysis( تجزيه و تحليل % 17 )Design( طراحي % 34 )Code/Unit Test( واحد/ تست كد )System/Integration Test( يكپارچه/يستم+ت س+تس 18% 8% )Documentation( مستند سازي 7% )Implementation/Install( نصب/اجرا Artificial Intelligent System s Laboratory • • • • • • 8 موجودAgile ‌ متدولوژيهاي ‌ • • • • • eXtreme Programming Scrum Crystal Family of Methodologies Feature Driven Development Dynamic System Development Method Artificial Intelligent System s Laboratory 9 مشخصات پروژه‌هايي كه از روش‌هاي Agileاستفاده مي‌كنند (‌: )Miller • • • • • 10 پيمانهاي بودن ( )Modularityدر س+طح فرايند ‌ توسعه تكرار پذي+ر بودن ( )Iterativeبا دوره‌هاي تكرار كوتاه ميگردد. كه موجب رسيدگي سريع و صحت در +عملكرد ‌ دورههاي تكرار از يك تا شش هفته زمانبندي با ‌ ص+رفه جوي+ي در فراين+د توس+عه با كنار گذاري تمام فعاليتهاي غير ضروري ‌ ريسكهاي جديدي كه احتمال بروز دارند. ‌ قابل تطبيق با ‏Artificial Intelligent System ‏s Laboratory مشخصات پروژه‌هايي كه از روش‌هاي Agileاستفاده مي‌كنند (‌: )Miller ميشود پروژ+ه تابع • رون+د فراين+د افزايش+ي ك+ه موج+ب ‌ گرا شده و در گام‌هاي كوچك ساخته شود. • رون+د همگراي+ي و افزايش+ي ك+ه موج+ب كاه+ش ريسك ميشود. ‌ • پشتيبان+ي از نيروي انس+اني ،فرايند‌هاي زيركانه در هم+ه فرايند‌ه+ا و تكنولوژي‌ه+ا از افراد پروژه ميكنند. طرفداري و ايشان را پشتيباني ‌ • روش كاري ب+ه صورت همكاري و ايجاد ارتباط ميباشد. ‌ 11 ‏Artificial Intelligent System ‏s Laboratory توسعه نرم‌افزار به صورت Agile ميشود كه فرايندي • ترس از شكس+ت پروژ+ه موج+ب ‌ با محدوديت‌هاي زياد خلق شود. ميتوان+د مس+ائل بزرگي • ي+ك فراين+د بزرگ و پيچيده ‌ ايجاد كند. • قواني+ن و ارزش‌هاي توسعه نرم‌افزار Agileبراي جلوگيري از بزرگ‌شدن چرخ+ه فراين+د و تمركز بر تكنيكهاي س+اده براي رس+يدن ب+ه اهداف ،به وجود ‌ آمده اند. 12 ‏Artificial Intelligent System ‏s Laboratory The Agile Alliance • گروه+ي از متخص+صين ص+نعتي گرد ه+م آمده ان+د تا ارزشه+ا و قوانين+ي را ايجاد كنن+د كه براي تيم‌هاي ‌ نرمافزار امكان توس+عه س+ريع و پاس+خگويي به ‌ تغييرات را بدهد .اين گروه خود را Agile Allianceناميده ان++د و بيانيه ارزش‌هاي Agileرا ارائه نموده اند. 13 ‏Artificial Intelligent System ‏s Laboratory بيانيه Agile ميخواهيم فرايند ايجاد كنيم كه بنا بر اعتقاد • ما ‌ ميتواند آن چيزي را كه نگرانش هستيم از بين ما ‌ ببرد. • ما نگران مسائل زير هستيم : – – – – – 14 پروژه محصول غلطي ايجاد نمايد. پروژه محصولي نامرغوب توليد نمايد. پروژه با تاخير انجام شود. مجبور شويم 80ساعت در هفته كار كنيم. انجام پروژه براي ما جذاب و مفرح نباشد. ‏Artificial Intelligent System ‏s Laboratory بيانيه Agile • اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار – گروهي از برنامه نويسان معمولي كه ارتباط مناسبي با هم دارند معموالً خيلي بيشتر از گروهي برنامه نويس قوي كه نمي‌توانند باهم ارتباط مناسبي داشته باشند كار مي‌كنند. – تصور نداشته باشيد مجموعه‌اي از ابزار‌هاي بزرگتر و بهتر به طور خودكار موجب بهبود كار شما مي‌شوند. 15 ‏Artificial Intelligent System ‏s Laboratory • اهميت نرم‌افزار عملياتي نسبت به مستندات كامل – نرم‌افزار بدون مستندات مفهومي ندارد. – مستندات بيش از حد بدتر از مستندات بسيار محدود است زيرا توليد اين مستندات زمان زيادي خواهد برد و هماهنگ نگه داشتن آن با كد دشوار است. – دو مستندي كه بهترين شكل مي‌تواند اطالعات را به اعضاي جديد تيم منتقل كند ،كد و خود تيم مي‌باشد. 16 ‏Artificial Intelligent System ‏s Laboratory • اهميت همكاري مشتري نسبت به مذاكرات در حين قرارداد – پروژه موفق ،پروژه اي است كه شامل دريافت پاسخ از مشتريان به طور متناوب و معمول باشد. 17 ‏Artificial Intelligent System ‏s Laboratory • نرم‌افزار باي+د ب+ه طور متناوب ،از چندي+ن هفت+ه تا چندين ماه يكبار به مشتري تحويل داده شود. • افراد مربوط ب+ه كس+ب و كار و توس+عه دهندگان بايد ب+ه ص+ورت روزان+ه در طول پروژ+ه ب+ا هم همكاري داشته باشند. • پروژ+ه را بر پاي+ه افراد ب+ا انگيزه شك+ل دهي+د ،نياز‌ها و محي+ط مناس+ب را براي آن‌ه+ا فراه+م كني+د ،ب+ه آن‌ها اعتماد كرده و اجازه دهيد كار را انجام دهند. 18 ‏Artificial Intelligent System ‏s Laboratory • بهترين راه براي بيان اطالعات در تيم نرم‌افزار ميباشد. مباحثه رو در رو ‌ نرمافزار عملياتي اولين معيار اندازه‌گيري پيشرفت • ‌ است. نرمافزار با همكاري Sponserها، • ‌ ميگيرد. Developerها ،و Userها انجام ‌ • توجه مستمر به تعالي فني و طراحي خوب موجب ميشود. افزايش ‌ Agility ميباشد. • سادگي يك اصل اوليه ‌ 19 ‏Artificial Intelligent System ‏s Laboratory • بهترين معماري ،نياز‌ها و طراحي از تيم‌هاي ميآيد. Self-Organizingبه دست ‌ • در بازه‌هاي زماني مشخصي تيم‌ها بررسي مي‌كنند كه چگونه كارايي خود را افزايش دهند. 20 ‏Artificial Intelligent System ‏s Laboratory Agile مدلهاي فرايند ‌ • eXtreme Programming (XP) • Adaptive Software Development (ASD) • Dynamic Systems Development Method (DSDM) • Scrum • Crystal • Feature Driven Development • Agile Modeling Artificial Intelligent System s Laboratory 21

62,000 تومان