1 / 23

eXtreme Programming

eXtreme Programming. فصل 4 درس مهندسي نرم‌افزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان. XP چيست ؟. XP يك متدولوژي Lightweigt براي تيم ‌ هايي با اندازه كوچك يا متوسط است كه در محيطي با نياز ‌ هاي مبهم و متغير به توسعه نرم ‌ افزار مشغول هستند.

danniell
Download Presentation

eXtreme Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. XP چيست ؟ • XP يك متدولوژي Lightweigt براي تيم‌هايي با اندازه كوچك يا متوسط است كه در محيطي با نياز‌هاي مبهم و متغير به توسعه نرم‌افزار مشغول هستند. • يك رويكرد قانونمند و سنجيده براي توسعه نرم‌افزار مي‌باشد. • پركاربرد ترين فرايند Agile‌ است كه توسط Kent Beck‌ پيشنهاد داده شده است. Artificial Intelligent Systems Labratory

  3. eXtreme Programing (XP) • طرح ريزي در XP • ارائه User Stories • ارزيابي و اندازه گيري User Stories و اختصاص هزينه به هريك • گروه بندي Story ها براي تحويل افزايشي • تعيين تاريخ تحويل • بعد از اولين تحويل و مشخص شدن سرعت پروژه، تاريخ‌هاي تحويل افزايش‌هاي بعدي نيز مشخص مي‌شود. Artificial Intelligent Systems Labratory

  4. User Story Artificial Intelligent Systems Labratory

  5. eXtreme Programing (XP) • طراحي در XP • بر مبناي قانون KIS (Keep it Simple) • توصيه به استفاده از كارت‌هاي CRC • براي مسائل طراحي پيچيده، Prototype‌ايجاد شود. • توصيه به انجام Refactoring (بهبود افزايشي طراحي برنامه ) Artificial Intelligent Systems Labratory

  6. eXtreme Programing (XP) • كد نويسي در XP • توصيه به ساخت Unit Test قبل از آغاز كد نويسي • توصيه به انجام “Pair Programming” • تست در XP • انجام Unit Test به صورت روزانه • تست Acceptance توسط مشتري انجام شده و براي تست موارد قابل مشاهده توسط وي انجام مي‌گيرد. Artificial Intelligent Systems Labratory

  7. دوره حيات XP (Life Cycle) • Exploration • Planning • Iteration • Production • Maintenance Artificial Intelligent Systems Labratory

  8. چه زماني از XP استفاده شود ؟ • پروژه‌هاي با ريسك بالا با نياز‌هاي پويا • XP براي گروه‌هاي كوچك برنامه نويسي از 2 تا 12 مناسب مي‌باشد. Artificial Intelligent Systems Labratory

  9. مشخصه‌هاي XP • توسعه افزايشي و تكراري • انجام تست ‌هاي Unit و Regression به صورت مستمر و خودكار • توسعه دهندگان وظيفه نوشتن تست‌هاي Unit را برعهده دارند در حالي كه مشتريان تست‌هاي Acceptance را مي‌نويسند. Artificial Intelligent Systems Labratory

  10. مشخصه‌هاي XP • تست Unit • يك روش تست براي اصلاح يك ماژول در Source Code • مزاياي Unit Test • تشويق به تغييرات • ساده كردن يكپارچه سازي Artificial Intelligent Systems Labratory

  11. مشخصه‌هاي XP • تست Regression • تست Regression نوعي از تست است كه براي آشكار سازي باگ‌هاي Regression به كار مي‌رود. • باگ‌هاي Regression، باگ‌هايي هستند كه شامل كاركرد‌هايي از نرم‌افزار مي‌شوند كه قبلاً كار مي‌كرده ولي اكنون از كار ايستاده است. • روش‌ معمول براي تست Regression ، انجام تست‌هاي قبلي و چك كردن اينكه خطا‌هاي قبلي درست شده اند يا خير مي‌باشد. Artificial Intelligent Systems Labratory

  12. مشخصه‌هاي XP • Pair Programming‌ • در روش Pair Programming‌دو مهندس نرم‌افزار وظيفه توسعه را با همكاري هم بر روي يك Workstation بر عهده دارند. Artificial Intelligent Systems Labratory

  13. مشخصه‌هاي XP • تعاملات بين كاربر و مشتريان • هر تيم XP بايد شامل يك نماينده از مشتري (Customer on Site) باشد كه وظيفه تعيين اولويت‌هاي كاري و پاسخگويي به مشكلات را بر عهده دارد. Artificial Intelligent Systems Labratory

  14. مشخصات XP • Refactoring • به تغيير سورس كد بدون تغيير رفتار بيروني آن، Refactoring مي‌گويند. • عمل تست اطمينان حاصل مي‌كند كه انجام Refactoring رفتار بيروني را تغيير نداده است. • اين عمل بايد تنها در صورت احساس نياز به آن براي بهبود طراحي داخلي، الگوريتم و ... انجام شود. Artificial Intelligent Systems Labratory

  15. مشخصات XP • Shared Code Ownership • هريك از اعضاي تيم از همه قطعه كد‌ها اطلاع دارد ( هر فرد مسئوليت كل سيستم را بر عهده دارد) • در صورتي كه بخشي از كد تنها در اختيار يك شخص خاص باشد، در صورتي كه سازمان را ترك كند يا حادثه اي پيش بيايد، انجام تغييرات بر روي آن كد دشوار مي‌گردد. Artificial Intelligent Systems Labratory

  16. مشخصات XP • Simplicity • يك طراحي ساده معمولاً زمان كمتري براي اتمام نياز دارد تا يك طراحي پيچيده • Organize the System with a metaphor • يك System Metaphor انتخاب گردد تا نام گذاري كلاس ها و متد‌ها به صورت يكپارچه انجام گيرد. • امكان حدس زدن نام يك كلاس يا متد در صورتي كه موجود باشد موجب صرفه جويي در زمان مي‌شود. Artificial Intelligent Systems Labratory

  17. مشخصات XP • 40-Hour Week • XP به طور كلي اجازه كار كردن تا 40 ساعت در هفته را مي‌دهد. • اين امر وقت كافي براي استراحت اعضا را فراهم كرده و در صورت شروع يك مسئله جديد ذهن افراد همچنان كارايي لازم را دارد. Artificial Intelligent Systems Labratory

  18. نقاط قوت Pair Programming • بهبود ارتباطات ميان اعضاي تيم • افزايش قانون مندي • بهبود كيفيت طراحي كه موجب كد ساده تر و با قابليت تغيير بالاتر مي‌شود. • كاهش defect ها ( زيرا شخص دوم به طور مستمر در حال چك كردن وجود خطاها مي‌باشد. ) • كد نويسي دو نفر بسيار جذاب تر از كد نويسي به تنهايي است. • تنها نقطه ضعف اين روش، بروز conflict‌ هاي ارتباطي بين دو نفر مي‌باشد. Artificial Intelligent Systems Labratory

  19. Rules and Practices of Extreme Programming • Planning • User stories; • Release planning; • small releases; • Business Analysis; • Project Velocity; • Iterations; • Iteration planning; • Move people around; • Stand-up meeting day; • Fix XP when it breaks. Artificial Intelligent Systems Labratory

  20. Rules and Practices of Extreme Programming • Designing • Simplicity • System metaphor. • Use CRC cards for design sessions. • Spike solutions to reduce risk. • No functionality added early. • Refactor. Artificial Intelligent Systems Labratory

  21. Rules and Practices of Extreme Programming • Coding • Customer is always available; • Standards. • Code the unit test first; • Pair programmed; • Integrates often; • Collective code ownership. Optimization till last; • No overtime. Artificial Intelligent Systems Labratory

  22. Rules and Practices of Extreme Programming • Testing • All code must have and pass unit tests before it can be released; • When a bug is found tests are created; • Acceptance tests are run often and the score is published Artificial Intelligent Systems Labratory

  23. نقش ها و مسئوليت‌هاي XP • برنامه نويس (Programmer) • مشتري (Customer) • آزمونگر (Tester) • پي گيرنده (Tracker) • مربي (Coach) • مشاور (Consultant) • مديريت يا رئيس بزرگ (Manager or Big Boss) Artificial Intelligent Systems Labratory

More Related