Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ

Tóm tắt Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ: ..., 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...iterealization aggregation 0..1 1..* Bộ mụn Cụng nghệ phần mềm – ĐHCN 28 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất C. Các biểu đồ Gọiđiệnthoại đặt hội nghi Trảlời “use” “extend” Biểu đồ cửa sa sử dụng Bộ mụn Cụng nghệ phần mềm – ĐHCN 29 NguyễnVănVỵ Ngôn ngữ mô hình hóa thống nhất C. ...ền Giao dịch tín dụng Ví dụ: phân tích h−ớng đối t−ợng Bộ mụn Cụng nghệ phần mềm – ĐHCN 40 NguyễnVănVỵ „ Phân tích một gói các ca sử dụng Mô hinh ca sử dụng Mô hình phân tích rút tiền thực thi ca sử dụng rút tiền > Máy trả tiền giao diện thủ quỹ điều khiển rut tiền tài khoản Cá...

pdf54 trang | Chia sẻ: havih72 | Lượt xem: 168 | Lượt tải: 1download
Nội dung tài liệu Bài giảng Kỹ nghệ phần mềm - Bài 7: Thiết kế hướng đối tượng - Nguyễn Văn Vỵ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Bé m«n C«ng nghÖ phÇn mÒm- Khoa CNTT- §HCN
Email: vynv@coltech.vnu.vn
Kỹ nghệ phần mềm
Software Engeneering
NguyÔn V¨n Vþ
Bộ môn Công nghệ phần mềm – ĐHCN 2
NguyễnVănVỵ
Nội dung
Bài 7: Thiết kế hướng đối tượng
„ 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 3
NguyễnVănVỵ
TÀI LiỆU THAM KHẢO
1. 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
2. Grady Booch, James Rumbaugh, Ivar Jacobson. The Unified 
Modeling language User Guid. Addison-Wesley, 1998.
3. M. Ould. Managing Software Quality and Business Risk, John 
Wiley and Sons, 1999.
4. Roger S.Pressman, Software Engineering, a Practitioner’s 
Approach. Fifth Edition, McGraw Hill, 2001.
5. Ian Sommerville, Software Engineering. Sixth Edition, Addison-
Wasley, 2001.
6. 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 4
NguyễnVănVỵ
KiÕn tróc phÇn mÒm truyÒn thèng
Bộ môn Công nghệ phần mềm – ĐHCN 5
NguyễnVănVỵ
VÊn ®Ò cña thiÕt kÕ h−íng thñ tôc
„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 6
NguyễnVănVỵ
ThiÕt kÕ h−íng ®èi t−îng- OOD
„ 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 7
NguyễnVănVỵ
VÝ dô kiÕn tróc h−íng ®èi t−îng
issue ()
sendReminder ()
acceptPayment ()
sendReceipt ()
invoice#
date
amount
customer
Invoice
invoice#
date
amount
customer#
Receipt
invoice#
date
amount
customer#
Payment
customer#
name
address
credit period
Customer
Bộ môn Công nghệ phần mềm – ĐHCN 8
NguyễnVănVỵ
¦u ®iÓm cña OOD
„ 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 9
NguyễnVănVỵ
Néi dung cña OOD
„ 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 10
NguyễnVănVỵ
C¸c kh¸i niÖm cña OOD
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 11
NguyễnVănVỵ
Líp ®èi t−îng
„ 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:
 Tªn 
 Bé c¸c thuéc tÝnh
 C¸c ph−¬ng thóc
