Presentation is loading. Please wait.

Presentation is loading. Please wait.

Artificial Intelligent Systems Laboratory 1 توسعه Agile فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان.

Similar presentations


Presentation on theme: "Artificial Intelligent Systems Laboratory 1 توسعه Agile فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان."— Presentation transcript:

1 Artificial Intelligent Systems Laboratory 1 توسعه Agile فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان

2 Artificial Intelligent Systems Laboratory 2 ايده اصلي توسعه Agile ”ما راه‌هاي بهتري را براي توسعه نرم‌افزار با انجام آن و كمك به ديگران براي انجام آن، نشان خواهيم داد “ در طي اين كار ما به ارزش‌هاي زير دست يافته ايم : – اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار – اهميت نرم‌افزار عملياتي نسبت به مستندات كامل – اهميت همكاري مشتري نسبت به مذاكرات در حين قرارداد – اهميت پاسخ به تغييرات نسبت به پيگيري يك طرح اوليه با توجه به مطالب بالا، درحالي كه مسائل مطرح شده در سمت چپ جملات داراي اهميت مي‌باشند، مسائل مطرح شده در سمت راست از اهميت بالاتري برخوردارند.

3 Artificial Intelligent Systems Laboratory 3 توسعه نرم‌افزار Agile توسعه به روش Agile مي‌تواند سيستم موفق را سريع تحويل دهد. توسعه Agile بر ارتباطات و همكاري پيوسته ميان توسعه دهندگان و مشتريان تاكيد دارد.

4 Artificial Intelligent Systems Laboratory 4 توسعه نرم‌افزار Agile مهندسي نرم‌افزار به روش Agile بر مبناي فلسفه رضايت مشتري، تحويل نرم‌افزار به صورت افزایشی، تيم‌هاي نرم‌افزاري كوچك ( متشكل از مهندسين نرم‌افزار و ذينفعان ) ، روش‌هاي غير فورمال، و محصولات كاري (Work Products) كوچك و حداقل بنا شده است. رهنمود‌هاي مهندسي نرم‌افزار به روش Agile بر تحويل به موقع نرم‌افزار عملياتي به صورت مرحله‌اي در طي آناليز و طراحي تاكيد دارد.

5 Artificial Intelligent Systems Laboratory 5 Agility چيست ؟ پاسخگويي موثر ( سريع و سازگار ) به تغييرات ارتباطات موثر ميان همه ذينفعان قراردادن مشتري در تيم نرم‌افزاري تشكيل يك تيم براي اينكه كار انجام شده تحت كنترل باشد و اين موارد موجب مي‌شود : تحويل سريع و افزايشي (Incremental) نرم‌افزار

6 Artificial Intelligent Systems Laboratory 6 فرايند Agile از نياز‌هاي ارائه شده ( سناريو‌ها ) توسط مشتري نشات مي‌گيرد. طرح‌ها، كوتاه مدت هستند. توسعه نرم‌افزار به صورت چرخشي با تاكيد زياد بر روي فعاليت‌هاي ساخت سیستم تحويل نرم افزار در چندین افزایش ( Increment ) در صورت تغيير، با تغييرات تطابق مي‌يابد.

7 Artificial Intelligent Systems Laboratory 7 توانايي‌هاي لازم براي تبديل نرم‌افزار به مهندسي فاز‌هاي طراحي و ساخت به طور كامل از هم جدا شوند. تعيين و ارائه يك برنامه ريزي قابل پيشگويي طراحي محصول به طوري كه به اندازه كافي براي ساخت مناسب و آماده باشد. انجام فاز ساخت با نيروي انساني كم هزينه در نظر گرفتن ميزان ارزندگي محصول كه ارتباط مستقيم با زمان و نيروي انساني دارد.

8 Artificial Intelligent Systems Laboratory 8 ميزان فعاليت‌هاي صورت گرفته در توسعه نرم‌افزار تجزيه و تحليل (Analysis) 16 % طراحي (Design) 17 % تست كد / واحد (Code/Unit Test) 34 % تست سيستم / يكپارچه ( System/Integration Test ) 18% مستند سازي (Documentation) 8% اجرا / نصب (Implementation/Install) 7%

9 Artificial Intelligent Systems Laboratory 9 متدولوژي‌هاي Agile ‌موجود eXtreme Programming Scrum Crystal Family of Methodologies Feature Driven Development Dynamic System Development Method

10 Artificial Intelligent Systems Laboratory 10 مشخصات پروژه‌هايي كه از روش‌هاي Agile استفاده مي‌كنند (Miller) : ‌ پيمانه‌اي بودن (Modularity) در سطح فرايند توسعه تكرار پذير بودن (Iterative) با دوره‌هاي تكرار كوتاه كه موجب رسيدگي سريع و صحت در عملكرد مي‌گردد. زمانبندي با دوره‌هاي تكرار از يك تا شش هفته صرفه جويي در فرايند توسعه با كنار گذاري تمام فعاليت‌هاي غير ضروري قابل تطبيق با ريسك‌هاي جديدي كه احتمال بروز دارند.

