37
COCOMO – Constructive Cost COCOMO – Constructive Cost MOdel MOdel COCOMO là mô hình do Barry Boehm thiết kế nhằm dự báo ( ước tính) số NGƯỜI- THÁNG (man-months) trong triển khai sản phẩm phần mềm.Mô hình này dựa trên khảo sát ( nghiên cứu) 60 dự án tại công ty TRW, Northrop Grumman cuối năm 2002.Chương trình được viết bằng ngôn ngữ PL/I từ 2000 đến 100,000 dòng lệnh

Cocomo – constructive cost model

Embed Size (px)

DESCRIPTION

phan le thien_ITk30 QNU

Citation preview

Page 1: Cocomo – constructive cost model

COCOMO – Constructive Cost COCOMO – Constructive Cost MOdelMOdel

• COCOMO là mô hình do Barry Boehm thiết kế nhằm dự báo ( ước tính) số NGƯỜI-THÁNG (man-months) trong triển khai sản phẩm phần mềm.Mô hình này dựa trên khảo sát ( nghiên cứu) 60 dự án tại công ty TRW, Northrop Grumman cuối năm 2002.Chương trình được viết bằng ngôn ngữ PL/I từ 2000 đến 100,000 dòng lệnh

Page 2: Cocomo – constructive cost model

COCOMO – Constructive Cost COCOMO – Constructive Cost MOdelMOdel

Cocomo gồm 3 dạng:

-COCMO cơ bản:Mô hình cho giá trị đơn, tỉnh, chi phí được tính như độ lớn của phần mềm theo dòng lệnh.

-COCOMO trung gian: chi phí được tính như độ lớn của phần mềm theo dòng lệnh cộng thêm đánh giá sản phẩm, phần cứng, nhân lực và các thuộc tính của dự án.

-COCOMO chi tiết: tích hợp mọi đặc trưng của COCOMO trung gian cộng thêm đánh giá của chi phí ảnh hưởng ( phân tích, thiết kế…) trong mỗi giai đoạn của qui trình công nghệ phần mềm ( the software engineering process)

Page 3: Cocomo – constructive cost model

COCOMO c b nơ ảCOCOMO c b nơ ảDùng ước tính nhanh và sơ bộ chi phí dự án cho

hầu hết các dự án nhỏ và vừaCOCOMO có thể áp dụng cho ba lớp dự án phần

mềm:◦ Organic: dành cho 1 đội nhỏ các nhà phát triển có

kinh nghiệm và mội trường quen thuộc◦ Semi-detached: trung gian giữa organic và

embedded◦ Embedded: dành cho dự án có nhiều ràng buộc

chặt chẽ, thường là dự án mới và duy nhất, khó tìm người thực hiện

Page 4: Cocomo – constructive cost model

B ng so sánh ba d ng COCOMOả ạB ng so sánh ba d ng COCOMOả ạ

Mode Quy mô dự

án

Bản chất dự án Sự sáng tạo

Thời hạn

Môi trường phát triển

Organic 2-50 KLOC

Dự án nhỏ, developer kinh nghiệm trong môi trường thân thiện

Ít Không chặt

Quen thuộc, nội bộ

Semi -detached

50 – 300 KLOC

Dự án TB, đội TB, kinh nghiệm đã làm cho dự án tương tự TB

TB TB TB

Embbeded >300 KLOC

Dự án lớn, HT real time. Giao diện phức tạp, đội có kinh nghiệm trước đó rất ít

Đáng kể

Chặt Yêu cầu HW và giao diện phức

4

Page 5: Cocomo – constructive cost model

COCOMO c b nơ ảCOCOMO c b nơ ả• Phương trình của COCOMO cơ bản có dạng:

• Trong đó: E = ước tính của NGƯỜI/THÁNG, D = Thời gian triển khai tính theo tháng KLOC = Số dòng lệnh (đơn vị=1000) ước tính của sản

phẩm dự án phần mềm. ◦ ab, bb, db là các hệ số được tra theo bảng 3

• Số lượng nhân viên và mức độ hiệu quả của dự án được tính như sau:

Average staff size (SS) = E/D Persons Productivity (P) = KLOC/E KLOC/PM

Page 6: Cocomo – constructive cost model

B ng 3: Các h s COCOMO c b nả ệ ố ơ ảB ng 3: Các h s COCOMO c b nả ệ ố ơ ả

Project ab bb cb db

Organic 2.4 1.05 2.5 0.38

Semi -detached

3.0 1.12 2.5 0.35

Embbeded 3.6 1.20 2.5 0.32

6

B ng 3ả

Page 7: Cocomo – constructive cost model

COCOMO c b nơ ảCOCOMO c b nơ ả

