Tải bản đầy đủ (.pdf) (8 trang)

Lập mô hình vi Java: Một cuốn sách bài tập với UML

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (262.11 KB, 8 trang )

L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

Page 1 of 8

L p mô hình v i Java: M t cu n sách bài t p v
UML, Ph n 1
M c

: Nh p môn

Granville Miller, Tác gi
11 09 2009
Trong bài vi t u tiên trên chuyên m c m i c a mình, Granville Miller a ra m t trong nh ng
kh i n n t ng c a Ngôn ng mô hình hóa th ng nh t (Unified Modeling Language): l p s
tu n t . Các s
tu n t
c s d ng trong su t quá trình thi t k
trình bày t ng tác n i
b gi a các tác nhân và i t ng khi m t h th ng thi hành theo th i gian. Hãy theo Granville
khi ông t o ra m t trong nh ng s
này, b ng cách s d ng m t ng d ng x lý vay n làm ví
d .
Ngôn ng mô hình hóa th ng nh t (UML) là m t ký pháp chu n mô hình hoá các h th ng h ng i
t ng.
c gi i thi u v i c ng ng l p trình h ng i t ng trong kho ng th i gian gi a các n m 1995
n 1997, UML ã
c OMG (Object Management Group - T p oàn Qu n lý i t ng) phê duy t vào
cu i n m 1997. M c dù ã có nhi u tranh cãi khi kh i u -- nó ã
c gi i thi u gi a m t b u không khí
ph n i và ph n ngh -- UML k t ó ã tr thành tiêu chu n công nghi p dành cho ký pháp h th ng.
UML hi n là phiên b n 1.4 và ti p t c ti n hoá


áp ng nhu c u c a các nhà phát tri n h ng i t ng.
( bi t thêm chi ti t v l ch s c a UML, xem Tài nguyên.)
UML có th là khó h!c, ch y u do nó c g"ng a ra ký pháp mô hình hoá i v i m t m ng r ng l n n
th các tình hu ng. Các ký pháp mô hình hoá u d i d ng s
, và hi n có chín s
trong c t UML.
R t may là vi c h!c UML có th là m t quá trình, chia thành các giai o n; b n có th ch# h!c m t s
m$i
l n, và b n không c n ph i ôm m toàn b nh ng s ph c t p c a m t s
trong n$ l c u tiên c a b n.
Trong chuyên m c này, tôi s% d&n d"t b n qua quá trình thi t k và ký pháp UML phát tri n ng d ng d a
trên Java. Tôi s% gi i thi u nh ng i m c t y u v khung công tác UML và các công ngh mô hình hoá khác
theo m t cách lôgic (và hy v!ng là thú v ), và b n s% h!c
c các kinh nghi m th c hành b ng các ví d mô
hình hoá t th gi i th c. Trong bài vi t u tiên này, chúng ta s% b"t u v i vi c l p s
tu n t , b ng cách
s d ng m t ng d ng x lý vay n làm ví d . Xin l u ý r ng tôi gi thi t b n ã quen v i ngôn ng Java và
có m t ki n th c c b n v các ph ng pháp và thu t ng phát tri n h ng i t ng. Các khái ni m h ng
i t ng s%
c gi i thích ng"n g!n, nh ng th o lu n sâu h n n m ngoài ph m vi chuyên m c này.

V các s

tu n t

UML không bài tr b t k' ph ng pháp hay quy trình phát tri n ph n m m c bi t nào; nó ch# tiêu chu n hoá
d ng th c ký pháp. Tuy nhiên, nhi u ph ng pháp phát tri n l i k t h p v i UML. M t trong nh ng ph ng
pháp ó là Quy trình th ng nh t Rational (RUP- Rational Unified Process); M t ph ng th c khác là phát
tri n theo c tính (FDD - feature-driven development). Các s
tu n t UML, do b n ch t tr c giác và a

