1. Trang chủ
  2. » Luận Văn - Báo Cáo

Một số kỹ thuật ước lượng dự án và đánh giá phần mềm

112 2,7K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 112
Dung lượng 1,63 MB

Nội dung

Việc ước lượng dự án phần mềm không phải là một khoa học chính xác, nhưng tổ hợp các dữ liệu lịch sử tốt kết hợp với việc sử dụng các kỹ thuật ước lượng có thể cải thiện độ chính xác của

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

MỤC LỤC

MỞ ĐẦU 5

CHƯƠNG 1 TỔNG QUAN VỀ ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM VÀ ĐÁNH GIÁ CHẤT LƯỢNG PHẦN MỀM 7

1.1 Ước lượng dự án phần mềm 7

1.1.1 Ước lượng kích cỡ (LOC & FP) 9

1.1.2 Ước lượng công sức 12

1.1.3 Ước lượng về tài nguyên 14

1.2 Đánh giá chất lượng phần mềm 16

1.2.1 Các nhân tố chất lượng phần mềm 16

1.2.2 Đánh giá thông qua tính đúng đắn 19

1.2.3 Đánh giá thông qua tần suất bảo trì 19

1.2.4 Đánh giá thông qua tính toàn vẹn 20

1.2.5 Đánh giá dựa trên khả năng tiếp cận người dùng 20

CHƯƠNG 2 KỸ THUẬT ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM 21

2.1 Phương pháp Function Points 21

2.1.1 Giới thiệu 21

2.1.2 Tính hay ước tính 23

2.1.3 Mô hình điểm chức năng 23

2.1.4 Các bước thực hiện 29

2.1.5 Thí dụ áp dụng phương pháp Function Points 36

2.2 Phương pháp Use Case Points 37

2.2.1 Giới thiệu về phương pháp UCP 37

2.2.2 Vai trò của biểu đồ Use Case trong ước lượng phần mềm 38

2.2.3 Các bước thực hiện với phương pháp ước lượng UCP 40

2.2.4 Thí dụ áp dụng phương pháp UCP 45

2.3 Các mô hình ước lượng dự án phần mềm 47

2.3.1 Tổng quan về các mô hình ước lượng kinh nghiệm 47

2.3.2 Mô hình ước lượng COCOMO (Contructive Cost Model) 48

2.3.3 Mô hình ước lượng Putnam 87

2.4 Công cụ ước lượng tự động 89

CHƯƠNG 3 KỸ THUẬT ĐÁNH GIÁ CHẤT LƯỢNG PHẦN MỀM 92

3.1 Độ đo chất lượng phần mềm 92

3.2 Khoa học phần mềm của HALSTEAD 93

3.3 Đo độ phức tạp của Thomas McCabe 95

3.4 Độ tin cậy phần mềm 96

3.5 Cách tiếp cận bảo đảm chất lượng phần mềm 97

CHƯƠNG 4 PHÁT TRIỂN CHƯƠNG TRÌNH ỨNG DỤNG 100

4.1 Mục tiêu 100

Trang 3

4.2 Tóm lược cơ sở khoa học 100

4.2.1 Các bước tính Function Points trong chương trình 100

4.2.2 Các bước tính Use Case Points trong chương trình 104

4.3 Cài đặt 105

KẾT LUẬN 108

TÀI LIỆU THAM KHẢO 109

PHỤ LỤC 110

Trang 4

DANH MỤC CÁC KÝ HIỆU THUẬT NGỮ VIẾT TẮT

COCOMO Contructive Cost Model

KSLOC Thousand of Source Line Of Code

IFPUG Internatinal Function Point Users Group

FPA Function Point Analysis

ILF Internal Logical File

ELF External Logical File

SQA Software Quality Assurance

SMPEEM Mô hình đánh giá nỗ lực dự án bảo trì phần mềm SMI Chỉ số chín muồi phần mềm

TCF Technical Complex Factor

UUCP Unadjusted Use Case Point

UAW Unadjusted Actors Weight

UUCPW Unadjusted Use Case Point Weight

UFP Unadjusted Function Points

VAF Value Adjustment Factor

WBS Work Breakdown Structure

Trang 5

MỞ ĐẦU

Mặc dù việc nghiên cứu về các chủ đề này đã được quan tâm nhiều trên thế giới, nhưng ở Việt Nam các nghiên cứu và ứng dụng chỉ mới ở bước đầu Thực vậy, nhu cầu ước lượng tốt dự án phần mềm để tránh rủi ro là vấn đề bức xúc của các công ty sản xuất phần mềm, tổ chức thực hiện dự án phần mềm Việc định giá cho phần mềm cũng vậy, cần có sự đánh giá chính xác dựa trên chất lượng thực tế của phần mềm

Tiến trình quản lý dự án kỹ nghệ phần mềm bắt đầu với một tập các hoạt

động gọi chung là lập kế hoạch dự án Hoạt động đầu tiên trong những hoạt động

này là ước lượng Người lập kế hoạch dự án phần mềm phải ước lượng ba điều trước khi một dự án bắt đầu: dự án kéo dài bao lâu, cần bao nhiêu nỗ lực và bao nhiêu người cần tham gia Bên cạnh đó, người lập kế hoạch phải dự kiến các tài nguyên (phần cứng và phần mềm) sẽ cần tới và rủi ro trong dự án Như vậy, khi một

dự án phần mềm được lập kế hoạch, cần phải đưa ra những ước lượng về công sức con người cần có, thời hạn dự án theo ngày tháng và chi phí của dự án Những việc này được tiến hành như thế nào? Trong nhiều trường hợp ước lượng được thực hiện bằng cách dùng kinh nghiệm qúa khứ xem như hướng dẫn duy nhất Nếu một dự án mới rất giống về kích cỡ và chức năng với một dự án quá khứ thì rất có thể dự án mới sẽ đòi hỏi xấp xỉ khối lượng công sức, mất một khoảng thời gian, chi phí như

dự án cũ Nhưng điều gì sẽ xảy ra nếu dự án mở ra một “miền đất mới” Khi đó chỉ riêng kinh nghiệm quá khứ có thể không đủ [4]

Ngày nay, phần mềm là yếu tố tốn kém nhất trong nhiều hệ thống dựa trên máy tính Lỗi lầm ước lượng chi phí lớn có thể tạo ra sự chênh lệch giữa lợi nhuận

và thất thoát Việc bội chi có thể là thảm hoạ cho người phát triển

Để giải quyết vấn đề trên, đã có rất nhiều kỹ thuật ước lượng được nghiên cứu và ứng dụng rộng rãi trong ngành công nghiệp phần mềm Mặt khác, để ước lượng dự án được chính xác, đòi hỏi phải dùng ít nhất hai trong các kỹ thuật để kiểm tra chéo Bằng cách so sánh và điều tiết các ước lượng được suy ra khi dùng các kỹ thuật khác nhau, người lập kế hoạch có thể suy ra một ước lượng chính xác Việc ước lượng dự án phần mềm không phải là một khoa học chính xác, nhưng tổ hợp các dữ liệu lịch sử tốt kết hợp với việc sử dụng các kỹ thuật ước lượng có thể cải thiện độ chính xác của ước lượng

Vấn đề “nóng” thứ hai đang được quan tâm là đánh giá phần mềm, vì đây là

cơ sở chính xác để đưa ra giá thành của phần mềm cũng như để phân biệt các tổ chức sản xuất phần mềm cạnh tranh trên một sản phẩm cùng loại Khác với việc

Trang 6

ước lượng dự án phần mềm (được tiến hành trong khoảng thời gian giới hạn lúc bắt đầu dự án phần mềm, và được cập nhật đều đặn trong tiến trình dự án) việc đánh giá phần mềm được tiến hành khi phần mềm đã được mã hoá và được cập nhật sau một thời hạn nhất định khi phần mềm được đưa vào sử dụng Để đánh giá phần mềm, một tập các kỹ thuật cũng được phát triển và ý nghĩa hơn, từ những nghiên cứu về chất lượng cũng như cách đánh giá nó, quy trình đảm bảo chất lượng cho phần mềm

đã được xây dựng

Mục đích của luận văn này không nằm ngoài việc nghiên cứu đầy đủ các kỹ thuật ước lượng phổ biến, các cách đánh giá chất lượng phần mềm hiện có và xây dựng một công cụ ước lượng tự động có thể áp dụng trong thực tế Nội dung luận văn chia thành ba phần, phần đầu (chương 1) đưa ra tổng quan về ước lượng dự án phần mềm và đánh giá chất lượng phần mềm trong quản lý dự án phần mềm, trên cơ

sở đó, phần hai (chương 2 và 3) đi sâu vào các kỹ thuật ước lượng và kỹ thuật đánh giá cụ thể, phần cuối cùng (chương 4) dựa trên những nghiên cứu thu được, phát triển một công cụ ước lượng tự động dùng để ước lượng công sức và ngày công cho

dự án phần mềm./