•COCOMO cơ bản rất tốt cho ước tính chi phí thô, dễ dàng và nhanh. Tuy nhiên, sử chính xác sẻ bị giới hạn vì thiếu một số nhân tố chưa kể đến là sự khác nhau trong ràng buộc về phần cứng, kinh nghiệm và khả năng chuyên nghiệp của con người, việc sử dụng các công cụ hiện đại và các đặc trưng khác có ảnh hưởng đến chi phí phần mềm.

Page 8: Cocomo – constructive cost model

Ví d 1ụVí d 1ụ Giả sử dự án được ước tính khoảng 400

KLOC. Hãy tính nhân lực và thời gian cho mỗi loại dự án khác nhau

1. Đối với loại Organic:E = 2.4(400)1.05 = 1295.31 PMD = 2.5(1295.31)0.38 = 38.07 M

2. Đối với loại Semidetached:E = 3.0(400)1.12 = 2462.79 PMD = 2.5(2462.79)0.35 = 38.45 M

3. Đối với loại Embbeded:E = 3.6(400)1.20 = 4772.81 PMD = 2.5(1295)0.32 = 38 M

8

Page 9: Cocomo – constructive cost model

Nh n xétậNh n xétậChọn loại dự án rất quan trọng, tùy thuộc

vào 2 yếu tố:◦ Quy mô dự án

◦ Các hệ số trong bảng 3

9

Page 10: Cocomo – constructive cost model

Ví d 2ụVí d 2ụQuy mô dự án được ước tính khoảng 200 KLOC.

Đội phát triển phần mềm có kinh nghiệm ở mức trung bình cho các loại dự án tương tự. Lịch biều của dự án không đòi hỏi chặt chẽ lắm. Hãy tính thời gian phát triển, số người bình quân của đội, và tính hiệu suất của dự án

Solution: Dự án thuộc loại semi-detached◦ Tính các hệ số: E = 3.0(200)1.12 = 1133.12 PM

D = 2.5(1133.12)0.35 = 38.67 M◦ Số nhân viên (staff size) = E/D = 38.67 người◦ Hiệu suất dự án (productivity) = KLOC/E = 176

LOC/PM

10

Page 11: Cocomo – constructive cost model

COCOMO trung gianCOCOMO trung gian COCOMO TRUNG GIAN là mở rộng của Mô

hình COCOMO cơ bản, và được dùng để ước tính thời gian lập trình trong triển khai sản phẩm phần mềm. Sự mở rộng này, xem xét trên một tập hợp “Chi phí của các đặc trưng các Bộ phận điều khiển (driver)” được chia thành 4 nhóm (15 tính chất)

Page 12: Cocomo – constructive cost model

Các nhóm và tính ch tấCác nhóm và tính ch tấ+ Đặc trưng của sản phẩm: - Yêu cầu về tính độ tin cậy của phần mềm - Khối lượng CSDL (database) của ứng dụng - Tính phức tạp của sản phẩm. - Đặc trưng của phần cứng - Ràng buộc về tính năng Run-time - Ràng buộc về Bộ nhớ - Tính không ổn định của môi trường máy ảo. - Yêu cầu về thời gian chuyển hướng (turnabout

time)

Page 13: Cocomo – constructive cost model

Các nhóm và tính ch tấCác nhóm và tính ch tấ+ Đặc trưng về Chuyên gia. - Khả năng phân tích - Khả năng về kỹ sư PM (Software engineer) - Kinh nghiệm ứng dụng - Kinh nghiệm về máy ảo - Kinh nghiệm về ngôn ngữ lập trình + Đặc trưng về Dự án - Sử dụng các công cụ Phần mềm - Ứng dụng các phương pháp của CNPM

(software engineering) - Yêu cầu về triển khai lịch biểu (development

schedule)

Page 14: Cocomo – constructive cost model

COCOMO trung gianCOCOMO trung gian

• Mỗi tính chất được đánh giá (cho điểm) theo thang điểm có 6 mức từ rất chậm (very low) đến quá cao (extra high) . Dựa trên thang điểm, Hệ số cố gắng (effort multiplier) sẽ được xác định theo bảng sau: Tích các Hệ số cố gắng = EAF (Effort Adjustment Factor, thường có giá trị từ 0.9 - 1.4.) được thể hiện qua bảng sau :

Page 15: Cocomo – constructive cost model
Page 16: Cocomo – constructive cost model

COCOMO trung gianCOCOMO trung gian• Phương trình Cocomo trung gian có dạng:

Trong đó:

- E = ước tính của NGƯỜI/THÁNG,

- KLOC = Số dòng lệnh (đơn vị=1000) ước tính của sản phẩm dự án phần mềm.

- EAF được cho bởi bảng trên.

- E tinh chỉnh = E x EAF

