Tải bản đầy đủ (.pdf) (114 trang)

Nghiên cứu kỹ thuật kiểm thử phần mềm trên cơ sở mô hình UML

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 (2.23 MB, 114 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ





VĂN THỊ HỒNG PHÚC





NGHIÊN CỨU KỸ THUẬT KIỂM THỬ PHẦN MỀM
TRÊN CƠ SỞ MÔ HÌNH UML











LUẬN VĂN THẠC SĨ























Hà Nội - 2009

MỤC LỤC

Chương 1: Giới thiệu 1
1.1. Giới thiệu nhiệm vụ chính của đề tài 1
1.2. Tình hình nghiên cứu trong và ngoài nước 2
1.3. Mục tiêu của luận văn 3
Chương 2: Một số khái niệm cơ bản 4
2.1 Phần mềm sử dụng cấu phần 5
2.1.1 Chuẩn tương tác [3] 6
2.1.2 Chuẩn kết hợp [3] 7

2.2 Vòng đời phát triển phần mềm trên cơ sở cấu phần 9
2.3 Các mô hình cấu phần và dịch vụ cấu phần 12
2.3.1 Mô hình cấu phần 12
2.3.2 Sự cài đặt mô hình cấu phần và các dịch vụ 16
2.4 UML trong phát triển phần mềm 19
2.4.1 Mục tiêu của UML 19
2.4.2 Vai trò, vị trí của các lược đồ UML trong vòng đời phần mềm 21
2.4.3 Các công cụ xây dựng UML 22
2.5 Lý thuyết kiểm thử 24
2.5.1 Tại sao kiểm thử là cần thiết? [2] 24
2.5.2 Nguyên nhân gây lỗi phần mềm 25
2.5.3 Vai trò của kiểm thử trong phát triển phần mềm 28
Chương 3: Kiểm thử trên cơ sở các mô hình UML 34
3.1. Các thành phần của cấu phần 34
3.2. UML và kiểm thử 35
3.3. Kiểm thử phần mềm trên cơ sở cấu phần 42
3.4. Các khía cạnh kiểm thử 46
3.3.1. Khía cạnh cấu trúc của kiểm thử 47
3.3.2. Khía cạnh hành vi của kiểm thử 48
3.5. Mô hình kiểm thử trong phần mềm cấu phần [5] 50
3.4.1 Mô hình tương tác 50
3.4.2 Mô hình hành vi 51
3.4.3 Cấu trúc điều khiển 52
3.4.4 Các quan hệ về tương tác dữ liệu 52
3.6. UML trong pha kiểm thử tích hợp 53
3.5.1 Mô hình áp dụng cho kiểm thử tích hợp phần mềm cấu phần 55
3.5.2. Các tiếp cận kiểm thử tích hợp trên cơ sở UML 58
Chương 4: Thực nghiệm kiểm thử phần mềm 64
4.1 Sử dụng cấu phần Text trong Java 64
4.2 Bài toán ( Phát biểu) 66

4.3 Quy trình xây dựng tài liệu kiểm thử dựa trên mô hình UML 67
4.4 Mô hình xây dựng use-case với bài toán thực tế 67
4.4.1 Xây dựng luồng nghiệp vụ trên cơ sở cách tiếp cận mô hình cộng tác/tuần tự 68
4.4.2 Quản lý kho 70
4.4.3 Xây dựng chương trình 94
4.4.4 Các bước thực hiện chương trình 96
4.4.5 Xây dựng các tình huống kiểm thử 97
Kết luận 103
Tóm tắt kết quả chính đã đạt được 103
Tồn tại và hướng phát triển 104
Tài liệu tham khảo 106

DANH MỤC HÌNH
#
Tên danh mục hình
Trang
1
Hình 1: Các phần tử cơ bản của một mô hình cấu phần
14
2
Hình 2: Chuẩn đặc tả miền
18
3
Hình 3: Các tình huống phát sinh lỗi trong quá trình phát triển
phần mềm
26
4
Hình 4: Chi phí sửa lỗi qua các giai đoạn phát triển
28
5

Hình 5: Cấu trúc một cầu phần
34
6
Hình 6: Quy trình kiểm thử cấu phần trong hệ thống
38
7
Hình 7: Lược đồ biểu diễn cấu trúc một ca kiểm thử
39

Hình 8: Lược đồ biểu diễn các use case quản lý giao dịch ATM
40
8
Hình 9: Mô hình biểu diễn cấu trúc của hồ sơ kiểm thử
47
9
Hình 10: Các khái niệm liên quan đến tình huống kiểm thử
48
10
Hình 11: Các khái niệm liên quan đến hành vi kiểm thử
49
11
Hình 12: Các khái niệm dữ liệu trong hồ sơ kiểm thử
49
12
Hình 13: Tập điều kiện kiểm tra phụ thuộc
57
13
Hình 14: Mô hình cộng tác mô tả hoạt động giao dịch của máy
ATM
59

14
Hình 15: Mô hình tuần tự mô tả giao dịch ATM
60
15
Hình 16: Mô hình trạng thái phục vụ của máy ATM
61
16
Hình 17: Mô hình cấu phần phục vụ giao dịch gửi/rút tiền ATM
63
17
Hình 18: Cây cấu phần JtextComponent
64
18
Hình 19: Ví dụ xây dựng trên nền javabean
64
19
Hình 20: Mô hình use case mô tả bài toán phát biểu
66
20
Hình 21: Mô hình cộng tác - bài toán thực tế
68
21
Hình 22: Mô hình tuần tự - bài toán thực tế
69














DANH MỤC BẢNG

#
Tên danh mục bảng
Trang
Bảng 1
So sánh vòng đời phát triển phần mềm trên cơ sở cấu
phần với vòng đời phát triển phần mềm truyền thống.
11
Bảng 2
Các yếu tố cơ bản trong kiểm thử
32
Bảng 3
UML hỗ trợ các loại kiểm thử
35
































































THUẬT NGỮ SỬ DỤNG TRONG TÀI LIỆU

Thuật
ngữ
Từ gốc
Giải thích

QTDA
Project manager
Quản trị dự án
CNPM
Software engineering
Công nghệ phần mềm
CBSE
Component-base software
engineering
Công nghệ phần mềm trên cơ
sở cấu phần
RM-ODP
Reference Model of Open
Distributed Processing
Mô hình tham chiếu của quy
trình phân tán mở
APIs
Application Programming
Interfaces
Giao diện lập trình ứng dụng
ADT
Abstract data type
Kiểu dữ liệu trừu tượng
UML
Unified Modeling Language
Ngôn ngữ mô hình hoá thống
nhất
OMG
Object Management Group
Nhóm quản lý đối tượng

COM
Component Object Model
Mô hình đối tượng cấu phần
CSLC
Component Software Life Cycle
Vòng đời phần mềm cấu phần
RTE
Real-time and embedded system
Hệ thống nhúng và thời gian
thực
IDL
Interface Definition Language
Ngôn ngữ định nghĩa giao diện
HTTP
HyperText Transfer Protocol
Giao thức truyền siêu văn bản
XML
eXtensible Markup Language
Ngôn ngữ đánh dấu mở rộng
IDE
Interactive development
environment
Môi trường phát triển tương tác
QoS
Quality of Service
Chất lượng dịch vụ
HĐH
Operating system
Hệ điều hành
CIG

Component Interaction graph
Lược đồ tương tác cấu phần
COTs
Commercial components
Các cấu phần thương mại
OMA
Object management
architechture.
Nhóm quản lý đối tượng
SUT
System under test
Kiểm thử hệ thống
DF
Developing for reuse
Cấu phần phát triển để sử dụng
lại
DW
Developing with reuse
Cấu phần sử dụng lại









LỜI CẢM ƠN


Trước hết tôi xin gửi lời cảm ơn đặc biệt nhất tới PGS.TS Đặng Văn Đức viện
Công nghệ thông tin người đã định hướng đề tài và tận tình hướng dẫn chỉ bảo tôi
trong suốt quá trình thực hiện luận văn cao học này.
Tôi xin được gửi lời cảm ơn sâu sắc tới Trung tâm Đào tạo Sau đại học và các thầy
cô giáo trong Khoa Công nghệ thông tin, Trường Đại học Quốc Gia Hà Nội đã tận tình
giảng dạy và truyền đạt những kiến thức, những kinh nghiệm quý báu trong suốt 2
năm học Cao học.
Tôi xin bày tỏ lòng cảm ơn chân thành tới tất cả các bạn bè, các thầy cô giáo, các
đồng nghiệp Khoa Công nghệ thông tin, Trường Đại học Quốc Gia Hà Nội đã động
viên, tạo điều kiện cho tôi trong suốt thời gian thực hiện luận văn này.
Cuối cùng tôi xin dành một tình cảm biết ơn tới Bố, Mẹ, những người đã luôn luôn
ở bên cạnh tôi, động viên, chia sẻ cùng tôi trong suốt thời gian học cao học cũng như
quá trình thực hiện luận văn cao học.

Hà Nội, ngày 30 tháng 6 năm 2009



Văn Thị Hồng Phúc


























LỜI CAM ĐOAN

Tôi xin cam đoan: Luận văn “Nghiên cứu kỹ thuật kiểm thử phần mềm trên
cơ sở mô hình UML” là công trình nghiên cứu riêng của tôi.
Các kết quả nghiên cứu trong luận văn là trung thực. Nếu sai tôi xin hoàn toàn
chịu trách nhiệm.



















Hà Nội, ngày 30 tháng 6 năm 2009
Học viên


Văn Thị Hồng Phúc



1
Chương 1: Giới thiệu
1.1. Giới thiệu nhiệm vụ chính của đề tài
Kiểm thử là một khâu không thể thiếu trong quá trình phát triển phần mềm.
Nhiều hệ thống phần mềm thất bại là do không tìm ra lỗi. Nguồn lực sử dụng
cho khâu kiểm thử là một yêu cầu khá lớn trong quá trình phát triển phần mềm.
Quá trình kiểm thử yêu cầu một số pha kết hợp gồm: kiểm thử đơn vị, kiểm
thử tích hợp, kiểm thử hệ thống, và kiểm thử chấp nhận.
Quy trình kiểm thử được xây dựng nhằm đạt các mục tiêu chính như sau:
 Xem xét các yêu cầu đưa ra bởi khách hàng, đối chiếu với sản phẩm
phần mềm được lập trình bởi lập trình viên.
 Phát hiện các sai sót hoặc lỗi trong phần mềm mà ở đó hành vi phần
mềm là không đúng, hoặc không tuân theo các đặc tả của nó.
Phương pháp hướng đối tượng (Object-Oriented) đã thể hiện rõ tính ưu việt

trong phát triển phần mềm. Trong đó, tính đóng gói, trừu tượng hóa và tính sử
dụng lại làm tăng chất lượng phần mềm. Theo Paul Allen thì hiện nay có đến
hơn 70% hệ thống phần mềm mới được phát triển dựa trên cơ sở cấu phần. Các
cấu phần thường được phát triển theo hướng đối tượng và được viết bằng các
ngôn ngữ khác nhau, chạy trên các môi trường khác nhau, có thể phân tán khắp
nơi và người phát triển phần mềm mới không được cung cấp các mã nguồn. Các
đặc tính này là nguyên nhân gây nhiều khó khăn trong việc kiểm thử hệ thống
phần mềm. Để tăng tính mềm dẻo khi nhìn nhận các chức năng, đặc điểm phần
mềm xây dựng, chúng ta sử dụng ngôn ngữ mô hình hóa chuẩn UML.
Ngôn ngữ mô hình hóa thống nhất (UML – Unified Modeling Language)
được công nhận là chuẩn công nghiệp cho việc phân tích và thiết kế các hệ
thống hướng đối tượng. UML cung cấp các ký pháp biểu đồ thể hiện các thông
tin thiết kế dưới các góc độ nhìn hệ thống. Trong những năm gần đây, đã có
nhiều nghiên cứu sử dụng mô hình UML như nguồn thông tin đầu vào cho kiểm
thử phần mềm. Thí dụ, biểu đồ trạng thái UML được sử dụng biểu diễn hành vi
bên trong của các đối tượng thành phần, các biểu đồ tương tác được được ứng
dụng trong kiểm thử tương tác các lớp trong cấu phần. Biểu đồ hoạt động biểu
diễn quan hệ giữa các thành phần trong cấu phần.
Thực tế cho thấy phương pháp Phát triển phần mềm theo cấu phần đã làm
giảm chi phí của dự án phát triển phần mềm. So với công nghệ truyền thống
chuẩn, công nghệ phần mềm trên cơ sở cấu phần quan tâm đến cách xây dựng
phần mềm nhiều hơn. Thông qua việc sử dụng lại các cấu phần, vòng đời phát
triển phần mềm được rút ngắn lại, đồng thời tăng tính mềm dẻo khi sử dụng và



2
bảo trì phần mềm. Hơn nữa, phát triển phần mềm có khả năng làm tăng chất
lượng phần mềm. Với tầm quan trọng như trên, đã có nhiều kết quả nghiên cứu
lý thuyết và sản phẩm công cụ hỗ trợ phát triển phần mềm trên cơ sở cấu phần.

Nội dung luận văn này nhằm mục tiêu khảo sát các vấn đề cơ bản và kỹ thuật
phát triển phần mềm theo cấu phần. Đặc biệt luận văn tập trung vào kỹ thuật
kiểm thử phần mềm phát triển dựa theo cấu phần với mục đích hướng tới ứng
dụng thực tế tại Việt Nam.
1.2. Tình hình nghiên cứu trong và ngoài nước
Năm 1975 Freed Brooks, một nhà quản lý dự án IBM, viết cuốn The
Mythical Man-month. Bài luận ngắn trong trong cuốn sách này mô tả những khó
khăn khi phát triển phần mềm phức tạp, Brooks viết một chương với tiêu đề là
“No Silver Bullet” giải thích rằng các hệ thống phần mềm là phức tạp. Ông dự
đoán sẽ không có kỹ thuật nào là duy nhất – no silver bullet – mà nó có thể cải
thiện năng suất theo danh sách yêu cầu cho mọi hệ thống. Trong chương này,
Brooker trích dẫn ra các lý do gây nên “khủng hoảng phần mềm”, và khủng
hoảng này sẽ còn tiếp tục cho đến khi một kỹ thuật mới như công nghệ phần
mềm trên cơ sở cấu phần (CBSE – Component based software engineering) trở
nên có tính khoa học và nó thực sự dựa trên tính khoa học.
Và như thế, CBSE đã đưa ra được “Những bài học hay nhất” về sản phẩm
công nghệ phần mềm trong suốt 30 năm tiếp theo. Brooks trình bày 2 phương
pháp khả thi giúp giảm mức độ phức tạp của phần mềm đó là “Buy before
Build” và “Reuse before Buy”. Các khái niệm mấu chốt được đưa ra nhằm giúp
giảm được chi phí trong công nghệ phát triển phần mềm.
Trong hội nghị thảo luận năm 1968, NATO đã tham gia tranh luận về thuật
ngữ khủng hoảng phần mềm. Thêm nhiều thuật ngữ khó hiểu như kẽ hở phần
mềm, … các thuật ngữ này dần dần được làm rõ khi trong quá trình phát triển
công nghệ phần mềm. Theo David và Fraser phát biểu năm 1968, “ Kẽ hở được
phát hiện tại thời điểm khi mà hậu quả việc hỏng hóc phần mềm tăng theo mọi
mức độ nghiêm trọng”. Để phát triển phần mềm trên cơ sở cấu phần chúng ta
phải học cách xây dựng các cấu phần đó dựa vào các yêu cầu, hoặc dựa trên việc
thiết kế các module thành phần hay các thiết kế trực tiếp các cấu phần. Các
khách hàng đặt hàng (các cấu phần) và việc tích hợp các cấu phần cung cấp bởi
nhà sản xuất sẽ đảm bảo rằng nó đáp ứng được yêu cầu khách hàng với các

mong muốn họ đưa ra.
Khái niệm về mô hình của cấu phần phần mềm được phát triển rộng rãi bởi
BradCox và đặt nền móng cho việc tạo một hạ tầng phát triển các cấu phần này



3
dựa trên ngôn ngữ lập trình C (Nội dung được đúc kết trong cuốn sách Object-
Oriented Programming – An Evolution Approach 1986)
IBM tiên phong mở ra lối nghiên cứu về Mô hình đối tượng hệ thống ngay
đầu những năm 1990. Một số các đóng góp được ứng dụng trong phần mềm cấu
phần đó là OLE và COM. Mô hình cấu phần phần mềm vẫn tiếp tục thu được
những thành quả đáng kể.
1.3. Mục tiêu của luận văn
Luận văn này nhằm mục tiêu nghiên cứu khảo sát sơ bộ các kỹ thuật kiểm
thử phần mềm, với giải pháp áp dụng các mô hình UML vào kiểm thử phần
mềm trên cơ sở cấu phần. Từ đó, áp dụng các kết quả nghiên cứu lý thuyết vào
thực nghiệm kiểm thử một thiết kế phần mềm cụ thể mà luận văn đưa ra.
Nội dung nghiên cứu tập trung vào một số vấn đề sau:
1) Tổng quan về các vấn đề cơ bản của kiểm thử phần mềm, các nguyên
tắc kiểm thử. Tổng quan về phát triển phần mềm dựa trên cấu phần, bao gồm
các khái niệm cơ bản như cấu phần, chuẩn tương tác, chuẩn kết hợp, cài đặt
mô hình cấu phần, các mô hình cấu phần - dịch vụ cấu phần, tiếp cận UML,
và vai trò của UML đặc tả thiết kế, ứng dụng vào kiểm thử.
2) Nghiên cứu phương pháp luận kiểm thử phần mềm trên cơ sở cấu
phần, bao gồm mô hình kiểm thử đối với phần mềm dựa trên cấu phần, kiểm
thử tích hợp trên cơ sở các mô hình UML đối với phần mềm phát triển trên
cấu phần. Xây dựng các biểu đồ UML hỗ trợ ca kiểm thử tích hợp.
3) Phát triển thực nghiệm kiểm thử phần mềm trên cơ sở sử dụng các
cấu phần có sẵn dựa trên bài toán ứng dụng được đưa ra; xây dựng các pha

phân tích, thiết kế và kiểm thử.




4
Chương 2: Một số khái niệm cơ bản
Lập trình hướng cấu phần (COP – Component oriented programming) và
công nghệ phần mềm trên cơ sở cấu phần (CBSE – Component based software
engineering) đôi khi có thể hiểu là một. Tuy nhiên, CBSE là thuật ngữ rộng hơn,
và COP chỉ là một phần trong đó.

CBSE = COA + COD + COP + COM

Trong đó COA (component oriented analysis), COD (Component oriented
design) và COM (Component oriented management) thể hiện các thuật ngữ về
phân tích hướng cấu phần, thiết kế hướng cấu phần và quản lý hướng cấu phần.
Mục tiêu của CBSE là phát triển phần mềm một cách nhanh chóng, và giảm chi
phí bằng cách xây dựng các hệ thống thông qua việc thu thập các cấu phần có
sẵn. Thiết kế, phát triển, và duy trì các cấu phần nhằm mục đích sử dụng lại là
một quy trình rất phức tạp, với các yêu cầu ở mức cao không chỉ đáp ứng được
tính chức năng và mềm dẻo cấu phần mà còn đáp ứng việc phát triển phần mềm
một cách có tổ chức. CBSE bao gồm rất nhiều các nguyên tắc công nghệ phần
mềm và các kỹ thuật khác nhau.

