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

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

  • View
    220

  • Download
    4

Embed Size (px)

Citation preview

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

Artificial Intelligent Systems Labratory

1

eXtreme Programming

4فصل 2درس مهندسي نرم افزار

دكتر احمد عبداله زاده بارفروشتهيه كننده : پويا جافريان

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

Artificial Intelligent Systems Labratory

2

XPچيست ؟

•XP يك متدولوژي Lightweigt براي هايي با اندازه كوچك يا متوسط ‌تيم

هاي مبهم و ‌است كه در محيطي با نيازافزار مشغول ‌متغير به توسعه نرم

هستند. يك رويكرد قانونمند و سنجيده براي •

باشد. ‌افزار مي‌توسعه نرم است كه ‌Agileپركاربرد ترين فرايند •

پيشنهاد داده شده ‌Kent Beckتوسط است.

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

Artificial Intelligent Systems Labratory

3

eXtreme Programing (XP)

XPطرح ريزي در •User Storiesارائه – و User Storiesارزيابي و اندازه گيري –

اختصاص هزينه به هريك ها براي تحويل Storyگروه بندي –

افزايشي تعيين تاريخ تحويل –بعد از اولين تحويل و مشخص شدن –

هاي تحويل ‌سرعت پروژه، تاريخشود. ‌هاي بعدي نيز مشخص مي‌افزايش

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

Artificial Intelligent Systems Labratory

4

User Story

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

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ام •

افزايشي طراحي برنامه )

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

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ام گيرد. ‌مشاهده توسط وي انجام مي

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

Artificial Intelligent Systems Labratory

7

XP (Life Cycle)دوره حيات

• Exploration• Planning• Iteration • Production • Maintenance

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

Artificial Intelligent Systems Labratory

8

استفاده شود ؟ XPچه زماني از

هاي پويا ‌هاي با ريسك باال با نياز‌پروژه••XPهاي كوچك برنامه ‌ براي گروه

باشد. ‌ مناسب مي12 تا 2نويسي از

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

Artificial Intelligent Systems Labratory

9

XPهاي ‌مشخصه

توسعه افزايشي و تكراري • و Unitهاي ‌انجام تست •

Regression به صورت مستمر و خودكار

توسعه دهندگان وظيفه نوشتن • را برعهده دارند در Unitهاي ‌تست

هاي ‌حالي كه مشتريان تستAcceptanceنويسند. ‌ را مي

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

Artificial Intelligent Systems Labratory

10

XPهاي ‌مشخصه

Unitتست •يك روش تست براي اصالح يك ماژول –

Source Codeدر

Unit Testمزاياي •تشويق به تغييرات –ساده كردن يكپارچه سازي–

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

Artificial Intelligent Systems Labratory

11

XPهاي ‌مشخصه

Regressionتست • نوعي از تست است Regressionتست –

هاي ‌كه براي آشكار سازي باگRegressionرود. ‌ به كار مي

هايي هستند ‌، باگRegressionهاي ‌باگ–افزار ‌هايي از نرم‌كه شامل كاركرد

� كار مي‌مي كرده ولي اكنون ‌شوند كه قبالاز كار ايستاده است.

، Regression معمول براي تست ‌روش–هاي قبلي و چك كردن اينكه ‌انجام تست

هاي قبلي درست شده اند يا خير ‌خطاباشد. ‌مي

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

Artificial Intelligent Systems Labratory

12

XPهاي ‌مشخصه

•Pair Programming‌

روش • دو ‌Pair Programmingدر افgزار وظيفgه توسgعه را بgا ‌مهنgدس نرم

يgggك روي بgggر هم همكgggاري Workstation .بر عهده دارند

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

Artificial Intelligent Systems Labratory

13

XPهاي ‌مشخصه

تعامالت بين كاربر و مشتريان • بايد شامل يك نماينده از XPهر تيم –

) باشد Customer on Siteمشتري (هاي كاري و ‌كه وظيفه تعيين اولويت

پاسخگويي به مشكالت را بر عهده دارد.

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

Artificial Intelligent Systems Labratory

14

XPمشخصات

• Refactoringبه تغيير سورس كد بدون تغيير رفتار •

گويند. ‌ ميRefactoringبيروني آن، كند ‌عمل تست اطمينان حاصل مي•

رفتار بيروني Refactoringكه انجام را تغيير نداده است.

اين عمل بايد تنها در صورت احساس •نياز به آن براي بهبود طراحي داخلي،

الگوريتم و ... انجام شود.

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

Artificial Intelligent Systems Labratory

15

XPمشخصات

• Shared Code Ownershipهريك از اعضاي تيم از همه قطعه •

ها اطالع دارد ( هر فرد مسئوليت ‌كدكل سيستم را بر عهده دارد)

در صورتي كه بخشي از كد تنها در •اختيار يك شخص خاص باشد، در

صورتي كه سازمان را ترك كند يا حادثه اي پيش بيايد، انجام تغييرات

گردد. ‌بر روي آن كد دشوار مي

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

Artificial Intelligent Systems Labratory

16

XPمشخصات

• Simplicity� زمان كمتري براي • يك طراحي ساده معموال

اتمام نياز دارد تا يك طراحي پيچيده• Organize the System with a

metaphor انتخاب گردد تا نام System Metaphorيك •

ها به صورت يكپارچه ‌گذاري كالس ها و متدانجام گيرد.

امكان حدس زدن نام يك كالس يا متد در •صورتي كه موجود باشد موجب صرفه جويي

شود. ‌در زمان مي

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

Artificial Intelligent Systems Labratory

17

XPمشخصات

• 40-Hour Week •XP به طور كلي اجازه كار كردن تا

دهد. ‌ ساعت در هفته را مي40اين امر وقت كافي براي استراحت •

اعضا را فراهم كرده و در صورت شروع يك مسئله جديد ذهن افراد

همچنان كارايي الزم را دارد.

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

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روز •باشد. ‌هاي ارتباطي بين دو نفر مي

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

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.

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

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.

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

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.

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

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

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

Artificial Intelligent Systems Labratory

23

XPهاي ‌نقش ها و مسئوليت

)Programmerبرنامه نويس (•)Customerمشتري (•)Testerآزمونگر (•)Trackerپي گيرنده (•)Coachمربي (•)Consultantمشاور (• Managerمديريت يا رئيس بزرگ (•

or Big Boss(