• S l ng nhân viên và m c đ hi u qu c a d án đ c tính nh sau:ố ượ ứ ộ ệ ả ủ ự ượ ư Average staff size (SS) = E/D Persons Productivity (P) = KLOC/E KLOC/PM

i

i

di

bi

EcD

KLOCaE

)(

)(

=

=

Page 17: Cocomo – constructive cost model

COCOMO trung gianCOCOMO trung gianHệ số ai và bi được cho bởi bảng sau đây :

Thời gian triển khai D được tính từ E tương tự như COCOMO cơ bản

Page 18: Cocomo – constructive cost model

Ví dụVí dụM t d án m i đ c c tính là h th ng ộ ự ớ ượ ướ ệ ố

nhúng (embedded system) có 400 KLOC. Ng i qu n lý d án ph i ch n l a gi a 2 ườ ả ự ả ọ ự ữnhóm làm vi c: m t nhóm r t có năng l c ệ ộ ấ ựnh ng h u nh không có kinh nghi m gì v ư ầ ư ệ ềngôn ng l p trình s đ c dùng trong d án; ữ ậ ẽ ượ ựnhóm khác thì không gi i l m nh ng có nhi u ỏ ắ ư ềkinh nghi m v ngôn ng l p trình. Hãy xét ệ ề ữ ậxem vi c ch n l a các nhóm s nh h ng nh ệ ọ ự ẽ ả ưở ưth nào đ n d án??ế ế ự

18

Page 19: Cocomo – constructive cost model

Ví dụVí dụSolution:Vì là d án ki u embedded và mô hình ự ể

COCOMO m c trung nên:ứE= ai(KLOC)bi = 2.8(400)1.20 = 3712 PM

Tr ng h p 1: ch n nhóm có năng l c nh ng ườ ợ ọ ự ưkhông có kinh nghi mệEAF = 0.82 x 1.14 = 0.9348 E1 = EAF x E = 0.9348 x 3712 = 3470 PM

D1 = ci (E)di = 2.5(3470)0.32 = 33.9 PM

19

Page 20: Cocomo – constructive cost model

Ví dụVí dụTr ng h p 2: nhóm ít có năng l c nh ng ườ ợ ự ư

nhi u kinh nghi mề ệ◦ EAF = 1.29 x 0.95 = 1.22◦ E2 = EAF x E = 1.22 x 3712 = 4528 PM◦ D2 = ci (E)di = 2.5(4528)0.32 = 36.9PM

Nh n xét:ậNhóm 2 c n nhi u ng i và th i gian h n. Vì ầ ề ườ ờ ơ

v y, nhóm năng l c y u tuy có nhi u kinh ậ ự ế ềnghi m l p trình không th phù h p v i d ệ ậ ể ợ ớ ựán lo i embedded.ạ

20

Page 21: Cocomo – constructive cost model

M i quan h gi a LOC và FPố ệ ữM i quan h gi a LOC và FPố ệ ữPh thu c vào ngôn ng l p trình đ c ụ ộ ữ ậ ượ

dùng đ th c thi và ch t l ng thi t k .ể ự ấ ượ ế ếLOC và FP đ c dùng đ c tính khá ượ ể ướ

chính xác chi phí (cost) và nhân l c ự(effect)

B ng LOC/FPả

21

Page 22: Cocomo – constructive cost model

Các ví dụCác ví dụ c tính theo LOC (page 128 Roger 5e)Ướ c tính theo FP (page 129 Roger 5e)Ướ

22

Page 23: Cocomo – constructive cost model

Ví d c tính theo LOCụ ướVí d c tính theo LOCụ ướA software package to be developed for a

computer-aided design application for mechanical components. A review of the System Specification indicates that the software is to execute on an engineering workstation and must interface with various computer graphics peripherals including a mouse, digitizer, high resolution color display and laser printer.

Using the System Specification as a guide, a preliminary statement of software scope can be developed:

23

Page 24: Cocomo – constructive cost model

Ví d c tính theo LOCụ ướVí d c tính theo LOCụ ướThe CAD software will accept two- and three-

dimensional geometric data from an engineer. The engineer will interact and control the CAD system through a user interface that will exhibit characteristics of good human/ machine interface design. All geometric data and other supporting information will be maintained in a CAD database. Design analysis modules will be developed to produce the required output, which will be displayed on a variety of graphics devices. The software will be designed to control and interact with peripheral devices that include a mouse, digitizer, laser printer, and plotter.

24

Page 25: Cocomo – constructive cost model

Ví d c tính theo LOCụ ướVí d c tính theo LOCụ ướD a vào phát bi u s b v ph m vi ph n ự ể ơ ộ ề ạ ầ

m m (preliminary statement of software ềscope), xác đ nh đ c các ch c năng chính ị ượ ức a ph n m m:ủ ầ ề• User interface and control facilities (UICF)• Two-dimensional geometric analysis (2DGA)• Three-dimensional geometric analysis (3DGA) • Database management (DBM) • Computer graphics display facilities (CGDF) • Peripheral control function (PCF) • Design analysis modules (DAM)

25

Page 26: Cocomo – constructive cost model

Ví d c tính theo LOCụ ướVí d c tính theo LOCụ ướ

26

Page 27: Cocomo – constructive cost model

Ví d c tính theo LOCụ ướVí d c tính theo LOCụ ướA review of historical data indicates that the

organizational average productivity for systems of this type is 620 LOC/pm. Based on a burdened labor rate of $8000 per month, the cost per line of code is approximately $13. Based on the LOC estimate and the historical productivity data, the total estimated project cost is $431,000 and the estimated effort is 54 person-months.

27

Page 28: Cocomo – constructive cost model

Ví d c tính theo FPụ ƯớVí d c tính theo FPụ ƯớThe project planner estimates inputs, outputs,

inquiries, files, and external interfaces for the CAD software. For the purposes of this estimate, the complexity weighting factor is assumed to be average.

The expected value for the estimation variable (size), S, can be computed as a weighted average of the optimistic (sopt), most likely (sm), and pessimistic (spess) estimates.

S = (sopt + 4sm + spess)/6

28

Page 29: Cocomo – constructive cost model

Ví d c tính theo FPụ ƯớVí d c tính theo FPụ Ướ

29

Page 30: Cocomo – constructive cost model

Tính CAF=0.65+0.01x FiΣTính CAF=0.65+0.01x FiΣ

30

Page 31: Cocomo – constructive cost model

Ví d c tính theo FPụ ướVí d c tính theo FPụ ướThe estimated number of FP is derived:

FPestimated = count-total x [0.65 + 0.01 x (Fi)] =375Σ

The organizational average productivity for systems of this type is 6.5 FP/pm. Based on a burdened labor rate of $8000 per month, the cost per FP is approximately $1230.

Based on the LOC estimate and the historical productivity data, the total estimated project cost is $461,000 and the estimated effort is 58 person-months.

31

Page 32: Cocomo – constructive cost model

COCOMO IICOCOMO II• COCOMO II là mô hình cho phép ước tính chi phí, sự cố

gắng và lích biểu khi lập kế họach cho một dự án phần mềm mới. Gồm có 3 module: Applications Composition, Early Design, and Mô hình Post-architecture.

• Mô hình COCOMO gốc do Dr. Barry Boehm khởi xướng năm 1981, và COCOMO II được hình thành sau nhiều năm cố gắng của nhóm nghiên cứu (1990) USC CSE, IRUS at UC Irvine, and the COCOMO II Project Affiliate Organizations, lần đầu tiên cài đặt giữa năm 1997. USC COCOMO II.1998.0 beta ra đời 10/1998.

• Phiên bản 98 sữ dụng 161 điểm DL (data) và sử dụng cách tiếp cận Công thức Bayes (Bayesian statistical approach (119kb)) có thêm ý kiến chuyên gia trong mô hình

Page 33: Cocomo – constructive cost model

COCOMO IICOCOMO IILà mở rộng của COCOMO. COCOMO II có thể xử lý

nhiều kỹ thuật của kỹ nghệ phần mềm hiện đại như: Hướng đối tượng. Các mô hình vòng đời khác nhau. Làm bản mẫu nhanh. Các ngôn ngữ thế hệ thứ t. Phần mềm đóng gói ( COTS software).

COCOMO II hơi phức tạp hơn phiên bản COCOMO

Page 34: Cocomo – constructive cost model

COCOMO IICOCOMO IICOCOMO bậc trung gồm một mô hình chung dựa trên

dòng mã (KDSI)COCOMO II gồm 3 mô hình khác nhau:

Mô hình phức hợp áp dụng (ACM: Application composition model) cho các pha đầu tiên: dựa trên object points (tương tự như function points)

Mô hình thiết kế ban đầu (EDM: early design model): dựa trên function points

Mô hình hậu kiến trúc (PAM: post-architecture model): dựa trên function points hay KDSI

Page 35: Cocomo – constructive cost model

COCOMO IICOCOMO IIOut put của COCOMO bậc trung là ước lượng

chi phí và kích thướcOutput của COCOMO II là khoảng ước lượng

chi phí và kích thước.Ví dụ, nếu ước lượng công sức là E thì ACM có

giá trị trong khoảng ( 0.50E,2.0E) và PAM thuộc miền (0.80E,1.25E)

Page 36: Cocomo – constructive cost model

COCOMO IICOCOMO II

Page 37: Cocomo – constructive cost model