Trong công nghệ phần mềm truyền thống, quy trình phát triển phần mềm bao
gồm các hoạt động hoặc các trạng thái tuần tự, cách đặt tên, phân tích, thiết kế,
ngôn ngữ lập trình, kiểm thử, và tích hợp. Trong CBSE, các giai đoạn phát triển
chính vẫn tuân thủ theo các bước thực hiện như quy trình phát triển truyền
thống, và bổ sung thêm bước tập hợp và lắp ghép các cấu phần. Ta có thể nhận

thấy rằng, điểm nổi bật trong CBSE so với công nghệ phần mềm truyền thống
chính nằm ở hướng thiết kế, bước thu thập và lắp ghép các cấu phần vào việc
xây dựng một hệ thống hoàn thiện.

Dưới cách nhìn về các cấu phần, có 2 loại hoạt động căn bản đó là: Phát triển
cấu phần để sử dụng lại (DF – Developing for reuse) và sử dụng lại các cấu phần
đã có sẵn (DW - Developing with reuse). Với việc phát triển cấu phần để sử
dụng lại có thể được tổ chức theo cách tiếp cận công nghệ phần mềm truyền
thống, nhấn mạnh vào các chuẩn cấu phần. Mỗi cấu phần cung cấp 2 loại giao
diện: (1) giao diện cung ứng – định nghĩa các dịch vụ quảng bá cấu phần này sẽ
cung ứng và (2) giao diện yêu cầu – đặc tả các dịch vụ mà cấu phần cần đến để
thể hiện khả năng làm việc.




5
Theo các nhìn hướng quy trình công nghệ, có 5 cách định nghĩa khác nhau
trong CBSE:
1. Đặc tả cấu phần (Component specification): Nó thể hiện đơn vị đặc tả của
phần mềm, mô tả hành vi của tập các đối tượng cấu phần và định nghĩa một đơn
vị thực hiện. Hành vi được định nghĩa dưới dạng tập các giao diện. Một đặc tả
cấu phần được nhận diện dưới dạng một thực thi cấu phần.

2. Giao diện cấu phần (Component interface): Giao diện thể hiện định nghĩa
tập các hành vi có thể được cung ứng thông qua một đối tượng cấu phần.

3. Sự thực thi cấu phần (Component implementation): Là một sự nhận diện
của đặc tả cấu phần, có khả năng triển khai độc lập. Điều này nghĩa là nó có thể
được cài đặt và thay thế một cách độc lập các cấu phần khác. Như thế không có

nghĩa là nó độc lập với các cấu phần khác – nó có rất nhiều sự phụ thuộc.

4. Cấu phần được cài đặt (Installed component): Là sự sao chép của
một thực thi cấu phần dưới hình thức cài đặt (hoặc triển khai). Một sự
thực thi cấu phần được triển khai bằng cách đăng ký nó với môi trường
khi chạy thật. Môi trường chạy thật định nghĩa khả năng của cấu phần
được cài đặt nhằm tạo một thể hiện khi thực hiện bước vận hành nó.

