YOMEDIA
ADSENSE
Chuyển đổi mô hình UML sang mô hình thực thể - mối quan hệ
48
lượt xem 2
download
lượt xem 2
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Phân tích và thiết kế hệ thống đóng vai trò rất quan trọng trong quá trình sản xuất phần mềm. Rất nhiều phương pháp phân tích và thiết kế được đề xuất, với mỗi phương pháp đều có một cách tiếp cận khác nhau đối với bài toán cần giải quyết. Mời các bạn cùng tham khảo.
AMBIENT/
Chủ đề:
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Chuyển đổi mô hình UML sang mô hình thực thể - mối quan hệ
TẠP CHÍ KHOA HỌC, Đại học Huế, Số 17, 2003<br />
<br />
<br />
<br />
<br />
CHUYỂN ĐỔI MÔ HÌNH UML <br />
SANG MÔ HÌNH THỰC THỂ MỐI QUAN HỆ<br />
Võ Đăng Huân, Trần Việt Khoa<br />
Trường Đại học Khoa học, Đại học Huế<br />
<br />
<br />
1. MỞ ĐẦU<br />
Phân tích và thiết kế hệ thống đóng vai trò rất quan trọng trong quá trình sản <br />
xuất phần mềm. Rất nhiều phương pháp phân tích và thiết kế được đề xuất, với <br />
mỗi phương pháp đều có một cách tiếp cận khác nhau đối với bài toán cần giải <br />
quyết. Trong những năm gần đây ngôn ngữ mô hình hóa thống nhất (Unified <br />
Modeling LanguageUML) được xem là một mô hình chuẩn trong việc phân tích, <br />
thiết kế hệ thống thông tin dưới cách nhìn hướng đối tượng. Tuy có nhiều thuận lợi <br />
trong việc phân tích và thiết kế hệ thống nhưng trong cơ chế duy trì các đối tượng <br />
thì lại gặp khó khăn bởi các hệ quản trị CSDL đối tượng chưa được thông dụng và <br />
hoàn thiện, trong khi đó công nghệ CSDL quan hệ đã được kiểm nghiệm, có nhiều <br />
công cụ hỗ trợ phát triển và quản trị các ứng dụng CSDL quan hệ lớn. Do đó, việc <br />
chuyển đổi từ mô hình UML sang mô hình quan hệ là cần thiết. Mô hình thực thể <br />
mối quan hệ (entity relationship) được sử dụng rộng rãi trong lĩnh vực thiết kế cơ <br />
sở dữ liệu và các lĩnh vực liên quan. Các khái niệm có cấu trúc trong sáng và đơn <br />
giản của nó cho phép người sử dụng có thể mô hình hóa thế giới thực một cách dễ <br />
dàng. Nó được xem là công cụ tốt nhất để biểu diễn mô hình quan hệ một cách trực <br />
quan. Xuất phát từ mô hình này, ta có thể xây dựng được mô hình cơ sở dữ liệu quan <br />
hệ tương ứng. Vì vậy, trong bài báo này chúng tôi đề xuất phương pháp chuyển đổi <br />
biểu đồ lớp (class diagram) thành phần cốt lõi của mô hình UML sang mô hình <br />
thực thể mối quan hệ.<br />
<br />
2. PHƯƠNG PHÁP CHUYỂN ĐỔI<br />
<br />
<br />
<br />
25<br />
Biểu đồ lớp là thành phần cốt lõi của mô hình UML, được sử dụng để mô tả <br />
các lớp (class), các giao diện (interface), sự cộng tác và các mối quan hệ giữa các <br />
thành phần trong mô hình UML. Nó thể hiện dưới dạng đồ thị cấu trúc tĩnh của mô <br />
hình UML. Hai thành phần chính của biểu đồ lớp là các lớp và các mối quan hệ. <br />
<br />
2.1. Chuyển đổi lớp<br />
Theo ngữ nghĩa của UML, một lớp mô tả một tập các đối tượng có cùng cấu <br />
trúc, hành vi và các quan hệ. Một đối tượng là một thể hiện của lớp. Vì vậy trong <br />
trường hợp chúng ta chưa xem xét đến các mối quan hệ của lớp đối với các lớp khác, <br />
một lớp sẽ được chuyển đối thành kiểu thực thể. Các thuộc tính đơn giản (simple <br />
attribute) của lớp được chuyển đổi thành thuộc tính của kiểu thực thể (trong bài báo <br />
này chúng tôi chưa xét đến việc chuyển đổi các thao tác của lớp). Trong UML, mỗi <br />
thể hiện của một lớp được phân biệt bởi định danh đối tượng (object identifier). <br />
Trong mô hình thực thể mối quan hệ, mỗi thực thể phân biệt với các thực thể khác <br />
bằng giá trị của thuộc tính khóa. Do vậy, ta bổ sung vào kiểu thực thể một thuộc tính <br />
định danh (Identity) đóng vai trò là thuộc tính khóa của kiểu thực thể.<br />
<br />
Nhanvie Ngaysinh<br />
n<br />
Nhanvien Ten<br />
ten<br />
ngaysin<br />
h<br />
ID_nhanvi<br />
tuoi() en<br />
thamnie<br />
n() Hình 1: Chuyển đổi một lớp thành một kiểu thực thể<br />
<br />
<br />
Đối với các thuộc tính phức được biểu diễn trong biểu đồ lớp thông qua quan <br />
hệ kết hợp (association) và quan hệ kết tập (aggregation) việc chuyển đổi chúng sẽ <br />
được xem xét ở phần tiếp theo.<br />
2.2. Chuyển đổi các quan hệ<br />
Quan hệ là kết nối ngữ nghĩa giữa các lớp, nó cho phép một lớp biết về các <br />
thuộc tính, thao tác và quan hệ của các lớp khác. Các quan hệ được thể hiện trên <br />
biểu đồ lớp. Giữa các lớp có các kiểu quan hệ chính sau: kết hợp (association), kết <br />
tập (aggreation), tổng quát hóa (genaralization) và hiện thực (instantiation). Sau đây ta <br />
xem xét các kiểu quan hệ ở biểu đồ lớp và phương pháp chuyển đổi chúng sang mô <br />
hình thực thể mối quan hệ.<br />
26<br />
2.2.1. Chuyển đổi quan hệ kết hợp(association)<br />
a) Chuyển đổi các quan hệ kết hợp trong trường hợp tổng quát: Quan hệ <br />
kết hợp là mối quan hệ cấu trúc chỉ ra các đối tượng của một lớp có liên quan đến <br />
các đối tượng của lớp khác. Khi có quan hệ kết hợp mỗi lớp có thể gởi thông điệp <br />
đến lớp khác trong biểu đồ tương tác. Quan kết hợp có thể một chiều hay hai chiều. <br />
Một quan hệ kết hợp hai chiều đòi hỏi các đối tượng phụ thuộc lẫn nhau, trong khi <br />
quan hệ quan hệ một chiều đòi hỏi sự phụ thuộc một chiều. Cả quan hệ kết hợp <br />
một và hai chiều đều được chuyển đổi thành các quan hệ trong mô hình thực thể <br />
mối quan hệ. Cơ số (multiplicity) của quan hệ kết hợp có thể là “một một”, “một <br />
nhiều” hay “nhiều nhiều” Tuỳ thuộc vào cơ số của quan hệ kết hợp mà quan hệ <br />
tương ứng ở mô hình thực thể mối quan hệ có thể là “một một”, “một nhiều” <br />
hay “nhiều nhiều”. Mô hình thực thể mối quan hệ cũng hỗ trợ các mối quan hệ đa <br />
nguyên (nary) nên mối quan hệ kết hợp đa nguyên trong biểu đồ lớp được chuyển <br />
thành quan hệ đa nguyên trong mô hình thực thể mối quan hệ.<br />
Sinhvien ID_sinh<br />
Sinhvien vien<br />
<br />
<br />
* (1,1)<br />
<br />
hoc<br />
1 tai<br />
<br />
Khoa (1,n)<br />
<br />
Khoa ID_khoa<br />
<br />
<br />
Hình 2: Chuyển quan hệ kết hợp “một nhiều” sang mô hình thực thể mối quan hệ<br />
<br />
<br />
<br />
<br />
b) Chuyển đổi các quan hệ kết hợp có lớp kết hợp: Lớp kết hợp <br />
(association class) là lớp được gắn vào một quan hệ nhằm bổ sung thông tin cho quan <br />
hệ đó. Lớp kết hợp không liên quan đến bất kỳ đầu cuối nào của quan hệ mà chỉ liên <br />
quan đến bản thân của quan hệ đó. Một lớp kết hợp cũng có các thuộc tính và các <br />
thao tác như các lớp thông thường khác. Quan hệ kết hợp có lớp kết hợp được <br />
27<br />
chuyển đổi thành một quan hệ có các thuộc tính (là các thuộc tính của lớp kết hợp) <br />
trong mô hình thực thể mối quan hệ. Trong ví dụ ở hình 2, một người có thể làm <br />
việc ở nhiều công ty và một công ty có nhiều nhân viên. Lớp kết hợp Congviec chỉ ra <br />
rằng một công ty và một người sẽ xác định công việc mà người đó làm trong công ty. <br />
Lớp này có thuộc tính luong. Do đó, khi chuyển đổi thành quan hệ Congviec trong mô <br />
hình thực thể mối quan hệ quan hệ này cũng có thuộc tính là luong.<br />
<br />
<br />
<br />
<br />
28<br />
Congty<br />
ID_Cong<br />
ty<br />
<br />
(1,<br />
Congty n)<br />
thu<br />
e<br />
<br />
thue *<br />
Congviec Cong luo<br />
viec ng<br />
luong<br />
congt * (1,n)<br />
ac congt<br />
Nguoi ac<br />
Nguoi<br />
ID_Nguo<br />
i<br />
<br />
<br />
Hình 3: Chuyển quan hệ kết hợp có lớp kết hợp sang mô hình thực thể mối quan hệ<br />
<br />
<br />
<br />
c) Chuyển đổi quan hệ kết tập (Aggregation)<br />
Kết tập là một dạng đặc biệt của quan hệ kết hợp. Nó chỉ ra mối quan hệ “toàn <br />
thể (whole) và bộ phận (part)” giữa các lớp. Trong đó một lớp biểu diễn cái lớn hơn <br />
(tổng thể) còn lớp kia biểu diễn cái nhỏ hơn (bộ phận). Kết tập biểu diễn quan hệ <br />
“hasa”, có nghĩa rằng một đối tượng của lớp tổng thể có nhiều đối tượng của lớp <br />
thành phần. Có hai loại quan hệ kết tập. Nếu toàn thể và bộ phận được hình thành <br />
và hủy bỏ vào thời điểm khác nhau ta có quan hệ kết tập tham chiếu. Nếu toàn thể <br />
và bộ phận được hình thành và hủy bỏ vào cùng thời điểm ta có quan hệ kết tập hợp <br />
thành. <br />
Kết tập chỉ rõ sự tồn tại của các bộ phận là phụ thuộc vào toàn thể. Nó được <br />
chuyển đổi sang mô hình thực thể mối quan hệ dưới dạng quan hệ “một nhiều”. <br />
Ví dụ ở hình 4 chỉ ra mối quan hệ kết tập giữa hai lớp Nha và Tuong. Một ngôi nhà <br />
được cấu tạo nên bởi nhiều bức tường. Mối quan hệ kết tập này đã được chuyển <br />
sang mối quan “một nhiều” tương ứng ở mô hình thực thể mối quan hệ.<br />
<br />
<br />
29<br />
Nha<br />
Nha ID_Dagi<br />
ac<br />
(1,<br />
1 n)<br />
duoctao duoctao<br />
boi boi<br />
<br />
* (1,1)<br />
<br />
Tuong Tuong<br />
ID_Die<br />
m<br />
<br />
Hình 4: Chuyển quan hệ kết tập sang mô hình thực thể mối quan hệ<br />
<br />
<br />
<br />
2.2.2 . Chuyển đổi quan hệ tổng quát hóa (generalization)<br />
Trong UML tổng quát hóa là quan hệ kế thừa giữa hai lớp. Nó cho phép một lớp <br />
con kế thừa các thuộc tính và thao tác của lớp cha. Mô hình thực thể mối quan hệ <br />
nguyên th không trực tiếp hỗ trợ các khái niệm kế thừa. Quan hệ tổng quát hóa được <br />
chuyển thành quan hệ isa giữa 2 kiểu thực thể biểu diễn lớp con và lớp cha.<br />
Ví dụ ở hình 5 chỉ ra mối quan hệ tổng quát hóa giữa các lớp Hinh, Dagiac, Elip, <br />
Hinhtron. Trong đó lớp Hinh là lớp cha, 3 lớp còn lại là các lớp con. Các quan hệ kế <br />
thừa này được chuyển thành các quan hệ isa tương ứng.<br />
<br />
Hinh<br />
<br />
<br />
<br />
Dagiac Elip Hinhtron<br />
<br />
<br />
<br />
<br />
Hinh ID_hi<br />
nhh<br />
<br />
i i<br />
i - -<br />
- s s<br />
s<br />
Dagiac a a<br />
Elip a Hinhtron<br />
30<br />
<br />
Hình 5: Chuyển quan hệ tổng quát hóa sang mô hình thực thểmối quan hệ<br />
<br />
<br />
<br />
<br />
<br />
31<br />
2.2.3. Chuyển đổi quan hệ hiện thực (instantiate)<br />
Là quan hệ chỉ ra mối liên hệ giữa lớp tham số (parameterized class) và lớp <br />
hiện thực (instantiated class) của nó. Lớp tham số có các tham số hình thức và các <br />
tham số này dùng để tạo ra các lớp thực sự. Lớp hiện thực được tạo ra từ lớp tham <br />
số bằng cách thay thế tham số hình thức đó bởi các giá trị. Quan hệ hiện thực cũng là <br />
một dạng của quan hệ kế thừa. Do đó, quan hệ hiện thực cũng được chuyển đổi <br />
thành quan hệ isa trong mô hình thực thể mối quan hệ. <br />
Hình 6 chỉ ra mối quan hệ hiện thực giữa các lớp Mang, Diemthi, Diachi. Lớp <br />
tham số là lớp mảng có tham số hình thức là kieupt. Hai lớp Diemthi và Diachi là hai <br />
lớp hiện thực của lớp mảng với các giá trị tương ứng với tham số là diem và dchi. <br />
Các quan hệ hiện thực được chuyển đổi sang mô hình thực thể mối quan hệ dưới <br />
dạng các quan hệ isa.<br />
kieup<br />
Mang<br />
t<br />
<br />
<br />
<br />
<br />
Diemthi<br />
<br />
<br />
<br />
<br />
Mang kie<br />
kieupt=di upt<br />
kieupt=dc<br />
em hi<br />
i i<br />
- -<br />
s s<br />
a a<br />
Diemthi Diachi<br />
<br />
<br />
<br />
Hình 6: Chuyển quan hệ hiện thực sang mô hình thực thể mối quan hệ<br />
<br />
32<br />
3. Các bước chuyển đổi<br />
Quá trình chuyển đổi từ biểu đồ lớp sang mô hình thực thể mối quan hệ được <br />
tiến hành thông qua các bước sau:<br />
1. Với mỗi lớp trong biểu đồ lớp, ta tạo ra một kiểu thực thể tương ứng. Tên <br />
của kiểu thực thể được lấy trực tiếp từ tên lớp. Các thuộc tính của lớp gốc được <br />
chuyển thành các thuộc tính của kiểu (tập) thực thể. Bổ sung thuộc tính định danh <br />
vào kiểu thực thể đóng vai trò là thuộc tính khóa. <br />
2. Với mỗi quan hệ kế thừa, tạo quan hệ isa giữa 2 kiểu thực thể tương ứng <br />
với lớp cha và lớp con.<br />
3. Với mỗi quan hệ hiện thực, tạo quan hệ isa giữa 2 kiểu thực thể tương ứng <br />
với lớp tham số và lớp hiện thực.<br />
4. Với mỗi quan hệ kết tập (aggregation), tạo quan hệ “một nhiều” giữa 2 <br />
kiểu thực thể tương ứng với 2 lớp tham gia liên kết.<br />
5. Với mỗi quan hệ kết hợp, tạo quan hệ tương ứng giữa các kiểu thực thể <br />
biểu diễn các lớp tham gia liên kết. Nếu liên kết sở hữu lớp kết hợp ta bổ sung các <br />
thuộc tính cho quan hệ. <br />
<br />
4. KẾT LUẬN<br />
<br />
Ngày nay, phần lớn các hệ thống thông tin đều được phân tích, thiết kế theo <br />
phương pháp hướng đối tượng và lập trình trên các ngôn ngữ lập trình hướng đối <br />
tượng như Java, C++... Tuy nhiên dữ liệu lại thường được lưu trữ trong các CSDL <br />
quan hệ. Vì thế, việc chuyển đổi từ mô hình UML(mô hình phân tích thiết kế hướng <br />
đối tượng thông dụng nhất) sang mô hình thực thể mối quan hệ là một vấn đề rất <br />
cần thiết trong quá trình phát triển phần mềm. Từ mô hình thực thể mối quan hệ <br />
có thể dễ dàng chuyển sang mô hình dữ liệu quan hệ. Do sự đơn giản của mô hình <br />
thực thể mối quan hệ, một số thành phần và ký hiệu của UML như các thao tác, <br />
tầm nhìn (visibility) của các lớp và một vài chú giải gắn liền với vai trò của quan hệ <br />
được bỏ qua trong quá trình chuyển đổi. Tuy nhiên, các phần cốt lõi của biểu đồ lớp <br />
UML đều có thể được biểu diễn thông qua mô hình thực thể mối quan hệ. <br />
<br />
TÀI LIỆU THAM KHẢO<br />
<br />
<br />
33<br />
1. Grady Booch, James Rumbaugh, Ivar Jacobson. Unified Modeling Language, <br />
Sybex, (1997)<br />
2. PierreAlain Muller. Instant UML, Wrox Press Ltd (1997)<br />
3. Bernd Oestereich. Developing Software with UML, Addison Wesley (2000).<br />
4. Michael Blaha, William Premerlani. ObjectedOriented Modeling and Design for <br />
Database Applications, Prentice Hall (1998).<br />
5. Scott W.Ambler. Towards a UML Profile for a Relational Persistence Model, <br />
Cambridge University Press (2000).<br />
<br />
<br />
TRANSLATING UML MODEL INTO ENTITY RELATIONSHIP MODEL<br />
<br />
Vo Đang Huan, Tran Viet Khoa<br />
College of Sciences, Hue University<br />
<br />
<br />
SUMMARY<br />
Nowadays, the Unified Modeling Language (UML) becomes more and more popular <br />
in objectoriented analysis and design. On the other hand, the EntityRelationship model is the <br />
most important and widely used method for modeling data and designing databases. The <br />
purpose of this paper is to define a translation of a UML class diagram to an Entity <br />
Relationship model.<br />
<br />
<br />
<br />
<br />
34<br />
ADSENSE
CÓ THỂ BẠN MUỐN DOWNLOAD
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
AANETWORK
TRỢ GIÚP
HỖ TRỢ KHÁCH HÀNG
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn