Tài liệu Lập mô hình với Java: Lp mô hình vi Java: Mt cun sách bài tp v
UML, Phn 1
Mc : Nhp môn
Granville Miller, Tác gi
11 09 2009
Trong bài vit u tiên trên chuyên mc m i c
a mình, Granville Miller a ra mt trong nhng
kh
i nn tng c
a Ngôn ng mô hình hóa th
ng nht (Unified Modeling Language): lp s
tun t. Các s tun t c s dng trong su
t quá trình thit k trình bày tng tác ni
b gia các tác nhân và
i tng khi mt h th
ng thi hành theo thi gian. Hãy theo Granville
khi ông to ra mt trong nhng s này, bng cách s dng mt ng dng x lý vay n làm ví
d.
Ngôn ng mô hình hóa th
ng nht (UML) là mt ký pháp chun mô hình hoá các h th
ng h ng
i
tng. c gi i thiu v i cng ng lp trình h ng
i tng trong khong thi gian gia các nm 1995
n 1997, UML ã c OMG (Object Management Group - Tp oàn Qun lý
i tng) phê duyt vào
cu
i nm 1997. Mc dù ã có nhiu tranh cãi khi khi u --...
8 trang |
Chia sẻ: honghanh66 | Lượt xem: 958 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Lập mô hình với Java, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Lp mô hình vi Java: Mt cun sách bài tp v
UML, Phn 1
Mc : Nhp môn
Granville Miller, Tác gi
11 09 2009
Trong bài vit u tiên trên chuyên mc m i c
a mình, Granville Miller a ra mt trong nhng
kh
i nn tng c
a Ngôn ng mô hình hóa th
ng nht (Unified Modeling Language): lp s
tun t. Các s tun t c s dng trong su
t quá trình thit k trình bày tng tác ni
b gia các tác nhân và
i tng khi mt h th
ng thi hành theo thi gian. Hãy theo Granville
khi ông to ra mt trong nhng s này, bng cách s dng mt ng dng x lý vay n làm ví
d.
Ngôn ng mô hình hóa th
ng nht (UML) là mt ký pháp chun mô hình hoá các h th
ng h ng
i
tng. c gi i thiu v i cng ng lp trình h ng
i tng trong khong thi gian gia các nm 1995
n 1997, UML ã c OMG (Object Management Group - Tp oàn Qun lý
i tng) phê duyt vào
cu
i nm 1997. Mc dù ã có nhiu tranh cãi khi khi u -- nó ã c gi i thiu gia mt bu không khí
phn
i và phn ngh -- UML k t ó ã tr thành tiêu chun công nghip dành cho ký pháp h th
ng.
UML hin là phiên bn 1.4 và tip tc tin hoá áp ng nhu cu c
a các nhà phát trin h ng
i tng.
( bit thêm chi tit v lch s c
a UML, xem Tài nguyên.)
UML có th là khó h!c, ch
yu do nó c
g"ng a ra ký pháp mô hình hoá
i v i mt mng rng l n n
th các tình hu
ng. Các ký pháp mô hình hoá u d i dng s , và hin có chín s trong c t UML.
Rt may là vic h!c UML có th là mt quá trình, chia thành các giai on; bn có th ch# h!c mt s m$i
ln, và bn không cn phi ôm m toàn b nhng s phc tp c
a mt s trong n$ lc u tiên c
a bn.
Trong chuyên mc này, tôi s% d&n d"t bn qua quá trình thit k và ký pháp UML phát trin ng dng da
trên Java. Tôi s% gi i thiu nhng im c
t yu v khung công tác UML và các công ngh mô hình hoá khác
theo mt cách lôgic (và hy v!ng là thú v), và bn s% h!c c các kinh nghim thc hành bng các ví d mô
hình hoá t th gi i thc. Trong bài vit u tiên này, chúng ta s% b"t u v i vic lp s tun t, bng cách
s dng mt ng dng x lý vay n làm ví d. Xin lu ý rng tôi gi thit bn ã quen v i ngôn ng Java và
có mt kin thc c bn v các phng pháp và thut ng phát trin h ng
i tng. Các khái nim h ng
i tng s% c gii thích ng"n g!n, nhng tho lun sâu hn nm ngoài phm vi chuyên mc này.
V các s tun t
UML không bài tr bt k' phng pháp hay quy trình phát trin phn mm c bit nào; nó ch# tiêu chun hoá
dng thc ký pháp. Tuy nhiên, nhiu phng pháp phát trin li kt hp v i UML. Mt trong nhng phng
pháp ó là Quy trình th
ng nht Rational (RUP- Rational Unified Process); Mt phng thc khác là phát
trin theo c tính (FDD - feature-driven development). Các s tun t UML, do bn cht trc giác và a
dng linh hot c
a chúng, ã tr thành mt phn không th tách ri c
a các hot ng mô hình hoá mt tr c
c
a các quy trình này. S tun t c s dng mô hình hoá các th sau ây:
Các kch bn ca s dng
Các giao thc trong mt khung công tác
Các h th
ng con
Các l p
Lôgic c
a phng thc
Gii thích s lc v t ng chc nng nói trên ây s% c trình
V các cá th tác nhân (actor
personalities)
Cá th tác nhân có th hu ích trong
vic phát hin và xác nh các tác nhân
có th tham gia vào mt kch bn ca s
dng. Mt tác nhân có th có nhiu cá
Page 1 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
bày theo th t.
Kch bn ca s d
ng
i v i ng dng m&u c
a chúng ta, chúng ta s% s dng các s
tun t mô hình hoá mt kch bn ca s dng. Ca s dng là
mt nhim v n l( c thc hin bi mt tác nhân khi tng
tác v i ng dng c
a bn nhm n mt mc tiêu ã ch# rõ. Mt
tác nhân là bt k' ngi s dng cu
i cùng nào, t) chc nào, hay
h th
ng nào mà tng tác v i, nhng li bên ngoài, ng dng
c
a bn. (Xem phn V các cá th tác nhân tìm hiu v b
n cá
th tác nhân; nhn c tho lun sâu hn v các kch bn ca
s dng, xin xem phn Tài nguyên.)
Các giao thc trong mt khung công tác
Mt giao thc c t gia mt khung công tác và các thành
phn có th thay th l&n nhau c g!i là các qun th
(ensembles). Vic hiu bit v các tng tác mà mt khung công
tác òi h*i s% giúp + cho vic phát trin các qun th m i. S
tun t thng c s dng làm t liu d&n chng cho các
tng tác này.
Các h
thng con
Các d án l n c phân chia thành các mnh nh* hn, d, qun
lý hn g!i là các h thng con. Các giao din gia các h th
ng
con là rt quan tr!ng
i v i vic tích hp úng "n chúng vào cái
t)ng th l n hn, ó là h th
ng. S tun t c s dng
xác nh tng tác gia các l p trên biên gi i c
a các h th
ng
con.
Các lp
Mt s
l p (nh Socket và InetAddress) òi h*i mt chu$i
tun t phc tp các li g!i phng thc tng tác mt cách
thích hp. Các chu$i tun t này to ra các giao thc tng tác
v i mt l p hoc tp hp các l p nh vy. S tun t có th
c s dng mô t vic s dng mt l p hoc nhóm các l p
tng tác v i nhau, bng cách ó mô t các giao thc cn thit
tng tác.
Lôgic phng thc
Các s tun t là tuyt vi làm t liu d&n chng cho logic
c
a phng thc. Trên thc t, mt s
công c CASE, khi cho
tr c mt phng thc Java, s% t ng to ra mt s tun t.
Vic lp s tun t có th dùng thit k mt phng thc
trong tng lai hoc làm t liu d&n chng cho dòng x lý c
a
mt phng thc hin hành.
V ng d
ng mu
Chúng ta s% tìm hiu v cách lp s tun t v i s giúp + c
a
th trong mt ca s dng và xuyên
nhiu ca s dng. Cho n nay, b
n cá
th tác nhân khác nhau ã c xác
nh nh là các ci tin hoc bn m&u
(stereotype)
i v i c t UML: tác
nhân khi to (initiator), máy ch
, tác
nhân tip nhn (receiver), và tác nhân
xúc tin (facilitator). Do các cá th tác
nhân có th c phn ánh trong các s
tun t, bn nên làm quen v i các
chc nng c
a chúng.
Mt tác nhân khi to là mt
thc th ngoài mà a mt hành
vi h th
ng nào ó vào hot
ng. Các tác nhân khi to có
th yêu cu các dch v hoc to
ra các s kin. Trong các s
tun t ni có mt các tác nhân,
các tác nhân khi to khi ng
chu$i s kin.
Các cá th máy ch bên ngoài
cung cp dch v cho các bên
khác. Các máy ch
giúp + h
th
ng trong vic t c mc
ích c
a nó bng cách cung cp
chc nng hoc thông tin t bên
ngoài. Nhiu h th
ng bên ngoài,
gm c h iu hành là các cá
th máy ch
. Các máy ch
có xu
h ng thu nhn các thông ip
nhng hu nh không to ra
chúng.
Cá th tác nhân tip nhn thu
nhn thông tin t h th
ng.
Chúng có th cung cp các dch
v nhng chúng làm vic ó mt
cách th ng. Kt qu là chúng
có th không mang li giá tr cho
h th
ng nhng s% mang li giá
tr cho các tác nhân khác. Ví d
v mt tác nhân tip nhn là mt
kho d liu hoc h th
ng sao
lu bên ngoài. Tác nhân tip
nhn thng nhn c các
thông ip t các
i tng trong
h th
ng nhng thng không
to ra chúng.
Tác nhân xúc tin (facilitator) là
mt tác nhân thc hin mt hành
ng thay mt mt tác nhân
khác. Mt ví d v mt tác nhân
xúc tin là mt nhân viên ca
hàng cho thuê video, ngi cho
thuê các video dành cho khách
hàng.
Page 2 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
mt ng dng x lý vay n m&u. Do chuyên mc này tp trung
vào vic mô hình hoá, không phi là vào phng thc, chúng ta cn i th-ng vào vic lp s , nh vy
chúng ta s% v&n các chi tit c
a ng dng khá l*ng l(o. Các chc nng cn bn mà chúng ta s% lp s cho
ng dng x lý vay n nh sau:
Ca s d
ng: Np yêu cu vay n (Submit loan request)
1. Mt ngi ng n hoàn tt và trình np mt n xin vay n qua Internet t i ngân hàng.
2. H th
ng kim tra tính hp l c
a thông tin trên n xin vay, kim tra xem nó ã chính xác và y
nht cha.
3. H th
ng chuyn tip yêu cu vay tin n mt phòng tín dng bên ngoài nhn c mt báo cáo tín
dng c
a ngi ng n.
4. H th
ng tính toán im s
tín dng c
a ngi ng n da trên báo cáo tín dng ã tr v.
Bt u
B c u tiên to ra mt s tun t là xác nh xem s
ó có biu di,n mt tng tác v i mt thc th bên ngoài hay bên
trong h th
ng. Nu bn ang mô hình hoá mt kch bn ca s
dng, các s tun t c
a bn thng s% biu di,n mt tng
tác v i mt thc th bên ngoài. Nu bn ang mô hình hoá các
giao thc trong mt khung công tác, các s này có th biu
di,n mt tng tác bên ngoài hoc bên trong. Các s cho các
h th
ng con, các l p, và logic c
a mt phng thc riêng l(
thng ch# biu di,n các thc th bên trong. Dù ó là trng hp
nào thì kiu tng tác mà bn ang mô hình hoá s% xác nh phn
t u tiên (và ngoài cùng bên trái) trong s tun t ó.
Mt tng tác v i mt thc th bên ngoài ch# rõ rng mt tác
nhân s% là mt bên c
a tng tác ó. Mt tng tác bên trong có th c mt tác nhân kích hot (nu các ca
s dng h th
ng con là c s c
a tng tác), nhng rt có th nó s% c kích hot bi mt l p chung g!i là
Sender
(bên gi). Nu mt tác nhân khi ng tng tác này, tác nhân ó s% ri vào loi hình tác nhân khi
to, mt trong b
n cá th tác nhân ph) bin (xin xem V các cá th tác nhân (About actor personalities) bit
thêm chi tit).
Chúng ta s% tp trung vào vic lp s mt kch bn cho ng dng x lý vay n c
a chúng ta: ó là ca s
dng np yêu cu vay n phác tho trên ây. Hãy chú ý t i các thay )i v i s tun t c
a chúng ta khi mt
ngi ng n hoàn tt mt n vay tin trc tuyn và trình np nó trên Internet. Trong kch bn này, ngi
ng n là bên ngoài so v i h th
ng và do ó c i din bi mt tác nhân. Chúng ta s% b"t u bng cách
thêm tác nhân này, Applicant, vào s , nh trong Hình 1.
Hình 1. Thêm vào ng i
ng
n
ng b l phn còn li ca lot bài
"Mt cun sách bài tp v UML"
Phn 2: "Logic iu kin trong các s
tun t" (06.2001)
Phn 3: "Logic giao din ngi dùng
trong vic lp mô hình ca s
dng" (06.2001)
Phn 4: "Vai trò c
a tác nhân" (06.
2002)
Page 3 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
Thêm vào ngi chi
Khi tác nhân khi to c
a tng tác ã s.n sàng, b c tip theo là thêm vào các
i tng mà tác nhân này s%
tng tác v i chúng theo di,n bin c
a kch bn. Tên c
a các
i tng này s% phn ánh hành vi c
a các l p
hay cá th. (Vic la ch!n các l p hay ch!n cá th
i tng mang li mt ý ngh/a riêng bit cho s tun
t, nhng tôi s% dành li vic tho lun v s khác bit gia hai la ch!n ó cho ln sau).
i v i kch bn m&u, chúng ta s% thêm vào hai l p: LoanApplication và LoanRequest. Mt n xin vay
tin là b"t buc phi có khi xin vay tin. Nó cha thông tin v ngi làm n và khon tin mu
n vay. Mt
yêu cu vay tin là mt m&u biu ngân hàng gi n mt phòng tín dng sau khi nhn c n xin vay tin.
Nó cha mt s
thông tin t n xin vay tin, c0ng nh mt yêu cu nhn các thông tin v lch s tín dng c
a
ngi ng n. Vic thêm hai l p này vào s tun t c th hin trong Hình 2.
Hình 2. Thêm vào hai lp tng tác
Page 4 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
Ni các nét chm -- , nét gch
Các s tun t có tính trc giác
i v i hu ht các nhà phát trin phn mm. Chúng ánh x các
i tng
và các tác nhân (trc ngang) v i thi gian (trc ng). Các thông ip kt n
i các
i tng, i t
i tng
này n
i tng khác xuôi xu
ng theo trc ng nh khi các thông ip xut hin theo thi gian. Các thông
ip này c n
i v i mt ng th-ng ng, nét t, b"t ngun t im gia áy c
a
i tng hay tác nhân.
ng này g!i là dây treo (lifeline). (N.D: không bit có phi ngi t ra thut ng này da vào mt liên
tng khá bt ng sau ây hay không? Nhng ngi làm vic trên cao phi eo mt dây an toàn móc th"t
lng, buông thõng xu
ng theo chiu th-ng ng, nó g!i là (lifeline)).
Trên trc ngang, chúng ta biu di,n thông ip bng các m0i tên ôi khi g!i là các mi tên cuc gi hay mi
tên thông ip. Mt m0i tên thông ip h ng t bên gi (uôi) n bên nhn (u). Các m0i tên này s dng
b"t gi hành vi ng c
a h th
ng. Các cuc g!i thng b"t u t bên trái và i v h ng bên phi. Ngh/a là,
m0i tên ban u trong mt tng tác thng n t bên trái. Khi chúng ta to ra mt cá th m i c
a mt l p,
chúng ta v% m0i tên tr* n chính l p ó ch không phi là n dây treo c
a nó. B c u tiên trong kch bn
c
a chúng ta là to ra mt n xin vay tin m i, vì vy chúng ta s% v% mt m0i tên gia Applicant và
LoanApplication. Bi vì vic to ra mt cá th m i trong Java bao gm vic g!i hàm to (constructor),
chúng ta có th gán nhãn m0i tên này bng tên hàm to và có th gm c các
i s
c
a nó.
Chúng ta v&n ang trong giai on phân tích c
a vòng i phát trin phn mm, vì vy chúng ta cn bao gm
thêm thông tin phân tích càng nhiu càng t
t. Mt trong nhng nhà phân tích nghip v c
a chúng ta ã nói
rng chúng ta g!i hành ng to ra mt n xin vay tin m i là "hoàn tt n xin vay". Nu chúng ta mu
n
tht sát úng
i v i s tun t ang xây dng này, chúng ta có th trin khai thc hin complete nh là
mt phng thc t/nh công cng (public static), trong ó s% g!i hàm to LoanApplication nh Hình 3.
Hình 3. To ra LoanApplication
V s mt s kích hot
Khi mt l p hoc cá th nhn c mt thông ip, nó to ra mt hp trên dây treo c
a
i tng tip nhn;
Page 5 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
vic này g!i là mt kích ho t.Mt kích hot biu di,n dòng iu khin trong phng thc c
a bên nhn. Khi
mt thông ip d&n n vic to ra mt
i tng, kích hot u tiên biu di,n cho logic c
a hàm to. Các
thông ip sau ó s% d&n n vic to ra các kích hot m i.
Sau khi nhn c mt thông ip,
i tng nhn có th, n lt mình, gi các thông ip n chính nó
hoc n các
i tng khác. iu này th hin bng uôi c
a các m0i tên, trình bày các thông ip xut phát
t kích hot ó và kt thúc ti các kích hot m i. Khi mt
i tng g!i chính nó, kích hot m i c t lên
trên kích hot c0.
Trong kch bn c
a chúng ta, ngi ng n tng tác v i n xin vay tin hai ln, u tiên là hoàn tt nó,
và ln th hai là gi np. Khi LoanApplication nhn c thông ip submit nó t kim tra hp l bng
cách gi mt thông ip validate n chính nó. Nu hp l, nó s% to ra mt LoanRequest m i gi n
phòng tín dng. Hình 4 cho thy vic kim tra hp l LoanApplication.
Hình 4. Kim tra hp l LoanApplication
Khi mi tên bay: Cho bit thi gian trôi qua
Chúng ta s dng mt m0i tên nghiêng biu th ã trôi qua mt quãng thi gian áng k gia khong thi
gian mt thông ip c gi i và thi gian nó c tip nhn. Ký pháp này s dng cho bit rng mt
cuc g!i không phi là nguyên t (N.D: tc là có th phân chia c). Ví d v các cuc g!i không nguyên t
là các li g!i phng thc thông qua CORBA hoc RMI, hoc các thông ip gi qua mng.
Trong ví d c
a chúng ta, phòng tín dng là mt h th
ng bên ngoài, mt tác nhân có cá th máy ch
(xin xem
V các cá th tác nhân bit thêm chi tit). Các máy ch
thng không phát ra thông ip, mà úng hn là
yêu cu thông ip gi n chúng -- trong trng hp này là yêu cu v mt báo cáo tín dng, c gi bi b
kim tra tín dng. B kim tra tín dng i din cho phòng tín dng. Nó theo dõi và chuyn tip các yêu cu
n phòng tín dng, theo dõi và nhn phn hi, và mt khác thit lp các kt n
i gia ng dng x lý vay n
và phòng tín dng. Phòng tín dng s% nhn yêu cu này và x lý nó theo lch biu riêng c
a mình. Chúng ta s
Page 6 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
dng m0i tên nghiêng này biu di,n thi gian trôi qua, nh Hình 5 d i ây.
Khi kt thúc mt kích hot, phn tr v cho bên g!i là n. Tuy nhiên, trong mt s
trng hp, bn có th
mu
n làm cho phn tr v hin ra tng minh. Các li g!i tr v tng minh c th hin bng mt m0i tên
nét t có uôi là bên nhn và u là bên gi. M0i tên tr li tng minh thng c g"n nhãn bng giá tr
mà cuc g!i tr v.
i v i ví d c
a chúng ta, chúng ta ã thêm vào mt m0i tên tng minh gia
CreditBureau
và CreditChecker. M0i tên này có th c g"n nhãn CreditReport, vì ó là
i tng
c tr li t phng thc requestCreditReport.
Hình 5. Nhn mt CreditReport
Còn nhng gì na
Nh tôi ã nêu phn u chuyên mc này, các s tun t là hu ích
i v i vic mô t hành vi bên trong
c
a mt h th
ng theo thi gian. Trong bài vit này, tôi ã a bn qua các b c u tiên c
a vic xây dng s
tun t bng vic mô hình hoá các tng tác gia các
i tng. Trong phn tip theo, tôi s% gi i thiu hai
dng s tun t (chung và cá th) và gii thích vai trò c
a logic iu kin trong vic lp s tun t, bng
cách s dng các ví d rút ra t các phng thc Java n gin. H1n gp bn sau!
Tài nguyên
Martin Fowler (tác gi c
a UML Distilled) a ra mt cái nhìn c
a ngi trong cuc v lch s khi u
c
a UML.
Nu bn nghiêm túc mu
n tìm hiu v UML bn nên b"t u bng bài vit g
c c
a ba ngi bn
(Booch, Jacobson, Rumbaugh): H
ng dn s
dng Ngôn ng Mô hình hoá thng nht (lot bài v
Công ngh
i tng c
a Addison Wesley, 1998).
Tip theo trong danh sách c
t yu cn !c là c t Ngôn ng Mô hình hoá th
ng nht c
a OMG (bn
1.4 tính n 02.2001).
Trang Tài nguyên UML c
a Rational cung cp thông tin hin ti v UML, RUP, và nhiu th na.
Mt cu
n sách áng !c v phát trin theo c tính và Quy trình th
ng nht c
a Rational là Mô hình
hoá Java vi màu sc bng UML (Java Modeling in Color with UML) c
a Peter Coad, Eric Lefebvre,
Page 7 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
Jeff DeLuca (Prentice Hall, 1999).
• Mt cu
n sách t
t na v RUP là Quy trình thng nht ca Rational: Bài gii thiu ca c
a Philippe
Kruchten (Addison Wesley, 2000).
ôi nét v tác gi
Granville có 13 nm kinh nghim trong cng ng h ng
i tng. Ông là ng tác gi c
a lot bài
Advanced Use Case Modeling (Mô hình hoá ca s dng nâng cao) và ã trình bày các bài h ng d&n ti nhiu
hi ngh công ngh h ng
i tng trên toàn th gi i. Cách tip cn thc hành n vic phát trin h ng
i
tng c
a ông là kt qu quá trình làm vic c
a ông v i các công ty, t công ty khi u trong giai on non
tr( n mt s
nhng ngi kh)ng l phn mm ting tm nht. Ông hin ang ging dy các xê mi na, phiên
h ng d&n, các l p h!c v quy trình và phng pháp lun phát trin lanh li (agile), công ngh Java, c0ng
nh c
vn và giúp + cung cp các d án nng n).
Page 8 of 8Lp mô hình v i Java: Mt cu
n sách bài tp v UML, Phn 1
Các file đính kèm theo tài liệu này:
- j_jmod0508_0966.pdf