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