d ng linh ho t c a chúng, ã tr thành m t ph n không th tách r i c a các ho t ng mô hình hoá m t tr c
c a các quy trình này. S
tu n t
c s d ng mô hình hoá các th sau ây:
Các k ch b n ca s d ng
Các giao th c trong m t khung công tác
Các h th ng con
Các l p
Lôgic c a ph ng th c
Gi i thích s l

c v t ng ch c n ng 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 h u ích trong
vi c phát hi n và xác nh các tác nhân
có th tham gia vào m t k ch b n ca s
d ng. M t tác nhân có th có nhi u cá


L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

bày theo th t .

K ch b n ca s

d ng


i v i ng d ng m&u c a chúng ta, chúng ta s% s d ng các s
tu n t
mô hình hoá m t k ch b n ca s d ng. Ca s d ng là
m t nhi m v
n l(
c th c hi n b i m t tác nhân khi t ng
tác v i ng d ng c a b n nh m n m t m c tiêu ã ch# rõ. M t
tác nhân là b t k' ng i s d ng cu i cùng nào, t) ch c nào, hay
h th ng nào mà t ng tác v i, nh ng l i bên ngoài, ng d ng
c a b n. (Xem ph n V các cá th tác nhân tìm hi u v b n cá
th tác nhân; nh n
c th o lu n sâu h n v các k ch b n ca
s d ng, xin xem ph n Tài nguyên.)

Các giao th c trong m t khung công tác
M t giao th c
c t gi a m t khung công tác và các thành
ph n có th thay th l&n nhau
c g!i là các qu n th
(ensembles). Vi c hi u bi t v các t ng tác mà m t khung công
tác òi h*i s% giúp +cho vi c phát tri n các qu n th m i. S
tu n t th ng
c s d ng làm t li u d&n ch ng cho các
t ng tác này.

Các h th ng con
Các d án l n
c phân chia thành các m nh nh* h n, d, qu n
lý h n g!i là các h th ng con. Các giao di n gi a các h th ng

con là r t quan tr!ng i v i vi c tích h p úng "n chúng vào cái
t)ng th l n h n, ó là h th ng. S
tu n t
c s d ng
xác nh t ng tác gi a các l p trên biên gi i c a các h th ng
con.

Các l p
M t s l p (nh Socket và InetAddress) òi h*i m t chu$i
tu n t ph c t p các l i g!i ph ng th c t ng tác m t cách
thích h p. Các chu$i tu n t này t o ra các giao th c t ng tác
v i m t l p ho c t p h p các l p nh v y. S
tu n t có th
c s d ng mô t vi c s d ng m t l p ho c nhóm các l p
t ng tác v i nhau, b ng cách ó mô t các giao th c c n thi t
t ng tác.

Lôgic ph

ng th c

Các s
tu n t là tuy t v i làm t li u d&n ch ng cho logic
c a ph ng th c. Trên th c t , m t s công c CASE, khi cho
tr c m t ph ng th c Java, s% t
ng t o ra m t s
tu n t .
Vi c l p s
tu n t có th dùng thi t k m t ph ng th c
trong t ng lai ho c làm t li u d&n ch ng cho dòng x lý c a

m t ph ng th c hi n hành.

V

ng d ng m u

Chúng ta s% tìm hi u v cách l p s

tu n t v i s giúp +c a

Page 2 of 8

th trong m t ca s d ng và xuyên
nhi u ca s d ng. Cho n nay, b n cá
th tác nhân khác nhau ã
c xác
nh nh là các c i ti n ho c b n m&u
(stereotype) i v i c t UML: tác
nhân kh i t o (initiator), máy ch , tác
nhân ti p nh n (receiver), và tác nhân
xúc ti n (facilitator). Do các cá th tác
nhân có th
c ph n ánh trong các s
tu n t , b n nên làm quen v i các
ch c n ng c a chúng.
M t tác nhân kh i t o là m t
th c th ngoài mà a m t hành
vi h th ng nào ó vào ho t
ng. Các tác nhân kh i t o có
th yêu c u các d ch v ho c t o

