1
1
PHÂN TÍCH THIT K THNG
NG I TNG
GVGD: Lê Th Bích Hng
Khoa CNTT - Trng i hc Nha Trang
Email:
2
Mc tiêu
Trang b cho sinh viên k ng phân tích và
thit k t h thng theo hng i tng
ng các mô hình UML
ng công c thit k mô hình UML nh
Rational Software Architecture, Power
Designer…
ánh giá:
Chuyên cn: 5%
Bài tp: 10%
Kim tra: 25%
Thi: 60%
2
3
Tài liu tham kho
Phát trin h thng hng i tng vi UML
2.0 và C++ - Nguyn Vn Ba, NXB HQGHN,
2005
Phân tích thit k ng i tng bng UML
- ng V c, NXB Giáo dc, 2002
Trang web ca OMG: www.omg.org
UML in a nutshell – Alhir S., O’Reilly &
Associates 1998
…
4
Ni dung chng trình
Chng 1: Tng quan v phân tích thit k
thng
Chng 2: Khái quát v UML
Chng 3: Bi Use Case
Chng 4: Bi p
Chng 5: Mô hình ng
Chng 6: Mô hình ng (tt)
Báo cáo bài tp ln
3
5
Chng 1: Tng quan v phân
tích thitkhthng
6
Ni dung
Khái quát vòng i phát trin h thng thông
tin
Các cách tip cn phân tích và thit k
thng
Các khái nim c n ca hng i tng
4
7
Nhng khó khn khi phát trin
phnmm
Cha thu hiu yêu cu, hoc hiu lm
Yêu cu thng thay i trong thi gian phát
trin.
Yêu cu thng c miêu t ng vn bn,
dài dòng, khó hiu.
i quân phát trin phn mm rt khó nhn
thc th áo các mi quan h ti n và
phc tp c c th hin chính xác trong
các ng dng ln.
Kh ng nm bt các d liu phc tp ca
con ngi (ti cùng mt th m) là có hn.
8
Tintrìnhphnmm
Tin trình phn mm là phng cách sn xut
ra phn mm vi các thành phn ch u bao
m:
Mô hình vòng i phát trin phn mm
Các công c tr cho phát trin phn mm
Nhng ngi trong nhóm phát trin phn mm.
5
9
Planning
Requirements Determination
Conceptual Design
Physical Design
Construction and/or Purchase (prototype)
Conversion - old to new
Implementation
Training
Evolution - maintenance & enhancements
Analysis
Design
Implementation
Deployment
Software Development Life Cycle –SDLC
10
Nghiên cusb(Planning)
p k hoch cho d án
Kh ng d án
Thit l i ng nhân viên cho vic kh ng d án
Thit lp quan h i khách hàng
p k hoch cho d án
Mô t phm vi ca d án
Chia d án thành các tác v có th thc hi c
c lng tài nguyên, lp k hoch tài nguyên
ánh giá ri ro
p k hoch hi hp
c lng s chi phí
Thc thi d án: giám sát tin trình trong k hoch
6
11
Nghiên cusb
Nhn bit các chc nng chính ca h thng
ánh giá s i ro
Xem xét các yêu cu, các ngun tài nguyên có
th ng
Tho lun, xem xét các khía cnh thng mi,
phân tích kh ng li l, ánh giá m i
ro
Phi tr c câu hi: “Có nên phát trin
thng này hay không?”
12
Phân tích (Analysis)
Xác nh yêu cu (Determining Requirement)
Phng vn và lng nghe
a ra các câu hi phng vn
Câu hi Open-ended
Câu hi closed-ended
Xác nh tng th thng cn làm nhng gì
thng li các yêu cu: bng cách xây dng
mô hình x lý
Xây dng mô hình d liu quan nim
7
13
Thitk(Design)
Phi tr i câu hi: “H thng làm cách nào
tha mãn các yêu cu”
Thit k menu, form nhp, báo cáo (report)
Thit k logic và vt lý các thành phn d liu
a h thng o database
Thit k các chc nng x lý ca h thng
14
Thc hin (Implementation)
Xây dng phn mm
Vit code theo yêu cu quy nh sn
Vit tài liu gii thích rõ các chng trình, th c, hàm
Kim nghim chng trình ch úng
Th nghim h thng
Th nghi n v
Th nghim tích hp (tích hp nhiu thành phn)
Th nghim toàn b thng
Khách hàng th nghim (v chp nhn)
8
15
Trin khai (Deployment)
Thc hin trin khai
Hun luyn ngi s ng
o các file d liu cn thit
o trì nâng cp
Ho ng bo trì tùy thuc vào s thay i ca
môi trng s ng
Các h thng khác nhau có nhng m o
trì khác nhau
16
Mô hình thác nc (Waterfall model)
Nghiên cu S
Xácnhyêucu
Thit k quan nim
Thit k logic
Thit k t lý
Xây dng phn mm
ào to
Analysis
Design
Th nghim h thng
Implementation
Deployment
o trì-Nâng cp
9
17
Mô hình thác nc
m
Có vòng lp, cho phép tr pha tr a
cha khi phát hin li hoc khi có thay i.
o trì: tt c các pha trong chu trình c
vit tài liu cn thn và c kim tra trc khi
chuyn sang pha tip theo.
Khuy m
n phm phn mm cui cùng có th không tha
mãn nhu cu thc s a khách hàng
18
Nhng thành viên trong nhóm phát
trin PM
Nhà phân tích (Analyst)
Nghiên cu yêu cu ca khách hàng nh
ngha 1 phm vi bài toán
Nhn dng nhu cu t chc
Xác nh nhu cu ca nhân lc
Xác nh phng pháp và công ngh
Thit k u trúc Database
Nhà thit k (Designer)
Giao din chng trình (menu, form, report)
Quy nh các yêu cu v phn cng và phn
m
10
19
Nhng thành viên trong nhóm phát
trin PM
Chuyên gia lnh vc (Domain Expert)
p trình viên (Programmer)
Ngi dùng (User).
20
Giihncahthng
11
21
Các cách tipcnphântíchhthng
Phng pháp hng chc nng
Phng pháp hng i tng
22
Phng pháp hng chc nng
Phân rã các chc nng ca ngi dùng thành các
chc nng nh n
n v nh nht gi là th c hay hàm
thng hoàn chnh khi các chc nng cng hoàn
chnh và không c thay i theo thi gian
Chc nng chính
Chc nng con 1 Chc nng con 2
Chc nng
con 1.1
Chc nng
con 1.2
Chc nng
con 2.1
Chc nng
con 2.2
12
23
Phng pháp hng chc nng
m
Phân tích thit k rõ ràng
Chng trình sáng sa d hiu
Nh m
Ch quan tâm n vic qun lý d liu mà h thng cn
u tr (nhp xut thông tin)
p trung vào thông tin mà không quan tâm n nhng
gì xy ra vi thông tin và cách ho ng ca h thng
p nhiu khó khn khi h thng thng xuyên thay i
các nguyên tc nghip v.
Không phù hp cho phát trin các phn mm ln
24
Phng pháp hngi tng
Xem các thành phn trong h thng nh các
i tng ngoài i thc
ng dng có th chia thành các thành phn
nh i là i tng, sau ó chúng c tích
p li thành ng dng
13
25
Phng pháp hngi tng
m
tr ng li mã ngun
Phù hp vi các h thng ln: Các i tng ho ng
c lp và ch thc hin hành ng khi nh c yêu
u t các i tng khác
Gim li, tng t thit k và phát trin phn mm
26
Các nguyên tccbnca hngi
ng
Object Orientation
Abstraction Encapsulation Modularity Hierarchy
14
27
Các nguyên tccbnca hngi tng
Tru tng hóa (Abstraction)
Các lp s c tru tng hóa nhiu m o
thành mt s các l c k tha ln nhau
Tính óng gói (Encapsulation) và n du thông tin
Các i tng có th có nhng phng thc hoc
thuc tính riêng mà các i tng khác không th
ng c
Tính modul hóa (Modularity)
Các bài toán s c phân chia thành nhng v
nh n, n gin và qun lý c
Tính phân cp (Hierarchy)
u trúc chung ca mt h thng hng i tng là
ng phân cp theo các m tru tng t cao n
thp
28
Phân tích hng i tng (Object Oriented
Analysis)
Thit k ng i tng (Object Oriented
Design)
p trình hng i tng (Object Oriented
Programming)
Các giai on PTTK hngi tng
15
29
Giai on phân tích hngi tng
(OOA)
Giai n phát trin mt mô hình chính xác ca vn
, có thành phn là các i tng có thc và d hiu
i vi ngi s ng
Trong giai n này, v c trình bày bng các
thut ng ng ng vi các i tng có thc
Mô hình thit k cha các thc th trong mt vn
cóthcvàginguyêncácmuhìnhvutrúc,
quan h ng nh hành vi ca chúng
30
Giai on phân tích hngi tng
(OOA)
Ví d: i vi ví d nhà bng l, giai n phân tích
nhn bi c các thc th nh:
Loi tài khon: ATM (rút tin t ng), Savings (tit
kim), Current (bình thng), Fixed (u t),
Khách hàng
Nhân viên
Phòng máy tính
ng tác và quan h gia các i tng trên:
t khách hàng mi m t tài khon tit kim
Chuyn tin t tài khon tit kim sang tài khon
u t
Chuyn tin t tài khon tit kim sang tài khon
ATM
16
31
Giai on thitkngi tng (OOD)
Trong giai n OOD, nhà thit k nh ngha
các chc nng, th c (operations), thuc tính
(attributes) cng nh i quan h a mt
hay nhiu lp (class) và quy nh chúng cn
ph u chnh sao cho phù hp vi môi
trng phát trin
OOD cng là giai thit k ngân hàng
liu và áp dng các k thut tiêu chun hóa
32
Giai onlp trình hngi tng
(OOP)
Giai n xây dng phn mm có th c
thc hin s ng k thut lp trình hng i
ng
t vài ngôn ng ng i tng thng
c nhc ti là C++, C# và Java
17
33
i tng
p
Thuc tính
Phng thc
Thit k i tng
Các khái nimcbn
34
i tng là gì?
18
35
i tng là gì?
i tng là 1 thc th có
thuc tính và hành vi (phng
thc)
i tng là:
Thc th th (tangible)
hay
Thc th tru tng
Danh sách liên kt
ng 1 hay 2 chiu (ma
trn), chui ký t,…
t khái nim,…
36
Cácctrngci tng
i tng có
cha:
Tên i tng
Các thuc tính mô
trng thái c i
ng
Các thao tác hay
phng thc là các
chc nng mà i
ng ó có
Change
Address
Print
Balance
List all
Update
Balance
Change
Phone No
Change
Name
Create
Customer
Delete
Customer
Name
Jo
Address
Here
Phone No
555
Balance
$1.49
Customer
Customer
19
37
Lp (Class)
p là 1 tp hp các i tng có cùng tp
thuc tính (attributes), tp phng thc
(operations), các quan h (relationships), và
ng ngha (semantics)
Các thành phn ca lp:
Professor
name
empID
create( )
save( )
delete( )
change( )
Class Name
Attributes
Operations
38
Lpvài tng
p là nh ngha t i
ng
nh ngha cu trúc
và hành vi ca các i
ng trong lp
c xem nh 1
“khuôn mu úc ra
i tng
Các i tng có chung
kiu thuc tính và các
phng th c
nhóm li to thành lp
i tng là th hin
(instance) ca lp
Các i tng
(Objects)
Class
Xe ô tô
20
39
Thuctínhcalplàgì?
p các thành phn d liu mô t và phân bit các
c trng c i tng thuc v p
Th hin di dng d liu
c tham gia x lý tính toán bi các phng thc
a lp
Thuc tính cng có th là i tng
Kiu thuc tính
i thuc tính có 1 tên và thuc v 1 kiu d liu duy
nht
40
Thuc tính hay i tng?
ulàdanhtvàcótên
Tuy nhiên
Thuc tính là c trng c i tng
Thuc tính mô t i tng
u gp 1 danh t mà cha phân bi c
thuc tính hay i tng
Xác nh các tính cht mô t cho danh t ó!!!
21
41
Phng thc
Là chc nng hoc hành
ng mà i tng có th
thc hin
lý các thành phn d
liu che du bên trong lp
42
Cách xác nhi tng
Tìm hiu yêu cu
Tìm hiu, quán trit các yêu c t ra ca bài toán
Phân tích bài toán xác nh c danh sách i
ng
Phân tích i dung mô t bài toán m nhng danh
ch ngi, ch t, ch kin
Phân tích các h thông thc và các tài liu h
mô t thng n vi h thng cn xây dng
a vào kinh nghim và kin thc a ngi lp
trình xác nh các i tung
Chú ý:
c này không nên quan tâm n nhim v bài
toán mà ch quan tâm n yu t o thành i
ng
22
43
Phân tích chi tit
Phân tích bài toán
Phân tích trong ni dung bài toán, c ng xác
nh các danh t.
các danh t này có th xác nh các lp
trong bài toán.
t nhiên ch n các danh t n thit
các ng t, xác nh các tác v n x lý
trên lp này.
44
Víd1
Ví d: Cho 1 ng tròn bán kính R. Tính chu
vi và din tích ca hình tròn.
Bài toán này có 2 danh t là “ng tròn”và“Bán
kính”. ng tròn chính là class, còn bán kính ch
là 1 thuc tính ca class ng tròn bi vì bán kính
ch là 1 i lng v giá tr chiu dài, không phi là
class.
Hai ng t hay hai tác v n x lý là “Tính din
tích”và“Tính chu vi ca hình tròn” chính là 2 thành
phn phng thc ca class ng tròn
23
45
Thitkli tng
Xác sinh s ban u các lp và mi quan h a
các lp trong s tha k.
Ví d: mô phng s ho ng c ng h có 3 kim: ng h
bao gm có m ng h (class FACE) và các kim ng h
(class KIM) và class CLOCK tha k 2 class trên
Xác nh thành phn d liu và thành phn phng
thc ca lp.
i 1 thành phn d liu hay hàm, phi xác nh kiu
liu ca thành phn d liu và tham s + kiu d
liu tr a các thành phn hàm
i thành phn có quy nh: private, public,
protected….
46
Thitkli tng (tt1)
Không quan tâm n chi tit ca tng hàm, ch xác nh
u vào và u ra ca tng phng thc
i vi các thành phn d liu ca lp, ch chn các
thành phn (thuc tính) cn thit cho class
1 i tng có th có nhiu thuc tính tuy nhiên tu theo tng
chng trình mà s thuc tính phi chn cn thit cho l ó
p PTB2 có các thành phn d liu là: a, b, c, x1, x2, delta, x.
dàng thy rng delta và x b tha.
u ý:
p nên c tìm trong phm vi bài toán cn gii quyt
Tên lp phi gi nh
24
47
Thitkli tng (tt2)
Thành phn d liu ph c s ng bi 1 trong các
phng thc ca lp.
Ví d i tng SINHVIEN có nhiu thuc tính nh hoten,
msinh, gii tính,…
Thit k tha k a các lp: xem các lp nào tha
p nào to thành mô hình phân cp tha k.
Xem xét áp dng tính a hình (polymorphism) nu có ca
ng dng.
48
Thitkli tng (tt3)
Xác nh cách thc hin hoc thut gii ca tng
phng thc bng mã gi (peseudo code)
Thit k constructor và destructor nu cn thit