Trang 7

 Trì hoãn việc ước lượng tới giai đoạn sau của dự án (hiển nhiên chúng ta 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

Ba tuỳ chọn còn lại là những cách tiếp cận có thể đứng được tương đối đối với ước lượng dự án phần mềm Một cách lý tưởng, các kỹ thuật được lưu ý cho từng tuỳ chọn nên được áp dụng nối tiếp nhau, mỗi tuỳ chọn được dùng như một

phép kiểm tra chéo cho tuỳ chọn khác Các kỹ thuật phân rã lấy quan điểm „chia để

trị‟ cho việc ước lượng dự án phần mềm 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 có liên quan, việc ước lượng

chi phí và nỗ lực có thể được thực hiện theo kiểu từng bước Các mô hình ước

lượng theo kinh nghiệm có thể được dùng để bổ sung cho các kỹ thuật phân rã và

đưa ra một cách tiếp cận ước lượng tiềm năng có giá trị theo đúng nghĩa của nó Một mô hình dựa trên kinh nghiệm (dữ liệu lịch sử) có dạng:

Trang 8

d = f(vi) d: là một trong một số các giá trị ước lượng (như công sức, chi phí, thời hạn

dự án )

vi: các tham biến độc lập được chọn lựa (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 người-máy tương tác, các công cụ tự động hoá đưa ra một tuỳ chọn 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 từ dữ liệu này [4]

Một dự án khi được thực hiện hoặc lập kế hoạch sẽ cần phải đánh giá được

độ lớn của nó, các tài nguyên cần thiết, lịch thực hiện và các cột mốc quan trọng như: gửi tài liệu, bắt đầu kiểm thử, bàn giao Thông thường thì giá thành và lịch trình thực hiện của một dự án thường mang tính rủi ro nhất do không được đánh giá đúng mức Một số trong các những lý do đó là:

 Giá thành và lịch trình thường được quyết định trước bởi các đối tượng ngoài

dự án như: khách hàng, chủ đầu tư…;

 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 trường hợp, 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

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 những đánh giá xuyên 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 của dự án Quy trình này cũng đồng thời cung cấp các phương pháp cho dự án cách thứ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, được thực hiện không ngừng trong thời gian thực hiện dự án Các hoạt động của nó bao gồm:

Trang 9

5 Đánh giá rủi ro;

6 Kiểm tra / xác nhận;

7 Theo dõi và báo cáo về tiến độ;

8 Đánh giá và cải tiến quy trình

Các hoạt động ước lượng kích cỡ, nỗ lực và chi phí cần được thực hiện trước khi xây dựng vì thứ tự trên là bắt buộc trong tất cả các mô hình tính toán giá thành 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ông việc xác định các nỗ lực Ngoài ra, việc sớm thiết lập bảng cấu trúc phân việc (Work Breakdown Structure - WBS) giúp việc phân chia các nỗ lực

ra các phần việc độc lập mà có thể lập lịch hoặc xét mức độ ưu tiên xem thực hiện phần việc nào trước

1.1.1 Ƣớc lƣợng kích cỡ (LOC & FP)

Kích cỡ của phần mềm thường được đánh giá bằng đại lượng số lượng dòng

mã (Source Lines of Code - SLOC) hoặc số nghìn dòng mã (Thousands of Source

Ước lượng kích cỡ Ước lượng nỗ lực/chi phí

Ước lượng lịch trình

Ước lượng hệ thống máy tính

Quản lý rủi ro

Kiểm tra/xác thực Theo dõi, báo cáo về dự án

Đánh giá và cải tiến quy trình

(ít nhất 2 người cùng tham gia xây dựng )

Trang 10

Lines of Code - KSLOC) Phần mềm thường được phát triển theo cách viết mới hoàn toàn hoặc dùng một hay nhiều module có sẵn, do vậy việc ước lượng các đoạn

mã đã có cũng cần được quan tâm như việc ước lượng các đoạn mã mới cần viết thêm Việc tích hợp các module sẵn có và có vẻ đơn giản nhưng thực sự thì các nỗ lực dành cho nó cũng không kém so với việc phát triển mới từ đầu Kích cỡ cũng có thể được đánh giá qua đơn vị điểm chức năng (Function Points) Các điểm chức năng được đánh giá dựa trên chức năng của phần mềm và thường được áp dụng trong pha tìm hiểu yêu cầu Dòng mã (LOC – Line Of Code) và điểm chức năng (FP – Function Point) là những dữ liệu cơ sở để từ đó tính ra độ đo hiệu năng Dữ liệu LOC và FP được dùng theo hai cách trong việc ước lượng dự án phần mềm như:

(1) Các biến ước lượng được dùng để lấy “kích cỡ” cho từng phần tử phần mềm

(2) Độ đo vạch ranh giới được thu thập từ những dự án quá khứ và được dùng chung với các biến ước lượng để xây dựng các dự tính chi phí và công sức

Ước lượng LOC và FP là các kỹ thuật ước lượng phân biệt, nhưng cả hai đều

có một số đặc trưng chung Người lập dự án bắt đầu với một tuyên bố về phạm vi phần mềm, từ đó, dự định 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 đó

Độ đo tính hiệu năng vạch ranh giới (như LOC/người-tháng hay FP/người-tháng) sau đó được áp dụng cho biến ước lượng thích hợp và ước lượng về chi phí và công sức từ đó được suy dẫn ra Các ước lượng chức năng con được tổ hợp lại để tạo ra một thiết kế ước lượng tổng thể cho toàn bộ dự án

Các ước lượng kỹ thuật LOC và FP khác nhau ở mức độ chi tiết cần cho việc phân rã Khi LOC được dùng như biến ước lượng thì việc phân rã chức năng thường được thực hiện cho các mức chi tiết đáng kể Vì dữ liệu cần cho việc ước lượng điểm chức năng ở mức vĩ mô hơn, nên mức độ phân rã được dùng khi FP là biến ước lượng sẽ ít chi tiết hơn Cũng cần lưu ý rằng LOC được ước lượng trực tiếp trong khi FP được xác định gián tiếp bằng cách ước lượng số cái vào, cái ra, tệp dữ liệu, câu hỏi, và giao diện ngoài kèm theo 14 giá trị điều chỉnh độ phức tạp sau:

Fi:

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?

Trang 11

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 hiện có 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 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 Cái vào, cái 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 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à biến ướ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 đã 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 ước lượng một giá trị LOC hay FP lạc quan, có thể nhất và bi quan cho từng chức năng

Giá trị kỳ vọng cho LOC hay FP sau đó được tính Giá trị kỳ vọng cho biến ước lượng, E, có thể được tính như trung bình trọng số của ước lượng LOC hay FP lạc quan (a), có thể nhất (m) và bi quan (b)

Trang 12

ta có thể tính độ lệch của ước lượng, tuy nhiên, độ lệch dựa trên một dữ liệu không chắc chắn (ước lượng) phải được dùng một cách thận trọng

Một khi giá trị kỳ vọng của biến ước lượng đã được xác định thì ta áp dụng dữ liệu hiệu năng LOC và FP 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 khác nhau:

1 Giá trị biến ước lượng toàn bộ cho tất cả các chức năng con có thể được nhân lên với độ đo hiệu năng trung bình tương ứng với biến ước lượng đó Chẳng hạn, nếu ta giả sử rằng đã ước lượng 310 FP về tổng số và hiệu năng trung bình FP dựa trên các dự án quá khứ 5.5 FP/người-tháng thì tổng công sức cho dự án sẽ là:

Công sức =

5 5

310

= 56 người-tháng

2 Giá trị biến ước lượng cho từng chức năng con có thể được nhân lên với giá trị hiệu năng được điều chỉnh dựa trên một mức độ nhận biết được về độ phức tạp của các chức năng con Đối với các chức năng có độ phức tạp trung bình người ta dùng độ đo hiệu năng trung bình Tuy nhiên nó được điều chỉnh lên hay xuống dựa trên việc cao hơn hay thấp hơn độ phức tạp trung bình đối với chức năng con đăc biệt Ví dụ, nếu độ phức tạp trung bình

là 490 LOC/người-tháng, chức năng con phức tạp hơn đáng kể so với độ trung bình đó, có thể phản ánh một hiệu năng được ước lượng chỉ vào cỡ

300 LOC/người-tháng và chức năng đơn giản là 650 LOC/người-tháng Các ước lượng này có đúng không? Câu trả lời duy nhất cho câu hỏi này là: Chúng ta không thể chắc chắn được Mọi kỹ thuật ước lượng, dù phức tạp đến đâu cũng phải được kiểm tra chéo bằng các tiếp cận khác [4]

Trang 13

Giống như kỹ thuật LOC và FP, ước lượng công sức bắt đầu với việc phác hoạ các chức năng phần mềm thu được từ phạm vi dự án Một loạt các nhiệm vụ kỹ nghệ phần mềm - phân tích yêu cầu, thiết kế, mã hoá và kiểm thử - phải thực hiện cho từng chức năng

Hình 2 Phát triển ma trận công sức - chức năng

Người lập kế hoạch ước lượng công sức (người - tháng) sẽ cần để hoàn thành từng nhiệm vụ kỹ nghệ phần mềm cho từng chức năng phần mềm 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ệ lao động sẽ thay đổi với mỗi nhiệm vụ Nhân viên cấp cao tham gia nhiều vào nhiệm vụ phân tích yêu cầu và thiết kế; nhân viên tập sự (thường lương thấp) tham gia vào các nhiệm vụ thiết kế về sau, mã hoá 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 được tính vào bước cuối Nếu ước lượng công sức được thực hiện độc lập với ước lượng LOC và FP thì bây giờ có hai ước lượng cho chi phí và công sức để so sánh và củng

cố Nếu cả hai tập các ước lượng này biểu lộ sự phù hợp hợp lý với nhau thì có lý

Trang 14

do vững chắc để tin rằng các ước lượng là tin cậy Mặt khác, nếu các kết quả của hai kỹ thuật phân rã này không chỉ ra sự phù hợp thì phải nghiên cứu thêm và phải tiến hành phân tích

Điều gì xảy ra khi thiếu sự phù hợp giữa các ước lượng? Việc trả lời câu hỏi

yêu cầu phải đánh giá lại thông tin đã dùng làm ước lượng Những ước lượng khác biệt lớn thường do hai nguyên nhân:

1 Phạm vi của dự án chức được người lập kế hoạch hiểu chưa thích đáng hoặc

bị hiểu sai

2 Dữ liệu hiệu năng được dùng trong kỹ thuật dòng mã là không thích hợp đối với ứng dụng hiện tại, đã 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ự phân tán và củng

cố lại ước lượng

1.1.3 Ƣớc lƣợng về tài nguyên

Đầu tiên là việc ước lượng về tài nguyên Hình 3 mô tả các tài nguyên cần

có cho nỗ lực phát triển phần mềm Ở đáy là các công cụ - phần cứng và phần mềm

- phải có để hỗ trợ cho nỗ lực phát triển Ở mức cao hơn tài nguyên chính là con người - yếu tố bao giờ cũng cần tớ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, phát biểu về tính có sẵn, thời gian hạn định cần có tài nguyên, thời hạn tài nguyên cần được sử dụng Hai đặc trưng cuối có thể xem như cửa sổ thời gian

Hình 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

Công cụ phần cứng, phần mềm

- Ngày bàn giao

Trang 15

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ả vị trí trong tổ chức (như người quản lý, kỹ sư phần mềm cấp cao…) và tính chuyên môn (như viễn thông, cơ sở dữ liệu, bộ vi xử lý) đề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) riêng một người có thể thực hiện tất cả các bước kỹ nghệ phần mềm, với việc tư vấn các chuyên gia cần thiết Số người cần cho dự án phần mềm có thể được xác định chỉ sau khi đã xây dựng được ước lượng nỗ lực phát triển (như người-tháng hay người-năm)

Tài nguyên phần cứng

Ngay từ đầu, chúng ta đã tham khảo tới phần cứng như là tiềm năng tính toán Bên trong vấn đề tài nguyên, phần cứng cũng là một công cụ cho việc phát triển phần mềm Có ba loại phần cứng cần phải được xem xét tới trong việc 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 (cũng được gọi là hệ thống chủ) là một máy tính và các thiết

bị ngoại vi có liên quan sẽ được dùng tới trong khi phát triển phần mềm Chẳng hạn, máy tính 32-bit có thể phục vụ như hệ thống phát triển cho một bộ vi xử lý 16-bit máy đích – trên đó phần mềm cuối cùng sẽ được thực hiện Hệ thống phát triển được dùng bởi vì nó có thể hỗ trợ cho nhiều người dùng, duy trì khối lượng thông tin lớn có thể dùng chung cho nhóm phát triển phần mềm, và hỗ trợ cho sự phân loại 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í đòi hỏi thâm nhập vào hệ thống phát triển 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 có sẵn

Tài nguyên phần mềm

Như ta dùng phần cứng làm công cụ để xây dựng phần cứng mới, chúng ta dùng phần mềm để hỗ trợ cho việc phát triển phần mềm mới Bộ dịch hợp ngữ nguyên thủy đã được viết trong ngôn ngữ máy và được dùng để phát triển nhiều trình hợp dịch phức tạp Xây dựng trên khả năng của các phần mềm phiên bản trước, người phát triển cuối cùng được chuyển sang các trình biên dịch ngôn ngữ cấp cao và các công cụ khác Bất kỳ một thảo luận nào về tài nguyên phần mềm

cũng đều sẽ không đầy đủ nếu không thừa nhận về tính sử dụng lại - tức là việc tạo

ra và dùng lại các khối xây dựng phần mềm Các khối xây dựng như vậy phải được lên danh mục cho dễ tham khảo, phải được chuẩn hoá cho dễ ứng dụng và phải được làm hợp lệ cho việc tích hợp dễ dàng Các khối phần mềm sẽ có sẵn để cho phép việc xây dựng các chương trình lớn với việc phát triển từ „tay trắng‟ ở mức tối thiểu Thư viện các phần mềm tái dụng đã có cho các ứng dụng thương mại, các hệ

Trang 16

thống và công việc thời gian thực, các vấn đề khoa học và công nghệ Tuy nhiên, còn ít có các kỹ thuật hệ thống để bổ sung cho một thư viện, các giao diện chuẩn cho phần mềm dùng lại còn khó tăng cường, vấn đề chất lượng và bảo trì cần có còn chưa được giải quyết, và điều cuối cùng, người phát triển thường không biết rằng các khối xây dựng phần mềm đã có sẵn Người lập kế hoạch phần mềm nên xem xét tới hai quy tắc khi phần mềm dùng lại được xác định 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ó Chí phí để có được phần mềm hiện có gần như bao giờ cũng ít hơn chi phí để phát triển một phần mềm tương đương

2 Nếu phần mềm hiện có đòi hỏi phải có sửa đổi nào đó trước khi nó được tích hợp đúng đắn với hệ thống thì hãy xử lý cho cẩn thận Chí phí để sửa đổi phần mềm hiện có đôi khi có thể còn lớn 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 thường hay bị bỏ qua trong khi lập kế hoạch, chỉ trở thành mối quan tâm trong giai đoạn phát triển của tiến trình kỹ nghệ phần mềm Ta nên xác định yêu cầu tài nguyên phần mềm sớ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 đúng hạn

1.2 Đánh giá chất lượng phần mềm

Đánh giá chất lượng phần mềm là một công việc khó khăn vì chất lượng phần mềm phụ thuộc vào nhiều yếu tố kể từ khi bắt tay vào xây dựng một phần mềm cho tới khi nó được bàn giao cho khách hàng và vẫn còn tiếp tục trong quá trình phần mềm đó được sử dụng

1.2.1 Các nhân tố chất lƣợng phần mềm

Các nhân tố chất lượng phần mềm được coi như những cái mốc để đánh giá

chất lượng phần mềm Các nhân tố chất lượng phần mềm được mô tả sau đây hội tụ vào ba khía cạnh quan trọng của sản phẩm phần mềm là: các đặc trưng vận hành, khả năng trải qua thay đổi, và tính thích nghi với môi trường mới Một sản phẩm phần mềm cần được xét theo các tiêu chuẩn dưới đây

Tính đúng đắn: Phần mềm thực hiện chính xác những mục tiêu và chức năng

đã đề xuất ở giai đoạn thiết kế Tính đúng đắn của phần mềm được xác minh qua những căn cứ sau:

1 Tính đúng đắn của thuật toán;

2 Tính tương đương của chương trình với thuật toán Thuật toán có thể đúng

nhưng chương trình lập ra không tương đương với thuật toán nên dẫn đến

kết quả sai Trong trường hợp này người ta nói rằng việc mã hoá bị sai;

Trang 17

3 Tính đúng đắn của chương trình có thể được chứng minh trực tiếp trong văn

bản của chương trình;

4 Tính đúng đắn của chương trình có thể được khẳng định dần dần qua việc

kiểm thử (testing), qua việc áp dụng chương trình trong một khoảng thời

gian đủ lớn trên một diện khá rộng với tần suất sử dụng cao;

5 Các tác giả của phần mềm cần cung cấp đầy đủ những luận chứng và kết

quả xác nhận tính đúng đắn của sản phẩm Những tài liệu đó bao gồm: Chương trình có kèm theo các luận đề phục vụ cho việc chứng minh, các phương pháp và kỹ thuật kiểm thử chương trình, các kết quả chạy thử, các giấy chứng nhận hay nhận xét của cá nhân đơn vị đã khảo sát và áp dụng

chương trình

Tính khoa học: Tính khoa học của sản phẩm được thể hiện qua những mặt sau

1 Khoa học về cấu trúc: Bản thân phần mềm được chia thành những đơn vị

cân đối, không trùng lập nhau về chức năng, có quan hệ hữu cơ với nhau, có thể tổ hợp thành nhiều chức năng mới Bản thân thuật toán và chương trình được thiết kế và cài đặt một cách có cấu trúc

2 Khoa học về nội dung: Các thuật toán dựa trên thành tựu mới của toán học

và tin học phải có cơ sở chặt chẽ

3 Khoa học về hình thức thao tác: Tên của các lệnh phải hợp lý, thể hiện tính

logic và phù hợp với tư duy tự nhiên của người dùng Ví dụ: một hệ thống biểu thị cả tiếng Anh, tiếng Việt lẫn lộn sẽ được xem là vi phạm tính khoa học về hình thức Trong trường hợp như vậy cách giải quyết tốt nhất là là thiết kế hai chế độ giao tiếp một bằng tiếng Anh, một bằng tiếng Việt Ví dụ: Các thông báo lỗi phải rõ ràng và bao gồm các chú giải sau: lỗi số mấy,

nội dung lỗi, nơi xảy ra lỗi, cách giải quyết

Tính hữu hiệu: Tính hữu hiệu của một sản phẩm được xác định qua những tiêu

chuẩn sau:

1 Hiệu quả kinh tế, ý nghĩa hoặc giá trị thu được do áp dụng sản phẩm đó;

2 Tốc độ xử lý của sản phẩm (v) tính bằng tỉ lệ giữa khối lượng đối tượng xử

lý (m) và tổng số đơn vị thời gian cần thiết để xử lý khối lượng trên (t): v=m/t;

3 Giới hạn tối đa của sản phẩm hoặc miền xác định của chương trình được xác

định ua khối lượng tối đa của các đối tượng mà sản phẩm đó quản lý;

4 Dung lượng bộ nhớ mà tối đa trong RAM mà chương trình sử dụng;

Trang 18

Tính sáng tạo: Tính sáng tạo của sản phẩm phần mềm thể hiện qua các đặc

điểm sau:

1 Sản phẩm đó được thiết kế và cài đặt lần đầu tiên trên thế giới ;

2 Sản phẩm được sản xuất phục vụ cho những đặc thù riêng của Việt Nam Ví

dụ: bộ xử lý văn bản tiếng Việt, bộ chương trình nhận dạng các loại men gốm, hoa văn trang trí…;

3 Sản phẩm phần mềm có những điểm khác về mặt nguyên lý so với các sản

phẩm hiện hành;

4 Sản phẩm đó có những ưu thế nổi bật so với các sản phẩm cùng loại hiện

hành;

Tính an toàn: Sản phẩm trong trường hợp cần thiết có cơ chế bảo mật và

bảo vệ các đối tượng do nó phát sinh hay quản lý Bản thân sản phẩm cũng cần được đặt trong một cơ chế bảo mật nhằm chống sự sao chép trộm hoặc làm biến dạng sản phẩm đó

Tính toàn vẹn: Tính toàn vẹn của sản phẩm thể hiện qua những chức năng

sau:

1 Không gây ra nhập nhằng trong thao tác, đảm bảo tính nhất quán về cú pháp,

có cơ chế ngăn ngừa việc phát sinh ra những đối tượng sai quy cách hoặc mâu thuẫn với các đối tượng có sẵn (dữ liệu, đơn thể…);

2 Có cơ chế khôi phục lại toàn bộ hoặc một phần những đối tượng thuộc diện

quản lý của sản phẩm trong trường hợp có sự cố như hỏng máy, mất điện đột ngột…;

Tính đầy đủ: Tính đầy đủ của một sản phẩm được đánh giá thông qua tập

các chức năng mà sản phẩm đó cung cấp Tập các chức năng cần và nên thoả mãn các tính chất sau:

1 Tính đối xứng: Nếu có thao tác phát sinh thì nên có thao tác huỷ bỏ và ngược

lại Ví dụ: Một hệ thống quản lý các bảng điện tử đã có thao tác thêm một số cột vào bảng hiện có thì cần có thêm thao tác đối xứng là xoá một số cột từ bảng hiện có;

2 Tính tiêu chuẩn: Sản phẩm phần mềm cần đạt được một số tiêu chuẩn tối

thiểu được thừa nhận trên thị trường thế giới hoặc trong khoa học Ví dụ: một hệ quản lý tệp cần có các chức năng tối thiểu sau: Tạo các tệp, Huỷ bỏ các tệp, Sao chép các tệp, Tổ chức thư mục cho các tệp, Cập nhật dữ liệu vào tệp, Quản lý được nhiều loại tệp (tệp văn bản, tệp chương trình, tệp dữ liệu…), các lệnh thao tác tệp có thể hoạt động đơn lẻ nhưng cũng có thể

nhúng vào các ngôn ngữ lập trình cao cấp…

Trang 19

Tính độc lập: Sản phẩm phần mềm cần và nên đảm bảo tính độc lập với các

đối tượng sau:

1 Độc lập đối với thiết bị Sản phẩm có thể cài đặt dễ dàng trên nhiều loại máy

và có thể quản lý được nhiều thiết bị đi kèm với máy Những sửa đổi để thích nghi là không đáng kể;

2 Độc lập với cấu trúc của đối tượng mà sản phẩm đó quản lý Ví dụ: Một hệ

quản trị CSDL có tính độc lập cao sẽ không đòi hỏi người dùng phải viết lại chương trình ứng dụng khi chuyển từ việc quản lý các tệp tuần tự sang các tệp tuần chỉ và ngược lại;

3 Độc lập với nội dung của đối tượng mà sản phẩm đó quản lý Ví dụ: đơn thể

COPPY có thể sao chép các tệp không phục thuộc gì vào nội dung cụ thể của các tệp đó ra sao (rỗng hay không rỗng, lưu văn bản hay chương trình, lưu

mã nhị phân hay mã trung gian…)

Tính phổ dụng: Sản phẩm phần mềm có thể áp dụng cho nhiều lĩnh vực cho

nhiều chế độ làm việc khác nhau

Tính đơn giản: Sản phẩm có tính đến những yếu tố tâm lý sau đây của đông

1.2.2 Đánh giá thông qua tính đúng đắn

Một chương trình phần mềm phải vận hành đúng nếu không nó sẽ ít giá trị đối với người sử dụng Tính đúng đắn là mức độ mà các phần mềm thực hiện được chức năng được trông đợi ở nó Cách đo thông dụng nhất cho tính đúng đắn là số khiếm khuyết theo KLOC, với số khiếm khuyết được định nghĩa như việc thiếu tuân thủ theo yêu cầu đã được kiểm chứng Khiếm khuyết do người dùng báo cáo lại về chương trình sau khi đã được xuất xưởng để dùng đại trà và được tính theo từng thời kì chuẩn, điển hình là 1 năm

1.2.3 Đánh giá thông qua tần suất bảo trì

Việc bảo trì phần mềm ngốn nhiều công sức hơn bất kì hoạt động kỹ nghệ phần mềm nào khác Tính bảo trì được thể hiện thông qua một số yếu tố chính:

- Có thể chỉnh sửa được nếu phát sinh lỗi trong quá trình sử dụng;

Trang 20

- Có thể thích nghi khi môi trường thay đổi;

- Có thể nâng cấp được do yêu cầu cụ thể đặt ra

Tuy nhiên việc đo trực tiếp tính bảo trì là hoàn toàn không khả thi, do vậy phải dùng một cách đo gián tiếp Một khoảng thời gian trung bình được đề xuất cho mỗi phần mềm Khoảng thời gian này cần cho việc phân tích sự thay đổi yêu cầu, thiết kế sửa đổi thích hợp, cài đặt sự thay đổi và kiểm thử nó

1.2.4 Đánh giá thông qua tính toàn vẹn

Tính toàn vẹn của phần mềm được thể hiện bằng khả năng trụ được của nó đối với sự tấn công (cả ngẫu nhiên lẫn có chủ định) vào sự an toàn của nó Những

sự công kích có thể được tiến hành trên ba thành phần phần mềm:

- Chương trình;

- Dữ liệu;

- Tư liệu

Để đo tính toàn vẹn của một phần mềm cần xác định hai thuộc tính phụ:

- Sự đe doạ: “Đe doạ là xác suất để cho việc công kích sẽ xuất hiện trong thời gian đã nêu”;

- Độ an toàn: “Độ an toàn là xác suất rằng sự công kích sẽ bị đẩy lùi”

Cả hai thuộc tính đã nêu ở trên có thể được ước lượng hay suy dẫn từ kinh nghiệm

Ta có công thức về tính toàn vẹn như sau:

Tính toàn ven= [ 1-đe doạ (1-an toàn) ] 1.2.5 Đánh giá dựa trên khả năng tiếp cận người dùng

Sự thành công của một sản phẩm phần mềm phụ thuộc rất nhiều vào yếu tố

“thân thiện” đối với người sử dụng Dù cho phần mềm được xây dựng với rất nhiều tính năng có giá trị, tuy nhiên việc người dùng khó tiếp cận với phần mềm đó thì hậu quả tất yếu là phần mềm đó sẽ thất bại Tính “thân thiện”có thể được đo dưới bốn dạng đặc trưng:

- Kĩ năng vật lý (và/hoặc trí tuệ để học hệ thống);

- Thời gian cần thiết để người dùng tiếp cận hiệu quả với hệ thống;

- Sự tăng lên rõ rệt về mặt hiệu năng (so với cách tiếp cận mà hệ thống thay thế);

- Một xác nhận chủ quan (có thể thông qua bảng hỏi)

Bốn nhân tố ở trên chỉ là một cách lấy mẫu cho những điều đã được đề nghị

là cách đo cho chất lượng phần mềm

Trang 21

CHƯƠNG 2 KỸ THUẬT ƯỚC LƯỢNG DỰ ÁN PHẦN MỀM

Phương pháp Function Points và Use Cases Points là hai phương pháp được

sử dụng rộng rãi nhất hiện nay để ước lượng nguồn lực cho việc phát triển một phần mềm

Function Point (FP) là phương pháp ước lượng được phát triển bởi Allan Albrecht và được ban bố rộng rãi vào năm 1979, cung cấp độ đo được ứng dụng chung và không phụ thuộc vào công nghệ được sử dụng cho việc phát triển phần mềm Function Point là một phương pháp chuẩn để tính kích thước phần mềm dựa trên việc phân tích các chức năng mà phần mềm đó phải thực hiện

Phương pháp Use Cases Points (UCP) là phương pháp do hãng Rational giới thiệu, dùng để xác định kích thước một phần mềm đặc biệt là đối với phần mềm dùng ngôn ngữ hướng đối tượng trong phân tích, thiết kế và xây dựng Trên thực tế

có một mối quan hệ giữa các use case và code vì các use case phức tạp thường sẽ tốn nhiều thời gian để code hơn UCP dựa trên việc xác định độ phức tạp của các Actor và các giao dịch trên mỗi Use Cases Các điểm mà phương pháp UCP quan tâm khi ước lượng kích thước phần mềm là:

 Số lượng và độ phức tạp của các Use case trong hệ thống;

 Số lượng và độ phức tạp của các Actor (thực hiện) trong hệ thống;

 Các yêu cầu non-functional khác như (ngôn ngữ lập trình, động lực của nhóm phát triển,…);

 Môi trường để phát triển hệ thống (ngôn ngữ lập trình, động lực của nhóm phát triển,…)

2.1.1 Giới thiệu

[2] Mô hình điểm chức năng được ra đời vào năm 1979 tác giả Allan Albrecht và năm 1984, Nhóm những người sử dụng điểm chức năng quốc tế (Internatinal Function Point Users Group – IFPUG) đã đưa ra cách rõ ràng các quy tắc, thiết lập các chuẩn cho việc sử dụng mô hình này Phân tích điểm chức năng (Function Point Analysis – FPA) cung cấp một phương pháp luận tiêu chuẩn cho việc ước lượng các chức năng của ứng dụng phần mềm FPA đo các chức năng từ quan điểm của người sử dụng, dựa chính vào các yêu cầu của người dùng Các điểm chức năng đạt được bằng việc đo những ứng dụng phần mềm từ hai dạng sau :

 Kích cỡ của các yêu cầu chức năng, được tính bằng cách gán trọng số cho mỗi chức năng đã rõ Sau đó ta tính được đại lượng Điểm chức năng chưa được hiệu chỉnh (Unadjusted Function Points – UFP) ;

Trang 22

 Tính đại lượng Nhân tố hiệu chỉnh giá trị (VAF – Value Adjustment Factor), nhân tố này phản ánh đặc tính của hệ thống phần mềm đang xây dựng chẳng hạn như độ phức tạp môi trường, độ phức tạp của ứng dụng hay ta còn gọi là các yêu cầu phi chức năng

Sự xuất hiện của kỹ thuật điểm chức năng đã cho phép cộng đồng công nghệ tin học - viễn thông gia tăng đáng kể khả năng áp dụng phép đo phần mềm so với việc sử dụng phương pháp dòng mã truyền thống Nhưng việc tính điểm chức năng đòi hỏi phải thực hiện một mức lập tài liệu mô tả hoàn thiện và chi tiết Có ít nhất hai tình huống mà trong đó phương pháp ước tính (một phương pháp tương thích nhưng có thể thay thế cho các quy tắc tiêu chuẩn đối với điểm chức năng) có thể có tính quyết định Trường hợp đầu tiên xảy ra khi một dự án phát triển hoặc tăng cường đang trong giai đoạn ban đầu mà đơn giản là không thể thực hiện phép tính điểm chức năng theo các tiêu chuẩn IFPUG (tức là trong nghiên cứu khả thi) Trường hợp thứ hai xảy ra khi cần ước tính tài sản phần mềm hiện có, nhưng không

có tài liệu hoặc thời gian cần thiết và nguồn lực để thực hiện phép tính điểm chức năng chi tiết Căn cứ trên những tình huống này và các tình huống tương tự, nhu cầu

về các phương pháp ước tính - không phải là tính - các điểm chức năng đã phát sinh

từ các tổ chức tham gia kinh doanh phần mềm Tài liệu kỹ thuật đưa ra một số phương pháp ước tính mà có thể được kiểm tra và so sánh Vì vậy, phần này trình bày các đặc điểm của một số phương pháp đáng chú ý (các điểm chức năng sớm, các mô hình ILF đem lại kết quả trái ngược) và cả mô hình đánh giá so sánh chung theo điểm chuẩn, hữu ích cho việc đánh giá các phương pháp bổ sung

FP - điểm chức năng: là thước đo kiểu hàm được sử dụng rộng rãi nhất, thích hợp cho việc xác định kính cỡ của ứng dụng phần mềm Nó dựa trên năm hàm lôgic

có thể được người sử dụng xác định, chia thành hai kiểu hàm dữ liệu và ba kiểu hàm giao dịch (bảng 1) Đối với một ứng dụng phần mềm đã cho, mỗi phần tử trong bảng này sẽ được xác định kích thước và mức độ quan trọng, có tính đến các phần

tử đặc trưng của nó, ví dụ các tham chiếu tệp hoặc các trường lôgic [2]

Bảng 1 Chỉ số độ phức tạp với số UFP tương ứng

Các số thu được (UFP - FP không điều chỉnh) được xếp vào các bộ hàm bổ sung, thay đổi hoặc xoá và được kết hợp với hệ số điều chỉnh giá trị (VAF) để thu

Trang 23

được số cuối cùng của FP Một công thức riêng cuối cùng được sử dụng cho từng kiểu tính: ứng dụng, dự án phát triển hoặc dự án tăng cường

2.1.2 Tính hay ƣớc tính

Nhìn chung, sự phân tích FP được coi là kỹ thuật xác định kích thước phần mềm sớm và hiệu quả Nhưng nếu xem xét các cách tính IFPUG tiêu chuẩn thì nó ngụ ý bao hàm một bộ tài liệu mô tả đầy đủ và chi tiết về những yêu cầu hàm của người sử dụng đối với ứng dụng bất cứ phần mềm cần được đo nào

Có ít nhất hai tình huống mà trong đó phương pháp ước tính (một phương pháp tương thích nhưng có thể thay thế cho các quy tắc tiêu chuẩn đối với FP) có thể có tính quyết định Trường hợp đầu tiên xảy ra khi một dự án phát triển hoặc tăng cường ở trong giai đoạn ban đầu mà đơn giản là không thể thực hiện phép tính

FP theo các tiêu chuẩn IFPUG (tức là trong nghiên cứu khả thi) Trên thực tế, việc tính tiêu chuẩn đòi hỏi phải xác định các phần tử, mà không phải luôn luôn có thể được xác định khi bắt đầu dự án, nhưng đó là khi mà yêu cầu dự báo công sức, thời gian và chi phí dựa trên sự ước tính kích thước chắc chắn sẽ lớn hơn so với vào lúc kết thúc giai đoạn xác định đặc điểm chức năng Trường hợp thứ hai xảy ra khi cần ước tính tài sản phần mềm hiện có, nhưng không có tài liệu hoặc thời gian cần thiết

và nguồn lực để thực hiện phép tính FP chi tiết.(2.1.1)

Ngoài quá trình đo tiêu chuẩn một cách chính xác, mà nên luôn luôn thực hiện khi có thể được, các phương pháp ước tính khác nhau đã được đề xuất để đáp ứng nhu cầu đánh giá kích thước của dự án phần mềm càng sớm càng tốt hoặc với việc sử dụng các nguồn lực càng ít càng tốt: "ước tính" có nghĩa là sử dụng ít thời gian và công sức hơn để thu được giá trị xấp xỉ của FP Những ưu điểm của kỹ thuật ước tính rõ ràng là đối lập với độ chính xác nhỏ hơn không thể tránh khỏi khi khảo sát các FP, nhưng khía cạnh này thường được bản thân những người sử dụng phương pháp tự đánh giá

Vì vậy, chúng ta cần luôn luôn phân biệt rõ giữa các thuật ngữ và khái niệm khác nhau: "Tính FP", có nghĩa là đo kích thước phần mềm bằng cách sử dụng các phương pháp IFPUG tiêu chuẩn như thông thường, trong khi đó "ước tính FP" có nghĩa là đánh giá gần đúng cũng kích thước đó nhờ các phương tiện khác

2.1.3 Mô hình điểm chức năng

Các Chức năng trong mô hình

Mô hình FP xác định 5 kiểu chức năng cơ sở để ước lượng quy mô của phần mềm Hai kiểu chức năng dữ liệu là các file logic trong (ILF) và các file giao diện ngoài (EIF) và 3 kiểu chức năng giao tác còn lại là các dữ liệu đầu vào ngoài (EI),

dữ liệu đầu ra ngoài (EO) và các phần hỏi đáp ngoài (EQ)

Để lựa chọn mô hình FP, việc tính toán điểm chức năng của dự án duy trì và tăng cường phần mềm gồm 3 thành phần chức năng: (l) chức năng ứng dụng nằm

Trang 24

trong phần yêu cầu đối với người sử dụng trong dự án; (2) chức năng chuyển đổi; và (3) thừa số điều chỉnh giá trị (VAF)

Chức năng ứng dụng bao gồm các điểm chức năng được bổ sung, thay đổi và xoá bởi dự án bảo trì Chức năng chuyển đổi bao gồm các điểm chức năng được cấp phát bởi một quá trình chuyển đổi Thừa số điều chỉnh giá trị (VAF) dựa trên cơ sở

14 đặc tính trọng lượng Mức độ ảnh hưởng nằm trong khoảng từ 0 đến 5, từ không ảnh hưởng đến ảnh hưởng mạnh

Công thức cho tính toán điểm chức năng dự án bảo trì và tăng cường phần mềm được xác định như sau:

EFP = (ADD + CHG + CFP) x VAFa + (DEL x VAFb) (3.1) Trong đó, EFP điểm chức năng dự án tăng cường phần mềm, bổ sung (ADD), thay đổi (CHG), xoá bỏ (DEL)

Các điểm chức năng được tính toán như là chức năng ứng dụng và CFP có nghĩa là điểm chức năng không được điều chỉnh được bổ sung bởi quá trình chuyển đổi VAFa và VAFb thừa số điều chỉnh giá trị của ứng dụng tuần tự sau và trước dự

án

Các Counts điểm chức năng là một phép đo kích cỡ phần mềm ưu tiên phù hợp hơn so với các dòng mã lệnh Điểm chức năng hiện tại là kích cỡ chức năng đo được sử dụng thường xuyên nhất và nó tiếp tục đạt được sự gắn kết trong trường hệ thống thông tin quản lý và đã chứng tỏ thành công trong xây dựng các mô hình hiệu suất và dự toán chi phí dự án

Tuy nhiên, thừa số điều chỉnh giá trị (VAF) của mô hình này được giới thiệu nguyên bản cho một dự án phát triển phần mềm mới

Có một vài ví dụ về thừa số điều chỉnh giá trị (VAF) như là truyền đạt dữ

liệu, xử lý phân phối và thực thi, v.v Các thừa số này không thể áp dụng trong môi

trường bảo trì và không thể đo lường bằng cách nhìn khách quan [2]

Các thừa số hiệu suất về việc duy trì phần mềm

Nhìn chung, các chi phí bảo trì khó dự toán, bởi các chi phí này liên quan đến số lượng sản phẩm, quy trình và các thừa số tổ chức liên quan đến hiệu suất bảo

trì phần mềm

Một vài mô hình không phân biệt các thừa số hiệu suất của việc bảo trì phần mềm với các thừa số hiệu suất của phát triển phần mềm Tuy nhiên, các thừa số hiệu suất của bảo trì phần mềm khác với các thừa số hiệu suất của phát triển phần mềm

Bộ phận điều khiển chi phí duy trì lớn gắn liền với kích cỡ, tuổi thọ và tính phức tạp Sommerville quả quyết rằng các thừa số hiệu suất liên quan đến môi trường bảo trì phần mềm có thể bao hàm các đặc tính như là độc lập về module,

ngôn ngữ lập trình, kiểu lập trình

Trong năm 1985, từ những nghiên cứu về hiệu suất phần mềm (SPR) đã giới thiệu một cách mới trong tính toán các điểm chức năng Kỹ thuật nghiên cứu hiệu

Trang 25

suất phần mềm nhằm xử lý tính phức tạp là phải tách tính phức tạp tổng thể thành 3 phạm vi riêng biệt: Tính phức tạp thuộc về vấn đề, tính phức tạp mã và tính phức tạp dữ liệu Theo cách này, nỗ lực hoàn thiện các phép tính cũng có thể được giảm xuống

Các bảng câu hỏi trong quá trình nghiên cứu đã yêu cầu thu thập những thông tin về các đặc tình môi trường gồm cả các ràng buộc về kỹ thuật (thời gian đáp ứng, an ninh, số lượng người từ dụng, nền), dụng cụ và kỹ thuật bảo trì (phương pháp luận phát hiện, các dụng cụ tình huống) và các thừa số liên quan đến nhân sự (số lượng lập trình viên, kinh nghiệm) Trong các triển vọng của sản phẩm phần mềm, quy mô của cả hiểu biết về phần mềm và kiểm tra giao điện module có thể giảm xuống bởi kết cấu phần mềm tốt, bởi vì kết cấu dạng module và thứ bậc có thể giảm được số lượng giao diện cần kiểm tra

Vì vậy, các đặc tính khác nhau có ảnh hưởng đến hiệu năng phần mềm cần phải được gạn lọc

Mô hình đánh giá nỗ lực bảo trì dự án

Cách lựa chọn này diễn giải về mô hình đánh giá nỗ lực dự án bảo trì phần mềm (SMPEEM) Sau khi giới thiệu phương pháp, quy trình tính toán và điều chỉnh các điểm chức năng được giải thích Cuối cùng, các điểm chức năng đã được điều chỉnh được áp dụng trong đánh giá nỗ lực bảo trì phần mềm bằng cách sử dụng mô hình SMPEEM

Hình 4 Khái niệm SMPEEM được đề xuất

Tính toán trỏ

chức năng

Điều chỉnh trỏ chức năng

Đánh giá dự án bảo trì

Không được điều chỉnh Điểm

chức năng

Được điều chỉnh Điểm chức năng

Trang 26

Kiểu chức năng Giá trị trọng lƣợng theo tính phức tạp chức năng (W)

Bảng 2: Bảng tính toán điểm chức năng không được điều chỉnh

Một mô hình chức năng theo luật số mũ có thể đánh giá cần phải nỗ lực đến mức độ nào trong dự án bảo trì phần mềm

Tính toán các điểm chức năng

Các điểm chức năng với mỗi siêu loại ứng dụng cần phải được đếm để ước lượng quy mô của dự án bảo trì Có 3 kiểu loại duy trì ứng dụng như: Bổ sung, thay đổi và xoá bỏ Quy tắc đếm điểm chức năng được sử dụng như trong mô hình của tổ chức những người sử dụng điểm chức năng quốc tế (IFPUG)

Kỹ năng của kỹ sư Tri thức của miền ứng dụng

Hiểu biết ngôn ngữ lập trình Kinh nghiệm với phần mềm hệ thống (OS, DBMS)

KAD FPL ESS

Các đặc tính kỹ thuật Kết cấu của các module phần mềm

Độc lập giữa các module phần mềm Tính dễ thay đổi/đọc được của ngôn ngữ

CT

Có thể dùng lại các module phần mềm kế thừa

SSS ISM CRP RLS

Môi trường duy trì Cập nhật tài liệu

Tuân theo tiêu chuẩn kỹ thuật phần mềm

Dễ dàng thử nghiệm

DOC SES

TST

Bảng 3 Các thừa số điều chỉnh giá trị

Một kiểu loại bảo trì ứng dụng có thể nằm trong số 3 kiểu loại chức năng sau: ILF, EIF, EI, EO, hay EQ Mỗi kiểu loại này được đánh giá riêng biệt về tính phức tạp và được đưa ra những giá trị trọng lượng biến đổi từ 3 (đối với EIs đơn giản) đến 15 (đối với ILFs phức tạp) như được trình bày trong Bảng 2

Trang 27

Đếm chức năng không điều chỉnh (FC) được tính toán bằng cách nhân mỗi count thô với trọng lượng ước tính (W):

FC = SoLuongChu cNang W

cNang CacKieuChu

*

Trong đó, FC là điểm chức năng được đếm và W là giá trị đo trọng lượng phức tạp của mỗi kiểu loại chức năng

Điều chỉnh các điểm chức năng

Các thừa số điều chỉnh giá trị

10 thừa số điều chỉnh giá trị (VAFs) được bổ sung để sửa đổi Trong mô hình SMPEEM, 3 kiểu trong số các VAFs gồm: (1) kỹ sư được coi như là triển vọng của

"con người"; (2) tính kỹ thuật được coi như là triển vọng của sản phẩm; (3) các đặc tính môi trường bảo trì được coi như là triển vọng của quy trình

Nhóm đặc tính đầu tiên là kỹ năng của kỹ sư cần thiết cho bảo trì phần mềm, bao gồm 3 nhân tố như: Tri thức của miền ứng dụng, hiểu biết ngôn ngữ lập trình và kinh nghiệm đối với phần mềm hệ thống (OS, DBMS) Các nhân tố này mô tả mức

độ năng lực của nhân viên bảo trì Nếu miền ứng dụng được hiểu rõ, các yêu cầu của hệ thống có thể được phân tích dễ dàng Hơn nữa, các nhân tố kinh nghiệm ứng dụng, kinh nghiệm ngôn ngữ và công cụ và kinh nghiệm nền đo lường hiệu năng của COCOMO 2.0

Nhóm đặc tính kỹ thuật thứ hai chứa dựng 4 nhân tố, đó là: Cấu trúc của module phần mềm, tính độc lập của module phần mềm, tính dễ thay đổi/đọc được của ngôn ngữ chương trình và có thể dùng lại các module phần mềm kế thừa Các nhân tố này đại diện cho trạng thái của các module chương trình Khi phần mềm được bảo trì cấu trúc của nó bị suy biến Các nhân tố thời gian ứng dụng và tính có thể dùng lại được chấp nhận như là các chỉ tiêu đo hiệu năng bề mặt kỹ thuật của phần mềm

Nhóm đặc tính cuối cùng môi trường bảo trì bao gồm các nhân tố tính cập nhật tài liệu, tuân theo các tiêu chuẩn kỹ thuật phần mềm và dễ dàng thử nghiệm các nhân tố này liên quan nhiều hơn đến quy trình bảo trì Tài liệu phù hợp với các nhu cầu vòng đời; tính thuần thục của quy trình và dễ dàng thử nghiệm được tham chiếu như là các nhân tố hiệu năng để giảm chi phí bảo trì

Mười nhân tố này được lựa chọn tập trung vào triển vọng của các nhà quản

lý dự án bảo trì Nhằm điều chỉnh điểm chức năng sau khi đếm nó, như được trình bày trong Hình 4, một vài nhân tố liên quan đến các chỉ tiêu do quy mô của các dự

án bảo trì phải được loại trừ; chẳng hạn như, lưu lượng bảo trì, kích cỡ của hệ thống phần mềm hay cơ sở dữ liệu Bởi vì SMPEEM tập trung vào đánh giá các nỗ lực trong giai đoạn này, một vài nhân tố liên quan đến đo lường ước lượng sản lượng cũng phải được loại trừ: Ví dụ quy mô của các nỗ lực yêu cầu hay nhóm Một vài

Trang 28

nhân tố liên quan đến các đặc tính tổ chức bảo trì cho nguồn ra cũng có thể được loại trừ bởi chúng ta chỉ xem xét các dự án bảo trì nội bộ Chúng ta không tính đến các nhân tố liên quan đến công cụ bảo trì, bởi vì các tổ chức đáp ứng không sử dụng một công cụ bảo trì tự động nào

Phương pháp điều chỉnh

Điểm chức năng không điều chỉnh được nhân với thừa số điều chỉnh giá trị (VAF) để tạo ra điểm chức năng cuối cùng Trong mô hình SMPEEM, ba nhóm đặc tính trong số 10 VAFs có giá trị trọng lượng lần lượt cho mỗi nhóm và cho mỗi thừa

1 hom n

k

1 thuaso

)]

