Khóa luận nghiên cứu vềphương pháp ước lượng dựán phần mềm.
Bốcục có 2 phần:
Phần 1 nêu ra những nguyên tắc cơ bản trong ước lượng dựán phần mềm, và giới
thiệu 2 phương pháp ước lượng nổi tiếng là phương pháp Phân tích Điểm Chức năng
(FPA –Function Point Analysis) và Mô hình giá cấu thành (COCOCO –Constructive
Cost Model) cùng những đánh giá về2 phương pháp trong bối cảnh phát triển phần
mềm hiện nay.
Phần 2 có nội dung giới thiệu và đánh giá phương pháp ước lượng dựán phần mềm
dựa trên Điểm Ca Sửdụng (UCP –Use Case Point), là phương pháp rất phù hợp cho
những dựán được kĩ nghệtheo phương pháp Hướng Đối tượng, khắc phục được nhiều
nhược điểm của các phương pháp truyền thống. Trong phần này, sẽtiến hành xây
dựngmột chương trình tính toán hỗtrợcho việc ước lượng theo phương pháp Điểm
Ca Sửdụng. Chương trình được kĩ nghệtheo phương pháp Hướng Đối tượng và tài
liệu phân tích của nó lại được dùng cho việc đánh giá thực tếáp dụng phương pháp
Điểm Ca Sửdụng.
80 trang |
Chia sẻ: nhungnt | Lượt xem: 3201 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu ước lượng dự án, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ………………….
KHOA……………………….
---------
Báo cáo tốt nghiệp
Đề tài:
NGHIÊN CỨU ƯỚC LƯỢNG DỰ ÁN
LỜI CÁM ƠN
Em xin chân thành cám ơn tất cả các thầy cô trong trường đã truyền đạt nhiều kiến
thức bổ ích cho em trong những năm học tập tại trường.
Đặc biệt, em xin cám ơn thầy giáo PGS. TS. Nguyễn Văn Vỵ, người hướng dẫn trực
tiếp và giúp em hoàn thành tốt khóa luận này.
TÓM TẮT NỘI DUNG
Khóa luận nghiên cứu về phương pháp ước lượng dự án phần mềm.
Bố cục có 2 phần:
Phần 1 nêu ra những nguyên tắc cơ bản trong ước lượng dự án phần mềm, và giới
thiệu 2 phương pháp ước lượng nổi tiếng là phương pháp Phân tích Điểm Chức năng
(FPA – Function Point Analysis) và Mô hình giá cấu thành (COCOCO – Constructive
Cost Model) cùng những đánh giá về 2 phương pháp trong bối cảnh phát triển phần
mềm hiện nay.
Phần 2 có nội dung giới thiệu và đánh giá phương pháp ước lượng dự án phần mềm
dựa trên Điểm Ca Sử dụng (UCP – Use Case Point), là phương pháp rất phù hợp cho
những dự án được kĩ nghệ theo phương pháp Hướng Đối tượng, khắc phục được nhiều
nhược điểm của các phương pháp truyền thống. Trong phần này, sẽ tiến hành xây
dựng một chương trình tính toán hỗ trợ cho việc ước lượng theo phương pháp Điểm
Ca Sử dụng. Chương trình được kĩ nghệ theo phương pháp Hướng Đối tượng và tài
liệu phân tích của nó lại được dùng cho việc đánh giá thực tế áp dụng phương pháp
Điểm Ca Sử dụng.
MỤC LỤC
LỜI CÁM ƠN
TÓM TẮT NỘI DUNG
MỤC LỤC
DANH SÁCH CÁC TỪ VIẾT TẮT
DANH SÁCH CÁC BẢNG
DANH SÁCH CÁC HÌNH
PHẦN 1 TỔNG QUAN VỀ PHƯƠNG PHÁP ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM
CHƯƠNG 1 NHỮNG NGUYÊN TẮC CƠ BẢN TRONG ƯỚC LƯỢNG DỰ ÁN PHẦN
MỀM
1.1 Tổng quan ước lượng dự án phần mềm ........................................................................... 2
1.2 Bốn bước cơ bản trong ước lượng dự án phần mềm ........................................................ 4
1.2.1 Ước lượng kích cỡ................................................................................................................... 4
1.2.2 Ước lượng nỗ lực .................................................................................................................... 5
1.2.2.1 Vấn đề ước lượng nỗ lực trực tiếp.................................................................................... 7
1.2.3 Ước lượng lịch trình ................................................................................................................ 7
1.2.4 Ước lượng chi phí.................................................................................................................... 8
CHƯƠNG 2 NGHIÊN CỨU PHƯƠNG PHÁP ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM
TRUYỀN THỐNG
2.1 Phương pháp Phân tích Điểm Chức năng (FPA – Function Points Analysis)..................11
2.1.1 Tóm lược ...............................................................................................................................11
2.1.2 Nội dung của phương pháp .....................................................................................................11
2.1.3 Đánh giá phương pháp............................................................................................................14
2.2 Mô hình ước lượng giá cấu thành (COCOMO – Constructive Cost Model) ....................16
2.2.1 Tóm lược ...............................................................................................................................16
2.2.2 Nội dung mô hình...................................................................................................................16
2.2.2.1 Mô hình COCOMO cơ sở (basic COCOMO)..................................................................16
2.2.2.2 Mô hình COCOMO trung cấp (intermediate COCOMO) ................................................17
2.2.2.3 Mô hình COCOMO nâng cao (advanded COCOMO) .....................................................20
2.2.3 Đánh giá mô hình ...................................................................................................................20
2.3 Kết hợp Phương pháp Phân tích Điểm Chức năng với Mô hình Giá Cấu thành (FPA và
COCOMO)................................................................................................................................21
2.3.1 Nội dung kết hợp....................................................................................................................21
2.3.2 Đánh giá phép kết hợp............................................................................................................22
PHẦN 2 ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM THEO ĐIỂM CA SỬ DỤNG
CHƯƠNG 3 GIỚI THIỆU PHƯƠNG PHÁP ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM THEO
ĐIỂM CA SỬ DỤNG (USE CASE POINT)
3.1 Tóm lược .......................................................................................................................25
3.2 Nội dung phương pháp...................................................................................................26
3.2.1 Tính số Điểm Ca Sử dụng (UCPs) ..........................................................................................26
3.2.1.1 Tính số Điểm Ca Sử dụng Chưa được điều chỉnh (UUCPs – Unadjusted Use Case Points)
27
3.2.1.2 Tính Yếu tố Độ phức tạp Kĩ thuật...................................................................................31
3.2.1.3 Tính Yếu tố Độ phức tạp Môi trường (ECF – Environmental Complexity Factor)............33
3.2.1.4 Tính số Điểm Ca Sử dụng ..............................................................................................36
3.2.2 Ước lượng nỗ lực từ số Điểm Ca Sử dụng...............................................................................36
CHƯƠNG 4 XÂY DỰNG CHƯƠNG TRÌNH TÍNH TOÁN HỖ TRỢ ƯỚC LƯỢNG UCP
ESTIMATOR
4.1 Phát biểu bài toán..........................................................................................................38
4.2 Phân tích bài toán..........................................................................................................38
4.2.1 Phân tích tổng thể...................................................................................................................38
4.2.2 Phân tích cụ thể chức năng......................................................................................................39
4.3 Đặc tả chương trình.......................................................................................................39
4.3.1 Biểu đồ ca sử dụng của chương trình.......................................................................................39
4.3.2 Các biểu đồ hoạt động ............................................................................................................40
4.3.2.1 Biểu đồ hoạt động của ca sử dụng số 1 ...........................................................................40
4.3.2.2 Biểu đồ hoạt động của ca sử dụng số 2 ...........................................................................41
4.4 Thiết kế logic hoạt động cho chương trình .....................................................................42
4.4.1 Xác định các lớp phân tích......................................................................................................42
4.4.2 Các biểu đồ cộng tác...............................................................................................................42
4.4.2.1 Biểu đồ cộng tác cho ca sử dụng số 1..............................................................................42
4.4.2.2 Biểu đồ cộng tác cho ca sử dụng số 2..............................................................................43
4.4.3 Các biểu đồ tuần tự.................................................................................................................44
4.4.3.1 Biểu đồ tuần tự cho ca sử dụng số 1................................................................................44
4.4.3.2 Biểu đồ tuần tự cho ca sử dụng số 2................................................................................45
4.5 Thiết kế cơ sở dữ liệu.....................................................................................................45
4.5.1 Phân tích bài toán để xây dựng cơ sở dữ liệu...........................................................................45
4.5.2 Xây dựng biểu dồ thực thể - liên kết (E-R) ..............................................................................46
4.5.3 Xây dựng lược đồ quan hệ ......................................................................................................49
CHƯƠNG 5 ÁP DỤNG VÀ ĐÁNH GIÁ PHƯƠNG PHÁP ƯỚC LƯỢNG ĐIỂM CA SỬ
DỤNG
5.1 Áp dụng thực tế..............................................................................................................51
5.1.1 Bài toán số 1 – Dự án xây dựng mô–đun cho máy rút tiền ATM..............................................51
5.1.1.1 Miêu tả dự án.................................................................................................................51
5.1.1.2 Ước lượng kích cỡ .........................................................................................................51
tính số Điểm Ca Sử dụng ................................................................................................................51
5.1.1.3 Ước lượng nỗ lực...........................................................................................................53
5.1.2 Bài toán số 2 – Dự án xây dựng chương trình UCP Estimator..................................................53
5.1.2.1 Miêu tả dự án.................................................................................................................53
5.1.2.2 Ước lượng kích cỡ .........................................................................................................54
tính số Điểm Ca Sử dụng ................................................................................................................54
5.1.2.3 Ước lượng nỗ lực...........................................................................................................59
5.2 Đánh giá phương pháp ..................................................................................................59
5.2.1 Đánh giá quy trình tính toán....................................................................................................59
5.2.1.1 So sánh UCP với FPA....................................................................................................59
5.2.1.2 So sánh UCP với COCOMO ..........................................................................................60
5.2.2 Đánh giá trên thực tế ..............................................................................................................61
5.2.3 Kết luận .................................................................................................................................62
5.3 Đề xuất hướng phát triển ...............................................................................................62
5.3.1 Phát triển lý thuyết chương trình.............................................................................................62
5.3.2 Phát triển chương trình tính toán UCP Estimator .....................................................................63
PHỤ LỤC A. DỰ ÁN XÂY DỰNG MÔ – ĐUN ATM ...................................................... 64
TÀI LIỆU THAM KHẢO................................................................................................. 69
DANH SÁCH CÁC TỪ VIẾT TẮT
COCOMO : COnstructive COst MOdel – Mô hình giá cấu thành
EAF : Effort Adjust Factor – yếu tố điều chỉnh nỗ lực
ECF : Environmental Complexity Factor – Yếu tố độ phức tạp môi trường
ER : Effort Rating – tỉ lệ nỗ lực
FP : Function Point – Điểm chức năng
FPA : Function Point Analysis – Phân tích điểm chức năng
FPs : Function Points – số Điểm chức năng
KLOC : Kilo Line Of Code – số nghìn dòng lệnh
LOC : Line Of Code – số dòng lệnh
RUP : Rational Unified Process – Tiến trình thống nhất
TCF : Technical Complexity Factor – Yếu tố độ phức tạp kĩ thuật
UCP : Use Case Point – Điểm ca sử dụng
UCPs : Use Case Points – số Điểm ca sử dụng
UFP : Unadjusted Function Point – Điểm Chức năng chưa được điều chỉnh
UFPs : Unadjusted Function Points – số Điểm Chức năng chưa được điều
chỉnh
UML : Unified Modelling Language – ngôn ngữ mô hình hóa thống nhất
UUCP : Unadjusted Use Case Point – Điểm ca sử dụng chưa được điều chỉnh
UUCPs : Unadjusted Use Case Point – số Điểm ca sử dụng chưa được điều
chỉnh
WAs : Weighted Actors – số lượng Tác nhân sau khi đánh trọng số
WUCs : Weighted Use Cases – số lượng Ca sử dụng sau khi đánh trọng số
DANH SÁCH CÁC BẢNG
Chương 1:
Chương 2:
Bảng 2-1. Tính UFPs – kích cỡ xử lý thông tin thô – trong FPA
Bảng 2-2. Mười bốn Yếu tố kĩ thuật trong FPA
Bảng 2-3. Phân loại chế độ phát triển sản phẩm trong COCOMO cơ sở
Bảng 2-4. Các Yếu tố điều chỉnh trong COCOMO trung cấp
Bảng 2-5. Phân loại chế độ phát triển trong COCOMO trung cấp
Bảng 2-6. Đề xuất tỉ lệ LOC/FP cho phép kết hợp FPA và COCOMO.
Chương 3:
Bảng 3-1. Phân loại và đánh trọng số ca sử dụng trong UCP
Bảng 3-2. Ví dụ đếm số ca sử dụng sau khi đánh trọng số
Bảng 3-3. Phân loại và đánh trọng số tác nhân trong UCP
Bảng 3-4. Ví dụ đếm số tác nhân sau khi đánh trọng số
Bảng 3-5. Trọng số của 13 yếu tố kĩ thuật trong UCP
Bảng 3-6. Ví dụ tính Yếu tố Độ phức tạp Kĩ thuật trong UCP
Bảng 3-7. Trọng số của 8 yếu tố môi trường trong UCP
Bảng 3-8. Ví dụ tính Yếu tố Độ phức tạp Môi trường trong UCP
Chương 4:
Bảng 4-3. Kịch bản ca sử dụng “Thực hiện ước lượng mới” – UCP Estimator
Bảng 4-4. Kịch bản ca sử dụng “Tìm kiếm ước lượng lịch sử” – UCP Estimator
Chương 5:
Bảng 5-5. Đếm WUCs - dự án ATM
Bảng 5-2. Đếm WAs – dự án ATM
Bảng 5-3. Đếm WUCs - dự án UCP Estimator
Bảng 5-4. Đếm WAs - dự án UCP Estimator
Bảng 5-5. Cho điểm các Yếu tố kĩ thuật - dự án UCP Estimator
Bảng 5-6. Cho điểm các Yếu tố môi trường - dự án UCP Estimator
DANH SÁCH CÁC HÌNH
Chương 1:
Hình 1-1. Đồ thị hội tụ ước lượng.
Hình 1-2. Tiến trình cơ sở Ước lượng dự án
Chương 2:
Chương 3:
Chương 4:
Hình 4-1. Biểu đồ ca sử dụng tổng thể - UCP Estimator
Hình 4-2. Biểu đồ hoạt động của ca sử dụng "Thực hiện Ước lượng mới" - UCP
Estimator
Hình 4-3. Biểu đồ hoạt động của ca sử dụng "Tìm kiếm Ước lược lịch sử" - UCP
Estimator
Hình 4-4. Biểu đồ cộng tác cho ca sử dụng "Thực hiện ước lượng mới" - UCP
Estimator
Hình 4-5. Biểu đồ cộng tác cho ca sử dụng "Tìm kiếm ước lượng lịch sử" - UCP
Estimator
Hình 4-6. Biểu đồ tuần tự cho ca sử dụng "Thực hiện ước lượng mới" - UCP
Estimator
Hình 4-7. Biểu đồ tuần tự cho ca sử dụng "Tìm kiếm ước lượng lịch sử" - UCP
Estimator
Hình 4-8. Biểu đồ thực thể-mối quan hệ - UPC Estimator
Chương 5:
1
PHẦN 1
TỔNG QUAN VỀ PHƯƠNG PHÁP
ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM
Chương 1 – Khóa luận tốt nghiệp – Nguyễn Trần Việt
2
Chương 1
NHỮNG NGUYÊN TẮC CƠ BẢN TRONG
ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM
1.1 Tổng quan ước lượng dự án phần mềm
Ước lượng dự án phần mềm hiệu quả là một hoạt động quan trọng, đồng thời cũng là
một thách thức trong phát triển phần mềm. Ước lượng là một trong những nền tảng
cho việc lập lịch dự án một cách hiệu quả: Lập kế hoạch và điều khiển dự án có hiệu
quả là không thể nếu không có một ước lượng đầy đủ và đáng tin cậy. Nhiều tổ chức
phải chịu các tác động tài chính lên công việc của họ, bị mất lợi thế cạnh tranh, và
chậm trễ trong việc hưởng lợi từ kế hoạch và các sáng kiến do các các ước lượng xấu.
Cho đến bây giờ cũng dễ nhận thấy rằng ngành công nghiệp phần mềm nói chung
không có nhiều ước lượng dự án tốt và cũng không sử dụng các ước lượng hợp lý .
Hình 1-1 , tham khảo từ tài liệu ([6] McConnell, 1996) thể hiện độ hội tụ của ước
lượng trong vòng đời phát triển dự án của các dự án thực tế, ước lượng chỉ được chính
xác hóa dần dần trong quá trình làm mịn dần dự án. Từ hình vẽ có thế nhận thấy rằng
để đưa ra được các ước lượng đáng tin cậy và sớm trong vòng đời phát triển của dự án
là rất khó. Chúng ta phải chịu nhiều thiệt hại hơn như là một hậu quả, dó đó chúng ta
cần tập trung nhiều nỗ lực để giải quyết tình hình
Ước lượng thiếu một dự án dẫn đến (a) việc bố trí thiếu cho dự án (điều mà thường
dẫn đến việc vượt quá khả năng làm việc), (b) quản lý thiếu các nỗ lực đảm bảo chất
lượng (bỏ sót các nguy cơ rủi ro của sản phẩm kém chất lượng), và (c) tạo ra một lịch
trình làm việc quá ngắn (dẫn đến sự mất uy tín do thời hạn thỏa thuận với khách hàng
không được tôn trọng).
Còn đối với những người mà mong muốn tránh khỏi tình huống này bằng cách thêm
nhiều yếu tố thừa vào ước lượng, thì ước lượng thừa một dự án có thể chỉ làm tồi tệ
cho tổ chức. Nếu như đưa cho một dự án nhiều tài nguyên hơn mức nó thực sự cần mà
không có những điều hành phạm vi đầy đủ, nó sẽ bị dùng hết. Điều này giống như là
quy tắc Parkinson được mô tả trong bài viết ([10] What Is Parkinson’s Law in Project
Chương 1
3
Management?, 2010):
“Work expands so as to fill the time available for its completion”
tạm dịch là:“Công việc mở rộng để lấp đầy thời gian có sẵn để hoàn thành”.
Dự án khi đó có khả năng phải (a) chi phí nhiều hơn mức cần thiết (một tác động tiêu
cực đến tài chính và có thể làm giảm lợi thế cạnh tranh), (b) mất nhiều thời gian hơn
để hoàn thành (dẫn đến đánh mất các cơ hội), và (c) trì hoãn việc sử dụng tài nguyên ở
các dự án tiếp theo.
Xác định
sản phẩm
được đồng ý
Đặc tả
thiết kế
chi tiết
Sản phẩm
hoàn thành
Đặc tả thiết kế
sản phẩm
Đặc tả
yêu cầu
Xác định
sản phẩm
ban đầu
Giá dự án
(nỗ lực và kích cỡ) Lịch trình dự án
1.0 x
1.25 x
1.5 x
2 x
4 x
0.25 x
0.5 x
0.67 x
0.8 x
1.05
1.15 x
1.25 x
1.6 x
0.6 x
0.8 x
0.85 x
0.9 x
1.0 x
Hình 1-3. Đồ thị hội tụ ước lượng. Độ chính xác của ước lượng chỉ được cải tiến chính trong quá trình phát
triển. Nguồn tham khảo: ([6] McConnell. 1996)
Chương 1
4
1.2 Bốn bước cơ bản trong ước lượng dự án phần
mềm
Bốn bước chính trong ước lượng dự án phần mềm là:
1) ước lượng phạm vi của sản phẩm phát triển. Thông thường, điều này luôn yêu
cầu một ước lượng của kích cỡ của phần mềm được phát triển theo số dòng lệnh
(LOC – line of code) hoặc điểm chức năng (FP – Function Point). Trong khi
kích cỡ theo LOC là đơn vị kích cỡ cơ sở được dùng bởi nhiều mô hình tính
toán ước lượng hàng đầu, nhiều đội phát triển lại không thích với những phép
đo này và dùng những đơn vị ít chính quy hơn (số đặc tính, số yêu cầu thay đổi,
số ca sử dụng / số kịch bản, số tường thuật người dùng, số phát biểu yêu cầu,
…). Một thảo luận về các ưu điểm và nhược điểm của các phương pháp đo kích
cỡ khác nhau sẽ được đề cập ở phần sau.
2) ước lượng nỗ lực theo đơn vị [người – tháng] hoặc [người – giờ] dùng một mô
hình tính toán liên hệ nỗ lực với cỡ của phần mềm và năng suất của đội phát
triển.
3) ước lượng lịch trình theo lịch thời gian (tháng/tuần). Điều này có thể được tính
toán từ nỗ lực được ước lượng và là một hàm số của kích cỡ đội phát triển. Điều
quan trọng là phải nhận thức rõ rằng đây không phải là một quan hệ tuyến tính
và ở một số điểm trong lịch trình dự án không thể rút ngắn lịch trình bằng cách
thêm tài nguyên cho việc phát triển.
4) ước lượng chi phí dự án theo đơn vị tiền tệ. Điều này là một kết hợp của giá
nhân công (cái mà có thể được tính toán từ ước lượng nỗ lực) và giá phi nhân
công (ví dụ, giá khấu hao của các phần cứng và phần mềm cần thiết được cung
cấp cho dự án).
1.2.1 Ước lượng kích cỡ
Một ước lượng chính xác của kích cỡ của phần mềm được xây dựng là bước đầu tiên
cho một ước lượng có hiệu quả. Các tài nguyên thông tin về phạm vi của dự án nên
được thu thập bất cứ nơi nào có thể, bắt đầu với những mô tả chính thức của các yêu
cầu – ví dụ, một đặc tả các yêu cầu của khách hàng hoặc