صفحه 1:
صفحه 2:
5 اهداف جلسه
* تقسیمبندی متدولوژيهای توسعه نرمافزار
* معیارهای مقایسه متدولوژيها با یکدیگر
* مقایسه متدولوژيها بر اساس معیارهای مطرح شده
* اصول بنیادی متدولوژيهای چابک
* معرفی چند روش چابك
صفحه 3:
a متدولوژي توسعه نرمافزار
* فرآیند تولید و توسعه نرمافزار ذاتاً يك فرآیند بينظم و ير هرج
و مرج است. براي نظم دادن به اين فرآیند. متدولوژيهاي
توسعه نرمافزار مطرح شدند
* متدولوژي توسعه نرمافزار مشخص ميکند. چه فر آوردهاي
(۲۷۲۵۲) توسط جه كسي (۲۷۷0) و در چه زماني Ji (When)
شود.
صفحه 4:
|“ تقسیم بندی متدولوژيهای توسعه نرمافزار
5 متدولوژيهای سنگین وزن (Heavyweight)
* فازها بطور كامل اجرا شده و مستندات کامل ایجاد ميشود
* متدولوژيهای سبک 534 (Lightweight)
* فازها به صورت کوتاه و مستندات به اندازه ایجاد ميشوند
* متدولوژیهای چابک در دسته دوم قرار دارند
صفحه 5:
متدولوژی سنگین وزن
* در 25 سال اخیر روشهاي بسیار زبادي براي توسعه نرمافزار
معرفي شدند اما امروزه تعداد بسیار اندكي از آنها مورد استفاده
قرار ميگیرد!
* متدولوژيهاي فعلي بیش از اندازه ماشین گرا و مکانیزه هستند
و بصورت فرآيندي وارد جزئیات غيرضروري ميشوند. به همین
دلیل این نوع متدولوژها را سنگین وزن مينامند
صفحه 6:
a مشکلات متدولوژيهاي سنگین وزن
* مشتریان نرمافزارها حاضر نیستند که براي دست یافتن به
نرمافزارهاي مورد نیاز خود مدت زيادي منتظر بمانند
* رقاپت پسیار شدید شركتهاي تولید نرمافزار براي ارائه خدمات
نرمافزاري به کاربران
" تغييرپذيري بسیار زیاد نرمافزارهاي امروزي انکارناپذیر است
صفحه 7:
1 لزوم تغییرات در توسعه ate
( Op Oko!
De are creeds rurcratky hetee.
"sid wi
Der wa ard 7
3
صفحه 8:
1 لزوم تغییرات در توسعه ate
( We Oko!
(Der are abroad rurcratcny kate.
1 aed cent ony chit.
Dee worked bard te preven رجات
f=
De N
A
صفحه 9:
1 لزوم تغییرات در توسعه نرمافزار
صفحه 10:
5 معیارهای مقایسه متدولوژيها با یکدیگر
روش
معيار موفقيت
اندازه پروژه
سبک مدیریت
نحوه مستندسازی
چرخهها
اندازه تیم
برگشت سرمایه
صفحه 11:
هه یمن دهد
1
صفحه 12:
* معیار موفقیت در روشهای چابک دستیابی به ارزش کاری
cow! (Business Value)
oe درا ۴
12
صفحه 13:
1" اندازه پروژه
* اندازه پروژه در روشهای چابک کوچک است
این مسأّله از محبوبیت روشهای چابک نمی کاهد !!!
(آمار نشان میدهد که تعداد پروژههای کوچک بسیار بیشتر است)
18
صفحه 14:
a | سبك مدیر یت
* مدیریت در روشهای چابک بصورت غیرمتمرکز و آزاد است
14
صفحه 15:
نحوه مستندسازی
* مستندسازی در روشهای چابک بصورت بسیار محدود انجام
میشود
15
صفحه 16:
جرخهها
«
" تعداد جرخدها (07:6165)) در روشهاى جابك بسيار زياد است
اما زمان آنها کوتاست
16
صفحه 17:
7 اندازه تیم
* در روشهای Sule اندازه تیم کوچک است (بین 20 تا 30 نفر)
17
صفحه 18:
at برگشت سرمایه
* در روشهای چابک سرمایه خیلی زود در طول پروژه بر میگردد
صفحه 19:
مقایسه متدولوژيهاي سبک و سنگین
ile Method: He:
‘Adaptive
Business Value Conformation to
plan
Small Large
Decentralized ‘Autocratic
Low Heavy
People-Oriented Process-Oriented
"Numerous "Limited
Unpredictable/ Predictable |
Exploratory
‘Small/Creative_ Large
صفحه 20:
۷" بیانیه روشهای جابک
* در سال 2001 متخصصان روشهاي چابک بانيهاي را منتشر
کردند و این روشها را در چهار اصل كلي به دنياي نرمافزار
معرفي نمودند که عبارتند از:
* فردگرايي و تعامل برتر از فر آیندها و ابزارها
* نرمافزار قابل اجرا بهتر از مستندات مفمومي
۴ همكاري با مشتریان بهتر از مذاکرات قراردادگرا
* پاسخ به تغییر بهتر از دنبالهروي از طرح
صفحه 21:
ai معروفترین روشهاي چابک
= XP (Extreme Programming)
= Scrum
= Crystal Family
= FDD (Feature Driven Development)
= Dynamic System Development
= Adaptive Software Development
= Open Source Software Development
21
صفحه 22:
AP (Extreme (539) 9
Programming) B®
* بر مبنای اصول سادگی» همگاری و بازخورد سریع استوار است
* ایده این روش توسطع13061 10۳1 در سال 2000 ارائه شده
است
" مبتنی بر آزمایش (Test-Driven)
* نقش مشتریان بسیار پررنگ است
* فرآیند آن شامل 12 فعالیت و 5 فاز است
صفحه 23:
متدولوژی 26۳ - چرخه حیات
EXPLORATION | PLANNING ITERATIONS TO
PHASE | PHASE RELEASE PHASE
PHASE
PRODUCTIONZING
fa 1
yt
1 ‘CONTINUOUS
INTEGRATION
— — ! 0
“ro ۵ ۱ سوم ۱ coutccm {
Gs) ۳ نت ارس
سود
= yo! aS
صفحه 24:
۷" متدولوژی 2۳ - فازها
* چرخه حیات 2۳ شامل پنج فاز است
صفحه 25:
1 متدولوژی 2۳ - نقشها و مسئولیتها
* برنامهنویس
م
شتوی
* آزمایشکننده
(Tracker) oS پيگيري a
i
* مربي —
Lo هيا
* مدیر (رئیس ارشد)
صفحه 26:
+ متدولوژی 2۳ - فر آوردهها
User Stories *
© معمولاً بشکل متنی بوده و توسط مشتریان نوشته میشوند
" از طریق آنها نيازمنديهای سیستم مشخص میشود
Iteration Plan *
* مجموعهای از 51015 ۲/50۲ هاست که توسط مشتری انتخاب میشوند
* در یک تکرار که معمولاً دو هفته طول میکشد. تولید میشود
" طرحهای نگرار پا توجه په اولویت مشخص شده توسط مشتری اجرا
میشوند
" انتخاب پراساس بودچه نعپینشده توسط توسحهدهندگان خواهد بود
26
صفحه 27:
۷" متدولوژی XP — فر آور دهها «دام)
Release Plan "
* مجموعهای از طرحهای تکرار را در قالب یک نقشه کلی برای رسیدن
به نشرها نمایش میدهد
Task *
" زیرمجموعهای از 5101۲ 7567] ها هستند
7 ا5ههاز سظر تسکنیکیو کایواولویتسیشترودایندو بسایدسریع
لنجام شوند
* عاك هآهادر (Iteration Planning, \ Sig pat pe ale ya
مشخصميشوند
27
صفحه 28:
|“ متدو لو زى -XP فر آور دهها رداس)
Metaphore *
* نشاندهنده یک تصوير کلی از سیستم است
* برای هر عنصر در سیستم یک نام در نظر گرفته میشود
" ارتباط بین عناصر در كير در سيستم از طريق 14612212076 مشخص
مى شود
Spike =
(Spike Solution) .p3 Joely Sy” پرنامه سادهایست که پوسیله
آن میتوان راهحلهای پالقوه را کشف گرد
" در مواردی که User Story ها حساس و مهمند از آن استفاده میشود
صفحه 29:
a متدولوژی XP — عملیات
Planning Game *
" یک تعامل محصور Gyshe Qe (Close Interaction) 9
پرنامهوپس پدست میآید
* پرنامهنویس کار لازم برای پیادهسازی گزارشهای مشنری را تخمین
میزند و مشتری در مورد حوزه و زمان نشرها تصمیمگیری میکند
Simple Design *
* تأکید اصلی در این روش بر روی طراحی سادهترین راهحل ممکن است
و پيچيدگيهای غیرضروری و کدهای اضافی به سرعت حذف میشوند
29
صفحه 30:
6 متدو لو زى ۳ - عملیات رد
Testing "
" توسعه نرمافزار یک فرآیند آزمایشگراست (91۲-0776ع۲)
" قبل از اینکه برنامهنویس یک خاصیت را اضافه کند. برای آن یک تست طراحی
میکند که بصورت پیوسته اجرا میگردد
Refactoring "
* بازسازی سیستم با حذف موارد تکراری. بهبود ارتباطات. سادهسازی و
افزايش انعطاف پذپری سیستم
Pair Programming "
" دونفر کد را روی یک کامپیوتر مینوبسند (بک کدنوپس و یک
متخصص استراتژی)
صفحه 31:
6 متدو لو زى ۳ - عملیات رد
Collective Ownership "
* هر فردی میتواند کد را در هر زمانی تغییر دهد
Continuous Integration "
* كد چدید در حداقل زمان ممکن به کد اولیه میپیوندد. بنابراین
سیستم دفعات زیادی در روز یکپارچه شده و ساخته میشود
* ۷۷۵۵۱40 ۲۲۵0۱۲
" حداکثر چهل ساعت کار در هفته کافی است
* این مورد اجباری است و بیشتر از این ساعات کار مجاز نمیباشد
31
صفحه 32:
59 متدو لو زى ۳ - عملیات رد
On- Site Customer *
* مشتری باید بصورت تمام وقت برای تیم توسحه در دسترس باشد
Coding Standards *
" قواعد كدنويسى بايد توسط برنامهنويسان رعایت شود و ارتباط بين
كدها مورد نوجه قرار كيرد
32
صفحه 33:
FDD (Feature Driven متدولوژی
Development 5
" نمام فرآيند توسعه نرم افزار را يوشش نمىدهد و بيشتر روى دو
فاز طراحی و پیادهسازی متمرکز میشود
* برای استفاده بهمراه سایر فعالیتهای یک پروژه توسعه نرمافزار
طراحی شده است و هیچ مدل فرآبند خاصی لازم ندارد
© مبتنی بر توسعه تکراری با انتخاب بهترین و موثرترین
فعالیتهاست
* روی جنبههای کیفتی تأکید دارد و شامل نشرهای محسوس و
پیگیری دقیق پیشرفت پروژه است
صفحه 34:
1 فر آیندهای ۳۳۳
* شامل پنج فرآیند ترتیبی است که از طریق آنها فعالیتهای
طراحی و پیادهسازی انجام میشود
Develop Butta a
an Overall {fm Features [tm Pin PY 1b Design Dy | ye} Bulla BY
سا tun Feature Feature Feature
* قسمت تکراری فرآبند ۳110 (طراحی و ساخت) از توسعه
چابک حمایت میکند
* هر تکرار از یک خاصیت. معمولاً 2 تا 3 هفته زمان میبرد
صفحه 35:
۷" متدولوژی (۲1(1 - نقشها
* 171210 نسقشایخود را بسه سه هسته کسلیتسقسیممیکسند
* نقشهای کلیدی
* نقشهای حمایتی
* ای ای ©
صفحه 36:
۷" متدولوژی (۲۲(1 - نقشهاي كليدي
مدير يروزه
معمار ارشد
مدير توسعه
بجي ۰
مالك كلاس (Class Owner)
: al Manager) متخصص دامنه
صفحه 37:
عمدو نورى TAD سسهاي
حمایتی
(Release Manager) yi مدير "
(Language Guru) (43 )9lio *
(Build Engineer) مهندس ساخت *
* مسئول ابزار («لاتسع1001)
" مدير سيستم 402151721019 درره:
37
صفحه 38:
7 متدولوژی FDD - نقشهاي اضافي
* سه نقش اضافی که در همه پروژهها وجود دارند
(Tester) 09335, $203) *
* مستقر کننده (Deployer)
* نویسنده فني ۱۷۲/۶۵ آههتصطه۲۵)
* هر عضو میتواند چندین نقش بازی کند و هر نقش ممکن است
به چند عضو نسبت داده شود
صفحه 39:
1 متدولوژی (۲1(1] - بهتوین تجربیات
Domain Object Modeling *
" شامل استخراج و توضیح دامنه مسأله میباشد
Developing By Feature "
" توسحه و بررسی میزان پیشرفت پروژه از طریق دنبال کردن
پیادهسازی ليست وظايف و خواص مشخص شده
Individual Class Ownership *
" برای هر کلاس شخصي وجود داشته باشد که مسئول سازگاری. کارایی
و صحت آن باشد
صفحه 40:
1 متدولوژی (۲1(1] - بهتوین تجربیات
Feature Teams *
" تیم كوچكي که بهصورت پویا شکل گرفتهاند
Inspection *
" استفاده از معروفترین و بهترین مکانيزهاي شناسايي خطاها
Regular Builds *
" تضمین اینکه هميشه يك سپستم قابل اجرا و قابل نمایش دادن
(126720) وجود دارد
Configuration Management *
* داشتن تاریخچه تفییرات و نسخههاي مختلف (پهمراه کد منبع)
صفحه 41:
a متدولوژی (1(1] - بهتوین تجربیات
Progress Reporting *
* روند اجراي فعالیتها به صورت کامل و در سطوح مختلف سازماني
گزارش شود
صفحه 42:
5 متدو لوژی 50۳۰
* از یک استراتژی در بازی راگبي اقتباس شده است
* تأکید روی اصول انعطافپذیری. سازگاری و سودمندی است
* تمرکز: جكونه اعضاى تيم بايد عمل كنند تا سيستم تولید شده. در
.يك محيط كاملاً تغييريذير. انعطاف يذيرى كافى داشته باشد
* ايده اصلى: توسعه سيستمها شامل جندين متغير محيطى و تكنيكى
است (نيازهاء زمان. منابع و تكنولوزى)كه احتمالاً در طول فرآيند
* این موضوع فرآیند توسعه را پیچیده و غیرقابل پیشبینی میکند
42
صفحه 43:
1" متدو لوژی 50۲۳0 - فر آوردهها
* فرآوردههای 5071270 به سه دسته اصلی تقسیم میشوند
Product Backlog *
Sprint Backlog *
~=_ Sprint BurnDown Chart *
لا
6
صفحه 44:
Scrum - Products 59) 9
Backlog
* شامل یک صف اولویتبندی شده است که در آن
وظیفهمنديهای تکنیکی و حرفه نمایش داده شدهاند که باید
توسعه داده شوند
* برای هر مورد مشخص شده در این فرآورده. خواصی مانند
وضعیت. اولوبت و تخمین کاری وجود دارد
صفحه 45:
متدولوژی] 50۲۱0 - ما5
Backlog
* مجموعهای از موارد حرفه و فني که برای تکرار جاری
(صمناه16۲] ۳۲۵1)) زمانبندی شدهاند در این فرآورده
نمایش داده میشوند
* نیازها در این فرآورده به وظایف تبدیل می شوند
* برای هر وظیفه یک شرح کوناه وجود دارد و مشخص میشود که
چه کسی مسئول انجام آن است و همچنین وضعیت و تعداد
ساعات باقیمانده تا تکمیل شدن هر وظیفه در اين فرآروده
مشخص میشود
صفحه 46:
Scrum - Sprint BurnDown متدولوزى
هن
* ساعات باقیمانده برای تکمیل شدن همه وظایف مربوط به یک
Sprint را در قالب یک گراف بصورت برجسته نمایش میدهد
Work Remaining (hous)
o 68 8 8 8 8 8 8
7 2 35 4 5 8 7 8 8 1011121314 15 16 47 18 19.20.24 22 20.24 25 26-27 28 29 30
‘Serum Day
صفحه 47:
۷" متدو لوژی 50۱1۳0 - نقشها
Scrum Master
Product owne: "i
Scrum team we 2 ج حا See
Manager معو
0
ory
1+41
صفحه 48:
Crystal oolgil& متدولوژیهای 4
* شامل مجموعهای از متدولوژيهای متفاوت است که مناسبترین
آنها برای هر پروژه منحصر به فرد انتخاب میشود
* دارای اصولی است که متدولوژیها را برای شرایط مختلف
موجود در پروژهها سفارشی میکند
Crystal (9) * پیشنهاد میکند که یک متدولوژی مناسب
براساس اندازه و میزان بحرانیبودن پروژه انتخاب شود
صفحه 49:
5 متدولوژيهاي خانواده ۲۱5۵1 (ادامه)
" هر عضواز خانواده 01375121 با يى رنك مشخص مى شود كه
ميزان سنكينى متدولوزى را نشان مىدهد. رنك تاريكتر نشان
دهنده متدولوزى سنكين تر است
C: Comfort
D: Discretionary
Money
E: Essential
Money
L: Life
of
شالك تالت
of the
system
49
صفحه 50:
5 متدولوژيهاي خانواده ۲۷5۵1 (tot)
* تمامی پروژهها از توسعه افزایشی با بازه زمانی حداکثر 4 ماه
استفاده میکنند
* تأکید روی ارتباطات و همکاری بین افراد درگیر در پروژه است
* هیچ فعالیت با ابزاری را برای توسعه محدود نمیکند
* مثلاً میتوان از فعالیتهای 26۳ و 962۳90 با هم در این روش استفاده
کرد
صفحه 51:
at مزایای روشهای سریع الانتقال
* تأکید روی شرکتدادن مشتری در پروژهها است که در
پروژههای کاربردی بسیار مفید است
* تأکید روی کارگروهی و ارتباط متقابل که در بالا بردن راندمان
کاری نقش مهمی دارد
۴ همه افراد درگیر در پروژه در قبال کیفیت محصول مسئولند
* سنجش مستمر کارهای انجام شده از مزابای بسیار مفید این
روشها است
51
صفحه 52:
at مزایای روشهای سریع الانتقال (داس)
* توسعه افزایشی که با روشهای مدرن توسعه نرمافزار سازگار
است
* طراحی ساده و روشن برای فرآیند توسعه
* بازبینیهای مستمر که به بالا رفتن کیفیت کار برنامهنوبسان
کمک میکند
صفحه 53:
5 معایب روشهای سریع الانتقال
* بدليل كمبود فعاليتهاى طراحى در اين روشهاء اكر كد بيش از
جند هزار خط باشد ممكن است فرآيند توسعه با موانع
خطرناكى برخورد كند
" كمبود مستندات مربوط به طراحى در اين روشها آنها را به
پروژههای کوچک محدود میکند و قابلیتهای استفاده مجدد را
در آنها محدود میکند
* کمبود فرآیندهای بازبینی ساختیافته
صفحه 54:
5 معایب روشهای سریع الانتقال «دامه)
" كمبود فرآيند طراحى منظم و استفاده از بازبينىهاى غير
ساخت يافته باعث اتلاف زمان و هزينه مى شود
" كمبود طرح كيفيت. در اين روشها هيج نوع طرح استانداردى
برای ارزیابی کیفیت وجود ندارد
* کمبود راهنماهای آموزشی برای استفاده از این روشها
بسمهتعالي
ارائه دهنده :
مهندس مصطفی مستعلی
روشهای سريع االنتقال (چابک) توسعه نرم افزار
اهداف جلسه
نرمافزار
تقسيمبندی متدولوژيهای توسعه
متدولوژيها با يکديگر
معيارهای مقايسه
مقايسه متدولوژيها بر اساس معيارهای مطرح شده
متدولوژيهای چابک
اصول بنيادی
معرفی چند روش چابك
2
متدولوژي توسعه نرمافزار
فرآيند توليد و توسعه نرمافزار ذات ًا يك فرآيند بينظم و پر هرج
و مرج است .براي نظم دادن به اين فرآيند ،متدولوژيهاي
توسعه نرمافزار مطرح شدند
متدولوژي توسعه نرمافزار مشخص ميکند ،چه فرآوردهاي
( )Whatتوسط چه کسي ( )Whoو در چه زماني ( )Whenتوليد
شود.
3
متدولوژيهای توسعه نرمافزار
تقسيم بندی
متدولوژيهای سنگين وزن ()Heavyweight
فازها بطور کامل اجرا شده و مستندات کامل ايجاد ميشود
متدولوژيهای سبک وزن ()Lightweight
فازها به صورت کوتاه و مستندات به اندازه ايجاد ميشوند
متدولوژيهای چابک در دسته دوم قرار دارند
4
متدولوژي سنگين وزن
در 25سال اخير روشهاي بسيار زيادي براي توسعه نرمافزار
معرفي شدند اما امروزه تعداد بسيار اندكي از آنها مورد استفاده
قرار ميگيرد!
متدولوژيهاي فعلي بيش از اندازه ماشينگرا و مكانيزه هستند
و بصورت فرآيندي وارد جزئيات غيرضروري ميشوند ،به همين
مينامند
دليل اين نوع متدولوژها را سنگين وزن
5
Bنگين وزن
مشکالت متدولوژيهاي س
مشتريان نرمافزارها حاضر نيستند كه براي دست يافتن به
نرمافزارهاي مورد نياز خود مدت زيادي منتظر بمانند
رقابت بسيار شديد شركتهاي توليد نرمافزار براي ارائه خدمات
نرمافزاري به كاربران
تغييرپذيري بسيار زياد نرمافزارهاي امروزي انكارناپذير است
6
لزوم تغييرات در توسعه نرمافزار
No Change!
We are already running late.
• I need to meet my date.
•We worked hard to prevent change
at the start.
Co
st o
f
ch
ang
e
•
Customer
big cheese
Promised
date
7
لزوم تغييرات در توسعه نرمافزار
No Change!
We are already running late.
• I need to meet my date.
•We worked hard to prevent change
at the start.
ch
ang
Co
st o
f
Change &
Rework
happens at the
most expensive
time
e
•
Customer
big cheese
8
Spec signed
off here
Promised
date
لزوم تغييرات در توسعه نرمافزار
Successful
Project
Meet
Schedule
big cheese
9
No
Change!
Best
Product
Change!
Conflict*
Customer
متدولوژيها با يکديگر
معيارهای مقايسه
روش
معيار موفقيت
اندازه پروژه
سبک مديريت
نحوه مستندسازی
چرخهها
اندازه تيم
برگشت سرمايه
10
روش
روشهای چابک بصورت Adaptiveيا سازگار عمل میکنند
میشوند
يعنی با شرايط منطبق
روشهای سنگين وزن بصورت پيشگو يا Predictiveعمل
است؟
بينی
ش
قابلپيپي
ابتدا
چيز ازاز
همه
آيا
است؟
بينی
ش
قابل
ابتدا
چيز
همه
میکنند
آيايعنی در آغاز همه چيز را پيشبينی
میکنند
Rigid,
Highly Structured
Ad hoc,
Chaotic
Process Discipline
Agile Processes
RUP
CMM - SW
11
معيار موفقيت
روشهای چابک دستيابی به ارزش کاری
معيار موفقيت در
پذيری
وزن
های
روش
روش
ندارند
پذيری
معيارانعطاف
سنگين وزن
سنگين
هایهای
روش
ندارندراستای
رفتن در
انعطاف پيش
موفقيت
وزن
سنگين
در
( )Business Valueاست
طرح اوليه است
12
اندازه پروژه
روشهای چابک کوچک است
اندازه پروژه در
روشهای سنگين وزن میتواند بسيار بزرگ
اندازه پروژه در
کاهد!!!!!!
نمی
نمیکاهد
چابک
هایچابک
روشهای
محبوبيتروش
مسألهازازمحبوبيت
اينمسأله
باشداين
است)
بيشتراست)
بسياربيشتر
کوچکبسيار
هایکوچک
پروژههای
تعدادپروژه
کهتعداد
دهدکه
میدهد
نشانمی
(آمارنشان
(آمار
13
Bمديريت
سبک
روشهای چابک بصورت غيرمتمرکز و آزاد است
مديريت در
روشهای سنگين وزن مديريت بصورت مطلق و استبدادی
در
کند
تصميم
امکان
است
میکند
فراهممی
بهتررارافراهم
گيریبهتر
تصميمگيری
غيرمتمرکزامکان
مديريتغيرمتمرکز
مديريت
14
نحوه مستندسازی
روشهای چابک بصورت بسيار محدود انجام
مستندسازی در
میشود
بسيار
کار
سنگين,
های
سازي
سازي
مستند
موارد
بسياریازاز
در
بسيار
کار
سنگين,
های
مستند
موارد
بسياری
روشهای سنگين وزن مستندسازی بصورت کامل و جامع
دردر
است
زمانبریاست
دشوارووزمانبری
دشوار
میشود
انجام
15
چرخهها
روشهای چابک بسيار زياد است
تعداد چرخهها ( )Cyclesدر
اما زمان آنها کوتاست
انتظار
زمانانتظار
شدنزمان
طوالنیشدن
موجبطوالنی
توليد,موجب
هایتوليد,
چرخههای
بودنچرخه
زمانبربودن
زمانبر
روشهای سنگين وزن تعداد چرخهها کم است ولی زمان آنها
در
شود
میشود
نشرهامی
رسيدنبهبهنشرها
برایرسيدن
برای
بسيار زياد است
16
اندازه تيم
روشهای چابک اندازه تيم کوچک است (بين 20تا 30نفر)
در
روشهای سنگين وزن اندازه تيم توسعه بزرگ است
در
بود
خواهدبود
بيشترخواهد
بسياربيشتر
کوچکبسيار
تيمکوچک
درتيم
همکاریدر
خالقيتووهمکاری
خالقيت
17
برگشت سرمايه
روشهای چابک سرمايه خيلی زود در طول پروژه بر میگردد
در
روشهای سنگين وزن برای برگشت سرمايه بايد تا انتهای
در
اند
روش
روش
بصرفهاند
اقتصادیبصرفه
لحاظاقتصادی
چابکازازلحاظ
هایچابک
کردهای
پروژه صبر
18
مقايسه متدولوژيهاي سبک و سنگين
Agile Methods
Heavy Methods
Adaptive
Predictive
Business Value
Conformation to
plan
Small
Large
Decentralized
Autocratic
Low
Heavy
People-Oriented
Process-Oriented
Numerous
Limited
Domain
Unpredictable/
Exploratory
Predictable
Team Size
Small/Creative
Large
Approach
Success
Measurement
Project Size
Management Style
Documentation
Emphasis
Cycles
19
B
بيانيه روشهاي چابک
در سال 2001متخصصان روشهاي چابک بيانيهاي را منتشر
كردند و اين روشها را در چهار اصل كلي به دنياي نرمافزار
معرفي نمودند كه عبارتند از:
فردگرايي و تعامل برتر از فرآيندها و ابزارها
نرمافزار قابل اجرا بهتر از مستندات مفهومي
همکاري با مشتريان بهتر از مذاکرات قراردادگرا
دنبالهروي از طرح
پاسخ به تغيير بهتر از
20
معروفترين روشهاي چابک
XP (Extreme Programming)
21
Crystal Family
FDD (Feature Driven Development)
Scrum
Dynamic System Development
Adaptive Software Development
Open Source Software Development
متدولوژی XP (Extreme
)Programming
بر مبنای اصول سادگی ،همکاری و بازخورد سريع استوار است
ايده اين روش توسط Kent Beckدر سال 2000ارائه شده
است
مبتنی بر آزمايش ()Test-Driven
نقش مشتريان بسيار پررنگ است
فرآيند آن شامل 12فعاليت و 5فاز است
22
متدولوژی – XPچرخه حيات
23
– فازهاXP متدولوژی
شامل پنج فاز است
XP چرخه حيات
Exploration
24
Planning
Iterations To Release
Product Tionizing
Maintenance and Dead
متدولوژی – XPنقشها و مسئوليتها
برنامهنويس
مشتري
آزمايشکننده
پيگيري کننده ()Tracker
مربي
مشاور
مدير (رئيس ارشد)
25
متدولوژی – XPفرآوردهها
User Stories
میشوند
معمول ًا بشکل متنی بوده و توسط مشتريان نوشته
از طريق آنها نيازمنديهای سيستم مشخص میشود
Iteration Plan
میشوند
مجموعهای از User Storyهاست که توسط مشتری انتخاب
میشود
میکشد ،توليد
در يک تکرار که معمول ًا دو هفته طول
طرحهای تکرار با توجه به اولويت مشخص شده توسط مشتری اجرا
میشوند
تعيينشده توسط توسعهدهندگان خواهد بود
انتخاب براساس بودجه
26
متدولوژی – XPفرآوردهها
Release Plan
(ادامه)
مجموعهای از طرحهای تکرار را در قالب يک نقشه کلی برای رسيدن
میدهد
به نشرها نمايش
Task
زيرمجموعهای از User Storyها هستند
mیوmلويmتبmmيشتریدارmند و بmmايد سmريmع
Taskها از نmmظر تmmکنيکیو کmmار ا
اmنmجام شmوند
mرحرmيزیتmکرارها()Iteration Planningm
Taskها در مmرحmله ط
mیشmوند
مmشخصم
27
متدولوژی – XPفرآوردهها
Metaphore
نشاندهنده يک تصوير کلی از سيستم اسmت
برای هر عنصر در سيستم يک نام در نظر گرفته میشود
(ادامه)
ارتباط بين عناصر درگير در سيستم از طريق Metaphoreمشخص
میشود
Spike
يک راهحل ضربتی ( ،)Spike Solutionبرنامه سادهايست که بوسيله
آن میتوان راهحلهای بالقوه را کشف کرد
در مواردی که User Storyها حساس و مهمند از آن استفاده میشود
28
متدولوژی – XPعمليات
Planning Game
يک تعامل محصور ( )Close Interactionبين مشتری و
پيادهسازی گزارشهای مشتری را تخمين
برنامهنويس کار الزم برای
برنامهنويس بدست میآيد
میزند و مشتری در مورد حوزه و زمان نشرها تصميمگيری میکند
Simple Design
تأکيد اصلی در اين روش بر روی طراحی سادهترين راهحل ممکن است
و پيچيدگيهای غيرضروری و کدهای اضافی به سرعت حذف میشوند
29
متدولوژی – XPعمليات
Testing
توسعه نرمافزار يک فرآيند آزمايشگراست ()Test-Driven
قبل از اينکه برنامهنويس يک خاصيت را اضافه کند ،برای آن يک تست طراحی
میکند که بصورت پيوسته اجرا میگردد
Refactoring
(ادامه)
بازسازی سيستم با حذف موارد تکراری ،بهبود ارتباطات ،سادهسازی و
افزايش انعطافپذيری سيستم
Pair Programming
دو نفر کد را روی يک کامپيوتر مینويسند (يک کدنويس و يک
متخصص استراتژی)
30
متدولوژی – XPعمليات
Collective Ownership
(ادامه)
هر فردی میتواند کد را در هر زمانی تغيير دهد
Continuous Integration
کد جديد در حداقل زمان ممکن به کد اوليه میپيوندد ،بنابراين
سيستم دفعات زيادی در روز يکپارچه شده و ساخته میشود
Hour Week 40
حداکثر چهل ساعت کار در هفته کافی است
اين مورد اجباری است و بيشتر از اين ساعات کار مجاز نمیباشد
31
متدولوژی – XPعمليات
On- Site Customer
(ادامه)
مشتری بايد بصورت تمام وقت برای تيم توسعه در دسترس باشد
Coding Standards
قواعد کدنويسی بايد توسط برنامهنويسان رعايت شود و ارتباط بين
کدها مورد توجه قرار گيرد
32
متدولوژی FDD (Feature Driven
)Development
نمیدهد و بيشتر روی دو
تمام فرآيند توسعه نرم افزار را پوشش
برای استفاده بهمراه ساير فعاليتهای يک پروژه توسعه نرمافزار
مبتنی بر توسعه تکراری با انتخاب بهترين و موثرترين
روی جنبههای کيفتی تأکيد دارد و شامل نشرهای محسوس و
پيادهسازی متمرکز میشود
فاز طراحی و
طراحی شده است و هيچ مدل فرآيند خاصی الزم ندارد
فعاليتهاست
پيگيری دقيق پيشرفت پروژه است
33
فرآيندهایFDD
شامل پنج فرآيند ترتيبی است که از طريق آنها فعاليتهای
طراحی و پيادهسازی انجام میشود
قسمت تکراری فرآيند ( FDDطراحی و ساخت) از توسعه
چابک حمايت میکند
هر تکرار از يک خاصيت ،معمول ًا 2تا 3هفته زمان میبرد
34
متدولوژی – FDDنقشها
mیکmmند
mقشهایخmود را بmmه سmه دmسmته کmmلیتmmقسيمم
FDDن m
نقشهای کليدی
نقشهای حمايتی
نقشهای اضافی
35
متدولوژی – FDDنقشهاي کليدي
مدير پروژه
معمار ارشد
مدير توسعه
برنامهنويس ارشد
مالك كالس ()Class Owner
متخصص دامنه ()Domain Manager
36
– نقشهايFDD متدولوژی
حمايتي
37
)Release Manager( مدير نشر
)Language Guru( مشاور زبان
)Build Engineer( مهندس ساخت
)Toolsmith( مسئول ابزار
)System Administrator( مدير سيستم
متدولوژی – FDDنقشهاي اضافي
سه نقش اضافی که در همه پروژهها وجود دارند
آزمايشکننده ()Tester
مستقرکننده ()Deployer
نويسنده فني ()Technical Writer
میتواند چندين نقش بازی کند و هر نقش ممکن است
هر عضو
به چند عضو نسبت داده شود
38
Bين تجربيات
متدولوژی – FDDبهتر
Domain Object Modeling
شامل استخراج و توضيح دامنه مسأله میباشد
Developing By Feature
توسعه و بررسی ميزان پيشرفت پروژه از طريق دنبال کردن
پيادهسازی ليست وظايف و خواص مشخص شده
Individual Class Ownership
برای هر کالس شخصي وجود داشته باشد که مسئول سازگاری ،کارايی
و صحت آن باشد
39
Bين تجربيات
متدولوژی – FDDبهتر
Feature Teams
Inspection
استفاده از معروفترين و بهترين مكانيزهاي شناسايي خطاها
Regular Builds
تيم كوچكي كه بهصورت پويا شكل گرفتهاند
تضمين اينكه هميشه يك سيستم قابل اجرا و قابل نمايش دادن
( )Demoوجود دارد
Configuration Management
داشتن تاريخچه تغييرات و نسخههاي مختلف (بهمراه كد منبع)
Bين تجربيات
متدولوژی – FDDبهتر
Progress Reporting
روند اجراي فعاليتها به صورت كامل و در سطوح مختلف سازماني
گزارش شود
متدولوژيScrum
از يک استراتژی در بازی راگبي اقتباس شده است
انعطافپذيری ،سازگاری و سودمندی است
تأکيد روی اصول
تمرکز :چگونه اعضای تيم بايد عمل کنند تا سيستم توليد شده ،در
انعطافپذيری کافی داشته باشد
يک محيط کاملاً تغييرپذير،
ايده اصلی :توسعه سيستمها شامل چندين متغير محيطی و تکنيکی
است (نيازها ،زمان ،منابع و تکنولوژی)که احتمال ًا در طول فرآيند
میکنند
توسعه تغيير
اين موضوع فرآيند توسعه را پيچيده و غيرقابل پيشبينی میکند
42
فرآوردهها- Scrumمتدولوژي
میشوند
به سه دسته اصلی تقسيمScrum فرآوردههای
43
Product Backlog
Sprint Backlog
Sprint BurnDown Chart
متدولوژيScrum - Product
Backlog
شامل يک صف اولويتبندی شده است که در آن
منديهایتکنيکی و حرفه نمايش داده شدهاند که بايد
وظيفه
توسعه داده شوند
برای هر مورد مشخص شده در اين فرآورده ،خواصی مانند
وضعيت ،اولويت و تخمين کاری وجود دارد
44
متدولوژيScrum - Sprint
Backlog
مجموعهای از موارد حرفه و فني که برای تکرار جاری
( )Current Iterationزمانبندی شدهاند در اين فرآورده
میشوند
نمايش داده
نيازها در اين فرآورده به وظايف تبديل می شوند
برای هر وظيفه يک شرح کوتاه وجود دارد و مشخص میشود که
چه کسی مسئول انجام آن است و همچنين وضعيت و تعداد
ساعات باقيمانده تا تکميل شدن هر وظيفه در اين فرآروده
میشود
مشخص
45
متدولوژيScrum - Sprint BurnDown
Chart
ساعات باقيمانده برای تکميل شدن همه وظايف مربوط به يک
Sprintرا در قالب يک گراف بصورت برجسته نمايش میدهد
46
نقشها- Scrumمتدولوژي
Scrum Master
Product owner
Scrum team
Manager
47
متدولوژيهاي خانواده Crystal
متدولوژيهای متفاوت است که مناسبترين
شامل مجموعهای از
آنها برای هر پروژه منحصر به فرد انتخاب میشود
متدولوژيها را برای شرايط مختلف
دارای اصولی است که
موجود در پروژهها سفارشی میکند
روش Crystalپيشنهاد میکند که يک متدولوژی مناسب
بحرانیبودن پروژه انتخاب شود
براساس اندازه و ميزان
48
متدولوژيهاي خانواده ( Crystalادامه)
هر عضو از خانواده Crystalبا يک رنگ مشخص میشود که
میدهد .رنگ تاريکتر نشان
ميزان سنگينی متدولوژی را نشان
سنگينتر است
دهنده متدولوژی
C: Comfort
D: Discretionary
Money
E: Essential
Money
L: Life
49
متدولوژيهاي خانواده Crystal
(ادامه)
تمامی پروژهها از توسعه افزايشی با بازه زمانی حداکثر 4ماه
میکنند
استفاده
تأکيد روی ارتباطات و همکاری بين افراد درگير در پروژه است
نمیکند
هيچ فعاليت يا ابزاری را برای توسعه محدود
میتوان از فعاليتهای XPو Scrumبا هم در اين روش استفاده
مثلاً
کرد
50
مزايای روشهای سريع االنتقال
تأکيد روی شرکتدادن مشتری در پروژهها است که در
پروژههای کاربردی بسيار مفيد است
تأکيد روی کارگروهی و ارتباط متقابل که در باال بردن راندمان
کاری نقش مهمی دارد
همه افراد درگير در پروژه در قبال کيفيت محصول مسئولند
سنجش مستمر کارهای انجام شده از مزايای بسيار مفيد اين
روشها است
51
مزايای روشهای سريع االنتقال
(ادامه)
روشهای مدرن توسعه نرمافزار سازگار
توسعه افزايشی که با
است
طراحی ساده و روشن برای فرآيند توسعه
بازبينیهای مستمر که به باال رفتن کيفيت کار برنامهنويسان
میکند
کمک
52
معايب روشهای سريع االنتقال
روشها ،اگر کد بيش از
بدليل کمبود فعاليتهای طراحی در اين
چند هزار خط باشد ممکن است فرآيند توسعه با موانع
خطرناکی برخورد کند
روشها آنها را به
کمبود مستندات مربوط به طراحی در اين
میکند و قابليتهای استفاده مجدد را
پروژههای کوچک محدود
میکند
در آنها محدود
کمبود فرآيندهای بازبينی ساختيافته
53
معايب روشهای سريع االنتقال
(ادامه)
بازبينیهای غير
کمبود فرآيند طراحی منظم و استفاده از
ساختيافته باعث اتالف زمان و هزينه میشود
روشها هيچ نوع طرح استانداردی
کمبود طرح کيفيت .در اين
برای ارزيابی کيفيت وجود ندارد
روشها
کمبود راهنماهای آموزشی برای استفاده از اين
54