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