Sinh vien
maSV
hotenSV
diachi
lop
Tao( )
Capnhat( )
Xoa( )
Bộ môn Công nghệ phần mềm – ĐHCN 12
NguyễnVănVỵ
Trõu t−îng hãa 
„ 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 13
NguyễnVănVỵ
Bao gãi vμ che giÊu th«ng tin
„ 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 14
NguyễnVănVỵ
CÊu tróc d÷ liÖu
„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 15
NguyễnVănVỵ
VÝ dô
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 16
NguyễnVănVỵ
Tæng qu¸t hãa vμ kÕ thõa
„ 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 17
NguyễnVănVỵ
VÝ dô c©y kÕ thõa
Employee
Programmer
project
progLanguage
Manager
Project
Manager
budgetsControlled
dateAppointed
projects
Dept.
Manager
Strategic
Manager
dept responsibilities
Bộ môn Công nghệ phần mềm – ĐHCN 18
NguyễnVănVỵ
¦u ®iÓm cña kÕ thõa
„ 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:
ygiao diÖn
ycμ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 19
NguyễnVănVỵ
T−¬ng t¸c gi÷a c¸c ®èi t−îng
state o3
o3:C3
state o4
o4: C4
state o1
o1: C1
state o6
o6: C1
state o5
o5:C5
state o2
o2: C3
ops1() ops3 () ops4 ()
ops3 () ops1 () ops5 ()
Bộ môn Công nghệ phần mềm – ĐHCN 20
NguyễnVănVỵ
T−¬ng t¸c gi÷a c¸c ®èi t−îng
„ 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 21
NguyễnVănVỵ
Mét sè vÊn ®Ò dïng kÕ thõa
„ §èi t−îng kh«ng tù chøa, kh«ng thÓ hiÓu nÕu 
kh«ng tham chiÕu ®Õn líp cha
„ L¹m dông c¸c s¬ ®å kÕ thõa trong b−íc ph©n 
tÝch cã thÓ dÉn ®Õn sù kÐm hiÖu qu¶
Bộ môn Công nghệ phần mềm – ĐHCN 22
NguyễnVănVỵ
KÕ thõa vμ OOD
„ Cã hai quan niÖm
1. KÕ thõa lμ yÕu tè c¬ b¶n cña OOD vμ ®−îc cμi 
®Æt th«ng qua c¸c ng«n ng÷ h−íng ®èi t−îng
2. KÕ thõa sö dông c¬ chÕ ®Æc biÖt ®Ó t¸i sö
dông thuéc tÝnh vμ ph−¬ng thøc. ThiÕt kÕ kÕ 
thõa sÏ t¹o ra c¸c rμng buéc cho cμi ®Æt
„ KÕ thõa kh«ng dÔ hiÓu vμ do ®ã nªn tr¸nh, 
nhÊt lμ ®èi víi c¸c hÖ thèng ®Æc biÖt quan 
träng.
Bộ môn Công nghệ phần mềm – ĐHCN 23
NguyễnVănVỵ
e. Ng«n ng÷ m« h×nh hãa thèng nhÊt
Unified Modeling Language
„ Là một ngôn ngữ mô hình để phát triển 
phần mềm hướmg đối tượng
„Các đặc trưng: UML là ngôn ngữ:
ƒ độ họa
ƒ làm trực quan hóa
ƒ đặc tả
ƒ xây dựng mô hình
ƒ làm tài liệu
Bộ môn Công nghệ phần mềm – ĐHCN 24
NguyễnVănVỵ
„Gåm 3 khèi cơ bản:
A. C¸c sù vËt (things)
1. C¸c sù vËt cÊu tróc (structural)
2. C¸c sù vËt hμnh vi (behavioral)
3. C¸c sù vËt nhãm gép(grouping)
4. C¸c sù vËt gi¶i thÝch (annotational)
B. C¸c quan hÖ (Relationships)
C. C¸c biểu ®å (Diagrams)
Ng«n ng÷ m« h×nh hãa thèng nhÊt
Bộ môn Công nghệ phần mềm – ĐHCN 25
NguyễnVănVỵ
Ng«n ng÷ m« h×nh hãa thèng nhÊt
„ C¸c sù vËt cÊu tróc (structural)
Class –lớp use ase –ca sử dụng Collaboration
sù cộng t¸c
Node - nótActor Interface Component-thμnhfần 
Đặt hàng
Window
origin
open()
Đặt hàng
orderform.java
Server
Bộ môn Công nghệ phần mềm – ĐHCN 26
NguyễnVănVỵ
Ng«n ng÷ m« h×nh hãa thèng nhÊt
„ C¸c sù vËt hμnh vi , nhãm gép, gi¶i thÝch
interaction state machine package
Note 
display ®îi + OrderForm
+ Tracking FormOrde
Client
Class
Tù t¹o
Bộ môn Công nghệ phần mềm – ĐHCN 27
NguyễnVănVỵ
Ng«n ng÷ m« h×nh hãa thèng nhÊt
B. C¸c mèi quan hÖ
dependence assosiation generalization
compositerealization aggregation
0..1 1..*
Bộ môn Công nghệ phần mềm – ĐHCN 28
NguyễnVănVỵ
Ng«n ng÷ m« h×nh hãa thèng nhÊt
C. C¸c biÓu ®å
Gäi®iÖntho¹i ®Æt héi nghi
Tr¶lêi
“use”
“extend”
BiÓu ®å cửa sa sö dông
Bộ môn Công nghệ phần mềm – ĐHCN 29
NguyễnVănVỵ
Ng«n ng÷ m« h×nh hãa thèng nhÊt
C. C¸c biÓu ®å
BiÓu ®å cửa c«ng t¸c ph©n tÝch
GiaodiÖn róttiÒn
GiaodiÖnnhËntiÒn
tμi kho¶n
lÞch sö tμi 
kho¶n
®iÒu khiÓn rót 
tiÒn
Bộ môn Công nghệ phần mềm – ĐHCN 30
NguyễnVănVỵ
TransportAgent
Message
IncomingQueue OutgoingQueue
Queue
c:company
d1:Department
name =“Sale”
d2:Department
name=“R&D”
d3:Department
name = “US Sales”
p: Person
name=“Exin”
BiÓu ®å líp BiÓu ®å ®èi t−îng
Ng«n ng÷ m« h×nh hãa thèng nhÊt
Bộ môn Công nghệ phần mềm – ĐHCN 31
NguyễnVănVỵ
C. C¸c biÓu ®å
BiÓu ®å tuÇn tù
:message :OutgoingQueue
create
ad dMessage
:TranAgent
RemoveMessage
Ng«n ng÷ m« h×nh hãa thèng nhÊt
Bộ môn Công nghệ phần mềm – ĐHCN 32
NguyễnVănVỵ
C. C¸c biÓu ®å
waiting
GettingToken
GettingBody
BiÓu ®å tr¹ng th¸i
Ng«n ng÷ m« h×nh hãa thèng nhÊt
Bộ môn Công nghệ phần mềm – ĐHCN 33
NguyễnVănVỵ
Ph©n tÝch/thiÕt kÕ h−íng ®èi t−îng
„M« h×nh ph©n tÝch
 M« h×nh nghiÖp vô