5. Đối tượng cấu phần (Component object): Một đối tượng cấu phần là một
thể hiện của cấu phần được cài đặt. Khái niệm này khá giống với khái niệm
trong lập trình hướng đối tượng, một đối tượng cấu phần trong lập trình hướng
cấu phần là một đối tượng có dữ liệu riêng và định nghĩa duy nhất, nó thực hiện
hành vi thực thi xác định. Một cấu phần cài đặt có thể có các đối tượng cấu
phần đa nhiệm hoặc đơn nhiệm.
2.1 Phần mềm sử dụng cấu phần
Để tìm hiểu, nghiên cứu về mục tiêu mà luận văn đã đề ra, trước tiên, ta đi
vào việc tìm hiểu các thuật ngữ cơ bản được sử dụng trong CBSE, ta đi từ các
khái niệm nhỏ nhất, đơn giản nhất về cấu phần.
Một phần tử phần mềm chứa chuỗi các lệnh cấp cao, các tính toán được thực
hiện bởi máy tính. Phần tử phần mềm là thực thi nếu: (1) máy tính trực tiếp thực
thi các lệnh hoặc (2) có một bộ thông dịch chạy trên máy tính dịch các câu lệnh
sang dạng máy thực thi được.



6
Mã nguồn phần mềm là tập các file máy có thể đọc được, chứa các câu lệnh
chương trình được viết ứng với một ngôn ngữ lập trình. Các câu lệnh này được
dịch thành các câu lệnh thực thi được hoặc nhờ vào bộ biên dịch hoặc bộ thông
dịch.

Một cấu phần phần mềm là một tập các phần tử phần mềm được lập trình.
Cấu phần đó được cài đặt, và đưa vào sử dụng. Sự khác nhau giữa phần tử phần
mềm và cấu phần phần mềm được thể hiện ở cách sử dụng. Phần mềm bao gồm
rất nhiều yếu tố trừu tượng, các đặc trưng chất lượng. Đó là thước đo để đánh
giá một cấu phần hay một quy trình có đáp ứng yêu cầu đặc tả hay không (theo
chuẩn IEEE 610.12 – 1990). Thuật ngữ phần tử được đặt trong phạm vi mô tả về
cấu phần phần mềm như sau:
 Một cấu phần phần mềm là một phần tử phần mềm tuân theo một mô hình
cấu phần và có thể triển khai độc lập, được kết hợp mà không cần sửa đổi
theo một chuẩn kết hợp.
 Một mô hình cấu phần định nghĩa các đặc tả tương tác và các chuẩn kết
hợp.
 Một cài đặt mô hình cấu phần là một tập hợp các phần tử phần mềm xác
định cần có để hỗ trợ việc thực thi của các cấu phần tuân theo mô hình.
 Hạ tầng của cấu phần phần mềm, là một tập hợp các cấu phần phần mềm
tương tác được thiết kế để đảm bảo rằng hệ thống phần mềm được xây
dựng sử dụng các cấu phần và giao diện này sẽ thỏa mãn các đặc tả hiệu
năng đã định nghĩa.
Các định nghĩa này thể hiện mối quan hệ quan trọng giữa hạ tầng của cấu
phần phần mềm, các cấu phần phần mềm và mô hình cấu phần.

Khả năng của cấu phần và cách dùng nó được đặc tả bởi giao diện. Giao diện
là một sự trừu tượng hóa dịch vụ, nó định nghĩa các thao tác mà dịch vụ hỗ trợ,
nó độc lập với bất kỳ sự thực thi đặc biệt nào. Một cấu phần phần mềm giao tiếp
và tương tác với thế giới bên ngoài thông qua giao diện của nó, với tài liệu đặc
tả giao diện và tương tác sẽ cho chúng ta biết được nó làm gì (what), nội dung
của mã thực thi trong cấu phần, quy trình xử lý (how) được ẩn hoàn toàn và
người sử dụng cấu phần không phải quan tâm tới việc nó làm như thế nào.
2.1.1 Chuẩn tương tác [3]
Chuẩn giao diện là các yêu cầu bắt buộc phải sử dụng và tuân theo đối với

cấu phần phần mềm để các phần tử phần mềm tương tác trực tiếp với các phần
tử khác. Chuẩn giao diện khai báo một giao diện có thể chứa cái gì.



7
Cấu phần cung cấp một giao diện cung ứng nếu cấu phần đó chứa sự cài đặt
tất cả các thao tác được định nghĩa bởi giao diện. Một cấu phần cần một giao
diện yêu cầu, nếu cấu phần đó đòi hỏi một tương tác được định nghĩa trong giao
diện này và nó giả thiết rằng có phần tử phần mềm nào đó sẽ cung cấp giao diện
này. Một cấu phần không thể cung cấp một giao diện cung ứng, nếu thiếu một
trong số giao diện yêu cầu của nó. Vì vậy, lý tưởng nhất, một cấu phần cần được
triển khai với thông tin mô tả đặc tả tất cả các giao diện yêu cầu và giao diện
cung ứng của nó.
Các phần tử phần mềm tương tác với một cấu phần thông qua việc sử dụng
các giao diện được định nghĩa rõ ràng và được tài liệu hóa. Một chuẩn tương tác
định nghĩa các phần tử của một giao diện. Nếu cấu phần chỉ có thể thực hiện
chức năng của nó bằng cách tương tác với phần tử phần mềm khác, tất cả các
phụ thuộc bối cảnh phải được đặc tả tường minh trong tài liệu cấu phần. Chuẩn
tương tác bao gồm các tương tác trực tiếp và gián tiếp giữa các cấu phần.
Một cấu phần có thể có một phụ thuộc bối cảnh tường minh trên HĐH, một
cấu phần phần mềm, hoặc một phần tử phần mềm khác. Một chuẩn tương tác
đặc tả dạng các phụ thuộc bối cảnh tường minh mà cấu phần có thể có. Một
dạng khác của phụ thuộc bối cảnh tường minh xảy ra khi một cấu phần phải
chạy trên một máy tính với một xung nhịp xác định để đạt được hiệu năng mong
muốn. Nếu cấu phần phải tương tác với một thiết bị phần cứng, cấu phần đó sử
dụng các giao diện lập trình ứng dụng (APIs - Application Programming
Interfaces) của HĐH hoặc giao diện của cài đặt mô hình cấu phần. Trong cả hai
trường hợp, thông tin mô tả cấu phần phải định nghĩa rõ ràng phụ thuộc bối cảnh
tường minh này.

Để có thể sử dụng lại và kết nối giữa các cấu phần, nhà sản xuất và người
dùng cấu phần phải thống nhất được tập các giao diện trước khi thiết kế. Kết quả
của sự thoả thuận này là các giao diện được chuẩn hoá. Mặt khác, các giao diện
có thể được mô tả bằng cách sử dụng nhiều ký pháp khác nhau, nó phụ thuộc
vào thông tin mà chúng ta muốn chứa đựng, và mức chi tiết của đặt tả. Phần
giao diện chỉ mô tả tên của các phương thức, kiểu của các tham số, và giá trị trả
về tức là nó chỉ cung cấp các đặc tả của tập các thao tác chứ không phải từng
thao tác đơn lẻ.
2.1.2 Chuẩn kết hợp
Để có thể triển khai độc lập, cấu phần phải cách ly khỏi HĐH và các cấu
phần khác. Do đó, cấu phần phải đóng gói các thuật toán và dữ liệu cần thiết cho
việc thực hiện nhiệm vụ của nó [3].



8
Cách thức một cấu phần được triển khai phụ thuộc mô hình cấu phần của nó,
thông thường có ba bước triển khai sau:
1) Cài đặt cấu phần.
2) Cấu hình cấu phần và HĐH, nếu cần.
3) Đưa cấu phần vào sử dụng.
Mã nguồn của cấu phần phần mềm là tất cả các file mà máy có thể đọc được
(các thủ tục và mô-đun) và máy có thể thực thi (các thư viện lúc thực thi và các
mã đối tượng được biên dịch sẵn), được đóng gói thành phần tử phần mềm máy
đọc được. Một cấu phần phần mềm được đóng gói dạng nhị phân nhằm:
 Bảo vệ các thuộc tính mang đặc trưng riêng của nhà sản xuất cấu phần