11 Artificial Intelligent Systems Laboratory 11 مشخصات پروژه‌هايي كه از روش‌هاي Agile استفاده مي‌كنند (Miller) : ‌ روند فرايند افزايشي كه موجب مي‌شود پروژه تابع گرا شده و در گام‌هاي كوچك ساخته شود. روند همگرايي و افزايشي كه موجب كاهش ريسك مي‌شود. پشتيباني از نيروي انساني، فرايند‌هاي زيركانه در همه فرايند‌ها و تكنولوژي‌ها از افراد پروژه طرفداري و ايشان را پشتيباني مي‌كنند. روش كاري به صورت همكاري و ايجاد ارتباط مي‌باشد.

12 Artificial Intelligent Systems Laboratory 12 توسعه نرم‌افزار به صورت Agile ترس از شكست پروژه موجب مي‌شود كه فرايندي با محدوديت‌هاي زياد خلق شود. يك فرايند بزرگ و پيچيده مي‌تواند مسائل بزرگي ايجاد كند. قوانين و ارزش‌هاي توسعه نرم‌افزار Agile براي جلوگيري از بزرگ‌شدن چرخه فرايند و تمركز بر تكنيك‌هاي ساده براي رسيدن به اهداف، به وجود آمده اند.

13 Artificial Intelligent Systems Laboratory 13 The Agile Alliance گروهي از متخصصين صنعتي گرد هم آمده اند تا ارزش‌ها و قوانيني را ايجاد كنند كه براي تيم‌هاي نرم‌افزار امكان توسعه سريع و پاسخگويي به تغييرات را بدهد. اين گروه خود را Agile Alliance ناميده اند و بيانيه ارزش‌هاي Agile را ارائه نموده اند.

14 Artificial Intelligent Systems Laboratory 14 بيانيه Agile ما مي‌خواهيم فرايند ايجاد كنيم كه بنا بر اعتقاد ما مي‌تواند آن چيزي را كه نگرانش هستيم از بين ببرد. ما نگران مسائل زير هستيم : – پروژه محصول غلطي ايجاد نمايد. – پروژه محصولي نامرغوب توليد نمايد. – پروژه با تاخير انجام شود. – مجبور شويم 80 ساعت در هفته كار كنيم. – انجام پروژه براي ما جذاب و مفرح نباشد.

15 Artificial Intelligent Systems Laboratory 15 بيانيه Agile اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار – گروهي از برنامه نويسان معمولي كه ارتباط مناسبي با هم دارند معمولاً خيلي بيشتر از گروهي برنامه نويس قوي كه نمي‌توانند باهم ارتباط مناسبي داشته باشند كار مي‌كنند. – تصور نداشته باشيد مجموعه‌اي از ابزار‌هاي بزرگتر و بهتر به طور خودكار موجب بهبود كار شما مي‌شوند.

16 Artificial Intelligent Systems Laboratory 16 اهميت نرم‌افزار عملياتي نسبت به مستندات كامل – نرم‌افزار بدون مستندات مفهومي ندارد. – مستندات بيش از حد بدتر از مستندات بسيار محدود است زيرا توليد اين مستندات زمان زيادي خواهد برد و هماهنگ نگه داشتن آن با كد دشوار است. – دو مستندي كه بهترين شكل مي‌تواند اطلاعات را به اعضاي جديد تيم منتقل كند، كد و خود تيم مي‌باشد.

17 Artificial Intelligent Systems Laboratory 17 اهميت همكاري مشتري نسبت به مذاكرات در حين قرارداد – پروژه موفق، پروژه اي است كه شامل دريافت پاسخ از مشتريان به طور متناوب و معمول باشد.

18 Artificial Intelligent Systems Laboratory 18 نرم‌افزار بايد به طور متناوب، از چندين هفته تا چندين ماه يكبار به مشتري تحويل داده شود. افراد مربوط به كسب و كار و توسعه دهندگان بايد به صورت روزانه در طول پروژه با هم همكاري داشته باشند. پروژه را بر پايه افراد با انگيزه شكل دهيد، نياز‌ها و محيط مناسب را براي آن‌ها فراهم كنيد، به آن‌ها اعتماد كرده و اجازه دهيد كار را انجام دهند.

19 Artificial Intelligent Systems Laboratory 19 بهترين راه براي بيان اطلاعات در تيم نرم‌افزار مباحثه رو در رو مي‌باشد. نرم‌افزار عملياتي اولين معيار اندازه‌گيري پيشرفت است. نرم‌افزار با همكاري Sponser ها، Developer ها، و User ها انجام مي‌گيرد. توجه مستمر به تعالي فني و طراحي خوب موجب افزايش Agility مي‌شود. سادگي يك اصل اوليه مي‌باشد.

20 Artificial Intelligent Systems Laboratory 20 بهترين معماري، نياز‌ها و طراحي از تيم‌هاي Self-Organizing به دست مي‌آيد. در بازه‌هاي زماني مشخصي تيم‌ها بررسي مي‌كنند كه چگونه كارايي خود را افزايش دهند.

21 Artificial Intelligent Systems Laboratory 21 مدل‌هاي فرايند Agile eXtreme Programming (XP) Adaptive Software Development (ASD) Dynamic Systems Development Method (DSDM) Scrum Crystal Feature Driven Development Agile Modeling


Download ppt "Artificial Intelligent Systems Laboratory 1 توسعه Agile فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان."

Similar presentations


Ads by Google