ra các s ki n. Trong các s
tu n t n i có m t các tác nhân,
các tác nhân kh i t o kh i ng
chu$i s ki n.
Các cá th máy ch bên ngoài
cung c p d ch v cho các bên
khác. Các máy ch giúp +h
th ng trong vi c t
cm c
ích c a nó b ng cách cung c p
ch c n ng ho c thông tin t bên
ngoài. Nhi u h th ng bên ngoài,
g m c h i u hành là các cá
th máy ch . Các máy ch có xu
h ng thu nh n các thông i p
nh ng h u nh không t o ra
chúng.
Cá th tác nhân ti p nh n thu
nh n thông tin t h th ng.
Chúng có th cung c p các d ch
v nh ng chúng làm vi c ó m t
cách th
ng. K t qu là chúng
có th không mang l i giá tr cho
h th ng nh ng s% mang l i giá
tr cho các tác nhân khác. Ví d
v m t tác nhân ti p nh n là m t
kho d li u ho c h th ng sao
l u bên ngoài. Tác nhân ti p
nh n th ng nh n

c các
thông i p t các i t ng trong
h th ng nh ng th ng không
t o ra chúng.
Tác nhân xúc ti n (facilitator) là
m t tác nhân th c hi n m t hành
ng thay m t m t tác nhân
khác. M t ví d v m t tác nhân
xúc ti n là m t nhân viên c a
hàng cho thuê video, ng i cho
thuê các video dành cho khách
hàng.


L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

Page 3 of 8

m t ng d ng x lý vay n m&u. Do chuyên m c này t p trung
vào vi c mô hình hoá, không ph i là vào ph ng th c, chúng ta c n i th-ng vào vi c l p s
, nh v y
chúng ta s% v&n các chi ti t c a ng d ng khá l*ng l(o. Các ch c n ng c n b n mà chúng ta s% l p s
ng d ng x lý vay n nh sau:

Ca s

d ng: N p yêu c u vay n

cho


(Submit loan request)

1. M t ng i ng n hoàn t t và trình n p m t n xin vay n qua Internet t i ngân hàng.
2. H th ng ki m tra tính h p l c a thông tin trên n xin vay, ki m tra xem nó ã chính xác và y
nh t ch a.
3. H th ng chuy n ti p yêu c u vay ti n n m t phòng tín d ng bên ngoài nh n
c m t báo cáo tín
d ng c a ng i ng n.
4. H th ng tính toán i m s tín d ng c a ng i ng n d a trên báo cáo tín d ng ã tr v .

B t

u

B c u tiên t o ra m t s
tu n t là xác nh xem s
ó có bi u di,n m t t ng tác v i m t th c th bên ngoài hay bên
trong h th ng. N u b n ang mô hình hoá m t k ch b n ca s
d ng, các s
tu n t c a b n th ng s% bi u di,n m t t ng
tác v i m t th c th bên ngoài. N u b n ang mô hình hoá các
giao th c trong m t khung công tác, các s
này có th bi u
di,n m t t ng tác bên ngoài ho c bên trong. Các s
cho các
h th ng con, các l p, và logic c a m t ph ng th c riêng l(
th ng ch# bi u di,n các th c th bên trong. Dù ó là tr ng h p
nào thì ki u t ng tác mà b n ang mô hình hoá s% xác nh ph n
t
u tiên (và ngoài cùng bên trái) trong s

tu n t ó.

ng b l ph n còn l i c a lo t bài
"M t cu n sách bài t p v UML"
Ph n 2: "Logic i u ki n trong các s
tu n t " (06.2001)
Ph n 3: "Logic giao di n ng
trong vi c l p mô hình ca s
d ng" (06.2001)

i dùng

Ph n 4: "Vai trò c a tác nhân" (06.
2002)

M t t ng tác v i m t th c th bên ngoài ch# rõ r ng m t tác
nhân s% là m t bên c a t ng tác ó. M t t ng tác bên trong có th
c m t tác nhân kích ho t (n u các ca
s d ng h th ng con là c s c a t ng tác), nh ng r t có th nó s%
c kích ho t b i m t l p chung g!i là
Sender (bên g i). N u m t tác nhân kh i ng t ng tác này, tác nhân ó s% r i vào lo i hình tác nhân kh i
t o, m t trong b n cá th tác nhân ph) bi n (xin xem V các cá th tác nhân (About actor personalities) bi t
thêm chi ti t).
Chúng ta s% t p trung vào vi c l p s
m t k ch b n cho ng d ng x lý vay n c a chúng ta: ó là ca s
d ng n p yêu c u vay n phác th o trên ây. Hãy chú ý t i các thay )i v i s
tu n t c a chúng ta khi m t
ng i ng n hoàn t t m t n vay ti n tr c tuy n và trình n p nó trên Internet. Trong k ch b n này, ng i
ng n là bên ngoài so v i h th ng và do ó
c i di n b i m t tác nhân. Chúng ta s% b"t u b ng 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


