51
310414 - Lecture 1 310414 Software Engineering Cost Estimation

310414 Software Engineering

  • Upload
    marli

  • View
    62

  • Download
    5

Embed Size (px)

DESCRIPTION

310414 Software Engineering. Cost Estimation. Cost Estimation. การวิเคราะห์ต้นทุน วิเคราะห์ก่อนโครงงานจะเริ่มต้น. [Jalote1991]. Why do we estimate?. เพื่อเอื้อโอกาสให้ทีมพัฒนาและลูกค้าได้มีโอกาสวิเคราะห์กำไรต้นทุน. [Jalote1991]. เป็นสิ่งสำคัญมากในการควบคุมการดำเนินโครงงาน - PowerPoint PPT Presentation

Citation preview

Page 1: 310414 Software Engineering

310414 - Lecture 1

310414Software Engineering

Cost Estimation

Page 2: 310414 Software Engineering

310414 - Lecture 2

Cost Estimationการวเคราะหตนทนวเคราะหกอนโครงงานจะเรมตน

1991[Jalote ]1991[Jalote ]

Page 3: 310414 Software Engineering

310414 - Lecture 3

Why do we estimate?เพอเออโอกาสใหทมพฒนาและลกคาไดมโอกาสวเคราะหกำาไรตนทน

1991[Jalote ]1991[Jalote ]

Page 4: 310414 Software Engineering

310414 - Lecture 4

Cost Estimation forDevelopers

เปนสงสำาคญมากในการควบคมการดำาเนนโครงงานความคลาดเคลอนจากการประมาณสามารถใชเปน

เกณฑในการ วดสถานะของโครงงาน วดคณภาพในการจดการบคคลากร

การประมาณตนทน จดเปนขนตอนหลกของการวางแผน

1991[Jalote ]1991[Jalote ]

Page 5: 310414 Software Engineering

310414 - Lecture 5

Uncertainties in CostEstimation

ความไมแนนอนในการประมาณตนทน

ความคลาดเคลอนในการประมาณความคลาดเคลอนในการประมาณ

1991[Jalote ]1991[Jalote ]

Page 6: 310414 Software Engineering

310414 - Lecture 6

เทคนคในการประเมนราคาซอฟตแวรเทคนคในการประเมนราคาซอฟตแวรความแมนยำาในการประเมนราคามความสำาคญดงนคอ สามารถคดกำาไรทไดมาและระบบการเงนในบรษท สามารถคำานวณการใชทรพยากร HW/SW ไดอยางถก

ตอง สามารถคำานวณราคาตอโปรเจคยอย ๆ ได

ในการประเมนราคาเราควรทจะบวกคาความ เทยงตรงไว + - 20%

Page 7: 310414 Software Engineering

310414 - Lecture 7

Estimation BasicsModelsMetrics

Historical Data

Page 8: 310414 Software Engineering

310414 - Lecture 8

Estimation Accuracyแมนยำาในการประมาณขนาดแมนยำาในการประมาณกำาลงบคลากรและเวลาทใชจากขนาดแมนยำาในการวางแผนทแสดงถงความสามารถทแทจรงของทมงาน

ความคงทของความตองการของผลตภณฑ และสภาพแวดลอมตางๆ

Page 9: 310414 Software Engineering

310414 - Lecture 9

HOW NOT TO ESTIMATE COST

มองคประกอบภายนอกททำาใหการประมาณคาไมอาจทำาไดหรอไม ตองทำา เชน

โครงการซอฟตแวรผบรหารกำาหนดใหทำาเสรจภายใน 12 เดอน ดงนนผพฒนาระบบซอฟตแวรจะมเวลาไมเกนนจะตอง

ทำาใหเสรจโครงการซอฟตแวรทตองมการประกวดราคาซงเราทราบวาค

แขงเสนอราคา 1 ลานบาท เมอเปนเชนนเราตองชนะการ ประกวดจงเสนอราคาไป 9 แสนบาท

