View
220
Download
4
Tags:
Embed Size (px)
Citation preview
Artificial Intelligent Systems Labratory
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طراحي در •قggانون • مبنggاي KIS (Keep itبر
Simple) CRCهgاي توصgيه بgه اسgتفاده از كارت•پيچيggده، • طggراحي مسggائل براي
Prototype .ايجاد شود (بهبgود Refactoringتوصgيه بgه انجgام •
افزايشي طراحي برنامه )
Artificial Intelligent Systems Labratory
6
eXtreme Programing (XP)
XPكد نويسي در • قبgل از آغgاز Unit Testتوصgيه بgه سgاخت –
كد نويسي ”Pair Programming“توصgيه بgه انجgام –
XPتست در • به صورت روزانه Unit Testانجام –مشggتري Acceptanceتسggت – توسggط
قابgل مgوارد تسgت بgراي و شgده انجgام گيرد. مشاهده توسط وي انجام مي
Artificial Intelligent Systems Labratory
7
XP (Life Cycle)دوره حيات
• Exploration• Planning• Iteration • Production • Maintenance
Artificial Intelligent Systems Labratory
8
استفاده شود ؟ XPچه زماني از
هاي پويا هاي با ريسك باال با نيازپروژه••XPهاي كوچك برنامه براي گروه
باشد. مناسب مي12 تا 2نويسي از
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در افgزار وظيفgه توسgعه را بgا مهنgدس نرم
يgggك روي بgggر هم همكgggاري 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نقاط قوت
بهبود ارتباطات ميان اعضاي تيم •افزايش قانون مندي •بهبgود كيفيت طgراحي كgه مgوجب كgد سgاده •
شود. تر و با قابليت تغيير باالتر ميبgه defectكاهش • دوم زيgرا شgخص ) هgا
وجgود كgردن چgك حgال در مسgتمر طgور باشد. ) خطاها مي
تgر از كgد • كد نويسgي دو نفgر بسgيار جgذاب نويسي به تنهايي است.
conflictتنهgا نقطgه ضgعف اين روش، بgروز •باشد. هاي ارتباطي بين دو نفر مي
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(