L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

Thêm vào ng

Page 4 of 8

i ch i

Khi tác nhân kh i t o c a t ng tác ã s.n sàng, b c ti p theo là thêm vào các i t ng mà tác nhân này s%
t ng tác v i chúng theo di,n bi n c a k ch b n. Tên c a các i t ng này s% ph n ánh hành vi c a các l p
hay cá th . (Vi c l a ch!n các l p hay ch!n cá th
i t ng mang l i m t ý ngh/a riêng bi t cho s
tu n
t , nh ng tôi s% dành l i vi c th o lu n v s khác bi t gi a hai l a ch!n ó cho l n sau).
i v i k ch b n m&u, chúng ta s% thêm vào hai l p: LoanApplication và LoanRequest. M t n xin vay
ti n là b"t bu c ph i có khi xin vay ti n. Nó ch a thông tin v ng i làm n và kho n ti n mu n vay. M t
yêu c u vay ti n là m t m&u bi u ngân hàng g i n m t phòng tín d ng sau khi nh n
c n xin vay ti n.
Nó ch a m t s thông tin t

n xin vay ti n, c0ng nh m t yêu c u nh n các thông tin v l ch s tín d ng c a
ng i ng n. Vi c thêm hai l p này vào s
tu n t
c th hi n trong Hình 2.
Hình 2. Thêm vào hai l p t

ng tác


L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

Page 5 of 8

N i các nét ch m -- , nét g ch
Các s
tu n t có tính tr c giác i v i h u h t các nhà phát tri n ph n m m. Chúng ánh x các i t ng
và các tác nhân (tr c ngang) v i th i gian (tr c ng). Các thông i p k t n i các i t ng, i t
i t ng
này n i t ng khác xuôi xu ng theo tr c ng nh khi các thông i p xu t hi n theo th i gian. Các thông
i p này
cn iv im t
ng th-ng ng, nét t, b"t ngu n t i m gi a áy c a i t ng hay tác nhân.
ng này g!i là dây treo (lifeline). (N.D: không bi t có ph i ng i t ra thu t ng này d a vào m t liên
t ng khá b t ng sau ây hay không? Nh ng ng i làm vi c trên cao ph i eo m t dây an toàn móc th"t
l ng, buông thõng xu ng theo chi u th-ng ng, nó g!i là (lifeline)).
Trên tr c ngang, chúng ta bi u di,n thông i p b ng các m0i tên ôi khi g!i là các m i tên cu c g i hay m i
tên thông i p. M t m0i tên thông i p h ng t bên g i ( uôi) n bên nh n ( u). Các m0i tên này s d ng
b"t gi hành vi ng c a h th ng. Các cu c g!i th ng b"t u t bên trái và i v h ng bên ph i. Ngh/a là,
m0i tên ban u trong m t t ng tác th ng n t bên trái. Khi chúng ta t o ra m t cá th m i c a m t l p,
chúng ta v% m0i tên tr* n chính l p ó ch không ph i là n dây treo c a nó. B c u tiên trong k ch b n