จรงๆแลวโครงการใชเวลา 1 ปแตไมสามารถบอกหวหนาได หรอบอกเขากไมเชอจงตองกำาหนดเวลาพฒนาไว 10 เดอน

Page 10: 310414 Software Engineering

310414 - Lecture 10

DELPHI METHODผบรหารหรอผมอำานาจในองคกรมอทธพลตอการประมาณราคาและเวลาในการพฒนาDelphi Method คอวธทผเชยวชาญแตละคนเขยนรายละเอยดการประมาณการลงบนกระดาษแลว

ผประสานงานจะเกบผลการประมาณการมารวมกนแลวแจกจายใหแตละผเชยวชาญพจารณาของกนและ

กน ทำาวนเวยนเชนนจนกระทงผลลพธทไดเหนพองกนระหวางผเชยวชาญในกลม

Page 11: 310414 Software Engineering

310414 - Lecture 11

An Expected Value ใหผเชยวชาญประมาณการคาใชจาย 3 คา คอ

คาแรกเปนคาดทสดเชนกรณทเสรจกอนเวลาเรยกวาOptimistic Estimate แทนดวย Q

คาทสองเปนคาทคดวาตรงความเปนจรงหรอเปนไปไดมาก ทสดเรยก Realistic Estimate แทนดวย R

คาทสาม เปนคาทคดวาเลวรายทสดหรอแยทสดเทาทเปนไป ได เรยกวา Pessimistic Estimate แทนดวย S

แลวใชความรเกยวกบ beta distribution หาความสมพนธ

Page 12: 310414 Software Engineering

310414 - Lecture 12

An Expected Value EV = (Q + 2 R + P) / 4 หรอ 4 6EV = (Q + R + P) /

Q = optimistic estimation R = realistic estimation P = prestimistic estimation

[1 9 9 4 ][1 9 9 4 ]

[1997][1997]

- 3aka a point estimated value - 3aka a point estimated value

Page 13: 310414 Software Engineering

310414 - Lecture 13

Estimation Techniques 1( )

Decomposition Techniques : กระจายงานออกเปนงานยอยๆ เพอทจะประมาณได โดยใน

งานยอยนนอาจจะนำาวธการคำานวณทางคณตศาสตรมาใชกได

Empirical models (Algorithmic Cost Modeling) : ใชการคำานวณทางคณตศาสตร หาความสมพนธระหวางสงท

ประมาณไดกบอกสงหนง Based on last projects (Estimation by

analogy)

([1 9 8 1 ] [ 1 9 9 6 ]) ( [1 9 9 7 ]) ([1 9 8 1 ] [ 1 9 9 6 ]) ( [1 9 9 7 ])

Page 14: 310414 Software Engineering

310414 - Lecture 14

Estimation Techniques (2 )

Expert judgement Parkinson’s Law :

ตนทนขนกบทรพยากรทมให Pricing to win

ตนทนทใชกตนทนทมให

1997([Pressman ])1997([Pressman ])

Page 15: 310414 Software Engineering

310414 - Lecture 15

Decomposition Techniques

- Problem Based Estimation- Process Based Estimation

Page 16: 310414 Software Engineering

310414 - Lecture 16

- Problem BasedDecomposition

แบงงานเปนงานยอยๆ โดยใชขนตอนตามปญหา ใช LOC และ FP

Page 17: 310414 Software Engineering

310414 - Lecture 17

An Example of LOC Estm.Function

user interface and control facilities

- two dimensional geometricanalysis

- three dimensional geometric analysis…

estimated line of code

Estm.LOC

230053006800

…33200

- 3Using point estimated values - 3Using point estimated values

Page 18: 310414 Software Engineering

310414 - Lecture 18

An Example of FP Estminf

o domainvalue

number ofinputs

number ofoutputs…

-counttotal

likely2415…

opt.2012…

pess.3022…

ets.2416…

w45…

FP9680…318

