صفحه 1:
فصل ۴
درس مهندسی نرمافزار ۲
دکتر احمد عبداله زاده بارفروش
تهیه کنده: پوبا جافریان
Maecenas 1
0
صفحه 2:
Pernt] تاد
* "ما راههای بهتری را برای توسعه نرمافزار با انجام آن و
ا ل ل نر
ع ا ال ا ا Sete
چا را Fe
- اهميت نرمافزار عملياتى نسبت به مستندات كامل
- اهميت همكارى مشترى نسبت به مذاكرات در حين قرارداد
- اهميت ياسخ به تغييرات نسبت به ييكيرى يك طرح اوليه
05000 1 ال
مطرح (ibe caval eas alee BA.
۱ eee ا ie Rowe pee OnE OU)
۳ ea enact 2
ومامتوطه1 و
صفحه 3:
ع ان
ا ل Dero
ا 0
* توسعه ©8011 بر ارتباطات و همكارى ييوسته
ميان توسعه دهندكان و مشتريان تاكيد دارد.
۳ ea enact 3
ومامتوطه1 و
صفحه 4:
ع ان
* مهندسى نرمافزار به روش ©8011 بر مبناى
فلسفه رضايت مشترىء تحويل نرمافزار به صورت
افزايشىء تيمهاى نرمافزارى كوجك (متشكل از
مهندسین نرمافزار و ذینفعان» روشهای غیر
فورمال. و محصولات کاری ۷۷/0۲۱
ل و 0 0 ا
رهنمودهاى مهندسى نرمافزار به روش ©6011 بر
تحويل به موقع نرمافزار عملياتى به صورت
ا ل رای اليم
۳ ea enact 3
0
صفحه 5:
fume Agility
* ياسخكويى موثر (سريع و سازكار) به تغييرات
* ارتباطات موثر ميان همه ذينفعان
* قراردادن مشترى در تيم نرمافزارى
pes he, Jlgeey ار ا
کنترل باشد
و این موارد موجب میشود :
16701511 eee Deer epee
ose
۳ ea enact
ومامتوطه1 و
35
صفحه 6:
۳:2 pe)
؟ از نیازهای ارائه شده (سناریوها) توسط مشتری
ا
* طردهاء كوتاه مدت هستند.
* توسعه نرمافزار به صورت چرخشی با تاکید زیاد بر
روی فعالیتهای ساخت سیستم
* تحويل نرم igre Meet ce ON RC 9 وی
NC Rees nS Teno ae i
۳ ea enact 6
ومامتوطه1 و
صفحه 7:
تواناییهای لازم برای تبدیل نرمافزار به مهندسی
* فازهاى طراحى و ساخت به طور كامل از هم جدا
شون
Tee ا ا ا سات
و
ساخت مناسب و آماده باشد.
سا
و rome ess قد CHER
Sere els eter ل كت
۳ ea enact 0
0
صفحه 8:
ميزان فعاليتهاى صورت كرفته در توسعه نرمافزار
* تجزيه و تحليل (5أ5لا|813) ١5 /
* طراحى (0©51010]) 17
7¥¥ Code/Unit Test) w1,/ ss cus *
* تست سيستم/يكيارجه (©5ع1 دوأعغوعغىا/ممعؤوا5)
184
لع تار ۱۱۸
vi. dmplementation/Install) W2s,>1 *
۳ ea enact 8
0
صفحه 9:
متدولوژیهای 16 ۸0/موجود
eXtreme Programming
Yella)
Crystal Family of Methodologies
Feature Driven Development
Dynamic System Development
۳ ea enact 9
ومامتوطه1 و
Method
صفحه 10:
مشخصات يروزههايى كه از روشهاى ©8011 استفاده م ىكنند
(۱۱۱۱6۲/) :
۱ ره Greys Coors
تکرار پذیر بودن (6۲311۷6]]) با دورههای تکرار کوتاه *
كه موجب رسيدكى سريع و صحت در عملكرد مى كردد.
POE gee cae ا ل ل ts
* صرفه جويى در فرايند توسعه با كنار كذارى تمام
فعاليتهاى غير ضرورى
* قابل تطبيق با ريسكهاى جديدى كه احتمال بروز دارند.
۳ ea enact 10
0
صفحه 11:
مشخصات يروزههايى كه از روشهاى ©8011 استفاده م ىكنند
: )/۱۱۱۱6۲(
00
روند فرايند افزايشى كه موجب مىشود يروثه تابع
كرا شده و در كامهاى كوجك ساخته شود.
روند همگرلیی و افزایشی که موجب کاهش ریسک
ES aoe
يشتيبانى 0 ل در
همه فرایندها و تکنولوژیها از افراد پروژه
طرفدارى و ايشان را يشتيبانى مى كنند.
روش كارى به صورت همكارى و ايجاد ارتباط
باس
۳ ea enact
ومامتوطه1 و
صفحه 12:
توسعه نرمافزار به صورت ۸۵016
* ترس از شکست پروژه موجب میشود که فرایندی
وأمسصر عساو ويك “عاق درف
* يك فرايند بزرك و ييجيده مى تولند مسائل بزركى
اناه كي
5000 en
۱ ا
تکنیکهای ساده برای رسیدن به اهداف, به وجود
آمده اند.
۳ ea enact 12
0
صفحه 13:
13
The Agile Alliance
گروهی از متخصصین صنعتی گرد هم آمده ند تا
ارزشها و قوانينى را ايجاد كنند كه براى تيمهاى
ا ا ل ل 0
تغييرات را بدهد. اين كروه خود را ۸0116
6 نامیده اند و بیانیه ارزشهای
eer Un. Ce (= 0
۳ ea enact
ومامتوطه1 و
صفحه 14:
02
* ما میخواهيم فرایند ایجاد کنیم که بنا بر اعتقاد
ما مى تواند أن جيزى را كه نكرانش هستيم از بين
ببرد.
op ule allel O ره
Sy ae ا 5
7 پروژه محصولی نامرغوب تولید نماید.
- پروژه با تاخیر انجام شود.
tet yo rer eS ey oy eS ii را م
ا ce Rel ane 0
۳ ea enact 14
ومامتوطه1 و
صفحه 15:
02
* اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار
ee a eee oe lie
هم دارند معمولا خيلى بيشتر از كروهى برنامه نويس
Polo Veg) OS cee os ۰ ۰
کار میکنند.
- تصور نداشته باشيد مجموعهاى از ابزارهاى بزركتر و
بهتر به طور خودکار موجب بهبود کار شما میشوند.
۳ ea enact 15
0
صفحه 16:
؟ اهمیت نرمافزار عملیاتی نسبت به مستندات کامل
لت ا كت
- مستندات بیش از حد بدتر از مستندات بسیار محدود
ابت زيرا توليد اين مستندات زمان ريادى خواهد ارد
ل ی
- دو مستندى كه بهترين شكل مىىتواند اطلاعات را به
اعضاى جديد تيم منتقل كند. كد و خود تيم مىباشد.
۳ ea enact 16
0
صفحه 17:
صفحه 18:
18
نرمفزار باید به طور متناوب» از چندین هفته تا
چندین ماه یکبار به مشتری تحویل داده شود.
افراد مربوط به کسب و کار و توسعه دهندگان باید
به صورت روزانة در طول يروقّه با هم همكارى
داشته باشند.
پروثه را بر پلیه افراد با انگیزه شكل دهيد. نيازها و
مجح ای وا رای ای ات کی ما
اعتماد كرده و اجازه دهيد كار را انجام دهند.
۳ ea enact
ومامتوطه1 و
صفحه 19:
بهترين راه براى بيان اطلاعات در تيم نرمافزار
ce) ا 00
نرمافزار عملياتى اولين معيار اندازهكيرى يبشرفت
است.
نرمافزار با همكارى 1 زور ۱
001ع/اع(آ هاء و اع 5لا ها انجام م ىكيرد.
در یرب ی یز رای ریت ری
0
* سادگی یک اصل اولیه میباشد.
19
۳ ea enact
ومامتوطه1 و
صفحه 20:
ates رس تست
ارو وت وف ۱۳۱۱۱۱
* در بازدهاى زمانى مشخصى تيمها بررسى م ىكنند
20
كه حكونه كارايى خود را افزايش دهند.
۳ ea enact
ومامتوطه1 و
صفحه 21:
مدلهای فرایند ۸۸0116
* eXtreme Programming (XP)
* Adaptive Software Development
(ASD)
* Dynamic Systems Development
Method (DSDM)
* Scrum
* Crystal
* Feature Driven Development
٠ Agile Modeling
۳ ea enact Pat
ومامتوطه1 و
Agileتوسعه
فصل 4
درس مهندسي نرمافزار 2
دكتر احمد عبداله زاده بارفروش
تهيه كننده :پويا جافريان
1
Artificial Intelligent System
s Laboratory
ايده اصلي توسعه Agile
نرمافزار ب+ا انجام آن و
راههاي بهتري را براي توس+عه
• ”م+ا
كمك به ديگران براي انجام آن ،نشان خواهيم داد“
ارزشهاي زير دست يافته ايم :
• در طي اين كار ما به
–
–
–
–
اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار
نرمافزار عملياتي نسبت به مستندات كامل
اهميت
اهميت همكاري مشتري نسبت به مذاكرات در حين قرارداد
اهميت پاسخ به تغييرات نسبت به پيگيري يك طرح اوليه
• ب+ا توج+ه ب+ه مطال+ب باال ،درحال+ي ك+ه مسائل مطرح شده در
ميباشن+د ،مسائل مطرح
س+مت چ+پ جمالت داراي اهمي+ت
شده در سمت راست از اهميت باالتري برخوردارند.
2
Artificial Intelligent System
s Laboratory
توسعه نرمافزار Agile
ميتوان+د س+يستم موفق را
• توس+عه ب+ه روش Agile
سريع تحويل دهد.
• توس+عه Agileبر ارتباطات و همكاري پيوسته
ميان توسعه دهندگان و مشتريان تاكيد دارد.
3
Artificial Intelligent System
s Laboratory
توسعه نرمافزار Agile
• مهندس+ي نرمافزار به روش Agileبر مبناي
فلس+فه رضاي+ت مشتري ،تحوي+ل نرمافزار ب+ه صورت
تيمهاي نرمافزاري كوچ+ك (متشكل از
افزایش+ی ،
مهندس+ين نرمافزار و ذينفعان) ،روشهاي غير
فورمال ،و محصوالت كاري (Work
)Productsكوچك و حداقل بنا شده است.
•
رهنمودهاي مهندس+ي نرمافزار به روش Agileبر
تحوي+ل ب+ه موق+ع نرمافزار عمليات+ي ب+ه صورت
مرحلهاي در طي آناليز و طراحي تاكيد دارد.
4
Artificial Intelligent System
s Laboratory
Agilityچ+يست؟
• پاسخگويي موثر (سريع و سازگار) به تغييرات
• ارتباطات موثر ميان همه ذينفعان
• قراردادن مشتري در تيم نرمافزاري
• تشكي+ل ي+ك تي+م براي اينك+ه كار انجام شده تحت
كنترل باشد
ميشود :
و اين موارد موجب
• تحوي+ل س+ريع و افزايشي ()Incremental
نرمافزار
5
Artificial Intelligent System
s Laboratory
فرايند Agile
نيازهاي ارائه شده (سناريوها) توسط مشتري
• از
ميگيرد.
نشات
طرحها ،كوتاه مدت هستند.
•
• توسعه نرمافزار به صورت چرخشي با تاكيد زياد بر
روي فعاليتهاي ساخت سیستم
• تحويل نرم افزار در چندین افزایش ()Increment
مييابد.
• در صورت تغيير ،با تغييرات تطابق
6
Artificial Intelligent System
s Laboratory
تواناييهاي الزم براي تبديل نرمافزار به مهندسي
فازهاي طراح+ي و س+اخت ب+ه طور كام+ل از هم جدا
•
شوند.
• تعيين و ارائه يك برنامه ريزي قابل پيشگويي
• طراح+ي محص+ول ب+ه طوري ك+ه ب+ه اندازه كافي براي
ساخت مناسب و آماده باشد.
• انجام فاز ساخت با نيروي انساني كم هزينه
• در نظ+ر گرفت+ن ميزان ارزندگ+ي محص+ول كه ارتباط
مستقيم با زمان و نيروي انساني دارد.
7
Artificial Intelligent System
s Laboratory
فعاليتهاي صورت گرفته در توسعه نرمافزار
ميزان
% 16 )Analysis( تجزيه و تحليل
% 17 )Design( طراحي
% 34 )Code/Unit Test( واحد/ تست كد
)System/Integration Test( يكپارچه/يستم+ت س+تس
18%
8% )Documentation( مستند سازي
7% )Implementation/Install( نصب/اجرا
Artificial Intelligent System
s Laboratory
•
•
•
•
•
•
8
موجودAgile
متدولوژيهاي
•
•
•
•
•
eXtreme Programming
Scrum
Crystal Family of Methodologies
Feature Driven Development
Dynamic System Development
Method
Artificial Intelligent System
s Laboratory
9
مشخصات پروژههايي كه از روشهاي Agileاستفاده ميكنند
(: )Miller
•
•
•
•
•
10
پيمانهاي بودن ( )Modularityدر س+طح فرايند
توسعه
تكرار پذي+ر بودن ( )Iterativeبا دورههاي تكرار كوتاه
ميگردد.
كه موجب رسيدگي سريع و صحت در +عملكرد
دورههاي تكرار از يك تا شش هفته
زمانبندي با
ص+رفه جوي+ي در فراين+د توس+عه با كنار گذاري تمام
فعاليتهاي غير ضروري
ريسكهاي جديدي كه احتمال بروز دارند.
قابل تطبيق با
Artificial Intelligent System
s Laboratory
مشخصات پروژههايي كه از روشهاي Agileاستفاده ميكنند
(: )Miller
ميشود پروژ+ه تابع
• رون+د فراين+د افزايش+ي ك+ه موج+ب
گرا شده و در گامهاي كوچك ساخته شود.
• رون+د همگراي+ي و افزايش+ي ك+ه موج+ب كاه+ش ريسك
ميشود.
• پشتيبان+ي از نيروي انس+اني ،فرايندهاي زيركانه در
هم+ه فراينده+ا و تكنولوژيه+ا از افراد پروژه
ميكنند.
طرفداري و ايشان را پشتيباني
• روش كاري ب+ه صورت همكاري و ايجاد ارتباط
ميباشد.
11
Artificial Intelligent System
s Laboratory
توسعه نرمافزار به صورت Agile
ميشود كه فرايندي
• ترس از شكس+ت پروژ+ه موج+ب
با محدوديتهاي زياد خلق شود.
ميتوان+د مس+ائل بزرگي
• ي+ك فراين+د بزرگ و پيچيده
ايجاد كند.
• قواني+ن و ارزشهاي توسعه نرمافزار Agileبراي
جلوگيري از بزرگشدن چرخ+ه فراين+د و تمركز بر
تكنيكهاي س+اده براي رس+يدن ب+ه اهداف ،به وجود
آمده اند.
12
Artificial Intelligent System
s Laboratory
The Agile Alliance
• گروه+ي از متخص+صين ص+نعتي گرد ه+م آمده ان+د تا
ارزشه+ا و قوانين+ي را ايجاد كنن+د كه براي تيمهاي
نرمافزار امكان توس+عه س+ريع و پاس+خگويي به
تغييرات را بدهد .اين گروه خود را Agile
Allianceناميده ان++د و بيانيه ارزشهاي
Agileرا ارائه نموده اند.
13
Artificial Intelligent System
s Laboratory
بيانيه Agile
ميخواهيم فرايند ايجاد كنيم كه بنا بر اعتقاد
• ما
ميتواند آن چيزي را كه نگرانش هستيم از بين
ما
ببرد.
• ما نگران مسائل زير هستيم :
–
–
–
–
–
14
پروژه محصول غلطي ايجاد نمايد.
پروژه محصولي نامرغوب توليد نمايد.
پروژه با تاخير انجام شود.
مجبور شويم 80ساعت در هفته كار كنيم.
انجام پروژه براي ما جذاب و مفرح نباشد.
Artificial Intelligent System
s Laboratory
بيانيه Agile
• اهميت اشخاص و ارتباطات نسبت به فرايند و ابزار
– گروهي از برنامه نويسان معمولي كه ارتباط مناسبي با
هم دارند معموالً خيلي بيشتر از گروهي برنامه نويس
قوي كه نميتوانند باهم ارتباط مناسبي داشته باشند
كار ميكنند.
– تصور نداشته باشيد مجموعهاي از ابزارهاي بزرگتر و
بهتر به طور خودكار موجب بهبود كار شما ميشوند.
15
Artificial Intelligent System
s Laboratory
• اهميت نرمافزار عملياتي نسبت به مستندات كامل
– نرمافزار بدون مستندات مفهومي ندارد.
– مستندات بيش از حد بدتر از مستندات بسيار محدود
است زيرا توليد اين مستندات زمان زيادي خواهد برد
و هماهنگ نگه داشتن آن با كد دشوار است.
– دو مستندي كه بهترين شكل ميتواند اطالعات را به
اعضاي جديد تيم منتقل كند ،كد و خود تيم ميباشد.
16
Artificial Intelligent System
s Laboratory
• اهميت همكاري مشتري نسبت به مذاكرات در
حين قرارداد
– پروژه موفق ،پروژه اي است كه شامل دريافت پاسخ از
مشتريان به طور متناوب و معمول باشد.
17
Artificial Intelligent System
s Laboratory
• نرمافزار باي+د ب+ه طور متناوب ،از چندي+ن هفت+ه تا
چندين ماه يكبار به مشتري تحويل داده شود.
• افراد مربوط ب+ه كس+ب و كار و توس+عه دهندگان بايد
ب+ه ص+ورت روزان+ه در طول پروژ+ه ب+ا هم همكاري
داشته باشند.
• پروژ+ه را بر پاي+ه افراد ب+ا انگيزه شك+ل دهي+د ،نيازها و
محي+ط مناس+ب را براي آنه+ا فراه+م كني+د ،ب+ه آنها
اعتماد كرده و اجازه دهيد كار را انجام دهند.
18
Artificial Intelligent System
s Laboratory
• بهترين راه براي بيان اطالعات در تيم نرمافزار
ميباشد.
مباحثه رو در رو
نرمافزار عملياتي اولين معيار اندازهگيري پيشرفت
•
است.
نرمافزار با همكاري Sponserها،
•
ميگيرد.
Developerها ،و Userها انجام
• توجه مستمر به تعالي فني و طراحي خوب موجب
ميشود.
افزايش Agility
ميباشد.
• سادگي يك اصل اوليه
19
Artificial Intelligent System
s Laboratory
• بهترين معماري ،نيازها و طراحي از تيمهاي
ميآيد.
Self-Organizingبه دست
• در بازههاي زماني مشخصي تيمها بررسي ميكنند
كه چگونه كارايي خود را افزايش دهند.
20
Artificial Intelligent System
s Laboratory
Agile مدلهاي فرايند
• eXtreme Programming (XP)
• Adaptive Software Development
(ASD)
• Dynamic Systems Development
Method (DSDM)
• Scrum
• Crystal
• Feature Driven Development
• Agile Modeling
Artificial Intelligent System
s Laboratory
21