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.
TẠP CHÍ KHOA HỌC, Đại học Huế, Số 17, 2003 CHUYỂN ĐỔI MƠ HÌNH UML SANG MƠ HÌNH THỰC THỂ MỐI QUAN HỆ Võ Đăng Hn, Trần Việt Khoa Trường Đại học Khoa học, Đại học Huế 1. MỞ ĐẦU Phân tích và thiết kế hệ thống đóng vai trò rất quan trọng trong q 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 tốn cần giải Trong năm gần ngôn ngữ mơ hình hóa thống (Unified Modeling LanguageUML) được xem là một mơ hình chuẩn trong việc phân tích, 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 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 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à hồn thiện, trong khi đó cơng nghệ CSDL quan hệ đã được kiểm nghiệm, có nhiều 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 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ể mối quan hệ (entity relationship) được sử dụng rộng rãi trong lĩnh vực thiết kế cơ 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 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ễ 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 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 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 biểu đồ lớp (class diagram) thành phần cốt lõi của mơ hình UML sang mơ hình thực thể mối quan hệ 2. PHƯƠNG PHÁP CHUYỂN ĐỔI 25 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ả 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 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ơ 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ệ. 2.1. Chuyển đổi lớp 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 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 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, 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 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 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 thể hiện của một lớp được phân biệt bởi định danh đối tượng (object identifier). 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 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 định danh (Identity) đóng vai trò là thuộc tính khóa của kiểu thực thể Ngaysinh Nhanvie n ten ngaysin h tuoi() thamnie n() Nhanvien Ten ID_nhanvi en Hình 1: Chuyển đổi một lớp thành một kiểu thực thể Đố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 hệ kết hợp (association) và quan hệ kết tập (aggregation) việc chuyển đổi chúng sẽ được xem xét ở phần tiếp theo 2.2. Chuyển đổi các quan hệ 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 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 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 tập (aggreation), tổng qt hóa (genaralization) và hiện thực (instantiation). Sau đây ta 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ơ hình thực thể mối quan hệ 26 2.2.1. Chuyển đổi quan hệ kết hợp(association) a) Chuyển đổi các quan hệ kết hợp trong trường hợp tổng qt: Quan hệ 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 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 đế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 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 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 một và hai chiều đều được chuyển đổi thành các quan hệ trong mơ hình thực thể mối quan hệ. Cơ số (multiplicity) của quan hệ kết hợp có thể là “một một”, “một 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ệ tương ứng mơ hình thực thể mối quan hệ có thể là “một một”, “một nhiều” 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 ngun (nary) nên mối quan hệ kết hợp đa ngun trong biểu đồ lớp được chuyển thành quan hệ đa ngun trong mơ hình thực thể mối quan hệ Sinhvien Sinhvien ID_sinh vien (1,1) * hoc tai Khoa (1,n) Khoa ID_khoa 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ệ b) Chuyển đổi quan hệ kết hợp có lớp kết hợp: Lớp kết hợp (association class) là lớp được gắn vào một quan hệ nhằm bổ sung thơng tin cho quan 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 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 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 27 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) 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 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 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 Lớp này có thuộc tính luong. Do đó, khi chuyển đổi thành quan hệ Congviec trong mơ hình thực thể mối quan hệ quan hệ này cũng có thuộc tính là luong 28 ID_Cong ty (1, n) thu e Congty thue Congty * Cong viec Congviec luong congt * ac luo ng (1,n) Nguoi ID_Nguo i congt ac Nguoi 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ệ c) Chuyển đổi quan hệ kết tập (Aggregation) 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ệ “tồn 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 (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ệ “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 thành phần. Có hai loại quan hệ kết tập. Nếu tồn thể và bộ phận được hình thành 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 tồn thể 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 thành. Kết tập chỉ rõ sự tồn tại của các bộ phận là phụ thuộc vào tồn thể. Nó được chuyển đổi sang mơ hình thực thể mối quan hệ dưới dạng quan hệ “một nhiều” 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à đượ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 sang mối quan “một nhiều” tương ứng ở mơ hình thực thể mối quan hệ 29 Nha Nha ID_Dagi ac (1, n) duoctao boi duoctao boi * (1,1) Tuong Tuong ID_Die m Hình 4: Chuyển quan hệ kết tập sang mơ hình thực thể mối quan hệ 2.2.2 . Chuyển đổi quan hệ tổng qt hóa (generalization) Trong UML tổng qt hóa là quan hệ kế thừa giữa hai lớp. Nó cho phép một lớp 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ệ ngun th khơng trực tiếp hỗ trợ các khái niệm kế thừa. Quan hệ tổng qt hóa được 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 Ví dụ ở hình 5 chỉ ra mối quan hệ tổng qt hóa giữa các lớp Hinh, Dagiac, Elip, 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ế thừa này được chuyển thành các quan hệ isa tương ứng Hinh Dagiac i s Dagiac a Elip Hinhtron Hinh ID_hi nhh i i - - s a Elip s a Hinhtron 30 Hình 5: Chuyển quan hệ tổng qt hóa sang mơ hình thực thểmối quan hệ 31 2.2.3. Chuyển đổi quan hệ hiện thực (instantiate) Là quan hệ chỉ ra mối liên hệ giữa lớp tham số (parameterized class) và lớp 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 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 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à một dạng của quan hệ kế thừa. Do đó, quan hệ hiện thực cũng được chuyển đổi thành quan hệ isa trong mơ hình thực thể mối quan hệ. Hình 6 chỉ ra mối quan hệ hiện thực giữa các lớp Mang, Diemthi, Diachi. Lớp tham số là lớp mảng có tham số hình thức là kieupt. Hai lớp Diemthi và Diachi là hai 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 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 dạng các quan hệ isa Mang Diemthi kieup t Diachi Mang kieupt=di em Diemthi kieupt=dc hi i s a i s a kie upt Diachi Hình 6: Chuyển quan hệ hiện thực sang mơ hình thực thể mối quan hệ 32 3. Các bước chuyển đổi Q trình chuyển đổi từ biểu đồ lớp sang mơ hình thực thể mối quan hệ được tiến hành thơng qua các bước sau: 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 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 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 vào kiểu thực thể đóng vai trò là thuộc tính khóa. 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 với lớp cha và lớp con 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 với lớp tham số và lớp hiện thực 4. Với mỗi quan hệ kết tập (aggregation), tạo quan hệ “một nhiều” giữa 2 kiểu thực thể tương ứng với 2 lớp tham gia liên kết 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ể 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 thuộc tính cho quan hệ. 4. KẾT LUẬN 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 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 tượng như Java, C++ Tuy nhiên dữ liệu lại thường được lưu trữ trong các CSDL 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 đố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 cần thiết trong q trình phát triển phần mềm. Từ mơ hình thực thể mối quan hệ 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 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, 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ệ được bỏ qua trong q trình chuyển đổi. Tuy nhiên, các phần cốt lõi của biểu đồ lớp UML đều có thể được biểu diễn thơng qua mơ hình thực thể mối quan hệ. TÀI LIỆU THAM KHẢO 33 Grady Booch, James Rumbaugh, Ivar Jacobson Unified Modeling Language, Sybex, (1997) PierreAlain Muller. Instant UML, Wrox Press Ltd (1997) Bernd Oestereich. Developing Software with UML, Addison Wesley (2000) Michael Blaha, William Premerlani. ObjectedOriented Modeling and Design for Database Applications, Prentice Hall (1998) Scott W.Ambler Towards a UML Profile for a Relational Persistence Model, Cambridge University Press (2000) TRANSLATING UML MODEL INTO ENTITY RELATIONSHIP MODEL Vo Đang Huan, Tran Viet Khoa College of Sciences, Hue University SUMMARY Nowadays, the Unified Modeling Language (UML) becomes more and more popular in objectoriented analysis and design. On the other hand, the EntityRelationship model is the most important and widely used method for modeling data and designing databases The purpose of this paper is to define a translation of a UML class diagram to an Entity Relationship model 34 ... 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ơ hình thực thể mối quan hệ 26 2.2.1. Chuyển đổi quan hệ kết hợp(association) a) Chuyển đổi các quan hệ kết hợp trong trường hợp tổng qt: Quan hệ kết hợp là mối quan hệ. .. của quan hệ kết hợp mà quan hệ tương ứng mơ hình thực thể mối quan hệ có thể là “một một”, “một nhiều” 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 ... 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à một dạng của quan hệ kế thừa. Do đó, quan hệ hiện thực cũng được chuyển đổi thành quan hệ isa trong mơ hình thực thể mối quan hệ. Hình 6 chỉ ra mối quan hệ hiện thực giữa các lớp Mang, Diemthi, Diachi. Lớp