phần mềm.
 Giảm chi phí cài đặt và triển khai.
 Giảm các phụ thuộc bối cảnh tường minh (ví dụ: người dùng không
cần chương trình dịch Gnu C++ phiên bản 2.81 sử dụng cấu phần

được đóng gói dạng nhị phân).
Trong quá trình triển khai, có thể khách hàng hoặc bên chứng nhận thứ ba sẽ
có yêu cầu đòi quyền truy cập mã nguồn. Khi đó, nhà sản xuất cấu phần sẽ quyết
định về việc triển khai mã nguồn của cấu phần đó.
Một chuẩn kết hợp định nghĩa cách thức soạn cấu phần để tạo ra một cấu trúc
lớn hơn, cách thức mà một nhà sản xuất thay thế cấu phần bằng cấu phần khác
theo cấu trúc đã có sẵn.
Thêm vào đó, với một mô tả giao diện, nhà sản xuất cấu phần cần cung cấp
tài liệu mô tả đầy đủ tới người dùng cấu phần tương lai, để người dùng có khả
năng gắn cấu phần đó vào trong một ứng dụng cụ thể. Bên chứng nhận thứ ba
cũng sẽ sử dụng tài liệu được cung cấp để kiểm chứng quy trình được sử dụng
phát triển cấu phần đó và đảm bảo rằng sản phẩm cuối cùng đáp ứng được đầy
đủ đặc tả. Nhà sản xuất cấu phần hoặc tổ chức chứng nhận thứ ba sẽ quyết định
dạng thích hợp nhất cho tài liệu, đó là lưu trữ nó cùng với cấu phần theo cả hai
dạng mã nguồn hoặc nhị phân, hay cung cấp độc lập. Điểm mạnh của phần mềm
phát triển trên cơ sở cấu phần được thể hiện ở:
 Quy tắc nghiệp vụ
 Quy trình nghiệp vụ
 Các yêu cầu chức năng
 Các yêu cầu phi chức năng
 Các chuỗi tình huống sử dụng
 Tài liệu thiết kế sử dụng các lược đồ UML và ngôn ngữ ràng buộc đối
tượng



9
 Các điều kiện trước
 Các điều kiện sau
 Các hợp đồng thiết kế

2.2 Vòng đời phát triển phần mềm trên cơ sở cấu phần
Mặc dù trong lĩnh vực công nghiệp phần mềm, công nghệ phần mềm trên cơ
sở cấu phần (CBSE – component base softwar engineering) được coi là nền tảng
vững chắc, nhưng đứng về phương diện là một khoa học công nghệ thì nó vẫn
còn khá non nớt. Thực tế cho thấy, các quy trình thành công cần phải được chia
sẻ như các bài thực hành tốt nhất để có nhiều tổ chức hơn thành công với CBSE.
Vấn đề trước hết là các tổ chức phát triển phần mềm và các phòng dịch vụ thông
tin thường có ghanh đua về vấn đề quy trình đã được đăng ký. Ví dụ, nếu một
nhà quản lý dịch vụ thông tin thất bại khi chuyển giao một hệ thống phần mềm,
họ sẽ có một lựa chọn là sử dụng toàn bộ nguồn lực bên ngoài. Nếu bạn cho
rằng nguồn lực sẵn có, nguồn lực bên ngoài và các công cụ phát triển là không
có gì mới mẻ so với việc phát triển phần mềm thong thường, thì sự khác nhau
chính là ở quy trình được sử dụng để phát triển hệ thống phần mềm.
Trọng tâm của quy trình xây dựng giải pháp (Allen và Frost 1998) được đưa
ra bởi khách hàng hoặc doanh nghiệp (Eles và Sims, 1998). Trong lĩnh vực công
nghệ phần mềm. Điều này luôn đạt được bằng việc mô hình hóa các quy trình
nghiệp vụ (Jacobson 1994). Thỏa thuận giữa khách hàng và nhà thiết kế đạt
được thông qua việc tài liệu hóa các yêu cầu hoặc xem xét các thiết kế. Mỗi lần
việc thiết kế giải pháp được bắt đầu, các cấu phần bắt đầu có một ảnh hưởng nào
đó. Nhóm chịu trách nhiệm xây dựng các giải pháp thực sự là thành phần chi
phối đến dự án. Một lựa chọn cho thiết kế các cấu phần tương tác là dựa trên mô
hình UML. Thách thức cho người xây dựng giải pháp là tập hợp thành hệ thống
lớn trên cơ sở các cấu phần. Để làm được điều này ta sẽ cần thông tin về các cấu
phần có sẵn, các giao diện yêu cầu, các dịch vụ, sự vận hành, và các phương
thức.
Quy trình tìm đúng các cấu phần là quan trọng với nhà thiết kế, và thuật ngữ
thường được sử dụng trong quá trình thiết kế là lấp đầy khoảng trống. Quá trình
lấp khoảng trống có thể đưa đến một trong hai kết luận sau:
i) Cấu phần giống như yêu cầu đã được tìm thấy và đưa vào sử dụng.
ii) Không có cấu phần nào như thế tồn tại.

Điều này dẫn đến đòi hỏi đó là cần có một quy trình lưu trữ các cấu phần có
sẵn, đôi khi bạn cũng cần tạo một dự án con để xây dựng một cấu phần theo đặc
tả. Điều này có nghĩa là quy trình lưu trữ không chỉ nắm giữ các các cấu phần đã



10
xây dựng sẵn, mà còn kích hoạt quy trình xây dựng cấu phần mới. Lợi ích thực
sự của CBSE chỉ được nhận ra bằng cách kích hoạt song song giải pháp và sự
phát triển cấu phần, điều này đạt được thông qua việc lập kế hoạch và thiết kế.
Với các cấu phần không tìm thấy, quy trình lưu trữ phải cho phép khách hàng
đưa ra mong muốn để nhận được sự cung ứng khác.
Mỗi lần ta sử dụng một cấu phần cho dù cấu phần đó đã được đóng gói hay
đã được gắn vào sản phẩm, ta cũng cần một quy trình quản lý cấu hình cấu phần
đó. Bởi vì các phiên bản mới của một cấu phần có thể được cung ứng bất cứ lúc
nào, và người xây dựng giải pháp có thể muốn cải tiến nâng cấp, hay khách hàng
cần một quy trình thông báo cho họ khi các cấu phần cập nhật, lưu trữ. Người
xây dựng giải pháp có thể dễ dàng thay thế một cấu phần tồn tại bằng phiên bản
mới hơn. Điều này đạt được nếu người xây dựng giải pháp có xác nhận đăng ký
nhận thông báo khi có cấu phần phiên bản mới được lưu trữ.
Thêm một định nghĩa nữa ở đây để ta có thể phân biệt sự khác nhau giữa
vòng đơi phát triển phần mềm và vòng đời cấu phần đó là: Trong một vòng đời
phát triển phần mềm truyền thống, những người phát triển thường là người phân
tích, thiết kế và lập trình. Một dự án có một sự khởi đầu tốt, khi các yêu cầu trở
nên rõ ràng, và kết thúc tốt đẹp khi hệ thống phần mềm cuối cùng sẽ được
chuyển giao. Sản xuất cấu phần thì khác, người ta mất nhiều thời gian hơn để
nghiên cứu về các quy tắc nghiệp vụ, mô hình quy trình nghiệp vụ, phân tích và
thiết kế. Nhưng thời gian sử dụng để phát triển là ít hơn trong khi kiểm thử phải
thực hiện xuyên suốt. Để tìm hiểu một cách chi tiết về vòng đời cấu phần ta đi
đến định nghĩa sau:

