SlideShare ist ein Scribd-Unternehmen logo
1 von 38
‫افراطی‬ ‫نویسی‬ ‫برنامه‬
‫دهقان‬ ‫محمد‬
‫کیفیت‬
‫نویسی‬ ‫برنامه‬‫جفتی‬
‫توسعه‬‫محور‬ ‫آزمون‬(Test-Driven
Development)
‫نویسی‬ ‫برنامه‬‫افراطی‬
‫بندی‬‫جمع‬
‫مراجع‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 2
‫کیفیت‬
‫خارجی‬
‫رود‬‫می‬ ‫انتظار‬ ‫که‬ ‫همانطور‬
‫رو‬‫می‬ ‫انتظار‬ ‫که‬ ‫همانطوری‬
‫باشد‬ ‫شده‬ ‫ساخته‬ ‫کارا‬
‫باشد‬ ‫متمرکز‬ ‫اهداف‬ ‫برروی‬
‫کیفیت‬
‫داخلی‬
‫تست‬ ‫قابلیت‬
‫بامعنی‬ ‫و‬ ‫رسا‬
‫ای‬‫پیمانه‬
‫ساده‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫کیفیت‬
3
‫نویسی‬‫برنامه‬
‫جفتی‬
Pair-programming
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 4
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 5
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 6
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 7
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 8
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 9
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 10
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 11
‫مزایا‬
‫مستمر‬ ‫بررسی‬ ‫و‬ ‫نقد‬
‫کمتر‬ ‫نقص‬
‫مشکل‬ ‫بهتر‬ ‫حل‬
‫تر‬‫صرفه‬ ‫به‬ ‫مقرون‬
«‫فشار‬-‫جفتی‬»‫تضمین‬ ،
‫موقع‬ ‫به‬ ‫تحویل‬
‫برای‬ ‫سریع‬ ‫رویکردی‬
‫یادگیری‬
‫اعضای‬ ‫بهتر‬ ‫معرفی‬
‫تیم‬ ‫جدید‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 12
‫دوتایی‬ ‫باید‬ ‫زمان‬ ‫چه‬
‫شوید؟‬
‫پیچیده‬ ‫کد‬
‫حیاتی‬ ‫های‬‫پروژه‬ ‫کد‬
‫است‬ ‫طراحی‬ ‫های‬ ‫تصمیم‬ ‫شامل‬ ‫که‬ ‫کدی‬
‫اعضای‬ ‫ی‬‫همه‬ ‫خواهید‬‫می‬ ‫که‬ ‫کد‬ ‫از‬ ‫ای‬‫ناحیه‬
‫کند‬‫می‬ ‫کار‬ ‫چطور‬ ‫بدانند‬ ‫تیم‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 13
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫محور‬ ‫آزمون‬ ‫توسعه‬
Test-Driven Development
•‫شده‬ ‫معرفی‬ ‫افزار‬‫نرم‬ ‫توسعه‬ ‫روش‬ ‫یک‬
‫توسط‬Beck‫سال‬ ‫در‬2003
•‫چابک‬ ‫توسعه‬ ‫متدهای‬ ‫از‬ ‫یکی‬
•‫از‬ ‫قبل‬ ‫آزمون‬ ‫نوشتن‬ ‫بر‬ ‫تاکید‬
‫سازی‬‫پیاده‬
•‫مشخص‬ ‫متد‬ ‫یک‬ ‫برای‬ ‫مشخص‬ ‫نیاز‬ ،‫آزمون‬
‫کند‬‫می‬ ‫آزمایش‬ ‫را‬ 14
‫نیازم‬
‫ها‬‫ندی‬
‫بررسی‬(‫آنالیز‬)
‫طراحی‬
‫کد‬
‫آزمایش‬
‫استقرار‬
‫از‬ ‫بیش‬9‫ماه‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 15
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 16
‫آزم‬
‫ایش‬
‫کد‬ ‫بازنگری‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫محور‬ ‫آزمون‬ ‫توسعه‬ ‫چرخه‬
17
‫کاربر‬ ‫های‬‫گزارش‬
‫وگو‬‫گفت‬
‫آزمایش‬
‫کد‬ ‫بازنگری‬
‫تدریجی‬ ‫استقرار‬
20‫دقیقه‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 18
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫مثال‬
‫نام‬ ‫با‬ ‫کالسی‬String calculator‫داریم‬
‫نام‬ ‫به‬ ‫متدی‬Sum String‫ورودی‬ ‫عنوان‬‫به‬ ‫که‬ ‫دارد‬
‫شامل‬ ‫را‬ ‫هایی‬‫رشته‬۰‫و‬۱‫یا‬ ‫و‬۲‫عدد‬(“2, 1”)
‫گرداند‬‫می‬ ‫باز‬ ‫را‬ ‫ها‬‫آن‬ ‫جمع‬ ‫و‬ ‫کند‬‫می‬ ‫دریافت‬
19
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫آزمون‬ ‫نوشتن‬
‫آزمون‬ ‫نامگذاری‬ ‫پیشنهادی‬ ‫الگوی‬
‫متدها‬(Test Method:)@Test
public void MethodName_StateUnderTest_ExpectedBehavior()
‫که‬ ‫متدی‬ ‫نام‬
‫شود‬‫می‬ ‫آزمون‬
‫که‬ ‫شرایطی‬
‫شود‬‫می‬ ‫آزمون‬
‫مورد‬ ‫رفتار‬
‫نتیجه‬ ‫در‬ ‫انتظار‬
‫تست‬
20
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫برای‬ ‫پیشنهادی‬ ‫الگوی‬
‫بدنه‬Unit Test
Arrange
‫را‬ ‫الزم‬ ‫های‬‫ورودی‬ ‫و‬ ‫ها‬‫شرط‬ ‫پیش‬ ‫تمام‬
‫کنیم‬‫می‬ ‫دهی‬‫سازمان‬
Act
‫یا‬ ‫شیء‬ ‫برروی‬ ‫آزمون‬ ‫برای‬ ‫الزم‬ ‫اعمال‬
‫شود‬‫می‬ ‫انجام‬ ‫نظر‬ ‫مورد‬ ‫متد‬
Assert
‫انتظار‬ ‫مورد‬ ‫نتایج‬ ‫که‬ ‫شویم‬‫می‬ ‫مدعی‬
‫باشد‬ ‫داده‬ ‫رخ‬
21
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 22
‫بازنگری‬
(Refactoring)
‫ای‬‫گونه‬‫به‬ ،‫افزاری‬‫نرم‬ ‫سیستم‬ ‫یک‬ ‫تغییر‬ ‫فرایند‬
‫عین‬ ‫در‬ ‫اما‬ ‫نکند‬ ‫تغییری‬ ‫آن‬ ‫خارجی‬ ‫رفتار‬ ‫که‬
‫یابد‬ ‫بهبود‬ ‫آن‬ ‫داخلی‬ ‫ساختار‬ ‫حال‬
‫کنیم؟‬ ‫بازنگری‬ ‫زمان‬ ‫چه‬
۱-‫تکرار‬ ‫که‬ ‫زمانی‬(duplication)‫دارد‬ ‫وجود‬
۲-‫قصد‬ ‫یا‬ ‫و‬ ‫کد‬ ‫شویم‬ ‫متوجه‬ ‫که‬‫هنگامی‬(intent)
‫نیست‬ ‫مشخص‬ ‫آن‬
۳-‫کد‬ ‫بوی‬ ‫از‬ ‫وقتی‬(code smell)‫شویم‬ ‫متوجه‬
‫دارد‬ ‫وجود‬ ‫مشکلی‬ ‫که‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
•‫هنوز‬ ‫که‬ ‫رو‬ ‫کاری‬ ‫چطور‬
‫آزمایش‬ ،‫ندادم‬ ‫انجام‬
‫کنم؟‬
•‫به‬ ‫ای‬‫عالقه‬ ‫نویسان‬‫برنامه‬
‫ندارند‬ ‫آزمون‬ ‫نوشتن‬
•‫رو‬ ‫ها‬‫آزمایش‬ ‫هزینه‬ ‫مشتری‬
‫ها‬‫چالش‬
23
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 24
‫مزایا‬
‫تر‬‫سریع‬ ‫بازخورد‬
‫اطمینان‬ ‫افزایش‬
‫دهندگان‬‫توسعه‬
‫کد‬ ‫کیفیت‬ ‫افزایش‬
‫داری‬‫نگه‬ ‫قابلیت‬ ‫افزایش‬
‫کد‬ ‫در‬ ‫تغییر‬ ‫ایجاد‬ ‫و‬
‫به‬ ‫نیاز‬ ‫ندرت‬‫به‬
‫افراطی‬ ‫نویسی‬‫برنامه‬
eXtreme Programming
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 25
‫تاریخچه‬ ‫و‬ ‫معرفی‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 26
o‫سال‬ ‫در‬1999‫وارد‬ ،‫بک‬ ‫کنت‬ ‫توسط‬
‫شد‬ ‫فرموله‬ ‫جفریس‬ ‫رون‬ ‫و‬ ‫کانینگهام‬
o‫افزاری‬‫نرم‬ ‫توسعه‬ ‫متدولوژی‬
‫چابک‬(‫متدها‬ ‫سایر‬:،‫اسکرام‬DSDM)
o‫رسمی‬ ‫های‬‫متدولوژی‬ ‫به‬ ‫واکنش‬ ‫در‬
‫شد‬ ‫طراحی‬
‫تاریخچه‬ ‫و‬ ‫معرفی‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 27
‫چرا؟‬
‫گذشته‬ ‫در‬:
o‫طراحی‬ ‫شروع‬ ‫از‬ ‫قبل‬ ‫نیازها‬ ‫تمام‬
‫شد‬‫می‬ ‫دریافت‬.
o‫ثابت‬ ‫توسعه‬ ‫فرایند‬ ‫از‬ ‫قبل‬ ‫نیازها‬
‫شدند‬‫می‬
o‫شد‬‫می‬ ‫مقاومت‬ ‫تغییرات‬ ‫در‬:‫چون‬
‫کردند‬‫می‬ ‫طوالنی‬ ‫را‬ ‫بندی‬‫زمان‬ ‫برنامه‬
o‫کامال‬ ‫که‬ ‫دادید‬‫می‬ ‫تحویل‬ ‫را‬ ‫محصولی‬
‫بود‬ ‫انتشار‬ ‫آماده‬5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 28
‫ها‬‫تفاوت‬ ‫و‬ ‫تغییرات‬
‫که‬ ‫دانیم‬‫می‬:
‫در‬ ‫توان‬‫نمی‬ ‫را‬ ‫ها‬‫نیازمندی‬ ‫ی‬‫همه‬
‫شناخت‬ ‫شروع‬
‫کرد‬ ‫خواهد‬ ‫تغییر‬ ‫نیازها‬
‫دادن‬ ‫وفق‬ ‫برای‬ ‫ابزار‬ ‫از‬ ‫استفاده‬
‫طبیعی‬ ‫فرایند‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫تغییرات‬
‫فرایند‬ ‫نه‬ ‫و‬ ‫اصول‬ ‫و‬ ‫ها‬‫ارزش‬ ‫بر‬ ‫تاکید‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 29
‫ها‬‫ارزش‬
‫ارتباط‬
‫چهره‬ ‫به‬ ‫چهره‬ ‫بصورت‬ ‫روز‬ ‫هر‬ ‫و‬ ‫است‬ ‫تیم‬ ‫از‬ ‫بخشی‬ ‫هرکس‬
‫کنند‬‫می‬ ‫برقرار‬ ‫ارتباط‬
‫سادگی‬
‫بیشتر‬ ‫نه‬ ‫و‬ ‫است‬ ‫نیاز‬ ‫مورد‬ ‫آنچه‬ ‫انجام‬ ‫و‬ ‫پرسیدن‬
‫بازخورد‬
‫با‬ ‫اغلب‬ ‫و‬ ‫دهیم‬‫می‬ ‫نشان‬ ‫اوایل‬ ‫در‬ ‫را‬ ‫افزار‬‫نرم‬ ‫معموال‬
‫ایجاد‬ ‫را‬ ‫نیاز‬ ‫مورد‬ ‫تغییر‬ ‫هرگونه‬ ‫و‬ ‫کنند‬‫می‬ ‫گوش‬ ‫دقت‬
‫کنند‬‫می‬
‫احترام‬
‫و‬ ‫کند‬‫می‬ ‫ارزش‬ ‫احساس‬ ‫هم‬ ،‫تیم‬ ‫عضو‬ ‫عنوان‬ ‫به‬ ‫هرکس‬
‫گذارد‬‫می‬ ‫احترام‬ ‫دیگران‬ ‫به‬ ‫هم‬ ‫و‬ ‫است‬ ‫احترام‬ ‫سزاوار‬
‫شجاعت‬
‫بگویید‬ ‫برآورد‬ ‫و‬ ‫پیشرفت‬ ‫مورد‬ ‫در‬ ‫را‬ ‫حقیقت‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 30
‫افراطی‬ ‫نویسی‬‫برنامه‬ ‫روش‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 31
‫ها‬‫روش‬ ‫و‬ ‫ها‬‫ارزش‬ ‫میان‬ ‫تفاوت‬
‫ها‬‫ارزش‬‫از‬ ‫تر‬‫مهم‬
‫ها‬‫روش‬‫هستند‬
‫انطباق‬ ‫برای‬ ‫تواند‬‫می‬ ‫که‬ ‫است‬ ‫ای‬‫جنبه‬
‫هستند‬ ‫متدولوژی‬ ‫از‬ ‫بخشی‬ ‫واقعا‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 32
‫رو‬‫پیش‬ ‫مسیر‬
‫های‬‫متدولوژی‬ ‫برخی‬ ‫اعتباری‬‫بی‬(‫متدهای‬
‫رسمی‬)‫افزار‬‫نرم‬ ‫مهندسی‬
‫توسعه‬ ‫های‬‫متدولوژی‬ ‫از‬ ‫استفاده‬ ‫افزایش‬
‫چابک‬ ‫افزاری‬‫نرم‬
‫قرار‬ ‫توجه‬ ‫مورد‬ ‫هرگز‬ ‫رسمی‬ ‫متدهای‬
‫که‬ ‫افرادی‬ ‫بوسیله‬ ‫که‬ ‫زمانی‬ ‫تا‬ ‫گیرند‬‫نمی‬
‫گیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫فهمند‬‫نمی‬ ‫را‬‫آن‬
T. Melham
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 33
‫مزایا‬
‫روز‬ ‫در‬ ‫بار‬ ‫چندین‬ ‫است‬ ‫ممکن‬ ‫جدید‬ ‫های‬‫نسخه‬
‫شود‬ ‫ساخته‬
‫دست‬ ‫به‬ ‫هفته‬ ‫دو‬ ‫هر‬ ،‫افزایشی‬ ‫های‬‫نسخه‬
‫رسند‬‫می‬ ‫مشتری‬
‫اجرا‬ ‫باید‬ ‫ها‬‫آزمون‬ ‫همه‬ ،‫نسخه‬ ‫هر‬ ‫برای‬
‫است‬ ‫پذیرش‬ ‫قابل‬ ‫درصورتی‬ ‫تنها‬ ‫نسخه‬ ‫و‬ ‫شوند‬
‫سر‬ ‫پشت‬ ‫موفقیت‬ ‫با‬ ‫را‬ ‫ها‬‫آزمایش‬ ‫ی‬‫همه‬ ‫که‬
‫باشد‬ ‫گذاشته‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 34
‫معایب‬
‫توسعه‬ ‫از‬ ‫بسیاری‬ ‫باشد‬ ‫سخت‬ ‫است‬ ‫ممکن‬
‫را‬ ‫روش‬ ‫این‬ ‫که‬ ‫کنید‬ ‫پیدا‬ ‫را‬ ‫دهندگان‬
‫بپذیرند‬
‫نباشند‬ ‫دسترس‬ ‫در‬ ‫است‬ ‫ممکن‬ ‫شما‬ ‫مشتریان‬
XP‫طراحی‬ ‫تا‬ ‫است‬ ‫محور‬ ‫کد‬ ‫ای‬‫توسعه‬ ‫بیشتر‬ ،
‫محور‬(‫نیست‬ ‫مناسب‬ ‫بزرگ‬ ‫های‬‫پروژه‬ ‫برای‬)
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 35
‫بندی‬‫جمع‬
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬
‫برنامه‬
‫ریزی‬
•‫کاربر‬ ‫های‬‫خواسته‬
‫شود‬‫می‬ ‫نوشته‬.
•‫ریزی‬‫برنامه‬ ‫ساخت‬
‫بندی‬‫زمان‬ ‫و‬ ‫انتشار‬
•‫متناوب‬ ‫ساخت‬
‫کوچک‬ ‫های‬‫نسخه‬
‫مدیریت‬
•‫باز‬ ‫کاری‬ ‫فضای‬ ‫تیم‬ ‫به‬
‫بدهید‬ ‫گیری‬ ‫تصمیم‬ ‫برای‬
•‫پایدار‬ ‫سرعتی‬ ‫تنظیم‬
•‫برگزار‬ ‫روز‬ ‫هر‬ ‫ای‬‫جلسه‬
‫شود‬‫طراحی‬
•‫سادگی‬
•‫ای‬‫دوره‬ ‫بررسی‬
•‫کلیدی‬ ‫های‬‫حل‬‫راه‬ ‫ایجاد‬
‫ریسک‬ ‫کاهش‬ ‫برای‬
•‫بازنگری‬ ‫امکان‬ ‫حد‬ ‫تا‬
‫باشد‬ ‫داشته‬
‫کد‬
•‫دسترس‬ ‫در‬ ‫همیشه‬ ‫مشتری‬
‫است‬
•‫توافق‬ ‫طبق‬ ‫باید‬ ‫کد‬
‫شود‬ ‫نوشته‬ ‫استانداردها‬
•‫واحد‬ ‫به‬ ‫اول‬ ‫باید‬ ‫کد‬
‫شود‬ ‫فرستاده‬ ‫آزمایش‬
•‫شده‬ ‫تولید‬ ‫کدهای‬ ‫همه‬
‫بصورت‬ ‫باید‬
‫نویسی‬‫برنامه‬-‫جفتی‬
‫باشند‬
‫آزمایش‬
•‫واحد‬ ‫باید‬ ‫کدها‬ ‫ی‬‫همه‬
‫باشند‬ ‫داشته‬ ‫آزمایش‬
•‫واحد‬ ‫باید‬ ‫کدها‬ ‫ی‬‫همه‬
‫از‬ ‫قبل‬ ‫را‬ ‫آزمایش‬
‫بگذارند‬ ‫سر‬ ‫پشت‬ ‫انتشار‬
•‫شوند‬‫می‬ ‫ساخته‬ ‫ها‬‫آزمایش‬
‫شوند‬ ‫پیدا‬ ‫ها‬‫باگ‬ ‫تا‬
•‫مورد‬ ‫ی‬‫نسخه‬ ‫معموال‬
‫اجرا‬ ‫ها‬‫آزمایش‬ ‫پذیرش‬
‫منتشر‬ ‫نتایج‬ ‫و‬ ‫شود‬‫می‬
‫شود‬‫می‬
36
‫منابع‬
:
[1] Planning Extreme Programming: by Kent Beck, Martin Fowler; 2001;
ISBN 0-201-71091-9
[2] © IBM Corporation; Demystifying Extreme Programming: “XP distilled” revisited, Part 1: Roy Miller;
13 August 2002;
http://ibm.com/developerWorks/
[3] Impractical things, Pair Programming and TDD: Marcello Duarte
[4] The Pragmatic Programmer: From Journeyman to Master,
by Andrew Hunt and David Thomas
[5] http://www.xprogramming.com/xpmag/whatisxp.htm
[6] http://www.extremeprogramming.org
[7] http://www.agilemanifesto.org/
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 37
‫تصاوی‬
‫ر‬:
[8] File:Commons-logo.svg
Source: http://upload.wikimedia.org/wikipedia/en/4/4a/Commons-logo.svg
License:?; Contributors:?; Original artist:?
[9] File:Extreme_Programming.svg
Source:
http://upload.wikimedia.org/wikipedia/commons/8/84/Extreme_Programming.svg
License: CC BY-SA 3.0; Contributors: https://en.wikipedia.org/wiki/File:XP-
feedback.gif; Original artist: Don Wells
[10] File:Folder_Hexagonal_Icon.svg
Source: http://upload.wikimedia.org/wikipedia/en/4/48/Folder_Hexagonal_Icon.svg
License: Cc-bysa-3.0; Contributors: ?; Original artist: ?
5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 38

