Extreme programming
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

eXtreme Programming PowerPoint PPT Presentation


  • 67 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Extreme programming

eXtreme Programming

فصل 4

درس مهندسي نرم‌افزار 2

دكتر احمد عبداله زاده بارفروش

تهيه كننده : پويا جافريان

Artificial Intelligent Systems Labratory


Extreme programming

XP چيست ؟

  • XP يك متدولوژي Lightweigt براي تيم‌هايي با اندازه كوچك يا متوسط است كه در محيطي با نياز‌هاي مبهم و متغير به توسعه نرم‌افزار مشغول هستند.

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

  • پركاربرد ترين فرايند Agile‌ است كه توسط Kent Beck‌ پيشنهاد داده شده است.

Artificial Intelligent Systems Labratory


Extreme programing xp

eXtreme Programing (XP)

  • طرح ريزي در XP

    • ارائه User Stories

    • ارزيابي و اندازه گيري User Stories و اختصاص هزينه به هريك

    • گروه بندي Story ها براي تحويل افزايشي

    • تعيين تاريخ تحويل

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

Artificial Intelligent Systems Labratory


User story

User Story

Artificial Intelligent Systems Labratory


Extreme programing xp1

eXtreme Programing (XP)

  • طراحي در XP

  • بر مبناي قانون KIS (Keep it Simple)

  • توصيه به استفاده از كارت‌هاي CRC

  • براي مسائل طراحي پيچيده، Prototype‌ايجاد شود.

  • توصيه به انجام Refactoring (بهبود افزايشي طراحي برنامه )

Artificial Intelligent Systems Labratory


Extreme programing xp2

eXtreme Programing (XP)

  • كد نويسي در XP

    • توصيه به ساخت Unit Test قبل از آغاز كد نويسي

    • توصيه به انجام “Pair Programming”

  • تست در XP

    • انجام Unit Test به صورت روزانه

    • تست Acceptance توسط مشتري انجام شده و براي تست موارد قابل مشاهده توسط وي انجام مي‌گيرد.

Artificial Intelligent Systems Labratory


Xp life cycle

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

  • Exploration

  • Planning

  • Iteration

  • Production

  • Maintenance

Artificial Intelligent Systems Labratory


Extreme programming

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

  • پروژه‌هاي با ريسك بالا با نياز‌هاي پويا

  • XP براي گروه‌هاي كوچك برنامه نويسي از 2 تا 12 مناسب مي‌باشد.

Artificial Intelligent Systems Labratory


Extreme programming

مشخصه‌هاي XP

  • توسعه افزايشي و تكراري

  • انجام تست ‌هاي Unit و Regression به صورت مستمر و خودكار

  • توسعه دهندگان وظيفه نوشتن تست‌هاي Unit را برعهده دارند در حالي كه مشتريان تست‌هاي Acceptance را مي‌نويسند.

Artificial Intelligent Systems Labratory


Extreme programming

مشخصه‌هاي XP

  • تست Unit

    • يك روش تست براي اصلاح يك ماژول در Source Code

  • مزاياي Unit Test

    • تشويق به تغييرات

    • ساده كردن يكپارچه سازي

Artificial Intelligent Systems Labratory


Extreme programming

مشخصه‌هاي XP

  • تست Regression

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

    • باگ‌هاي Regression، باگ‌هايي هستند كه شامل كاركرد‌هايي از نرم‌افزار مي‌شوند كه قبلاً كار مي‌كرده ولي اكنون از كار ايستاده است.

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

Artificial Intelligent Systems Labratory


Extreme programming

مشخصه‌هاي XP

  • Pair Programming‌

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

Artificial Intelligent Systems Labratory


Extreme programming

مشخصه‌هاي XP

  • تعاملات بين كاربر و مشتريان

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

Artificial Intelligent Systems Labratory


Extreme programming

مشخصات XP

  • Refactoring

  • به تغيير سورس كد بدون تغيير رفتار بيروني آن، Refactoring مي‌گويند.

  • عمل تست اطمينان حاصل مي‌كند كه انجام Refactoring رفتار بيروني را تغيير نداده است.

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

Artificial Intelligent Systems Labratory


Extreme programming

مشخصات XP

  • Shared Code Ownership

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

  • در صورتي كه بخشي از كد تنها در اختيار يك شخص خاص باشد، در صورتي كه سازمان را ترك كند يا حادثه اي پيش بيايد، انجام تغييرات بر روي آن كد دشوار مي‌گردد.

Artificial Intelligent Systems Labratory


Extreme programming

مشخصات XP

  • Simplicity

  • يك طراحي ساده معمولاً زمان كمتري براي اتمام نياز دارد تا يك طراحي پيچيده

  • Organize the System with a metaphor

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

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

Artificial Intelligent Systems Labratory


Extreme programming

مشخصات XP

  • 40-Hour Week

  • XP به طور كلي اجازه كار كردن تا 40 ساعت در هفته را مي‌دهد.

  • اين امر وقت كافي براي استراحت اعضا را فراهم كرده و در صورت شروع يك مسئله جديد ذهن افراد همچنان كارايي لازم را دارد.

Artificial Intelligent Systems Labratory


Pair programming

نقاط قوت Pair Programming

  • بهبود ارتباطات ميان اعضاي تيم

  • افزايش قانون مندي

  • بهبود كيفيت طراحي كه موجب كد ساده تر و با قابليت تغيير بالاتر مي‌شود.

  • كاهش defect ها ( زيرا شخص دوم به طور مستمر در حال چك كردن وجود خطاها مي‌باشد. )

  • كد نويسي دو نفر بسيار جذاب تر از كد نويسي به تنهايي است.

  • تنها نقطه ضعف اين روش، بروز conflict‌ هاي ارتباطي بين دو نفر مي‌باشد.

Artificial Intelligent Systems Labratory


Rules and practices of extreme programming

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 programming1

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 programming2

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 programming3

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


Extreme programming

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

  • برنامه نويس (Programmer)

  • مشتري (Customer)

  • آزمونگر (Tester)

  • پي گيرنده (Tracker)

  • مربي (Coach)

  • مشاور (Consultant)

  • مديريت يا رئيس بزرگ (Manager or Big Boss)

Artificial Intelligent Systems Labratory


  • Login