Vòng đời phần mềm cấu phần (CSLC-Component Software Life Cycle)[3]
biểu diễn quy trình trọn vẹn để phát triển một phần mềm có sử dụng đến tích
hợp cấu phần bên ngoài. CSLC nhấn mạnh vào: các quy tắc nghiệp vụ, mô hình
quy trình nghiệp vụ, thiết kế, xây dựng, duy trì kiểm thử, triển khai, mở rộng,
duy trì sử dụng lại và bảo trì.
Các giai đoạn phân tích và thiết kế cho 1 CSLC là đặc biệt dài hơn so với
vòng đời phát triển phần mềm truyền thống. Hoạt động kiểm chứng được thực
hiện ít nhất ở cuối mỗi pha trong CSLC. Trong quá trình kiểm thử đơn vị ta sử
dụng cách cài đặt và kiểm thử “tối ưu nhất”. Kiểm thử viên phần mềm phối hợp
với tất cả các thành viên trong đội tham gia kiểm thử tích hợp và kiểm thử hệ
thống. Việc bảo trì được thiết kế cho cấu phần xác định nhằm phát triển trong
thời gian dài. Cài đặt mô hình cấu phần hỗ trợ sự tương tác và kết hợp, từ đó các
kỹ sư có thể tạo các hạ tầng cấu phần phần mềm, đặc tả miền cho các cấu phần



11
của họ tương tác với các chức năng và hành vi của hệ thống gọi cấu phần trong
CSLC.
Bảng dưới đây thể hiện so sánh giữa vòng đời phát triển phần mềm truyền
thống với vòng đời phát triển CBSE.

Bảng 1. So sánh vòng đời phát triển trên cơ sở cấu phần với vòng đời phát
triển phần mềm truyền thống [3]

Bước
Vòng đời phát triển phần mềm
truyền thống
Vòng đời phát triển CBSE
1

Mô hình quy trình nghiệp vụ
Mô hình quy trình nghiệp vụ
2
Quản lý yêu cầu
Quản lý yêu cầu
3
Mô hình thiết kế hệ thống
Mô hình thiết kế hệ thống (cấu phần)
CBSE

Lấp đầy khoảng trống (gap fullfilled)
CBSE

Đặc tả cấu phần mới
CBSE

Đưa cấu phần vào sử dụng
CBSE

Lập danh sách thư tín (liên hệ)
4
Lựa chọn môi trường phát triển
tương tác (IDE - Interactive
development environment)
Lựa chọn môi tường phát triển tương
tác (IDE - Interactive development
environment)
5
Xây dựng cơ sở dữ liệu
Xây dựng cơ sở dữ liệu

6
Xây dựng tầng giữa
Xây dựng tầng giữa
7
Xây dựng phần mềm khác
Xây dựng phần mềm khác
8
Kiểm thử
Kiểm thử
9
Đóng gói
Đóng gói
CBSE

Tiếp nhận cảnh báo, cấu phần mới
CBSE

Xem xét cấu phần mới
CBSE

Cập nhật thiết kế
10
Bảo trì
Bảo trì
11
Mở rộng
Mở rộng
12
Kết hợp các hệ thống
Kết hợp các hệ thống




12
2.3 Các mô hình cấu phần và dịch vụ cấu phần
Cấu phần ở mức ứng dụng có thể được sử dụng, nhưng khả năng sử dụng
lại cấu phần phần mềm mức ứng dụng là chưa đủ thích hợp. Thiếu sót của việc
sử dụng lại xảy ra bởi vì các ứng dụng là quá thô, chúng thiếu hỗ trợ kết hợp, và
hệ điều hành thiếu các chuẩn đặc tả miền. Các thiếu sót đó được thể hiện qua
một số đặc điểm:
Thiếu tính chất hạt nhân – Lack of granularity – Các ứng dụng là quá thô để
có thể cải thiện việc sử dụng lại. Các nhà phát triển ứng dụng thường được yêu
cầu thiết kế và cài đặt các chức năng chung chung mà bất kỳ ứng dụng nào cũng
có thể có. CBSE tìm ra các nhân tố chung đưa vào các các dịch vụ được cung
cấp bởi sự cài đặt mô hình cấu phần hoặc các cấu phần đã được đặt hàng và tích
hợp vào hạ tầng cấu phần. Tư tưởng trọng tâm của CBSE là phát triển các công
nghệ chi tiết hơn, các cấu phần được làm mịn dần và cho phép sử dụng lại ở
mức các ứng dụng thành phần tương tự như tại mức ứng dụng.
Thiếu sự hỗ kết hợp – lack of composition support –Trên thực tế, các hệ điều
hành đảm bảo rằng các ứng dụng thực thi hoàn toàn độc lập với nhau. Cơ chế
như giao tiếp quy trình nội bộ được nói đến là khả năng trao đổi dữ liệu giữa các
ứng dụng, nhưng các giao diện ứng dụng thường đặc tả kém và thiếu các chuẩn
kết hợp. Trong khi các ứng dụng triển khai trong hệ điều hành xác định và sử
dụng các dịch vụ của hệ điều hành đó. Chúng hiếm khi là đơn vị kết hợp.
Thiếu các chuẩn đặc tả miền – (Lack of domain - specific standards) – Các
dịch vụ của một hệ điều hành là quá chung chung không hỗ trợ được các miền
ứng dụng đặc tả. Ví dụ, một hệ thống đồng bộ cần các dịch vụ khác nhau và giao
diện lập trình ứng dụng (APIs-Application programming Interfaces) hơn là một
hệ thống điều khiển quy trình hoặc một ứng dụng viễn thông.
Mục tiêu của CBSE là phát triển các hệ thống phần mềm bằng cách tạo ra các

cấu phần có thể sử dụng lại tách biệt thì tốt hơn là các gắn vào ứng dụng. Một
cách tự nhiên, các cấu phần thô này cần các chuẩn tương tác và kết hợp, cũng
như chuẩn hóa các hạ tầng và các dịch vụ. Sự tham gia của CBSE là để định
nghĩa các mô hình cấu phần theo các chuẩn như vậy và để cung cấp các cài đặt
mô hình cấu phần kết hợp để kích hoạt các cấu phần và các hạ tầng cấu phần
được thiết kế, cài đặt, và triển khai.
2.3.1 Mô hình cấu phần
Cấu phần vận hành trên cơ sở các mô hình cấu phần. Có hai mức vận hành
cấu phần bao gồm: [3]



13
Mức thứ nhất: Một mô hình cấu phần định nghĩa cách xây dựng từng cấu
phần riêng lẻ.
Mức thứ hai: Một mô hình cấu phần điều khiển hoạt động chung một tập cấu
phần trong hệ thống trên cơ sở cấu phần giao tiếp và tương tác với nhau. Một
mô hình cấu phần tạo nên sự kết hợp bằng việc định nghĩa một chuẩn tương tác
và nâng lên thành giao diện đặc tả tường minh. Một cấu phần có thể được tạo từ
cấu phần khác hoặc phần tử phần mềm khác bằng cách tạo ra các kết nối được
tập hợp hoặc tích hợp riêng.
Mô hình cấu phần định nghĩa cơ chế cấp phép cho việc tạo các kết nối được
tập hợp hoặc tích hợp. Theo D‟Souza và Wills (1999) thì “khả năng lắp ghép”
chỉ thành công nếu một cấu phần biểu thị được chính xác yêu cầu của cấu phần
khác mà nó kết nối tới. Quy trình đó cần phải đủ phức tạp để thu được kết quả
đặc tả chính xác. Chúng ta sử dụng khái niệm gắn kết cho các cấu phần viết ra
chẳng hạn như bao gói, liên kết tĩnh - động, “plug-and-play”.
Mô hình cấu phần có thể định nghĩa các cơ chế tuỳ biến để mô tả cách mà
các cấu phần có thể mở rộng mà không có sự hiệu chỉnh. Chúng ta coi việc hiệu
chỉnh như một dạng cải tiến của tương tác. Một mô hình cấu phần có thể cũng

