Tiếp theo việc phỏt triển một dự ỏn phần mềm hướng thành phần sử dụng cỏc thành phần đó cú được kết hợp lại với nhau như thế nào đồng thời trong phần này ưu nhược điểm của phần mềm hướng
Trang 1B Ộ GIAO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN: TS HUỲNH QUYẾT THẮNG
Hà Nội – 2004
Trang 22
MỤC LỤC
DANH MỤC CÁC Kí HIỆU VIẾT TẮT 5
DANH MỤC CÁC BẢNG 6
DANH MỤC CÁC HèNH VẼ, ĐỒ THỊ 7
MỞ ĐẦU 7
Chương 1: TỔNG QUAN VỀ THÀNH PHẦN PHẦN MỀM VÀ PHÁT TRIỂN PHẦN MỀM HƯỚNG THÀNH PHẦN 10
1.1.1 1.1 Tổng quan về thành phần phần mềm 10
1.1.1 1.1.1 Quỏ trỡnh tiến húa của thành phần phần mềm 10
1.1.2 1.1.2 Tại sao cỏc thành phần phần mềm sử dụng lại là quan trọng 13
1.1.3 1.1.3 Cỏc thuộc tớnh của thành phần trong phần mềm hướng thành phần 16 1.1.4 1.1.4 Cỏc yếu tố cơ bản của thành phần phần mềm 20
1.1.5 1.1.5 So sỏnh thành phần phần mềm và các môđun phần mềm truyền thống 22 1.1.6 1.1.6 Kỹ nghệ xử lý đối với thành phần phần mềm 26
1.1.7 1.1.7 Cỏc cõu hỏi, cỏc mối quan tõm, những điểm cần thiết trong quỏ trỡnh xỏc nhận tớnh hợp lệ và quỏ trỡnh quản lý chất lượng thành phần 29
1.1.2 1.2 Phỏt triển phần mềm hướng thành phần 31
1.1.8 1.2.1 Giới thiệu 32
1.1.9 1.2.2 So sỏnh phần mềm hướng thành phần và chương trỡnh phõ̀n mềm truyền thống 33
1.1.10 1.2.3 Môi trường của phần mềm dựa trên nền thành phần: Mô h́nh xây dựng thành phần phần mềm 39
1.1.11 42
1.1.12 1.2.4 Kỹ nghệ xử lư phần mềm hướng thành phần 42
1.1.3 1.3 Kết luận chương 48
Chương 2 KIỂM THỬ THÀNH PHẦN PHẦN MỀM 50
1.1.4 2.1 Kiến trỳc nền kiểm thử thành phần 51
1.1.5 2.2 Kiểm thử thành phần trong CBSE 53
1.1.13 2.2.1 Kiểm thử thành phần hướng người cung cấp 54
1.1.14 2.2.2 Kiểm thử thành phần hướng người sử dụng 56
1.1.6 2.3 Cỏc vấn đề đặt ra và cỏc thỏch thức trong quỏ trỡnh kiểm thử thành phần 61
1.1.15 2.3.1 Các vấn đề đặt ra và các thách thức trong quá tŕnh xác nhận tính hợp lệ thành phần hướng người sử dụng 61
1.1.16 2.3.2 Cỏc vấn đề lý tưởng cơ bản trong kiểm thử thành phần 66
Trang 33
1.1.7 2.4 Kết luận chương 68
Chương 3 MÔ HèNH THỰC NGHIỆM KIỂM THỬ 70
THÀNH PHẦN PHẦN MỀM 70
1.1.8 3.1 Giới thiệu 70
1.1.9 3.2 Kiểm thử điều kiện 71
1.1.17 3.2.1 Cỏc kỹ thuật kiểm thử thông thường 71
1.1.18 3.2.2 Cỏc vấn đề tồn tại trong cỏc kỹ thuật kiểm thử thông thường 72
1.1.10 3.3 Bộ kiểm thử đối với cỏc thành phần nhỏ mịn (fine grained) 73
1.1.19 3.3.1 Cỏc thành phần nhỏ mịn (fine grained) 74
1.1.20 3.3.2 Cỏc khỏi niệm dựng trong kỹ thuật mới 76
1.1.21 3.3.3 Xõy dựng các bước kiểm thử 77
1.1.22 3.3.4 Các bước thực hiện kiểm thử 79
1.1.11 3.4 Ước lượng thực nghiệm 88
1.1.23 3.4.1 Giỏ thành kiểm thử 88
1.1.24 3.4.2 Mức độ bao phủ của các điều kiện 90
1.1.12 3.5 Kết luận chương 91
Chương 4 Lí THUYẾT ĐỘ ĐO VÀ ĐÁNH GIÁ 92
THÀNH PHẦN PHẦN MỀM 92
1.1.13 4.1 Giới thiệu 92
1.1.14 4.2 Giới thiệu độ đo 93
1.1.15 97
1.1.16 4.3 Cỏc khỏi niệm về phép đo phần mềm 97
1.1.17 4.4 Cỏc khỏi niệm của tiờu chuẩn ISO 9126 99
1.1.25 4.4.1 Cỏc khỏi niệm 99
1.1.26 4.4.2 Cỏc khỏi niệm liờn quan tới độ đo tính sử dụng lại khỏc 104
1.1.18 4.5 Kết luận chương 109
Chương 5 MÔ HèNH THỰC NGHIỆM ĐÁNH GIÁ 110
THÀNH PHẦN PHẦN MỀM 110
1.1.19 5.1 Giới thiệu chung 110
1.1.20 5.2 Đặc trưng của thành phần 110
1.1.21 5.3 Độ đo tính sử dụng lại của cỏc thành phần phần mềm 111
1.1.27 5.3.1 Mụ hỡnh tỏi sử dụng thành phần 112
1.1.28 5.3.2 Các định nghĩa độ đo tính sử dụng lại 114
1.1.22 5.4 Các độ đo kết hợp 119
1.1.23 5.5 Cỏc cụng việc liờn quan 119
1.1.24 5.6 Ứng dụng vào việc đánh giá Project viết bằng C# 123
Trang 44
1.1.29 5.6.1 Giới thiệu 123
1.1.30 5.6.2 Xõy dựng dự ỏn thực hiện cỏc cụng việc trờn 123
1.1.25 5.7 Kết luận chương 133
KẾT LUẬN CHUNG 134
TÀI LIỆU THAM KHẢO 135
Trang 55
DANH MỤC CÁC Kí HIỆU VIẾT TẮT
Số TT Từ viết tắt Từ viết đủ
1 ADO Microsoft Active Data Object
2 CBS Component base software
3 CBSE Component base software Engineering
4 CLR Common Language Runtime
5 COM Component Object Model
6 CORBA Common Object Request Broker Architecture
7 EJB Emterprise JavaBeans
8 GQM Goal-Question-Metric
9 ISO International Standards Organization
10 MTS Microsoft Transaction Services
11 MSMQ Microsoft Message Queue
12 OMG Object Management Group
13 ORB Object Request Broker
14 UML Unifiy model laguage
Trang 66
DANH MỤC CÁC BẢNG
Bảng 1.1: Bảng so sánh môđun phần mềm truyền thống và phần mềm hướng thành phần 22
Bảng 1.2 Bảng so sỏnh phần mềm truyền thống và phần mềm hướng thành phần 35
Bảng 1.3 Bảng so sỏnh giữa cỏc mụ hỡnh NET, EJB/J2EE, CORBA 40
Bảng 3.1 Bảng so sỏnh thời gian kiểm thử giữa cỏc kỹ thuật tớnh bằng giõy (s) 89
Bảng 3.2 Bảng so sỏnh thời gian sửa đổi và thực hiện kiểm thử giữa cỏc kỹ thuật 89
Bảng 3.3 Mức độ bao phủ của tiền điều kiện 90
Bảng 3.4: Mức độ bao phủ của hậu điều kiện 90
Bảng 4.1 Bảng cỏc thuộc tớnh trong và ngoài của cỏc sản phẩm, quỏ trỡnh xử lý và tài nguyờn 94
Bảng 4.2 Vớ dụ về một số cõu hỏi đặt ra để tính độ đo ở mỗi bước 96
Bảng 4.3 Các đặc điểm của thành phần COTS 100
Bảng 4.4 Cỏc khỏi niệm đo được và cỏc thuộc tớnh cho tớnh sử dụng lại 105
Bảng 4.5 Độ đo kết hợp với chất lượng của tài liệu 106
Bảng 4.6 Độ đo kết hợp với độ phức tạp của thiết kế 107
Trang 77
DANH MỤC CÁC HèNH VẼ, ĐỒ THỊ
Hỡnh 1.1 Cỏc phần cú thể phân chia được, (a) phần cú thể phân chia được của môđun có thể sử dụng lại được, (b) phần cú thể phõn chia của cỏc thành phần cú thể sử dụng lại
được, (c) bản tổng hợp cỏc khối xõy dựng 21
Hỡnh 1.2 Kỹ nghệ xử lý đối với thành phần phần mềm 29
H́nh 1.3 Mô h́nh thác nước 43
44 Hỡnh 1.4 Mụ hỡnh phỏt triển phần mềm hướng thành phần 44
Hỡnh 2.1 Quỏ trỡnh thực hiện trong kiểm thử thành phần hướng người cung cấp 56
Hỡnh 2.2 Quỏ trỡnh xử lý xỏc nhận tớnh hợp lệ đối với cỏc thành phần sử dụng lại toàn diện 59
Hỡnh 2.3 Qỳa trỡnh xỏc nhận tớnh hợp lệ và liờn kết với cỏc thành phần tuỳ biến 60
Hỡnh 3.1: Vớ dụ đoạn mó kiểm thử điều kiện được nhỳng vào trong lớp[12] 71
Hỡnh 3.2 Sơ đồ lớp Bank được thiết kế trong UML 75
Hỡnh 3.3 Mẫu XML Document 78
Hỡnh 3.4 Sơ đồ minh hoạ bộ kiểm thử 80
Hỡnh 3.5 Nội dung file test case 83
Hỡnh 3.6 Giao diện ban đầu khi kiểm thử 84
Hỡnh 3.7 Hỡnh vẽ liệt kê các phương thức trong một thành phần 84
Hỡnh 3.8 Hỡnh vẽ liệt kê các phương thức cần kiểm thử do người dùng đưa vào 85
Hỡnh 3.9 Mụ tả thông báo khi phương thức kiểm tra khụng tồn tại 85
Hỡnh 3.10 Mụ tả thụng bỏo khi kiểu dữ liệu sai 85
Hỡnh 3.11 Mụ tả thụng bỏo kiểm tra phương thức khụng hợp lệ 86
Hỡnh 3.13 Mụ tả file data.xml 87
Hỡnh 3.14 Hỡnh vẽ minh hoạ khi phương thức kiểm thử thành cụng 88
Hỡnh 3.15 Hỡnh vẽ minh hoạ khi phương thức kiểm thử trả về kiểu khỏc với mụ tả 88
Hỡnh 4.1 Cấu trỳc cõy của độ đo 95
Hỡnh 5.1 Sơ đồ phõn lớp cỏc thuộc tớnh sử dụng lại 112
Hỡnh 5.2 Vớ dụ so sỏnh giỏ trị các độ đo 118
Hỡnh 5.3 Giao diện chớnh của chương trỡnh kiểm thử 127
Hỡnh 5.4 Giao diện đánh giỏ Assembly 128
Hỡnh 5.5 Giao diện của MethodProperties 129
Hỡnh 5.6 Giao diện của typeProperties 130
Hỡnh 5.7 Giao diện của ParameterProperties 131
Hỡnh 5.8 Giao diện của FieldProperties 132
Hỡnh 5.9 Giao diện của PropertyProperties 133
Trang 88
MỞ ĐẦU
“Sử dụng lại một thành phần phần mềm cú là một khỏi niệm mới khụng”? Cõu trả lời
là khụng Khỏi niệm sử dụng lại thành phần phần mềm đó cú là một trong những khỏi niệm cú từ rất lõu nhưng sử dụng lại thành phần nào là một trong những vấn đề cú cõu trả lời không đơn giản Trong một dự ỏn phần mềm nếu sử dụng một thành phần
cú chất lượng khụng tốt hoặc lựa chọn sai cú thể dẫn tới một kết quả khó lường Vỡ vậy kiểm thử thành phần và đo các thông số sử dụng lại là một trong những lĩnh vực rất quan trọng trong quỏ trỡnh phỏt triển phần mềm hướng thành phần Mặt khỏc cựng với sự phổ biến của internet, số lượng cỏc thành phần đó được xõy dựng bởi nhiều tổ chức trờn nhiều môi trường cũng như nền tảng khỏc nhau là một nguồn tài nguyờn vụ tận Vậy thành phần nào là tin cậy và cú thể dựng lại được là mối quan tõm của rất nhiều người Trong luận văn này tôi đó tổng kết được một số nghiờn cứu
về kiểm thử và đánh giá thành phần phần mềm đồng thời giới thiệu và thử nghiệm hai mụ hỡnh: một là kiểm thử thành (hộp đen) bất kỳ thụng qua quỏ trỡnh đọc cỏc thụng số; hai là đo các thông số tỏi sử dụng Thụng qua hai cụng cụ này người sử dụng cú thể dễ dàng kiểm thử được thành phần định dựng cú thực hiện yờu cầu đặt
ra khụng và mức độ sử dụng lại thế nào Luận văn bao gồm năm phần cú nội dung chớnh được trỡnh bày như sau:
Chương 1 Tổng quan về thành phần phần mềm và phỏt triển phần mềm hướng thành
phần
Trong chương này trỡnh bày tổng quan thế nào là thành phần mềm, thành phần phần mềm cú gỡ khỏc và giống với các chương trỡnh phần mềm truyền thống Kỹ nghệ phỏt triển một thành phần cú khỏc với quỏ trỡnh xõy dựng một phần mềm truyền thống hay khụng Tiếp theo việc phỏt triển một dự ỏn phần mềm hướng thành phần
sử dụng cỏc thành phần đó cú được kết hợp lại với nhau như thế nào đồng thời trong phần này ưu nhược điểm của phần mềm hướng thành phần cũng được trỡnh bày một cỏch rừ ràng
Chương 2 Kiểm thử thành phần phần mềm
Trong chương này tổng kết cỏc vấn đề đặt ra và cỏc thỏch thức trong quỏ trỡnh kiểm thử thành phần Kiểm thử thành phần bao gồm hai đối tượng: Kiểm thử thành phần hướng người sử dụng và kiểm thử thành phần hướng người cung cấp Vậy kiểm
Trang 99
thử thành phần phần mềm cú cỏc tiờu chuẩn lý tưởng nào cần vươn tới, nội dung này cũng được trỡnh bày trong phần cuối của chương
Chương 3 Mụ hỡnh thực nghiệm kiểm thử thành phần phần mềm
Trong chương này giới thiệu và thực nghiệm xõy dựng một mụ hỡnh kiểm thử thành phần dựa trờn cỏc thuộc tính, phương thức thể hiện bờn ngoài cú thể truy xuất thụng qua giao diện Thụng qua mụ hỡnh này người dựng cú kể kiểm thử được phần mềm bất kỳ cú thỏa món cỏc yờu cầu đặt ra khụng
Chương 4 Lý thuyết độ đo và đánh giá thành phần phần mềm
Trong chương này sẽ tổng kết một số độ đo phần mềm và đặc biệt ỏp dụng đo đối với thành phần dựa trờn tiờu chuẩn ISO 9126 từ đó giới thiệu một mụ hỡnh đánh giá tính sử dụng lại của một thành phần
Chương 5 Mụ hỡnh thực nghiệm đánh giá thành phần phần mềm
Trong chương này giới thiệu và thực nghiệm xõy dựng một mụ hỡnh đo tớnh
sử dụng lại của thành phần thụng qua cỏc thụng số đo tính sử dụng lại Thụng qua mụ hỡnh này người sử dụng dễ dàng trả lời được cõu hỏi thành phần đang xem xét có sử dụng lại được không và được sử dụng ở mức nào
Trong thời gian vừa qua, được sự hướng dẫn nhiệt tỡnh của TS Huỳnh Quyết Thắng khoa Cụng nghệ thông tin – Trường Đại học Bỏch Khoa Hà Nội tôi đó hoàn thành đề
tài : KIỂM THỬ VÀ ĐÁNH GIÁ THÀNH PHẦN PHẦN MỀM TRONG PHÁT
TRIỂN PHẦN MỀM HƯỚNG THÀNH PHẦN Do thời gian cú hạn nờn chắc
chắn sẽ khụng trỏnh khỏi những thiếu sút Tụi rất mong nhận được sự gúp ý của cỏc thầy cụ và cỏc bạn
Nhân đây tôi cũng xin gửi lời cỏm ơn chân thành đến cỏc thầy cụ giỏo cựng toàn thể cỏc bạn lớp cao học CNTT-2002, đặc biệt là thầy giỏo TS Huỳnh Quyết Thắng người
đó giảng dạy và hướng dẫn tụi trong thời gian qua Tụi cũng gửi lời cám ơn tới cỏc
em sinh viờn Nguyễn Thu Thủy, Đào Ngọc Kiờn, Nguyễn Thành Kiên, Đỗ Tuấn Anh, Nguyễn Sơn, Teng Samak sinh viờn K45 Khoa Cụng nghệ thông tin – Trường đại học Bỏch Khoa Hà Nội đó giỳp đỡ tụi hoàn thành luận văn này
Hà nội, ngày 20 tháng 11 năm 2004
Người thực hiện
Vũ Thị Dương
Trang 1010
Chương 1: TỔNG QUAN VỀ THÀNH PHẦN PHẦN MỀM VÀ PHÁT TRIỂN PHẦN MỀM HƯỚNG THÀNH PHẦN
ta hiểu rằng ta đang đề cập đến khỏi niệm thành phần phần mềm
Trong chương này, tôi sẽ giới thiệu những tỡm hiểu của mỡnh về khỏi niệm thành phần phần mềm trong kỹ nghệ phần mềm hướng thành phần bằng cỏch so sỏnh nú với các môđun phần mềm truyền thống Trước tiờn chỳng ta sẽ tỡm hiểu quỏ trỡnh tiến húa của thành phần phần mềm xuất phỏt từ các chương trỡnh con đến cỏc thành phần cú thể sử dụng lại được Tiếp theo ta sẽ giới thiệu cỏc thảo luận về các định nghĩa thành phần, cỏc thuộc tớnh, cỏc yếu tố cơ bản của thành phần phần mềm đó được một số nhà nghiờn cứu trờn thế giới đưa ra Phần tiếp theo trong chương này sẽ xác định sự khỏc nhau giữa cỏc thành phần trong CBSE và các môđun phần mềm thông thường Tiếp đến là phần trỡnh bày tổng quan về kỹ nghệ xử lý đối với cỏc thành phần Cuối cựng ta sẽ đưa ra một số cõu hỏi liờn quan tới quỏ trỡnh xỏc nhận tớnh hợp lệ của thành phần và quy tắc đảm bảo chất lượng trong kỹ nghệ xử lý hướng thành phần
1.1.1 1.1.1 Quỏ trỡnh tiến húa của thành phần phần mềm
Trong thời kỳ những năm 60, 70, với kỹ thuật lập trỡnh cấu trỳc truyền thống, các chương trỡnh được xõy dựng bằng cỏch tạo ra một chương trỡnh chớnh điều khiển các chương trỡnh con Mỗi chuơng trỡnh con được lập trỡnh thực hiện một chức năng nhất định dựa trên các đặc tả và bảng phõn chia chức năng Để giảm cụng sức lập trỡnh, cỏc lập trỡnh viờn trong nhúm phỏt triển thuộc dự ỏn tỏi sử dụng lại các chương trỡnh con đó cú Vào những năm 1968 M.D Mcilory giới thiệu khỏi niệm thành phần phần mềm tại hội nghị kỹ nghệ phần mềm NATO [8] Sau sự kiện
Trang 11là sự thiếu hụt hệ phương pháp kỹ nghệ phần mềm hướng thành phần được triển khai một cỏch chặt chẽ [8]
Vào những năm 1980, công nghệ hướng đối tượng được giới thiệu Cụng nghệ hướng đối tượng cho phộp sử dụng lại phần mềm trong phạm vi rộng hơn bao gồm: sử dụng lại trong phõn tớch, thiết kế, triển khai cỏc lớp Rất nhiều các thư viện lớp C++ hướng đối tượng được phỏt triển thành cỏc gúi sử dụng lại Do đó, cụng nghệ hướng đối tượng đó lỏi quỏ trỡnh tiến húa của cụng nghệ thành phần từ các thư viện hàm sử dụng lại sang các thư viện lớp hướng đối tượng Vào những năm đầu 1990, rất nhiều cỏc tổ chức lớn như GTE, IBM, Lucent Technologies và Hewlett Packward khởi động cỏc dự ỏn sử dụng lại phần mềm huớng thương mại nhằm mục đích phát triển cỏc thành phần thương mại thuộc lĩnh vực cụ thể dựng cho cỏc dũng sản phẩm sử dụng cụng nghệ hướng đối tượng
Vào năm 1989, rất nhiều cỏc cụng nghệ hướng thành phần thúc đẩy và phỏt triển lĩnh vực mới đó là các phần mềm trung gian cú thể sử dụng lại được khi OMG (Object Management Group) bắt đầu chuẩn hóa đặc tả phần mềm trung gian mó nguồn mở
dựng cho cỏc hệ thống ứng dụng phõn tỏn và phỏt triển kiến trỳc CORBA (Common
Object Request Broker Architecture) Mục đích chính cho phép người cung cấp thành
Trang 1212
phần đưa ra các phần mềm trung gian cú thể sử dụng lại được, hỗ trợ phõn tỏn thành phần trên các đối tượng khỏc của phần mềm ứng dụng để chúng tương tác với nhau qua môi trường mạng mà khụng cần quan tâm đến vị trí địa lý của các đối tượng đó,
về ngụn ngữ lập trỡnh, về hệ điều hành, về phương thức truyền thụng hay về nền tảng phần cứng Để cung cấp thành phần cú thể sử dụng lại ở mức cao, OMG cũng chỉ rừ tập hợp cỏc dịch vụ hướng đối tượng CORBA được định nghĩa giao diện chuẩn để truy xuất cỏc dịch vụ phõn tỏn phổ biến vớ dụ như: cỏch gọi tờn, giao dịch, thậm chớ
là cỏc thụng bỏo
Khoảng mười năm sau đó, công nghiệp phần mềm tăng khả năng triển khai cỏc thành phần trung gian mang tính thương mại Quỏ trỡnh tiến húa của cụng nghệ thành phần tiến thờm một bước mới do cỏc thành phần và nền tảng của ứng dụng cú thể được sử dụng lại Vào năm 1999, Sun Microsystem công bố EJB (Enterprise JavaBeans) như một mụ hỡnh thành phần để phỏt triển và triển khai cỏc ứng dụng kinh doanh hướng thương mại Mụ hỡnh này mang đến cho nhà sản xuất thành phần, người sử dụng, người sử dụng đầu cuối, và người cung cấp một mụ hỡnh thành phần có đặc tả mó nguồn mở Mặt khỏc, mụ hỡnh này cũng cú thể được sử dụng để phỏt triển cỏc hệ thống phần mềm ứng dụng sử dụng thành phần phần mềm Cụng nghệ EJB được thiết
kể để cung cấp cho người phỏt triển ứng dụng môi trường phân tán đồng thời đáp ứng nhiều tính năng phức tạp trong quỏ trỡnh tớnh toán phân tán như: quản lý giao dịch, quản lý đa tuyến
Trong lúc đó sự xuất hiện của COM (Component Object Model ) trờn nền tảng PC
thỡ COM+ lại là nền tảng cụng nghệ thiết kế hỗ trợ phỏt triển cỏc ứng dụng phõn tỏn trờn phạm vi rộng trong môi trường Windows Rất nhiều các chuyên gia tin tưởng rằng COM+ sẽ tạo nờn sự phỏt triển nhanh chóng đối với cỏc ứng dụng chạy trờn hệ điều hành Windows 2000 sớm hơn bởi vỡ mụi trường triển khai chương trỡnh lỳc thực hiện (runtime) COM+ cung cấp nền tảng để xõy dựng cỏc ứng dụng thương mại phõn tỏn
Gần đây, một số phương thức phỏt triển hướng thành phần được cụng bố hỗ trợ phỏt triển hệ thống hướng thành phần Chessman và Daniel’s UML component [8],
Trang 1313 D’Souza và Will’s Catalysis [9], Herxum và Sim’s Bussines Component Factory [10]
là cỏc vớ dụ điển hỡnh Hệ phương pháp hướng thành phần cung cấp cho cỏc kỹ sư quá trỡnh xử lý rừ ràng cỏc phộp phõn tớch và mụ hỡnh đặc tả cũng như các hướng dẫn về kỹ thuật
1.1.2 1.1.2 Tại sao cỏc thành phần phần mềm sử dụng lại là quan
trọng
Mặc dự khỏi niệm sử dụng lại thành phần phần mềm được giới thiệu từ năm 1968 nhưng lai không thu hút được nhiều sự quan tõm trong cụng nghiệp phần mềm, cho tới những năm cuối của thập kỷ 80 Sau đó độ phức tạp của phần nềm tăng lên với tốc độ rất nhanh đũi hỏi người cung cấp phần mềm phải tỡm kiếm các phương thức
cú hiệu quả kinh tế cao để xõy dựng hệ thống phần mềm phức tạp nhưng lại cú vũng đời phỏt triển ngắn để phự hợp với cỏc yờu cầu thị trường Thành phần sử dụng lại dựa trờn cỏc thành phần cú chất lượng cao, vỡ thế vấn đề này trở nờn rất phổ biến trong cụng nghiệp phần mềm cựng với cỏc lợi ớch của nó đem lại: giảm thời gian và chi phớ xõy dựng Các công ty như IBM Lucent Techologies và GTE [9] khởi động dựa ỏn sử dụng lại thành phần hướng thương mại để phỏt triển các thư viện thành phần cú thể sử dụng lại được nội bộ
Từ năm 1995 công nghệ thụng tin và cỏc dịch vụ quảng cỏo phỏt triển với tốc độ nhanh do sự phổ biến của internet và cụng nghệ cao [11] Vớ dụ theo tổ chức cụng nghiệp dịch vụ thụng tin Nhật bản (JISA), thị trường dịch vụ thông tin tăng 100.000.000$ năm 1999 Thị trường thay đổi tạo ra một lực đẩy mạnh mẽ thúc đẩy
hệ thống dịch vụ thụng tin phỏt triển trong phạm vi rộng cũng như các ứng dụng thương mại điện tử trờn internet phỏt triển Để thỏa món cỏc yờu cầu đó, thị trường
và cụng nghiệp phần mềm cú sự thay đổi để phõn chia cỏc hệ thống thụng tin web base trờn phạm vi lớn
Thế nào là một thành phần phần mềm
Thế nào là một thành phần phần mềm? Một cõu hỏi được đặt ra với rất nhiều người
và cõu trả lời nhận được cũng rất khỏc nhau bất kể người đó là người phỏt triển hệ thống, cỏc nhà quản lý, nhà nghiờm cứu hay những người làm cụng tỏc kiểm thử
Trang 1414
Một trong những lý do dẫn đến sự khỏc nhau nay là: thành phần phần mềm khỏc với môđun phần mềm truyền thống mặc dự cả hai lĩnh vực trên đều định nghĩa về khỏi niệm “bulding part” (phần xõy dựng) trong hệ thống phần mềm Những năm về trước, người ta xem các môđun phần mềm là khỏi niệm mặc định khi núi tới thành phần phần mềm Trong những năm gần đây, do cú những bước tiến của kỹ nghệ phần mềm hướng thành phần, một số chuyên gia đó định nghĩa “thành phần phần mềm” theo một số cách khác nhau Đó cũng chính là các cách hiểu khỏc nhau về khỏi niệm thành phần phần mềm
Sau đây chúng ta sẽ xem xột một vài định nghĩa điển hỡnh đuợc các chuyên gia đưa
ra về thành phần phần mềm Một trong những định nghĩa gần đây nhất được Gready Booch đưa ra [12] như sau
- Một thành phần phần mềm cú thể sử dụng lại được là sự kết dính logic các
môđun gắn kết khụng chặt biểu thị cho một khỏi niệm trừu tượng đơn lẻ
Định nghĩa này đề cập đến ý tưởng: một thành phần sử dụng lại là một môđun phần mềm đóng gói bao hàm tất cả cỏc nhõn tố thành phần liờn quan
Sau Gready Booch, Clement Szypersky lại định nghĩa cụ thể về thành phần phần mềm tại hội nghị chõu Âu về lập trỡnh hướng đối tượng như sau[13]
- Một thành phần phần mềm là một đơn vị cấu thành kết hợp với cỏc giao diện
cụ thể được thỏa thuận trước và chỉ phụ thuộc vào ngữ cảnh Một thành phần phần phần mềm cú thể được triển khai độc lập và cũng cú thể là cơ hội cho bờn thứ ba sử dụng lại
Định nghĩa này được đánh giá là một định nghĩa tốt trong cộng đồng kỹ nghệ phần mềm hướng thành phần vỡ: định nghĩa này nờu bật được cỏc thuộc tớnh chớnh của cỏc thành phần phần mềm như: độc lập về ngữ cảnh, cấu tạo, triển khai và cỏc giao diện thỏa thuận trước Giao diện được thoả thuận trước ở đây có nghĩa là thành phần này được hóng đặt hàng ký hợp đồng xõy dựng với một hóng thứ ba Thành phần phần mềm này sẽ được lắp ghộp với hệ thống cần xõy dựng chỉ quan tõm tới chức năng nó thực hiện (theo nội dung ghi rừ trong hợp đồng) mà khụng quan tõm tới việc
Trang 1515
nó được viết bằng ngụn ngữ gỡ, tổ chức dữ liệu và giải thuật ra sao Năm 2000, có
một định nghĩa mang tớnh chất tổng quát hơn được Alan W.Brown [8] giới thiệu
- Một thành phần mềm là một mẫu chức năng có thể phân chia được một cách
độc lập và cú thể truy xuất tới cỏc dịch vụ của nú thụng qua giao diện
í kiến tương tự cũng được thể hiện trong ngụn ngữ UML [3] như sau:
- Một thành phần thể hiện một phần của hệ thống được lắp rỏp, cú thể triển khai
và thay thế được Cỏc thành phần này đóng gói các thao tác thực hiện tương ứng với cỏc giao diện của nú
Gần đây, Bill Councill và George T.Heuneman đưa ra một định nghĩa mới nhấn mạnh tớnh quan trọng của mụ hỡnh thành phần nhất quỏn cựng với cỏc tiờu chuẩn cấu tạo khi xõy dựng thành phần và phần mềm hướng thành phần [3]
Để cú thể hiểu đơn giản khỏi niệm thành phần ta chia khỏi niệm thành phần ra làm
ba loại: (1) Các môđun có thể sử dụng lại được; (2) Cỏc thành phần cú thể sử dụng lại được; (3) Bản tổng hợp cỏc khối xõy dựng
- Môđun có thể sử dụng lại được là một đơn vị phần mềm không độc lập nhưng
lại cú thể phân chia được Thành phần này đóng gói các đặc tả chức năng, các thao tác hoạt động để bờn thứ ba cú thể sử dụng lại được
- Một thành phần cú thể sử dụng lại được là một đơn vị phần mềm độc lập, cú
thể triển khai và thay thế được Đối với thành phần này ta hoàn toàn cú thể sử dụng lại được thụng qua bờn thứ ba phụ thuộc vào đặc tả, quỏ trỡnh thực thi
và cỏc giao diện được yờu cầu rừ ràng
Trang 1616
- Một bản tập hợp khối xõy dựng là một thành phần cú thể sử dụng lại được,
được phỏt triển như một phần trong quỏ trỡnh xõy dựng tuõn theo mụt mụ hỡnh thành phần cụ thể và thỏa món cỏc tiờu chuẩn cấu tạo đề ra
Cụ thể hơn, khái niệm môđun có thể sử dụng lại đề cập đến ở đây xuất phỏt từ ý tưởng
sử dụng lại truyền thống mà tại đó một số lượng lớn các môđun chức năng là trọng tâm được đề cập Khỏi niệm này rất hữu dụng giỳp ớch cỏc kỹ sư xây dựng cũng như
kỹ thuật viờn kiểm thử nếu quan tâm đến các môđun phần mềm cú thể sử dụng lại được sinh ra từ quỏ trỡnh thực hiện kỹ nghệ phần mềm truyền thống Khỏi niệm cỏc thành phần cú thể sử dụng lại được đưa ra ở trờn nhấn mạnh chất lượng sản phần phần mềm cú thể sử dụng lại được với điều kiện cỏc giao diện đó được thỏa thuận Khỏi niệm thành phần phản chiếu trạng thỏi chấp nhận hiện tại của cụng nghệ hướng thành phần vỡ thế khỏi niệm này rất bổ ớch cho cỏc kỹ sư, nhõn viờn kiểm thử trong cỏc dự án hướng thành phần Khỏi niệm xõy dựng bản tập hợp khối xõy dựng khụng chỉ đặt chỳ ý tới sử dụng lại thành phần mà cũn nhấn mạnh tới cấu tạo thành phần í tưởng cỏc khối xõy dựng vỡ thế là một khỏi niệm rất quan trọng, nú thể hiện khuynh huớng tương lại và hiện tại của cụng nghệ thành phần
Tớnh từ COTS (commercial off the shelf) muốn đề cập đến một loại thành phần đặc biệt, thiết kế đặc biệt cho mục đích được phỏt triển và trao đổi trong môi trường CBSE Theo [6]: ”COTS là một thực thể mang tính thương mại (cú thể được cấp giấy phộp, hoặc được bán) cho phép đóng gói, phân phối, lưu trữ, sửa chữa và tuỳ biến theo ý người sử dụng Những thành phần này thường lớn và “nằm” trong cỏc kho phần mềm”
1.1.3 1.1.3 Cỏc thuộc tớnh của thành phần trong phần mềm hướng thành phần
Núi tới cỏc thuộc tớnh của thành phần, người ta núi tới các đặc điểm cần thiết của nú Ngày nay, người ta hy vọng rằng kỹ nghệ phần mềm hướng thành phần cú thể làm đơn giản quỏ trỡnh xõy dựng phần mềm hướng thành phần Theo cỏc sỏch xuất bản gần đây nhất về kỹ nghệ phần mềm hướng thành phần [3, 4, 5], người ta tổng kết cỏc thuộc tớnh của thành phần theo hai nhúm: nhúm cỏc thuộc tính cơ bản và nhúm cỏc
Trang 1717
thuộc tớnh nõng cao Nhúm cỏc thuộc tính cơ bản núi tới các tính năng cần thiết của thành phần, nhúm cỏc thuộc tớnh nõng cao núi tới các tính năng yêu cầu xuất hiện duy nhất cú trong cỏc thành phần hiện đại
Một phần mềm trong CBSE phải bao hàm cỏc thuộc tính cơ bản sau
- Định danh Mỗi một thành phần phải cú một định danh duy nhất trong môi
trường phỏt triển cũng như môi trường triển khai Nếu đặc tính này không được đề cập, thỡ việc sử dụng lại cỏc thành phần trong một phạm vi rất rộng
là khụng thực hiện được Cỏc cụng nghệ thành phần hiện đại đảm bảo điều này bằng cỏch sử dụng sơ đồ đặt tờn chuẩn (rành mạch) CORBA, EJB, và
DCOM là cỏc vớ dụ điển hỡnh
- Môđun hóa và đóng gói Cỏc thành phần phần mềm nhận được từ quỏ trỡnh
phõn chia hệ thống phần mềm bằng cách tâp trung môđun hóa hệ thống Mỗi một thành phần đóng gói tập cỏc yếu tố dữ liệu liờn kết lõn cận và cỏc cố kết
logic thuộc cỏc chức năng để thực hiện một cụng việc cụ thể
- Phân chia độc lập: Cỏc thành phần phần mềm phải được phõn chia thành cỏc
phần độc lập Mỗi một phần cú thể được thay thế bằng các điều kiện cụ thể Mỗi một phần thực hiện một vài trũ chức năng riêng biệt trong một hệ thống
và hỗ trợ một cụng việc cụ thể trong môi trường điều hành đích Các thành phần COTS của bờn thứ ba phải được độc lập phõn chia tới người sử dụng thành phần dưới dạng cỏc phần riờng biệt để cấu tạo nờn một hệ thống hướng thành phần
- Cỏc giao diện dựa trờn thỏa thuận trước Giao diện giữa hai thành phần định
nghĩa một thỏa thuận giữa khỏch và nhà cung cấp triển khai[3].Mỗi một thỏa thuận chỉ ra khỏch nào phải sử dụng giao diện nào để truy cập đến cỏc chức năng dịch vụ của thành phần Giao diện này cũng định nghĩa loại dịch vụ nào
và sự thực hiện nào phải được cung cấp để thỏa đáng với cỏc hợp đồng dịch
vụ đó cú Gợi ý này núi tới một thành phần phõn chia dịch vụ cung cấp của mỡnh chỉ khi khỏch của nú truy xuất đến giao diện thành phần được cung cấp theo cỏch cho phộp
Trang 1818
- Sử dụng lại: Tớnh sử dụng lại của cỏc thành phần phần mềm là chỡa khúa cho
sự thành cụng của kỹ nghệ phần mềm hướng thành phần Môđun phần mềm thụng thuờng luụn luụn cú phạm vi sử dụng lại rất hạn chế bởi: các môđun phần mềm này được phỏt triển cho một dự ỏn cụ thể Tuy nhiờn, thành phần hiện đại cung cấp cỏc cấp độ khác nhau để cú thể sử dụng lại được trong phạm
vi rộng Cỏc yếu tố cú thể sử dụng lại của cỏc thành phần bao bao gồm đặc tả phõn tớch, thiết kế, cỏc mẫu thiết kế, mó nguồn cũng như các yếu tố cú thể thực hiện được Bờn cạnh đó, kỹ thuật triển khai thành phần và cỏc thụng tin
hỗ trợ kiểm thử (như kiểm thử theo từng chức năng, kiểm thử điều kiện) cũng
là cỏc mục cú thể sử dụng lại được Cỏc phần tự xõy dựng đó có thể được sử dụng khụng những giữa cỏc tổ chức khỏc nhau mà cũn được sử dụng trong
cỏc dự ỏn khỏc nhau, cỏc dũng sản phẩm khỏc nhau
Cỏc thành phần hiện đại cú thể sử dụng lại được và cỏc khối xõy dựng thụng những minh họa cỏc thuộc tính cơ bản mà cũn xử lý cả những thuộc tính nâng cao được giới thiệu như:
- Đóng gói và khả năng tùy biến: Cỏc thuộc tính này đề cập đến khả năng tùy
biến và đóng gói chức năng được xõy dựng bờn trong thành phần dựa trờn cỏc cỏch tiếp cận rừ ràng Tớnh năng này đảm bảo rằng cỏc thành phần cú thể được tựy biến và đóng gói phù hợp với các đặc tả thành phần đó đưa ra Tính năng này nâng cao tính sử dụng lại thành phần Cỏc thành phần với cỏc thuộc tính được biết đến như là các thành phần cú thể tựy biến được bởi vỡ chỳng
cú thể đuợc cấu hỡnh lại và đóng gói thông qua quá trỡnh thu thập cỏc thành
phần siờu dữ liệu, các tính năng chức năng và các giao diện
- Quỏ trỡnh triển khai Thành phần phần mềm được xem như quá trỡnh triển
khai nếu trong thành phần cú thuộc tớnh hỗ trợ triển khai bao gồm cỏc cỏch xõy dựng tiếp cận triển khai cụ thể sau khi nó được tựy biến, đóng gói và cài đặt trong một môi trường điều hành cụ thể Cỏch tiếp cận triển khai thường hỗ trợ quỏ trỡnh tạo mới Điều này núi lờn rằng thành phần cú thể thực thi được
trong môi trường triển khai đích
Trang 1919
- Tính đa hỡnh và thể hiện bội Một thành phần phần mềm cú thể cú nhiều hơn
một thể hiện triển khai trong môi trường thao tỏc Với tất cả cỏc thể hiện triển khai thi hành cựng một tập chức năng, các thể hiện này phải chia sẻ giao diện
và cỏc tính năng phổ biến khỏc với nhau Tuy nhiờn, cỏc thành phần nên được xem như các thể hiện khỏc nhau bởi vỡ chỳng cú cỏc tựy biến khỏc nhau, cỏc lựa chọn đóng gói khác nhau, các dữ liệu thao tỏc khỏc nhau, cỏc cụng việc
thực hiện, cỏc trạng thái động trong mụi trường thao tỏc cũng khỏc nhau
- Thao tỏc giữa cỏc thành phần: Thao tỏc giữa cỏc thành phần núi tới khả năng
hỗ trợ cỏc thao tỏc truyền thống và các thay đổi dữ liệu giữa cỏc thành phần Cỏc thành phần cú thể thao tác được nếu chúng được phỏt triển dựa trờn cỏc kờnh truyền thụng chuẩn và kỹ thuật chuyển đổi dữ liệu được định nghĩa trong
mụ hỡnh thành phần Hiện tại cú hai kiểu thao tỏc giữa cỏc thành phần: thao tỏc cục bộ và điều khiển từ xa Thao tỏc giữa cỏc thành phần cục bộ núi tới khả năng tương tác các thành phần trong môi trường mỏy chủ trung tõm Thao tỏc với cỏc thành phần từ xa núi tới tương tác giữa cỏc thành phần thông qua môi trường mạng Thao tỏc giữa cỏc thành phần ở xa dựa trờn khỏi niệm phương thức điều khiển từ xa gọi là (RMCs) là một mở rộng của thủ tục gọi
từ xa (RPCs) giữa hai quỏ trỡnh xử lý khỏc nhau trong mụi trường mạng
- Thành phần cấu tạo: Cỏc thành phần là một bản tổng hợp nếu cỏc thành phần
này được phỏt triển dựa trên phương pháp cấu tạo chuẩn hỗ trợ tạo thành phần Núi theo một cỏch khỏc, mối quan hệ kết tập tổng hợp giữa cỏc thành phần được hỗ trợ trong môi trường hoạt động vỡ thế cỏc thể hiện thành phần cú thể tạo ra và hủy bỏ phần kết tập của nú Hỗ trợ liờn kết tổng hợp này đũi hỏi phải
cú kỹ thuật định danh duy nhất đối với phần tổng hợp vỡ thế bổ sung tự nhiờn liờn kết tổng hợp giữa cỏc thành phần cú thể được quản lý một cỏch dễ dàng: nghĩa là nếu C là một phần của A, E là một phần của C thỡ E cũng là một phần của A Cỏc thành phần nếu là cỏc phần xõy dựng trong quỏ trỡnh phỏt triển phần mềm hướng thành phần thỡ cỏc thuộc tớnh cấu tạo nờn nú rất quan trọng
để phỏt triển cỏc thành phần phức tạp
Trang 2020
- Mụ hỡnh phự hợp: Nghĩa là, sự thực thi thành phần phải tuõn theo mụ hỡnh
thành phần được định nghĩa trước bao gồm cỏc chuẩn mực liờn quan Núi cỏch khỏc, cỏc thành phần phải được phỏt triển dựa trờn mụ hỡnh kiến trỳc thành phần cụ thể, cỏc kiểu giao diện, cỏc kỹ thật hỗ trợ các tương tác, cấu tạo, đóng gói và triển khai Để thực thi thành phần dựa trờn mụ hỡnh thành phần cụ thể
cú cỏc chuẩn liệt kê các tính năng yêu cầu và cỏc ý tưởng cỏc thành phần cú thể sử dụng lại được hỗ trợ quỏ trỡnh xõy dựng phần mềm hướng thành phần
1.1.4 1.1.4 Cỏc yếu tố cơ bản của thành phần phần mềm
Thế nào là cỏc yếu tố cơ bản của thành phần phần mềm Thế nào là quỏ trỡnh phỏt triển thành phần cú thể phân chia được Trong mục này, chỳng ta sẽ trả lời cỏc cõu hỏi dựa trờn cỏc so sỏnh giữa các môđun, giữa thành phần và giữa bản tổng hợp cỏc khối xõy dựng
Môđun phần mềm cú thể sử dụng lại được thường bao gồm năm yếu tố cơ bản: (1) đặc tả yờu cầu (yếu tố này chỉ ra chức năng, các yêu cầu thể hiện của nú); (2) giao diện (yếu tố này xác định làm thế nào các môđun tương tác được với nhau); (3) đặc
tả thiết kế (yếu tố này ghi lại và mụ tả thiết kế dựa trờn cỏc logic chức năng, các cấu trỳc dữ liệu và cỏc hành vi ứng xử của nú); (4) thực thi (yếu tố này bao gồm mó nguồn
cú thể thực hiện được trong môi trường điều hành cụ thể vớ dụ như nền tảng phần cứng mỏy tớnh, hệ điều hành); (5) đặc tả kiểm thử và bỏo cỏo (yếu tố này bao gồm kiểm thử và môi trường kiểm thử điều kiện, cỏc bỏo cỏo) Hỡnh 1.1.a chỉ ra tất cả mọi khả năng có thể phân chia được của môđun phần mềm Chỉ cú ba khoản mục đầu tiên được thể hiện đối với cỏc client trừ khi mó nguồn của thành phần được thiết kế
cú khả năng sử dụng lại được
Trang 2121
Hỡnh 1.1 Cỏc phần cú thể phân chia được, (a) phần cú thể phân chia được của môđun có thể sử dụng lại được, (b) phần cú thể phõn chia của cỏc thành phần
cú thể sử dụng lại được, (c) bản tổng hợp cỏc khối xõy dựng
Tương tự như các môđun có thể sử dụng lại được, thành phần cú thể sử dụng lại được cũng cú năm yếu tố: tài liệu đặc tả yếu cầu, tài liệu thiết kế, giao diện, mó nguồn, chương trỡnh thực thi, tài liệu xỏc nhận tớnh hợp lệ và bỏo cỏo kiểm thử Tuy nhiờn thành phần cú thể sử dụng lại được khỏc với môđun phần mềm ở hai điểm (1) giao diện của môđun thông thường được thiết kế để hỗ trợ truy xuất từ bờn ngoài tới cỏc chức năng bên trong và các tương tác của nú tới các môđun khác Giao diện của thành phần cú thể sử dụng lại được xem là cỏc giao diện dựa trờn cỏc thỏa thuận trước Cỏc giao diện này định nghĩa thỏa thuận giao diện khỏch hàng yờu cầu và người cung cấp cỏc thực thi đối với giao diện đó Giao diện của thành phần dựa trờn thỏa thuận trước
cú thể được phõn chia thành hai loại: một là giao diện nhập khẩu: thụng qua yếu tố này, cỏc thành phần chứa đựng dịch vụ của cỏc thành phần khỏc; hai là tương tác hỗ trợ: thụng qua yếu tố này, cỏc thành phần khỏc cú thể bao gồm dịch vụ của cỏc thành phần đang xét
Điểm khỏc biệt liờn quan tới môi trường điều hành thành phần nữa là: trong dự ỏn phần mềm thông thường, quỏ trỡnh thiết kế và triển khai môđun lần lượt phụ thuộc hoàn toàn vào môi trường điều hành và cụng nghệ, bởi vỡ thiết kế này được tạo ra cho một dự ỏn cụ thể Thiết kế thành phần và sự thực thi phải luôn được thực hiện dựa vào môi trường điều hành và cụng nghệ cụ thể
Như chỉ ra trong 1.1(b), thành phần cú thể sử dụng lại được cú nhiều hơn hai yếu tố
so với môđun sử dụng lại: (1) điều kiện triển khai dễ dàng nghĩa là sản phẩm cú thể được triển khai độc lập, (2) tài liệu quản lý chất lượng như: tài liệu kiểm thử, độ đo, bỏo cỏo chứng nhận Điều này cú nghĩa là quỏ trỡnh quản lý chất lượng cụ thể và cỏc tiờu chuẩn khi thay thế người cung cấp thành phần bằng các điều khiển và các phương pháp quản lý chất lượng như các sản phần cuối cựng
Như chỉ ra trong hỡnh 1.1(c) bản tổng hợp khối xõy dựng bao gồm cỏc yếu tố thực thi mụ hỡnh thành phần Bản tổng hợp này núi tới sự tập trung và thực thi mụ hỡnh
Trang 2222
thành phần hỗ trợ khả năng tùy biến, đóng gói và triển khai Yếu tố này tạo nờn sự thớch nghi khi phỏt triển thành phần dựa trờn mụ hỡnh cụ thể và cỏc tiờu chuẩn đi kèm [8], các định nghĩa, cỏc cỏch tiếp cận cũng như các kỹ thuật để tựy biến, đóng gói, triển khai thành phần Tương tự như các thành phần cú thể sử dụng lại, bản tổng hợp khối xõy dựng cũng bao gồm đặc tả, thiết kế, thực thi và tương tác Nếu bản tổng hợp cú thể tựy biến được thỡ cũng giống như đặc tả thành phần nú cú thể bao gồm nhiều thiết kế và cỏc thực thi của cựng giao diện, các tính năng thành phần tương tự với mỗi một đáp ứng của cụng nghệ cụ thể và môi trường điều hành xác định
1.1.5 1.1.5 So sỏnh thành phần phần mềm và các môđun phần mềm truyền thống
Trong cỏc phần trước, chúng ta đó tỡm hiểu một số điểm khỏc nhau chớnh giữa cỏc thành phần sử dụng lại và các môđun bao gồm: cỏc khỏi niệm, cỏc nhõn tố, khả năng phân chia và các thuộc tính Sau đây chúng ta sẽ xem xột so sỏnh giữa hai lĩnh vực này trong bảng 1.1
Bảng 1.1: Bảng so sánh môđun phần mềm truyền thống và phần mềm hướng thành phần
Xõy dựng chức năng có chất lượng dựng trong một hệ thống
cụ thể thuộc một dự ỏn phần mềm cụ thể
Mục tiờu phỏt
triển
Phỏt triển phần mềm chất lượng cao dựa trờn cỏc chuẩn
và cỏc giao diện được thỏa thuận trước bằng cỏch sử dụng
mụ hỡnh thành phần chuẩn
Phỏt triển các môđun chất lượng cao cú cấu trỳc logic và cỏc hành vi ứng xử tốt
Người phỏt
triển
Cỏc kỹ sư phát triển thành phần Cỏc lập trỡnh viờn hoặc cỏc kỹ
sư phần mềm Người sử dụng Người phỏt triển hệ thống ứng
dụng và cỏc kỹ sư tích hợp hệ thống
Lập trỡnh viờn hệ thống
Trang 23Quy trỡnh phỏt triển hướng hệ thống điều khiển và quản lý quỏ trỡnh phỏt triển các môđun
Phõn tớch và
thiết kế
- Phỏt hiện cỏc mục của những thành phần cú thể sử dụng lại được
- Tập trung vào phương pháp hộp đen và các giao diện
- Tuõn theo mụ hỡnh thành phần
- Tập trung vào phương pháp hộp trắng và mó húa
- Sử dụng mụ hỡnh miền phi thể thức
- Áp dụng phương pháp phân tớch thiết kế hướng cấu trỳc hoặc hướng đối tượng hoặc cỏc hệ phương pháp phân tích thiết kế khỏc
- Dựa trờn cụng nghệ cụ thể trong môi trường điều hành ẩn Thuộc tớnh - Định danh duy nhất trong môi
trường thao tỏc toỏn tử
- Giao diện dựa trờn thỏa thuận trước được xác định bằng định dạng chuẩn
- Điều chỉnh và đóng gói logic chức năng và dữ liệu
- Thuộc tớnh cú thể sử dụng lại trong cỏc phạm vi khỏc nhau
- Đóng gói và triển khai
- Tương tác giữa cỏc thành phần
- Giao diện người dựng xõy dựng cụ thể với định dạng phi thể thức
- Môđun hóa các hàm
- Phụ thuộc ẩn vào cụng nghệ
cụ thể và môi trường điều hành đích
Trang 24Khụng cú mụ hỡnh thành phần hay cỏch tiếp cận nhất quỏn hỗ trợ tương tác, đóng gói và triển khai thành phần
Yếu tố sử
dụng lại
Tóm lược thành phần, thư viện cỏc hàm/lớp sử dụng lại Cỏc gúi hoặc các môđun, môi trường, mỏy chủ ứng dụng
Thủ thục/chương trỡnh con, lớp, môđun
Phạm vi sử
dụng lại
Sử dụng lại trong phạm vi rộng:
Cỏc dự ỏn khỏc nhau, cỏc dũng sản phẩm, cỏc tổ chức
Sử dụng lại trong phạm vi hẹp: cỏc dự ỏn, cỏc dũng sản phẩm hoặc cỏc tổ chức
Khả năng phân
chia
Đặc tả thành phần, phõn tớch, thiết kế, mó nguồn, cỏc yếu tố
cú thể thực thi được, giao diện, hướng dẫn người dựng, chất lượng phép đo, bỏo cỏo
Đặc tả môđun, thiết kế, mó nguồn, cỏc yếu tố cú thể thực thi được, hướng dẫn người sử dụng
Quản lý chất
lượng
Quỏ trỡnh quản lý chất lượng chặt chẽ điều khiển chất lượng của thành phần cú thể sử dụng lại được
Chỉ quỏ trỡnh quản lý chất luợng xỏc nhận hợp lệ chất lượng của môđun phần mềm
do tập trung vào cỏc chức năng
Trang 2525 gói không được thực thi như một phần của môđun Vỡ thế các môđun này thường không được phỏt triển thành cỏc sản phẩm cuối cựng cú thể phõn chia và triển khai một cách độc lập Hầu hết các môđun phần mềm được phỏt triển trong một môi trường điều hành đích cụ thể do đó tính sử dụng lại trong các môi trường ngữ cảnh khỏc nhau
- Làm thế nào tớnh sử dụng lại của một thành phần được xỏc nhận là hợp lệ?
- Làm thế nào tính tương tác lẫn nhau của một thành phần được xỏc nhận hợp lệ?
- Làm thế nào để đảm bảo một thành phần được phỏt triển tuõn theo mụ hỡnh thành phần?
- Làm thế nào để kiểm tra đóng gói và triển khai của một thành phần là chớnh xỏc?
- Làm thế nào để kiểm tra thành phần được tựy biến đúng và đó hoàn thành? Trong kỹ nghệ phần mềm hướng thành phần, cỏc kỹ sư phần mềm phỏt triển thành phần tương tự như các phần cú thể sử dụng lại cao mà bờn thứ ba có cơ hội sử dụng lại thụng qua dũng sản phần và cỏc tổ chức Mục tiờu chớnh là tạo ra cỏc khối xõy dựng cú thể sử dụng lại được đảm bảo cỏc giao diện dựa trờn thỏa thuận và chúng được sử dụng lại ở mức cao, cú thể đóng gói và triển khai dễ dàng được Quỏ trỡnh phỏt triển phần mềm hướng thành phần là quỏ trỡnh phỏt triển sử dụng lại tập trung vào tớnh sử dụng lại thành phần, tương tác giữa chúng cũng như các cấu tạo Để xõy dựng cỏc khối phần mềm cú thể sử dụng lại tốt, cỏc kỹ sư phần mềm thực hiện quỏ trỡnh xử lý này dựa trờn cỏc mụ hỡnh thành phần cụ thể bao gồm cỏc chuẩn thành
Trang 2626
phần nhất quỏn, cỏch tiếp cận hỗ trợ tương tác, tùy biến, đóng gói và triển khai Trước khi bắt đầu quỏ trỡnh phỏt triển thành phần, cỏc phõn tớch miền thành phần
và cỏc mụ hỡnh được thực hiện đầu tiên để dưa ra mô hỡnh trao đổi miền xác định
hỗ trợ định nghĩa yờu cầu của thành phần Trong quỏ trỡnh quỏt triển thành phần, cỏc
kỹ sư sử dụng mụ hỡnh UML hướng thành phần để định nghĩa thành phần thụng qua cỏc ca sử dụng, cỏc cấu trúc hướng đối tượng và cỏc hành vi ứng xử
Kết quả của quỏ trỡnh xử lý này là kiểu của cỏc phần khỏc nhau cú thể sử dụng lại được bao gồm: cỏc thành phần sử dụng lại được, các thư viện, cỏc gúi, cỏc nền tảng, các môi trường và cỏc mỏy chủ ứng dụng
Để đảm bảo chất luợng thành phần cần cú quỏ trỡnh xỏc nhận tớnh hợp lệ chất lượng thành phần cụ thể và quỏ trỡnh quản lý nú Quỏ trỡnh này kiểm tra cỏc hàm thành phần, cỏc ứng xử và quỏ trỡnh xỏc nhận tớnh sử dụng lại chớnh xỏc trong ngữ cảnh
sử dụng lại đích Để sử dụng lại khối xõy dựng, quỏ trỡnh thụng qua chất lượng và quỏ trỡnh quản lý phải khẳng định rằng mụ hỡnh thành phần đó được lựa chọn và cỏc tiờu chuẩn là chớnh xỏc
Vậy sự khỏc nhau giữa thành phần phần mềm và cỏc lớp phần mềm là gỡ? Một lớp trong chương trỡnh là một kiểu của đối tượng lớp Mỗi lớp trong đơn vị chương trỡnh đóng gói tập cỏc hàm và cỏc thuộc tớnh dữ liệu Vỡ thế đó là một khỏi niệm lập trỡnh Trong khỏi niệm thành phần, một lớp cú thể được coi như một thành phần cú thể sử dụng lại được nhưng không hỗ trợ triển khai do cú sự chiếm hữu cỏc thuộc tớnh phổ biến bao gồm: mật độ, quỏ trỡnh đóng gói, tính sử dụng lại, tính đa hỡnh, cấu tạo Cỏc lớp khụng là bản tổng hợp cỏc khối xõy dựng do khụng cú mụ hỡnh tiờu chuẩn nào và cỏc kỹ thuật nào hỗ trợ tương tác, đóng gói, triển khai lớp mặc dự cỏc mẫu lớp cho phộp cỏc lập trỡnh viờn tựy biến về lớp và về cỏc kiểu siờu dữ liệu cũng như các hàm chức năng
1.1.6 1.1.6 Kỹ nghệ xử lý đối với thành phần phần mềm
Kỹ nghệ xử lý phần mềm cụ thể đóng một vai trũ quan trọng trong quỏ trỡnh quản lý cỏc dự ỏn phần mềm Nó cho phép người quản lý dự ỏn và cỏc kỹ sư đều khiển quản
Trang 2727
lý cỏc dự ỏn phần mềm một cỏch cú hệ thống Tương tự như vậy, xõy dựng cỏc thành phần phần mềm cần cú kỹ nghệ xử lý rừ ràng để điều khiển cỏc hoạt động phỏt triển thành phần Quỏ trỡnh phỏt triển thành phần bao gồm sáu nhóm người sau:
- Kỹ sư thành phần: người thực hiện phân tích, đánh giá, thực thi theo hụ hỡnh
thành phần cựng với cỏc chuẩn về hướng dẫn Cỏc kỹ sư thực hiện kiểm thử đơn vị thành phần trong môi trường điều hành đích
- Quản lý kỹ thuật: người đứng đầu dự ỏn phỏt triển phần mềm với cỏc cụng
việc quản lý và điều phối cỏc hoạt động khỏc nhau của dự ỏn
- Tổ chức bảo đảm chất lượng: người định nghĩa kế hoạch kiểm thử thành phần,
quỏ trỡnh quản lý chất lượng, cỏc chuẩn, độ đo chất lượng của quỏ trỡnh tiến hũa đối với thành phần Tổ chức này cũng quản lý chất lượng thực hiện để đảm bảo rằng sự phự hợp của tất cỏc cỏc cấu trỳc của thành phần phự hợp với
mụ hỡnh thành phần đó được định nghĩa trước
- Nhà hỗ trợ kỹ thuật thành phần: người được chỉ định thực hiện bảo trỡ cỏc
thành phần trong hệ thống phần mềm sau khi chúng được giao cho khỏc hàng
- Người viết tài liệu kỹ thuật: người này chịu trỏch nhiệm viết tài liệu hướng
người sử dụng Hỡnh 1.2 chỉ ra kỹ nghệ xử lý thành phần đối với cỏc thành phần Nú là một quỏ trỡnh xử lý lặp đi lặp lại bao gồm theo sỏu pha:
o Phõn tớch: Trong pha này, toàn bộ yờu cầu của thành phần được tập hợp lại, phân tích và xác định dựa trờn hệ phương pháp cụ thể như là UML [17] Kết quả của pha này là tài liệu đặc tả thành phần
o Thiết kế: Trong pha thiết kế, cỏc kỹ sư xây dựng thiết kế dựa trên đặc
tả yờu cầu thành phần ở bước trước Thiết kế thành phần bao gồm ba cụng việc: (1) xõy dựng thiết kế thành phần cho cỏc logic chức năng và các đối tượng dữ liệu ra quyết định phự hợp với cụng nghệ và môi trường thao tỏc (2) Cho phộp mụ hỡnh thành phần lựa chọn và làm việc trờn nhận thức rừ thành phần bằng cỏch cung cấp kỹ thuật thay đổi
dữ liệu khi tương tác và truyền thông (3) định nghĩa cỏc tiếp cận nhất
Trang 2828 quán để hỗ trợ đóng gói và triển khai thành phần Kết quả của pha này
là cỏc tài liệu thết kế thành phần
o Mó húa: Trong pha này, thực thi thành phần là quỏ trỡnh tiến hành sử dụng cụng nghệ và ngụn ngữ lập trỡnh cụ thể dựa trờn thiết kế thành phần đó cú và mụi trường điều hành mó húa thành phần cụ thể Pha này phự hợp triển khai thành phần trờn nhiều môi trường điều hành khỏc nhau mà mỗi một sự thực thi phụ thuộc vào nhúm cỏc cụng nghệ xác định và môi trường điều thành đích
o Kiểm thử: Nhiệm vụ chớnh của pha này là xỏc nhận quỏ trỡnh hợp lệ của thành phần đó đưa ra dựa trờn thiết kế và đặc tả của nú Trong suốt pha này, người kiểm thử thành phần thực hiện kiểm thử thành phần sử dụng phương pháp hộp đen và hộp trắng để phỏt hiện ra cỏc lỗi khỏc nhau Khi cỏc thành phần được phõn chia thành cỏc sản phẩm cuối cựng thỡ kiểm thử thành phần phải bao gồm quỏ trỡnh kiểm thử sử dụng thành phần, kiểm thử quỏ trỡnh thực thi và kiểm thử triển khai Kết quả của pha này gồm kế hoạch kiểm thử, tài liệu thiết kế kiểm thử, bộ kiểm thử và độ đo kiểm thử, bỏo cỏo kiểm thử và cỏc khả năng triển khai Người kiểm thử và nhóm đảm bảo chất lượng phải thực hiện xỏc nhận tớnh hợp lệ, các điều kiện thuận lợi và khụng thuận lợi khi dựng cỏc phương pháp đóng gói khác nhau, các tính năng tùy biến, cỏc cỏch tiếp cận triển khai khác nhau để xác định phản ứng của chúng trong trường hợp cỏc thành phần làm việc với nhiều cấu hỡnh trong nhiều môi trường điều hành khỏc nhau
o Bảo trỡ: Pha này bắt đầu sau khi cú phiờn bản đầu tiờn của thành phần phần mềm cho khỏch hàng Trong pha này, cỏc thành phần được cập nhật và nõng cấp để phự hợp với những yờu cầu của khỏch hàng và giải quyết những vấn để khụng bao phủ cũn lại
Trang 2929
Hỡnh 1.2 Kỹ nghệ xử lý đối với thành phần phần mềm
S.D Lee et al [15] thể hiện kỹ nghệ hệ phương pháp đối với cỏc thành phần dựa trên UML Đây là môi trường để thảo luận chi tiết cỏc cụng việc và cỏc mụ hỡnh húa phương pháp bao gồm trong phõn tớch và thiết kế thành phần Trong cụng nghệ phần mềm hiện đại, quỏ trỡnh xõy dựng thành phần phần phềm phải tuõn theo mụ hỡnh thành phần và cỏc tiờu chuẩn cụ thể Để đạt được điều đó, mô hỡnh thành phần phải cần hỗ trợ cỏc kỹ nghệ hoạt động trong tất cả cỏc pha
1.1.7 1.1.7 Cỏc cõu hỏi, cỏc mối quan tõm, những điểm cần thiết trong quỏ trỡnh xỏc nhận tớnh hợp lệ và quỏ trỡnh quản lý chất lượng
thành phần
Trong kỹ nghệ phần mềm hướng thành phần, ta xõy dựng hệ thống ứng dụng thụng qua việc sử dụng lại, đồng thời tớch hợp ba loại thành phần: cỏc thành phần của bờn thứ ba xõy dựng, thành phần tự xõy dựng hoặc các môđun kế thừa, thành phần được xõy mới Điều đó có nghĩa là, chất lượng của thành phần đem sử dụng lại cú ảnh hưởng nghiờm trọng và có tác động khụng nhỏ đến hệ thống phần mềm chấp nhận chỳng Vỡ thế kiểm thử và đảm bảo chất lượng của cỏc thành phần cú thể sử dụng lại trở nờn rất quan trọng quyết định đến sự thành cụng của quỏ trỡnh phỏt triển phần mềm hướng thành phần bởi: nhược điểm đơn lẻ của thành phần cú thể có tác động đến nhiều hệ thống hướng thành phần trong cỏc dự ỏn, cỏc dũng sản phẩm và cỏc tổ
Khẳng định mụ hỡnh thành phần
Bảo trỡ
Mụ hỡnh tham chiếu thành phần
Trang 30- Chỳng ta cú thể sử dụng mụ hỡnh kiểm thử phần mềm, cỏc chiến lược, các phương thức và cỏc tiờu chuẩn đó tồn tại để xỏc nhận sự hợp lệ của thành phần
cú thể sử dụng lại hay khụng? Hạn chế của cỏc thành phần sử dụng lại đó ra sao?
- Làm thế nào chỳng ta cú thể xỏc nhận tớnh hợp lệ của thành phần sử dụng lại được trong ngữ cảnh mới? Thế nào là tiờu chuẩn kiểm thử toàn diện?
- Làm thế nào để chỳng ta cú thể đánh giá và tiến hành đo quá trỡnh thực thi của thành phần? Mụ hỡnh thực thi và các cách đo nào có thể được sử dụng?
- Làm thế nào ta cú thể đạt được kỹ thuật kiểm thử thành phần tự động? Cú thể
sử dụng cụng cụ phần mềm đó tồn tại để hỗ trợ kỹ thuật tự động kiểm thử thành phần ?
- Làm thế nào để cung cấp bỏo cỏo chất lượng thành phần hiệu quả cho người
sử dụng thành phần trong quỏ trỡnh đánh giá?
Người sử dụng thành phần bắt gặp cỏc cõu hỏi:
- Làm thế nào để ta đánh giá được cỏc thành phần khác nhau nhưng cùng chức năng theo cùng cách thao tác có lợi nhất?
- Làm thế nào chỳng ta cú thể so sỏnh chất lượng của thành phần cú cựng chức năng trong môi trường thương mại?
- Chỳng ta cần thực hiện bao nhiờu kiểm thử đối với thành phần của bờn thứ ba trong dự ỏn phần mềm hướng thành phần? Làm thế nào để biết đâu là các chuẩn kiểm thử toàn diện? Làm thế nào chỳng ta cú thể kiểm thử được phần mềm theo cỏch cú lợi nhất?
Trang 3131
- Làm thế nào để xỏc nhận tớnh hợp lệ và tựy biến được cỏc thành phần sử dụng lại? Thế nào là tiờu chuẩn kiểm thử phự hợp?
Nhúm quản lý chất lượng phải trả lời cỏc cõu hỏi:
- Làm thế nào thực hiện được các bước trong quỏ trỡnh đảm bảo chất lượng đối với người cung cấp thành phần?
- Chỳng ta cú thể sử dụng quỏ trỡnh đảm bảo chất lượng phần mềm đó tồn tại
và các phương pháp quản lý để đề cập đến cỏc thành phần cú thể sử dụng lại được? Hạn chế của cỏc thành phần này thế nào?
- Làm thế nào chỳng ta cú thể đặt địa chỉ các tính năng đặc biệt của cỏc thành phần cú thể sử dụng lại trong quỏ trỡnh đảm bảo chất lượng bao gồm: tớnh cú thể sử dụng lại, cấu tạo, tính tương tác giữa cỏc thành phần, tựy biến và đóng gói thành phần?
- Làm thế nào ta định nghĩa hoặc thiết lập quỏ trỡnh đảm bảo chất lượng cho cỏc thành phần cú thể sử dụng lại đối với nhà cung cấp thành phần?
- Làm thế nào chỳng ta cú thể thiết lập quỏ trỡnh đảm bảo chất lượng cho dự ỏn phần mềm hướng thành phần?
- Làm thế nào để ta cú thể thiết lập được thủ tục chứng nhận thành phần, cỏc tiờu chuẩn cho cỏc thành phần phần mềm?
1.1.2 1.2 Phỏt triển phần mềm hướng thành phần
Phần mềm hướng thành phần bao gồm tập hợp chứa bản thõn chương trỡnh đang xây dựng kết hợp với cỏc thành phần cú liờn quan cú thể cắm, chạy Cỏc thành phần cú thể được viết trờn nhiều ngụn ngữ lập trỡnh khỏc nhau nhưng phải cú chung một nền tảng (platform) và được phân tán trong không gian địa lý Một số cỏc thành phần cú thể được phỏt triển nội tại trong một số đơn vị nào đó nhưng một số cỏc thành phần khỏc lại cũng cú thể được phỏt triển thụng qua bờn thứ ba hoặc cũng cú thể là một thành phần thương mại (COTS) (cỏc thành phần được đóng gói và không có mó nguồn) Trong chương này chúng ta sẽ tỡm hiểu một số khỏi niệm cơ bản của phần mềm hướng thành phần, các đặc điểm của nú và so sỏnh với các chương trỡnh truyền thống khỏc Tiếp theo tụi sẽ đưa ra các thảo luận về cơ sở nền tảng của phần mềm
Trang 3232 hướng thành phần Cuối cựng là giới thiệu kỹ nghệ xử lý trong phỏt triển phần mềm hướng thành phần
1.1.8 1.2.1 Giới thiệu
Thế nào là hệ thống hướng thành phần? Theo cách nói thông thường, một hệ thống hướng thành phần (CBS) bao gồm tập hợp cỏc thành phần cú cựng mục đích được phỏt triển tuõn theo quy tắc của kỹ nghệ phỏt triển phần mềm hướng thành phần Hiện tại cũng cú ý tưởng cho rằng thành phần phần mềm được phỏt triển dựa theo kỹ nghệ xử lý là sai Một hệ thống hướng thành phần cú thể đuợc phỏt triển bằng cỏch gắn kết cỏc thành phần lại với nhau Trong thực tế, để minh họa sự phỏt triển cỏc phần mềm hướng thành phần là rất phức tạp Mặt khỏc một phần mềm hướng thành phần cú chất lượng ra sao lại phụ thuộc vào cỏc yếu tố chính như sau:
- Cỏc thành phần phần mềm: So sỏnh với việc phỏt triển phần mềm truyền
thống, trọng tõm phỏt triển hệ thống hướng thành phần dịch chuyển từ phỏt triển cỏc thành phần sang tớch hợp cỏc thành phần đó tồn tại lại với nhau Cỏc thành phần này cú thể được gọi là cỏc thành phần COTS, chúng được phỏt triển bởi một nhóm người nào đó hoặc được sử dụng lại trong quỏ trỡnh phỏt triển phần mềm
- Mụ hỡnh thành phần: Mụ hỡnh thành phần được hiểu như xương sống
(backbone) trong hệ thống hướng thành phần Mụ hỡnh thành phần cung cấp nền tảng cơ bản để phỏt triển cấu tạo, phỏt triển các phương thức truyền thụng, cỏc cỏch triển khai, quỏ trỡnh tiến húa Hiện tại cú cỏc mụ hỡnh phần mềm thương mại chính được kể ra như: NET/COM/COM+, CORBA, EJB
- Kỹ nghệ xử lý hướng thành phần: Để phỏt triển và duy trỡ chất lượng phần
mềm hướng thành phần cần phải cú kỹ nghệ xử lý Kỹ nghệ này chớnh là quỏ trỡnh tiến húa Mỗi một chu kỳ của quỏ trỡnh tiến húa cú cỏc pha khỏc nhau bao gồm: phõn tớch yờu cầu, thiết kế, xõy dựng, kiểm thử Do vậy, mỗi đặc điểm của phần mềm hướng thành phần yờu cầu một quỏ trỡnh xử lý riờng biệt thuộc mỗi pha Hơn nữa, trong suốt quỏ trỡnh phõn tớch yờu cầu và thiết kế
Trang 3333
cỏc pha, cỏc hoạt động như: định danh thành phần, thiết kế giao diện, thiết kế kiến trỳc minh họa các ý nghĩa khác nhau, trong khi đó các pha triển khai bao gồm nhiều hành vi ứng xử mới như: lựa chọn cỏc thành phần, triển khai, đóng gói Kiểm thử và duy trỡ phần mềm hướng thành phần cũng bao gồm rất nhiều thỏch thức đang ở phớa trước Vỡ vậy rất cần có các phương pháp và kỹ thuật mới trong cỏc lĩnh vực này
1.1.9 1.2.2 So sỏnh phần mềm hướng thành phần và chương trỡnh phõ ̀n mềm truyền thống
Đối tượng trong phỏt triển phần mềm là đảm bảo sao cho cỏc sản phẩm phần mềm
cú chất lượng cao như: độ tin cậy, tớnh bảo trỡ, tớnh sử dụng lại, tớnh dễ triển khai
Để tiếp cận được mục đích đặt ra, chỳng ta sẽ tỡm hiểu các điểm mạnh và yếu của mỗi loại Trong phần này, trước hết chỳng ta sẽ tỡm hiểu về thuộc tớnh của phần mềm hướng thành phần, sau đó tóm tắt các điểm khỏc nhau giữa phần mềm hướng thành phần và chương trỡnh phần mềm truyền thống
2.1.1 1.2.2.1 Cỏc thuộc tớnh của phần mềm hướng thành phần
Khỏc với hệ thống phần mềm truyền thống, phần mềm hướng thành phần có các đặc tính như sau;
- Tớnh không đồng nhất (Heterogeneity) Tính không đồng nhất là một trong
những thuộc tớnh quan trọng trong phần mềm hướng thành phần Thuộc tớnh này cho phộp cỏc thành phần được xõy dựng từ cỏc thành phần khỏc nhau, cỏc thành phần này cú thể được triển khai trờn nhiều ngụn ngữ lập trỡnh khỏc nhau thậm chớ trờn nhiều vị trí khác nhau không tính đến khoảng cách nhưng được xõy dựng trờn cựng nền tảng
- Khả năng sẵn sàng của mó nguồn Người phỏt triển thành phần muốn thao tỏc
trờn cỏc thành phần cú sẵn hơn là triển khai trờn mó nguồn Cỏc thành phần COTS thường được phân tán dưới dạng mó nhị phân nhưng mó nguồn lại bị che dấu Tính năng này làm cho quá trỡnh phỏt triển được dễ dàng hơn nhưng cũng đũi hỏi nhiều khó hơn trong quá trỡnh thiết kế, kiểm thử và bảo trỡ hệ thống
Trang 3434
- Khả năng tiến húa: Tính năng cắm và chạy cho phộp cỏc thành phần cú thể
nõng cấp, loại bỏ, thờm vào tự động mà khụng cần phải biờn dịch hoặc cấu hỡnh lại Cỏc phần mềm hướng thành phần cú mó nguồn đa dạng và chạy được trờn nhiều môi trường khác nhau, đồng thời khả năng thường xuyên được nõng cấp cũng cú thể biết trước Do vậy các đặc điểm về khả năng tiến húa của phần mềm hướng thành phần cú thể đảm bảo duy trỡ hệ thống từ mức thấp nhất trong quỏ trỡnh phỏt triển
- Phõn tỏn Trong môi trường Internet, cỏc thành phần phần mềm được phõn
tỏn rộng khắp Cỏc thành phần này cú thể khỏc nhau cả về thiết kế, quỏ trỡnh phỏt triển, khả năng tích hợp Vỡ thế khi kế thừa, cỏc thuộc tớnh, cỏc hàm dựng lại cú thể bao gồm cả những điểm mạnh và điểm yếu chứa trong hệ thống phõn tỏn
- Khả năng sử dụng lại Một trong những điểm nổi bật khi phỏt triển phần mềm
hướng thành phần là khả năng sử dụng lại Khả năng sử dụng lại cỏc thành phần đánh giá chất lượng của sản phẩm, giảm giỏ thành phỏt triển Sử dụng lại cỏc yếu tố tự cú trong phần mềm hướng thành phần bao gồm: giao diện người sử dụng, các logic trao đổi, quản lý dữ liệu cũng như kiến trỳc thành phần
Những lợi ớch nhận được khi phỏt triển sản phẩm hướng thành phần
- Giảm thời gian tiờu thụ và giỏ thành sản xuất Quỏ trỡnh phỏt triển phần mềm
hướng thành phần chỉ chấp nhận cỏc thành phần cú thể sử dụng lại được và cỏc thành phần COTS nhưng cũng có thể bao gồm cỏc mẫu kiến trỳc xõy dựng nờn thành phần trong trạng thỏi tốt Vỡ vậy giảm thời gian khi phõn tớch và thiết kế mó húa trong cỏc pha xõy dựng Giảm thời gian khi sử dụng trong pha kiểm thử thành phần riờng rẽ, do vậy giảm thời gian tiờu thụ và giỏ thành sản xuất
- Sản phẩm cú chất lượng cao Chất lượng cỏc thuộc tớnh bao gồm: tớnh tin
cậy, tớnh dễ bảo trỡ, khả năng tiến hóa, khă năng kết hợp giữa cỏc thành phần, hiệu suất thực hiện
Trang 3535
Bờn cạnh những thuận lợi khi sử dụng phần mềm hướng thành phần cũng cú những thỏch thức:
- Nhiều phiờn bản tương tác giữa cỏc thành phần: Cỏc thành phần phần mềm
được xõy dựng sử dụng cỏc cụng nghệ khỏc dựa trờn cỏc nền tảng khỏc nhau Khi kết hợp cỏc thành phần khác nhau đó lại, khả năng không tương thích là rất cao ở những mức độ khỏc nhau và cú thể sinh ra kết quả không mong đợi
- Cỏc phiờn bản tương tác giữa cỏc thành phần theo cỏc cấp độ của hệ thống
Trong hệ thống hướng thành phần, cỏc thành phần khỏc nhau cú thể được xõy dựng từ những cơ sở, những hệ điều hành khỏc nhau hoặc được tập hợp lại từ những thư viện khỏc nhau Do vậy tính không tương thích giữa cỏc yếu tố trờn
cú thể dẫn tới kết quả khụng mong muốn
- Cỏc phiờn bản tương tác giữa cỏc thành phần theo cấp độ của ngụn ngữ lập
trỡnh Cỏc thành phần được viết bằng những ngụn ngữ lập trỡnh khỏc nhau
Tớnh khụng tương thớch giữa cỏc ngụn ngữ lập trỡnh cũng cú thể dẫn đến những vấn đề khụng mong muốn
- Cỏc phiờn bản tương tác giữa cỏc thành phần theo cấp độ đặc tả Người phỏt
triển thành phần cú thể hiểu sai các đặc tả do đó điều này cũng là cách làm sai
đi mục đích cung cấp chớnh trong thành phần
- Hiểu sai dữ liệu Dữ liệu sau khi đi qua các giao diện cú thể bị hiểu sai lệch
Vớ dụ hiểu sai về kiểu dữ liệu, giỏ trị tham số đầu vào, đầu ra…
- Hiểu sai điều khiển: Mẫu giao diện cú thể bị hiểu sai Cỏc sai lệch trong trường
hợp này cú thể bao gồm cỏc trỡnh tự thực hiện cụng việc đối với từng giao diện
2.1.2 1.2.2.2 So sỏnh phần mềm hướng thành phần và các chương
trỡnh truyền thống
Trong mục này chỳng ta sẽ thống kờ một số điểm khỏc nhau giữa phần mềm hướng thành phần và phần mềm truyền thống Bảng 1.2 liệt kờ cỏc tiờu chớ minh họa cho cỏc yếu tố trờn
Bảng 1.2 Bảng so sỏnh phần mềm truyền thống và phần mềm hướng thành phần
Trang 36dự ỏn phần mềm Môi trường Không tính đến hệ điều hành và
ngụn ngữ lập trỡnh, rất cần đến một mụ hỡnh thành phần tốt, vớ
dụ NET/COM+, EJB hoặc CORBA
Chỉ cần hỗ trợ của hệ điều hành và ngụn ngữ lập trỡnh là đủ
Quỏ trỡnh xử lý Kỹ nghệ xử lý phần mềm hướng
thành phần bao gồm nhiều hoạt động đơn như: lựa chọn, triển khai, bố cục
Kỹ nghệ xử lý phần mềm truyền thống, bao gồm phõn tớch yờu cầu, thiết
kế, mó húa và kiểm thử Thành phần tham
gia
Người cung cấp thành phần, người sử dụng thành phần
Chỉ một nhúm phỏt triển tham gia trong quỏ trỡnh
xử lý Tớnh khả chuyển Tương đối dễ khụi phục do
chấp nhận mụ hỡnh thành phần
và kiến trỳc thành phần sẽ đơn giản húa nhiều thuộc tính không tương thích trong nhiều phiờn bản tương tác khác nhau
Khú khụi phục do kỹ nghệ xử lý thường xuyờn chỉ dành riêng cho môi trường phỏt triển cụ thể
Tương tác giữa cỏc
thành phần
Thụng bỏo giữa cỏc thành phần được truyền qua giao diện và được quản lý bởi mụ hỡnh thành phần Mụ hỡnh thành phần cú thể quản lý một số
Hệ thống phần mềm truyền thống phỏt triển trong một ngữ cảnh hạn chế và cú ớt cỏc phiờn bản thao tỏc Vấn đề khụi phục phần mềm khó hơn
Trang 37Tớnh dễ bảo trỡ Dễ dàng nõng cấp khi người sản
xuất cung cấp một phiờn bản mới hơn
Ít phải can thiệp tới vấn đề khi nào và làm thế nào để duy trỡ cỏc thành phần
Xác định phiờn bản được quản
lý riờng biệt thông qua đơn vị cung cấp thành phần do vậy cú tồn tại lỗi tiềm năng
Trong quỏ trỡnh bảo trỡ phần mềm, bất cứ một sửa đổi nào cũng phải cấu trỳc lại hệ thống Cần phải bảo trỡ toàn diện các điều khiển
Tớnh sử dụng lại Khả năng sử dụng lại ở rất
nhiều cấp độ khỏc nhau: Thành phần, kiến trỳc thành phần,
Khú cú thể sử dụng lại; chỉ phự hợp với một số
hệ thống Tớnh sử dụng lại bị hạn chế trong nội tại bản thõn lớp
Tớnh co gión Dễ dàng co gión: khả năng co
gión cú thể tự động quản lý thụng qua mụ hỡnh thành phần
Khú cú thể co gión bất kỳ
sự thay đổi nào trong mó nguồn, các thay đổi cú thể yờu cầu ở tất cả các môđun có liên quan hoặc cỏc hệ thống con
Cấu trỳc Cỏc cặp thành phần cú liờn kết
yếu, thường được phõn tỏn
Thường xuyờn cú liờn kết chặt chẽ với nhau và chịu sự kiểm soỏt của hệ thống
Trang 38Mó nguồn luụn luụn sẵn sàng cho sử dụng
Tựy biến Rất nhiều cỏc thành phần cú
mục đích chung, cần phải tựy biến trước khi tổng hợp
Hệ thống thành phần cung cấp
kỹ thuật nội tại để khảo sỏt dịch
vụ sẵn sàng cho sử dụng
Khi tớch hợp các môđun thành sản phẩm cuối cựng, khụng cần một sự tựy biến nào
Đối với cỏc hệ thống truyền thống, mục đích chính là phân chia một cỏch hiệu quả
và tin cậy hệ thống phần mềm Khả năng sử dụng lại, khả năng bảo trỡ và khả năng tiến húa khụng phải là các đặc điểm chiếm độ ưu tiên cao Tuy nhiờn hệ thống phần mềm ngày càng phỏt triển rộng hơn và càng phức tạp hơn Các tính năng đó dần trở thành những tiờu chuẩn Mục đích của hệ thống hướng thành phần: rỳt ngắn thời gian quảng bỏ, hạ giá thành, tăng độ tin cậy, tăng khả năng sử dụng lại cũng như khả năng bảo trỡ
Một nột khỏc biệt cơ bản giữa phần mềm hướng thành phần và phần mềm truyền thống là quy tắc thực hiện thụng qua nhúm phỏt triển Trong phần mềm truyền thống, các nhóm thường bị cuốn hỳt bởi kỹ nghệ xử lý phần mềm, từ phõn tớch yờu cầu đến bảo trỡ sản phẩm, vỡ thế các nhóm đó có quyền điều khiển toàn bộ mọi vấn đề Ngược lại, trong phần mềm hướng thành phần, cú hai nguyờn tắc bị chi phối kỹ nghệ xử lý là: đơn vị cung cấp thành phần và người sử dụng thành phần Thụng thường hai yếu
tố khụng cựng xuất hiện tại một nơi trong cùng môi trường phỏt triển giống nhau Mặt khác quá tŕnh sử dụng và phát triển lại được thực hiện song song nhau vỡ thờ́ giảm thời gian quảng bá và giảm giá thành phát triển Một điểm khác biệt nữa là người sử dụng thành phần không có toàn quyền trong toàn bộ quá tŕnh xử lư bao gồm: quá tŕnh lựa chọn, kiểm thử, bảo tŕ cũng như các hoạt động khác
Trang 39- EJB (enterprise Java Bean) được phỏt triển bởi tổ chức Sun Microsystem, là
một mụ hỡnh thành phần cho phộp xõy dựng phần mềm dựa trờn thành phần phía server trong đó Java bean là thành phần cơ bản cú thể sử dụng lại được Các Java bean được phõn chia theo phiờn làm việc hoặc theo cỏc thực thể Kỹ thuật chớnh quản lý cỏc bean và truyền thụng của chỳng là cỏc EJB container hoặc cỏc EJB server EJB container khụng chỉ cung cấp cỏc dịch vụ quản lý vũng đời của cỏc bean, tờn của dịch vụ mà cũn cú thể cung cấp cỏc bảo mật
hỗ trợ phiờn giao dịch, cõn bằng tải và rất nhiều cỏc dịch vụ khỏc
- .NET lại là một nhỏnh kỹ thuật được Microsoft hỗ trợ phỏt triển phần mềm
hướng thành phần .NET mở rộng cỏc dịch vụ theo rất nhiều cỏch mà ta cú thể biết tới như COM/COM+ (sẽ được thảo luận phớa sau) Sự tiến bộ cú ý nghĩa nhất đó là các phiên bản thao tỏc giữa cỏc thành phần Nền tảng NET cũng như nền tảng tớnh toỏn dựng cho nhiều ngụn ngữ lập trỡnh trong đó XML như
là phương tiện để truyền thụng giữa chỳng và nú là một cải thiện đáng kể mụ
tả tương tác giữa cỏc thành phần của Microsoft từ rất lõu Về phớa client, NET
hỗ trợ tất cả cỏc loại driver từ Windows CE đến Windows XP Về phớa Server, tất cả cỏc loại dịch vụ cú khả năng kinh doanh cũng được tớch hợp, vớ dụ như SQL server, BizTalk server, và các server thương mại khỏc
- Mụ hỡnh Component Object Model (COM) là một trong những kến trỳc cổ
nhất hỗ trợ phần mềm hướng thành phần được Microsoft đưa ra năm 1995 Đầu tiờn mụ hỡnh COM bao gồm chỉ những tính năng cơ bản trong tớch hợp,
Trang 4040 đóng gói thành phần, cỏc chuẩn nhị phân để tớch hợp nhiều thành phần khác nhau trong môi trường phõn tỏn COM+ là một giải pháp thương mại của Micosoft song song với COM và DCOM COM+ cũng bao gồm các tính năng điều kiện như Microsoft Transaction Services (MTS), Microsoft Message Queue (MSMQ), Microsoft Active Data Object (ADO) và Microsoft Cluster Server (wolfpack)
- Common Object Request Broker Architecture (CORBA) được đưa ra bởi tổ
chức OMG CORBA cung cấp nền tảng phổ biến để tớch hợp cỏc thành phần khỏc nhau về vị trớ, ngụn ngữ lập trỡnh và về cả nền tảng xõy dựng Phần then chốt của CORBA là ORB (Object Request Broker) ORB cung cấp kỹ thuật
cơ bản để đạt được thuộc tớnh trong suốt Bờn cạnh đó, một phần khỏc của CORBA là cỏc dịch vụ đối tượng cung cấp một số dịch vụ cấp cao như tính nhất quỏn và cỏc hỗ trợ về phiờn giao dịch
Bảng 1.3 Bảng so sỏnh giữa cỏc mụ hỡnh NET, EJB/J2EE, CORBA
XP
Windows
2000 or Windows
Thành phần COM
Java beans Các đối tượng
CORBA Phõn tỏn Net
COM+ EJB.J2EE CORBA services
Hỗ trợ giao
dịch
MTS, MSDTC
MTS, MSDTC
JTS, JTA Hỗ trợ giao dịch
CORBA