240 likes | 419 Views
eXtreme Programming. فصل 4 درس مهندسي نرمافزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان. XP چيست ؟. XP يك متدولوژي Lightweigt براي تيم هايي با اندازه كوچك يا متوسط است كه در محيطي با نياز هاي مبهم و متغير به توسعه نرم افزار مشغول هستند.
E N D
eXtreme Programming فصل 4 درس مهندسي نرمافزار 2 دكتر احمد عبداله زاده بارفروش تهيه كننده : پويا جافريان Artificial Intelligent Systems Labratory
XP چيست ؟ • XP يك متدولوژي Lightweigt براي تيمهايي با اندازه كوچك يا متوسط است كه در محيطي با نيازهاي مبهم و متغير به توسعه نرمافزار مشغول هستند. • يك رويكرد قانونمند و سنجيده براي توسعه نرمافزار ميباشد. • پركاربرد ترين فرايند Agile است كه توسط Kent Beck پيشنهاد داده شده است. Artificial Intelligent Systems Labratory
eXtreme Programing (XP) • طرح ريزي در XP • ارائه User Stories • ارزيابي و اندازه گيري User Stories و اختصاص هزينه به هريك • گروه بندي Story ها براي تحويل افزايشي • تعيين تاريخ تحويل • بعد از اولين تحويل و مشخص شدن سرعت پروژه، تاريخهاي تحويل افزايشهاي بعدي نيز مشخص ميشود. Artificial Intelligent Systems Labratory
User Story Artificial Intelligent Systems Labratory
eXtreme Programing (XP) • طراحي در XP • بر مبناي قانون KIS (Keep it Simple) • توصيه به استفاده از كارتهاي CRC • براي مسائل طراحي پيچيده، Prototypeايجاد شود. • توصيه به انجام Refactoring (بهبود افزايشي طراحي برنامه ) Artificial Intelligent Systems Labratory
eXtreme Programing (XP) • كد نويسي در XP • توصيه به ساخت Unit Test قبل از آغاز كد نويسي • توصيه به انجام “Pair Programming” • تست در XP • انجام Unit Test به صورت روزانه • تست Acceptance توسط مشتري انجام شده و براي تست موارد قابل مشاهده توسط وي انجام ميگيرد. Artificial Intelligent Systems Labratory
دوره حيات XP (Life Cycle) • Exploration • Planning • Iteration • Production • Maintenance Artificial Intelligent Systems Labratory
چه زماني از XP استفاده شود ؟ • پروژههاي با ريسك بالا با نيازهاي پويا • XP براي گروههاي كوچك برنامه نويسي از 2 تا 12 مناسب ميباشد. Artificial Intelligent Systems Labratory
مشخصههاي XP • توسعه افزايشي و تكراري • انجام تست هاي Unit و Regression به صورت مستمر و خودكار • توسعه دهندگان وظيفه نوشتن تستهاي Unit را برعهده دارند در حالي كه مشتريان تستهاي Acceptance را مينويسند. Artificial Intelligent Systems Labratory
مشخصههاي XP • تست Unit • يك روش تست براي اصلاح يك ماژول در Source Code • مزاياي Unit Test • تشويق به تغييرات • ساده كردن يكپارچه سازي Artificial Intelligent Systems Labratory
مشخصههاي XP • تست Regression • تست Regression نوعي از تست است كه براي آشكار سازي باگهاي Regression به كار ميرود. • باگهاي Regression، باگهايي هستند كه شامل كاركردهايي از نرمافزار ميشوند كه قبلاً كار ميكرده ولي اكنون از كار ايستاده است. • روش معمول براي تست Regression ، انجام تستهاي قبلي و چك كردن اينكه خطاهاي قبلي درست شده اند يا خير ميباشد. Artificial Intelligent Systems Labratory
مشخصههاي XP • Pair Programming • در روش Pair Programmingدو مهندس نرمافزار وظيفه توسعه را با همكاري هم بر روي يك Workstation بر عهده دارند. Artificial Intelligent Systems Labratory
مشخصههاي XP • تعاملات بين كاربر و مشتريان • هر تيم XP بايد شامل يك نماينده از مشتري (Customer on Site) باشد كه وظيفه تعيين اولويتهاي كاري و پاسخگويي به مشكلات را بر عهده دارد. Artificial Intelligent Systems Labratory
مشخصات XP • Refactoring • به تغيير سورس كد بدون تغيير رفتار بيروني آن، Refactoring ميگويند. • عمل تست اطمينان حاصل ميكند كه انجام Refactoring رفتار بيروني را تغيير نداده است. • اين عمل بايد تنها در صورت احساس نياز به آن براي بهبود طراحي داخلي، الگوريتم و ... انجام شود. Artificial Intelligent Systems Labratory
مشخصات XP • Shared Code Ownership • هريك از اعضاي تيم از همه قطعه كدها اطلاع دارد ( هر فرد مسئوليت كل سيستم را بر عهده دارد) • در صورتي كه بخشي از كد تنها در اختيار يك شخص خاص باشد، در صورتي كه سازمان را ترك كند يا حادثه اي پيش بيايد، انجام تغييرات بر روي آن كد دشوار ميگردد. Artificial Intelligent Systems Labratory
مشخصات XP • Simplicity • يك طراحي ساده معمولاً زمان كمتري براي اتمام نياز دارد تا يك طراحي پيچيده • Organize the System with a metaphor • يك System Metaphor انتخاب گردد تا نام گذاري كلاس ها و متدها به صورت يكپارچه انجام گيرد. • امكان حدس زدن نام يك كلاس يا متد در صورتي كه موجود باشد موجب صرفه جويي در زمان ميشود. Artificial Intelligent Systems Labratory
مشخصات XP • 40-Hour Week • XP به طور كلي اجازه كار كردن تا 40 ساعت در هفته را ميدهد. • اين امر وقت كافي براي استراحت اعضا را فراهم كرده و در صورت شروع يك مسئله جديد ذهن افراد همچنان كارايي لازم را دارد. Artificial Intelligent Systems Labratory
نقاط قوت Pair Programming • بهبود ارتباطات ميان اعضاي تيم • افزايش قانون مندي • بهبود كيفيت طراحي كه موجب كد ساده تر و با قابليت تغيير بالاتر ميشود. • كاهش defect ها ( زيرا شخص دوم به طور مستمر در حال چك كردن وجود خطاها ميباشد. ) • كد نويسي دو نفر بسيار جذاب تر از كد نويسي به تنهايي است. • تنها نقطه ضعف اين روش، بروز conflict هاي ارتباطي بين دو نفر ميباشد. Artificial Intelligent Systems Labratory
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
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
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
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
نقش ها و مسئوليتهاي XP • برنامه نويس (Programmer) • مشتري (Customer) • آزمونگر (Tester) • پي گيرنده (Tracker) • مربي (Coach) • مشاور (Consultant) • مديريت يا رئيس بزرگ (Manager or Big Boss) Artificial Intelligent Systems Labratory