c a chúng ta là t o ra m t n xin vay ti n m i, vì v y chúng ta s% v% m t m0i tên gi a Applicant và
LoanApplication. B i vì vi c t o ra m t cá th m i trong Java bao g m vi c g!i hàm t o (constructor),
chúng ta có th gán nhãn m0i tên này b ng tên hàm t o và có th g m c các i s c a nó.
Chúng ta v&n ang trong giai o n phân tích c a vòng i phát tri n ph n m m, vì v y chúng ta c n bao g m
thêm thông tin phân tích càng nhi u càng t t. M t trong nh ng nhà phân tích nghi p v c a chúng ta ã nói
r ng chúng ta g!i hành ng t o ra m t n xin vay ti n m i là "hoàn t t n xin vay". N u chúng ta mu n
th t sát úng i v i s
tu n t ang xây d ng này, chúng ta có th tri n khai th c hi n complete nh là
m t ph ng th c t/nh công c ng (public static), trong ó s% g!i hàm t o LoanApplication nh Hình 3.
Hình 3. T o ra LoanApplication

V s

m ts

Khi m t l p ho c cá th nh n

kích ho t
c m t thông i p, nó t o ra m t h p trên dây treo c a

it

ng ti p nh n;


L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

Page 6 of 8

vi c này g!i là m t kích ho t.M t kích ho t bi u di,n dòng i u khi n trong ph ng th c c a bên nh n. Khi

m t thông i p d&n n vi c t o ra m t i t ng, kích ho t u tiên bi u di,n cho logic c a hàm t o. Các
thông i p sau ó s% d&n n vi c t o ra các kích ho t m i.
Sau khi nh n
c m t thông i p, i t ng nh n có th , n l t mình, g i các thông i p n chính nó
ho c n các i t ng khác. i u này th hi n b ng uôi c a các m0i tên, trình bày các thông i p xu t phát
t kích ho t ó và k t thúc t i các kích ho t m i. Khi m t i t ng g!i chính nó, kích ho t m i
c t lên
trên kích ho t c0.
Trong k ch b n c a chúng ta, ng i ng n t ng tác v i n xin vay ti n hai l n, u tiên là hoàn t t nó,
và l n th hai là g i n p. Khi LoanApplication nh n
c thông i p submit nó t ki m tra h p l b ng
cách g i m t thông i p validate n chính nó. N u h p l , nó s% t o ra m t LoanRequest m i g i n
phòng tín d ng. Hình 4 cho th y vi c ki m tra h p l LoanApplication.
Hình 4. Ki m tra h p l LoanApplication

Khi m i tên bay: Cho bi t th i gian trôi qua
Chúng ta s d ng m t m0i tên nghiêng bi u th ã trôi qua m t quãng th i gian áng k gi a kho ng th i
gian m t thông i p
c g i i và th i gian nó
c ti p nh n. Ký pháp này s d ng cho bi t r ng m t
cu c g!i không ph i là nguyên t (N.D: t c là có th phân chia
c). Ví d v các cu c g!i không nguyên t
là các l i g!i ph ng th c thông qua CORBA ho c RMI, ho c các thông i p g i qua m ng.
Trong ví d c a chúng ta, phòng tín d ng là m t h th ng bên ngoài, m t tác nhân có cá th máy ch (xin xem
V các cá th tác nhân bi t thêm chi ti t). Các máy ch th ng không phát ra thông i p, mà úng h n là
yêu c u thông i p g i n chúng -- trong tr ng h p này là yêu c u v m t báo cáo tín d ng,
cg ib ib
ki m tra tín d ng. B ki m tra tín d ng i di n cho phòng tín d ng. Nó theo dõi và chuy n ti p các yêu c u
n phòng tín d ng, theo dõi và nh n ph n h i, và m t khác thi t l p các k t n i gi a ng d ng x lý vay n
và phòng tín d ng. Phòng tín d ng s% nh n yêu c u này và x lý nó theo l ch bi u riêng c a mình. Chúng ta s



