Lập mô hình với Java

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 nh ng 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 t ng tác ni b gi a các tác nhân và  i t ng khi mt h th ng thi hành theo thi gian. Hãy theo Granville khi ông to ra mt trong nh ng 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 t ng.  c gi i thiu v i cng ng lp trình h ng  i t ng trong khong thi gian gi a các nm 1995 n 1997, UML ã  c OMG (Object Management Group - Tp oàn Qun lý  i t ng) phê duyt vào cu i nm 1997. Mc dù ã có nhiu tranh cãi khi khi u --...

pdf8 trang | Chia sẻ: honghanh66 | Lượt xem: 949 | Lượt tải: 0download
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 nh ng 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 t ng tác ni b gi a các tác nhân và  i t ng khi mt h th ng thi hành theo thi gian. Hãy theo Granville khi ông to ra mt trong nh ng 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 t ng.  c gi i thiu v i cng ng lp trình h ng  i t ng trong khong thi gian gi a các nm 1995 n 1997, UML ã  c OMG (Object Management Group - Tp oàn Qun lý  i t ng) phê duyt vào cu i nm 1997. Mc dù ã có nhiu tranh cãi khi khi u -- nó ã  c gi i thiu gi a 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 t ng. ( 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 nh ng 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 nh ng 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 l u ý rng tôi gi thit bn ã quen v i ngôn ng Java và có mt kin thc c bn v các ph ng pháp và thut ng phát trin h ng  i t ng. Các khái nim h ng  i t ng s%  c gii thích ng"n g!n, nh ng 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' ph ng 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 ph ng pháp phát trin li kt hp v i UML. Mt trong nh ng ph ng pháp ó là Quy trình th ng nht Rational (RUP- Rational Unified Process); Mt ph ng 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 ph ng thc Gii thích s l c 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 h u í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 t ng 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' ng i s dng cu i cùng nào, t) chc nào, hay h th ng nào mà t ng tác v i, nh ng 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 th c trong m t khung công tác Mt giao thc  c t gi a 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 t ng 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 th ng  c s dng  làm t liu d&n chng cho các t ng 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 gi a 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 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 lp Mt s l p (nh Socket và InetAddress) òi h*i mt chu$i tun t phc tp các li g!i ph ng thc  t ng tác mt cách thích hp. Các chu$i tun t này to ra các giao thc  t ng 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 t ng tác v i nhau, bng cách ó mô t các giao thc cn thit  t ng tác. Lôgic phng th c Các s  tun t là tuyt vi  làm t liu d&n chng cho logic c a ph ng thc. Trên thc t, mt s công c CASE, khi cho tr c mt ph ng thc Java, s% t ng to ra mt s  tun t. Vic lp s  tun t có th dùng  thit k mt ph ng thc trong t ng lai hoc  làm t liu d&n chng cho dòng x lý c a mt ph ng 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 nh ng 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 nh ng 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 nh ng 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 l u bên ngoài. Tác nhân tip nhn th ng nhn  c các thông ip t các  i t ng trong h th ng nh ng th ng 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, ng i 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 ph ng 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: N p yêu cu vay n (Submit loan request) 1. Mt ng i 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 ch a. 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 ng i ng n. 4. H th ng tính toán im s tín dng c a ng i 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 t ng 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 th ng s% biu di,n mt t ng 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 t ng 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 ph ng thc riêng l( th ng ch# biu di,n các thc th bên trong. Dù ó là tr ng hp nào thì kiu t ng 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 t ng 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 t ng tác ó. Mt t ng 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 t ng tác), nh ng 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 t ng 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 ng i ng n hoàn tt mt n vay tin trc tuyn và trình np nó trên Internet. Trong kch bn này, ng i 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 ng i 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 t ng tác ã s.n sàng, b c tip 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 bin c a kch bn. Tên c a các  i t ng 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 t ng mang li mt ý ngh/a riêng bit cho s  tun t, nh ng tôi s%  dành li vic tho lun v s khác bit gi a 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 ng i 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 ng i 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 t ng 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 t ng 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 t ng, i t  i t ng này n  i t ng 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 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 bit có phi ng i t ra thut ng này da vào mt liên t ng khá bt ng sau ây hay không? Nh ng ng i làm vic trên cao phi eo mt dây an toàn móc  th"t l ng, 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 th ng 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 t ng tác th ng 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 gi a 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 nh ng 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 ph ng 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  m t 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 t ng 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 ph ng thc c a bên nhn. Khi mt thông ip d&n n vic to ra mt  i t ng, 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 t ng nhn có th, n l t mình, gi các thông ip n chính nó hoc n các  i t ng 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 t ng 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, ng i ng n t ng 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 gi a 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 ph ng 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 th ng không phát ra thông ip, mà úng hn là yêu cu thông ip gi n chúng -- trong tr ng 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 gi a 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 tr ng hp, bn có th mu n làm cho phn tr v hin ra t ng minh. Các li g!i tr v t ng 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 t ng minh th ng  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 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 li t ph ng 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à h u í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 t ng tác gi a các  i t ng. 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 ph ng 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 ng i 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 ng i bn (Booch, Jacobson, Rumbaugh): H ng d n s dng Ngôn ng Mô hình hoá thng nht (lot bài v Công ngh  i t ng 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 n a.  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 v i 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 n a v RUP là Quy trình thng nht ca Rational: Bài gi i 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 t ng. Ô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 t ng trên toàn th gi i. Cách tip cn thc hành n vic phát trin h ng  i t ng 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 nh ng ng i 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à ph ng 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:

  • pdfj_jmod0508_0966.pdf
Tài liệu liên quan