100

Wf ( ) 100

tyoxWf (

5000

d 2 ( ) 100

FP = FC x [0.80 + (0.008 x VAF)] (3.5)

Từ phương trình (3.5), chúng ta có các FPS được điều chỉnh có thể được dùng để tính toán nỗ lực bảo trì phần mềm ước lượng Trong trường hợp VAF =0, FP được tính bằng 80% các counts chức năng không được điều chỉnh

Ngược lại, VAF tối đa (50) cung cấp 120% các counts chức năng không được điều chỉnh tới các FPs cuối cùng

Vì thế, phương trình (3.4) cho chúng ta biết các FPs được điều chỉnh thông qua các dải điều chỉnh khác nhau

Trang 29

Đánh giá nỗ lực bảo trì dự án

Các mô hình ước lượng chi phí phần mềm thường có một thừa số theo luật số

mũ các tính toán các chỉ tiêu tiết kiệm hay không tiết kiệm liên quan về tỷ lệ khi một dự án phần mềm tăng quy mô Thừa số này nhìn chung được đại diện như số

T - thử nghiệm (df = 31)

95% khoảng tin cậy của chênh lệch

Trong đó, các hằng số a và b là các hệ số có thể được giới thiệu từ kết quả hồi quy

Do vậy, nếu FP và VAF bất kỳ dự án bảo trì nào được biết đến, nỗ lực bảo trì có thể được ước lượng theo phương trình (3.6)

2.1.4 Các bước thực hiện

[2] Phương pháp tính số điểm chức năng sử dụng phân tích điểm chức năng được thực hiện qua 5 bước dưới dây:

Bước 1 Phân loại

Phân loại chức năng

Công việc: phân loại các yêu cầu ứng dụng thành các loại chức năng khác nhau, xác

định độ phức tạp của nó và gán giá trị điểm chức năng

Trang 30

Phương pháp FPA phân loại các yêu cầu chức năng của ứng dụng thành năm loại, đó là:

Các chức năng về dữ liệu:

- Internal Logical Files (ILF) - Gồm các file logic được quản lý bởi ứng dụng,

ví dụ như các bảng của CSDL Khái niệm "file" ở đây cần cần được hiểu là một nhóm dữ liệu thường được truy cập cùng với nhau

- External Interface File (EIF) - Gồm các file của các ứng dụng khác được ứng dụng truy xuất đến Ví dụ như bảng nhân viên của hệ thống nhân sự bị truy xuất bởi

hệ thống kế toán, bảng nhân viên là EIF của hệ thống kế toán

Các chức năng về dữ liệu xét dữ liệu ở trạng thái tĩnh Chúng còn được gọi là

kiểu file được tham chiếu (FTR's)

Các chức năng về giao dịch:

- External Inputs (EI) - Là các chức năng nhập dữ liệu, có thể có ảnh hưởng đến một hay nhiều ILE Ví dụ: Nhập chứng từ Trong thực tế, một ứng dụng sẽ có một số lượng rất lớn EI Đây là cách để ứng dụng nhận thông tin hoặc thay đổi hành

vi

- External Outputs (EO) - Là các chức năng cung cấp dữ liệu cho người dùng, thông thường là các báo cáo nghiệp vụ

- External Inquiries (EQ) - Gồm các chức năng tra cứu, trợ giúp, v.v Các

chức năng này chỉ cung cấp thông tin chứ không làm thay đổi các file

Các chức năng về giao dịch xét dữ liệu ở trạng thái động

Mỗi yêu cầu của hệ thống, bao gồm cả các cấu trúc lưu trữ (ví dụ như các thực thể, các tiến trình, đầu ra hay truy vấn) thường được xác định ở giai đoạn đầu của cả tiến trình dự án thông qua quá trình đàm phán với khách hàng, phân tích yêu cầu

Truy vấn

Người dùng

Các điểm chức năng

là các tính năng mà ứng dụng cung cấp, nhìn từ quan điểm của người sử dụng

Hình 5 Phân loại chức năng

Trang 31

người sử dụng, hoặc do khách hàng cung cấp Các yêu cầu này sẽ đều có thể thuộc một trong năm loại chức năng ở trên

*Hướng dẫn phân loại chức năng:

- Tất cả các file hoặc bảng của CSDL của ứng dụng (kể cả bảng danh mục hay bảng giao dịch) mà yêu cầu Thêm mới/sửa/xóa, đều được coi là ILE, loại trừ các

file làm việc (work files) hay các file tạm trong quá trình tạo báo cáo v.v

- Tất cả các file hoặc các bảng của CSDL của các ứng dụng khác (thường là các file giao diện hoặc bảng) mà ứng dụng dang xét truy xuất đến được coi là các EIF Các ILF của các ứng dụng khác được sử dụng bởi hệ thống cũng được coi là các EIF của hệ thống

- Tất cả các thao tác mà chúng chấp nhận dữ liệu từ ngoài hệ thống vào được coi là EI Dữ liệu có thể là thông tin điều khiển hoặc thông tin tác nghiệp Nếu dữ

liệu là thông tin điều khiển, nó không nhất thiết phải cập nhật một ILF

- Tất cả các báo cáo nghiệp vụ được coi là EO Các EO không làm thay đổi đến các ILF Chúng là các dữ liệu được sinh ra và đưa ra ngoài phạm vi của ứng dụng

Chúng là các dữ liệu được sinh ra và đưa ra ngoài phạm vi của ứng dụng

- Tất cả các tiến trình có kết hợp cả dữ liệu Vào - Ra mà kết quả là dữ liệu được truy vấn ra và không làm thay đổi ILF được gọi là EQ Tất cả các truy vấn nghiệp vụ, trợ giúp cũng được coi là EQ

Để giúp phân biệt rõ ràng hơn giữa EO và EQ, IFPUG phiên bản 4.1 đã có một số thay đổi nhỏ trong cách xác định Đó là, nếu giao dịch có lấy về dữ liệu hoặc cập nhật một ILF thì nó được coi là một EO; nếu không, nó được coi là một EQ

Hướng dẫn xác định các tham số cần thiết cho việc đánh giá độ phức tạp Các tham số đó là:

- Loại bản ghi - Record Element Type (RET)

- Tệp dữ liệu được tham chiếu - File Type Referenced (FTR)

- Trường dữ liệu được tham chiếu - Data Element Type (DET)

Trang 32

Loại chức năng Các tham số Hướng dẫn

ILF và EIF Số loại bản ghi (RET) Đếm số loại bản ghi (RET)

Coi mỗi nhóm dữ liệu là một loại bản ghi Ví dụ:

Purchase Orders RET #1

Purchase Orders No, Data, Supplier Name, Order Value

RET #2 Item Code, Unit Of Measure, Quality Ordered, Rate, etc

RET #3 Item Code, Delivery Schedules

Số trường dữ liệu được tham chiếu (DET)

Đếm số trường dữ liệu được tham chiếu (DET)

Là trường duy nhất con người có thể nhận biết trong ILF không đếm các trường là khoá liên kết, không đếm lặp lại đối với các nhóm dữ liệu

EI Các file dữ liệu được

Số trường dữ liệu được tham chiếu (DEL) là những trường duy nhất

có thể nhận biết trong ILF, được cập nhật bởi

EI

Đếm DET Các trường dự liệu được nhập vàp mang một ý nghĩa nào đó về nghiệp

vụ được coi là một DET Không đếm các thông báo lỗi hoặc các thông báo nhắc trên màn hình Nếu các dữ liệu này được lưu trữ vật

lý tại nhiều nơi thì cũng chỉ coi như một DET

EO Các file dữ liệu được

tham chiếu (DET)

ILF hay EIF được đọc để hoàn thành

EO

Trang 33

Số trường dữ liệu được tham chiếu

Trường duy nhất xuất hiện trong EO

EQ Các file dữ liệu được

tham chiếu (EIF) Các ILF hoặc EIF được đọc

Đếm FTR Đếm các FTR vào và độc lập với nhau

Số trường dữ liệu được tham chiếu (DET)

Đếm các trường duy nhất xuất hiện trong EQ

Bảng 2.5: Hướng dẫn xác định các tham số cần thiết

Cách thức xác định độ phức tạp của một loại chức năng

Sau khi xác định các tham số để tính độ phức tạp: RETs, FETs, DETs của mỗi chức năng, sử dụng bảng đối chiếu để quyết định xem chức năng đó có độ phức tạp

là Thấp/Trung bình/cao Độ phức tạp của một chức năng được xác định từ việc kết hợp các thuộc tính của nó:

Độ phức tạp của ILF và ELF được xác định dựa trên các RET và DET

Độ phức tạp của EI, EO và EI được xác định dựa trên các RET và DET

Riêng trường hợp của EI phải xác định cả VàO và RA, sau đó lấy giá trị lớn nhất

Cách thức gán tổng UFP cho một chức năng

Dựa vào bảng 2.5 để gán tổng các điểm chức năng chưa điều chỉnh (UFP) cho mỗi loại chức năng dựa trên độ phức tạp của nó

Giá trị Function Point được gán cho các chức năng (dựa trên yêu cầu người sử dụng) thuộc các loại chức năng khác nhau sẽ được cộng lại để tính tổng UFP

UFP = Sum (FP của tất cả các loại chức năng)

Bước 3 Gán mức độ ảnh hưởng cho tất cả các đặc trưng chung của hệ thống

Các đặc trưng chung của hệ thống là các yếu tố ảnh hưởng đến độ phức tạp

của việc phát triển, các mục tiêu hiệu năng, cấu hình, độ thân thiện v.v Chúng

được phân thành 14 đặc trưng khác nhau và mức độ ảnh hưởng (DI) thuộc một

trong 3 loại: Có, Có nhưng ít và Không

Các đặc trưng chung của hệ thống (GSC)s là:

 Trao đổi dữ liệu - Data Communications;

 Xử lý dữ liệu phân tán - Distributed Data Processing;

 Tính năng – Performance;

 Cấu hình có tần suất sử dụng lớn - Eieavily Used Confguration;

 Tần suất giao dịch - Transaction Rate;

 Chấp nhận dữ liệu trực tuyến - Online Data Entry;

Trang 34

 Hiệu quả sử dụng của người dùng cuối - End User Efficiency;

 Cập nhật trực tuyến - Online Update;

 Xử lý phức tạp - Complex Processin ;

 Tính tái sử dụng – Reuseability;

 Cài đặt dễ dàng - lnstallation Ease;

 Thao tác dễ dàng - Operation Ease;

 Nhiều địa điểm - Multiple Site;

 Dễ thay đổi - Facilitate Change;

Với mỗi GSC, gán giá trị mức độ ảnh hưởng theo các mức:

0 - không có hoặc không ảnh hưởng;

Thông thường, các giá trị OI được gán như sau:

Gán 0 nếu như GSC là hoàn toàn không có, 3 nếu ảnh hưởng trung bình và 5 nếu ảnh hưởng nhiều Các trường hợp nghi ngờ khác gán giá trị 3

Bước 4 Tính các giá trị của các yếu tố điều chỉnh

Các yếu tố điều chỉnh (Value Adjustment Factor - VAF) được tính theo công thức:

VAF = 0 65 + 0 01 * (TDI)

Với TDI là tổng các giá trị DI của tất cả các yếu tố

Chú ý rằng giá trị VAL tính được sẽ nằm trong đoạn từ 0.65 đến 1.35 vì nếu

tất cả các yếu tố đều có giá trị DI = 5, tổng sẽ là 70 = (14*5) và VAF sẽ là 0.65

+0.01*70=1.35

Giá trị cực đại của VAF là 1.35

Tương tự, nêu như tất cả các yếu tố đều không ảnh hưởng, DI = 0 Khi đó,

VAF = 0.65 Giá trị lý tưởng là TDI = 35 và do đo VAF =1

Bước 5 Tính tổng FP của ứng dụng

FP = UFP * VAF

Các FP được tính toán dựa trên năm bước ở trên sẽ xác định kích thước của ứng dụng dưới góc độ chức năng mà nó cần phải có Tuy nhiên để biết được năng suất dưới dạng số FP/man-day, mỗi tổ chức phải sử dụng các số liệu thông kê từ các

dự án trên những môi trường tương tự trước đó Kích thước của dự án tính bằng FP

là một độ đo chung không kể đến yếu tố môi trường phát triển cũng như kinh nghiệm của nhóm phát triển [2]

Trang 35

Xuất dữ liệu (EO)

Số kiểu file tham chiếu (FTR) Số phần tử dữ liệu

Truy vấn ngoài (EQ)

Số kiểu file tham chiếu (FTR) Số phần tử dữ liệu

Các file logic trong (ILF)

Số kiểu file tham chiếu (FTR) Số phần tử dữ liệu

> = 6 RET Trung bình (10) Cao (15) Cao (15)

Các file giao tiếp ngoài (EIF)

Số kiểu file tham chiếu (FTR) Số phần tử dữ liệu

> = 6 RET Trung bình (7) Cao (10) Cao (10)

Bảng 2.6: Tham chiếu điểm cho các chức năng

Trang 36

2.1.5 Thí dụ áp dụng phương pháp Function Points

Trạm bán đồ uống tự động:

External Inputs=1 và ở mức Low External Output=1 và ở mức Average User Interactions=2 và ở mức High External interfaces File=3 và ở mức Low Files used by the system (Logical Internal File)=1 và ở mức High

Ta có được

Bây giờ hoàn tìm được FP dựa vào công thức sau:

FP= *[0.65+0.01*SUM(Fi)]

1-Hệ thống có yêu cầu sao lưu và khôi phục không ->Đơn giản (2)

2-Có yêu cầu trao đổi dữ liệu không->Bản chất (5)

3-Có chức năng xử lí phân bố không ->Trung bình (3)

4-Có đòi hỏi cao về vấn đề có làm việc tốt không-> Bản chất (5)

5-Hệ thống có chạy trong môi trường có nặng về vấn đề tiện ích không -> Bản chất (5)

6-Hệ thống có đòi hỏi việc vào dữ liệu trực tuyến không->Không ảnh hưởng (0)

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 thông qua nhiều màn hình hay thao tác không->Không ảnh hưởng (0)

8-Tệp chính có phải cập nhật trực tuyến không ->Có ý nghĩa (4)

9-Cái vào, ra, tệp, truy vấn có phức tạp không-> Có ý nghĩa (4)

10-Xử lí bên trong có phức tạp không -> Có ý nghĩa (4)

11-Mã chương trình có được thiêt kế để dùng lại không -> Bản chất (5) 12-Việc chuyển đổi và cài đặt có được đưa vào trong thiết kế không -> Bản chất (5)

13-Hệ thống có được thiết kế cho nhiều cài đặt trong các tổ chức khác nhau không

Trang 37

Nhận xét:

* Ưu điểm của phương pháp Function Points

1 Độc lập với kỹ thuật & công cụ lập trình;

2 Dễ hiểu đối với người dùng;

3 Áp dụng được ngay trong giai đoạn đầu của chu trình phần mềm;

4 Áp dụng tốt cho các phầm mềm quản lí (MIS)

* Những khó khăn trong việc sử dụng phương pháp Function Points

1 Xác định mức độ ảnh hưởng của các nhân tố về đặc điểm của hệ thống: thực thế cũng không có một căn cứ nào để đặt trọng số cho các nhân tố này;

2 Phương pháp Function Points không cho thấy mức độ quan hệ giữa các chức năng trong hệ thống, thực tế hệ thống có các chức năng ít có quan hệ với nhau thì dơn giản hơn là hệ thống có mức độ quan hệ giữa các chức năng là phức tạp;

3 Đôi khi đánh giá một phần mềm khi nó đã được hoàn thành là không chính xác Khi có một số chức năng được thêm vào trong quá trình phát triển vì chức năng này sẽ làm ảnh hưởng làm chúng ta phải sửa đổi lại cả các chức năng khác…;

4 Không thích hợp cho các hệ thống thời gian thực, các hệ thống tính toán phức tạp, đánh giá độ phức tạp một cách chủ quan;

2.2 Phương pháp Use Case Points

Được giới thiệu bởi Gustav Karner năm 1993, được áp dụng cho những hệ thống thiết kế theo phương pháp hướng đối tượng, được phát triển từ phương pháp Function Points, sử dụng mô hình use case cho việc ước lượng công sức trong việc phát triển và kiểm thử phần mềm

Việc ướng lượng phần mềm có thể bắt đầu ngay khi một số vấn đề chính của

hệ thống hình thành

2.2.1 Giới thiệu về phương pháp UCP

Những ước lượng về chi phí và lịch biểu trong các dự án phần mềm thường dựa vào việc dự báo về kích cỡ của hệ thống trong tương lai Thật không may, phần mềm thường mang tiếng là thiếu chính xác trong việc ước lượng chi phí và lịch biểu Những ước lượng về nỗ lực thường bao hàm nhiều sự phần tử của tính không chính xác Những ước lượng ở giai đoạn sớm đảm bảo tin cậy thường khó đạt được

do nguyên nhân thiếu những thông tin chi tiết và đầy đủ về hệ thống phần mềm cần xây dựng trong tương lai ở giai đoạn đầu của dự án Tuy nhiên, những ước lượng chính xác và đầy đủ ở giai đoạn đầu của dự án có vai trò quan trọng cho việc thiết lập những hợp đồng hoặc xác định tính khả thi của dự án Những mô hình ước

Trang 38

lượng chi phí trước đây xem kích cỡ của phần mềm như là tham số đầu vào quan trọng và sau đó sử dụng một tập những nhân tố điều chỉnh để tính toán ước lượng

về tổng nỗ lực phát triển Khi phát triển phần mềm theo phương pháp hướng đối tượng, những Use Cases ( UCs) mô tả các yêu cầu chức năng của hệ thống Mô hình

UC vì vậy có thể được sử dụng để dự báo kích cỡ của những hệ thống phần mềm trong tương lai ở pha phát triển đầu tiên của hệ thống

Những mô hình ước lượng phần mềm như SLOC, COCOMO, COCOMO II, phương pháp xác định kích cỡ Function Point Analysis (FPA) đã được sử dụng rộng rãi và hiệu quả trong kỹ nghệ phần mềm, nhưng với những các tiếp cận này cũng còn hạn chế, việc đếm những điểm chức năng đòi hỏi kiến thức chuyên gia hỗ trợ

Bởi vì sự khó khăn của việc ước lượng theo phương pháp SLOC, FP, COCOMO… và những hệ thống hiện đại thường phát triển theo phương pháp hướng đối tượng sử dụng ngôn ngữ Unified Modeling Language (UML), năm 1993, Gustav Karner đã đưa ra phương pháp Use Case Points sử dụng để xác định kích cỡ

và ước lượng những dự án phát triển theo phương pháp hướng đối tượng Phương pháp này được mở rộng từ phương pháp phân tích điểm chức năng và phương pháp

Mk II FPA

Phương pháp ước lượng UCP tính toán nỗ lực phát triển phần mềm theo đơn

vị person – hours dựa vào biểu đồ UC nơi mô tả chính xác và nhất quán các yêu cầu chức năng của hệ thống Các UC được giả định rằng chúng được đưa ra từ một tập hỗn độn các chức năng, sau đó chi tiết và chuẩn hóa để có ít hơn 10 – 12 giao dịch Phương pháp UCP trước đây đã được sử dụng phổ biến trong một số dự án cỡ nhỏ Cho tới gần đây, cách tiếp cận phát triển phần mềm theo phương pháp tăng trưởng

và tiến hóa đang trở lên quan trọng Ta thấy rằng phương pháp UCP có những ưu điểm rất đáng kể, nhưng để có được những ước lượng chính xác ta cần phải xem xét tới những nhân tố ảnh hưởng như nhân tố kỹ thuật, nhân tố môi trường, sự phân loại các UC và tác nhân trong biểu đồ UC

2.2.2 Vai trò của biểu đồ Use Case trong ƣớc lƣợng phần mềm

Hiện nay, cách tiếp cận phát triển phần mềm hướng đối tượng đang được sử dụng phổ biến Ngôn ngữ mô hình hóa thống nhất (Unified Modeling Language – UML) đang được sử dụng để thu thập yêu cầu phần mềm, phân tích, thiết kế và phát

triển phần mềm Biểu đồ UC là công cụ mạnh để thu thập yêu cầu hệ thống Biểu đồ

UC chỉ ra mối quan hệ giữa các tác nhân và các ca sử dụng trong hệ thống

Ca sử dụng: ca sử dụng (Use Case – UC) mô tả tập các hoạt động của hệ thống

theo quan điểm của các tác nhân (Actors) Nó mô tả các yêu cầu của hệ thống và trả

lời cho câu hỏi:

Hệ thống phải làm cái gì (What ?)

Mục tiêu của ca sử dụng trong cả quá trình phát triển phần mềm:

Trang 39

 Mô tả các yêu cầu chức năng của hệ thống, là kết quả của quá trình khảo sát, nghiên cứu các yêu cầu của bài toán và những thoả thuận giữa khách hàng, NSD hệ thống với người phát triển phần mềm

 Làm cơ sở để người phân tích viên hiểu, người thiết kế xây dựng các kiến trúc, người lập trình cài đặt các chức năng, người kiểm duyệt kiểm tra các kết quả thực hiện của hệ thống

Các ca sử dụng đóng vai trò rất quan trọng trong cả quá trình phát triển phần mềm, tất cả các pha phân tích, thiết kế sau này đều dựa vào các ca sử dụng Như

vậy, quá trình được hướng dẫn bởi ca sử dụng (use case driven process) là một cách

hữu hiệu để mô hình hoá hệ thống với UML

Tác nhân: Tác nhân ( Actor) là những thực thể bên ngoài có tương tác với hệ

thống, bao gồm người, vật, thiết bị hay các hệ thống khác có trao đổi thông tin với

hệ thống Nói cách khác, tác nhân đại diện cho người hay một bộ phận của tổ chức mong muốn nhận được các thông tin (dữ liệu) hoặc các câu trả lời từ những ca sử dụng tương ứng

Xác định các tác nhân

Tác nhân là một bộ phận bên ngoài hệ thống nhưng cộng tác chặt chẽ với hệ thống Nó chính là đối tượng mà hệ thống phục vụ hoặc cần có để cung cấp dữ liệu

Do đó, nhiệm vụ trước tiên của người phân tích là xác định các tác nhân

Một trong các kỹ thuật hỗ trợ để xác định các tác nhân là dựa trên các câu trả lời những câu hỏi sau:

 Hệ thống quản lý, sử dụng những thiết bị nào?

 Hệ thống cần tương tác với những bộ phận, hệ thống nào khác?

 Ai hay cái gì quan tâm đến kết quả xử lý của hệ thống?

Xác định các ca sử dụng

Bước tiếp theo là xác định các ca sử dụng dựa trên những tài liệu đặc tả các yêu cầu, thông qua các tác nhân Tương tự như trên, hãy trả lời những câu hỏi sau đây để tìm ra các ca sử dụng:

 Nhiệm vụ chính của các tác nhân là gì?

 Tác nhân cần phải đọc, ghi, sửa đổi, cập nhật, hay lưu trữ thông tin hay không?

 Những thay đổi bên ngoài hệ thống thì tác nhân có cần phải thông báo cho

hệ thống hay không?

 Những tác nhân nào cần được thông báo về những thay đổi của hệ thống?

Trang 40

 Hệ thống cần có những đầu vào / ra nào? từ đâu và đến đâu?

Nói chung, việc xác định được đầy đủ UC và tác nhân là một vấn đề khó khăn Biểu đồ UC không những mô tả các chức năng của hệ thống phần mềm cần xây dựng mà nó còn làm cơ sở để nhóm quản lý dự án đưa ra những ước lượng quan trọng cho quá trình lập kế hoạch dự án

2.2.3 Các bước thực hiện với phương pháp ước lượng UCP

Một số giả định về phương pháp UCP

Để khai thác và sử dụng hiệu quả phương pháp UCP, người dùng phải nắm vững quy trình phát triển phần mềm theo phương pháp hướng đối tượng, có kiến thức cơ bản về ngôn ngữ UML về cách xây dựng biểu đồ UC Trong chương này, ta chỉ đưa ra việc sử dụng phương pháp UCP và không đưa vào chi tiết làm thế nào để xây dựng được biểu đồ UC

Phương pháp ước lượng UCP được thực hiện qua các bước sau đây:

Bước 1: Xác định trọng số của các tác nhân chưa được điều chỉnh (Unadjusted

Actors Weight – UAW)

Đây là bước đầu tiên của phương pháp UCP, tại bước này ta thực hiện việc phân lớp các tác nhân Các tác nhân trong biểu đồ UC của hệ thống được phân chia

ra thành 3 lớp: các tác nhân đơn giản ( Simple Actors), các tác nhân lớp trung bình ( Average Actors) và các tác nhân lớp phức tạp ( Complex Actors) Song song với việc phân lớp là ta gán trọng số cho các tác nhân Việc phân lớp và gán trọng số của các tác nhân được thực hiện theo bảng sau đây:

Trọng số Tác nhân ( FW)

Simple Actors Đây là những tác nhân có giao tiếp với hệ

- Tác nhân lưu trữ CSDL, file hoặc hệ quản trị CSDL

2

Complex Actors Tác nhân tương tác với hệ thống qua GUI 3

Bảng 2.7: Phân loại tác nhân và gán trọng số cho các tác nhân

Ngày đăng: 25/03/2015, 09:53

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1.] Barry W. Boehm, Software Cost Estimation with COCOMO II , Prentice- Hall, July 2000 Sách, tạp chí
Tiêu đề: Software Cost Estimation with COCOMO II
[2.] David Garmus & David Herron, Function Point Analysis: Mesurement Practices for Successful Software Projects, Paperback, Dec 2000 Sách, tạp chí
Tiêu đề: Function Point Analysis: Mesurement Practices for Successful Software Projects
[3.] Jonh Porter, Esimation with Use Cases: A simple and Effective Approach to Estimating Software Projects, EII Publication, 2002 Sách, tạp chí
Tiêu đề: Esimation with Use Cases: A simple and Effective Approach to Estimating Software Projects
[4.] Roger S. Pressman, Software Engineering – A Practitioner’s Approach, Third Edition, McGraw-Hill.Inc, 1992 Sách, tạp chí
Tiêu đề: Software Engineering – A Practitioner’s Approach
[5.] Suresh Nageswaran, Test Effort Estimation Using Use Case Points, Article, 2001 Sách, tạp chí
Tiêu đề: Test Effort Estimation Using Use Case Points

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w