Bài giảng Phân tích thiết kế hệ thống hướng đối tượng - Nguyễn Thanh Bình
Phân tích và thiꢀt kꢀ hꢁ
thꢂng hꢃꢄng Čꢂi tꢃꢅng
Nguyꢆn Thanh Bình
Khoa Công Nghꢀ Thông Tin
Trꢁꢂng ꢃꢄi hꢅc Bách khoa, ꢃꢄi hꢅc ꢃà Nꢆng
N i dung (1)
¢ Các khái niꢀm hꢁꢉng Čꢈi tꢁꢊng
¢ T(ng quan v+ ngôn ng, mô hình hóa UML
¢ UML trong tiꢇn trình phát tri3n ph4n m+m
¢ Mô hình hoá yêu c4u
¢
Bi3u Č7 ca s9 d:ng
¢ Mô hình hoá khái niꢀm
¢ Bi3u Č7 hoꢄt Č ng
¢ Bi3u Č7 trꢄng thái
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
2
1
N i dung (2)
¢ Bi3u Č7 lꢉp
¢ Bi3u Č7 tꢁ=ng tác
¢
Bi3u Č7 tu4n t>
¢
Bi3u Č7 c ng tác
¢ Mô hình hoá kiꢇn trúc
¢
Bi3u Č7 gói
¢
Bi3u Č7 cài Č@t
¢ Mã hoá
¢ Bng d:ng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
3
Tài liꢀu tham khCo
¢
G. Booch, J. Rumbaugh, I. Jacobson, The Unified Modeling Language
User Guide, Addision-W esley, 1999.
¢
Craig Larman, Applying UML and Patterns: An Introduction to
Object-Oriented Analysis and Design and Iterative Development,
Third Edition, Addision-W esley, 2004.
¢
¢
¢
¢
Pierre-Alain Muller, Modélisation objet avec UML, Eyrolles, 1997.
Bernard Boigelot, Cours de l‘Ingénierie du logiciel orienté-objet.
Olivier Gerbe, Cours UML, IFI, 2000.
UML applied œ Object Oriented Analysis and Design using the UML,
Ariadne training, 2000.
¢
¢
ꢃ@ng V^n ꢃ_c, Giáo trình nh`p môn UML, NXB Lao Č ng xã h i,
2003.
Nguydn V^n Ba, Phát tri3n hꢁꢉng Čꢈi tꢁꢊng vꢉi UML 2.0 và C++,
NXB ꢃꢄi hꢅc Quꢈc gia Hà n i, 2005.
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
4
2
Các khái niꢁm c b"n v# hꢃꢄng
Čꢂi tꢃꢅng (1)
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
5
N i dung trình bày
¢ Hꢁꢉng ch_c n^ng
¢ Hꢁꢉng Čꢈi tꢁꢊng (HꢃT)
¢ ꢃꢈi tꢁꢊng
¢ Lꢉp
¢ Các tính chjt c= bCn cka HꢃT
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
6
3
Hꢁꢉng ch_c n^ng
¢ D>a vào các ch_c n^ng cka hꢀ thꢈng
¢
Hꢀ thꢈng là t`p hꢊp các ch_c n^ng
¢ Chia nhl các ch_c n^ng và làm mmn d4n
¢
Hꢀ thꢈng g7m các hꢀ thꢈng con
¢
Làm chk Č ph_c tꢄp
¢ Các ch_c n^ng trao Č(i vꢉi nhau bnng
truy+n tham sꢈ ho@c d, liꢀu (chong hꢄn biꢇn
toàn c:c) dùng chung
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
7
Hꢁꢉng ch_c n^ng
¢ Phân cjp ch_c n^ng
Hꢀ thꢈng
Ch_c n^ng 1
Ch_c n^ng 2
Ch_c n^ng 1.1
Ch_c n^ng 1.2
Ch_c n^ng 2.1
Ch_c n^ng 2.2
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
8
4
Hꢁꢉng ch_c n^ng
¢ ru Či3m
¢
Phân tích Čꢁꢊc các ch_c n^ng cka hꢀ thꢈng
ꢃꢁa lꢄi kꢇt quC mong Čꢊi
¢
¢ Nhꢁꢊc Či3m
¢
¢
¢
¢
¢
Ch_c n^ng ‰ cju trúc
Thay Č(i v+ ch_c n^ng ‰khó kh^n thay Č(i cju trúc
Tính ms cka hꢀ thꢈng thjp
Khó tái s9 d:ng
Chi phí s9a ch,a lti lꢉn
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
9
Hꢁꢉng Čꢈi tꢁꢊng
¢ Ljy Čꢈi tꢁꢊng làm trung tâm
¢ Hꢀ thꢈng = t`p hꢊp các Čꢈi tꢁꢊng + quan hꢀ
gi,a các Čꢈi tꢁꢊng
¢ Các Čꢈi tꢁꢊng trao Č(i bnng thông Čiꢀp
(message)
¢
Không s9 d:ng biꢇn toàn c:c
¢ ꢃóng gói
¢ Thva kꢇ
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
10
5
Hꢁꢉng Čꢈi tꢁꢊng
¢ Phân biꢀt
¢
L`p trình cju trúc
¢
Thu`t toán + cju trúc d, liꢀu = chꢁ=ng trình
¢
L`p trình HꢃT
¢
ΣČꢈi tꢁꢊng = chꢁ=ng trình
¢
Čꢈi tꢁꢊng = thu`t toán + cju trúc d, liꢀu
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
11
Hꢁꢉng Čꢈi tꢁꢊng
¢ ru Či3m chính
¢
¢
¢
PT & TK g4n gyi vꢉi thꢇ giꢉi th>c
Tái s9 d:ng dd dàng
ꢃóng gói, che dju thông tin làm cho hꢀ thꢈng
tin c`y h=n
¢
¢
Thva kꢇ làm giCm chi phí, hꢀ thꢈng có tính ms
cao h=n
Xây d>ng hꢀ thꢈng lꢉn và ph_c tꢄp
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
12
6
ꢃꢈi tꢁꢊng
¢ ꢃꢈi tꢁꢊng (object) là khái niꢀm cho phép
mô tC các s> v`t/th>c th3 trong thꢇ giꢉi th>c
¢ Các Čꢈi tꢁꢊng duy trì các quan hꢀ gi,a
chúng
¢ Nguydn V^n A là m t Čꢈi tꢁꢊng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
13
ꢃꢈi tꢁꢊng
¢ Các tính chjt cka Čꢈi tꢁꢊng
¢
ꢃꢈi tꢁꢊng = trꢄng thái + hành vi + Čmnh danh
¢
Trꢄng thái là các Č@c tính cka Čꢈi tꢁꢊng tꢄi m t thꢂi
Či3m
¢
¢
Hành vi th3 hiꢀn các ch_c n^ng cka Čꢈi tꢁꢊng
ꢃmnh danh th3 hiꢀn s> t7n tꢄi duy nhjt cka Čꢈi tꢁꢊng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
14
7
ꢃꢈi tꢁꢊng : trꢄng thái
¢ Trꢄng thái = t`p hꢊp các thu c tính
¢
Mti thu c tính mô tC m t Č@c tính
¢
Tꢄi m t thꢂi Či3m c: th3, các thu c tính mang
các giá trm trong mi+n xác Čmnh
¢
Ví d:
¢
M t chiꢇc xe máy: màu xanh, 110 cm3, dream,
12000km, Č_ng yên, …
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
15
ꢃꢈi tꢁꢊng : hành vi
¢ Hành vi = t`p hꢊp các phꢁ=ng th_c
¢
Phꢁ=ng th_c: là m t thao tác ho@c Čꢁꢊc th>c
hiꢀn bsi chính nó, ho@c th>c hiꢀn khi có yêu
c4u tv môi trꢁꢂng (thông Čiꢀp tv Čꢈi tꢁꢊng
khác)
¢
¢
Hành vi ph: thu c vào trꢄng thái
Ví d::
¢
m t xe máy có các hành vi: khsi Č ng, chꢄy, …
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
16
8
Giao tiꢇp gi,a các Čꢈi tꢁꢊng
¢ Các Čꢈi tꢁꢊng giao tiꢇp vꢉi nhau
¢
G9i thông Čiꢀp (message) cho nhau
Thông Čiꢀp
ꢃꢈi tꢁꢊng A
ꢃꢈi tꢁꢊng B
¢
Các loꢄi thông Čiꢀp
¢
¢
¢
¢
¢
hàm d>ng (constructor)
hàm hky (destructor)
hàm chꢅn l>a (get)
hàm s9a Č(i (set)
các hàm ch_c n^ng khác
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
17
ꢃꢈi tꢁꢊng
¢ Gi,a các Čꢈi tꢁꢊng có mꢈi liên kꢇt (link)
vꢉi nhau
¢ Ví d:
Hꢅc
Nguydn V^n A
ꢃꢄi hꢅc ꢃà Nꢆng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
18
9
Lꢉp
¢ Lꢉp là khái niꢀm dùng Č3 mô tC m t t`p
hꢊp các Čꢈi tꢁꢊng có cùng m t cju trúc,
cùng hành vi và có cùng nh,ng mꢈi quan hꢀ
vꢉi các Čꢈi tꢁꢊng khác
¢ Lꢉp = các thu c tính + các phꢁ=ng th_c
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
19
Lꢉp
¢ Lꢉp là m t bꢁꢉc trvu tꢁꢊng hóa
¢
Tìm kiꢇm các Či3m giꢈng nhau, bl qua các Či3m khác
nhau cka Čꢈi tꢁꢊng
Person
Name
Age
¢
Trvu tꢁꢊng hóa làm giCm Č ph_c tꢄp
changeAge
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
20
10
Lꢉp
¢ Quan hꢀ gi,a các lꢉp: kꢇt hꢊp
¢ M t kꢇt hꢊp là m t t`p hꢊp các mꢈi liên kꢇt
gi,a các Čꢈi tꢁꢊng
hꢅc
Sinh viên
ꢃꢄi hꢅc
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
21
Lꢉp & ꢃꢈi tꢁꢊng
¢ ꢃꢈi tꢁꢊng là th3 hiꢀn (instance) cka lꢉp
¢ Giá trm là th3 hiꢀn cka thu c tính
¢ Liên kꢇt là th3 hiꢀn cka kꢇt hꢊp
¢ Lꢉp
ꢃꢈi tꢁꢊng
Giá trm
¢ Thu c tính
¢ Kꢇt hꢊp
Liên kꢇt
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
22
11
Các tính chjt cka HꢃT
¢ Tính Čóng gói (encapsulation)
¢
d, liꢀu + x, lð d, liꢀu = Čꢈi tꢁꢊng
thu c tính + phꢁ=ng th_c = lꢉp
¢
¢ ru Či3m
¢
¢
¢
Hꢄn chꢇ Cnh hꢁsng khi có s> thay Č(i c`p nh`t
Ng^n cCn s> truy c`p thông tin tv bên ngoài
Che dju thông tin
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
23
Các tính chjt cka HꢃT
¢ Tính thva kꢇ (inheritance)
¢
¢
¢
M t lꢉp Čꢁꢊc xây d>ng tv m t ho@c nhi+u lꢉp khác
bnng viꢀc chia s• các thu c tính và phꢁ=ng th_c
Lꢀp con thva kꢇ các thu c tính và phꢁ=ng th_c tv lꢀp
cha
T(ng quát hóa/chuyên biꢀt hóa
¢
¢
T(ng quát hóa (generalization): Č@t các tính chjt chung cka các
lꢉp khác nhau vào m t lꢉp cha
Chuyên biꢀt hóa (specialization): tꢄo ra m t lꢉp con có các tính
chjt riêng tv lꢉp cha
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
24
12
Các tính chjt cka HꢃT
¢
ꢃ=n thva kꢇ: m t lꢉp con ch• thva kꢇ tv m t lꢉp cha duy
nhjt
XeÓtô
XeKhách
XeTCi
¢
¢
¢
Lꢉp trvu tꢁꢊng hay lꢉp chung: XeÓtô
Lꢉp c: th3 hay lꢉp chuyên biꢀt: XeKhách
Lꢉp chuyên biꢀt có th3 thay thꢇ lꢉp chung trong tjt cC các
_ng d:ng. Ví d:: Ótô tCi là m(t ôtô.
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
25
Các tính chjt cka HꢃT
¢ ꢃa thva kꢇ: m t lꢉp con thva kꢇ tv nhi+u
lꢉp cha khác nhau
Person
Personnel
Student
Reseacher
Teacher
Phd candidate
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
26
13
Các tính chjt cka HꢃT
¢ ꢃa thva kꢇ
¢
ꢃ:ng Č tên các thu c tính
X
a
Y
a
Z
a cka X
a cka Y
¢
ꢃa thva kꢇ không Čꢁꢊc chjp nh`n bsi m t sꢈ ngôn
ng,: Java
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
27
Các tính chjt cka HꢃT
¢ ru Či3m cka thva kꢇ
¢
¢
¢
Phân loꢄi các lꢉp: các lꢉp Čꢁꢊc phân loꢄi, sƒp
xꢇp theo m t th_ b`c Č3 dd quCn lí
Xây d>ng các lꢉp: các lꢉp con Čꢁꢊc xây d>ng
tv các lꢉp cha
Tiꢇt kiꢀm thꢂi gian xây d>ng, tránh l@p lꢄi
thông tin
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
28
14
Các tính chjt cka HꢃT
¢ Tính Ča hình (polymorphism): cka phꢁ=ng th_c,
t_c là khC n^ng các phꢁ=ng th_c khác nhau Čꢁꢊc
th>c hiꢀn Č3 trC lꢂi cùng m t yêu c4u
¢ Mti lꢉp con thva kꢇ Č@c tC các phꢁ=ng th_c tv lꢉp
cha, và các phꢁ=ng th_c này có th3 Čꢁꢊc s,a Č(i
trong lꢉp con Č3 th>c hiꢀn các ch_c n^ng riêng
trong lꢉp Čó
¢ M t phꢁ=ng th_c (cùng m t tên phꢁ=ng th_c) có
nhi+u dꢄng (Čmnh ngh„a) khác nhau trong các lꢉp
khác nhau
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
29
Các tính chjt cka HꢃT
¢ Ví d: tính Ča hình
ꢃaGiác
DienTich()
HìnhVuông
DienTich()
HìnhTamGiác
DienTich()
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
30
15
Giꢄi thiꢁu UML (2)
Nguyꢆn Thanh Bình
Khoa Công Nghꢀ Thông Tin
Trꢁꢂng ꢃꢄi hꢅc Bách khoa, ꢃꢄi hꢅc ꢃà Nꢆng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
31
N i dung trình bày
¢ Khái niꢀm mô hình hóa
¢ M t sꢈ phꢁ=ng pháp mô hình hóa HꢃT
¢ Lmch s9 phát tri3n UML
¢ Giꢉi thiꢀu t(ng quan UML
¢
UML œ m t ngôn ng,
¢
Các khái niꢀm c= bCn cka UML
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
32
16
Khái niꢀm mô hình hóa
¢ Mô hình (model) là m t s> Č=n giCn hóa cka hꢀ
thꢈng th>c
¢ Mô hình là s> bi3u didn bnng hình Cnh cka hꢀ
thꢈng th>c
¢ Mô hình didn tC hꢀ thꢈng
¢
¢
¢
s m t m_c trvu tꢁꢊng,
theo m t quan Či3m,
bnng m t hình th_c bi3u didn (v^n bCn, hình Cnh, …)
¢ Mô hình hóa (modeling) là quá trình dùng mô
hình Č3 didn tC hꢀ thꢈng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
33
Khái niꢀm mô hình hóa
¢ Tꢄi sao mô hình hóa?
¢
¢
¢
Mô hình hóa Č3 dd hi3u
¢
Dd nh`n th_c vjn Č+
Mô hình hóa Č3 trao Č(i
¢
Phꢁ=ng tiꢀn trao Č(i gi,a nh,ng ngꢁꢂi phát tri3n
Mô hình hóa Č3 hoàn ch•nh
¢
Dd dàng nh`n s> phù hꢊp gi,a mô hình và nhu c4u
d3 cCi tiꢇn, hoàn thiꢀn
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
34
17
Khái niꢀm mô hình hóa
¢ Các nguyên tƒc mô hình hóa
¢
Chꢅn mô hình thích hꢊp
¢
¢
¢
Góc nhìn c= ss d, liꢀu: mô hình th>c th3 - kꢇt hꢊp
Góc nhìn có cju trúc: thu`t toán
Góc nhìn hꢁꢉng Čꢈi tꢁꢊng: các lꢉp và các quan hꢀ
¢
Các mô hình Čꢁꢊc th3 hiꢀn nhi+u m_c chính
xác khác nhau
¢
Hꢀ thꢈng Čꢁꢊc didn tC s các m_c chi tiꢇt khác nhau,
tùy theo nhu c4u ngꢁꢂi s9 d:ng
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
35
Khái niꢀm mô hình hóa
¢ Các nguyên tƒc mô hình hóa
¢
Các mô hình phCi liên hꢀ vꢉi thꢇ giꢉi th>c
¢
Các mô hình xây d>ng g4n gyi vꢉi mô hình hꢀ thꢈng
th>c
¢
Mô hình hꢁꢉng Čꢈi tꢁꢊng > Mô hình hóa có cju trúc
¢
M t hꢀ thꢈng phCi Čꢁꢊc mô hình hóa msi m t t`p
hꢊp các mô hình
¢
Ch• m t mô hình là không th3 Čk
¢
PhCi th3 hiꢀn Čꢁꢊc nhi+u góc nhìn khác nhau v+ hꢀ thꢈng:
s9 d:ng, thiꢇt kꢇ, cài Č@t, …
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
36
18
M t sꢈ phꢁ=ng pháp mô hình hóa
HꢃT
¢ OOD (Object Oriented Design)
¢ OOSE (Object Oriented Software
Engineering)
¢ OMT (Object Modeling Technique)
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
37
OOD (Object Oriented Design)
¢ Phꢁ=ng pháp Čꢁꢊc phát tri3n bsi Booch
¢ Mô hình t„nh
¢
Bi3u Č7 lꢉp
¢
Bi3u Č7 Čꢈi tꢁꢊng
¢ Mô hình Č ng
¢
Bi3u Č7 trꢄng thái
Bi3u Č7 thꢂi gian
¢
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
38
19
OOSE (Object Oriented Software
Engineering)
¢ Phꢁ=ng pháp Čꢁꢊc phát tri3n bsi Jacobson
¢ N^m mô hình
¢
¢
¢
¢
¢
Mô hình yêu c4u (kmch bCn s9 d:ng)
Mô hình phân tích (m_c khái niꢀm)
Mô hình thiꢇt kꢇ (m_c logic)
Mô hình mã hóa (m_c v`t lð)
Mô hình ki3m th9
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
39
OMT (Object Modeling
Technique)
¢ Phꢁ=ng pháp Čꢁꢊc phát tri3n bsi Rumbaugh
¢ Ba mô hình
¢
¢
¢
Mô hình t„nh
¢
mô hình th>c th3 quan hꢀ
Mô hình Č ng
¢
bi3u Č7 trꢄng thái và chuy3n tiꢇp
Mô hình ch_c n^ng
¢
d>a trên bi3u Č7 lu7ng d, liꢀu
7-Aug-07
Phân tích và thiꢇt kꢇ hꢀ thꢈng hꢀꢉng Čꢈi tꢀꢊng
40
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phân tích thiết kế hệ thống hướng đối tượng - Nguyễn Thanh Bình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phan_tich_thiet_ke_he_thong_huong_doi_tuong_nguyen.pdf

