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)
36 trang |
Chia sẻ: tuandn | Lượt xem: 3711 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu COCOMO - Constructive Cost Model, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
COCOMO – Constructive Cost 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 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) 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 Bảng so sánh ba dạng COCOMO * 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 Bảng 3: Các hệ số COCOMO cơ bản * Bảng 3 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. 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 Đố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 Đố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 Đối với loại Embbeded: E = 3.6(400)1.20 = 4772.81 PM D = 2.5(1295)0.32 = 38 M * 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 * 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 * COCOMO 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) 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) 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) COCOMO 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 : COCOMO 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 COCOMO 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 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?? * 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 * 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. * 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 * Các ví dụ Ước tính theo LOC (page 128 Roger 5e) Ước tính theo FP (page 129 Roger 5e) * 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: * 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. * 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) * 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. * 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 * Ví dụ Ước tính theo FP * Tính CAF=0.65+0.01x ΣFi * 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. * COCOMO 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 COCOMO 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 COCOMO 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 COCOMO 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) COCOMO II