فرایند محور

Download Report

Transcript فرایند محور

‫‪Software Process‬‬
‫فرایند تولید نرم افزار‬
‫فرآیند تولید (توسعه) نرم افزار ‪Software Development Process‬‬
‫• مجموعه ای منسجم از فعالیتها‪ ،‬و گامهاست که تولید کننده نرم افزار باید‬
‫دنبال نماید تا محصول حاصل گردد‪.‬‬
‫• هر فرایند توسعه نرم افزار مشخص می کند مراحل ‪SDLC‬‬
‫– چگونه انجام شود‬
‫– توسط چه کسی انجام شود‬
‫– در چه زمانی انجام شود‬
‫– چه خروجی حاصل کند‬
Communication
Planning
Modeling
Construction
Deployment
Project Control
Risk Management
‫بخش های فرآیند تولید نرم افزار‬
‫‪.1‬مدل فرآیند )‪ : (Process Model‬یک رویه ی سطح باال که استراتژی‬
‫کلی تولید نرم افزار را از نظر ترتیب اجرای مراحل ‪ SDLC‬مشخص می‬
‫نماید‪.‬‬
‫مدل آبشاری )‪(Waterfall Model‬‬
‫مشکالت مدل آبشاری ‪:‬‬
‫‪ ‬جمع اوری نیازمندیها طی یک فاز مشکل است‬
‫‪ ‬مشتری باید صبور باشد‬
‫‪ ‬در واقعیت پروژه ها از یک روند خطی پیروی نمی کنند‬
)Incremental Model( ‫مدل افزایشی‬
Evolutionary Process Models
• Prototyping Model
Evolutionary Process Models
• Spiral Model
Unified Process (UP)
‫• بهره گیری از نکات مثبت مدلهای سنتی‬
‫ با ویژگیهای‬Jacobson, Booch, Rumbaugh ‫• توسط‬
:‫زیر‬
Use-case driven –
Architecture-centric –
iterative –
UP iterations
Communication
Communication
Communication
Planning
Planning
Planning
Modeling
Iteration
#2
Modeling
Iteration
#3
Modeling
Construction
Construction
Construction
Deployment
Deployment
Deployment
…Iteration #n
‫تفاوت مدل حلزونی و تکراری ‪:‬‬
‫در روش حلزونی طول تکرارها ممکن است متفاوت باشد‪،‬‬
‫اما در روش تکراری طول تکرارها ثابت و معموال ٌ کوتاه‬
‫(در حد چند هفته) است‪.‬‬
UP ‫فازهای‬
developm ent cycle
iteration
inc.
elaboration
m ilestone
A n iteration endpoint w hen som e
significant decision
or evaluation
occurs.
phase
construction
transition
release
increm ent
A stable executable
subset of the final
product. T he end of
each iteration is a
m inor release.
T he difference
(delta ) betw een the
releases of 2
subsequent
iterations.
final production
release
A t this point, the
system is released
for production use .
UP ‫فازهای‬
S am p le
U P D iscip lin es
incep tion
construction
transition
T he relative effort in
disciplines shifts
across the phases .
B usiness
M odeling
R equirem ents
T his exam ple is
suggestive , not literal.
D esign
Im plem entation
...
...
elaboration
‫مزایای فرایند توسعه تکراری‪:‬‬
‫• کمتر شدن احتمال شکست پروژه‬
‫• مدیریت زود هنگام ریسک ها(ریسک نیازمندیها‪ ،‬ریسک تکنیک)‬
‫• مشاهده زود هنگام پیش رفت نرم افزار اجرایی‬
‫• مدیریت پیچیدگی تولید پروژه‬
‫• دریافت بازخورد زود هنگام از کاربر‬
‫بخش های فرآیند تولید نرم افزار‬
‫‪ ‬مدل فرآیند )‪(Process Model‬‬
‫‪ ‬دیدگاه شناخت نیازمندیها (‪)Requirement gathering method‬‬
‫‪ ‬زبان مدلسازی (‪)Modeling Language‬‬
‫‪ ‬ابزار پشتیبانی)‪(CASE Tool‬‬
‫دیدگاه شناخت نیازمندیها (‪)Requirement gathering method‬‬
‫– فرایند محور )‪:( Process Centric‬‬
‫• سیستم را مجموعه ای از واحدهای کاری (فرایند) متعامل می دانیم‪.‬‬
‫– کاربر محور )‪(User Centric‬‬
‫• سیستم را به عنوان مجموعه ای از تعامالت با کاربر می دانیم‪.‬‬
‫مثال‪ -‬فرایند محور‬
‫مثال‪ -‬فرایند محور‬
‫مثال‪ -‬فرایند محور‬
‫مثال‪ -‬کاربر محور‬
‫بخش های فرآیند تولید نرم افزار‬
‫‪ ‬مدل فرآیند )‪(Process Model‬‬
‫‪ ‬دیدگاه شناخت نیازمندیها (‪)Requirement gathering method‬‬
‫‪ ‬زبان مدلسازی (‪)Modeling Language‬‬
‫‪ ‬ابزار پشتیبانی)‪(CASE Tool‬‬
‫• زبان های مدل سازی‬
‫• مدل‪:‬بازنمایی یا توصیف یک جنبه از سیستم‪:‬‬
‫مدل داده ای‬
‫مدل فرایندی‬
‫• خروجی هر مرحله ‪ SDLC‬یک مدل است‬
‫• هر مدل یک سطح تجرید یا ‪ Abstraction‬دارد‪.‬سطح تجرید با‬
‫میزان جزییات مدل نسبت معکوس دارد‪.‬‬
‫بخش های فرآیند تولید نرم افزار‬
‫‪ ‬مدل فرآیند )‪(Process Model‬‬
‫‪ ‬دیدگاه شناخت نیازمندیها (‪)Requirement gathering method‬‬
‫‪ ‬زبان مدلسازی (‪)Modeling Language‬‬
‫‪ ‬ابزار پشتیبانی)‪(CASE Tool‬‬
‫ابزار پشتیبانی‪:‬‬
‫• این ابزارها جهت تسهیل دنبال نمودن مراحل فرایند استفاده می‬
‫شود‪.‬‬
‫• در واقع ابزار کمکی برای رسم مدل ها می باشند که به دو دسته‬
‫تقسیم می شوند‪:‬‬
‫‪ ‬عمومی‪:‬مانند ‪ Word‬و ‪Visio‬‬
‫‪ ‬تخصصی‪:‬ابزاری که مدل را بفهمد و بتواند خطاها را تشخیص دهد‬
‫‪Power Designer ‬‬
‫‪Rational Suite ‬‬
‫‪Enterprise Architect ‬‬
‫فرایند توسعه سریع نرم افزار‬
‫‪Agile Unified Process‬‬
What is Agility?
‫فرایند توسعه سریع نرمافزار( ‪(Agile Unified Process‬‬
‫•‬
‫•‬
‫•‬
‫•‬
‫‪-‬‬
‫اصول‪:‬‬
‫ نرمافزار اجرایی و نه مستندات‬‫ افراد تیم و تعامالت بین آنها و نه فرایند و ابزار‬‫ ارتباط مستمر با مشتری و نه مذاکرات در چهارچوب قرارداد‬‫پذیرش تغییر و نه دنبال کردن یک برنامه ثابت‬
(Agile Unified Process (‫فرایند توسعه سریع نرمافزار‬
:‫تکنیکها‬
(Iterative Development) ‫توسعه در تکرارها‬
(Test-Driven Development) ‫توسعه آزمایش محور‬
( Risk-Driven Development)‫توسعه ریسک محور‬
•
•
•
•
‫توسعه آزمایش محور‬
‫تولید در تکرارها‬
‫•‬
‫•‬
‫•‬
‫•‬
‫•‬
‫فرایند توسعه در تعدادی تکرار با طول کوتاه (مثال سه‬
‫هفته) ثابت سازماندهی می شود‪.‬‬
‫خروجی هر تکرار یک نرم افزار اجرایی و تست شده می‬
‫باشد که بخشی از نیازهای کاربر را برآورده می نماید‪.‬‬
‫در هر تکرار تحلیل نیازمندیها‪ ،‬طراحی‪ ،‬پیاده سازی و‬
‫تست انجام می شود‪.‬‬
‫نرم افزار تکرار به تکرار کاملتر می شود‪.‬‬
‫شکل صفحه بعد روند تولید تکراری را نشان می دهد‪.‬در‬
‫این شکل فرایند توسعه در ‪ 20‬تکرار پیش بینی شده است‬
1
2
3
4
5
...
20
so ftw a re
so ftw a re
In e vo lu tio n a ry ite ra tive
d e ve lo p m e n t, th e
re q u ire m e n ts e vo lve
o ve r a se t o f th e e a rly
ite ra tio n s , th ro u g h a
se rie s o f re q u ire m e n ts
w o rksh o p s (fo r
e xa m p le ). P e rh a p s
a fte r fo u r ite ra tio n s a n d
w o rksh o p s , 9 0 % o f th e
re q u ire m e n ts a re
d e fin e d a n d re fin e d .
N e ve rth e le ss , o n ly
1 0 % o f th e so ftw a re is
b u ilt.
re q u ire m e n ts
Im a g in e th is w ill
u ltim a te ly b e a 2 0 ite ra tio n p ro je ct.
re q u ire m e n ts
re q u ire m e n ts w o rksh o p s
90%
90%
50%
30%
20%
20%
5%
2%
Ite ra tio n 1
10%
8%
Ite ra tio n 2
Ite ra tio n 3
Ite ra tio n 4
Ite ra tio n 5
a 3 -w e e k ite ra tio n
w eek 1
M
kicko ff m e e tin g
cla rifyin g ite ra tio n
g o a ls w ith th e te a m .
1 hour
T
te a m a g ile
m o d e lin g &
d e sig n ,
UML
w h ite b o a rd
ske tch in g .
5 h o u rs
w eek 2
W
Th
sta rt
co d in g &
te stin g
F
M
T
d e -sco p e
ite ra tio n
g o a ls if
to o m u ch
w o rk
M o st O O A /D a n d
a p p lyin g U M L d u rin g
th is p e rio d
w eek 3
W
Th
F
M
fin a l ch e ck -in
a n d co d e fre e ze fo r th e
ite ra tio n
b a se lin e
U se -ca se m o d e lin g
d u rin g th e w o rksh o p
T
W
dem o and
2 -d a y
re q u ire m e n ts
w o rksh o p
Th
F
n e xt
ite ra tio n
p la n n in g
m e e tin g ;
2 h o u rs