Weitere ähnliche Inhalte

Empfohlen

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Empfohlen (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

شرح برنامه‌نویسی مفرط (XP)

  • 2. ‫کیفیت‬ ‫نویسی‬ ‫برنامه‬‫جفتی‬ ‫توسعه‬‫محور‬ ‫آزمون‬(Test-Driven Development) ‫نویسی‬ ‫برنامه‬‫افراطی‬ ‫بندی‬‫جمع‬ ‫مراجع‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 2
  • 3. ‫کیفیت‬ ‫خارجی‬ ‫رود‬‫می‬ ‫انتظار‬ ‫که‬ ‫همانطور‬ ‫رو‬‫می‬ ‫انتظار‬ ‫که‬ ‫همانطوری‬ ‫باشد‬ ‫شده‬ ‫ساخته‬ ‫کارا‬ ‫باشد‬ ‫متمرکز‬ ‫اهداف‬ ‫برروی‬ ‫کیفیت‬ ‫داخلی‬ ‫تست‬ ‫قابلیت‬ ‫بامعنی‬ ‫و‬ ‫رسا‬ ‫ای‬‫پیمانه‬ ‫ساده‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫کیفیت‬ 3
  • 5. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 5
  • 6. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 6
  • 7. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 7
  • 8. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 8
  • 9. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 9
  • 10. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 10
  • 11. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 11
  • 12. ‫مزایا‬ ‫مستمر‬ ‫بررسی‬ ‫و‬ ‫نقد‬ ‫کمتر‬ ‫نقص‬ ‫مشکل‬ ‫بهتر‬ ‫حل‬ ‫تر‬‫صرفه‬ ‫به‬ ‫مقرون‬ «‫فشار‬-‫جفتی‬»‫تضمین‬ ، ‫موقع‬ ‫به‬ ‫تحویل‬ ‫برای‬ ‫سریع‬ ‫رویکردی‬ ‫یادگیری‬ ‫اعضای‬ ‫بهتر‬ ‫معرفی‬ ‫تیم‬ ‫جدید‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 12
  • 13. ‫دوتایی‬ ‫باید‬ ‫زمان‬ ‫چه‬ ‫شوید؟‬ ‫پیچیده‬ ‫کد‬ ‫حیاتی‬ ‫های‬‫پروژه‬ ‫کد‬ ‫است‬ ‫طراحی‬ ‫های‬ ‫تصمیم‬ ‫شامل‬ ‫که‬ ‫کدی‬ ‫اعضای‬ ‫ی‬‫همه‬ ‫خواهید‬‫می‬ ‫که‬ ‫کد‬ ‫از‬ ‫ای‬‫ناحیه‬ ‫کند‬‫می‬ ‫کار‬ ‫چطور‬ ‫بدانند‬ ‫تیم‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 13
  • 14. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫محور‬ ‫آزمون‬ ‫توسعه‬ Test-Driven Development •‫شده‬ ‫معرفی‬ ‫افزار‬‫نرم‬ ‫توسعه‬ ‫روش‬ ‫یک‬ ‫توسط‬Beck‫سال‬ ‫در‬2003 •‫چابک‬ ‫توسعه‬ ‫متدهای‬ ‫از‬ ‫یکی‬ •‫از‬ ‫قبل‬ ‫آزمون‬ ‫نوشتن‬ ‫بر‬ ‫تاکید‬ ‫سازی‬‫پیاده‬ •‫مشخص‬ ‫متد‬ ‫یک‬ ‫برای‬ ‫مشخص‬ ‫نیاز‬ ،‫آزمون‬ ‫کند‬‫می‬ ‫آزمایش‬ ‫را‬ 14
  • 16. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 16
  • 17. ‫آزم‬ ‫ایش‬ ‫کد‬ ‫بازنگری‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫محور‬ ‫آزمون‬ ‫توسعه‬ ‫چرخه‬ 17
  • 18. ‫کاربر‬ ‫های‬‫گزارش‬ ‫وگو‬‫گفت‬ ‫آزمایش‬ ‫کد‬ ‫بازنگری‬ ‫تدریجی‬ ‫استقرار‬ 20‫دقیقه‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 18
  • 19. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫مثال‬ ‫نام‬ ‫با‬ ‫کالسی‬String calculator‫داریم‬ ‫نام‬ ‫به‬ ‫متدی‬Sum String‫ورودی‬ ‫عنوان‬‫به‬ ‫که‬ ‫دارد‬ ‫شامل‬ ‫را‬ ‫هایی‬‫رشته‬۰‫و‬۱‫یا‬ ‫و‬۲‫عدد‬(“2, 1”) ‫گرداند‬‫می‬ ‫باز‬ ‫را‬ ‫ها‬‫آن‬ ‫جمع‬ ‫و‬ ‫کند‬‫می‬ ‫دریافت‬ 19
  • 20. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫آزمون‬ ‫نوشتن‬ ‫آزمون‬ ‫نامگذاری‬ ‫پیشنهادی‬ ‫الگوی‬ ‫متدها‬(Test Method:)@Test public void MethodName_StateUnderTest_ExpectedBehavior() ‫که‬ ‫متدی‬ ‫نام‬ ‫شود‬‫می‬ ‫آزمون‬ ‫که‬ ‫شرایطی‬ ‫شود‬‫می‬ ‫آزمون‬ ‫مورد‬ ‫رفتار‬ ‫نتیجه‬ ‫در‬ ‫انتظار‬ ‫تست‬ 20
  • 21. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫برای‬ ‫پیشنهادی‬ ‫الگوی‬ ‫بدنه‬Unit Test Arrange ‫را‬ ‫الزم‬ ‫های‬‫ورودی‬ ‫و‬ ‫ها‬‫شرط‬ ‫پیش‬ ‫تمام‬ ‫کنیم‬‫می‬ ‫دهی‬‫سازمان‬ Act ‫یا‬ ‫شیء‬ ‫برروی‬ ‫آزمون‬ ‫برای‬ ‫الزم‬ ‫اعمال‬ ‫شود‬‫می‬ ‫انجام‬ ‫نظر‬ ‫مورد‬ ‫متد‬ Assert ‫انتظار‬ ‫مورد‬ ‫نتایج‬ ‫که‬ ‫شویم‬‫می‬ ‫مدعی‬ ‫باشد‬ ‫داده‬ ‫رخ‬ 21
  • 22. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 22 ‫بازنگری‬ (Refactoring) ‫ای‬‫گونه‬‫به‬ ،‫افزاری‬‫نرم‬ ‫سیستم‬ ‫یک‬ ‫تغییر‬ ‫فرایند‬ ‫عین‬ ‫در‬ ‫اما‬ ‫نکند‬ ‫تغییری‬ ‫آن‬ ‫خارجی‬ ‫رفتار‬ ‫که‬ ‫یابد‬ ‫بهبود‬ ‫آن‬ ‫داخلی‬ ‫ساختار‬ ‫حال‬ ‫کنیم؟‬ ‫بازنگری‬ ‫زمان‬ ‫چه‬ ۱-‫تکرار‬ ‫که‬ ‫زمانی‬(duplication)‫دارد‬ ‫وجود‬ ۲-‫قصد‬ ‫یا‬ ‫و‬ ‫کد‬ ‫شویم‬ ‫متوجه‬ ‫که‬‫هنگامی‬(intent) ‫نیست‬ ‫مشخص‬ ‫آن‬ ۳-‫کد‬ ‫بوی‬ ‫از‬ ‫وقتی‬(code smell)‫شویم‬ ‫متوجه‬ ‫دارد‬ ‫وجود‬ ‫مشکلی‬ ‫که‬
  • 23. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ •‫هنوز‬ ‫که‬ ‫رو‬ ‫کاری‬ ‫چطور‬ ‫آزمایش‬ ،‫ندادم‬ ‫انجام‬ ‫کنم؟‬ •‫به‬ ‫ای‬‫عالقه‬ ‫نویسان‬‫برنامه‬ ‫ندارند‬ ‫آزمون‬ ‫نوشتن‬ •‫رو‬ ‫ها‬‫آزمایش‬ ‫هزینه‬ ‫مشتری‬ ‫ها‬‫چالش‬ 23
  • 24. 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 24 ‫مزایا‬ ‫تر‬‫سریع‬ ‫بازخورد‬ ‫اطمینان‬ ‫افزایش‬ ‫دهندگان‬‫توسعه‬ ‫کد‬ ‫کیفیت‬ ‫افزایش‬ ‫داری‬‫نگه‬ ‫قابلیت‬ ‫افزایش‬ ‫کد‬ ‫در‬ ‫تغییر‬ ‫ایجاد‬ ‫و‬ ‫به‬ ‫نیاز‬ ‫ندرت‬‫به‬
  • 25. ‫افراطی‬ ‫نویسی‬‫برنامه‬ eXtreme Programming 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 25
  • 26. ‫تاریخچه‬ ‫و‬ ‫معرفی‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 26
  • 27. o‫سال‬ ‫در‬1999‫وارد‬ ،‫بک‬ ‫کنت‬ ‫توسط‬ ‫شد‬ ‫فرموله‬ ‫جفریس‬ ‫رون‬ ‫و‬ ‫کانینگهام‬ o‫افزاری‬‫نرم‬ ‫توسعه‬ ‫متدولوژی‬ ‫چابک‬(‫متدها‬ ‫سایر‬:،‫اسکرام‬DSDM) o‫رسمی‬ ‫های‬‫متدولوژی‬ ‫به‬ ‫واکنش‬ ‫در‬ ‫شد‬ ‫طراحی‬ ‫تاریخچه‬ ‫و‬ ‫معرفی‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 27
  • 28. ‫چرا؟‬ ‫گذشته‬ ‫در‬: o‫طراحی‬ ‫شروع‬ ‫از‬ ‫قبل‬ ‫نیازها‬ ‫تمام‬ ‫شد‬‫می‬ ‫دریافت‬. o‫ثابت‬ ‫توسعه‬ ‫فرایند‬ ‫از‬ ‫قبل‬ ‫نیازها‬ ‫شدند‬‫می‬ o‫شد‬‫می‬ ‫مقاومت‬ ‫تغییرات‬ ‫در‬:‫چون‬ ‫کردند‬‫می‬ ‫طوالنی‬ ‫را‬ ‫بندی‬‫زمان‬ ‫برنامه‬ o‫کامال‬ ‫که‬ ‫دادید‬‫می‬ ‫تحویل‬ ‫را‬ ‫محصولی‬ ‫بود‬ ‫انتشار‬ ‫آماده‬5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 28
  • 29. ‫ها‬‫تفاوت‬ ‫و‬ ‫تغییرات‬ ‫که‬ ‫دانیم‬‫می‬: ‫در‬ ‫توان‬‫نمی‬ ‫را‬ ‫ها‬‫نیازمندی‬ ‫ی‬‫همه‬ ‫شناخت‬ ‫شروع‬ ‫کرد‬ ‫خواهد‬ ‫تغییر‬ ‫نیازها‬ ‫دادن‬ ‫وفق‬ ‫برای‬ ‫ابزار‬ ‫از‬ ‫استفاده‬ ‫طبیعی‬ ‫فرایند‬ ‫یک‬ ‫عنوان‬ ‫به‬ ‫تغییرات‬ ‫فرایند‬ ‫نه‬ ‫و‬ ‫اصول‬ ‫و‬ ‫ها‬‫ارزش‬ ‫بر‬ ‫تاکید‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 29
  • 30. ‫ها‬‫ارزش‬ ‫ارتباط‬ ‫چهره‬ ‫به‬ ‫چهره‬ ‫بصورت‬ ‫روز‬ ‫هر‬ ‫و‬ ‫است‬ ‫تیم‬ ‫از‬ ‫بخشی‬ ‫هرکس‬ ‫کنند‬‫می‬ ‫برقرار‬ ‫ارتباط‬ ‫سادگی‬ ‫بیشتر‬ ‫نه‬ ‫و‬ ‫است‬ ‫نیاز‬ ‫مورد‬ ‫آنچه‬ ‫انجام‬ ‫و‬ ‫پرسیدن‬ ‫بازخورد‬ ‫با‬ ‫اغلب‬ ‫و‬ ‫دهیم‬‫می‬ ‫نشان‬ ‫اوایل‬ ‫در‬ ‫را‬ ‫افزار‬‫نرم‬ ‫معموال‬ ‫ایجاد‬ ‫را‬ ‫نیاز‬ ‫مورد‬ ‫تغییر‬ ‫هرگونه‬ ‫و‬ ‫کنند‬‫می‬ ‫گوش‬ ‫دقت‬ ‫کنند‬‫می‬ ‫احترام‬ ‫و‬ ‫کند‬‫می‬ ‫ارزش‬ ‫احساس‬ ‫هم‬ ،‫تیم‬ ‫عضو‬ ‫عنوان‬ ‫به‬ ‫هرکس‬ ‫گذارد‬‫می‬ ‫احترام‬ ‫دیگران‬ ‫به‬ ‫هم‬ ‫و‬ ‫است‬ ‫احترام‬ ‫سزاوار‬ ‫شجاعت‬ ‫بگویید‬ ‫برآورد‬ ‫و‬ ‫پیشرفت‬ ‫مورد‬ ‫در‬ ‫را‬ ‫حقیقت‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 30
  • 31. ‫افراطی‬ ‫نویسی‬‫برنامه‬ ‫روش‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 31
  • 32. ‫ها‬‫روش‬ ‫و‬ ‫ها‬‫ارزش‬ ‫میان‬ ‫تفاوت‬ ‫ها‬‫ارزش‬‫از‬ ‫تر‬‫مهم‬ ‫ها‬‫روش‬‫هستند‬ ‫انطباق‬ ‫برای‬ ‫تواند‬‫می‬ ‫که‬ ‫است‬ ‫ای‬‫جنبه‬ ‫هستند‬ ‫متدولوژی‬ ‫از‬ ‫بخشی‬ ‫واقعا‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 32
  • 33. ‫رو‬‫پیش‬ ‫مسیر‬ ‫های‬‫متدولوژی‬ ‫برخی‬ ‫اعتباری‬‫بی‬(‫متدهای‬ ‫رسمی‬)‫افزار‬‫نرم‬ ‫مهندسی‬ ‫توسعه‬ ‫های‬‫متدولوژی‬ ‫از‬ ‫استفاده‬ ‫افزایش‬ ‫چابک‬ ‫افزاری‬‫نرم‬ ‫قرار‬ ‫توجه‬ ‫مورد‬ ‫هرگز‬ ‫رسمی‬ ‫متدهای‬ ‫که‬ ‫افرادی‬ ‫بوسیله‬ ‫که‬ ‫زمانی‬ ‫تا‬ ‫گیرند‬‫نمی‬ ‫گیرد‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫فهمند‬‫نمی‬ ‫را‬‫آن‬ T. Melham 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 33
  • 34. ‫مزایا‬ ‫روز‬ ‫در‬ ‫بار‬ ‫چندین‬ ‫است‬ ‫ممکن‬ ‫جدید‬ ‫های‬‫نسخه‬ ‫شود‬ ‫ساخته‬ ‫دست‬ ‫به‬ ‫هفته‬ ‫دو‬ ‫هر‬ ،‫افزایشی‬ ‫های‬‫نسخه‬ ‫رسند‬‫می‬ ‫مشتری‬ ‫اجرا‬ ‫باید‬ ‫ها‬‫آزمون‬ ‫همه‬ ،‫نسخه‬ ‫هر‬ ‫برای‬ ‫است‬ ‫پذیرش‬ ‫قابل‬ ‫درصورتی‬ ‫تنها‬ ‫نسخه‬ ‫و‬ ‫شوند‬ ‫سر‬ ‫پشت‬ ‫موفقیت‬ ‫با‬ ‫را‬ ‫ها‬‫آزمایش‬ ‫ی‬‫همه‬ ‫که‬ ‫باشد‬ ‫گذاشته‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 34
  • 35. ‫معایب‬ ‫توسعه‬ ‫از‬ ‫بسیاری‬ ‫باشد‬ ‫سخت‬ ‫است‬ ‫ممکن‬ ‫را‬ ‫روش‬ ‫این‬ ‫که‬ ‫کنید‬ ‫پیدا‬ ‫را‬ ‫دهندگان‬ ‫بپذیرند‬ ‫نباشند‬ ‫دسترس‬ ‫در‬ ‫است‬ ‫ممکن‬ ‫شما‬ ‫مشتریان‬ XP‫طراحی‬ ‫تا‬ ‫است‬ ‫محور‬ ‫کد‬ ‫ای‬‫توسعه‬ ‫بیشتر‬ ، ‫محور‬(‫نیست‬ ‫مناسب‬ ‫بزرگ‬ ‫های‬‫پروژه‬ ‫برای‬) 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 35
  • 36. ‫بندی‬‫جمع‬ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ ‫برنامه‬ ‫ریزی‬ •‫کاربر‬ ‫های‬‫خواسته‬ ‫شود‬‫می‬ ‫نوشته‬. •‫ریزی‬‫برنامه‬ ‫ساخت‬ ‫بندی‬‫زمان‬ ‫و‬ ‫انتشار‬ •‫متناوب‬ ‫ساخت‬ ‫کوچک‬ ‫های‬‫نسخه‬ ‫مدیریت‬ •‫باز‬ ‫کاری‬ ‫فضای‬ ‫تیم‬ ‫به‬ ‫بدهید‬ ‫گیری‬ ‫تصمیم‬ ‫برای‬ •‫پایدار‬ ‫سرعتی‬ ‫تنظیم‬ •‫برگزار‬ ‫روز‬ ‫هر‬ ‫ای‬‫جلسه‬ ‫شود‬‫طراحی‬ •‫سادگی‬ •‫ای‬‫دوره‬ ‫بررسی‬ •‫کلیدی‬ ‫های‬‫حل‬‫راه‬ ‫ایجاد‬ ‫ریسک‬ ‫کاهش‬ ‫برای‬ •‫بازنگری‬ ‫امکان‬ ‫حد‬ ‫تا‬ ‫باشد‬ ‫داشته‬ ‫کد‬ •‫دسترس‬ ‫در‬ ‫همیشه‬ ‫مشتری‬ ‫است‬ •‫توافق‬ ‫طبق‬ ‫باید‬ ‫کد‬ ‫شود‬ ‫نوشته‬ ‫استانداردها‬ •‫واحد‬ ‫به‬ ‫اول‬ ‫باید‬ ‫کد‬ ‫شود‬ ‫فرستاده‬ ‫آزمایش‬ •‫شده‬ ‫تولید‬ ‫کدهای‬ ‫همه‬ ‫بصورت‬ ‫باید‬ ‫نویسی‬‫برنامه‬-‫جفتی‬ ‫باشند‬ ‫آزمایش‬ •‫واحد‬ ‫باید‬ ‫کدها‬ ‫ی‬‫همه‬ ‫باشند‬ ‫داشته‬ ‫آزمایش‬ •‫واحد‬ ‫باید‬ ‫کدها‬ ‫ی‬‫همه‬ ‫از‬ ‫قبل‬ ‫را‬ ‫آزمایش‬ ‫بگذارند‬ ‫سر‬ ‫پشت‬ ‫انتشار‬ •‫شوند‬‫می‬ ‫ساخته‬ ‫ها‬‫آزمایش‬ ‫شوند‬ ‫پیدا‬ ‫ها‬‫باگ‬ ‫تا‬ •‫مورد‬ ‫ی‬‫نسخه‬ ‫معموال‬ ‫اجرا‬ ‫ها‬‫آزمایش‬ ‫پذیرش‬ ‫منتشر‬ ‫نتایج‬ ‫و‬ ‫شود‬‫می‬ ‫شود‬‫می‬ 36
  • 37. ‫منابع‬ : [1] Planning Extreme Programming: by Kent Beck, Martin Fowler; 2001; ISBN 0-201-71091-9 [2] © IBM Corporation; Demystifying Extreme Programming: “XP distilled” revisited, Part 1: Roy Miller; 13 August 2002; http://ibm.com/developerWorks/ [3] Impractical things, Pair Programming and TDD: Marcello Duarte [4] The Pragmatic Programmer: From Journeyman to Master, by Andrew Hunt and David Thomas [5] http://www.xprogramming.com/xpmag/whatisxp.htm [6] http://www.extremeprogramming.org [7] http://www.agilemanifesto.org/ 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 37
  • 38. ‫تصاوی‬ ‫ر‬: [8] File:Commons-logo.svg Source: http://upload.wikimedia.org/wikipedia/en/4/4a/Commons-logo.svg License:?; Contributors:?; Original artist:? [9] File:Extreme_Programming.svg Source: http://upload.wikimedia.org/wikipedia/commons/8/84/Extreme_Programming.svg License: CC BY-SA 3.0; Contributors: https://en.wikipedia.org/wiki/File:XP- feedback.gif; Original artist: Don Wells [10] File:Folder_Hexagonal_Icon.svg Source: http://upload.wikimedia.org/wikipedia/en/4/48/Folder_Hexagonal_Icon.svg License: Cc-bysa-3.0; Contributors: ?; Original artist: ? 5/19/2016 ‫دهقان‬ ‫محمد‬-‫مشهد‬ ‫فردوسی‬ ‫دانشگاه‬ 38

Hinweis der Redaktion

  1. برخی از منابع رو برروی پاد آپلود کردم و میتونین از اونجا دریافت کنین.