Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (720.7 KB, 91 trang )
sử dụng, hoặc có thể là tài liệu được sản sinh trong vòng đời phần mềm, hoặc có
thể là mã nguồn.
Một số thuộc tính có thể tiến hành đo với sản phẩm là:
Độ tin cậy của chương trình. Thuộc tính này phụ thuộc vào môi trường mà
chương trình được thực thi (phần cứng, phần mềm).
Tính dễ hiểu của tài liệu đặc tả phần mềm. Nó tùy thuộc vào người đang tìm
hiểu tài liệu đó.
Khả năng bảo trì của mã nguồn. Thuộc tính này phụ thuộc vào người trực
tiếp tham gia bảo trì và các công cụ hỗ trợ cho công việc bảo trì.
Các thuộc tính trên đây của sản phẩm phần mềm có liên quan đến môi trường
mà nó được phát triển hay tồn tại, các thuộc tính này được gọi là thuộc tính
ngoài, được trình bày ở phần 1.3.2.
Phép đo nguồn lực
Nguồn lực bao gồm các thực thể đầu vào cho quá trình sản xuất: nguồn nhân
lực, công cụ (phần cứng, phần mềm), phương pháp. Một số thuộc tính nguồn lực
có thể đo là:
Chi phí (cost) dành cho việc đầu tư phát triển các công cụ mới.
Năng suất (productivity) của nhân viên dự án. Năng suất có thể được tính như
sau:
productivity =
amount of output
effort input
Trong biểu thức trên, năng suất (productivity) được tính từ các thuộc tính sản
phẩm (amount of output) và thuộc tính quá trình (effort input), trong đó sản
phẩm ra có thể được tính bằng số dòng mã lệnh (LOC – lines of code), chi phí
nhân lực (effort) tính bằng số lượng người tham gia dự án theo tháng (personmonth).
1.3.2 Phân biệt thuộc tính trong và thuộc tính ngoài
Thuộc tính trong của một sản phẩm, quá trình, nguồn lực là những thuộc tính
có thể đo đạc một cách khách quan.
Thuộc tính ngoài của một sản phẩm, quá trình, nguồn lực là những thuộc tính
chỉ có thể đo đạc trong mối quan hệ với môi trường của sản phẩm, quá trình
nguồn lực đó.
Người sử dụng phần mềm và giám đốc dự án chỉ quan tâm đến các thuộc tính
ngoài. Người giám đốc dự án có thể quan tâm đến các thuộc tính ngoài như năng
27
lực sản xuất của nhân viên, hiệu quả sử dụng nguồn lực; người sử dụng muốn
biết về tính tiện dụng, độ tin cậy, khả năng tương thích của sản phẩm mà họ sắp
mua. Thuộc tính trong thường dùng để mô tả độ phức tạp cấu trúc như: kích
thước phần mềm, độ phức tạp luồng điều khiển, độ kết dính giữa các thành phần.
Chúng được định nghĩa một cách rõ ràng và có thể được đo đạc khách quan. Các
thuộc tích ngoài thường có sự liên quan của con người và của môi trường như độ
phức tạp, khả năng bảo trì, tính đọc hiểu .... Chỉ có các thuộc tính ngoài mới cung
cấp cho chúng ta những thông tin có giá trị về hệ thống. Các thuộc tính ngoài khó
có thể được định nghĩa một cách chính xác và đo đạc khách quan, hơn nữa những
khái niệm như chất lượng phần mềm là một khái niệm rộng. Các thuộc tính trong
có ảnh hưởng trực tiếp tới các thuộc tính ngoài, đo đạc và kiểm soát các thuộc
tính trong sẽ nâng cao chất lượng của toàn hệ thống. Vì vậy chúng ta thường gián
tiếp tớnh cỏc thuộc tính ngoài qua các thuộc tính trong. Mô hình phân cấp chất
lượng ISO 9126 hay là mô hình khác được phát triển từ mô hình FCM được đề
xuất theo hướng này, nhưng chưa được áp dụng rộng rãi. Nguyên nhân chủ yếu
là cách đo các thuộc tính ngoài không hoàn chỉnh, thậm chí không giống nhau.
Về mặt lý thuyết, việc kiểm định mối liên hệ giữa các thuộc tính trong và các
thuộc tính ngoài là hết sức khó khăn
Kết luận chương 1:
Trong chương này, chúng ta đã tìm hiểu những vấn đề cơ bản của lý thuyết đo
phần mềm, cách tiếp cận tới lý thuyết đo phần mềm dựa trên một cơ sở vững
chắc là lý thuyết đo nói chung. Chúng ta cũng đã tìm hiểu về một số mô hình đo
được sử dụng rộng rãi trong công nghệ phần mềm. Tuy nhiên, việc lựa chọn
phép đo phù hợp tùy vào môi trường phát triển phần mềm cụ thể cũng như mục
đích tiến hành phép đo phần mềm đó. Trong đồ án này, chúng tôi tập trung
nghiên cứu phép đo sản phẩm phần mềm được xây dựng trong môi trường hướng
đối tượng. Chương tiếp theo sẽ tìm hiểu về các phép đo và mô hình đánh giá
phần mềm phát triển trong môi trường hướng đối tượng.
28
CHƯƠNG 2: PHÉP ĐO PHẦN MỀM HƯỚNG ĐỐI TƯỢNG
Ngày nay các hệ thống thông tin ngày càng có độ lớn, độ phức tạp, yêu cầu
phải được phát triển trong một thời gian ngắn. Yêu cầu hệ thống được phát triển
nhanh, có chất lượng đã thúc đẩy sự ra đời của các phương pháp phát triển phần
mềm mới hiệu quả hơn. Trong số đó cách tiếp cận hướng đối tượng đã trở nên
quen thuộc với giới công nghệ thông tin. Việc phát triển phần mềm hướng đối
tượng có nhiều ưu điểm: tăng cường khả năng sử dụng lại mã do có tính thừa kế,
rút ngắn thời gian phát triển và giảm lỗi do các lớp mới được thừa kế từ những
lớp trong thư viện. Ngoài ra một vấn đề rất quan trọng trong việc cải tiến quy
trình chính là khả năng đo các bước trong quy trình đú, chớnh vì thế đề tài
nghiên cứu tìm ra các phép đo hướng đối tượng để đo phần mềm phát triển
hướng đối tượng là một vấn đề đã được quan tâm nghiên cứu ngay từ năm 1988
khi phương pháp phát triển phần mềm hướng đối tượng ra đời. Từ đó đến nay đã
có rất nhiều kết quả nghiên cứu về đo phần mềm hướng đối tượng đã được công
bố trên thế giới.
Cách tiếp cận bài toán theo quan điểm hướng đối tượng đã trở nên quen thuộc
đối với chúng ta, các ngôn ngữ hướng đối tượng ngày càng được sử dụng rộng
rãi. Ngày càng có nhiều các phần mềm được xây dựng theo phương pháp hướng
đối tượng. Điểm nổi bật của quy trình phát triển phần mềm hướng đối tượng
chính là ở bước thiết kế hướng đối tượng, hệ thống được chia thành các khối
riêng gọi là đối tượng, gồm có dữ liệu và chức năng thực hiện trờn cỏc dữ liệu
đó. Mô hình hướng đối tượng có những đặc điểm khác với mô hình hướng chức
năng trước đây, nờn cỏch đánh giá và đo đối với phần mềm hướng đối tượng
cũng phải quan tâm đến những đặc trưng cơ bản như: đối tượng, lớp, thuộc tính,
phương thức, thừa kế, thông điệp ... Các thuộc tính của đối tượng có thể đo đạc
ví dụ như: số thuộc tính, số phương thức, số thông điệp gửi đến các đối tượng
khác, vị trí của đối tượng trong sơ đồ cấu trúc hệ thống, số đối tượng thừa kế ...
Phép đo cho phần mềm hướng đối tượng cả về mặt lý thuyết cũng như công
cụ đo vẫn đang được tiếp tục nghiên cứu. Một phép đo hướng đối tượng cần giải
đáp được các câu hỏi: Các bước tiến hành để đo sản phẩm phần mềm hướng đối
tượng? Cần thiết kế các công cụ gì để hỗ trợ cho quá trình đo. Làm thế nào để áp
dụng phép đo hướng đối tượng vào quy trình phát triển phần mềm.
Có nhiều kết quả nghiên cứu về đo phần mềm hướng đối tượng đã được công
bố trên thế giới. Về mặt lý thuyết, nhiều phép đo hướng đối tượng được đề xuất;
về mặt thực nghiệm, các công cụ trợ giúp đo hướng đối tượng được xây dựng và
29
có nhiều kết quả đo thực nghiệm đã được công bố. Các phép đo này tập trung
vào khía cạnh hướng đối tượng, thể hiện các tính chất thừa kế, đa hình, bao bọc
dữ liệu, trừu tượng hóa. Cỏc tác giả đều đưa ra được luận điểm khẳng định
phương pháp đánh giá của mình và chỉ ra lĩnh vực áp dụng của nó. Tuy nhiên
nhiều phép đo còn một số tồn tại như sau:
-
Một số phép đo không độc lập về mặt ngôn ngữ (C++, Ada . . .)
-
Việc đánh giá các kết quả đo được nói chung là nằm trong một khoảng nào
đó, dựa theo kinh nghiệm khẳng định nó là tốt hay xấu
-
Các phép đo để đánh giá là chính chưa điều khiển được giá trị độ đo.
Các phép đo hướng đối tượng đã được tổng kết trong các báo cáo [9], [11],
[12]. Báo cáo [11] phân loại các phép đo hướng đối tượng theo phép đo quy
trình, sản phẩm, tài nguyên (tính đến năm 1996). Báo cáo [9] tổng kết và so sánh
các phép đo sản phẩm phần mềm hướng đối tượng nổi bật đã được công bố trên
thế giới (tính đến năm 2000).
Trong đồ án này, chúng tôi tập trung vào các phép đo CK do Chidamber,
Kemerer đề xuất [3] và mô hình chất lượng đo phần mềm hướng đối tượng. Các
phép đo CK có ưu điểm là gọn nhẹ, dễ tiến hành, có thể thực hiện trong các pha
sớm của quá trình xây dựng phần mềm, độc lập với ngôn ngữ sử dụng.
2.1. Bộ các phép đo CK
Các phép đo này do Chidamber, Kemerer đề xuất nên gọi là các phép đo CK.
Các phép đo này nhấn mạnh vào pha thiết kế hướng đối tượng. Có 6 phép đo:
WMC, DIT, LCOM, CBO, RFC, NOC. Các phép đo này tập trung vào khía cạnh
hướng đối tượng của sản phẩm: về độ phức tạp, tính cố kết, tính kết dính và cây
thừa kế. Các phép đo dựa trên các thuộc tính quan trọng, ảnh hưởng trực tiếp đến
chất lượng sản phẩm, kết quả của phép đo cho phép ta dự đoán hoặc đánh giá sản
phẩm. Chúng được đề xuất dựa trên cơ sở lý thuyết: cách tiếp cận hướng đối
tượng của Booch và lý thuyết đo.
2.1.1 Cơ sở lý thuyết của các phép đo CK
a. Cơ sở lý thuyết phát triển phần mềm hướng đối tượng
Booch là một trong những người đầu tiên đề xuất phương pháp tiếp cận
hướng đối tượng [2]. Ông đề xuất bốn bước trong pha thiết kế hướng đối tượng:
1) Xác định các lớp (đối tượng): Trong bước này, xác định và định danh các lớp
và đối tượng dựa trên bài toán đã được trừu tượng hóa.
30
2) Xác định ý nghĩa của các lớp (đối tượng): Bước này xác định cụ thể ý nghĩa
các lớp và phương thức của các lớp và đối tượng, xác định vòng đời của đối
tượng từ lúc khởi tạo đến lúc hủy.
3) Xác định mối quan hệ giữa các lớp (đối tượng): Trong bước này, tương tác
giữa các lớp và đối tượng được xác định, ví dụ mối quan hệ thừa kế và mối
quan hệ nhìn thấy được một phần nội dung của nhau giữa các lớp.
4) Cụ thể hóa các lớp (đối tượng): Thiết kế chi tiết, định nghĩa các phương thức
và hành vi của chúng.
Dù đó là phương pháp thiết kế hướng đối tượng của Booch (gần đây là UML)
hay của nhóm nghiên cứu khỏc, thỡ thiết kế các lớp đóng một vai trò trung tâm
trong thiết kế hướng đối tượng. Thiết kế các lớp được dành cho mức ưu tiên cao
nhất trong thiết kế hướng đối tượng, bởi vì nó giải quyết vấn đề yêu cầu chức
năng của hệ thống nên thiết kế các lớp phải được thực hiện trước khi thiết kế hệ
thống và thiết kế chương trình. Các phép đo CK chủ yếu để đánh giá độ phức tạp
trong thiết kế lớp. Ưu điểm nổi bật của cỏc phộp do CK là có thể tiến hành chúng
trong những pha sớm (thiết kế) của quá trình phát triển phần mềm, qua đó có thể
có những thay đổi kịp thời để giảm tối thiểu những sai sót sau này. Ngoài ra các
phép đo CK độc lập với các công cụ và ngôn ngữ được sử dụng. Tuy nhiên các
phép đo CK không đánh giá được những chi tiết của việc triển khai các lớp.
b. Cơ sở lý thuyết đo
Một sơ đồ thiết kế hướng đối tượng có thể được đại diện bằng một hệ thống
quan hệ, gồm có tập các thực thể, tập các quan hệ và tập các phép toán nhị phân:
D ≡ (A, R1...Rn, O1...Om)
trong đó:
A: tập các thực thể (lớp, đối tượng)
R1...Rn : các quan hệ giữa các thực thể (ví dụ lớn hơn, nhỏ hơn).
O1...Om : các phép toán nhị phân trờn cỏc thực thể (tổ hợp, thừa kế ...)
Đánh giá độ phức tạp giúp chúng ta hiểu kỹ hơn về hệ thống quan hệ trờn cỏc
thực thể. Người thiết kế thường có những quan niệm trực giác về độ phức tạp
giữa các thực thể, chẳng hạn như quan niệm lớp nào có nhiều phương thức hơn
thỡ cú độ phức tạp lớn hơn. Những quan niệm trực giác như thế là phép toán nhị
phân θ trên tập ℘ (tập tất cả các thiết kế có thể có). Giả sử P, P’, P” ∈℘, các
tiên đề sau đây phải được thỏa mãn:
-
hoặc P θ P’, hoặc P’ θ P (đầy đủ: P phức tạp hơn P’ hoặc P’ phức tạp hơn P).
31