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.
Trang 1T 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 Huân, 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 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 Trong nh ng năm g n đây ngôn ng mô hình hóa th ng nh t (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àụ hoà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Ể Ổ
Trang 2Bi 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 ị ộ ủ ể ự ể
Đ 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 quát 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 ự ể ố ệ
Nhanvie
n
ten
ngaysin
h
tuoi()
thamnie
n()
Ngaysinh
Hình 1: Chuy n đ i m t l p thành m t ki u th c th ể ổ ộ ớ ộ ể ự ể
ID_nhanvi en
Trang 3Khoa
*
1
vien
hoc tai
(1,1)
(1,n)
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 ể ệ ế ợ ộ ề ự ể ố ệ
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 quátợ ổ : 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ề ề ự ể ố ệ ỗ ợ ố ệ nguyên (nary) nên m i quan h k t h p đa nguyên trong bi u đ l p đố ệ ế ợ ể ồ ớ ược chuy nể thành quan h đa nguyên trong mô hình th c th m i quan h ệ ự ể ố ệ
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ớ ế ợ (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
Trang 4chuy 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.ự ể ố ệ ệ ộ
Trang 5Hì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 ể ệ ế ợ ớ ế ợ ự ể ố ệ
Congty
thue
Nguoi
congt
ac
*
*
Congviec luong
Congty ID_Cong
ty
Cong viec
(1, n) thu e
luo ng
Nguoi ID_Nguo
i
(1,n) congt ac
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 “toà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 toà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 toà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 toà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 ứ ở ự ể ố ệ
Trang 6Hình 4: Chuy n quan h k t t p sang mô hình th c th m i quan h ể ệ ế ậ ự ể ố ệ
Nha
Tuong
1
Nha
ID_Dagi ac
duoctao boi
(1, n)
Tuong
ID_Die m
(1,1)
duoctao
boi
Hinh
nhh
i -s a
i -s a
i -s a
2.2.2 . Chuy n đ i quan h t ng quát hóa (generalization)ể ổ ệ ổ
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ổ ệ ế ừ ữ ớ ộ ớ
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ế ừ ộ ủ ớ ự ể ố ệ
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
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 quát 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.ứ
30
Trang 7Trang 8
Diachi<dchi
>
Mang kieup
t
Diemthi<die m>
Mang
i -s a
kie upt kieupt=di
em
Diachi
i -s a
Hình 6: Chuy n quan h hi n th c sang mô hình th c th m i quan h ể ệ ệ ự ự ể ố ệ
kieupt=dc hi
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.ạ ệ
Trang 9
3. Các bước chuy n đ iể ổ
Quá 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 quá 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 quá 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Ệ Ả
Trang 101 Grady Booch, James Rumbaugh, Ivar Jacobson. Unified Modeling Language, Sybex, (1997)
2 PierreAlain Muller. Instant UML, Wrox Press Ltd (1997)
3 Bernd Oestereich. Developing Software with UML, Addison Wesley (2000).
4. Michael Blaha, William Premerlani. ObjectedOriented Modeling and Design for Database Applications, Prentice Hall (1998).
5. 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.