L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

d ng m0i tên nghiêng này

bi u di,n th i gian trôi qua, nh Hình 5 d

Page 7 of 8

i ây.

Khi k t thúc m t kích ho t, ph n tr v cho bên g!i là n. Tuy nhiên, trong m t s tr ng h p, b n có th
mu n làm cho ph n tr v hi n ra t ng minh. Các l i g!i tr v t ng minh
c th hi n b ng m t m0i tên
nét t có uôi là bên nh n và u là bên g i. M0i tên tr l i t ng minh th ng
c g"n nhãn b ng giá tr
mà cu c g!i tr v . i v i ví d c a chúng ta, chúng ta ã thêm vào m t m0i tên t ng minh gi a
CreditBureau và CreditChecker. M0i tên này có th
c g"n nhãn CreditReport, vì ó là i t ng
c tr l i t ph ng th c requestCreditReport.
Hình 5. Nh n m t CreditReport

Còn nh ng gì n a
Nh tôi ã nêu ph n u chuyên m c này, các s
tu n t là h u ích i v i vi c mô t hành vi bên trong
c a m t h th ng theo th i gian. Trong bài vi t này, tôi ã a b n qua các b c u tiên c a vi c xây d ng s
tu n t b ng vi c mô hình hoá các t ng tác gi a các i t ng. Trong ph n ti p theo, tôi s% gi i thi u hai
d ng s
tu n t (chung và cá th ) và gi i thích vai trò c a logic i u ki n trong vi c l p s

tu n t , b ng
cách s d ng các ví d rút ra t các ph ng th c Java n gi n. H1n g p b n sau!

Tài nguyên
Martin Fowler (tác gi c a UML Distilled)
c a UML.

a ra m t cái nhìn c a ng

i trong cu c v l ch s kh i

N u b n nghiêm túc mu n tìm hi u v UML b n nên b"t u b ng bài vi t g c c a ba ng i b n
(Booch, Jacobson, Rumbaugh): H ng d n s d ng Ngôn ng Mô hình hoá th ng nh t (lo t bài v
Công ngh
i t ng c a Addison Wesley, 1998).
Ti p theo trong danh sách c t y u c n !c là
1.4 tính n 02.2001).

c t Ngôn ng Mô hình hoá th ng nh t c a OMG (b n

Trang Tài nguyên UML c a Rational cung c p thông tin hi n t i v UML, RUP, và nhi u th n a.
M t cu n sách áng !c v phát tri n theo c tính và Quy trình th ng nh t c a Rational là Mô hình
hoá Java v i màu s c b ng UML (Java Modeling in Color with UML) c a Peter Coad, Eric Lefebvre,

u


L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1

Page 8 of 8


Jeff DeLuca (Prentice Hall, 1999).
• M t cu n sách t t n a v RUP là Quy trình th ng nh t c a Rational: Bài gi i thi u c a c a Philippe
Kruchten (Addison Wesley, 2000).

ôi nét v tác gi
Granville có 13 n m kinh nghi m trong c ng ng h ng i t ng. Ông là ng tác gi c a lo t bài
Advanced Use Case Modeling (Mô hình hoá ca s d ng nâng cao) và ã trình bày các bài h ng d&n t i nhi u
h i ngh công ngh h ng i t ng trên toàn th gi i. Cách ti p c n th c hành n vi c phát tri n h ng i
t ng c a ông là k t qu quá trình làm vi c c a ông v i các công ty, t công ty kh i u trong giai o n non
tr( n m t s nh ng ng i kh)ng l ph n m m ti ng t m nh t. Ông hi n ang gi ng d y các xê mi na, phiên
h ng d&n, các l p h!c v quy trình và ph ng pháp lu n phát tri n lanh l i (agile), công ngh Java, c0ng
nh c v n và giúp + cung c p các d án n ng n).



×