51
ỨNG DỤNG PHƯƠNG PHÁP PHÁT TRIỂN DỰA TRÊN THÀNH PHẦN
TRONG QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM
Lê Văn Tường Lân
Trường Đại học Khoa học, Đại học Huế
Thế giới thực luôn biến động. Do vậy, để thích nghi, các hệ thống phần
mềm mô tả nó luôn thay đổi. Phương pháp phát triển hướng đối tượng đã được
xem là một phương tiện hữu hiệu để giải quyết sự khủng hoảng này trong công
nghệ phần mềm. Tuy nhiên, trong các hệ thống lớn, phức tạp, có chất lượng cao
đòi hỏi phải được xây dựng trong một thời gian ngắn thì bản thân nó lại bộc lộ
hạn chế về việc kiểm định chất lượng và chi phí phần mềm. Bài viết này nhằm
nêu bật vai trò của một phương pháp quan trọng trong ngành công nghệ phần
mềm hiện nay, được xem là bước tiến hoá của phương pháp phát triển hướng đối
tượng, đó là phương pháp hướng thành phần hay còn được gọi là phát triển dựa
trên thành phần. Phương pháp này xem việc phát triển phần mềm là quá trình hợp
nhất của những thành phần phần mềm tiền đóng gói.
I. QUAN ĐIỂM CỦA PHÁT TRIỂN DỰA TRÊN THÀNH PHẦN
1.Bài toán;
Cho hệ thống thông báo tự động như sau: Một máy tính kết nối với modem
điện thoại. Tại thời điểm T, hệ thống cần tự động thông báo một bản tin M có độ
dài L cho trước trong khoảng thời gian N. Hay trong một thời điểm nào đó, có
thể được kích hoạt để nhận một bản tin M' nào đó gởi đến. Hãy xây dựng phần
mềm cho bài toán trên.
52
2. Xây dựng hệ thống theo phương pháp hướng đối tượng:
Để phát triển phần mềm cho hệ thống trên, ta phải xây dựng đối tượng
MODEM với những vấn đề phải xét:
+ Các thuật toán xử lý trên modem: tạo kết nối, hủy kết nối,
+ Hiểu biết tập lệnh AT của nhà sản xuất cung cấp cho mode,
+ Các hằng số trả lời của modem khi làm việc,
+
Rõ ràng, trong cách thức phát triển này, ta phải đầu tư một chi phí về thời
gian và tiền bạc cho hệ thống. Thêm vào đó, chất lượng của hệ thống làm chúng
ta phải xem xét vì nhiều lý do:
+ Các đối tượng cấu thành nên hệ thống đã là đối tượng tiêu chuẩn?
+ Chúng đã được kiểm chứng hình thức,
3. Quan điểm của phát triển dựa trên thành phần:
Xuất phát từ quan điểm: "Buy do not build", liệu chúng ta phải xây dựng
đối tượng MODEM trên hay có thể tìm đối tượng tương tự MODEM' trong thư
viện? Tư tưởng của phát triển dựa trên thành phần là lắp ráp hệ thống từ những
thành phần đã có. Do vậy, kiến trúc phần mềm của hệ thống dựa vào kiến trúc
phần mềm của các thành phần phần mềm tiêu chuẩn nên hệ thống đạt chất lượng
cao hơn.
53
Để phát triển hệ thống trên, thay vì phải xây dựng đối tượng MODEM, ta
tìm thấy thành phần MSCOMM trong thư viện của MicroSoft; công việc tiếp
theo là chỉ cần làm thích nghi các thuộc tính và phương thức của nó trong hệ
thống của ta.
Tuy nhiên, cũng để phát triển hệ thống trên, người ta cũng tìm thấy thành
phần EXCEL TELE trong thư viện TeleTools, tương tự như thành phần
MSCOMM nhưng có khả năng thích nghi cao hơn, chỉ cần thay đổi các thuộc
tính và phương thức của nó ta sẽ có được hệ thống cần xây dựng.
4. Mô hình phát triển dựa trên thành phần:
Phương pháp phát triển dựa trên thành phần gần tương tự như phương pháp
phát triển hướng đối tượng. Hoạt động công nghệ bắt đầu với sự chỉ ra các lớp
tham dự để phát triển hệ thống. Nếu các lớp này được tìm thấy trong thư viện và
sự thích nghi là tốt, chúng sẽ được lấy ra và phát triển hệ thống. Ngược lại, chúng
sẽ được phát triển để sử dụng và bổ sung vào thư viện sử dụng lại.
Kế hoạch
Phân
tích lỗi
Xây dựng hay
d
ừ
ng h
ệ
th
ố
ng
Đánh giá của
khách hàng
Giao tiếp với
khách hàng
Thành phần để
xây dựng
hệ thống
Xây dựng nếu
thành phần
không thích
h
ợ
p
Hợp nhất cho
phiên bản hệ
thống thứ n
Tìm kiếm
trong thư việ
n
thành phần
Sử dụng nếu
thành phần
thích hợp
Bổ
sung thành
phần mới vào
thư viện
Hình 1: Mô hình phát triển hệ thống dựa trên thành phần
54
II. HOẠT ĐỘNG CHÍNH CỦA CÔNG NGHỆ DỰA TRÊN THÀNH PHẦN
1. Tiến trình của công nghệ dựa trên thành phần:
Như đã chỉ ra ở trên, việc xây dựng hệ thống bằng cách sử dụng và làm
thích nghi hành phần MSCOMM sẽ tốt hơn việc xây dựng đối tượng MODEM
và nếu sử dụng thành phần EXCEL TELE thì lại tốt hơn. Vấn đề đặt ra là làm sao
để người phát triển hệ thống có thể biết hay tìm thấy các thành phần này để sử
dụng? Và làm thế nào để biết được thành phần này là có thể làm thích nghi để
đưa vào hệ thống cần xây dựng?
Công nghệ phần mềm dựa trên thành phần chứa hai hoạt động công nghệ
song song: công nghệ lĩnh vực và phát triển dựa trên thành phần.
i. Công nghệ lĩnh vực là nhận ra, xây dựng, phân loại và phát triển những
thành phần phần mềm mà chúng có thể áp dụng được đối với phần mềm hiện có
và phần mềm trong tương lai trong một lĩnh vực ứng dụng cụ thể. Công nghệ lĩnh
vực gồm ba hoạt động chính: phân tích, xây dựng và phát triển. Như vậy, nó
55
đóng vai trò là thiết lập tập các thành phần phần mềm có thể sử dụng lại bởi kỹ
sư phần mềm.
Tuy vậy, khó xác định xem một thành phần tiềm năng có thể được sử dụng
hay không. Để được điều này, phải chỉ rõ tập hợp các đặc trưng lĩnh vực mà
chúng có được. Gọi {D
p
}là tập hợp các đặc trưng lĩnh vực của một thành phần
phần mềm có thể sử dụng lại; với mỗi D
pi
trong tập là một đặc trưng về lĩnh vực
cụ thể. Khi xây dựng phần mềm W mới, ta có tập D
Wi
là tập các đặc trưng về
lĩnh vực của ứng dụng, ta so sánh với D
pi
để có được quyết định.
ii. Phát triển dựa trên thành phần là chỉ ra những đòi hỏi từ khách hàng, xác
định một kiểu kiến trúc thích hợp để đáp ứng mục tiêu hệ thống. Để từ đó có thể:
+ Chọn những thành phần tiềm năng cho việc sử dụng lại,
+ Đánh giá các thành phần để chắc chắn chúng phù hợp với kiến trúc của hệ
thống,
+ Làm thích nghi các thành phần để cần thiết cho việc hợp nhất,
+ Tích hợp những thành phần cho ứng dụng tổng thể.
2, Hoạt động đánh giá thành phần:
Như đã nói, việc xây dựng hệ thống bằng cách sử dụng và làm thích nghi
hành phần EXCEL TELE sẽ tốt hơn việc sử dụng thành phần MSCOMM, tại
sao? Dựa vào đâu để người sử dụng quyết định sử dụng thành phần này mà
không sử dụng thành phần khác?
Khi quyết định sử dụng một thành phần trong thư viện phần mềm để xây
dựng hệ thống, các hoạt động đánh giá nó là cần thiết để đảm bảo có hiệu quả
trong hệ thống.
56
+ Đánh giá khả năng thành phần: đảm bảo rằng một thành phần tham dự sẽ
biễu diễn được yêu cầu chức năng, sẽ phù hợp trong kiến trúc cụ thể của hệ
thống. Cần để ý rằng miêu tả giao diện cung cấp thông tin hữu ích về sự điều
hành và sử dụng thành phần nhưng không cung cấp tất cả các thông tin để chỉ ra
nó là thật sự hiệu quả trong ứng dụng mới mà phải phân tích, khám phá để đánh
giá nó.
+ Xác định sự thích nghi của thành phần: Về bản chất, kiến trúc phần mềm
chỉ rõ những quy luật thiết kế đối với tất cả các thành phần, nhận ra những cách
kết nối và sắp đặt. Trong một vài trường hợp, việc sử dụng một thành phần nào
đó có thể gây lỗi kiến trúc hệ thống. Những thành phần này phải được loại bỏ và
thay thế bằng những thành phần phù hợp hơn.
+ Xác định cấu tạo của thành phần: nhận ra cơ chế kết nối và sắp đặt. Cấu
tạo thành phần phải thoả chất lượng, thích nghi và công nghệ để tạo nên cấu trúc
thiết lập cho ứng dụng.
3. Phân loại và tìm lại thành phần:
Theo đề cập trên, làm thế nào để khi cần ta có thể tìm, biết được có thành
phần MSCOMM hay thành phần EXCEL TELE để đưa vào xây dựng hệ thống?
Ngoại trừ các thành phần này trong thư viện có còn các thành phần khác hay
không? Khả năng thích nghi đối với hệ thống như thế nào?
Trong kho thành phần lớn, có hàng chục ngàn thành phần có thể sử dụng
lại. Do vậy, bằng cách nào để các kỹ sư phần mềm có thể tìm thấy thành phần mà
họ cần? Để trả lời câu hỏi này, cần phải giải quyết: "Cần phải miêu tả các thành
phần phần mềm theo nhóm như thế nào?"
57
Một thành phần phần mềm có thể sử dụng lại có thể được mô tả theo mô
hình 3C như sau: Concept (khái niệm), Content (nội dung), và Context (ngữ
cảnh).
Concept: miêu tả về cái gì mà thành phần phần mềm làm, gắn với mục đích
của thành phần. Giao diện đối với thành phần được miêu tả một cách đầy đủ và
ngữ nghĩa được chỉ ra ở tiền và hậu điều kiện.
Content: miêu tả khái niệm được thực hành như thế nào. Về bản chất thì nội
dung của thành phần được dấu đối với người sử dụng và chỉ được biết đối với
những ai có ý định kiểm tra hay sửa đổi thành phần.
Context: đặt cho thành phần phần mềm có thể sử dụng lại trong lĩnh vực
ứng dụng nào. Bằng cách chỉ ra những đặc trưng thuộc về khái niệm, thao tác và
cài đặt, nó cho phép ta có thể tìm ra những thành phần thích hợp để đáp ứng cho
nhu cầu của ứng dụng.
III. HIỆU QUẢ CỦA CÔNG NGHỆ DỰA TRÊN THÀNH PHẦN
Để đánh giá, trước hết, ta phải hiểu cái gì thực sự được sử dụng lại trong
phạm vi của công nghệ phần mềm, và hao phí thật sự liên quan đến sử dụng lại.
1. Độ đo sự sử dụng lại:
Để đo lợi ích liên quan đến sử dụng lại trong hệ thống S, ta có đẳng thức
sau:
R
b
(S)=[C
noreuse
-C
reuse
]/ C
noreuse
Với: C
noreus
: là chi phí để phát triển hệ thống S không dùng tính sử dụng
lại,
58
C
reuse
: là chi phí để phát triển hệ thống S dùng tính sử dụng lại.
Ta có: R
b
(S) không nguyên và 1 R
b
(S) 0
2. Tác động về chất lượng:
Thành phần phần mềm được sử dụng lại có độ chính xác cao và có thể nói
là không chứa lỗi. Mặc dầu không thường xuyên được chứng minh về mặt hình
thức nhưng với việc sử dụng lại, lỗi được tìm thấy và loại trừ; chất lượng của
thành phần được cải thiện như là một kết quả.
3. Tác động về hiệu suất:
Khi những thành phần sử dụng lại được ứng dụng thông qua tiến trình phần
mềm, chúng ta ít tốn thời gian để tạo ra kế hoạch, mô hình, tài liệu, mã và dữ liệu
mà chúng là cần thiết để tạo ra hệ thống. Thêm vào, chức năng cùng mức được
phân phối cho người sử dụng với đầu vào ít công sức hơn, do vậy, hiệu suất
được cải thiện.
4. Tác động về giá thành:
Tiết kiệm giá thành đối với việc sử dụng lại được ước lượng bằng cách ước
lượng giá thành của dự án. Dựa trên nghiên cứu khả năng sử dụng lại, hiệp hội
QSM, Inc., báo cáo dây chuyền thành phần dẫn đến việc giảm 70% về quá trình
phát triển, giảm 84% về giá dự án.
IV. KẾT LUẬN
Phần mềm tốt là kết quả phải đạt được của ngành công nghiệp phần mềm.
Sự phát triển phần mềm dựa trên thành phần chỉ ra nó là một phương pháp hiệu
quả. Bằng việc chỉ ra những điểm chính của phương pháp cùng với bài toán dẫn
59
chứng, bài viết khẳng định tính ưu việt của phương pháp dần đang có vị trí hàng
đầu trong ngành công nghiệp phần mềm trên thế giới.
TÀI LIỆU THAM KHẢO
1. Đoàn Văn Ban. Phân tích thiết kế và lập trình hướng đối tượng,
Trung tâm Khoa học Tự nhiên và Công nghệ Quốc gia (1996).
2. Ngô Trung Việt. Kỹ nghệ Phần mềm - bản dịch, Nhà xuất bản Giáo
dục (1999).
3. Roger S. Pressman Ph.D, Software Engineering a practitioner's,
McGraw - Hill book Co Singapore (2001).
4. Yourdon, E. Software reuse, Application development strategies,
Vol. 6, No. 12, (1994) 1 - 16.
5. Brown, A.W., and K., C. Wallnau, Engineering of component are
system, IEEE computer society press (1996).
6. Stephen R. Schach, Classical and object-oriented software
engineering, McGraw- Hill (1997).
7. Sommerville I., Software Engineering, Addison Wesley (1995).
8. Pitero - Diaz R. Domain analysis for reuseability, Proc.
COMPSAC'87, Tokyo, (1987) 23 - 29.
9. Mary Kirtland. Designing component - Based applications, A
division Microsoft corporation, Washington (1998).
60
APPLIED COMPONENT-BASED DEVELOPMENT IN THE
DEVELOPEMENT SOFTWARE PROCESS
Le Van Tuong Lan
College of Sciences, Hue University
SUMMARY
The real world is always changeable. So,in order to adapt to it, the systems
that describe it must be developed. In Software Engineering, the object-based
software engineering has been considered as a useful means to solve the changes
of software. However, in the big, complex, high quality systems must be
completed in a short time but the oriented programming has some limits such as
verifying quality, the cost of the system, etc.
In this paper, we describe the role of the important method in the Software
Engineering that is called the component - based software engineering or the
component - based development. It is the developed step of the object - based
software engineering. This method indicates that the development software is an
integrated process of the prepackaged software components.
61