Chương 1. Tổng quan về UML
1.1. Giới thiệu
Trong thập kỷ vừa qua có nhiều phương pháp và ngôn ngữ phân tích và thiết
kế hướng đối tượng đã được pháp triển. Mặc dù các phương pháp này đều có một
mục đích chung tuy nhiên chúng đều có thuật ngữ và ký hiệu khác nhau nên gây
nhiều khó khăn khi so sánh các mô hình và dùng lại các thiết kế. Các phương
pháp này không có phương pháp nào nổi bật hơn những phương pháp khác.
Trong tình hình đó UML ra đời, và đưa ra một ngôn ngữ chuẩn cho mô hình hoá
hướng đối tượng.
UML - Unified Modeling Language - là ngôn ngữ mô hình hợp nhất. Nó là một
phương tiện giúp cho các tổ chức có thể nhận thức một cách tốt nhất lợi thế cạnh
tranh thông qua việc nắm bắt, truyền đạt, trao đổi và nâng cao tri thức trong lĩnh
vực công nghệ phần mềm. Chính xác hơn UML là một ngôn ngữ mô hình hóa
dùng để đặc tả, trực quan hóa, xây dựng và làm sưu liệu cho các hệ thống phần
mềm
Unified (hợp nhất) UML được đưa ra lần đầu tiên bởi hãng Rational và ba
chuyên gia về phương pháp luận hàng đầu trong lĩnh vực hệ thống thông tin/ kỹ
thuật công nghệ Grady Booch, James. Rumbaugh, Ivar Jacobson. Nó là sự hợp
nhất giữa những phương pháp cũ (Booch, OMT, OOSE ), kết hợp với những kinh
nghiệm, những kiến thức thực tế.
Modeling (mô hình hóa) giúp chúng ta hiểu được thế giới thực, mô hình hóa
thế giới thực để có thể hiểu được những đặc trưng, tính toán các thông số và dự
đoán kết quả sẽ đạt được.
Language (ngôn ngữ) chức năng của UML như là một phương tiện để bày tỏ
và trao đổi tri thức. Nó có bốn đặc điểm chủ yếu có thể phân biệt với các ngôn
ngữ mô hình hóa khác
ã General-purpose - đa mục đích
ã Broadly applicable - có thể ứng dụng rộng rãi
ã Tool-supported - được hỗ trợ bởi các công cụ
ã Industry standardized - chuẩn công nghiệp
UML là một ngôn ngữ mô hình hóa chuẩn nhưng không phải là một qui trình
phát triển phần mềm chuẩn. Mặc dù UML phải được áp dụng trong phạm vi một
qui trình cụ thể, các qui trình phát triển này thường khác nhau ở các tổ chức phát
triển phần mềm, ở các vấn đề thuộc các lĩnh vực khác nhau. Do đó, các nhà phát
triển UML đã cố gắng tập trung vào định nghĩa mức siêu mô hình (metamodel) để
thống nhất các khái niệm về ngữ nghĩa và ký hiệu, có thể hỗ trợ cho nhiều ngôn
ngữ lập trình và qui trình phát triển phần mềm khác nhau.
6 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2132 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Uml – ooad, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Software Engineering Departmnet – Hanoi University of Technology
Faculty of Information Technology
UML – OOAD
ph©n tÝch thiÕt kÕ phÇn mÒm
h−íng ®èi t−îng vµ h−íng thµnh phÇn
1. §ç V¨n Uy
2. NguyÔn Ngäc B×nh
3. Th¹c B×nh C−êng
4. L−¬ng M¹nh B¸
5. Huúnh QuyÕt Th¾ng
6. Bïi ThÞ Hoµ
7. Lª TÊn Hïng
8. Lª §øc Trung
C¸c nghiªn cøu ®−îc hç trî kinh phÝ tõ ®Ò tµi nghiªn cøu khoa häc c¬
b¶n KHCB 230701
LUu HANH NOI BO
Hµ néi 2001
Ch−¬ng 1. Tæng quan vÒ UML
1.1. Giíi thiÖu
Trong thËp kû võa qua cã nhiÒu ph−¬ng ph¸p vµ ng«n ng÷ ph©n tÝch vµ thiÕt
kÕ h−íng ®èi t−îng ®· ®−îc ph¸p triÓn. MÆc dï c¸c ph−¬ng ph¸p nµy ®Òu cã mét
môc ®Ých chung tuy nhiªn chóng ®Òu cã thuËt ng÷ vµ ký hiÖu kh¸c nhau nªn g©y
nhiÒu khã kh¨n khi so s¸nh c¸c m« h×nh vµ dïng l¹i c¸c thiÕt kÕ. C¸c ph−¬ng
ph¸p nµy kh«ng cã ph−¬ng ph¸p nµo næi bËt h¬n nh÷ng ph−¬ng ph¸p kh¸c.
Trong t×nh h×nh ®ã UML ra ®êi, vµ ®−a ra mét ng«n ng÷ chuÈn cho m« h×nh ho¸
h−íng ®èi t−îng.
UML - Unified Modeling Language - lµ ng«n ng÷ m« h×nh hîp nhÊt. Nã lµ mét
ph−¬ng tiÖn gióp cho c¸c tæ chøc cã thÓ nhËn thøc mét c¸ch tèt nhÊt lîi thÕ c¹nh
tranh th«ng qua viÖc n¾m b¾t, truyÒn ®¹t, trao ®æi vµ n©ng cao tri thøc trong lÜnh
vùc c«ng nghÖ phÇn mÒm. ChÝnh x¸c h¬n UML lµ mét ng«n ng÷ m« h×nh hãa
dïng ®Ó ®Æc t¶, trùc quan hãa, x©y dùng vµ lµm s−u liÖu cho c¸c hÖ thèng phÇn
mÒm
Unified (hîp nhÊt) UML ®−îc ®−a ra lÇn ®Çu tiªn bëi h·ng Rational vµ ba
chuyªn gia vÒ ph−¬ng ph¸p luËn hµng ®Çu trong lÜnh vùc hÖ thèng th«ng tin/ kü
thuËt c«ng nghÖ Grady Booch, James. Rumbaugh, Ivar Jacobson. Nã lµ sù hîp
nhÊt gi÷a nh÷ng ph−¬ng ph¸p cò (Booch, OMT, OOSE ), kÕt hîp víi nh÷ng kinh
nghiÖm, nh÷ng kiÕn thøc thùc tÕ.
Modeling (m« h×nh hãa) gióp chóng ta hiÓu ®−îc thÕ giíi thùc, m« h×nh hãa
thÕ giíi thùc ®Ó cã thÓ hiÓu ®−îc nh÷ng ®Æc tr−ng, tÝnh to¸n c¸c th«ng sè vµ dù
®o¸n kÕt qu¶ sÏ ®¹t ®−îc.
Language (ng«n ng÷) chøc n¨ng cña UML nh− lµ mét ph−¬ng tiÖn ®Ó bµy tá
vµ trao ®æi tri thøc. Nã cã bèn ®Æc ®iÓm chñ yÕu cã thÓ ph©n biÖt víi c¸c ng«n
ng÷ m« h×nh hãa kh¸c
• General-purpose - ®a môc ®Ých
• Broadly applicable - cã thÓ øng dông réng r·i
• Tool-supported - ®−îc hç trî bëi c¸c c«ng cô
• Industry standardized - chuÈn c«ng nghiÖp
UML lµ mét ng«n ng÷ m« h×nh hãa chuÈn nh−ng kh«ng ph¶i lµ mét qui tr×nh
ph¸t triÓn phÇn mÒm chuÈn. MÆc dï UML ph¶i ®−îc ¸p dông trong ph¹m vi mét
qui tr×nh cô thÓ, c¸c qui tr×nh ph¸t triÓn nµy th−êng kh¸c nhau ë c¸c tæ chøc ph¸t
triÓn phÇn mÒm, ë c¸c vÊn ®Ò thuéc c¸c lÜnh vùc kh¸c nhau. Do ®ã, c¸c nhµ ph¸t
triÓn UML ®· cè g¾ng tËp trung vµo ®Þnh nghÜa møc siªu m« h×nh (metamodel) ®Ó
thèng nhÊt c¸c kh¸i niÖm vÒ ng÷ nghÜa vµ ký hiÖu, cã thÓ hç trî cho nhiÒu ng«n
ng÷ lËp tr×nh vµ qui tr×nh ph¸t triÓn phÇn mÒm kh¸c nhau.
UML lµ tæng hîp c¸c ph−¬ng ph¸p cña Booch, OMT vµ OOSE t¹o thµnh mét
ng«n ng÷ m« h×nh hãa chung vµ cã thÓ sö dông réng r·i cho nh÷ng ng−êi tr−íc
®©y ®· quen víi ba ph−¬ng ph¸p trªn hay c¸c ph−¬ng ph¸p kh¸c. Ngoµi ra, UML
2
më réng ph¹m vi m« h×nh hãa cña c¸c ph−¬ng ph¸p hiÖn cã vµ cã thÓ m« h×nh
hãa ®Çy ®ñ c¸c hÖ thèng ®ång thêi hay ph©n t¸n. UML lµ ng«n ng÷ cã thÓ ®−îc
sö dông cho nhiÒu môc ®Ých kh¸c nhau. UML cung cÊp c¬ chÕ tæ chøc vµ ph©n
lo¹i tri thøc theo ng÷ c¶nh cña vÊn ®Ò cÇn gi¶i quyÕt. C¸c tri thøc nµy ®−îc n¾m
b¾t ®Çy ®ñ bëi m« h×nh bao gåm nhiÒu thµnh phÇn vµ ®−îc thÓ hiÖn qua tËp c¸c
biÓu ®å kh¸c nhau cã liªn hÖ chÆt chÏ víi nhau. H¬n n÷a, mçi biÓu ®å n¾m b¾t
vÊn ®Ò ë nh÷ng khÝa c¹nh kh¸c nhau qua c¸c kh¸i niÖm, cÊu tróc, c¸c thµnh phÇn
m« h×nh thÓ hiÖn nh÷ng ng÷ nghÜa vµ tri thøc kh¸c nhau. C¸c biÓu ®å nµy m« t¶
néi dung giao tiÕp gi÷a c¸c thµnh viªn trong qui tr×nh ph¸t triÓn phÇn mÒm vµ
®−îc tÝch hîp víi nhau ®Ó t¹o nªn tri thøc m« t¶ hÖ thèng, nh÷ng vÊn ®Ò còng
nh− c¸ch thøc thùc hiÖn ®Ó gi¶i quyÕt chóng.
C¸c lîi Ých cña UML
• Cã thÓ m« h×nh hãa nhiÒu lo¹i hÖ thèng, cã thÓ dïng trong nh÷ng giai
®o¹n kh¸c nhau cña qui tr×nh ph¸t triÓn phÇn mÒm. UML lµ sù thèng nhÊt
c¸c kh¸i niÖm m« h×nh hãa cña nh÷ng nhµ nghiªn cøu vµ ph¸t triÓn c«ng
nghÖ h−íng ®èi t−îng. UML cung cÊp mét sè tÝnh n¨ng sau
) §Çy ®ñ ng÷ nghÜa vµ ký hiÖu ®Ó gi¶i quyÕt trùc tiÕp c¸c vÊn ®Ò hiÖn
t¹i trong m« h×nh hãa.
) §Çy ®ñ ng÷ nghÜa ®Ó gi¶i quyÕt mét sè khã kh¨n t−¬ng lai trong
m« h×nh hãa ®Æc biÖt cã liªn quan ®Õn c«ng nghÖ thµnh phÇn, xö lý
ph©n t¸n, framework vµ executability.
) C¬ chÕ më réng siªu m« h×nh cho m« h×nh hãa c¸c øng dông ®Æc
biÖt. C¬ chÕ nµy còng khiÕn cho c¸c h−íng tiÕp cËn m« h×nh hãa
t−¬ng lai cã thÓ ph¸t triÓn dùa trªn nÒn t¶ng UML.
) §Çy ®ñ ng÷ nghÜa ®Ó dÔ dµng chuyÓn ®æi m« h×nh gi÷a c¸c c«ng cô
hç trî ph©n tÝch thiÕt kÕ kh¸c nhau còng nh− ®Þnh râ giao tiÕp víi
c¸c repository ®Ó l−u tr÷ vµ chia xÎ c¸c thµnh phÇn m« h×nh.
• §èi víi ng−êi sö dông UML cung cÊp mét ng«n ng÷ m« h×nh hãa trùc
quan mang tÝnh diÔn ®¹t cao ®Ó ph¸t triÓn vµ trao ®æi gi÷a c¸c m« h×nh.
Mét ng«n ng÷ m« h×nh hãa nãi chung ®−îc cÊu tróc dùa trªn c¸c thµnh
phÇn c¬ b¶n nhÊt ë møc siªu-siªu m« h×nh. NÕu cÊu tróc nµy thay ®æi
theo mét tËp c¸c kh¸i niÖm m« h×nh hãa kh¸c nhau theo c¸c ph−¬ng ph¸p
kh¸c nhau th× viÖc chuyÓn ®æi gi÷a c¸c m« h×nh sÏ kh«ng tr¸nh khái mÊt
th«ng tin. §Ó kh¾c phôc vÊn ®Ò nµy, UML ®· tËp hîp c¸c kh¸i niÖm m«
h×nh hãa cèt lâi (core modeling concepts) ®−îc sö dông trong nhiÒu
ph−¬ng ph¸p vµ c«ng cô m« h×nh hãa kh¸c nhau. C¸c kh¸i niÖm nµy cã
thÓ hç trî cho ph¹m vi lín c¸c øng dông. Ngoµi ra, c¸c kh¸i niÖm m«
h×nh hãa ë møc thÊp h¬n vµ cô thÓ h¬n cho viÖc giao tiÕp còng ®−îc ®Þnh
nghÜa cho ng−êi sö dông ®Ó m« h×nh hãa mét hÖ thèng cô thÓ.
• UML cung cÊp c¬ chÕ më réng vµ ®Æc biÖt hãa ®Ó më réng c¸c kh¸i niÖm
c¬ së.
• Dùa trªn nh÷ng kh¸i niÖm ®· ®−îc ®Þnh nghÜa nµy, OMG mong ®îi ë
UML kh¶ n¨ng biÕn ®æi ®Ó ®¸p øng c¸c yªu cÇu míi cña nh÷ng ph¹m vi
3
øng dông ®Æc biÖt. C¸c nhµ ph¸t triÓn UML kh«ng muèn r»ng mçi khi cã
thay ®æi. th× c¸c kh¸i niÖm cèt lâi ph¶i ®−îc ®Þnh nghÜa l¹i. V× vËy, hä tin
r»ng viÖc ®−a ra c¬ chÕ më réng cho UML sÏ hç trî nh÷ng xu h−íng ph¸t
triÓn míi. Ng−êi sö dông cã thÓ khai th¸c c¸c tÝnh n¨ng sau cña UML
) X©y dùng m« h×nh b»ng c¸ch sö dông nh÷ng thµnh phÇn c¬ b¶n ®·
®−îc ®Þnh nghÜa kh«ng sö dông c¬ chÕ më réng cho hÇu hÕt c¸c
øng dông th«ng th−êng.
) Thªm c¸c kh¸i niÖm vµ ký hiÖu míi cho nh÷ng v−íng m¾c kh«ng
gi¶i quyÕt ®−îc víi c¸c kh¸i niÖm c¬ b¶n.
) §Æc biÖt hãa c¸c kh¸i niÖm, ký hiÖu vµ rµng buéc cho mét ph¹m vi
øng dông (application domain) cô thÓ.
• UML ®Èy m¹nh t¸i sö dông trong nÒn c«ng nghÖ phÇn mÒm. T¸i sö dông
lµ mét trong nh÷ng vÊn ®Ò ®−îc quan t©m hµng ®Çu trong c«ng nghÖ phÇn
mÒm. Nguyªn t¾c cña t¸i sö dông lµ dùa trªn c¸c thµnh phÇn hiÖn cã ®·
®−îc kiÓm chøng vÒ chÊt l−îng vµ chØ x©y dùng c¸c thµnh phÇn míi khi
thùc sù cÇn thiÕt. §iÒu nµy kh«ng nh÷ng gióp ®−¬ng ®Çu víi møc ®é phøc
t¹p ngµy cµng cao cña øng dông mµ cßn gi¶m chi phÝ, gi¶m thêi gian ph¸t
triÓn vµ t¨ng kh¶ n¨ng c¹nh tranh cña nhµ ph¸t triÓn phÇn mÒm. UML cho
phÐp t¸i sö dông hiÖu qu¶ c¸c thµnh phÇn cña mét hÖ thèng v× ®−îc x©y
dùng trªn nÒn t¶ng h−íng ®èi t−îng. Ngoµi ra, UML cßn hç trî c¸c kh¸i
niÖm ph¸t triÓn phÇn mÒm møc cao nh− collabarations, frameworks,
patterns vµ components. Ng÷ nghÜa cña chóng ®−îc ®Þnh nghÜa rÊt râ
rµng vµ ®iÒu nµy gióp ®¹t ®−îc nh÷ng gi¸ trÞ thùc sù ®Çy ®ñ cña h−íng
®èi t−îng vµ t¸i sö dông.
1.2. KiÕn tróc cña UML
Siªu m« h×nh UML ®Þnh nghÜa c¸c ng÷ nghÜa ®Çy ®ñ ®Ó biÓu diÔn c¸c m«
h×nh sö dông UML. Nã sö dông tËp con kh¸i niÖm cña UML vµ c¸c ng÷ nghÜa ®Ó
x¸c ®Þnh b¶n th©n nã. siªu m« h×nh UML ®−îc ®Þnh nghÜa nh− lµ mét trong c¸c
tÇng cña kiÕn tróc siªu m« h×nh bèn tÇng, ®−îc minh ho¹ trong h×nh 4.1.
TÇng M« t¶ VÝ dô
Siªu-siªu m« h×nh
(meta-metamode)
Lµ c¬ së ®Ó m« h×nh
ho¸ kiÕn tróc. §Þnh nghÜa
ng«n ng÷ x¸c ®Þnh c¸c siªu
m« h×nh
MetaClass,
MetaAttribute
Siªu m« h×nh
(metamode)
Mét thÓ hiÖn cña siªu-
siªu m« h×nh. §Þnh nghÜa
ng«n ng÷ ®Ó x¸c ®Þnh m«
h×nh.
Class, Attribute
M« h×nh (model) Mét thÓ hiÖn cña siªu
m« h×nh. §Þnh nghÜa ng«n
ng÷ ®Ó m« t¶ lo¹i th«ng tin.
4
§èi t−îng ng−êi sö
dông (User object)
Mét thÓ hiÖn cña m«
h×nh. §Þnh nghÜa mét lo¹i
th«ng tin cô thÓ.
H×nh 4.1. KiÕn tróc UML
• TÇng siªu-siªu m« h×nh gåm cã c¸c thµnh phÇn c¬ b¶n nhÊt trªn ®ã UML
dùa vµo kh¸i niÖm “Thing” ®Ó biÓu diÔn bÊt cø nh÷ng g× cã thÓ ®Þnh
nghÜa. Møc trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ kh¸i niÖm vµ
®Þnh nghÜa mét ng«n ng÷ ®Ó x¸c ®Þnh c¸c siªu m« h×nh.
• TÇng siªu m« h×nh gåm nh÷ng thµnh phÇn cÊu t¹o nªn UML, bao gåm
c¸c kh¸i niÖm tõ c¸c biÓu ®å h−íng ®èi t−îng vµ h−íng thµnh phÇn. Mçi
kh¸i niÖm trong tÇng nµy ®Òu lµ mét thÓ hiÖn cña kh¸i niÖm siªu - siªu m«
h×nh “Thing”. TÇng trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ c¸c
kh¸i niÖm cña biÓu ®å vµ ®Þnh nghÜa ra mét ng«n ng÷ ®Ó x¸c ®Þnh c¸c m«
h×nh.
• TÇng m« h×nh gåm cã c¸c m« h×nh UML. §©y lµ tÇng mµ t¹i ®ã viÖc m«
h×nh ho¸ c¸c bµi to¸n, c¸c lêi gi¶i hay c¸c hÖ thèng ®−îc thùc hiÖn. Mçi
kh¸i niÖm trong tÇng nµy lµ mét thÓ hiÖn cña kh¸i niÖm trong tÇng siªu
m« h×nh. TÇng trõu t−îng nµy ®−îc sö dông ®Ó h×nh thøc ho¸ c¸c kh¸i
niÖm vµ ®Þnh nghÜa mét ng«n ng÷ ®Ó trao ®æi c¸c tõ ng÷ vÒ mét chñ ®Ó
cho tr−íc. C¸c m« h×nh trong tÇng nµy th−êng ®−îc gäi lµ c¸c m« h×nh
líp hay m« h×nh kiÓu.
• TÇng c¸c ®èi t−îng ng−êi sö dông bao gåm c¸c thµnh phÇn ®Ó minh ho¹
c¸c m« h×nh UML. Mçi kh¸i niÖm trong tÇng nµy lµ mét thÓ hiÖn cña
kh¸i niÖm trong tÇng m« h×nh. TÇng trõu t−îng nµy ®−îc sö dông ®Ó h×nh
thøc ho¸ c¸c tõ ng÷ cô thÓ vÒ mét chñ ®Ò cho tr−íc. C¸c m« h×nh trong
tÇng nµy th−êng ®−îc gäi lµ c¸c m« h×nh ®èi t−îng hay m« h×nh thÓ hiÖn.
Trong ng÷ c¶nh nµy, kh¸i niÖm “siªu” ®−îc sö dông ®Ó biÓu thÞ mèi quan hÖ
gi÷a mét tËp c¸c phi-siªu kh¸i niÖm (non-metaconcepts) vµ siªu kh¸i niÖm cña
chóng. Kh¸i niÖm “siªu” kh«ng ph¶i lµ ®Æc tÝnh cña m« h×nh, nh−ng l¹i cã vai
trong trong mèi quan hÖ gi÷a c¸c m« h×nh: mét siªu - siªu m« h×nh quan hÖ víi
mét siªu m« h×nh theo c¸ch gièng nh− mét siªu m« h×nh quan hÖ víi mét m«
h×nh vµ còng gièng nh− c¸ch mµ mét m« h×nh quan hÖ víi ®èi t−îng ng−êi sö
dông. VÒ c¬ b¶n th× biÓu diÔn siªu kh¸i niÖm cña siªu kh¸i niÖm trong ®ã kh¸i
niÖm trõu t−îng bao gåm viÖc ®−a vµo siªu kh¸i niÖm vµ biÓu diÔn bao gåm thÝ
dô minh ho¹ (hay dÉn chøng cô thÓ) mét siªu kh¸i niÖm lµ sù trõu t−îng mét tËp
c¸c phi - siªu kh¸i niÖm.
5
6
Các file đính kèm theo tài liệu này:
- pages_from_ngon_ngu_mo_hinh_hoa_uml_1_4338.pdf