1. COCOMO – Constructive CostCOCOMO – 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
2. COCOMO – Constructive CostCOCOMO – 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)
3. 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ừa
COCOMO 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
4. 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
5. 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
6. 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ả
7. 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.
8. 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 PM
D = 2.5(1295.31)0.38
= 38.07 M
2. Đối với loại Semidetached:
E = 3.0(400)1.12
= 2462.79 PM
D = 2.5(2462.79)0.35
= 38.45 M
3. Đối với loại Embbeded:
E = 3.6(400)1.20
= 4772.81 PM
D = 2.5(1295)0.32
= 38 M
8
9. 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
10. 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
11. 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)
12. 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)
13. 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)
14. 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 :
16. 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
d
i
b
i
EcD
KLOCaE
)(
)(
=
=
17. COCOMO trung gianCOCOMO trung gian
Hệ 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
18. 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
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. Ví d c tính theo LOCụ ướVí d c tính theo LOCụ ướ
26
27. 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
28. 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
29. Ví d c tính theo FPụ ƯớVí d c tính theo FPụ Ướ
29
31. 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
32. 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
33. COCOMO IICOCOMO II
Là 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
34. COCOMO IICOCOMO II
COCOMO 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
35. COCOMO IICOCOMO II
Out put của COCOMO bậc trung là ước lượng
chi phí và kích thước
Output 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)