ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
DOÃN ĐÌNH LƢƠNG
ƢỚC LƢỢNG DỰ ÁN TRÊN CƠ SỞ CÁC
CA SỬ DỤNG
LUẬN VĂN THẠC SỸ
HÀ NỘI - 2010
1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
DOÃN ĐÌNH LƢƠNG
ƢỚC LƢỢNG DỰ ÁN TRÊN CƠ SỞ CÁC
CA SỬ DỤNG
Ngành: CÔNG NGHỆ THÔNG TIN
Chuyên ngành: CÔNG NGHỆ PHẦN MỀM
Mã số: 60 48 10
LUẬN VĂN THẠC SỸ
Ngƣời hƣớng dẫn khoa học
PGS.TS. NGUYỄN VĂN VỴ
HÀ NỘI - 2010
MỤC LỤC
LỜI CAM ĐOAN ................................................................................................ 4
MỤC LỤC .......................................................................................................... 5
BẢNG CÁC CHỮ VIẾT TẮT .............................................................................. 7
DANH MỤC BẢNG BIỂU ................................................................................... 9
DANH MỤC HÌNH VẼ ...................................................................................... 11
MỞ ĐẦU .......................................................................................................... 12
CHƯƠNG 1: TỔNG QUAN VỀ ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM .............. 13
1.1 Khái niệm về ước lượng dự án phần mềm ............................................................ 13
1.2 Ước lượng kích thước .......................................................................................... 16
1.3 Ước lượng công sức ............................................................................................. 18
1.4 Ước lượng tài nguyên .......................................................................................... 20
1.4.1 Tài nguyên con người ................................................................................... 20
1.4.2 Tài nguyên phần cứng ................................................................................... 20
1.4.3 Tài nguyên phần mềm ................................................................................... 21
1.5 Các tiếp cận ước lượng dự án phần mềm.............................................................. 22
CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP ƯỚC LƯỢNG DỰ ÁN TRUYỀN
THỐNG ............................................................................................................ 23
2.1 Phương pháp Điểm chức năng ............................................................................. 23
2.1.1 Giới thiệu ...................................................................................................... 23
2.1.2 Nội dung của phương pháp ........................................................................... 24
2.1.3 Đánh giá phương pháp .................................................................................. 33
2.2 Các mô hình ước lượng dự án phần mềm ............................................................. 33
2.2.1 Mô hình ước lượng COCOMO ..................................................................... 33
2.2.3 Mô hình ước lượng Putnam ........................................................................... 38
2.2.4 Công cụ ước lượng tự động ........................................................................... 40
2.2.5 Mô hình lập luận theo kinh nghiệm – CBR ................................................... 42
CHƯƠNG 3: PHƯƠNG PHÁP ƯỚC LƯỢNG DỰ ÁN ĐIỂM CA SỬ DỤNG 45
3.1 Giới thiệu............................................................................................................. 45
3.2 Cơ sở của UCP .................................................................................................... 46
3.3 Nội dung phương pháp ........................................................................................ 47
5
3.3.1 Tính trọng số tác nhân ................................................................................... 49
3.3.2 Tính trọng số ca sử dụng ............................................................................... 49
3.3.3 Tính UUCP ................................................................................................... 50
3.3.4 Gán trọng số các yếu tố kỹ thuật và các yếu tố môi trường ............................ 51
3.3.5 Tính UCP...................................................................................................... 52
3.3.6 Ước lượng nỗ lực .......................................................................................... 53
3.4 Đánh giá phương pháp và đề xuất cải tiến ............................................................ 54
3.4.1 Ưu điểm của phương pháp ước lượng điểm ca sử dụng ................................. 54
3.4.2 Nhược điểm của phương pháp này ................................................................ 54
3.4.3 Hướng cải tiến phương pháp ......................................................................... 55
CHƯƠNG 4: PHÁT TRIỂN CHƯƠNG TRÌNH ỨNG DỤNG........................... 58
4.1 Chương trình ứng dụng ........................................................................................ 58
4.1.1 Môi trường phát triển .................................................................................... 58
4.1.2 Các bước tính UCP trong chương trình ......................................................... 58
4.1.3 Thực đơn chính của chương trình .................................................................. 59
4.1.4 Một số giao diện chương trình ...................................................................... 60
4.2 Áp dụng phương pháp ước lượng UCP ................................................................ 63
4.2.1 Mô tả yêu cầu nghiệp vụ ............................................................................... 63
4.2.2 Yêu cầu hệ thống .......................................................................................... 70
4.2.3 Tiến trình ước lượng ..................................................................................... 81
KẾT LUẬN ....................................................................................................... 86
TÀI LIỆU THAM KHẢO .................................................................................... 88
PHỤ LỤC ......................................................................................................... 90
P.1 Bảng chi tiết về trọng số và tham số ước lượng................................................ 90
P.2 Mô hình COCOMO ......................................................................................... 94
6
BẢNG CÁC CHỮ VIẾT TẮT
Viết tắt
Tên đầy đủ
AA
Assessment and Assimilation
AAF
Adaptaion Adjustment Factor
AAM
Adaptation Adjustment Modifier
ACAP
Analyst Capability
ASCII
American Standard Code for Information Interchange
CBR
Case Based Reasoning
CMM
Maturity Model
COTS
Commercial Off The Shelf
ECF
Environment Complexibility Factor
ED
Early – Design
EI
External Input
EIF
External Logical File
EM
Effort Multiplier
EO
External Output
EQ
External Query
ESLOC
Equivalent Source Lines Of Code
FLEX
Development Flexibility
FP
Function Points
GUI
Graphical User Interface
ILF
Internal Logical File
KSLOC
Thousand of Source Line Of Code
LCA
Life Cycle Architecture
LOC
Line Of Code
MAF
Maintenance Adjustment Factor
MCF
Maintenance Change Factor
PA
Post – Architecture
PF
Productivity Factor
7
PM
Persons – month
PMAT
Process Maturity
PREC
Precedentedness
RESL
Architecture/Risk Resolution
REVL
Requirements Evolution and Volatility
RUSE
Developed for Reusability
SLOC
Source Line Of Code
SMPEEM Software Maintenance Project Effort Estimation Model
SU
Software Understanding
TCF
Technical Complexibility Factor
TCP/IP
Transmission Control Protocol/Internet Protocol
TIME
Execution Time Constraint
UAW
Unadjusted Actors Weight
UCP
Use Case Points
UFP
Unadjusted Function Point
UML
Unified Modeling Language
UNFM
Requirements Evolution and Volatility
UUCP
Unadjusted Use Case Point
UUCW
Unadjusted Use Case Weight
VAF
Value Adjustment Factor
8
DANH MỤC BẢNG BIỂU
Bảng 2.1 Chi số độ phức tạp với số UFP tương ứng ............................................... 24
Bảng 3.1 Phân loại tác nhân ................................................................................... 49
Bảng 3.2 Bảng phân loại ca sử dụng và trọng số .................................................... 50
Bảng 3.3 Yếu tố phức tạp kỹ thuật ......................................................................... 51
Bảng 3.4 Yếu tố phức tạp môi trường (kinh nghiệm) ............................................. 52
Bảng 4. 1 Bảng thống kê phân loại tác nhân của dự án iCoot ................................. 81
Bảng 4.2 Bảng thống kê phân loại ca sử dụng của dự án iCoot .............................. 82
Bảng 4.3 Bảng đánh giá các yếu tố phức tạp kỹ thuật dự án iCoot ......................... 83
Bảng 4.4 Bảng đánh giá các yếu tố phức tạp môi trường dự án iCoot .................... 84
Bảng P.1 Bảng tính toán điểm chức năng không được điều chỉnh .......................... 90
Bảng P.2 Bảng các thừa số điều chỉnh giá trị ......................................................... 90
Bảng P.3 Trọng số các nhóm đặc tính (N = 32) ...................................................... 91
Bảng P.4 Hướng dẫn xác định các tham số cần thiết .............................................. 92
Bảng P.5 Tham chiếu cho các chức năng ............................................................... 93
Bảng P.6 Bảng tính toán điểm chức năng không được điều chỉnh .......................... 93
Bảng P.7 COCOMO cơ sở ..................................................................................... 93
Bảng P.8 COCOMO trung bình ............................................................................. 94
Bảng P.9 Các kiểu chức năng ................................................................................ 98
Bảng P.10 Xác định trọng số theo độ phức tạp của các chức năng ......................... 99
Bảng P.11 Bảng chuyển đổi SLOC/UFP .............................................................. 100
Bảng P.12 Các ràng buộc và hướng dẫn xác định tham số phần mềm được thích ứng
............................................................................................................................ 103
Bảng P.13 Các giá trị hệ số tỉ lệ SFj cho các mô hình COCOMO II ..................... 108
Bảng P.14 Các cấp độ đánh giá tính tiền lệ .......................................................... 109
Bảng P.15 Các cấp độ đánh giá linh hoạt phát triển ............................................. 109
Bảng P.16 Các cấp độ đánh giá hệ số RESL ........................................................ 110
Bảng P.17 Các thành phần đánh giá hệ số TEAM ................................................ 111
Bảng P.18 Các mức độ đánh giá PMAT cho Cấp độ thuần thục về quy trình được
ước lượng ............................................................................................................ 112
Bảng P.19 Hệ số chi phí RELY............................................................................ 114
Bảng P.20 Hệ số chi phí DATA ........................................................................... 114
Bảng P.21 Hệ số chi phí RUSE ............................................................................ 115
Bảng P.22 Hệ số chi phí DOCU ........................................................................... 116
Bảng P.23 Hệ số chi phí TIME ............................................................................ 116
Bảng P.24 Các hệ số STOR ................................................................................. 117
Bảng P.25 Hệ số chi phí PVOL............................................................................ 118
9
Bảng P.26 Hệ số chí phí ACAP ........................................................................... 118
Bảng P.27 Hệ số chi phí PCAP ............................................................................ 119
Bảng P.28 Hệ số chi phí PCON ........................................................................... 119
Bảng P. 29 Hệ số chi phí APEX........................................................................... 120
Bảng P.30 Hệ số chi phí PLEX ............................................................................ 120
Bảng P.31 Hệ số chi phí TLEX ............................................................................ 121
Bảng P.32 Hệ số chi phí TOOL ........................................................................... 122
Bảng P. 33 Hệ số chi phí SITE ............................................................................ 122
Bảng P.34 Hệ số chi phí SCED ............................................................................ 123
Bảng P.35 Các hệ số chi phí của mô hình ED và PA ............................................ 124
Bảng P.36 Hệ số chi phí RELY............................................................................ 126
10
DANH MỤC HÌNH VẼ
Hình 1.1 Quy trình ước lượng dự án phần mềm ..................................................... 16
Hình 1.2 Phát triển ma trận công sức – chức năng ................................................. 19
Hình 1.3 Tài nguyên .............................................................................................. 20
Hình 2.1 Khái niệm về SMPEEME ........................................................................ 26
Hình 2.2 Phân bố công sức – điểm lớn ................................................................... 39
Hình 2.3 Chu trình lập luận theo kinh nghiệm ........................................................ 43
Hình 3. 1 Tiến trình ước lượng nỗ lực .................................................................... 48
Hình 4.1 Giao diện chương trình ước lượng theo phương pháp UCP (1) ................ 60
Hình 4.2 diện chương trình ước lượng theo phương pháp UCP (2) ........................ 61
Hình 4.3 Giao diện chương trình ước lượng theo phương pháp UCP (3) ................ 61
Hình 4.4 Giao diện chương trình ước lượng theo phương pháp UCP (4) ................ 62
Hình 4.5 Giao diện chương trình ước lượng theo phương pháp UCP (5) ................ 62
Hình 4.6 Giao diện chương trình ước lượng theo phương pháp UCP (6) ................ 63
Hình 4.7 Phác thảo giao diện người dùng 1 (tạo một truy vấn tìm kiếm) ................ 70
Hình 4.8 Phác họa giao diện người dùng 2 (xem các kết quả tìm kiếm) ................. 71
Hình 4.9 Phác họa giao diện người dùng 3 (xem thông tin chi tiết) ........................ 71
Hình 4.10 Phác họa giao diện người dùng 4 (chọn một tiêu đề chỉ mục) ................ 72
Hình 4.11 Phác họa giao diện người dùng 5 (xem thông tin thành viên)................. 72
Hình 4.12 Phác họa giao diện người dùng 6 (xem các Thuê) ................................. 72
Hình 4.13 Phác họa giao diện người dùng 7 (xem các đặt thuê) ............................. 73
Hình 4.14 Phác họa giao diện người dùng 8 (thay đổi mật khẩu) ........................... 73
Hình 4.15 Biểu đồ ca sử dụng hệ thống.................................................................. 75
11
MỞ ĐẦU
Ước lượng giá cho một dự án phần mềm luôn là bài toán khó cho những
người phát triển phần mềm. Nhưng để triển khai một dự án phần mềm, thì bài
toán đầu tiên là ước lượng giá và thời gian thực hiện dự án. Ước lượng giá thấp
và thời gian thực hiện ngắn dễ gặp rủi ro và dẫn đến thất bại. Ước lượng quá cao
thì có nguy cơ phải từ bỏ dự án vì không đủ nguồn lực. Đây là một bài toán luôn
đặt ra mỗi khi cần phát triển một dự án phần mềm và là một thách thức nói
chung cho ngành công nghiệp phát triển phần mềm vì tính đa dạng và phức tạp
của nó. Trong điều kiện phương pháp phát triển phần mềm hướng đối tượng
phát triển mạnh mẽ chục năm lại đây, việc ước lượng các dự án phần mềm phát
triển theo hướng này càng đòi hỏi có một phương pháp ước lượng thích hợp. Vì
những lý do trên mà đề tài ”Ước lượng dự án phần mềm trên cơ sở các ca sử
dụng” được chọn làm đề tài luận văn của tôi.
Mục tiêu của đề tài là đi sâu nghiên cứu các phương pháp ước lượng dự án
phần mềm, đặc biệt những phương pháp được quan tâm trong thời gian gần đây.
Làm rõ cơ sở khoa học và thực tiễn của chúng, những kinh nghiệm áp dụng, so
sánh những ưu và nhược điểm của mỗi phương pháp và đề xuất cải tiến cho
trường hợp dự án phần mềm hướng đối tượng. Tiếp đó xây dựng một chương
trình thử nghiệm cho phương pháp mới nhất và áp dụng để đánh giá một dự án
đã cho nhằm trợ giúp cho việc triển khai các dự án phần mềm hướng đối tượng,
đồng thời làm rõ những ưu điểm và hạn chế của phương pháp.
Luận văn chia làm bốn chương:
Chương I: trình bày tổng quan về ước lượng dự án phần mềm.
Chương II: trình bày một số phương pháp ước lượng dự án phần mềm
truyền thống, đặc biệt là phương pháp COCOMO.
Chương III: trình bày phương pháp ước lượng dự án “điểm ca sử dụng”,
dành riêng cho các dự án phần mềm phát triển hướng đối tượng.
Chương IV: phát triển chương trình ứng dụng dựa trên phương pháp đã
trình bày và thử nghiệm với một ví dụ đã cho.
Cuối cùng là tài liệu tham khảo và phụ lục.
12
CHƢƠNG 1: TỔNG QUAN VỀ ƢỚC LƢỢNG DỰ ÁN
PHẦN MỀM
1.1 Khái niệm về ƣớc lƣợng dự án phần mềm
Trong những ngày đầu của tin học, chi phí phần mềm bao gồm một phần trăm
nhỏ của toàn bộ chi phí cho hệ thống dựa trên máy tính. Một lỗi lớn trong ước
lượng chi phí phần mềm có thể ít ảnh hưởng đến sự thành bại của dự án. Ngày
nay, phần mềm là yếu tố tốn kém nhất của nhiều hệ thống dựa trên máy tính.
Ước lượng chi phí sai có thể dẫn đến sự thất bại của nhiều dự án phần mềm.
Ước lượng chi phí và công sức phần mềm chắc chắn không là một khoa học
chính xác. Có quá nhiều tham số (con người, kỹ thuật, môi trường, chính trị…)
ảnh hưởng tới chi phí chung cuộc của phần mềm và công sức cần để phát triển
nó. Để có được các ước lượng chi phí và công sức tin cậy, một số tùy chọn sau
đây được sử dụng:
Trì hoãn việc ước lượng tới giai đoạn sau của dự án (có thể đạt được ước lượng
chính xác 100% khi dự án đã hoàn tất).
Dùng các kỹ thuật phân rã để sinh ra ước lượng về chi phí và công sức dự án.
Phát triển mô hình kinh nghiệm cho chi phí và công sức làm phần mềm.
Thu được từ một hay nhiều công cụ ước lượng tự động.
Tùy chọn đầu tiên là “hấp dẫn” nhưng lại không thực tế, vì các ước lượng chi
phí cần phải được đưa ra ngay từ đầu làm cơ sở cho việc triển khai và quản lý dự
án. Ba cách tiếp cận còn lại chỉ có thể cho ước lượng gần đúng đối với dự án
phần mềm. Có thể áp dụng các kỹ thuật tùy chọn trên nối tiếp nhau, và mỗi tùy
chọn dùng như một phép kiểm tra cho tùy chọn khác. Bằng cách phân rã một dự
án thành các chức năng chính và các nhiệm vụ kỹ nghệ phần mềm liên quan,
việc ước lượng chi phí và nỗ lực có thể được thực hiện theo từng phần, từng
bước. Các mô hình ước lượng theo kinh nghiệm (dựa trên dữ liệu lịch sử) có thể
được dùng như một giải pháp bổ sung và cho một cách tiếp cận ước lượng gần
với thực tế. Mô hình này có dạng:
d = f(vi)
13
d: là một trong một số các giá trị ước lượng (như công sức, chi phí, thời
gian,…).
vi: các tham biến độc lập được chọn (LOC hoặc FP được ước lượng).
Có các công cụ ước lượng tự động cài đặt cho một hay nhiều kỹ thuật phân
rã (hay mô hình kinh nghiệm). Khi được tổ hợp với một giao diện tương tác
người máy, cho phép chọn một tùy chọn thích hợp cho việc ước lượng. Trong
một hệ thống như vậy, các đặc trưng của tổ chức phát triển (như kinh nghiệm,
môi trường,…) và phần mềm cần phát triển sẽ được mô tả, các ước lượng chi phí
và nỗ lực được suy ra các từ dữ liệu này [20].
Một dự án trước khi thực hiện hoặc lập kế hoạch cần phải đánh giá được
quy mô của nó, các tài nguyên cần thiết, lịch trình thực hiện với các cột mốc
quan trọng như: lập các kế hoạch, kết thúc một giai đoạn, gửi tài liệu, bàn
giao… Thông thường thì giá thành và lịch trình thực hiện một dự án thường
mang tính rủi ro cao khi không được ước lượng đúng mức. Một số trong các lý
do đó là:
Giá thành và thời hạn thường được các đối tượng ngoài dự án như: khách hàng,
chủ đầu tư,… quyết định trước.
Công việc phân tích thiết kế không phải bao giờ cũng bao quát hết các tình
huống, các yêu cầu chưa được hiểu hết, hiểu đúng.
Thường thì khách hàng không hiểu được việc phát triển phần mềm là một công
việc có tính công nghệ cao với giá thành cao (và tiềm ẩn rủi ro).
Quy trình ước lượng chi phí phần mềm dưới đây mô tả các bước cần thiết cho
việc bắt đầu đánh giá một vòng đời phần mềm và sau đó là theo dõi, tinh chỉnh
thường xuyên những đánh giá có được trong suốt thời gian thực hiện dự án.
Thiết lập quy trình này càng sớm sẽ giúp cho việc đánh giá được chính xác hơn,
tin cậy hơn, từ đó có thể xác định rõ ràng các nhân tố liên quan tới giá thành,
thời gian hoàn thành của dự án để có một cách quản lý phù hợp, đảm bảo sự
thành công cho dự án, đặc biệt các giải pháp cho việc quản lý các rủi ro liên
quan tới chi phí và lịch trình dự án.
Quy trình ước lượng là một quá trình liên tục gồm các hoạt động:
1. Ước lượng kích thước (quy mô phần mềm).
14
2. Ước lượng chi phí và các nỗ lực.
3. Ước lượng lịch trình.
4. Ước lượng các tài nguyên.
5. Đánh giá rủi ro.
6. Kiểm tra/ xác nhận.
7. Theo dõi và báo cáo tiến độ.
8. Đánh giá và cải tiến quy trình.
Các hoạt động ước lượng kích thước, nỗ lực và chi phí cần được thực hiện
trước khi xây dựng các kế hoạch. Tuy nhiên, việc xây dựng lịch trình thường
được bắt đầu thực hiện trước khi hoàn thành tất cả các công việc xác định các nỗ
lực. Ngoài ra, việc sớm thiết lập bảng phân rã công việc WBS (Work
Breakdown Structure) giúp việc phân chia các các công việc thành các phần việc
độc lập để có thể lập lịch và sắp thứ tự ưu tiên thực hiện từng phần việc trong
điều kiện cụ thể với sự hạn chế về các tài nguyên. Sơ đồ tổng quát quy trình ước
lượng dự án phần mềm cho ở hình 1.1.
15
Hình 1.1 Quy trình ước lượng dự án phần mềm
1.2 Ƣớc lƣợng kích thƣớc
Kích cỡ của phần mềm thường được đánh giá bằng số dòng mã lệnh SLOC
(Source Lines of Code) hoặc số nghìn dòng mã KSLOC (Thousands of Source
Lines of Code). Phần mềm có thể được phát triển bằng cách viết mới hoàn toàn
hoặc dùng một hay nhiều môđun có sẵn. Do vậy, việc ước lượng bao gồm việc
ước lượng các đoạn mã mới cần viết và cả phần sử dụng lại. Việc ước lượng
kích cỡ có thể được đánh giá qua đơn vị điểm chức năng FP (Function Points)
dựa trên các chức năng của phần mềm thường nhận được ngay trong pha tìm
hiểu yêu cầu. Dòng mã LOC và điểm chức năng FP là những dữ liệu cơ bản để
tính ra độ đo hiệu năng phát triển phần mềm.
16
Ước lượng LOC và FP là các kỹ thuật ước lượng tách biệt, nhưng cả hai
đều có một số đặc trưng chung. Từ một tuyên bố về phạm vi phần mềm, người
lập dự án bắt đầu phân rã phần mềm thành các chức năng nhỏ hơn để có thể
được áp dụng riêng biệt. LOC và FP sẽ được ước lượng cho từng chức năng con.
Các ước lượng này được tổ hợp lại để tạo ra một ước lượng tổng thể cho toàn bộ
dự án.
Các ước lượng LOC và FP phụ thuộc vào mức độ chi tiết của bảng phân rã
công việc WBS. LOC được ước lượng trực tiếp từ WBS, còn FP được xác định
gián tiếp qua số đầu vào, đầu ra, tệp dữ liệu, câu hỏi và giao diện ngoài và sử
dụng 14 giá trị điều chỉnh độ phức tạp Fi bằng việc trả lời những câu hỏi sau:
1. Hệ thống có đòi hỏi sao lưu và phục hồi không?
2. Có đòi hỏi trao đổi dữ liệu không?
3. Có chức năng xử lý phân tán không?
4. Có đòi hỏi cao về làm việc tốt không?
5. Hệ thống có chạy trong môi trường mà nặng về vận hành tiện ích không?
6. Hệ thống có đòi hỏi việc vào dữ liệu trực tuyến không?
7. Việc vào dữ liệu trực tuyến có đòi hỏi phải xây dựng thao tác đưa vào và thông
qua nhiều màn hình thao tác không?
8. Tệp chính có phải cập nhật trực tuyến không?
9. Đầu vào, đầu ra, tệp, truy vấn có phức tạp không?
10. Xử lý bên trong có phức tạp không?
11. Mã chương trình có được thiết kế để dùng lại không?
12. Việc chuyển đổi và cài đặt có được đưa vào trong thiết kế không?
13. Hệ thống có được thiết kế cho nhiều cài đặt trong các tổ chức khác nhau hay
không?
14. Liệu ứng dụng có được thiết kế để làm thuận tiện cho việc thay đổi và dễ dàng
cho người dùng không?
Bất kể là tham số ước lượng nào được dùng, người lập kế hoạch dự án về
cơ bản phải đưa ra một phạm vi các giá trị cho từng chức năng được phân rã.
Bằng cách dùng dữ liệu lịch sử hay trực giác, người lập kế hoạch thường dùng
17
ba ước lượng cho LOC hay FP là các giá trị lạc quan (a), có thể nhất (m) và bi
quan (b).
Ví dụ:
E=
a 4m b
6
Số này cho một sự tin cậy nhất định đối với ước lượng và có thể tính đến phân bố xác
suất của nó. Tại giai đoạn này, người lập kế hoạch áp dụng một trong hai cách tiếp cận
sau:
1. Tất cả giá trị tham số ước lượng của các chức năng con có thể được nhân lên
với hiệu năng trung bình lấy từ dữ liệu lịch sử tương ứng với tham số ước lượng
đó. Chẳng hạn, giả sử ta đã ước lượng được tổng điểm chức năng là 310 FP và
hiệu năng trung bình của FP từ các dự án quá khứ là 5.5 FP/người-tháng thì
tổng công sức ước lượng cho dự án sẽ là:
Công sức =
310
56 người-tháng
5.5
2. Giá trị ước lượng cho từng chức năng con có thể được nhân với hiệu năng được
điều chỉnh dựa vào mức độ phức tạp nhận biết được của các chức năng con: nếu
nó có độ phức tạp trung bình, thì dùng độ đo hiệu năng trung bình. Tuy nhiên,
độ đo được điều chỉnh lên hay xuống đối với chức năng con cụ thể tùy thuộc
vào độ phức của nó cao hơn hay thấp hơn độ phức tạp trung bình.
Các ước lượng này có đúng hay không là điều chưa chắc chắn. Vì thế, mọi kỹ thuật
ước lượng, cần phải được kiểm tra bằng các cách tiếp cận khác nhau [20].
1.3 Ƣớc lƣợng công sức
Ước lượng công sức là số người-tháng hay người-năm được dùng cho giải
pháp của từng nhiệm vụ dự án. Giống như kỹ thuật LOC và FP, ước lượng công
sức bắt đầu bằng việc phác họa các chức năng phần mềm thu được từ phạm vi
dự án. Các nhiệm vụ của kỹ nghệ phần mềm như phân tích yêu cầu, thiết kế, mã
hóa và kiểm thử – phải được thực hiện cho từng chức năng.
18
Hình 1.2 Phát triển ma trận công sức – chức năng
Những dữ liệu này chứa trong ma trận trung tâm của bảng. Tỷ lệ lao động
(chi phí/ đơn vị công sức) được áp dụng cho từng nhiệm vụ kỹ nghệ phần mềm.
Rất có thể là tỷ lệ này sẽ thay đổi theo mỗi loại nhiệm vụ. Như thường thấy:
nhân viên cấp cao tham gia nhiều vào việc phân tích yêu cầu và thiết kế, còn các
nhân viên tập sự (lương thấp) tham gia vào các nhiệm vụ thiết kế chi tiết, mã
hóa và kiểm thử.
Chi phí và công sức cho từng chức năng và nhiệm vụ kỹ nghệ phần mềm
thường được được tính vào lúc cuối. Nếu chúng thực hiện độc lập với ước lượng
LOC và FP thì ta có hai ước lượng cho chi phí và công sức để so sánh. Nếu cả
hai tập các ước lượng này có sự phù hợp hợp lý thì ta có lý do để tin rằng, các
ước lượng là tin cậy. Trong trường hợp ngược lại cần tiến hành thêm các nghiên
cứu và phân tích.
Những khác biệt lớn của các ước lượng thường do hai nguyên nhân:
1. Phạm vi của dự án chưa thích đáng hoặc bị hiểu sai.
2. Dữ liệu về hiệu năng lập mã được dùng là không thích hợp đối với ứng dụng
hiện tại, do đã lạc hậu hoặc đã bị hiểu sai.
Người lập kế hoạch phải xác định được nguyên nhân của sự khác biệt để củng
cố lại ước lượng.
19
1.4 Ƣớc lƣợng tài nguyên
Hình 1.3 mô tả các tài nguyên cần có cho phát triển phần mềm. Các công
cụ – phần cứng và phần mềm – cần phải có để hỗ trợ cho sự phát triển. Ở mức
cao hơn, tài nguyên chính là con người. Mỗi tài nguyên đều được xác định với
bốn thuộc tính: mô tả tài nguyên, tính có sẵn, thời gian cần có, thời hạn tài
nguyên được sử dụng. Hai đặc trưng cuối có thể xem như cửa sổ thời gian.
Hình 1.3 Tài nguyên
Tính sẵn có của tài nguyên đối với một cửa sổ phải được thiết lập ở giai
đoạn thực hành sớm nhất.
1.4.1 Tài nguyên con người
Người lập kế hoạch bắt đầu bằng việc ước lượng phạm vi và lựa chọn kỹ
năng cần để hoàn thành việc phát triển. Các vị trí trong tổ chức (như người quản
lý, kỹ sư phần mềm cấp cao,…), tính chuyên môn (về viễn thông, cơ sở dữ liệu,
bộ vi xử lý) và số lượng đều phải xác định rõ. Với những dự án tương đối nhỏ (1
người-năm hay ít hơn), một người có thể thực hiện tất cả các bước kỹ nghệ phần
mềm khi có tư vấn của các chuyên gia. Số người cần cho dự án phầm mềm có
thể được xác định chỉ khi đã xây dựng được ước lượng nỗ lực phát triển (ngườitháng hay người-năm).
1.4.2 Tài nguyên phần cứng
Chúng ta thuờng xem phần cứng như là tiềm năng tính toán. Nhưng nó
cũng là một phương tiện cho việc phát triển và vận hành phần mềm. Có ba loại
20
phần cứng cần phải được xem xét tới khi lập kế hoạch dự án phần mềm: hệ
thống phát triển, máy đích và các phần tử khác của hệ thống mới.
Hệ thống phát triển là một máy tính và các thiết bị ngoại vi có liên quan sẽ
được dùng cho phát triển phần mềm. Nó có thể hỗ trợ cho nhiều người dùng,
duy trì khối lượng thông tin lớn để dùng chung và hỗ trợ phong phú về công cụ
phần mềm. Vì phần lớn các tổ chức phát triển đều có nhiều vị trí cần truy nhập
vào hệ thống này nên người lập kế hoạch phải mô tả cẩn thận cửa sổ thời gian
cần thiết và kiểm chứng rằng tài nguyên đã sẵn sàng.
1.4.3 Tài nguyên phần mềm
Chúng ta dùng phần mềm để hỗ trợ cho việc phát triển phần mềm mới.
Ngoài các công cụ để trợ giúp phát triển phần mềm, nói về tài nguyên phần mềm
sẽ không đầy đủ nếu không tính đến các phần mềm được sử dụng lại. Các phần
mềm này cần được lên danh mục, được chuẩn hóa để dễ tìm kiếm và ứng dụng,
và phải được làm hợp lệ cho việc tích hợp. Đã có các thư viện phần mềm được
tái sử dụng cho các ứng dụng thương mại, các hệ thống thời gian thực, các vấn
đề khoa học và công việc. Tuy nhiên, còn ít các kỹ thuật hệ thống, các giao diện
chuẩn để bổ sung cho một thư viện phần mềm dùng lại, vấn đề chất lượng và
bảo trì vẫn chưa được giải quyết, và cuối cùng, người phát triển thường không
biết về các phần mềm đã có sẵn này. Có hai quy tắc khi xem xét phầm mềm
dùng lại như một tài nguyên:
1. Nếu phần mềm hiện có đáp ứng được yêu cầu thì hãy dùng nó, và chi phí để có
được chúng bao giờ cũng phải ít hơn chi phí để phát triển một phần mềm tương
tự.
2. Nếu phần mềm hiện có đòi hỏi phải sửa đổi trước khi được tích hợp với hệ thống
thì chi phí để sửa đổi nó phải nhỏ hơn chi phí phát triển phần mềm tương đương.
Trong thực tế, các tài nguyên phần mềm lại hay bị bỏ qua trong khi lập kế
hoạch. Cần xác định sớm yêu cầu tài nguyên phần mềm, nhờ đó, việc đánh giá
kỹ thuật cho các phương án có thể được tiến hành và thu được kết quả đúng hạn.
21
1.5 Các tiếp cận ƣớc lƣợng dự án phần mềm
Việc ước lượng các dự án phần mềm có một số cách tiếp cận khác nhau, và
tương ứng với mỗi cách tiếp cận đó là những phương pháp ước lượng tương
ứng.
Tiếp cận theo định hướng phát triển phần mềm có:
Phát triển phần mềm định hướng cấu trúc. Theo định hướng này, ta có mô hình
COCOMO, mà cơ sở của nó là tính điểm chức năng của các chức năng phần
mềm [13].
Phát triển phần mềm định hướng đối tượng, ta có phương pháp điểm ca sử
dụng, mà cơ sở của nó là tính điểm ca sử dụng dựa trên đặc tả yêu cầu bằng các
ca sử dụng [1].
Phát triển phần mềm theo hướng hình thức hóa. Hiện chưa có nhiều dự án được
phát triển theo hướng này, nên phương pháp ước lượng dự án phần mềm chủ
yếu dựa trên kinh nghiệm dữ liệu các dự án đã có, nên chưa có phương pháp
ước lượng được thừa nhận.
Một số phương pháp đưa ra có tính chất nghiên cứu nhiều hạng mục áp dụng rất
hạn chế.
22
- Xem thêm -