Giáo án - Bài giảng: Công nghệ thông tin: Phân tích thiết kế hướng đối tượng với uml trong lập trình - Pdf 13


1 t r × n h ® é ® µ o t ¹ o

cc

PHÂN TÍCH THIẾT KẾ HƯỚNG ĐỐI TƯỢNG VỚI UML

2

MỤC LỤC

 TRANG

01. L  3
02.  4
03.  5
04.  9
05. Bài 1  11
06. Bài 2  19
07. Bài 3  69
08. Bài 4  80
09. Bài 5  94
10. Bài 6  109
11. Bài 7  116
12. Bài 8  132
13.  170
14.  158
15.  160
15.  162

chp ráp chúng li v t y mng mt s i
n trong th gii máy tính, bn có th chp chúng li v to ng dng
ca mình.
Xin ly mt ví d n: v rút tin mt tu gn  
s là ánh x ci thng
dng s c s c nhn di
 pháp phân tích và thit k ng thc hin theo các thut ng và khái nim
ca phc ng dng (tc là ca doanh nghi mà h thn
phc v), nên nó to s tip cng gia h thng và v thc ngoài i. Trong ví
d bán xe ô tô, mn phân tích thit k và thc hiu xoay quanh các khái nim
n phn mng thi

4
là quá trình cng tác ci dùng, nhà phân tích, nhà thit k, nhà phát trin,
c, chuyên gia k thut, nên li tip cn này khin cho vic giao tip gia
h vc d 
Mt trong nhm quan trng bc nht ct k ng
 ng là tính tái s dng: bn có th to các thành ph  ng) mt ln và dùng
chúng nhiu lc bn có th tái s dng các khi xây dng (hay bn
sao ca nó ) trong mt ngôi nhà , m, b tái s
dng các thành phn trong các thit k 
ca mt h thng k toán, h thng kim kê, hoc mt h tht hàng.
c th nghim k càng trong l s
dng có tác dng gim thiu lc b
thit k và phát trin phn mm.
ng giúp chúng ta x lý các v phc tp trong phát trin phn
mm và to ra các th h phn mm có kh ng và bn chc.
2. Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML)
Ngôn ng mô hình hóa thng nht (Unifield Modeling Language  UML) là mt ngôn ng 
biu ding vi ch 

 Khách hàng tr tin xe
 n cho khách hàng
