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?
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