1
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 1
Trương Đai hoc Bach Khoa Tp. Hö Chñ Minh
Khoa Cöng Nghï Thöng Tin
Mön hoc
PHÊN TÑCH & THIÏT KÏ
HƯƠNG ĐÖI TƯƠNG
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 2
Tai liïu tham khao chñnh
[1] The Unified Software Development Process, Ivar Jacabson,
Grady Booch, James Rumbaugh, Addison-Wesley, 1999.
[2] Software Engineering - A practitioner's approach, R.S.
Pressman, McGraw-Hill, 1997
[3] Design Patterns, Erich Gamma, Richard Helm, Ralph
Johnson, John Vlissides, Addison-Wesley, 1998.
[4] OMG Unified Modeling Language Specification, version 1.3,
Object Management Group (www.omg.org), 1999
[5] UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998
[6] Object-Oriented Software Engineering, A Use-Case Driven
Approach, I. Jacobson, ACM Press/Addison-Wesley, 1992
[7] Object-Oriented Analysis and Design with Applications, G.
Booch, The Benjamin Cummings Publishing Company, 1994
2
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 3
Trương Đai hoc Bach Khoa Tp. Chñ Minh
Khoa Cöng Nghï Thöng Tin
Chương 1
CAC KHAI NIÏMCƠ BAN CUA
HÒNH HƯƠNG ĐÖI TƯƠNG
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 4
i dung
1.1 Tưp trònh cou truc ïn OOP
1.2 Đöi tương, thuöc tñnh, tac vu.
1.3 Abstract type va class.
1.4 Tñnh bao ong.
1.5 Tñnh thưakï va cơ chï 'override'.
1.6 Tñnh bao göp.
1.7 Thöng p, tñnh a hònh va kiïm tra kiïu.
1.8 Tñnh töng quat hoa.
1.9 Tñnh vưng bïn.
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
3
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 5
1. May tñnh sö la thiït b co thï thưc hiïn 1 sö hưu han cac chưc năng
cơ ban (p lïnh), cơ chï thưc hiïn cac lïnh la tư öng tưnh êu
cho ïn lïnh cuöi cung. Danh sach cac lïnh ₫ươc thưc hiïn nay
₫ươc goi la chương trònh.
2. t ky cöng viïc ngoai ₫ơi nao cung co thï ₫ươc chia thanh trònh tư
nhiïu cöng viïc nho hơn. Trònh tư cac cöng viïc nho nay ₫ươc goi
la giai tht giai quyït cöng viïc ngoai ₫ơi. Möi cöng viïc nho hơn
cung co thï ₫ươc chia nho nưa,... cöng viïc ngoai ₫ơi la 1 trònh
tư cac lïnh may (chương trònh).
3. n ïu chöt cua viïc dung may tñnh giai quyït vênï ngoai
₫ơi la p trònh. Cho ïn nay, p trònh la cöng viïc cua con ngươi
(vơi sư trơ giup ngay cang nhiïu cua may tñnh).
4. cac lïnh cua chương trònh (code) phai tham khao hoăc xư ly (truy
xuêt) thöng tin (dư liïu).
Tưp trònh cou truc ïn OOP
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 6
Tưp trònh cou truc ïn OOP
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
5. Dư liïu cua 1 chương trònh co thït nhiïu va a dang. Đï truy
xuêt ung 1 dư liïu ta cên :
- tïn nhên dang.
-kiïu dư liïu miïu tau truc dư liïu.
-têm vưc truy xuêt miïu ta giơi han khach hang truy xuêtdư
liïu.
6. Chương trònh cö n = giai thuêt + dư liïu.
7. Chương trònh con (function, subroutine,...) cho phep cêu truc
chương trònh, sư dung lai code...
8. Chương trònh cö n cou truc phên cêp như sau :
4
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 7
Chương trònh = u truc dư liïu + giai thuêt
entry 'start'
global data
module
(package)
local data
of module
local data
of function
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
Tưp trònh cou truc ïn OOP
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 8
Chương trònh = p cac öi tương tương tac nhau
entry
öi tương
(object)
local data
of object
local data
of operation
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
Tưp trònh cou truc ïn OOP
5
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 9
ng quat vï hương öi tương
Mö hònh hương öi tương giơi thiïu 1 quan m lêp trònh
(va phên tñch/thiït kï) khac hăn so vơi trương phai cö n
(cou truc).
Băt êu nhen nhom vao nhưng năm cuöi 60s va ïn êu
90s thò trơ nïn rêt phö biïn trong cöng nghiïp phên mïm.
Nhưng ngön ngư hương öi tương êu tiïn : Smalltalk,
Eiffel. Sau o xuêt hiïn thïm : Object Pascal, C++, Java,
C#,…
Hònh thanh cac phương phap phên tñch/thiït kï hương öi
tương.
Va hiïn nay ta co 1 qui trònh phat triïn phên mïm hơp nhêt
dưa trïn ngön ngư UML.
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương
B môn Công ngh phn mm
Khoa CNTT
ĐH Bách Khoa Tp.HCM
Mön TK. Hương öi tương
Slide 10
Đöi tương (Object)
~Mö hònh öi tương quan niïm chương trònh bao göm cac öi
tương sinh söng va tương tac vơi nhau.
~Đöi tương bao göm :
thuöc tñnh (dư liïu) : mang 1 gia tr nhêt ₫ịnh tai tưng thơi m.
tac vu (operation) : thưc hiïn 1 cöng viïc nao o.
Interface
(abstract type)
Implementation
(class)
Chương 1: Cac khai niïm cơ ban cua mö hònh hương öi tương