
UML
Bài1:GiithiutngquanvngônngUML
Ti sao chúng ta phi xây dng mô hình cho h thng?
Mô hình hóa là cách xem xét mt bài toán thông qua vic s dng các mô
hình. Mô hình dùng ñ hiu rõ bài toán, trao ñi thông tin gia nhng ngưi
liên quan như khách hàng, chuyên gia, ngưi phân tích, ngưi thit k... Mô
hình giúp cho vic xác ñnh các yêu cu tt hơn, thit k rõ ràng hơn và kh
năng bo trì h thng cao hơn.
Mô hình là s tru tưng hóa, mô t mt bn cht ca mt vn ñ hoc mt
cu trúc phc tp bng cách loi b nhng chi tit không quan trng, khin
cho bài toán tr nên d hiu và d n m b t hơn. Tru tưng hóa là mt kh
năng cơ bn ca con ngưi trong vic gii quyt các vn ñ phc tp. Các k!
sư, kin trúc sư, các ngh sĩ ñã tng xây dng nhng mô hình t hàng nghìn
năm nay ñ th các thit k ca h trư#c khi thc hin chúng. Vic phát
trin các h thng phn mm cũng không ngoi l. ð xây dng mt h
thng phc tp, nhng ngưi phát trin phi tru tưng hóa nhng khía cnh
(View) khác nhau ca h thng, xây dng các mô hình bng cách s dng
các kí hiu mt cách rõ ràng, c&n th'n, kim tra xem các mô hình ñã tho
mãn các yêu cu ca h thng chưa và dn dn thêm vào các chi tit ñ có
th và kim soát kin trúc ca h thng.
Mô hình có th mô t các cu trúc, nhn mnh v mt t chc ca h thng
hoc nó có th mô t các hành vi, t'p trung vào mt ñng ca h thng.
Chúng ta xây dng mô hình ñ hiu rõ hơn v h thng mà chúng ta ñang
xây dng, to ra cơ hi ñ có th ñơn gin hóa và tái s dng. Chúng ta xây
dng mô hình ñ kim soát ri ro.
Vic l'p mô hình không ch( dành cho các h thng l#n. Khi xây dng mô
hình chúng ta s) ñt ñưc 4 mc ñích sau:
•
Mô hình giúp chúng ta trc quan hóa h thng như là nó vn có hay
theo cách mà chúng ta mun nó s) như v'y.
Mô hình chuyn ñi t mô hình sang mt cài ñt c th.

Chúng ta xây dng mô hình ca nhng h thng phc tp bi vì chúng ta
không th lĩnh hi mt lúc toàn b h thng ñó. Ví d như khi xây mt nhà
kho chúng ta có th b t tay vào xây ngay, khi xây mt ngôi nhà chúng ta có
th cn bn thit k ca ngôi nhà ñó. Khi cn xây môt tòa nhà cao tng,
chúng ta ch c ch n cn bn thit k ca toà nhà ñó. ðiu này cũng ñúng
trong lĩnh vc phn mm. H thng càng phc tp thì vic xây dng mô
hình càng quan trng. Xây dng mô hình cho phép ngưi thit k thy ñưc
bc tranh tng quan ca h thng, thy ñưc các thành phn ca h thng
tương tác v#i nhau như th nào hơn là vic sa ly vào chi tit bên trong ca
các thành phn ñó.
Trong th gi#i luôn bin ñng ca các ng dng hư#ng ñi tưng thì vic
phát trin và bo trì các ng dng có cht lưng cao trong mt khong thi
gian hp lý ngày càng tr nên khó khăn hơn. Mt t chc phát trin phn
mm thành công là t chc xây dng ñưc các phn mm có cht lưng,
tho mãn ñưc mi yêu cu ca khách hàng.
•
Mô hình hóa là phn trung tâm trong các công vic, các hot ñng ñ
d*n t#i mt phn mm tt. Chúng ta xây dng mô hình ñ trao ñi,
bàn bc v cu trúc và ng x(behavior) mong mun ca h thng.
Chúng ta xây dng mô hình ñ trc quan hóa cho phép chúng ta ch( rõ
cu trúc và ng x ca h thng
•
Mô hình cho chúng ta mt khuôn m*u ñ hư#ng d*n chúng ta trong
quá trình xây dng h thng.
•
Mô hình ñưa ra các d*n chng bng tài liu v các quyt ñnh mà
chúng ta ñã ñưa ra trong quá trình thit k h thng.
Thông qua vic mô hình hóa, chúng ta thu h+p bài toán mà chúng ta ñang
nghiên cu bng cách ch( t'p trung vào mt khía cnh ti mt thi ñim.
ðiu này cũng ging như phương pháp “chia ñ tr” mà Edsger Diskstra ñã
ñưa ra: “Gii quyt mt vn ñ khó bng cách chia nó thành nhng bài toán
nh hơn mà bn có th gii quyt ñưc.”
Mô hình hóa là vic ñơn gin hóa thc t, loi b nhng ñim th yu, tuy
nhiên ta phi ch c ch n rng không b sót mt chi tit quan trng nào.
Tùy thuc vào ñc ñim t nhiên ca h thng, m,i mô hình có th t'p trung
vào nhng mt khác nhau ca h thng. Như h thng t'p trung vào d liu
thì các mô hình v phn thit k tĩnh ca h thng s) ñưc chú ý hơn. Trong
h thng giao din ngưi dùng thì phn tĩnh và ñng ca Use case s) là quan

