UML
Bài1:GiithiutngquanvngônngUML
Ti sao chúng ta phi xây dng mô hình cho h thng?
hình hóa cách xem xét mt bài toán thông qua vic s dng các
hình. hình dùng ñ hiu 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...
hình giúp cho vic xác ñnh các yêu cu tt hơn, thit k ràng hơn kh
năng bo trì h thng cao hơn.
hình s tru tưng hóa, 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 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 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 hình bng cách s dng
các kí hiu mt cách ràng, c&n th'n, kim tra xem các hình ñã tho
mãn các yêu cu ca h thng chưa dn dn thêm vào các chi tit ñ
th và kim soát kin trúc ca h thng.
hình th 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 hơn v h thng chúng ta ñang
xây dng, to ra cơ hi ñ th ñơn gin a tái s dng. Chúng ta xây
dng mô hình ñ kim soát ri ro.
Vic l'p nh không ch( dành cho các h thng l#n. Khi xây dng
hình chúng ta s) ñt ñưc 4 mc ñích sau:
hình giúp chúng ta trc quan hóa h thng như nó vn 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 hình ca nhng h thng phc tp bi chúng ta
không th lĩnh hi mt lúc toàn b h thng ñó. d như khi xây mt nhà
kho chúng ta th b t tay vào xây ngay, khi xây mt ngôi nhà chúng ta
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 t nhà ñó. ðiu này cũng ñúng
trong lĩnh vc phn mm. H thng càng phc tp thì vic xây dng
hình càng quan trng. Xây dng 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 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 bo trì các ng dng cht lưng cao trong mt khong thi
gian hp ngày càng tr nên khó khăn hơn. Mt t chc phát trin phn
mm thành công t chc xây dng ñưc các phn mm cht lưng,
tho mãn ñưc mi yêu cu ca khách hàng.
hình hóa 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 hình ñ trao ñi,
bàn bc v cu trúc 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(
cu trúc và ng x ca h thng
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.
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 hình hóa, chúng ta thu h+p bài toán 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 ñ trEdsger Diskstra ñã
ñưa ra: “Gii quyt mt vn ñ khó bng cách chia thành nhng bài toán
nh hơn mà bn có th gii quyt ñưc.”
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 quan trng. Cui
cùng, trong h thng phân tán da trên c s Web thì các 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 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 hình ngôn ng bng t vng( các hiu) các quy t c ca
t'p trung vào vic th hin v mt khái nim cũng như v't ca mt h
thng.
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 ñc hiu ñưc mt 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 ñ 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 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 anh ta ñã xây dng thành lnh thì nhiu khi cách tt nht
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 nh, m,i hiu mang mt ý
nghĩa ràng và duy nht, mt nhà phát trin th ñc ñưc hình xây
dng bng UML do mt ngưi khác vit.
Nhng cu trúc vic n m b t thông qua ñc lnh 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
nghĩa xây dng các hình mt các t( m(, 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 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 hành vi ca h thng ñưc xây
dng th khác hình ta ñã xây dng. ðiu này th m cho mt
hình tt tr nên nghĩa 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 hình t các thc thi.( ánh x ngưc).
ðiu này to ra s nht quán gia hình ca h thng c ñon
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 ñ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 ñ xây dng 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