định nghĩa các thuộc tính cấu phần bắt buộc như định dạng mã, các chuẩn tài
liệu hoặc các giao diện độc lập của nhà sản xuất.
[3]Mô hình cấu phần định nghĩa một tập các chuẩn bao gồm: cài đặt cấu
phần, đặt tên, khả năng vận hành nội bộ, tuỳ biến, kết hợp, phát triển và triển
khai. Một mô hình cấu phần cũng định nghĩa chuẩn cho việc triển khai mô hình
liên kết các cấu, tập các đối tượng phần mềm thực thi được yêu cầu hỗ trợ thực
thi của các cấu phần tuân theo mô hình.
Một số các mô hình cấu phần đang được sử dụng hiện nay là mô hình thành
phần CORBA của OMG, COM+/DOM, và SUN -javabean, Enterprise
JavaBeans của Microsoft. Không nhất thiết khi phát triển cấu phần phải tuân
theo một chuẩn, nhưng tại một thời điểm không nên có quá nhiều chuẩn.
Các phần tử cơ bản của một mô hình cấu phần được Weinreich và
Sametinger liệt kê chi tiết - 2001. Hình dưới đây tổng hợp lại các phần tử trong
mô hình cấu phần, nó chỉ ra rằng các phần tử đã được phân loại theo các giao
diện cấu phần, các phần tử liên quan đến thông tin mà bạn cần sử dụng đến cấu
phần đó trong một chương trình và các phần tử tập trung vào việc triển khai cấu
phần.






14
Hình
1.
Các phần tử cơ bản của một mô hình cấu phần[1]
Giao diện Thông tin cung cấp Triển khai và sử dụng
Định nghĩa
giao diện

Kết cấu
Các giao diện
đặc trưng
Quy tắc
đặt tên
Truy cập
siêu dữ liệu
Sự tùy biến Đóng gói
Tài liệu hóa
Hỗ trợ phát triển
Mô hình cấu phần

Các phần tử cấu phần được định nghĩa dựa trên giao diện của nó. Mô hình
cấu phần đặc tả cách định nghĩa các phần tử đó, như tên hàm, tham số, các ngoại
lệ. Một số mô hình cấu phần yêu cầu các giao diện đặc tả phải được định nghĩa
bởi một cấu phần.
Một phần quan trọng của mô hình cấu phần là định nghĩa cách mà các cấu
phần nên được đóng gói triển khai độc lập, để các đối tượng thực hiện được. Bởi
vì các cấu phần là những thực thể độc lập, chúng phải được đóng gói một cách
độc lập với hạ tầng cấu phần xác định hoặc không được định nghĩa trong một
giao diện yêu cầu.
2.3.1.1 Các phần tử của một mô hình cấu phần
Trong thị trường cấu phần phần mềm toàn cầu các cấu phần được triển khai
một cách độc lập và tùy thuộc vào sự kết hợp với bên thứ 3. Thị trường này cần
có các chuẩn. Các chuẩn giao tiếp và chuẩn trao đổi dữ liệu giữa các cấu phần
khác nhau của các nhà sản xuất cấu phần là rõ ràng. Như vậy, một chuẩn hoạt
động nội bộ – đôi khi gọi là chuẩn lắp ráp hoặc kết nối – là một phần tử trung
tâm trong một mô hình cấu phần. Các phần tử cơ bản khác của một mô hình cấu
phần là các chuẩn: giao diện, đặt tên, siêu dữ liệu, tuỳ biến, kết hợp, phát triển
và triển khai.

Một mô hình cấu phần có thể cũng có các chuẩn đặc trưng để mô tả các tính
năng đặc tả miền cần thiết trong các ứng dụng. Ví dụ, sự kết hợp các cấu phần
trong các miền với các hoạt động đang diễn ra đòi hỏi tiếp cận các mô hình
chuỗi được chuẩn hoá và các cơ chế đồng bộ. Một hệ xử lý phân tán mở đòi hỏi
các chuần lời gọi phương thức từ xa, và chuẩn bảo mật. Các ứng dụng nghiệp vụ
3 lớp cần các dịch vụ giao dịch được chuẩn hoá và cơ sở dữ liệu APIs. Cuối
cùng, một mô hình cấu phần với các tài liệu kết hợp (như OLE) cần đặc tả từng



15
phần, các quan hệ bao hàm và giao diện. Các mô hình cấu phần đặc tả miền gọi
tới các chức năng đặc biệt trong cài đặt mô hình cấu phần.
2.3.1.2 Giao diện, thỏa thuận và ngôn ngữ định nghĩa giao diện
Mục đích của các cấu phần là được sử dụng lại trong phần mềm. Hai hình
thức sử dụng lại là sử dụng lại hộp trắng và sử dụng lại hộp đen.
Sử dụng lại hộp trắng nghĩa là mã nguồn của cấu phần phần là có sẵn đầy đủ
và có thể nghiên cứu, sử dụng lại, lắp ghép hoặc chỉnh sửa. Sử dụng lại hộp
trắng thể hiện vai trò chính trong các nền tảng hướng đối tượng, đáp ứng sức
mạnh kế thừa cho các cài đặt phần mềm sử dụng lại. Nhược điểm của sử dụng
lại hộp trắng là các khách hàng sử dụng cấu phần có thể thay đổi mã nguồn cấu
phần đó nếu có sự thay đổi bên trong chương trình.
Sử dụng lại hộp đen dựa trên nguyên tắc che giấu thông tin. Người dùng cấu
phần chỉ có thể dựa trên vào các giao diện. Các giao diện này là sự mô tả hoặc
đặc tả hành vi cấu phần. Thông qua các giao diện, các lời gọi cấu phần có thể
được thay đổi tiếp tục thỏa mãn yêu cầu định nghĩa. Giao diện thể hiện một cách
tường minh và qua các công cụ chẳng hạn như bộ biên dịch, có thể kiểm chứng
tĩnh khả năng tương thích với các cấu phần client.
Một giao diện không phải là phần hợp thành của cấu phần, mà các phần hợp
thành cấu phần là các dịch vụ chẳng hạn như một thoả thuận giữa một cấu phần

với các client của nó. Một giao diện đặc tả các dịch vụ yêu cầu từ một client đến
cấu phần; cấu phần phải cung cấp một cài đặt các dịch vụ này. Thêm vào đó,
một giao diện có thể bao gồm các ràng buộc trên các dịch vụ được sử dụng, nó
phải được xét trên cả cấu phần và các client của nó. Các đặc tả giao diện là phần
tử trung tâm trong một mô hình cấu phần. Một mô hình cấu phần định nghĩa
cách mà một hành vi cấu phần được mô tả – dựa trên giao diện, các đặc tả khác
(phi chức năng) và các tài liệu thích hợp. Một mô hình cấu phần định nghĩa các
phần tử, mỗi phần tử có thể cấu thành một giao diện. Các phần tử của một giao
diện gồm có:
 Tên của các phép toán liên quan đến ngữ nghĩa.
 Các tham số của chúng
 Kiểu tham số
Các giao diện gồm các ngoại lệ được đưa ra, các điều kiện trước, điều kiện sau
phải được đáp ứng khi sử dụng các thao tác riêng lẻ, và các đặc tả từng phần
hành vi mong muốn của một giao diện cài đặt cấu phần. Nhiều mô hình cấu
phần có một ngôn ngữ định nghĩa giao diện (IDL – Interface definition



16
language) với các giao diện mô tả và các phần tử của nó sử dụng một ký hiệu
độc lập cài đặt.
Mô hình cấu phần có thể định nghĩa một tập các giao diện đặc tả cần được cài
đặt bởi các cấu phần. Các giao diện này được sử dụng qua cài đặt mô hình cấu
phần cung cấp các dịch vụ đã có sẵn chẳng hạn như các giao dịch hoặc bảo mật.
2.3.1.3 Đóng gói và triển khai
Các chuẩn mô hình cấu phần đã được chứng nhận, như các kết nối Internet
băng thông rộng, sẽ làm thay đổi công việc triển khai của phần mềm đóng gói
sẵn. Điều này trở nên không cần thiết khi thực hiện gói các hệ thống phần mềm
khổng lồ và các tài liệu đi kèm vào thành 1 sản phẩm dùng ngay được. Thêm