trng. Trong h thng thi gian thc, các tin trình ñng là quan trng. Cui
cùng, trong h thng phân tán da trên c s Web thì các mô hình v thc
thi và trin khai là quan trng nht.
Unified Modeling Language là gì?
UML là mt ngôn ng dùng ñ
•
Trc quan hóa
•
C th hóa
•
Sinh mã dng nguyên m*u
•
L'p và cung cp tài liu
UML là mt ngôn ng bao g-m mt bng t vng và các quy t c ñ kt hp
các t vng ñó phc v cho mc ñích giao tip. Mt ngôn ng dùng cho vic
l'p mô hình là ngôn ng mà bng t vng( các ký hiu) và các quy t c ca
nó t'p trung vào vic th hin v mt khái nim cũng như v't lý ca mt h
thng.
Mô hình hóa mang li s hiu bit v mt h thng. Mt mô hình không th
giúp chúng ta hiu rõ mt h thng, thưng là phi xây dng mt s mô hình
xét t nhng góc ñ khác nhau. Các mô hình này có quan h v#i nhau.
UML s) cho ta bit cách to ra và ñc hiu ñưc mt mô hình ñươc cu trúc
tt, nhưng nó không cho ta bit nhng mô hình nào nên to ra và khi nào to
ra chúng. ðó là nhim v ca quy trình phát trin phn mm.

1. UML là ngôn ng dùng ñ trc quan hóa
ði v#i nhiu l'p trình viên, không có khong cách nào gia ý tưng ñ gii
quyt mt vn ñ và vic th hin ñiu ñó thông qua các ñon mã. H nghĩ
ra và h vit mã. Trên thc t, ñiu này gp mt s vn ñ. Th nht, vic
trao ñi v các ý tưng gia nhng ngưi l'p trình s) gp khó khăn, tr khi
tt c ñu nói cùng mt ngôn ng. Th'm chí ngay c khi không gp tr ngi
v ngôn ng thì ñi v#i tng công ty, tng nhóm cũng có nhng “ngôn ng”
riêng ca h. ðiu này gây tr ngi cho mt ngưi m#i vào ñ có th hiu
ñưc nhng vic ñang ñưc tin hành. Hơn na, trong lĩnh vc phn mm,
nhiu khi khó có th hiu ñưc nu ch( xem xét các ñon mã lnh. Ví d như
s phân cp ca các l#p, ta có th phi duyt rt nhiu ñon lnh ñ hiu
ñưc s phân cp ca các l#p. Và nu như ngưi l'p trình không mô t các ý
tưng mà anh ta ñã xây dng thành mã lnh thì nhiu khi cách tt nht là
xây dng li trong trưng hp mt ngưi khác ñm nh'n tip nhim v khi
anh ta ri khi nhóm.
Xây dng mô hình s dng ngôn ng UML ñã gii quyt ñưc các khó khăn
trên.
Khi tr thành mt chu&n trong vic l'p mô hình, m,i kí hiu mang mt ý
nghĩa rõ ràng và duy nht, mt nhà phát trin có th ñc ñưc mô hình xây
dng bng UML do mt ngưi khác vit.
Nhng cu trúc mà vic n m b t thông qua ñc mã lnh là khó khăn nay ñã
ñưc th hin trc quan.
Mt mô hình rõ ràng, sáng sa làm tăng kh năng giao tip, trao ñi gia các
nhà phát trin.
2. UML là ngôn ng dùng ñ chi tit hóa
Có nghĩa là xây dng các mô hình mt các t( m(, rõ ràng, ñy ñ các mc
ñ chi tit khác nhau. ðc bit là UML thc hin vic chi tit hoá tt c các
quyt ñnh quan trng trong phân tích, thit k và thc thi mt h thng phn
mm.
3. UML là ngôn ng dùng ñ sinh ra mã dng nguyên mu

Các mô hình xây dng bi UML có th ánh x t#i mt ngôn ng l'p trình c
th như : Java, C++... th'm chí c các bng trong mt CSDL quan h hay
CSDL hư#ng ñi tưng.
Vic các yêu cu có kh năng thưng xuyên thay ñi trong quá trình phát
trin h thng d*n ñn vic các cu trúc và hành vi ca h thng ñưc xây
dng có th khác mô hình mà ta ñã xây dng. ðiu này có th làm cho mt
mô hình tt tr nên vô nghĩa vì nó không còn phn ánh ñúng h thng na.
Cho nên phi có mt cơ ch ñ ñ-ng b hóa gia mô hình và mã lnh.
UML cho phép c'p nh't mt mô hình t các mã thc thi.( ánh x ngưc).
ðiu này to ra s nht quán gia mô hình ca h thng và các ñon mã
thc thi mà ta xây dng cho h thng ñó.
4. UML là ngôn ng dùng ñ lp và cung cp tài liu
Mt t chc phn mm ngoài vic to ra các ñon mã lnh( thc thi) thì còn
to ra các tài liu sau:
•
Ghi chép v các yêu cu ca h thng
•
Kin trúc ca h thng
•
Thit k
•
Mã ngu-n
•
K hoch d án
•
Tests
•
Các nguyên m*u
•
...
5. ng dng ca UML
Mc ñích chính ca UML là ñ xây dng mô hình cho các h thng phn
mm, nó có th ñưc s dng mt cách hiu qu trong nhiu lĩnh vc như:
•
H thng thông tin doanh nghip (enterprise)
•
Ngân hàng và dch v tài chính
•
Vin thông
•
Giao thông
•
Hàng không và quc phòng
•
Máy móc ñin t dùng trong y t
•
Khoa hc
•
Các ng dng phân tán da trên Web