i vi ví d n OOA s nhn bic các thc th 
 Loi tài khon: ATM (rút tin t ng), Savings (tit kim), Current (bình

 Khách hàng
 Nhân viên
 Phòng máy tính.
 ging trên:
Mt khách hàng mi m mt tài khon tit kim
Chuyn tin t tài khon tit kim sang tài kho
Chuyn tin t tài khon tit kim sang tài khon ATM
Xin chú ý là  n c hai khía cnh: thông tin và cách hong ca
h thng (tc là nhng gì có th xy ra vi nh
Li phân tích bng kiu ánh x i th  tht s m ln ca
ng.
2. Thiết kế hướng đối tượng (Object Oriented Design - OOD):

6
n t chp hng cng tác, mng trong
c th ca mt lp. Các lp là thành viên ca mt cây cu trúc vi mi quan h tha
k.
Mn OOD là to thit k da trên kt qu cn OOA, da trên
nhnh phi chng yêu cu v ng, nhng yêu cu v kh 
thc thi, OOD tp trung vào vic ci thin kt qu ca OOA, tc
cung cp trong khi vm bo tho mãn tt c các yêu cc xác lp.
n OOD, nhà thit k  tc (operations), thuc tính
i quan h ca mt hay nhiu lp (class) và quynh chúng cn phi
u chnh sao cho phù hp vng phát tri thit k
ngân hàng d liu và áp dng các k thut tiêu chun hóa.

tài nguyên cùng s c gng quên mình ca các nhân viên tài gi chng mt ai và
mu gì cu vãn cho mt h thng phn mm hoàn toàn chc cn ti hoc c gng
t ng hóa mt quy trình lm lc.
c khi bt tay vào mt d án, bn phi có m
vi vic nm bt các yêu cu và xut hin khu. Nó hoàn tt mt phát
biu: "H thng mà chúng ta mong mun s c nhng vit giai
n này, chúng ta to nên mt bc tranh v t nhiu gi thuyt s c công
nhn hay loi b. Các hong trong thng bao gm thu thng,
nhn bit ri ro, nhn bit các giao din bên ngoài, nhn bit các các ch
thng cn cung cp, và có th to mt vài nguyên m ng các khái nim
ca h thng có th n t nhiu ngun khác nhau: khách hàng, 
vc, các nhà phát trin khác, chuyên gia v k ngh, các bn nghiên cu tính kh 
vic xem xét các h thn ti. Mt khía cnh cn nhc ti là code vit trong
thi k ng s b "b c vit nhm mm tra hay tr giúp
các gi thuyt khác nhau, ch i th c vit theo kt qu phân tích và thit k
th
an nghiên c, nhóm phát trin h thng cn xem xét các yêu cu ca
doanh nghip (cn dùng h thng), nhng ngun tài nguyên có th s dng, công ngh 
ng ca h i vi h thng mi. Có th thc hin
tho lun, nghiên cu, xem xét khía ci, phân tích kh i-l, phân tích các
ng hp s dng và to các nguyên m xây dng nên mt khái nim cho h th
cùng vi các mm vi ca nó.
n hành to mt phiên bn thô ca lch trình và k
hoch s dng tài nguyên.
Mt n nghiên c  lp nên tp hp các yêu cu (dù  m khái
i vi mt h thng kh c mong mun, k c v n k thut
ln xã hi. Mn nghiên c c thc hin tho  dn ti các h
thc mong mut tin, bt kh m lc  nhng h
thng thc hoàn tt hay s dng.


 Nhn bit reports và nhng output mà h thng mi phi sn sinh
 Thit k forms (v trên giy hay máy tính, s dng công c thit k)
 Nhn bit các thành phn d liu và b to database

9
 c tính các th tc gii thích quá trình x lý t n output.
Kt qu n thit k c T Thit K (Design Specifications). Bc T Thit K
Chi Tit s c chuyn sang cho các l thc hin xây dng phn
mm.
d - Xây dựng phần mềm
n vit lnh (code) thc s, to h thng. Ti vit code thc hin nhng
yêu cc nhà thit k nh si vit code chu trách nhim vit tài
lii thích th tc (procedure) mà anh ta tc vit
 nào và lý do cho vic này.
 m bc vit nên phi tho mãn mi yêu cc trong bn
c T Thit K Chi Tii ving thi phi tin hành th nghim phn
a mình. Phn th nghim n này có th c
chính:
Thử nghiệm đơn vị:
i vit code chy th các pha mình vi d liu gi (test/dummy data).
Vic thc hin theo mt k hoch thi vit code son ra. Mc
n th ng kt qu i.
n th nghi nhic gi là "Th hp trng" (White Box Testing)
Thử nghiệm đơn vị độc lập:
Công vic này do mt thành viên khác trong nhóm trách. Cn chi không có liên
quan trc tin vic vit code c n th nghi m bo tính
c lc th c thc hin da trên k hoch th i vit
code son nên.
e- Thử nghiệm hệ thống
Sau khi các th tc th nghim riêng, cn phi th nghim toàn b h thng. Mi th

Tên bài : KHẢO SÁT HỆ THỐNG
Mã bài : ITPRG3_16.2 Giới thiệu :


Mục tiêu thực hiện:
- 
- 
- 
- 
- case.
Nội dung chính:
I. Giới thiệu UML.
1- 
 phc, mc tiêu cn phân tích h thng là sn xut ra mt
mô hình tng th ca h thng cn xây dng. Mô hình này cn ph c trình bày theo
ng nhìn (View) ci s d h hic. Mô hình
 c s d nh các yêu cu ci vi h thng và
 thi ca d án.
Tm quan trng ci mt cách tht c các
ngành khoa hc k thut t nhiu th k nay. Bt k  n xây dng mt vt th
o nên các bn v  quynh c ngoi hình lc
ho ng ca nó. Chng hn các bn v k thu ng gp là mt dng mô hình quen
thuc. Mô hình nhìn chung là mt cách mô t ca mt vt th  tn ti
trong mt s n nhn thit k n xây dng hoc ch
là mt k hoch. Nhà thit k cn phi to ra các mô hình mô t tt c các khía cnh khác
nhau ca sn phm. Ngoài ra, mt mô hình có th c chia thành nhing nhìn, mi
ng nhìn trong s chúng s mô t mt khía cnh riêng bit ca sn phm hay h thng cn

ng là Simula. Sang na sau ca thp k 1980, các ngôn ng    
Smalltalk và C++ xut hin. Cùng vi chúng, ny sinh nhu cu mô hình hoá các h thng
phn mng. Và mt vài trong s nhng ngôn ng mô hình hoá xut hin
nhu thp k c nhii dùng là:
 
 ect Modeling Technique  OMT
 
 Hewlett- 
 

13
Mn và ngôn ng u có h thng ký hi lý
riêng và công c h tr riêng, khin ny ra cuc tranh lut nh
là cuc tranh lun khó có câu tr li, bi tt c  u có nhm
mm yu riêng. Vì th, các nhà phát trin phn mm nhiu kinh nghing s
dng phi hm mnh ca mi png dng ca mình. Trong thc t,
s khác bit gi và theo cùng tin trình thi
gian, tt c nhm cn li và b sung ln cho nhau. Chính hin thc
c nhi ting nhn ra và
h quynh ngi l tích hp nhm mnh ca m
ra mt mô hình thng nhc công ngh phn mm.
3- Sự ra đời của UML:
Trong bi ci ta nhn thy cn thit phi cung cp mm cn
c chun hoá và thng nht cho ving. Yêu cu c th 
ra mt tp hp chun hoá các ký hiu (Notation) và các bi  nm bt các
quynh v mt thit k mt cách rõ ràng, rành mm
ti mc thc hii s o ca James Rumbaugh, Grady Booch
và Ivar Jacobson. Chính nhng c gng này dn kt qu là xây dc mt Ngôn Ng
Mô Hình Hoá Thng Nht (Unifield Modeling Language  UML).
UML là mt ngôn ng mô hình hoá thng nht có phn chính bao gm nhng ký hiu hình

trong ngôn ng.
 Semantic (Ng a mi bic hiu
th nào khi nm trong hoc không nm trong ng cnh ca các bi ng
khác.
    a bi  sao cho m  a mô
c th hin và mi có th hic.
II Khái niệm mô hình của UML.
UML có th c s dng trong nhin, t phát trin, thit k cho ti thc hin và
bo trì. Vì ma ngôn ng này là dùng các bi  mô t h
thng nên min ng dng ca UML bao gm nhiu loi h th
 Hệ thống thống tin (Information System): Ct gi, ly, bii biu din
i s dng. X lý nhng khong d liu ln có các quan
h phc t  d liu quan h hay
ng.
 Hệ thống kỹ thuật (Technical System): X u khin các thit b k
thu  n thông, h thng quân s, hay các quá trình công nghip.
ây là loi thit b phi x lý các giao tic bit, không có phn mm
chung là các h thng thi gian thc (real time).
 Hệ thống nhúng (Embeded System): Thc hin trên phn cng gn vào
các thit b n thou khi c
thc hin bng vic lp trình mc thp vi h tr thi gian thc. Nhng h
thng không có các thit b 

15
 Hệ thống phân bố c phân b trên mt s máy
cho phép truyn d liu t t cách d dàng. Chúng
 liên lng b  m bo toàn vn d ling
c xây dng trên mt s các k thu    
COM/DCOM, hay Java Beans/RMI.
 Hệ thống Giao dịch (Business System): Mô t m tài nguyên (con

o Acceptance testing: Kim tra tính chp nhc ca h thng
c thc hin bi khách hàng, vic kim tra này thc hi
m tra h thng. III. Khả năng sử dụng UML.

1- UML và các giai đoạn của chu trình phát triển phần
1.1- Giai đoạn nghiên cứu sơ bộ:
ái nim Use Case  nm bt các yêu cu ci s dng).
UML s dng bi  nêu bt mi quan h  giao
tip vi h thng.
 n h
thng s c mô hình hóa song song vi ch i t phía h thng (tc là
c mô hình hóa cùng các mi quan h c
miêu t trong bi Use case ca UML. Mi mc mô t trong tài liu, và nó
s c t các yêu cu ca khách hàng: Anh ta hay ch ta ch u gì  phía h thng mà
không h  n vic ch c thc thi ra sao.
1.2- Giai đoạn phân tích:
n quá trình tru tiên (các lng)
 hin hu trong phm vi vn bic các
lp thành phn ci quan h gia chúng vi nhau, các lp cùng các mi
quan h  c miêu t bng công c bi lp (class diagram) ca UML. S cng tác
gia các lp nhm thc hi c miêu t nh ng
(dynamic models) cn phân tích, ch duy nht các lp có tn ti trong
phm vi v (các khái nim i thc mô hình hóa. Các lp k thu
ti i pháp trong h thng phn mm, ví d  p cho giao dii
dùng, cho ngân hàng d liu, cho s giao tip, trùng hi là mi quan tâm
cn này.
1.3- Giai đoạn thiết kế:

v to ra các bi. Bt ngôn ng
kt hp các phn t 
Mt s nhng thành phn ch yu ca ngôn ng UML:
 Hướng nhìn (view): ng nhìn ch ra nhng khía cnh khác nhau ca h
thng cn phc mô hình hóa. Mng nhìn không phi là mt bn
v, mà là mt s trng hóa bao gm mt lot các bi khác nhau.
Ch qua vi   a mt lo  ng nhìn khác nhau, mi
ng nhìn ch ra mt khía cnh riêng bit ca h thi ta mi có
th to dng nên mt bc tranh hoàn thin v h th
ng nhìn này ni kt ngôn ng mô hình hóa vc chn cho
n phát trin.
 Biểu đồ (diagram): Bi  là các hình v miêu t ni dung trong mt
ng nhìn. UML có tt c 9 loi bi kc s dng trong
nhng s kt h cung cp tt c ng nhìn ca mt h
thng.

18
 Phần tử mô hình hóa (model element): Các khái nic s dng trong
các bi c gi là các phn t mô hình, th hin các khái ning
i tng quen thuc. Ví d 
quan h gia các khái nim này, bao gm c liên kt, ph thuc, khái quát
hóa. Mt phn t c s dng trong nhiu bi khác
 mà mt kí hiu.
 Cơ chế chung:  chung cung cp thêm nhng li nhn xét b sung,
 c ng pháp chung v mt phn t mô
hình; chúng còn cung c   có th m rng ngôn ng
UML cho phù hp vi mnh (mt quy trình, mt t
chc hoc mi dùng).
3- Hướng nhìn (View)
Mô hình hóa mt h thng phc tp là mt ving nht là toàn b h

 ng nhìn song song (concurrency view): ch ra s tn ti song song/
trùng hp trong h thn v giao ting b hóa trong
h thng.
 ng nhìn trin khai (deployment view): ch ra khía cnh trin khai h
thng vào các kin trúc vt lý (các máy tính hay trang thit b c coi là
trm công tác).
Khi bn chn công c  v bi, hãy chn công c nào tu kin d dàng chuyn t
ng nhìn khác. Ngoài ra, cho mmt ch
c thit k  nào, công c i tu kin d dàng cho bn chuyn sang
 xem chc miêu t  nào t phía tác nhân), hoc
chuyng nhìn tri xem ch c phân b ra sao trong cu
trúc vt lý - Nói mt cách khác là nó có th nm trong máy tính nào).
ng nhìn k trên, ngành công nghip phn mm còn s dng c ng nhìn
khác, ví d -ng nhìn logic-vt lý, quy trình nghip v (workflow) và
ng nhìn khác. UML không yêu cu chúng ta phi s d
ng nhìn mà các nhà thit k ci, nên có kh
u công c s d
3.1- Hướng nhìn Use case (Use case View):
ng nhìn Use case miêu t cha h thng s phi cung cc tác nhân t
i. Tác nhân là thc th i h th là mi s
dng hoc là mt h thng nng nhìn dành cho khách hàng,
nhà thit k, nhà phát trii th nghic miêu t qua các bi Use case

20
(use case diagram) và thnh thom c các bi hong (activity diagram).
Cách s dng h thng nhìn chung s c miêu t qua mt long
i mt Use case là mt li miêu t c thù cho m
ca h tht chi).
ng nhìn Use case mang tính trung tâm, bi nt ra ny s phát trin các
ng nhìn khác. Mc tiêu chung ca h thng là cung cp các ch    trong


21
th c thn v giao ting
b hóa các ti
ng nhìn song song giành cho nhà phát trii tích hp h thng, nó bao gm các
bi ng (trng thái, trình tng) cùng các bi thc thi (bi
thành phn và bi trin khai).
3.5- Hướng nhìn triển khai (Deployment View):
Cung nhìn trin khai ch  trin khai v mt vt lý ca h thng,
ví d  liên kt gia chúng vng
nhìn trin khai giành cho các nhà phát trii tích hi th nghim h
thc th hin bng các bi trim s ánh x
các thành phn ca h thng vào cu trúc vt lý; ví d ng
nào s c thc thi trên máy tính nào.
4- Biểu đồ (diagram)
Bi là các hình v bao gm các ký hiu phn t c sp x minh ha
mt thành phn c th hay mt khía cnh c th ca h thng. Mt mô hình h thng
có nhiu loi bi, mi loi có nhiu bi khác nhau. Mt bi là mt thành phn
ca m ng nhìn c th c v  c xp vào mt
ng nhìn. Mt khác, mt s loi bi có th là thành phn ca nhing nhìn khác
nhau, tùy thuc vào ni dung ca bi.
Phn sau miêu t các khái nin nng sau mi loi bi. Tt c các chi tit v
bi, ng cnh ca chúng và s a chúng vi
c miêu t chi ting  ng). Các
bi ly làm ví d  c ly ra t nhiu loi h th ch ra nét phong
phú và kh ng rng khp ca ULM.
4.1- Biểu đồ Use case (Use Case Diagram):
Mt bi Use case ch ra mt s ng các tác nhân ngoi cnh và mi liên kt ca chúng
i vi Use case mà h thng cung cp (nhìn hình 3.2). Mt Use case là mt li miêu t ca
mt ch thng cung cp. Li miêu t ng là mn tài liu,

ví d ca bi lp, ch ra mt bc tranh thc t có th xy ra khi h thng thc thi: bc
tranh mà h thng có th có ti mt th ng s dng chung các
ký hiu ca bi lp, ch tr hai ngoi lc vit vc gi và
tt c các thc th trong mt mi quan h c ch ra (nhìn hình 3.4).
Bi ng không quan trng bng bi lp, chúng có th c s d ví d
hóa mt bi lp phc tp, ch ra vi nhng thc th c th và nhng mi quan h 
thì bc tranh toàn cnh s ra sao. Mt bi c s dng làm
mt thành phn ca mt bi cng tác (collaboration), ch ra li ng x ng gia mt lot
i ng.

Hình 2.4 - Bi lp và bi ng th hin ca lp
4.4- Biểu đồ trạng thái (State Diagram):
Mt bi trng là mt s b sung cho li miêu t mt lp. Nó ch ra tt c các
trng ca lp này có th có, và nhng s kin (event) nào s gây ra s thay
i trng thái (hình 3.5). Mt s kin có th xy ra khi mng t gn
cho nó - ví d  thông báo rng mt khong th hay là
mt s u kic tha mãn. Mt s i trc gi là mt s
chuyển đổi trạng thái (State Transition). Mt chuyi tr có mt hành
u gì phc thc hin khi s chuyi trng thái này din ra.

24
Bi trc v cho tt c các lp, mà ch riêng cho nhng lp có mt s
ng các tra lp b nh i qua
các trng thái khác nhau. Bi tr c v cho h thng tng th. Biu
 trc miêu t chi ting).

Hình 2.5- Mt ví d v bi trng thái
2.5- Biểu đồ trình tự (Sequence Diagram):
Mt bi trình t ch ra mt cng gia mt long (xem hình 3.6).
Khía cnh quan trng ca bi này là ch ra trình t c gi


Hình 2.7 - Mt bi công tác ca mt printer server
4.7- Biểu đồ hoạt động (Activity Diagram):
Mt bi hong ch ra mt trình t lt ca các hong (activity) (hình 3.8).
Bi hoc s d miêu t các hoc thc hin trong mt
th tc, m c s d miêu t các dòng chy hong khác, ví d
t Use case hay trong mt trình t  hong bao gm các
trng, chc t ca mt hong cn phc thc hin (mng
- action). Mt trng s c thc hin xong (khác vi
bi trng thái: mt trng thái ch chuyn sang try ra mt s
kiu khin  y gia các trng liên kt vi nhau.
Bi còn có th ch ra các quyu kin thc thi song song ca
các trng. Bi ngoài ra còn có th cha các loc t p
c gc nhn vn cc thc hin.


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status