صفحه 1:
درس مهندسی نرمافزار ۲
فصل ۲۳
دکتر احمد عبداله زاده بارفروش
تهيه كننده : بويا جافريان
0 وا سر موه توق
صفحه 2:
طرح ریزی پروژه نرم افزاری
a ‘an
ردگیری» و پایش یک پروژه »
| _ فنی بیچیده می باشد.
* برای چه این کار را انجام می دهیم ؟
Core ee ee ee 0
صفحه 3:
مجموعه فعالیت های طرح ریزی پروژه
؟ تعیین دامنه پروژه
؟ امکان سنجی پروژه
* تحليل ريسك ها
Ce eee one (c een nae, 6
صفحه 4:
ار ل ا 2
* Off-the-shelf components
وري 1 اك 6 oc] an eeepc ons ogee [oe oa
نظر تولید ارزانتر تمام شود.
* Full-Experience Components
0 ا cen Caren Pepe ra IP Fare
* Partial-Experience Components
0 a
٠ New Components
0110 ey @
صفحه 5:
صفحه 6:
مجموعه فعالیت های طرح ریزی پروژه
؟ تخمین هزینه و کار
oe
Ne ago ae = یی را اسه اسار
t Function Point . Process Tasks
موارد کاربرد
۳
* تهیه برنامه زمانی پروژه
0000 ey
صفحه 7:
* تخمين منابع» هزينه و زمانبندى براى يك فعاليت
مهندسی نرم افزار به موارد زير احتياج دارد:
ee
ای ال Bens sya
- شجاعت براى اطمينان به اطلاعات عددى وقتى اين
اطلاعات موجود است.
؟ تخمین به طور ذاتی دارای ریسک می باشد و این
SS ene enD
0000 oe
صفحه 8:
طرح پروژه باید مستند شود.
0110 ey 3
صفحه 9:
برای فهم دامنه پروژه
* فهم نياز هاى مشترى
* فهم حوزه كسب و كار
* فهم مرزهاى يروزه
* فهم دلایل اشتیاق مشتری
|
5
وقتى شما همه جيز را فهميده ايد بازهم هيج جيز
قطعی نیست.
0110 ey 6
صفحه 10:
© cus (SCOPE) ancl
* دامنه پروژه موارد زیر را شرح می دهد :
ee res Sees Sat ك6
شود
7 داده های ورودی و خروجی
POSE ee ye ety nee
ee
rene ac 1۳
افزار
و ار ۰
Pee ee eee ae er >
می شود.
7 مجموعه ای از موارد کاربرد توسط کاربر نهایی تولید می شود.
0000 0
صفحه 11:
location
reusable
software
ors
ponents
full-experiena
components
0110 ey a
صفحه 12:
تخمين يروزه
RSM eee INCL ST ences el
etre”
۴ شاخص های آماری سودمند هستند.
* حداقل دو روش مختلف بايد استفاده شود.
* عدم اطمینان یکی از ویژگی های ذاتی فرایند
تخمين است.
eee eee ea 06
صفحه 13:
تكنيك هاى تخميز
* يروزه هاى ييشين
* روش هاى تخمين معمول
- شکستن فعالیت ها و تخمین 0
رين
* مدل (Empirical Models) (225 cle
* ابزارهاى 5053 (Automated Tools)
0110 ey 6
صفحه 14:
دقت تخمین بر مبنای موارد زیر تعیین می شود:
- درجه اى از دقت كه طرح ريزى كننده يروزه اندازه
eee | ا 0
eee ay FRYER E res 0 ا
- درجه اى از قدرت طرح نرم افزار در نمايش توانايى
هاى تيم نرم افزارى
- ثبات نيازمندى هاى محصول و محيطى كه فعاليت
های مهندسی نرم افزار را پشتیبانی می کند.
000 0
صفحه 15:
(Functional Decomposition) (695 IS 43>
0 06
صفحه 16:
define product scope:
identity functions by decomposing soope:
do while Functions remain
Function; ۵ مدمه
andi ol fanotone انا دنه و۱
do whe eubtunotins remsin
eloot cub function,
i cubfunction, resembles subtunotiony described ia historical data base
role historical cos, effort, size (LOC or FP) dala for sublunetion:
aj! hictoricl coat, effort, ciz0 data baood on any difersncoo:
use adjucted ooot, effort, cize data fo derive partiol eotmate, Ep:
project eatin = sum of {Ep}:
FF cost, effort, size (LOC or FP) for oubfunetion, can be estimated
thon derive petal eotimate, Ey:
project estimate = sum of {Ep}:
‘ee cubdivide cubtunotion, info emallercubfunetions:
‘edd thooe to eubfunctione ki
endit
صفحه 17:
روش های تجزیه
* با توجه به اندازه نرم افزار صورت می گیرد و تحت
۱
رویکرد های متفاوت آن عبارتند از :
Fuzzy-Logic Sizing -
Function Point Sizing -
Standard Component Sizing -
Change Sizing -
0110 ey 0
صفحه 18:
روش های معمول : رویکرد 100/۳۳
1
لا ۰
* استفاده از داده هاى آمارى 0
برای پروژه
eee eee ea is
صفحه 19:
Average productivity for systems of this fype = 620 LOC/pm_
Burdened labor rate =$8000 per month, the cost per line of code is
approximately $13.
Based on the LOC estimate and the historical productivity data, the
دز اممگآه عاههنامی عطا قهه 5431,000 عناوم ععزمدع 0عامهناده هام 54
000
eee eee ea 06
صفحه 20:
ند
ند
ند
unter
درو
رت ۱
1۳
0 EY
burdened labor rate = $8000 per month, the cost per FP is approximately $1230.
Based on the FP estimate and the historical productivity data, the total estimated project
ناد عطا فصه 9461000 دز ام
ee teen)
0110 ey
صفحه 21:
تخمین مبتنی بر فرایند
كرفته شده أز جارجوب فرايند
|
Lo
صفحه 22:
مثالى از تخمين برمبناى فرايند
لس سل |
لل بلطا
دس
لس 77 ]|
1-7 ]
آماما عطا ,رم عم 95,000 ۵۴ عاده مطها تحص کته میردت اه دق ده له جوظ
estimated project cost is $368,000 and the estimated effort is 46 person-
قلأتم
eee eee ea 9
صفحه 23:
تخمین مبتنی بر ابزار
۱ PST
۱ SC a
LOC/@ Cc 2. —
eee eee ea وه
صفحه 24:
»۱ as the average productivity for systems of this type and a
burdened labor rate of $8000 per month, the cost per line of code is
approximately $13, Based on the use-case estimate and the historical
productivity data, the total estimated project cost is $552,000 and the
estimated effort is 68 person-months,
eee eee ea و
صفحه 25:
COT اك
* این مدل ها به فرم کلی زیر می باشند :
< معمولا کر به
به صورت تجربی صورت نفر ماه
مود 200
ورد و
0 اسان مى شوق
نا رس
Os Nena e ers
که با وه به سجمدگی بووژه
ered
0110 ey مه
صفحه 26:
روش 66601/0-۱1)
ا
0 ا ال ا ane
0 oles ل ل ل ل ا See eG Oe
مراحل اولیه توسعه نرم افزار که نمونه سازی. تعیین ارتباط نرم
افزار و سيستمهاء ارزيابى كارايى و تكنولوقى انجام مى كيرد
را eer
ل ل (gt) ens) هنگامی که نیازهای
نرم افزار تقريبا ثابت شده و معمارى نرم افزار تعيين كرديد
عورد استفاده قرار فى يرك
(Post-Architecture Stage Model) (¢,loxs jl au Jao ~
Re es one
وه 0000
صفحه 27:
معادله نرم افزار (50]0۷۷/۵۲6 ۲6
(equation
a ا
ای ار ی و كم
زمانبرویه در قالساه یاسلل]
ت ار لا مر ۱
جر :۲ ۱۶
0110 ey مه
صفحه 28:
تخمين در يروزه هاى شىء كرا
ا ا ا ا 0
و م ا ل ا لك
موارد کاربرد را بشمارید.
* کلاس های آنالیز یا کلیدی را تعیین کرده و تعداد آنها را بشمارید
Bete eS eee eae ۱
کلاس پشتیبان ضریبی تعیین کنید :
Interface type -
متا تا
No GUI 2.0 -
Text-based user interface 225 -
GUI 22g) -
Complex GUI 3.0 -
وه 0000
صفحه 29:
تخمين در يروزه هاى شىء كرا
RT ED Cie لت
آمده از مرحله قبل ضرب کنید تا تعداد کلاس
های پشتیبان به دست آید.
؟ تعداد کل کلاس ها را در میانگین واحدهای کاری
ete) ease kee ne 2
۰ نفر روز برای هر کلاس پیشنهاد شده است)
eee ee etc eee area 56
تخمین در پروژه های نرم افزاری
درس مهندسي نرمافزار 2
فصل 23
دكتر احمد عبداله زاده بارفروش
تهيه كننده :پويا جافريان
1
Artificial Intelligent Systems Laboratory
طرح ریزی پروژه نرم افزاری
هدف کل3ی طرح ریزی پروژ3ه ،بنانهادن یک راهبرد
کاربردی برای کنترل ،ردگیری ،و پایش یک پروژه
فنی پیچیده می باشد.
• برای چه این کار را انجام می دهیم ؟
برای اینک3ه محص3ول در زمان معی3ن و ب3ا کیفیت آماده
شود.
2
Artificial Intelligent Systems Laboratory
مجموعه فعالیت های طرح ریزی پروژه
• تعیین دامنه پروژه
• امکان سنجی پروژه
• تحلیل ریسک ها
• مشخص نمودن منابع مورد نیاز
– منابع انسانی
– نرم افزارهای با قابلیت استفاده مجدد
– منابع محیطی
3
Artificial Intelligent Systems Laboratory
انواع نرم افزار با قابلیت استفاده مج3دد
• Off-the-shelf components
• محصوالت تولید شده توسط Third Partyکه باید از3
نظر تولید ارزانتر تمام شود.
• Full-Experience Components
• استفاده از تجربیات گذشته از نظر آنالیز ،طراحی ،کد و ...
• Partial-Experience Components
• استفاده تا اندازه ای
• New Components
4
Artificial Intelligent Systems Laboratory
محیط نرم افزار
• محیط یک سیستم بر مبنای کامپیوتر بر اساس
سخت افزار و نرم افزار می باشد .و باید در رابطه با
Resourceبه آن توجه شود.
5
Artificial Intelligent Systems Laboratory
مجموعه فعالیت های طرح ریزی پروژه
• تخمین هزینه و کار
– شکستن مسئله
– تهیه دو یا چند تخمین با استفاده از سایز،
Function Point ، Process Tasksیا
موارد کاربرد
– جمع بندی تخمین ها
• تهیه برنامه زمانی پروژه
6
Artificial Intelligent Systems Laboratory
تخمین
• تخمین منابع ،هزینه و زمانبندی برای یک فعالیت
مهندسی نرم افزار به موارد زیر احتیاج دارد:
– تجربه
– دسترسی به داده های آماری مربوط به شاخص ها
– شجاعت برای اطمینان به اطالعات عددی وقتی این
اطالعات موجود است.
• تخمین به طور ذاتی دارای ریسک می باشد و این
ریسک منجر به ابهام می شود.
7
Artificial Intelligent Systems Laboratory
طرح پروژه باید مستند شود.
طرح پروژه
نرم افزاری
8
Artificial Intelligent Systems Laboratory
دامنه پروژه
تخمین ها
ریسک ها
زمانبندی
راهبرد کنترل
برای فهم دامنه پروژه ...
• فهم نیاز های مشتری
• فهم حوزه کسب و کار
• فهم مرزهای پروژه
• فهم دالیل اشتیاق مشتری
• فهم مسیر احتمالی تغییرات
• و فهم اینکه :
وقتی شما همه چیز را فهمیده اید بازهم هیچ چیز
قطعی نیست.
9
Artificial Intelligent Systems Laboratory
دامنه ( )Scopeچیست ؟
• دامنه پروژه موارد زیر را شرح می دهد :
–
–
–
–
کارکردها و ویژگی هایی که به کاربران نهایی تحویل داده می
شود.
داده های ورودی و خروجی
محتوایی که در نتیجه استفاده از نرم افزار به کاربر نمایش داده
می شود.
کارایی ،محدودیت ها ،نقاط ارتباطی و قابلیت اطمینان نرم
افزار
• دامنه با استفاده از تکنیک های زیر مشخص می شود :
– پس از ارتباط با همه ذینفعان مجموعه ای از شرح دامنه تهیه
می شود.
– مجموعه ای از موارد کاربرد توسط کاربر نهایی تولید می شود.
10
Artificial Intelligent Systems Laboratory
منابع
number
software
tools
skills
hardware
people
environment
location
network
resources
project
OTS
components
reusable
software
full-experience
components
new
components
part.-experience
components
Artificial Intelligent Systems Laboratory
11
تخمین پروژه
• دامنه پروژه باید تعیین گردد.
• تجزیه سیستم الزم است.
• شاخص های آماری سودمند هستند.
• حداقل دو روش مختلف باید استفاده شود.
• عدم اطمینان یکی از ویژگی های ذاتی فرایند
تخمین است.
12
Artificial Intelligent Systems Laboratory
تکنیک های تخمین
• پروژه های پیشین
• روش های تخمین معمول
– شکستن فعالیت ها و تخمین کار الزم
– تخمین بر مبنای سایز (به طور مثال )FP
• مدل های تجربی ()Empirical Models
• ابزارهای خودکار ()Automated Tools
13
Artificial Intelligent Systems Laboratory
دقت تخ3مین
• دقت تخمین بر مبنای موارد زیر تعیین می شود:
–
–
–
–
14
درجه ای از دقت که طرح ریزی کننده پروژه اندازه
آن را تخمین زده است.
توانایی تبدیل تخمین های بر مبنای اندازه به کار
انسانی ،زمان ،و ریال
درجه ای از قدرت طرح نرم افزار در نمایش توانایی
های تیم نرم افزاری
ثبات نیازمندی های محصول و محیطی که فعالیت
های مهندسی نرم افزار را پشتیبانی می کند.
Artificial Intelligent Systems Laboratory
)Functional Decomposition( تجزیه کارکردی
بیانیه دامنه
تجزیه کارکردی
انجام یک
Grammatical “parse”
Artificial Intelligent Systems Laboratory
15
مثالی از یک الگوریتم تجزیه
Artificial Intelligent Systems Laboratory
16
روش های تجزیه
• با توجه به اندازه نرم افزار صورت می گیرد و تحت
. مطرح استSoftware Sizing عنوان
: رویکرد های متفاوت آن عبارتند از
–
–
–
–
Fuzzy-Logic Sizing
Function Point Sizing
Standard Component Sizing
Change Sizing
Artificial Intelligent Systems Laboratory
17
روش های معمول :رویکرد LOC/FP
• محاس3به LOC/FPبرمبنای تخمی3ن هایی روی
اطالعات حوزه مسئله
• اس3تفاده از داده های آماری برای تهی3ه تخمین
برای پروژه
18
Artificial Intelligent Systems Laboratory
LOC مثالی از رویکرد
Average
Averageproductivity
productivityfor
forsystems
systemsofofthis
thistype
type==620
620LOC/pm.
LOC/pm.
Burdened
Burdenedlabor
laborrate
rate=$8000
=$8000per
permonth,
month,the
thecost
costper
perline
lineofofcode
codeisis
approximately
approximately$13.
$13.
Based
Basedon
onthe
theLOC
LOCestimate
estimateand
andthe
thehistorical
historicalproductivity
productivitydata,
data,the
the
total
totalestimated
estimatedproject
projectcost
costisis$431,000
$431,000and
andthe
theestimated
estimatedeffort
effortisis54
54
person-months.
person-months.
Artificial Intelligent Systems Laboratory
19
FP مثالی از رویکرد
The
Theestimated
estimatednumber
numberofofFP
FPisisderived:
derived:
FP
= count-total 3 [0.65 + 0.01 3 S (Fi)]
FPestimated
estimated = count-total 3 [0.65 + 0.01 3 S (Fi)]
FP
= 375
FPestimated
estimated = 375
organizational
organizationalaverage
averageproductivity
productivity==6.5
6.5FP/pm.
FP/pm.
burdened
burdenedlabor
laborrate
rate==$8000
$8000per
permonth,
month,the
thecost
costper
perFP
FPisisapproximately
approximately$1230.
$1230.
Based
Basedon
onthe
theFP
FPestimate
estimateand
andthe
thehistorical
historicalproductivity
productivitydata,
data,the
thetotal
totalestimated
estimatedproject
project
cost
costisis$461,000
$461,000and
andthe
theestimated
estimatedeffort
effortisis58
58person-months
person-months. .
Artificial Intelligent Systems Laboratory
20
تخ3مین مبتنی بر فرایند
گرفته شده از چارچوب فرایند
فعالیت های چارچوب
کار الزم برای تکمیل هر
فعالیت چارچوب برای هر
کارکرد برنامه
21
Artificial Intelligent Systems Laboratory
کارکرد های
برنامه
مثالی از تخمین برمبنای فرایند
Act i vi t y
CC
Pl a n n i n g
Ri s k
An a l y s i s
Task
En g i n e e ri n g
anal ysi s
desi gn
Co n s t ru c t i o n
Re l e a s e
code
t est
CE
To t al s
n/a
n/a
n/a
n/a
n/a
n/a
n/a
8.40
7.35
8.50
6.00
5.75
4.25
5.00
Fu n ct i o n
UICF
2DGA
3DGA
CGDF
DSM
PCF
DAM
0.50
0.75
0.50
0.50
0.50
0.25
0.50
2.50
4.00
4.00
3.00
3.00
2.00
2.00
0.40
0.60
1.00
1.00
0.75
0.50
0.50
5.00
2.00
3.00
1.50
1.50
1.50
2.00
To t al s
0.25
0.25
0.25
3.50
20.50
4.50
16.50
% effo rt
1%
1%
1%
8%
45%
10%
36%
46.00
CC = cust omer communicat ion CE = cust omer evaluat ion
Based on an average burdened labor rate of $8,000 per month, the total
estimated project cost is $368,000 and the estimated effort is 46 personmonths.
Artificial Intelligent Systems Laboratory
22
تخمین مبتنی بر ابزار
ویژگی های پروژه
فاکتورهای کالیبراسیون
داده[ هایLOC/FP
23
Artificial Intelligent Systems Laboratory
مثالی از تخمین به کمک موارد کاربرد
e subsyst
User in terface
subsysteem
m
Engin eerin g subsystem group
Infrastructueresubsyst
subsyst
emgroup
group
em
Total LOC estimate
stimate
use cases
6
10
5
scenarios
10
20
6
pages
6
8
5
Ź scenarios
Ź
12
Ź
16
Ź
10
Ź
Ź
Ź
Ź
pages
5
8
6
Ź
Ź
LOC LOC estimate
560
3,366
3100
31,233
1650
7,970
Ź
Ź
42,568
Using 620 LOC/pm as the average productivity for systems of this type and a
burdened labor rate of $8000 per month, the cost per line of code is
approximately $13. Based on the use-case estimate and the historical
productivity data, the total estimated project cost is $552,000 and the
estimated effort is 68 person-months.
Artificial Intelligent Systems Laboratory
24
مدل های تخمین تجربی
• این مدل ها به فرم کلی زیر می باشند :
exponent
effort = tuning coefficient * size
معموال کار به
صورت نفر /ماه
نشان داده می
شود.
به صورت تجربی
تعیین می شود
اندازه معموالً به صورت
LOCبیان می شود
و.لی می توان از FPهم
استفاده نمود.
25
معموالً یک ثابت عددی است
که با توجه به پیچیدگی پروژه
تعیین می گردد.
Artificial Intelligent Systems Laboratory
روش COCOMO-II
• COCOMO-IIم3جموع3ه ا3یاز م3دلهایت33خمی3نا3س3ت
که ب33ه م3سائ3لز3یر م3یپ33ردازد:
– مدل ترکی3ب نرم افزار ( )Application Composition Modelکه در
مراحل اولیه توسعه نرم افزار که نمونه سازی ،تعیین ارتباط نرم
افزار و س3یستمها ،ارزیاب3ی کارایی و تکنولوژ3ی انجام می گیرد
مورد استفاده قرار می گیرد.
– مدل طراح3ی اولی3ه ( )Early Design Modelهنگام3ی که نیازهای
نرم افزار تقریباً ثاب3ت شده و معماری نرم افزار تعیی3ن گردید
مورد استفاده قرار می گیرد.
– مدل بعد از معماری ()Post-Architecture Stage Model
در حین ساخت نرم افزار مورد استفاده قرار می گیرد.
26
Artificial Intelligent Systems Laboratory
معادله نرم افزار (The software
)equation
یک مدل پویا چند متغیره به صورت زیر می باشد :
)E = [LOC x B0.333/P]3 x (1/t4
که :
27
.کار ب33ر ا3ساسن33فرماه 3یا ن33فر س33ا3لم3یب33اشد = E
3لب3اه 3یا س33ا3ل= t
ز3مانپ33روژ3ه 3در ق33ا 3م
ف33اکتور ت33خصصهایو3یژهB = 3
ف33اکتور P = Productivity
Artificial Intelligent Systems Laboratory
تخمین در پروژه های شیء گرا
•
•
•
•
از تجزیه کار ،تحلیل FPیا دیگر روش های عمومی استفاده کنید.
مدل مورد کاربرد ( )Use caseسیستم را تهیه کرده و تعداد
موارد کاربرد را بشمارید.
کالس های آنالیز یا کلیدی را تعیین کرده و تعداد آنها را بشمارید.
انواع واسط های کاربر برای نرم افزار را تعیین کرده و برای هر
کالس پشتیبان ضریبی تعیین کنید :
2.0
2.25
2.5
3.0
28
– Interface type
Multiplier
– No GUI
– Text-based user interface
– GUI
– Complex GUI
Artificial Intelligent Systems Laboratory
تخمین در پروژه های شیء گرا
• تعداد کالس های کلیدی را در ضریب به دست
آمده از مرحله قبل ضرب کنید تا تعداد کالس
های پشتیبان به دست آید.
• تعداد کل کالس ها را در میانگین واحدهای کاری
برای هر کالس ضرب کنید( .این مقدار 15الی
20نفر روز برای هر کالس پیشنهاد شده است)
29
Artificial Intelligent Systems Laboratory