intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Chuyển đổi mô hình UML sang mô hình thực thể - mối quan hệ

Chia sẻ: Kinh Kha | Ngày: | Loại File: DOC | Số trang:10

48
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.

Chủ đề:
Lưu

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 Language­UML) đượ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 (n­ary) 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 /> “has­a”, 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ệ is­a 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ệ is­a 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ệ is­a 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ệ is­a.<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ệ is­a 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ệ is­a 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. Pierre­Alain Muller. Instant UML, Wrox Press Ltd (1997)<br /> 3. Bernd Oestereich. Developing Software with UML, Addison Wesley (2000).<br /> 4. Michael Blaha, William Premerlani. Objected­Oriented 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 object­oriented analysis and design. On the other hand, the Entity­Relationship 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

 

Đồng bộ tài khoản
2=>2