- *FP estm = count total factor - *FP estm = count total factor 372FP estm = 372FP estm =

Page 19: 310414 Software Engineering

310414 - Lecture 19

- Process Based Decompositi on

แบงการประมาณเปนงานยอย ตามกระบวนการขนตอนพฒนา Planning Analysis Design Code Test

Page 20: 310414 Software Engineering

310414 - Lecture 20

Empirical Modelsเปนการประมาณกำาลงบคลากรจากขนาดของงานท

อาจจะประมาณโดยใชวธตางๆ โดยการกระจายงาน Models :

- Single Variable Models COCOMO Model

Page 21: 310414 Software Engineering

310414 - Lecture 21

- Single Variable Model EFFORT = a * SIZE

EFFORT=a * SI ZE +bฯลฯ

bb

• คาคงท คาคงท aa และ และ bb คำานวณจากขอมลในอดตคำานวณจากขอมลในอดต

Page 22: 310414 Software Engineering

310414 - Lecture 22

COCOMO Model

19811984 1991 1997[Boehm , ] from [Jalote ] and [Pressman ] 19811984 1991 1997[Boehm , ] from [Jalote ] and [Pressman ]

E = a (KLOC) x EAF E = a (KLOC) x EAF D = c E D = c E

bbdd

• a b c a b c และ และ d : constant d : constant ทขนกบประเภทของ ทขนกบประเภทของ softwaresoftware• EAF : Effort Adjustment Factor EAF : Effort Adjustment Factor

-effort (person month) -effort (person month) duration (month) duration (month)

Page 23: 310414 Software Engineering

310414 - Lecture 23

COCOMO project typesOr gani c a simple small application developed by a

small team with good application experience.

Semidetached โครงการทมขนาดหรอความซบซอนปลานกลาง

Embedded โครงการพฒนาซอฟตแวรทมขอจำากดสง.

Page 24: 310414 Software Engineering

310414 - Lecture 24

Organicใชทมขนาดเลก -13( คน ) ภายใต HW, SW และการประยกตทคนเคยบคลากรทเกยวของกบการพฒนามประสบการณเปนอยางดเกยวกบซอฟตแวรทมลกษณะคลายๆกนมากอนกจกรรมตางๆเรมตนไดอยางรวดเรวมขนาดเลก

Page 25: 310414 Software Engineering

310414 - Lecture 25

Embeddedเปนซอฟตแวรทพฒนาภายใตสงแวดลอมทมความซบ

ซอน มความเสยงสงและมเงอนไขทยงยากซอฟตแวรทพฒนาแลวจะถกนำาไปใชภายใตสงแวดลอมทไมมความยดหยน

เชนซอฟตแวรทใชควบคมการขนลงของเครองบนซอฟตแวรควบคมการยงขปนาวธ

Page 26: 310414 Software Engineering

310414 - Lecture 26

Semi-detachedเปนซอฟแวรทมขนาดและความยากปานกลางทมงานประกอบดวยกลมบคคลทมทงประสบการณและไมมประสบการณ

อยระหวางประเภท Organic และ Embeded

Page 27: 310414 Software Engineering

310414 - Lecture 27

Constants for different project types

Systemorganicsemidetachedembedded

a32.3028

b10.511.212.0

c25.25.25.

d03.803.503.2

Page 28: 310414 Software Engineering

310414 - Lecture 28

Effective AdjustmentFactor

Factor ทคดจากความตองการในคณสมบตตางๆ ของ software นน (cost driver attributes)

product attribute computer attribute personal attribute project attribute

โดย Factor นจะมคามากหรอนอยขนกบระดบของคณลกษณะตางๆ

Page 29: 310414 Software Engineering

310414 - Lecture 29

Product Attributes Reliability requirement Database size

Product complexity

Page 30: 310414 Software Engineering

310414 - Lecture 30

Computer attributes Execution time constraints

Storage constaints Virtual machine volatility

Computer turnround time

Page 31: 310414 Software Engineering

310414 - Lecture 31

Personnel attributes Analyst capability

Virtual machine experience Programmer capability

Programming language experience Application experience

Page 32: 310414 Software Engineering

310414 - Lecture 32

Project attributes Modern programming practices

Software tools Required development schedule

Page 33: 310414 Software Engineering

310414 - Lecture 33

Example จากการประมาณขนาดโดยใช -problem based

decomp. ไดวา data entry 0.6 KLOC data update 0.6 KLOC query 0.8 KLOC report gen. 1.0 KLOC TOTAL 3.0 KLOC

cost driver attribute Complexity high 1.15 St or age high 1.06 113Experience low . Programmer capability low 1.17

Page 34: 310414 Software Engineering

310414 - Lecture 34

Example (cont.) EAF = 1.15 * 1.06 * 1.13 * 1.17 = 1.61

E i 32* 3 105= . ( ^ . ) = 1014. PM

E = 1 .6 1 * 1 0 .1 4 = 1 6 .5 PM ใชกำาลงบคลากรประมาณ 16.5 คน-เดอน D = 2.5 (16.5 ^ 0.38) = 7.23 M

ใชเวลาประมาณ 723. เดอน

Page 35: 310414 Software Engineering

310414 - Lecture 35

การใช Function Point วดขนาดและความซบซอนโดยใชเปน Function ท

ตองพฒนา ไมขนอยกบภาษา เครองมอหรอ กรรมวธ

สามารถประเมนใหมไดเนองจาก Function สามารถเปลยนแปลงไดงาย ไมคอยเหมาะกบโปรแกรมทางดานเทคนคเทาไหร

Page 36: 310414 Software Engineering

310414 - Lecture 36

การคดคา FP สามารถหาไดจากสมการดงน *FP = Total weighted count

(0 .6 5 + (0 .1 * ()))

- Total weighted count ไดจากตารางทกำาหนดให complexity adjustments - ไดจากการตอบ

คำาถาม 14 คำาถาม

Page 37: 310414 Software Engineering

310414 - Lecture 37

Function Point Questions ( Rating Scale from 0 to5) 1. Is reliable backup and recovery

required?2. Are data communications required?3. Are any functions distributed?4. Is performance critical?5. Is operational environment volume high?6. Is on-line data entry required?7. Does on-lines data entry require

multiple screens or operations?

Page 38: 310414 Software Engineering

310414 - Lecture 38

Function Point Questions R RRRRR RRRRR RRRR R RR 05)8. Is on-line files update used?

9. Are quires, screens, reports, or files complex?10. Is processing complex?11. Is code design for reuse?12. Does implementation include conversion and

installation?13. Are multiple installations and/or multiple

organizations involved?14. Does application design facilitate user

changes?

Page 39: 310414 Software Engineering

310414 - Lecture 39

Function Point Weight 22Simple= = 3 0 = 4 4

FP= 2 2 * ( 0 .6 5 + ( 0 .1 * 36 935)) = .

Page 40: 310414 Software Engineering

310414 - Lecture 40

Line of Code/FP Line of Code/FP LanguageLanguage 25 4GL 25 SS S 100 Cobol

*Number of Lines of Code per Function Point SS SSSSSSSS SSSSSS S SSSSS SSSS SS SSSS=

เพราะฉะนน 935*25 2337KLOC = . = . K

Page 41: 310414 Software Engineering

310414 - Lecture 41

นำาไปคดกบ COCOMO Model =2 .4 (2.33) 105.

E =583. คน ตอ เดอน D = 2.5 x (5.83)0.38

D = 4.88 เดอน

Page 42: 310414 Software Engineering

310414 - Lecture 42

ปจจยอนทมผลตอราคา

ขนาดฐานขอมล ความซบซอน ขอจำากดดานฮารดแวร ความสามารถประสบการณของโปรแกรมเมอร การใช Tool ในการพฒนา กำาหนดการสงงาน ประสบการณดานการพฒนา

