متدولوژی XP – عمليات (ادامه)
Download
Report
Transcript متدولوژی XP – عمليات (ادامه)
بسمهتعالي
فصل دوازدهم
روشهای سريع االنتقال (چابک) توسعه نرم افزار
اهداف جلسه
تقسيمبندی متدولوژيهای توسعه نرمافزار
معيارهای مقايسه متدولوژيها با يکديگر
مقايسه متدولوژيها بر اساس معيارهای مطرح شده
اصول بنيادی متدولوژيهای چابک
معرفی چند روش چابك
2
متدولوژي توسعه نرمافزار
فرآيند توليد و توسعه نرمافزار ذاتا ً يك فرآيند بينمم و پير هيرو و
مرو است .براي نميم دادن بيه ايين فرآينيدت متيدولوژيهاي توسيعه
نرمافزار مطرح شدند
متيييدولوژي توسيييعه نرمافيييزار مشييي
م نيييدت چيييه فيييرآوردهاي
( )Whatتوسييط چييه سيي ( )Whoو در چييه زمييان ( )Whenتوليييد
شود.
3
تقسيم بندی متدولوژيهای توسعه نرمافزار
متدولوژيهای سنگين وزن ()Heavyweight
فازها بطور امل اجرا شده و مستندات امل ايجاد مشود
متدولوژيهای سبک وزن ()Lightweight
فازها به صورت وتاه و مستندات به اندازه ايجاد مشوند
متدولوژيهای چابک در دسته دوم قرار دارند
4
متدولوژي سنگين وزن
در 25سال ا ير روشهياي بسييار زييادي بيراي توسيعه نرمافيزار
معرف شدند اما امروزه تعداد بسييار انيد از آنهيا ميورد اسيت اده
قرار مگيرد!
متدولوژيهاي فعل بيش از اندازه ماشيينگرا و م يانيزه هسيتند و
بصييورت فرآينييدي وارد جز يييات ريرمييروري مشييوندت بييه همييين
دليل اين نوع متدولوژها را سنگين وزن منامند
5
مشکالت متدولوژيهاي سنگين وزن
مشيييتريان نرمافزارهيييا يامييير نيسيييتند يييه بيييراي دسيييت ييييافتن بيييه
نرمافزارهاي مورد نياز ود مدت زيادي منتمر بمانند
رقابت بسيار شديد شر تهياي تولييد نرمافيزار بيراي ارا يه يدمات
نرمافزاري به اربران
تغييرپذيري بسيار زياد نرمافزارهاي امروزي ان ارناپذير است
6
لزوم تغييرات در توسعه نرمافزار
No Change!
•We are already running late.
•I need to meet my date.
•We worked hard to prevent
change at the start.
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.
Change &
Rework
happens at
the most
expensive
time
Customer
big cheese
Promised
date
8
Spec signed
off here
لزوم تغييرات در توسعه نرمافزار
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
سبک مديريت
مديريت در روشهای چابک بصورت ريرمتمر ز و آزاد است
در روشهييای سيينگين وزن مييديريت بصييورت مطلييق و اسييتبدادی
مديريت ريرمتمر ز امکان تصميمگيری بهتر را فراهم می ند
است
14
نحوه مستندسازی
مستندسييازی در روشهييای چابييک بصييورت بسيييار ميييدود انجييام
میشود
در بسياری از موارد مستند سازيهای سنگين ,ار بسيار
در روشهييای سيينگين وزن مستندسييازی بصييورت امييل و جييام
دشوار و زمانبری است
انجام میشود
15
چرخهها
تعداد چر هها ( )Cyclesدر روشهای چابک بسييار زيياد اسيت اميا
زمان آنها وتاست
زمانبر بودن چر ههای توليد ,موجب طوالنی شدن زمان انتمار
در روشهای سنگين وزن تعداد چر هها م است وليی زميان آنهيا
برای رسيدن به نشرها میشود
بسيار زياد است
16
اندازه تيم
در روشهای چابک اندازه تيم وچک است (بين 20تا 30ن ر)
در روشهای سنگين وزن اندازه تيم توسعه بزر
است
القيت و همکاری در تيم وچک بسيار بيشتر واهد بود
17
برگشت سرمايه
در روشهای چابک سرمايه يلی زود در طول پروژه بر میگردد
در روشهييای سيينگين وزن بييرای برگشييت سييرمايه بايييد تييا انتهييای
ردهای چابک از ليام اقتصادی بصرفهاند
پروژه صبرروش
18
مقايسه متدولوژيهاي سبک و سنگين
Approach
Success Measurement
Project Size
Management Style
Documentation
Emphasis
Cycles
Domain
Team Size
19
Agile Methods
Heavy Methods
Adaptive
Predictive
Business Value
Conformation to plan
Small
Large
Decentralized
Autocratic
Low
Heavy
People-Oriented
Process-Oriented
Numerous
Limited
Unpredictable/Exploratory
Predictable
Small/Creative
Large
بيانيه روشهاي چابک
در سال 2001مت صصان روشهياي چابيک بيانييهاي را منتشير
ردنييد و اييين روشهييا را در چهييار اصييل ليي بييه دنييياي نرمافييزار
معرف نمودند ه عبارتند از:
فردگراي و تعامل برتر از فرآيندها و ابزارها
نرمافزار قابل اجرا بهتر از مستندات م هوم
همکاري با مشتريان بهتر از مذا رات قراردادگرا
پاسخ به تغيير بهتر از دنبالهروي از طرح
20
معروفترين روشهاي چابک
XP (Extreme Programming)
Scrum
Crystal Family
FDD (Feature Driven Development)
Dynamic System Development
Adaptive Software Development
Open Source Software Development
21
متدولوژی )Extreme Programming( XP
بر مبنای اصول سادگیت همکاری و باز ورد سري استوار است
ايده اين روش توسط Kent Beckدر سال 2000ارا ه شده است
مبتنی بر آزمايش ()Test-Driven
نقش مشتريان بسيار پررنگ است
فرآيند آن شامل 12فعاليت و 5فاز است
22
متدولوژی – XPچرخه حيات
23
– فازهاXP متدولوژی
شامل پنج فاز است
24
Exploration
Planning
Iterations To Release
Product Tionizing
Maintenance and Dead
XP
چر ه ييات
متدولوژی – XPنقشها و مسئوليتها
برنامهنويس
مشتري
آزمايش ننده
پگيري ننده ()Tracker
مرب
مشاور
مدير (ر يس ارشد)
25
متدولوژی – XPفرآوردهها
User Stories
معموالً بشکل متنی بوده و توسط مشتريان نوشته میشوند
از طريق آنها نيازمنديهای سيستم مش
میشود
Iteration Plan
مجموعهای از User Storyهاست ه توسط مشتری انت اب میشوند
در يک تکرار ه معموالً دو ه ته طول می شدت توليد میشود
طرحهای تکرار بيا توجيه بيه اولوييت مشي
شيده توسيط مشيتری اجيرا
میشوند
انت اب براساس بودجه تعيينشده توسط توسعهدهندگان واهد بود
26
متدولوژی – XPفرآوردهها
Release Plan
(ادامه)
مجموعهای از طرحهای تکرار را در قالب يک نقشه ليی بيرای رسييدن
به نشرها نمايش میدهد
Task
زيرمجموعهای از User Storyها هستند
Taskهييا از نميير تکنيکييی و يياری اولويييت بيشييتری دارنييد و بايييد سييري
انجام شوند
Taskهيا در مريليه طيرحرييزی تکرارهيا ( )Iteration Planningمشي
میشوند
27
متدولوژی – XPفرآوردهها
(ادامه)
Metaphore
نشاندهنده يک تصوير لی از سيستم است
برای هر عنصر در سيستم يک نام در نمر گرفته میشود
ارتبييياط بيييين عناصييير درگيييير در سيسيييتم از طرييييق 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
د جديد در يداقل زميان ممکين بيه يد اولييه ميیپيونيددت بنيابراين سيسيتم
دفعات زيادی در روز يکپارچه شده و سا ته میشود
40 Hour Week
يدا ثر چهل ساعت ار در ه ته افی است
اين مورد اجباری است و بيشتر از اين ساعات ار مجاز نمیباشد
31
متدولوژی – XPعمليات
On- Site Customer
(ادامه)
مشتری بايد بصورت تمام وقت برای تيم توسعه در دسترس باشد
Coding Standards
قواعد دنويسی بايد توسط برنامهنويسان رعايت شود و ارتباط بين دها
مورد توجه قرار گيرد
32
متدولوژی )Feature Driven Development( FDD
تمام فرآيند توسعه نرم افزار را پوشش نمیدهيد و بيشيتر روی دو
فاز طرايی و پيادهسازی متمر ز میشود
برای است اده بهمراه ساير فعاليتهای يک پروژه توسعه نرمافيزار
طرايی شده است و هيچ مدل فرآيند اصی الزم ندارد
مبتنييييی بيييير توسييييعه تکييييراری بييييا انت يييياب بهتييييرين و مييييوثرترين
فعاليتهاست
روی جنبييههييای ي تييی تأ يييد دارد و شييامل نشييرهای ميسييوس و
پيگيری دقيق پيشرفت پروژه است
33
فرآيندهای FDD
شييامل پيينج فرآينييد ترتيبييی اسييت ييه از طريييق آنهييا فعاليييتهييای
طرايی و پيادهسازی انجام میشود
قسمت تکراری فرآيند ( FDDطراييی و سيا ت) از توسيعه چابيک
يمايت می ند
هر تکرار از يک اصيتت معموالً 2تا 3ه ته زمان میبرد
34
متدولوژی – FDDنقشها
FDDنقشهای ود را به سه دسته لی تقسيم می ند
نقشهای ليدی
نقشهای يمايتی
نقشهای امافی
35
متدولوژی – FDDنقشهاي کليدي
مدير پروژه
معمار ارشد
مدير توسعه
برنامهنويس ارشد
مالك الس ()Class Owner
مت ص
دامنه ()Domain Manager
36
– نقشهاي حمايتيFDD متدولوژی
37
)Release Manager( مدير نشر
)Language Guru( مشاور زبان
)Build Engineer( مهندس سا ت
)Toolsmith( مس ول ابزار
)System Administrator( مدير سيستم
متدولوژی – FDDنقشهاي اضافي
سه نقش امافی ه در همه پروژهها وجود دارند
آزمايش ننده ()Tester
مستقر ننده ()Deployer
نويسنده فن ()Technical Writer
هر عمو میتواند چندين نقش بازی نيد و هير نقيش ممکين اسيت
به چند عمو نسبت داده شود
38
متدولوژی – FDDبهترين تجربيات
Domain Object Modeling
شامل است راو و توميح دامنه مسأله میباشد
Developing By Feature
توسعه و بررسی ميزان پيشرفت پروژه از طريق دنبال ردن پيادهسازی
ليست ومايف و وا
مش
شده
Individual Class Ownership
برای هر الس ش ص وجود داشته باشد ه مسي ول سيازگاریت يارايی
و صيت آن باشد
39
متدولوژی – FDDبهترين تجربيات
Feature Teams
Inspection
تيم وچ ه بهصورت پويا ش ل گرفتهاند
است اده از معروفترين و بهترين م انيزهاي شناساي طاها
Regular Builds
تممين اين ه هميشه ييك سيسيتم قابيل اجيرا و قابيل نميايش دادن ()Demo
وجود دارد
Configuration Management
داشتن تاري چه تغييرات و نس ههاي م تلف (بهمراه د منب )
متدولوژی – FDDبهترين تجربيات
Progress Reporting
رونييد اجييراي فعاليتهييا بييه صييورت امييل و در سييطوح م تلييف سييازمان
گزارش شود
متدولوژي Scrum
از يک استراتژی در بازی راگب اقتباس شده است
تأ يد روی اصول انعطافپذيریت سازگاری و سودمندی است
تمر ز :چگونه اعمای تيم بايد عمل ننيد تيا سيسيتم تولييد شيدهت در ييک
مييط امالً تغييرپذيرت انعطافپذيری افی داشته باشد
ايده اصلی :توسعه سيستمها شامل چندين متغير مييطی و تکنيکيی اسيت
(نيازهييات زمييانت منيياب و تکنولييوژی) ييه ايتميياالً در طييول فرآينييد توسييعه
تغيير می نند
اين موموع فرآيند توسعه را پيچيده و ريرقابل پيشبينی می ند
42
فرآوردهها- Scrum متدولوژي
به سه دسته اصلی تقسيم میشوندScrum فرآوردههای
43
Product Backlog
Sprint Backlog
Sprint BurnDown Chart
متدولوژي Product Backlog - Scrum
شييييييامل يييييييک صييييييف اولويييييييتبنييييييدی شييييييده اسييييييت ييييييه در آن
ومي ييهمنييديهييای تکنيکييی و يرفييه نمييايش داده شييدهانييد ييه بايييد
توسعه داده شوند
بييرای هيير مييورد مش ي
شييده در اييين فييرآوردهت واصييی ماننييد
ومعيتت اولويت و ت مين اری وجود دارد
44
متدولوژي Sprint Backlog - Scrum
مجموعييييهای از مييييوارد يرفييييه و فنيييي ييييه بييييرای تکييييرار جيييياری
( )Current Iterationزمانبنيدی شيدهانيد در ايين فيرآورده نميايش
داده میشوند
نيازها در اين فرآورده به ومايف تبديل می شوند
برای هر ومي يه ييک شيرح وتياه وجيود دارد و مشي
ميیشيود
ييه چييه سييی مس ي ول انجييام آن اسييت و همچنييين ومييعيت و تعييداد
سييياعات باقيمانيييده تيييا تکمييييل شيييدن هييير ومي يييه در ايييين فيييرآروده
مش
میشود
45
متدولوژي Sprint BurnDown Chart - Scrum
سياعات باقيمانييده بييرای تکمييل شييدن همييه وميايف مربييوط بييه يييک
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
پرسش و پاسخ
55