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<br />
<br />
<br />
<br />
<br />
L p mô hình v i Java: M t cu n sách bài t p v<br />
UML, Ph n 1<br />
M c : Nh p môn<br />
Granville Miller, Tác gi<br />
<br />
11 09 2009<br />
<br />
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<br />
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<br />
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<br />
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<br />
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í<br />
d .<br />
<br />
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<br />
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<br />
n 1997, UML ã c OMG (Object Management Group - T p oàn Qu n lý i t ng) phê duy t vào<br />
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í<br />
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.<br />
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.<br />
( bi t thêm chi ti t v l ch s c a UML, xem Tài nguyên.)<br />
<br />
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<br />
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.<br />
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<br />
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.<br />
<br />
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<br />
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<br />
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ô<br />
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<br />
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à<br />
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<br />
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.<br />
<br />
V các s tu n t<br />
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á<br />
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<br />
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<br />
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<br />
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<br />
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:<br />
Các k ch b n ca s d ng<br />
Các giao th c trong m t khung công tác V các cá th tác nhân (actor<br />
Các h th ng con personalities)<br />
Các l p Cá th tác nhân có th h u ích trong<br />
Lôgic c a ph ng th c vi c phát hi n và xác nh các tác nhân<br />
có th tham gia vào m t k ch b n ca s<br />
Gi i thích s l c v t ng ch c n ng nói trên ây s% c trình d ng. M t tác nhân có th có nhi u cá<br />
L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1 Page 2 of 8<br />
<br />
<br />
<br />
bày theo th t . th trong m t ca s d ng và xuyên<br />
K ch b n ca s d ng nhi u ca s d ng. Cho n nay, b n cá<br />
th tác nhân khác nhau ã c xác<br />
i v i ng d ng m&u c a chúng ta, chúng ta s% s d ng các s nh nh là các c i ti n ho c b n m&u<br />
tu n t mô hình hoá m t k ch b n ca s d ng. Ca s d ng là (stereotype) i v i c t UML: tác<br />
m t nhi m v n l( c th c hi n b i m t tác nhân khi t ng nhân kh i t o (initiator), máy ch , tác<br />
tác v i ng d ng c a b n nh m n m t m c tiêu ã ch# rõ. M t nhân ti p nh n (receiver), và tác nhân<br />
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 xúc ti n (facilitator). Do các cá th tác<br />
h th ng nào mà t ng tác v i, nh ng l i bên ngoài, ng d ng nhân có th c ph n ánh trong các s<br />
c a b n. (Xem ph n V các cá th tác nhân tìm hi u v b n cá tu n t , b n nên làm quen v i các<br />
th tác nhân; nh n c th o lu n sâu h n v các k ch b n ca ch c n ng c a chúng.<br />
s d ng, xin xem ph n Tài nguyên.) M t tác nhân kh i t o là m t<br />
th c th ngoài mà a m t hành<br />
Các giao th c trong m t khung công tác vi h th ng nào ó vào ho t<br />
ng. Các tác nhân kh i t o có<br />
M t giao th c c t gi a m t khung công tác và các thành th yêu c u các d ch v ho c t o<br />
ph n có th thay th l&n nhau c g!i là các qu n th ra các s ki n. Trong các s<br />
(ensembles). Vi c hi u bi t v các t ng tác mà m t khung công tu n t n i có m t các tác nhân,<br />
tác òi h*i s% giúp +cho vi c phát tri n các qu n th m i. S các tác nhân kh i t o kh i ng<br />
tu n t th ng c s d ng làm t li u d&n ch ng cho các chu$i s ki n.<br />
t ng tác này. Các cá th máy ch bên ngoài<br />
Các h th ng con cung c p d ch v cho các bên<br />
khác. Các máy ch giúp +h<br />
Các d án l n c phân chia thành các m nh nh* h n, d, qu n th ng trong vi c t cm c<br />
lý h n g!i là các h th ng con. Các giao di n gi a các h th ng ích c a nó b ng cách cung c p<br />
con là r t quan tr!ng i v i vi c tích h p úng "n chúng vào cái ch c n ng ho c thông tin t bên<br />
t)ng th l n h n, ó là h th ng. S tu n t c s d ng ngoài. Nhi u h th ng bên ngoài,<br />
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 g m c h i u hành là các cá<br />
con. th máy ch . Các máy ch có xu<br />
h ng thu nh n các thông i p<br />
Các l p nh ng h u nh không t o ra<br />
chúng.<br />
M t s l p (nh Socket và InetAddress) òi h*i m t chu$i Cá th tác nhân ti p nh n thu<br />
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 nh n thông tin t h th ng.<br />
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 Chúng có th cung c p các d ch<br />
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 v nh ng chúng làm vi c ó m t<br />
c s d ng mô t vi c s d ng m t l p ho c nhóm các l p cách th ng. K t qu là chúng<br />
t ng tác v i nhau, b ng cách ó mô t các giao th c c n thi t có th không mang l i giá tr cho<br />
t ng tác. h th ng nh ng s% mang l i giá<br />
tr cho các tác nhân khác. Ví d<br />
Lôgic ph ng th c v m t tác nhân ti p nh n là m t<br />
kho d li u ho c h th ng sao<br />
Các s tu n t là tuy t v i làm t li u d&n ch ng cho logic<br />
l u bên ngoài. Tác nhân ti p<br />
c a ph ng th c. Trên th c t , m t s công c CASE, khi cho<br />
nh n th ng nh n c các<br />
tr c m t ph ng th c Java, s% t ng t o ra m t s tu n t .<br />
thông i p t các i t ng trong<br />
Vi c l p s tu n t có th dùng thi t k m t ph ng th c<br />
h th ng nh ng th ng không<br />
trong t ng lai ho c làm t li u d&n ch ng cho dòng x lý c a<br />
t o ra chúng.<br />
m t ph ng th c hi n hành.<br />
Tác nhân xúc ti n (facilitator) là<br />
m t tác nhân th c hi n m t hành<br />
ng thay m t m t tác nhân<br />
khác. M t ví d v m t tác nhân<br />
xúc ti n là m t nhân viên c a<br />
V ng d ng m u hàng cho thuê video, ng i cho<br />
thuê các video dành cho khách<br />
Chúng ta s% tìm hi u v cách l p s tu n t v i s giúp +c a hàng.<br />
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<br />
<br />
<br />
<br />
m t ng d ng x lý vay n m&u. Do chuyên m c này t p trung<br />
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<br />
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 cho<br />
ng d ng x lý vay n nh sau:<br />
<br />
Ca s d ng: N p yêu c u vay n (Submit loan request)<br />
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.<br />
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<br />
nh t ch a.<br />
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<br />
d ng c a ng i ng n.<br />
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 .<br />
<br />
<br />
<br />
<br />
B t u<br />
B c u tiên t o ra m t s tu n t là xác nh xem s ng b l ph n còn l i c a lo t bài<br />
ó 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 "M t cu n sách bài t p v UML"<br />
trong h th ng. N u b n ang mô hình hoá m t k ch b n ca s Ph n 2: "Logic i u ki n trong các s<br />
d ng, các s tu n t c a b n th ng s% bi u di,n m t t ng tu n t " (06.2001)<br />
tác v i m t th c th bên ngoài. N u b n ang mô hình hoá các<br />
giao th c trong m t khung công tác, các s này có th bi u Ph n 3: "Logic giao di n ng i dùng<br />
di,n m t t ng tác bên ngoài ho c bên trong. Các s cho các trong vi c l p mô hình ca s<br />
h th ng con, các l p, và logic c a m t ph ng th c riêng l( d ng" (06.2001)<br />
th ng ch# bi u di,n các th c th bên trong. Dù ó là tr ng h p<br />
nào thì ki u t ng tác mà b n ang mô hình hoá s% xác nh ph n Ph n 4: "Vai trò c a tác nhân" (06.<br />
t u tiên (và ngoài cùng bên trái) trong s tu n t ó. 2002)<br />
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<br />
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<br />
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à<br />
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<br />
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<br />
thêm chi ti t).<br />
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<br />
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<br />
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<br />
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<br />
thêm tác nhân này, Applicant, vào s , nh trong Hình 1.<br />
<br />
Hình 1. Thêm vào ng i ng n<br />
L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1 Page 4 of 8<br />
<br />
<br />
<br />
<br />
Thêm vào ng i ch i<br />
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%<br />
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<br />
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<br />
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).<br />
<br />
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<br />
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<br />
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.<br />
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<br />
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.<br />
<br />
Hình 2. Thêm vào hai l p t ng tác<br />
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<br />
<br />
<br />
<br />
<br />
N i các nét ch m -- , nét g ch<br />
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<br />
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<br />
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<br />
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.<br />
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<br />
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<br />
l ng, buông thõng xu ng theo chi u th-ng ng, nó g!i là (lifeline)).<br />
<br />
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<br />
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<br />
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à,<br />
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,<br />
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<br />
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à<br />
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),<br />
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ó.<br />
<br />
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<br />
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<br />
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<br />
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à<br />
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.<br />
<br />
Hình 3. T o ra LoanApplication<br />
<br />
<br />
<br />
<br />
V s m ts kích ho t<br />
Khi m t l p ho c cá th nh n 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;<br />
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<br />
<br />
<br />
<br />
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<br />
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<br />
thông i p sau ó s% d&n n vi c t o ra các kích ho t m i.<br />
<br />
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ó<br />
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<br />
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<br />
trên kích ho t c0.<br />
<br />
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ó,<br />
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<br />
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<br />
phòng tín d ng. Hình 4 cho th y vi c ki m tra h p l LoanApplication.<br />
<br />
Hình 4. Ki m tra h p l LoanApplication<br />
<br />
<br />
<br />
<br />
Khi m i tên bay: Cho bi t th i gian trôi qua<br />
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<br />
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<br />
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<br />
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.<br />
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<br />
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à<br />
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<br />
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<br />
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<br />
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<br />
L p mô hình v i Java: M t cu n sách bài t p v UML, Ph n 1 Page 7 of 8<br />
<br />
<br />
<br />
d ng m0i tên nghiêng này bi u di,n th i gian trôi qua, nh Hình 5 d i ây.<br />
<br />
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<br />
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<br />
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<br />
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<br />
CreditBureau và CreditChecker. M0i tên này có th c g"n nhãn CreditReport, vì ó là i t ng<br />
c tr l i t ph ng th c requestCreditReport.<br />
<br />
Hình 5. Nh n m t CreditReport<br />
<br />
<br />
<br />
<br />
Còn nh ng gì n a<br />
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<br />
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<br />
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<br />
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<br />
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!<br />
<br />
<br />
<br />
Tài nguyên<br />
Martin Fowler (tác gi c a UML Distilled) a ra m t cái nhìn c a ng i trong cu c v l ch s kh i u<br />
c a UML.<br />
<br />
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<br />
(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<br />
Công ngh i t ng c a Addison Wesley, 1998).<br />
<br />
Ti p theo trong danh sách c t y u c n !c là c t Ngôn ng Mô hình hoá th ng nh t c a OMG (b n<br />
1.4 tính n 02.2001).<br />
<br />
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.<br />
<br />
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<br />
hoá Java v i màu s c b ng UML (Java Modeling in Color with UML) c a Peter Coad, Eric Lefebvre,<br />
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<br />
<br />
<br />
<br />
Jeff DeLuca (Prentice Hall, 1999).<br />
<br />
• 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<br />
Kruchten (Addison Wesley, 2000).<br />
<br />
<br />
<br />
ôi nét v tác gi<br />
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<br />
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<br />
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<br />
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<br />
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<br />
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<br />
nh c v n và giúp + cung c p các d án n ng n).<br />