extreme programming
Download
Skip this Video
Download Presentation
eXtreme Programming

Loading in 2 Seconds...

play fullscreen
1 / 23

EXtreme Programming - PowerPoint PPT Presentation


  • 100 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'EXtreme Programming' - danniell


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

slide2
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

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

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

Artificial Intelligent Systems Labratory

slide17
مشخصات 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

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

Artificial Intelligent Systems Labratory

ad