yM« h×nh miÒn
yBiÓu ®å ho¹t ®éng
 M« h×nh ca sö dông
 M« h×nh líp ph©n tÝch
 M« h×nh gãi líp
„M« h×nh thiÕt kÕ
ƒM« h×nh cÊu tróc gãi 
ƒM« h×nh céng t¸c
ƒM« h×nh líp
ƒ ®Æc t¶ líp, giao diÖn
Bộ môn Công nghệ phần mềm – ĐHCN 34
NguyễnVănVỵ
TiÕn tr×nh ph©n tÝch-thiÕt kÕ DT
TiÕn tr×nh ph©n tÝch vμ thiÕt kÕ h−íng ®èi t−îng
M« t¶
nghiÖp vô
LËp m« h×nh 
ca sö dông 
LËp m« h×nh
kiÕn tróc-gãi
ca sö dông
Ph©n tÝch 1 gãi
ca sö dông
Ph©n gãi c¸c 
líp ph©n tÝch
ThiÕt kÕ 
hÖ thèng
LËp biÓu ®å
c«ng t¸c 1 
gãi ph©n tÝch
X©y dùng c¸c
giao diÖn
LËp biÓu 
®å líp thiÕt kÕ
ThiÕt kÕ
líp
ThiÕt kÕ 
CSDL
ThiÕt kÕ 
giao diÖn
sö dông
NghiÖp vô Ph©n tÝch ThiÕt kÕ
Bộ môn Công nghệ phần mềm – ĐHCN 35
NguyễnVănVỵ
Ph©n tÝch h−íng ®èi t−îng 
1.M« t¶ nghiÖp vô
ƒ B»ng lêi
ƒ B»ng biÓu ®å ho¹t ®«ng
2.X©y dùng m« h×nh nghiÖp vô
ƒ M« h×nh miÒn lÜnh vùc
ƒ M« h×nh ca sö dông
3.Ph©n tÝch x¸c ®Þnh cÊu tróc (khëi th¶o) 
ƒ Lμm mÞn m« h×nh ca sö dông
ƒ X¸c ®Þnh c¸c gãi ca sö dông, giao diÖn
Bộ môn Công nghệ phần mềm – ĐHCN 36
NguyễnVănVỵ
1.Ph©n tÝch mét ca sö dông
ƒ T×m c¸c líp ph©n tÝch
ƒ X¸c ®Þnh liªn kÕt gi÷a c¸c líp
2.Ph©n gãi l¹i c¸c líp ph©n tÝch (t¨ng c−êng 
kiÕn tróc)
ƒ T¸ch c¸c líp dÞch vô & øng dông
ƒ Ph©n gãi c¸c líp ph©n tÝch theo tÇng
3.X¸c ®Þnh vμ m« t¶ c¸c giao diÖn 
ƒ X¸c ®inh giao diÖn gi÷a c¸c gãi
ƒ X¸c ®Þnh liªn kÕt gi÷a c¸c gãi
Ph©n tÝch h−íng ®èi t−îng 
Bộ môn Công nghệ phần mềm – ĐHCN 37
NguyễnVănVỵ
ThiÕt kÕ h−íng ®èi t−îng 
1.ThiÕt kÕ biÓu ®å t−¬ng t¸c mçi gãi
ƒ X¸c ®Þnh l¹i c¸c líp
ƒ X©y dùng biÓu ®å t−¬ng t¸c
2.Ph¸t triÓn biÓu ®å líp thiÕt kÕ
ƒ ChuyÓn biÓu ®å c«ng t¸c sang biÓu ®å líp
ƒ Hoμn thiÖn c¸c quan hÖ c«ng t¸c
3.ThiÕt kÕ c¸c líp 
ƒ ThiÕt kÕ c¸c thuéc tÝnh
ƒ ThiÕt kÕ c¸c ph−¬ng thøc
ƒ ThiÕt kÕ CSDL
4.ThiÕt kÕ giao diÖn ng−êi dïng
Bộ môn Công nghệ phần mềm – ĐHCN 38
NguyễnVănVỵ
VÝ dô: ph©n tÝch h−íng ®èi t−îng
1.Bμi to¸n: giao dÞch tÝn dông sö dông m¸y ATM
2.M« h×nh nghiÖp vô
Giao dÞch tÝn dông
göi tiÒn
rót tiÒn
ChuyÓn tiÒn
BiÓu ®å ca sö dông M« h×nh miÒn
ng©n hµng
tµi kho¶nkh¸ch
dÞch vô
1
1..*1..*
1
1..* 1
1
11
1..*
Bộ môn Công nghệ phần mềm – ĐHCN 39
NguyễnVănVỵ
„ X¸c ®Þnh gãi c¸c ca sö dông 
göi tiÒn
BiÓu ®å gãi ca sö dông
göi tiÒngöi tiÒn
Giao dÞch tÝn dông
VÝ dô: ph©n tÝch h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 40
NguyễnVănVỵ
„ Ph©n tÝch mét gãi c¸c ca sö dông 
M« hinh ca sử dụng M« h×nh ph©n tÝch
rót tiền thực thi ca sử dụng rót tiền
>
M¸y trả
tiền
giao diện 
thủ quỹ
điều khiển rut 
tiền
tài khoản
C¸c lớp ph©n tÝch thực thi ca sử dụng rót tiền.
VÝ dô: ph©n tÝch h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 41
NguyễnVănVỵ
„ BiÓu ®å ph©n tÝch mét gãi ca sö dông 
C¸c líp ph©n tÝch vμ quan hÖ gi÷a chóng
Tµi khoản
giao diện thủ quỹ
điều khiển 
rót tiền
M¸y trả tiền
Kh¸ch hµng
VÝ dô: ph©n tÝch h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 42
NguyễnVănVỵ
giao diện 
thủ quỹ
điều khiển 
chuyển tiền
M¸y trả tiền
M¸y nhận 
tiền
điều khiển 
nhận tiền
điều khiển 
rót tiền
chuyển đổi
tμi khoản
Tμi 
khoản
C¸c gãi cña c¸c líp ph©n tÝch 
kh¸ch hμng
„ BiÓu ®å gãi c¸c 
líp ph©n tÝch 
VÝ dô: ph©n tÝch h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 43
NguyễnVănVỵ
„ ThiÕt kÕ hÖ thèng 
M¸y 
kh¸ch
M¸y dịch 
vụ ứng 
dụng
M¸y dịch 
vụ ng©n 
hµng
internet
intranet
Biểu đồ bố trÝ c¸c nót của hệ thống
kh¸ch hµng
VÝ dô: Thiết kế h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 44
NguyễnVănVỵ
„ BiÓu ®å c¸c líp thiÕt kÕ 
Mµn h×nh 
hiển thị
Bµn phÝm
M¸y đọc 
thẻ
cảm ứng 
trả tiền
M¸y đẩy 
tiền M¸y đếm 
tiền
rót tiền
quản lý 
giao dịch
Tµi khoản
lịch sủ tµi 
khoản
quản lý 
tµi khoản
quản lý 
kh¸ch
C¸c lớp thiÕt kÕ tham gia thực hiện ca sử dụng rót tiền
VÝ dô: Thiết kế h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 45
NguyễnVănVỵ
: quản lý 
giao dịch
đưa thẻ vμo
Th«ng tin thẻ (ID)
Yªu cầu hiển thi PIN
hiện bảng yªu cầu
nhập vμo m· PIN 
hiện bảng yªu cầu
nhập vμo số tiền rót
Yªu cầu số tiền rót
số tiền (A)
Yªu cầu số tiền mặt (A)
Yªu cầu giảm số dư = (A)
đề nghi x¸c nhận PIN
m· PIN
Biểu đồ tuần tự thực hiện ca sử dụng rót tiền 
: khách
hàng
: máy 
đếm tiền
: quản lý 
khách
: màn hình
hiển thi
: máy 
đọc thẻ
: bàn 
phím 
VÝ dô: Thiết kế h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 46
NguyễnVănVỵ
„ThiÕt kÕ líp: tμi kho¶n
a. Bảng c¸c thuộc tÝnh :
Tªn thuéc tÝnh kiÓu Néi dung
IDtaikh string §Þnh danh tμi kho¶n
sotkh string Số tμi khoản dμnh cho một 
kh¸ch hμng gåm ch÷, sè, dÊu
sodu money Sè d− cã trong tμi khoản, ®¬n vị
®o lμ tiền tệ
VÝ dô: Thiết kế h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 47
NguyễnVănVỵ
„ThiÕt kÕ líp: Tμi kho¶n
b. Bảng c¸c thao t¸c (t¸c vụ)
Tªn thao t¸c ý nghĩa
taolap() Tạo một tài khoản cho kh¸ch hàng mới
gui() Bổ sung tiền gửi vào tài khoản
chuyen() Chuyển một số tiền từ 1 tài khoản sang 1 
tài khoản kh¸c
rut() Rót một số tiền từ tài khoản
dong() Đãng tài khoản
VÝ dô: Thiết kế h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 48
NguyễnVănVỵ
„ ThiÕt kÕ líp
Lớp tμi khoản với c¸c thuộc tÝnh vμ c¸c thao t¸c 
taolap (sotkh:string, sotien;money)
+ gui(sotkh:string, soien:money)
+ chuyen(sotkh:stringk, sotien:money, 
sotkh2:string)
+ rut (sotk:h:string, sotien;money) 
dong()
Taikhoan
IDtaikh:string
sotaikh: string
sodu: money
VÝ dô: Thiết kÕ h−íng ®èi t−îng
Bộ môn Công nghệ phần mềm – ĐHCN 49
NguyễnVănVỵ
MÉu thiÕt kÕ - Pattern
„ MÉu thiÕt kÕ: Pattern 
ƒ khi thiÕt kÕ cã nhiÒu tr−êng hîp cã sù t−¬ng tù
ƒ M« t¶ gi¶i ph¸p cña mét tr−êng chung cã thÓ ¸p cho 
tr−êng hîp kh¸c t−¬ng tù  gäi lμ mÉu thiÕt kÕ
„ M« t¶ mét mÉu bao gåm: 
ƒ VÊn ®Ò ®Æt ra (ng÷ c¶nh)
ƒ Gi¶i ph¸p: ph¸t biÓu nh− mét ch©m ng«n
ƒ KÕt qu¶
ƒ C¸c mÉu liªn quan
ƒ M« h×nh mÉu
Bộ môn Công nghệ phần mềm – ĐHCN 50
NguyễnVănVỵ
VÝ dô mét sè mÉu thiÕt kÕ
„ B¶n chÊt mÉu
™ MÉu thiÕt kÕ kh«ng ph¶i lμ c¸i g× míi mÎ
™ MÉu thiÕt kÕ lμ mét sù ®óc kÕt tõ kinh nghiÖm
„ 5 mẫu phần mềm g¸n tr¸ch nhiệm chung
GRASP thường được sử dụng nhiều nhất lμ:
ƒ Expert (chuyªn gia) 
ƒ Creator (bộ tạo lập) 
ƒ Low Coupling (ghÐp nối thấp)
ƒ HighCohension (kết dÝnh cao)
ƒ Controller (bộ điều khiển)
„
Bộ môn Công nghệ phần mềm – ĐHCN 51
NguyễnVănVỵ
VÝ dô mét sè mÉu thiÕt kÕ
„ M« h×nh mÉu cña mÉu chuyªn gia
ƒ VÊn ®Ò: Nguyªn t¾c g¸n tr¸ch nhiÖm cho 1 ®èi t−¬ng 
lμ g×?
ƒ Gi¶i ph¸p: H·y g¸n tr¸ch nhiÖm cho ®èi t−îng cã ®ñ
th«ng tin ®Ó thùc hiÖn tr¸chnhiÖm ®ã
ƒ KÕt qu¶: Gi¶m sù phô thuéc vμo líp kh¸c
ƒ MÉu liªn quan: kÕt dÝnh cao, ghÐp nèi láng
Bộ môn Công nghệ phần mềm – ĐHCN 52
NguyễnVănVỵ
VÝ dô mét sè mÉu thiÕt kÕ
„ M« h×nh mÉu chuyªn gia: bμi to¸n b¸n hμng
ƒ G¸n tr¸ch nhiÖm cho mathangban tÝnh tæng tiÒn 
b¸n 1 mÆt hμng tienIterm(upc, soluong) v× nã cã 
th«ng tin soluong vμ lÊy gi¸ tõ danhmuc
ƒ G¸n tr¸ch nhiÖm cho lanban tÝnh tæng tiÒn mét lÇn 
b¸n tongtien(sott) v× nã biÕt sè tiÒn tõng mÆt hμng 
thuéc lÇn b¸n
lanban
sott: int
ngay: date
taoSale( )
tongtien(sott)
mathangban
upc: string
sott: int
soluong: int
taoIterm( )
tienIterm(upc,soluong,p)
danhmuc
upc: string
mota: string
gia: int
taoDM( )
layGia(upc)
Bộ môn Công nghệ phần mềm – ĐHCN 53
NguyễnVănVỵ
Lîi Ých sö dông mÉu thiÕt kÕ
ƒ Cho ta gi¶i ph¸p cña vÊn ®Ò kh«ng cÇn t×m kiÕm
ƒ Dïng l¹i c¸i ®· cã, ®ì tèn thêi gian vμ c«ng søc
ƒ Cho thiÕt kÕ tèt vμ chÊt l−îng hÖ thèng cao
Bộ môn Công nghệ phần mềm – ĐHCN 54
NguyễnVănVỵ
C©u hái và thảo luận

File đính kèm:

  • pdfbai_giang_ky_nghe_phan_mem_bai_7_thiet_ke_huong_doi_tuong_ng.pdf