فرآيند توليد نرمافزار
Download
Report
Transcript فرآيند توليد نرمافزار
بسمهتعالي
فصل پنجم
فرآيند توليد نرمافزار در متدولوژي USDP
اهداف جلسه
آشنائي با روشهاي مدرن توسعه نرمافزار
معرفي فرآيند توليد در متدولوژي
درك تفاوت بين USDPو
معرفي محورهاي اصلي
درك محصول بودن
آشنائي با ابعاد
USDP
RUP
USDP
RUP
RUP
2
فهرست مطالب
فرآيند توليد نرمافزار
روشهاي مدرن توسعه نرمافزار
روشهاي سنگين و سبک
مقدمهاي بر فرآيند
محورهاي اصلي
RUPبعنوان يك محصول
معرفي ابعاد فرآيند
USDP
USDP
RUP
3
فرآيند توليد نرمافزار
يك فرآيند توليد نرمافزار چهار نقش اساسي دارد
مشخخخنم نمخخخودن ترتيخخخع فعاليخخختهخخخايي كخخخه بايخخخد صخخخورت يخخخرد تخخخا
نيازمنديهاي كاربران به يك محصول واقعي تبديل شوند
بيان اينكه چه فرآوردههايي بايد توليد شوند و در چه زماني
تعيين روش اداره وظايف توسعهدهند ان منفرد و تيمخي نقخشهخاي
مورد نياز در پروژه و انتساع اين نقشها به اعضاي تيم
فخخخراهم نمخخخودن معيارهخخخايي
(Metrics
)Softwareبخخخراي انخخخدازه يخخخري
كيفيت محصوالت پروژه و روند پيشرفت فعاليتهاي آن
4
فرآيند توليد نرمافزار
به خوبي مستند
شده باشد
در فرآيند
توليد كه
به خوبي مستند نشده
باشد
(ادامه)
نرمافزارهاي مورد نياز به صورت
منظم و قابل پيشبيني قابل ت وليدند
موفقيت بستگي به تالش طاقت
فرساي اعضاي تيم دارد
5
فرآيند توليد نرمافزار خوب
يكخخي از مشنصخخخات بخخارز يخخخك فرآينخخد توليخخخد نخخوع اسخخختفاده از
تجربيات بدسخت آمخده از اجخراي پخروژههخاي نرمافخزاري موفخ
است
تكرار و توسعه تدريجي
بررسي
كيفيت
نرمافزار
مدلسازي
تصويري
نرمافزار
استفاده از
معماري مبتني
بر مؤلفهها
مديريت
نيازمنديها
كنترل تغييرات نرمافزار
6
تكرار و توسعه تدريجي
فرآيند آبشاري ()Waterfall Process
تحليل نيازمنديها
تعيين مشخصات
طر
احي به مراحل توليد نرمافزار
ترتيبي
ريشه مشكالت اصلي اين روش نگرش
پيادهسازي
آزمايش
نگهداري
تكامل
زمان
7
تكرار و توسعه تدريجي
(ادامه)
هزينه ريسك در روش آبشاري
هزينه
زمان
8
)(ادامه
تكرار و توسعه تدريجي
BM: Business Modeling
روش تکرار و توسعه تدريجي
R: Requirements Analysis
A/D: Analysis & Design
C: Implementation
T: Test
D: Deployment
Iteration 1
Iteration 2
Iteration 3
BM
BM
BM
R
R
R
A/D
A/D
A/D
C
C
T
T
D
D
T I M E
9
C
T
D
تكرار و توسعه تدريجي
(ادامه)
روش تکرار و توسعه تدريجي
نمونهسازي
تحليل نيازها
ي
معمار
طراحي و ساخت
امكانسنجي
تكرار
مجتمعسازي مولفهها
با يكديگر
برنامهريزي براي توليد پرو ژه
تدريج
تحويل مولفههاي ساخته شده
مقبوليت استفادهكننده
10
تكرار و توسعه تدريجي – ويژگيها
تشخخنيم زود هنگخخام نياهخخايي كخخه در درك مس خ له تحليخخل يخخا
يراحي رخ ميدهند
تشخخخخنيم زودهنگخخخخام ناسخخخخاز اريهخخخخاي موجخخخخود بخخخخين تحليخخخخل
نيازمنديها يراحي و پيادهسازي
كاربر ميتواند دائما از روند پيشرفت پروژه ميلع ردد
11
تكرار و توسعه تدريجي – ويژگيها
(ادامه)
بوسخخيله ايخخن روش مخخيتخخوان روي قسخخمتهخخاي مهمتخخر پخخروژه
متمركز شد و از پخردانتن بخه قسخمتهخاي كخم اهميختتر پرهيخز
نمود
آزمخخخخايش تكخخخخراري و مسخخخختمر امكخخخخان تشخخخخنيم بهتخخخخر رونخخخخد
پيشرفت پروژه را به ما ميدهد
باركاري ( )Workloadتيمها بنصوم آزمايشكننخد ان روي
چرنه توليد پروژه به صورت متوازن توزيع ميشود
12
مديريت نيازمنديها
نيازمنخخديهخخا عبارتسخخت از شخخريي يخخا قخخابليتي كخخه سيسخختم بايخخد
داراي آن باشد
مديريت نيازمنديها شامل
ميلوع
سازماندهي و
دريافت
1
نيازمنديهاست
عملكردبودن
مستندسازي و پويا
نرمافزار متغير
ثابتها در دنياي
يكي) از
سيستم و محدوديتهاي موجود
)2اعمال تغييرات ميلوع روي نيازمنديهاي جمعآوري شده
)3رديابي و مستندكردن اثرات بوجود آمده و تصميمهاي اتناذ شده
13
مديريت نيازمنديها
ويژ يها
يك روش منظم و سيستماتيك براي مديريت نيازمنديها
در ايخخن روش مخخيتخخوان نيازمنخخديهخخا را اولويخختبنخخدي فيلتربنخخدي ي خا
رديابي نمود
امكان تشنيم واقعخي و منصخفانه عملكخرد و كخارايي سيسختم وجخود
دارد
ناساز اريها به آساني قابل كشفند
14
استفاده از معماري مبتني بر مؤلفهها
معمخخاري سيسخختم عبارتسخخت از تعيخخين سخخانتار كلخخي سيس ختم و
روشهايي كخه ايخن سخانتار را قخادر بخه تخامين كليخه ويژ يهخاي
كليدي سيستم ( )cross-cutting concernsميسازد
15
استفاده از معماري...
(ادامه)
معمخخاري سيسخختم شخخامل تصخخميم يخخريهخخايي در سخخين ك خ ن در
موارد ذيل است:
معماري با مواردي از قبيل
سيستم
سازماندهيو رفتار
نحوهبر سانتار
ع وه
افزاري
سيستم نرم
يخ و
مجدد
پذيري سخاستفاده
خودن
تكنولوژنم
هايمشخخنم
محدوديتخا +
واسخوخيهخخاي آنهخ
خانتاري و
انعيافعناصخخر
كارايي انتنخخاع
رفتار اين عناصر
اقتصادي نيز سروكار دارد
سازماندهي اين عناصر در روههاي بزر تر (زيرسيستمها)
سبك معماري مورد استفاده
16
استفاده از معماري...
(ادامه)
يكخخي از شخخيوههخخاي مهخخم معمخخاري نرمافخخزار توسخخعه مبتنخخي بخخر
مؤلفهها است زيرا اين روش امكان استفاده مجدد از آنها را
به ما ميدهد
ويژ يها
كمك در داشتن يك معماري كشسان
افزايش قابليت استفاده مجدد از مؤلفهها و تكنولوژيهاي موجود
مؤلفه پايه نوبي براي مديريت پيكربندي است
17
مدلسازي تصويري نرمافزار
مدل عبارت از يك توصيف ساده شده با توجه بخه يخك نگخرش
معين از سيستم است
Use
Case
Use
Case
Activity
Diagrams
Diagrams
Diagrams
Use
Case
Use
UseCase
Case
Diagrams
Diagrams
Diagrams
Scenario
Scenario
Sequence
Diagrams
Diagrams
Diagrams
Scenario
Scenario
Collaboration
Diagrams
Diagrams
Diagrams
18
State
State
Class
Diagrams
Diagrams
Diagrams
Model
Deployment
Diagram
State
State
Object
Diagrams
Diagrams
Diagrams
State
State
State
Diagrams
Diagrams
Diagrams
Component
Component
Diagrams
Component
Diagrams
Diagrams
مدلسازي تصويري نرمافزار
(ادامه)
ويژ يها
امكان توصيف سيستم با ميزان دلنواهي از جزئيات
بوسخخيله مخخدلها ميتخخوان يراحخخي سيسخختم را بخخه صخخورت روشخخن و
صرين بيان نمود
امكان تشنيم معماريهاي غير قابل انعياف و واحدبندي نشده
نرمافزار نوع حاصل مدلهاي با كيفيت باال
19
بررس ي كيفيت نرمافزار
كيفيت به
براي رسيدن به يك نرمافزار با كيفيت قابل قبول بايد فرآيند تشخيص
Cost
صورت مستمر و پيوسته از همان مراحل اوليه توليد نرمافزار به اجرا درآيد
Deployment
Development
هزينه اصالح خطاها به صورت نمايي رشد مينمايد
20
بررس ي كيفيت نرمافزار
(ادامه)
ويژ يها
فرآيند تشخنيم رونخد پيشخرفت پخروژه مبتنخي بخر واقعيختهخا نخه بخر
حدسها و محاسبات كاغذي نواهد بود
ايخخن فرآينخخد ناسخخاز اريهخخاي موجخخود بخخين نيازمنخخديهخخا يراحخخي و
پيادهسازي را آشكار ميسازد
امكخخان كشخخف زود هنگخخام نياهخخا را بخخه مخخا مخخيدهخخد و بخخدين صخخورت
هزينه اص ح آنها بشدت كاهش مييابد
21
مديريت پيكربندي
هنخخخخر تشخخخخنيم سخخخخازماندهي و كنتخخخخرل تغييراتخخخخي كخخخخه بخخخخراي
نرمافزار در مدت كاركرد نود (از ابتداي توليد تخا نخارش شخدن
از عمل) رخ ميدهند
يكخخي از مشخخك ت اساسخخي توليخخد نرمافخخزار مخخديريت پيكربنخخدي
است
اين مشكل بويژه در پروژههاي بزرگ كه در آن تيمهخاي متعخددي بخا
يكخخديگر بخخر روي تكرارهخخا نشخخرها محصخخوالت و سخخكوهاي متفخخاوت
كار ميكنند قابل مشاهده است
22
مديريت پيكربندي
(ادامه)
ويژ يها
يك روش سيستماتيك و قابلتكرار براي كنترل تغييرات نرمافزار
كنترل انتشار تغييرات
كاهش تدانل بين كار توسخعهدهنخد ان كخه بخه صخورت مخوازي بخا هخم
كار ميكنند
نرخ تغيير معيار مناسبي براي تشنيم وضعيت فعلي پروژه است
23
متدولوژيهای توسعه نرم افزار
متدولوژيهای سنگين وزن ()Heavyweight
اين نوع متدولوژيها معمخوال مسختندات محصخوالت و فرآوردههخاي
بيشتري توليد مينمايند
متدولوژيهای سبک وزن ()Lightweight
تاکيخخد بخخر توليخخد محصخخول نهخخايي و نخخه فرآوردههخخا و مسخختندات بسخيار
است
24
مقايسه متدولوژيهاي سبک و سنگين
معيارهای مقايسه متدولوژيها با يکديگر
روش
معيار موفقيت
اندازه پروژه
سبک مديريت
نحوه مستندسازی
چرنهها
اندازه تيم
بر شت سرمايه
25
مقايسه متدولوژيها -روش
روشهخخای سخخريعاالنتقخخال بصخخورت Adaptiveيخخا سخخاز ار عمخخل
میکنند و با شرايي منيب میشوند
Predictiveعمخخل
پيشخگو
قابل پيشخ
ابتداخورت
وزناز بصخ
بينیيخخااست؟
خنگينچيز
سخ همه
روشهخخای آيا
میکنند و سعي ميکنند در آغاز همه چيز را پيشبينی کنند
26
مقايسه متدولوژيها -معيار موفقيت
معيار موفقيت در روشهای سخريعاالنتقخال دسختيابی بخه ارزش
کاري ( )Business Valueاست
روشهای سنگين وزن از نظر تغيير در فرآيند
در روشهخخخای سخخخنگين وزن معيخخخار موفقيخخخت پخخخيش رفخخختن در
توسعه در حين پروژه انعيافپذيری ندارند
راستای يرح اوليه است
27
مقايسه متدولوژيها -اندازه
اندازه پروژه در روشهای سريعاالنتقال کوچک است
اندازه پروژه در روشهای سنگين وزن میتواند بسيار بزرگ
اين مس له از محبوبيت روشهای سريعاالنتقال نمیکاهد
باشد
(آمار نشان میدهد که تعداد پروژههای کوچک بسيار بيشتر است)
28
مقايسه متدولوژيها -سبک مديريت
مخخديريت در روشهخخای سخخريعاالنتقخخال بصخخورت غيرمتمرکخخز و
آزاد است
مديريت غيرمتمرکز امکان تصميم يری بهتر را در حين
در روشهخخخخخای سخخخخخنگين وزن مخخخخخديريت بصخخخخخورت ميلخخخخخ و
استبدادی است
پروژه فراهم میکند
29
مقايسه متدولوژيها -مستندسازی
مستندسخخخازی در روشهخخخای سخخخريعاالنتقخخخال بصخخخورت بسخخخيار
محدود انجام میشود
در بسياری از موارد مستندسازيهای سنگين ,کار بسيار
در روشهای سنگين وزن مستندسازی بصورت کامل و جامع
انجام میشود
دشوار و زمانبری است
30
مقايسه متدولوژيها -چرخهها
تعخخداد چرنخخههخخا ( )Cyclesدر روشهخخای سخخريعاالنتقخخال بسخخيار
زياد است اما زمان آنها کوتاه است
زمانبر بودن چرنههای توليد ,موجع يوالنی شدن زمان
در روشهای سنگين وزن تعداد چرنهها کخم اسخت ولخی زمخان
انتظار برای رسيدن به نشرها میشود
آنها بسيار زياد است
31
مقايسه متدولوژيها -اندازه تيم
در روشهای سريعاالنتقال انخدازه تخيم کوچخک اسخت (بخين 20
تا 30نفر)
ود
نواهد ب
بسيار
هایهمکاری
قيت و
است
بيشتربزرگ
توسعه
کوچکتيم
تيم اندازه
سنگين دروزن
در نروش
32
مقايسه متدولوژيها -برگشت سرمايه
در روشهای سريعاالنتقال سرمايه نيلی زود در يخول پخروژه
بر می ردد
اندبايخخخد تخخخا
خخرمايه
اقتصادی سخ
لحاظ بر شخخخت
ازخخخرای
وزن ب
خخنگين
هایسخ
روشخخای
در روشهخ
بصرفه
االنتقال
سريع
انتهای پروژه صبر کرد
33
معرفي USDP
يک فرآينخد توليخد مهندسخي نرمافخزار اسخت كخه روشخي مخنظم و
سيسخخخختماتيك بخخخخراي ترتيخخخخع انجخخخخام فعاليخخخختهخخخخا در يخخخخك پخخخخروژه
نرمافزاري را پيشنهاد مينمايد
فرآيند USDPاز مدل شي رايي حمايت نموده و پايه
)Processاست
داراي يك چارچوع فرآيند (Framework
افزار است
روشهاي مدرن توسعه نرم
همه عناصر الزم براي توليخد محصخوالت نرمافخزاري از سيسختمهخاي
سخخخنتي و معمخخخولي رفتخخخه تخخخا سيسخخختمهخخخاي هوشخخخمند و سيسخخختمهاي
اي عاتي بزرگ را دربردارد
34
محورهاي اصلي USDP
سه محور اصلي
USDP
راهبري بر مبناي موارد كاربري ()Use-Case Driven
محوريت قرار دادن معماري ()Architecture Centric
استفاده از روش تكرار و توسعه تدريجي
()Iterative and Incremental Development
35
راهبري بر مبناي موارد كاربري
مخخورد كخخاربري عبخخارت از دنبالخخهاي از عمليخخات اسخخت كخخه يخخك
سيسخختم انجخخام مخخيدهخخد تخخا يخخك نتيجخخه قابخخل مشخخاهده و ارزشخخمند
براي كاربر فراهم نمايد
در نگرش سنتي
در نگرش مبتني بر
موارد كاربري
سيستم بايد چه عملكردهايي از نود را
نشان دهد؟
سيستم به ازاي هر كاربر بايد چه
عملكردهايي از نود را نشان دهد؟
36
)(ادامه
راهبري بر مبناي موارد كاربري
راهبري بر مبناي م وارد كاربري يعني
Use-Case
Model
Specified by
Realized by
Implemented by
Analysis
Model
Distributed by
Design
Model
Implementation
Model
37
Verified by
Deployment
Model
Test
Model
به عنوان يک فرآيندRUP
Unified Software Development
Process (USDP)
Is Customized to
(By Rational)
Rational Unified
Process(RUP)
Is Customized to
(By My Enterprise)
My Enterprise Process
38
RUPبعنوان يك محصول
چون مستندسازي
RUP
بوسيله اسناد كاغذي ميسخر نيسخت از
اسناد HTMLاستفاده شده است
بوسيله
راهنماهخخاي الزم بخخراي بكخخار يري RUPبخخه عنخخوان يخخك فرآينخخد توليخخد در مراحخخل
منتلف توليد نرمافزار
راهنماهاي ابزار ()Tools Mentors
الگوها ()Templates
يك Development Kitكه چگونگي تغيير سترش و تنظيم ويژه RUPرا نشان
ميدهد
39
RUPبعنوان يك محصول
(ادامه)
40
معرفي ابعاد فرآيند RUP
ميتوان نگاههاي ذيل را به فرآيند داشت:
)1جعبه سياه ()Black Box
محصول جديد يا
تغيير يافته
فرآيند توليد و توسعه
نرمافزار
نيازمنديهاي جديد
يا تغيير يافته
)2با توجه به مدت كاركرد مفيد سيستم نرمافزاري
مرگ
...
تولد
نسنهها يا نشرها ( )Releasesمنتلف
41
معرفي ابعاد فرآيند RUP
(ادامه)
نرمافخخزار يخخك محصخخول فيزيكخخي كخخه يخخك بخخار توليخخد و مسخختهلك
ميشود نيست بلكه مانند يخك موجخود زنخدهاي كخه در سخازمان
تولخخخد و رشخخخد كخخخرده و در دوران حيخخخات نخخخود بايخخخد بخخخا تغييخخخر
نيازهاي سازمان و اهداف و ماموريتهخاي آن نخود را تيبيخ
دهد
42
معرفي ابعاد فرآيند RUP
(ادامه)
مثال :زند ي انسان!
تولد و مرگ دارد
داراي دورههاي ونا ون :كودكي نوجواني جواني و پيري
نود تشبيه كرد!!!
منتمانسان
نيازهايزند ي
افزار را به
ميتوان
نرميها و
حياتويژ
دورانداراي
هر دوره
در ميان دورهها نيازهاي مشتركي زيادي وجود دارد
ولي شيوه برآوردن آنها از يكديگر متفاوت است
همچنين ميزان تاكيد روي هركدام متفاوت است
43
معرفي ابعاد فرآيند RUP
(ادامه)
دوران حيات يك سيستم نرمافزاري شامل دورههخاي ونخا وني
است
ميان آنها فعاليتهاي مشتركي وجود دارد
در هر دوره بخه انخدازه معينخي روي هخر كخدام از ايخن فعاليتهخا
تاكيد ميشود
هركخخدام از ايخخخن دورههخخا ميتواننخخخد فعاليتهخخاي ويخخخژه نخخخود را
داشته باشند
44
معرفي ابعاد فرآيند RUP
(ادامه)
در RUPدوران حيات يك نرمافزار به چهار مرحله آغازين ،تشريح،
ساخت و انتقال تقسيم ميشود
سه مرحله اول شامل فعاليتهاي توليد يا توسعه نرمافزار بوده و مرحله چهارم
time
نگهداري آن است
Constructionمحيط واقعي و
Transitionنده انتقال نرمافزار به
دربردار
Elaboration
Inception
iteration
#n+1 . . .
iteration
#n
iteration
#n+2 . . .
iteration
#n+1
iteration
#n
iteration
#2. . .
iteration
#1
preliminary
)iteration(s
Releases
45
معرفي ابعاد فرآيند RUP
(ادامه)
)3ديدگاه دو بعدي
RUPيخخك فرآينخخد توليخخد دو بعخخدي اسخخت (بخخرن ف فرآينخخدهاي
توليد سنتي كه يك بعدي هستند)
اين ابعاد عبارتند از:
بعد (محور) عمودي :ردش كارهاي اصلي را نشان ميدهد
بعد (محور) افقي :سانتار چرنه توليخد نرمافخزار در RUPدر بسختر
زمان را نشان ميدهد
46
معرفي ابعاد فرآيند RUP
فرآيند دو بعدي
(ادامه)
در يك تكرار همه
گردش كارها اجرا مي
شوند
فعاليتهاي
مشترك
زمان
47
معرفي ابعاد فرآيند RUP
(ادامه)
48
پرسش و پاسخ
49