Kỹ nghệ phần mềm
Software Engeneering
NguyÔn V¨n Vþ
Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email:
[email protected]
Bài 7: Thiết kế hướng đối tượng
NguyễnVănVỵ
Nội dung
VÊn ®Ò tån t¹i trong h−íng kiÕn tróc
Kh¸i niÖm liªn quan ®Õn ®èi t−îng
Ng«n ng÷ UML
Ph©n tÝch h−íng ®èi t−îng
ThiÕt kÕ h−íng ®èi t−îng
Sö dông mÉu thiÕt kÕ
Bộ môn Công nghệ phần mềm – ĐHCN
2
TÀI LiỆU THAM KHẢO
NguyễnVănVỵ
1.
2.
3.
4.
5.
6.
Nguyễn Văn Vỵ, Nguyễn Việt Hà. Giáo trình kỹ nghệ phần
mềm. Nhà xuất bản Đại học Quốc gia Hà nội, 2008
Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified
Modeling language User Guid. Addison-Wesley, 1998.
M. Ould. Managing Software Quality and Business Risk, John
Wiley and Sons, 1999.
Roger S.Pressman, Software Engineering, a Practitioner’s
Approach. Fifth Edition, McGraw Hill, 2001.
Ian Sommerville, Software Engineering. Sixth Edition, AddisonWasley, 2001.
Nguyễn Văn Vỵ. Phân tích thiết kế hệ thống thông tin hiện đại.
Hướng cấu trúc và hướng đối tượng, NXB Thống kê, 2002, Hà
Nội.
Bộ môn Công nghệ phần mềm – ĐHCN
3
KiÕn tróc phÇn mÒm truyÒn thèng
NguyễnVănVỵ
Bộ môn Công nghệ phần mềm – ĐHCN
4
VÊn ®Ò cña thiÕt kÕ h−íng thñ tôc
NguyễnVănVỵ
D÷ liÖu lμ chung cho c¶ hÖ thèng
Mäi thñ tôc thao t¸c trªn CSDL chung, ®Æc tr−ng
cho tr¹ng th¸i toμn hÖ thèng
Thao t¸c sai cña 1 thñ tôc lªn d÷ liÖu g©y sai lan
truyÒn sang phÇn kh¸c sö dông dông d÷ liÖu nμy
Söa ®æi 1 thñ tôc cã nguy c¬ ¶nh h−ëng tíi phÇn
kh¸c liªn quan
Thay ®æi cÊu tróc d÷ liÖu dÉn ®Õn thay ®æi tæng
thÓ hÖ thèng
d÷ liÖu cÇn tæ chøc tèt
HÖ thèng lín, phøc t¹p: b¶o tr× khã kh¨n
Bộ môn Công nghệ phần mềm – ĐHCN
5
ThiÕt kÕ h−íng ®èi t−îng- OOD
NguyễnVănVỵ
HiÖn ®ang trë nªn phæ biÕn
Lμ mét c¸ch tiÕp cËn kh¸c, nh×n nhËn hÖ
thèng theo c¸c quan ®iÓm:
tËp c¸c ®èi t−îng cã t−¬ng t¸c víi nhau
mçi ®èi t−îng bao gãi c¶ d÷ liÖu vμ c¸c xö lý
trªn chóng
T−¬ng t¸c gi÷a c¸c ®èi t−êng b»ng truyÒn
th«ng b¸o
C¸c ®èi t−îng cã thÓ kÕ thõa nhau
Bộ môn Công nghệ phần mềm – ĐHCN
6
VÝ dô kiÕn tróc h−íng ®èi t−îng
NguyễnVănVỵ
Customer
customer#
name
address
credit period
Receipt
Invoice
invoice#
date
amount
customer#
invoice#
date
amount
customer
Payment
invoice#
date
amount
customer#
Bộ môn Công nghệ phần mềm – ĐHCN
issue ()
sendReminder ()
acceptPayment ()
sendReceipt ()
7
¦u ®iÓm cña OOD
NguyễnVănVỵ
DÔ b¶o tr×: c¸c ®èi t−îng ®−îc hiÓu nh− c¸c
thùc thÓ ho¹t ®éng ®éc lËp
Bao gãi th«ng tin
liªn kÕt láng lÎo (trao ®æi b»ng truyÒn th«ng b¸o)
DÔ t¸i sö dông:
®é ®éc lËp cao
cã kh¶ n¨ng kÕ thõa
DÔ hiÓu: mét vμi hÖ thèng, cã sù ¸nh x¹ t−êng
minh gi÷a thùc thÓ thùc thÕ giíi thùc vμ ®èi
t−îng hÖ thèng
Bộ môn Công nghệ phần mềm – ĐHCN
8
Néi dung cña OOD
NguyễnVănVỵ
X¸c ®Þnh c¸c tËp ®èi t−îng (gäi lμ líp) vμ
c¸c ®Æc tr−ng cña chóng
Ph©n ®Þnh vai trß vμ tr¸ch nhiÖm cña chóng
trong hÖ thèng
ThiÕt lËp ®−îc sù t−¬ng t¸c cña chóng ®Ó
thùc hiÖn chøc n¨ng cña hÖ thèng phÇn
mÒm ®Æt ra
Bộ môn Công nghệ phần mềm – ĐHCN
9
C¸c kh¸i niÖm cña OOD
NguyễnVănVỵ
d1. §èi t−¬ng
Lμ c¸c trõu t−îng hãa thùc thÓ cña thÕ giíi thùc hoÆc
cña mét hÖ thèng
Bao gåm: ®Þnh danh, c¸c thuéc tÝnh vμ c¸c ph−¬ng
thøc thao t¸c trªn c¸c d÷ liÖu thuéc tÝnh cña nã
§éc lËp vμ ®ãng gãi tr¹ng th¸i thÓ hiÖn b»ng gi¸ trÞ
c¸c thuéc tÝnh cña nã ë mét thêi ®iÓm
Cung cÊo dÞch vô cho ®èi t−îng kh¸c hay yªu cÇu
c¸c ®èi t−îng kh¸c thùc hiÖn mét dÞch vô
Bộ môn Công nghệ phần mềm – ĐHCN
10
Líp ®èi t−îng
NguyễnVănVỵ
Líp ®èi t−îng lμ khu«n mÉu ®Ó t¹o ra tËp ®èi
t−îng cã c¸c ®Æc tr−ng chung
Líp ®èi t−îng cã thÓ kÕ thõa thuéc tÝnh vμ
dÞch vô tõ líp ®èi t−îng kh¸c
Líp ®−îc x¸c ®Þnh b»ng:
Sinh vien
Tªn
Bé c¸c thuéc tÝnh
C¸c ph−¬ng thóc
Bộ môn Công nghệ phần mềm – ĐHCN
maSV
hotenSV
diachi
lop
Tao( )
Capnhat( )
Xoa( )
11
Trõu t−îng hãa
NguyễnVănVỵ
Trõu t−îng hãa cung cÊp c¸i nh×n ®¬n gi¶n
®èi víi thùc thÓ cÇn xö lý
chØ m« t¶ c¸c tÝnh chÊt chóng ta quan t©m
che giÊu c¸c th«ng tin kh«ng cÇn thiÕt
§−îc cμi ®Æt nh− lμ:
kiÓu d÷ liÖu trõu t−îng, líp ®èi t−îng
c¸c kiÓu d÷ liÖu c¬ së cã s½n: int, double
Bộ môn Công nghệ phần mềm – ĐHCN
12
Bao gãi vμ che giÊu th«ng tin
NguyễnVănVỵ
Lμ kh¸i niÖm c¬ së cña thiÕt kÕ/lËp tr×nh
h−íng ®èi t−îng
Che giÊu th«ng tin ®Ó ®èi t−îng kh«ng cÇn
thiÕt kh«ng thÓ sö dông
ChØ cung cÊp chøc n¨ng, dÞch vô cÇn
Che giÊu c¸c yÕu tè cã kh¶ n¨ng thay ®æi
cÊu tróc d÷ liÖu
c¸ch thøc cμi ®Æt
Bộ môn Công nghệ phần mềm – ĐHCN
13
CÊu tróc d÷ liÖu
NguyễnVănVỵ
M« t¶ mèi quan hÖ gi÷a c¸c kho¶n môc d÷ liÖu
CÊu tróc vËt lý chØ ra c¸ch thøc ch−¬ng tr×nh
thao t¸c víi d÷ liÖu
C¸c cÊu tróc c¬ së
kho¶n môc v« h−íng
m¶ng (mét chiÒu, nhiÒu chiÒu)
danh s¸ch mãc nèi
c©y ph©n cÊp
Bộ môn Công nghệ phần mềm – ĐHCN
14
VÝ dô
NguyễnVănVỵ
struct Date {
int year, mon, day;
};
struct Date {
int year;
int mon_and_day;
}
Bộ môn Công nghệ phần mềm – ĐHCN
15
Tæng qu¸t hãa vμ kÕ thõa
NguyễnVănVỵ
Mét líp cã thÓ lμ líp con cña 1 líp c¸c ®èi t−îng
tæng qu¸ h¬n, vμ gäi lμ kÕ thõa cña líp tæng qu¸t
trªn c©y kÕ thõa, líp cha (super class) cã thÓ lμ
tæng qu¸t hãa cña 1 sè c¸c líp con (sub-class)
Líp con kÕ thõa c¸c thuéc tÝnh vμ ph−¬ng thøc
cña líp cha vμ cã thÓ thªm/thay ®æi ph−¬ng thøc,
thuéc tÝnh
Sö dông kÕ thõa gióp ta m« t¶ líp con chØ gåm
c¸c ®Æc trung kh¸c líp cha
Bộ môn Công nghệ phần mềm – ĐHCN
16
VÝ dô c©y kÕ thõa
NguyễnVănVỵ
Employee
Manager
Programmer
budgetsControlled
dateAppointed
project
progLanguage
Project
Manager
projects
Dept.
Manager
dept
Bộ môn Công nghệ phần mềm – ĐHCN
Strategic
Manager
responsibilities
17
¦u ®iÓm cña kÕ thõa
NguyễnVănVỵ
Lμ c¬ chÕ trõu t−îng ®Ó ph©n lo¹i c¸c líp (thùc
thÓ)
T¸i sö dông c¶ ë møc thiÕt kÕ vμ møc lËp tr×nh
t¸i sö dông cÊu tróc d÷ liÖu
t¸i sö dông ph−¬ng thøc:
giao diÖn
cμi ®Æt (m·)
BiÓu ®å kÕ thõa lμ nguån th«ng tin mang tÝnh tæ
chøc vÒ bμi to¸n
Bộ môn Công nghệ phần mềm – ĐHCN
18
T−¬ng t¸c gi÷a c¸c ®èi t−îng
NguyễnVănVỵ
o1: C1
state o1
ops1()
o3:C3
state o3
ops3 ()
o4: C4
o2: C3
o6: C1
o5:C5
state o2
ops3 ()
state o6
ops1 ()
Bộ môn Công nghệ phần mềm – ĐHCN
state o4
ops4 ()
state o5
ops5 ()
19
T−¬ng t¸c gi÷a c¸c ®èi t−îng
NguyễnVănVỵ
C¸c ®èi t−îng giao tiÕp b»ng trao ®æi th«ng b¸o
Th«ng b¸o
Tªn dÞch vô ®−îc yªu cÇu
Th«ng tin dïng ®Ó thùc hiÖn dÞch vô
C¸c lo¹i ®èi t−îng
actor: chØ göi th«ng b¸o
agent: göi vμ nhËn th«ng b¸o
server: chØ nhËn th«ng b¸o
Thùc tÕ, th«ng b¸o ®−îc cμi ®Æt b»ng lêi gäi hμm
Tªn = tªn hμm
Th«ng tin = danh s¸ch tham sè
Bộ môn Công nghệ phần mềm – ĐHCN
20