ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Nghiệp
MÔ HÌNH HÓA
CÁC HỆ THỐNG DỰA TRÊN CÁC THÀNH PHẦN
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành:
Công nghệ thông tin
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành:
Công nghệ thông tin
Cán bộ hướng dẫn:
TS. Đặng Văn Hưng HÀ NỘI - 2009
còn chưa hiểu rõ, thầy luôn nhiệt tình chỉ dạy cho em những kinh nghiệm quý báu khi
tiếp cận các vấn đề mới. Em cũng xin cảm ơn tới gia đình. Gia đình là nguồn lực động
viên em khi làm khóa luận này.
Sinh viên
Nguyễn Văn Nghiệp MỤC LỤC
LỜI MỞ ĐẦU ................................................................................................................1
1. TỔNG QUAN VỀ HỆ THỐNG DỰA TRÊN CÁC THÀNH PHẦN ...................3
1.1. Hệ thống dựa trên thành phần là gì?................................................................3
1.1.1. Thành phần phần mềm..........................................................................................3
1.1.2. Hệ thống dựa trên thành phần..............................................................................4
1.2. Hệ thống thời gian thực là gì?...........................................................................6
2. KIẾN TRÚC HỆ THỐNG DỰA TRÊN THÀNH PHẦN......................................7
3. TÌM HIỂU MÔ HÌNH THÀNH PHẦN ..................................................................8
3.1 Thiết kế dưới dạng công thức logic....................................................................8
3.2 Giao diện và hợp đồng ........................................................................................9
3.3. Kết hợp hợp đồng.............................................................................................11
Tồn tại x trong tập T sao cho P
:x T P∀ •
Mọi x trong T sao cho P
∈
Thuộc
∉
Không thuộc
{}
Tập rỗng
{ }a
Tập đơn chứa duy nhất phần tử a
{ : | ( )}x T P x
Tập hợp tất cả x trong T sao cho P(x)
{ ( ): | ( )}f x T P x
Tập hợp giá trị của hàm f(x) sao cho P(x)
S T∪
S hợp T
S T∩
S giao T
\S T
S trừ T
S T⊆
S chứa trong T
S T⊇
S chứa T
Dãy rỗng
a
Dãy chứa duy nhất a
ok
Chương trình đã khởi động
M
Hợp phần song song với toán tử M
:x e=
Gán giá trị e cho biến x.
1
LỜI MỞ ĐẦU
Từ khi máy tính được phát minh, chế tạo thành công, con người đã được hưởng
những thành quả của khoa học máy tính. Các hệ thống thông tin được xây dựng nhằm
giúp cho việc tính toán trở nên nhanh chóng và hiệu quả hơn. Các chương trình phần
mềm được thiết kế và cài đặt với mục đích hỗ trợ tốt hơn cho con người trong nhu cầu
công việc hàng ngày. Ban đầu, công việc thiết kế, lập trình các hệ thống chưa được hỗ
trợ nhiều. Từ việc lập trình bằng ngôn ngữ máy đến lập trình bằng ngôn ngữ bậc cao.
Con người tiếp cận lập trình hướng cấu trúc với cách thể hiện phù hợp với kiến trúc
máy tính thời điểm đó. Và sau đó là tiến thêm một bước nữa trong việc phát triển các
hệ thống thông tin, đó là lập trình hướng đối tượng. Bằng việc sử dụng các lớp, các đối
tượng trong lập trình, các hệ thống được xây dựng lên đã trở nên linh hoạt hơn, đáp
ứng được như cầu sử dụng. Trước những phát triển không ngừng của công nghệ phần
mềm, một mô hình hệ thống mới đã được nghiên cứu, phát triển. Đó là mô hình hệ
thống dựa trên thành phần. Ngày nay, kĩ thật sử dụng hướng đối tượng và dựa trên
thành phần ngày càng trở nên phổ biến và sử dụng rộng rãi trong việc mô hình hóa và
thiết kế các hệ thống phần mềm phức tạp. Chúng cung cấp sự hỗ trợ có hiệu quả tới sự
phân hoạch một ứng dụng vào trong những đối tượng và những thành phần, mà có thể
được hiểu rõ bằng việc sử dụng lại và mở rộng những thiết kế và những cài đặt hiện
có. Những phân tích và kiểm chứng các hệ thống đó cũng có thể dễ dàng hơn vì kiến
trúc hợp thành phần hợp thành.
Với sự ra đời của hướng nghiên cứu mới này, các hệ thống được xây dựng dễ
dàng hơn, linh hoạt hơn rất nhiều. Đặc biệt, các hệ thống có tính bảo mật hiệu quả cao
hơn rất nhiều so với các mô hình đã được nghiên cứu và phát triển trước đây. Nguyên
tắc cơ bản của hệ thống dựa trên thành phần là cắm và chạy (plug and play) nên hệ
mô hình của thành phần UML.
Hình 1. Mô hình thành phần UML
Các đặc trưng chính của thành phần được chỉ ra là:
• Tính đóng gói
• Xác định duy nhất
• Khả năng sử dụng lại
• Sẵn sàng để sử dụng
• Nhiều dạng thể hiện
• Giao diện
• Client anonymity
Bên cạnh đó, thành phần còn có các đặc tính khác như:
• Độc lập về ngôn ngữ
• Độc lập về nền tảng
• Khả năng cấu hình
4
Hình 2: Tính đóng gói của thành phần
Ta có thế có một sự so sánh giữa thành phần và lớp như sau:
Thành phần (Component) Lớp (Class)
• Có khả năng cung cấp dịch vụ trong
quá trình hoạt động của hệ thống
• Có thể chứa nhiều lớp
• Mô tả bằng các giao diện
• Không có mã lệnh (hộp đen)
• Được phát triển riêng rẽ
• Ngữ cảnh phát triển thay đổi sau khi
biên dịch
• Thực thể thời gian thiết kế (Design
- time)
Hình 3. Mô hình tái sử dụng thành phần
• Dễ dàng bảo trì là một lợi ích rất làm cho hệ thống thành phần trở nên linh
hoạt hơn. Các thành phần được phát triển riêng biệt nên khi bảo trì, toàn
bộ hệ thống không bị ảnh hưởng nhiều, vẫn có thể hoạt động gần như bình
thường.
6
• Tính cấu hình được của chương trình đem lại một thế mạnh về khả năng
mở rộng hệ thống dễ dàng. Một hệ thống thông minh đòi hỏi phải có khả
năng thay đổi cấu hình để phù hợp với ngữ cảnh.
• Sự độc lập ngôn ngữ của các bộ phận trong hệ thống mới. Với các phương
pháp phát triển hệ thống truyền thống thì các bộ phận của mộ hệ thống
phải được phát triển trên cùng một ngôn ngữ lập trình. Nhưng với sự ra
đời của phương pháp phát triển hệ thống dựa trên thành phần, các thành
phần có thể được viết bằng các ngôn ngữ khác nhau. Bởi vì các thành
phần tương tác với nhau bằng giao diện và hợp đồng. Vấn đề này sẽ được
đề cập rõ hơn trong các phần sau.
1.2. Hệ thống thời gian thực là gì?
Hệ thống thời gian thực là hệ thống mà các dịch vụ của các thành phần phải thỏa
mãn ràng buộc về thời gian.
Ví dụ Hệ hướng dẫn lái xe.
Hệ thống này sẽ được làm rõ hơn trong phần 5 của khóa luận
7
2. KIẾN TRÚC HỆ THỐNG DỰA TRÊN THÀNH PHẦN
Với định nghĩa của một hệ thống hướng thành phần như trên, kiến trúc của hệ
thống dựa trên thành phần bao gồm các thành phần độc lập và giao tiếp với nhau qua
các giao diện giao tiếp. Sự kết hợp đó sẽ tạo thành một hệ thống lớn. Hệ thống dựa
trên thành phần được chia làm 2 phần: phần bị động và phần chủ động.
Phần bị động: là một tổ hợp các thành phần liên kết với nhau.
Phần chủ động: là một tập hợp các tiến trình phản ứng lại các tác động được gây
và
out
là tập hợp các biến.
Định nghĩa 1
Một thiết kế là một tập hợp hữu hạn
,FP
α
với
α
là biểu thị cho tập hợp các
biến chương trình được sử dụng bới phương thức, FP biểu thị cho đặc tả chức năng
của phương thức trong bảng kí hiệu của UTP.
• FP là một vị từ của dạng thức:
Nếu điều khiển chuyển đến chương trình (ok là true) và tiền điều kiện p được
thỏa mãn thì chương trình sẽ kết thúc tương ứng với ok
’
là true và giá trị của biến
chương trình tại thời điển kết thúc và thời điểm khởi hành thỏa mãn quan hệ R.
Với p là tiền điều kiện của phương thức là giả thiết trên giá trị ban đầu của các
biến trong tập hợp
\ out
α
mà các phương thức có thể dựa vào khi kích hoạt và R là
hậu điều kiện R bài liên quan đến quan sát ban đầu đến quan sát cuối cùng(được đại
diện bởi những biến đầu tiên trong tập hợp
{ | \ ( )}
x x in out
α
′
9
2 1
( , , , )
ok ok v v FP FP
′ ′
∀ •
⇒
với
,
v v
′
là các vectơ của các biến chương trình.
Dãy thành phần
Lấy
1 1
,
D FP
α
=
và
2 2
,
D FP
α
=
là các thiết kế sau đó
1 2
; ,
D D FP
thảo luận không chính thức trong phần trước, ta đưa ra định nghĩa chính thức của hai
khái niệm trong lập trình dựa trên thành phần sau đây.
Định nghĩa 2:
Một giao diện là một cặp
( , )
p r
I I I
=
với
,
p p p
I Fd Md=
và
,
r r r
I Fd Md
=
. I
p
được gọi là cung cấp giao diện của I và I
r
được gọi là yêu cầu
giao diện của I.
Định nghĩa 3:
Một hợp đồng là một tập hợp hữu hạn
, , , , ,Pr
p r
I Init MSpec Inv Inv o
với
•
p
và Inv
r
là vị từ trong cung cấp tính năng và yêu cầu tính năng tương
ứng trong hợp đồng (được gọi là hợp đồng bất biến). Inv
p
đại diện cho
một thuộc tính của giá trị biến trong khai báo đặc tính FD
p
mà có thể dựa