Page 43: 310414 Software Engineering

310414 - Lecture 43

ปจจยความตองการ- ความตองการ- ราคาของ

ปจจยขอจำากด- การเงน- ทรพยากร

ปจจยอน ๆ- ความเสยง- ฯลฯ

กระบวนการประเมนราคาซอฟตแวร Effort

Page 44: 310414 Software Engineering

310414 - Lecture 44

ควรใชโมเดลในการประเมนราคาหรอ ไม ? ความไมนาเชอถอของโมเดล ความตางกนของการใชคาคงทดงนน อาศยการเปรยบเทยบจากโครงการเกา ๆ ทเคยทำา ประสบการณของผประเมน

Page 45: 310414 Software Engineering

310414 - Lecture 45

การประเมนราคา

การประเมนราคาไมไดทำาเพยงครงเดยวจบ ระยะแรกกอนการประมล ระยะสองทำาหลงการประมล หวหนาทมตองพยายามประเมนราคาบอย ๆ เพอ

ใหเหมาะสมกบราคาปจจบน

Page 46: 310414 Software Engineering

310414 - Lecture 46

การประเมนราคาในทางปฏบต

ดความตองการหลก แลวแบงใหเปนความตองการยอย

งานทตองทำา & ผลลพธทตองไดแปลงเปนหนาจอทตองสราง หนาจอกรอกขอมล หนาจอสอบถามขอมล หนาจอรายงาน หนาจอบรหารระบบ

Page 47: 310414 Software Engineering

310414 - Lecture 47

การประเมนราคาในทางปฏบต

คำานวณหนาจอทตองสรางเปน N หนาจอ แลว ให B เปนราคาตอหนาจอ

B ? คาของ B อยในชวง 3,000-20,000

~ 5,000-13,000

Page 48: 310414 Software Engineering

310414 - Lecture 48

ตวอยาง สมมตประเมนวาระบบตองมหนาจอ 65 หนาจอ

รายงานทตองทำา 15 รายงาน รวมเปน 65 ชนงาน

ใชราคากลางท 9 ,000 บาทตอชน ราคาเบองตนนาจะ เปน585,000 บาท

โปรแกรมเมอรหนงคนเฉลยทำาได 6 หนาจอตอเดอน งานชนนนาจะใช 10 คน-เดอน

ระยะเวลางาน 5 เดอนเพราะฉะนนใชโปรแกรมเมอร 105 =2 คนชวยกนทำางาน

Page 49: 310414 Software Engineering

310414 - Lecture 49

ทมงานประกอบดวย หวหนาโครงการ 1 คน ตลอดโครงการ ( นนคอ 02.

คนตอเดอน = อาทตยละครง) เลขานการพมพเอกสาร 2 คน (ใชสองเดอนหลง) โปรแกรมเมอร 2 คน หวหนาโครงการ 80,000 x 1 = 80,000 เลขานการ 20,000 x 2 = 40,000 โปรแกรมเมอร 60,000 x 5 x 2 = 600,000

720,000720,000

Page 50: 310414 Software Engineering

310414 - Lecture 50

ตวประกอบทมผลตอโครงการระดบโครงการ

• เงนเดอนของโปรแกรมเมอร• ระยะเวลาการพฒนา• กรรมวธการพฒนา

ขนาดของโปรแกรม x 1000 บรรทด

จำา

นวนบ

รรทด

ตอป

ตอคน

5

1000

Individual-Simple Program

Team-S SSSSS -SSS SSSSSSS

SSSS - SSSSS SSS SSSSSSS

Page 51: 310414 Software Engineering

310414 - Lecture 51

• ความเขาใจกบลกคาระดบองคกร

• คณภาพของผบรหาร• โปรแกรมเมอร

ระดบชนงาน• เอกสาร• ภาษาโปรแกรมทใช• ความซบซอนของงาน