vào đó, để các cài đặt mô hình cấu phần được tường minh, các cấu phần nhỏ
được lắp ghép vào xây dựng ứng dụng. Các kết nối internet nhanh hỗ trợ người
dùng tải các cấu phần đã đóng gói và tài liệu đi kèm để phát triển các hệ thống
phần mềm.
Một mô hình cấu phần mô tả cách mà các cấu phần được đóng gói, bởi vậy
chúng có thể được triển khai độc lập. Một cấu phần được triển khai nghĩa là nó
được cài đặt và cấu hình trong một hạ tầng cấu phần. Cấu phần được đóng gói
thường gồm mã chương trình, dữ liệu cấu hình, các cấu phần khác và các tài
nguyên đi kèm. Một mô tả triển khai cung cấp thông tin bên trong của gói (hoặc
các gói liên quan) và các thông tin khác cần thiết cho quy trình triển khai. Chuẩn
triển khai đặc tả cấu trúc và ngữ nghĩa cho các mô tả triển khai và nó quy định
định dạng các gói. Thêm vào nữa, mô hình cấu phần có thể định nghĩa các quy
trình triển khai bao gồm cả việc đăng ký cấu phần.
2.3.2 Sự cài đặt mô hình cấu phần và các dịch vụ
Nếu một cấu phần thực hiện một công việc cụ thể và cung cấp một giao diện
thì bên gọi có thể sử dụng cấu phần đó nếu tuân theo các đặc tả của giao diện
cấu phần. Các đặc tả cấu phần bao gồm sự định nghĩa chặt chẽ về cú pháp các
phương thức, cũng như mô tả về ngữ nghĩa của giao diện. Các tiếp cận hiện tại ở
mức đăng ký là sử dụng các ngôn ngữ đặc tả giao diện - IDLs cho việc mô tả các
giao diện. IDLs được định nghĩa bởi CORBA, COM và COM+ là các ví dụ điển
hình. Việc cài đặt mô hình cấu phần được thiết kế cho tập các phần tử phần mềm
hỗ trợ thực hiện các cấu phần trong một mô hình cấu phần. Một mô hình cấu
phần có thể được nhúng trong một HĐH nhưng nó sẽ chỉ khiến HĐH trở nên
phức tạp thêm, và hạn chế tính ứng dụng của mô hình cấu phần. Việc cài đặt mô
hình cấu phần tiêu biểu cho một lớp mỏng thực thi ngay trên HĐH. Các HĐH đa



17
nhiệm có thể di chuyển lớp này để đảm bảo khả năng ứng dụng tối đa của mô

hình cấu phần.
Chuẩn tương tác cho một mô hình cấu phần xác định cách một giao diện phải
được đăng ký với sự cài đặt mô hình cấu phần trước khi sử dụng. Các giao diện
được định nghĩa một cách tường minh bằng việc sử dụng ngôn ngữ định nghĩa
giao diện IDL và được lưu trữ lại, kết hợp với cài đặt mô hình cấu phần. Chuẩn
kết hợp cho một mô hình cấu phần xác định cấu phần đăng ký với sự thực thi
mô hình cấu phần trước khi sử dụng nó. Nhà phân phối cài đặt mô hình cấu phần
cung cấp các công cụ như chương trình biên dịch IDL nhằm hỗ trợ sự phát triển
của các cấu phần. Như vậy, sự cài đặt mô hình cấu phần giúp khả năng thực thi
các cấu phần tuân theo mô hình. Khi nhà sản xuất mô hình cấu phần cũng là nhà
thiết kế mô hình cấu phần, mô hình cấu phần đó có thể bị trở thành độc quyền.

Một phần quan trọng của mô hình cấu phần là sự chuẩn hoá môi trường chạy
thật để hỗ trợ thực thi cấu phần. Điều này bao gồm đặc tả giao diện cho cả hai
dịch vụ chung và các dịch vụ đặc tả miền tại thời điểm chạy. Các dịch vụ chung
nhằm hỗ trợ các hệ thống cấu phần trên cơ sở đối tượng bao gồm việc tạo đối
tượng, quản lý chu trình, hỗ trợ gắn kết đối tượng (object-persistence support)
và bản quyền. Mô hình cấu phần trong hệ thống phân tán phải định nghĩa các
dịch vụ:
 Các dạng giao tiếp khác, chẳng hạn như các hàng đợi thông điệp
 Cảnh báo trên cơ sở sự kiện từ xa
 Các dịch vụ định vị từ xa
 Bảo mật
Mô hình cấu phần hỗ trợ việc xây dựng các hệ thống thông tin đa lớp đặc tả giao
diện lập trình ứng dụng (APIs) truy cập dữ liệu và các dịch vụ cho quản lý giao
dịch và cân bằng tải.
Một thiết kế trên cơ sở cấu phần sẽ phản án quy trình chuẩn hóa đặc trưng đến
các dịch vụ đặc tả miền. Một ví dụ về một tập các chuẩn được xây dựng trên
một mô hình cấu phần chung là kiến trúc quản lý đối tượng (OMA- Object
management architechture). OMA được định nghĩa bởi nhóm quản lý đối tượng

(OMG – Object management group), một tổ chức phi lợi nhuận với khoảng 800
công nhân có kỹ năng và tay nghề. Trọng tâm của mô hình này là kiến trúc
CORBA, một chuẩn vận hành cho các ứng dụng trên cơ sở đối tượng phân tán
hỗ trợ các ngôn ngữ cài đặt khác nhau.
Các mô hình cấu phần nổi tiếng khác như COM của Microsoft và JavaBean của
Sun định nghĩa các dịch vụ giống nhau có ích trong các hệ thống đa miền. Tất cả



18
các nhà cung ứng cài đặt mô hình cấu phần cũng đang phát triển các tương tác
đặc tả miền và các chuẩn kết hợp.

Hình
2.
Chuẩn đặc tả miền [3]
Đặc tả miền
Mô hình cấu phần chung + Các dịch vụ
Các hạ tầng ngang +
Các dịch vụ
Các hạ tầng dọc +
Các dịch vụ
Tương tác
siêu dữ liệu
Quản lý hệ thống các
tài liệu thống nhất
Đồng bộ
Thông tin liên lạc
Tự động hóa quy trình
Tài chính

Chăm sóc dịch vụ
Tổng quát

Hiện nay, một số HĐH như Microsoft Windows đã kết hợp các cài đặt mô
hình cấu phần. Như vậy, các hệ điều hành có thể tiến hành phục vụ trực tiếp các
cài đặt mô hình cấu phần trên CBSE.
Như thế ta có một số các tổng kết sau:
Các HĐH cung cấp:
 Sự trừu tượng dưới góc độ phần cứng (hạ tầng)
 Môi trường thực thi
 Các dịch vụ nền cho ứng dụng
Các mô hình cấu phần: Mô hình cấu phần định nghĩa các chuẩn đặt tên, siêu
dữ liệu, đặc tả hành vi cấu phần, sự cài đặt cấu phần, sự vận hành trong cấu
phần, sự tuỳ biến, sự kết hợp và triển khai.
Cài đặt mô hình cấu phần: cài đặt mô hình cấu phần là dựa trên từng mô hình
cấu phần riêng lẻ. Nó cung cấp:
 Môi trường chạy.
 Các dịch vụ cơ bản.
 Các dịch vụ ngang có tác dụng trong các miền đa nhiệm.
 Dịch vụ dọc cung cấp chức năng cho từng miền trong các cấu phần
phần mềm.

×