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: vynv@coltech.vnu.vn

Bài 7: Thiết kế hướng đối tượng

NguyễnVănVỵ

Nội dung

(cid:132) VÊn ®Ò tån t¹i trong h−íng kiÕn tróc (cid:132) Kh¸i niÖm liªn quan ®Õn ®èi t−îng (cid:132) Ng«n ng÷ UML (cid:132) Ph©n tÝch h−íng ®èi t−îng (cid:132) ThiÕt kÕ h−íng ®èi t−îng (cid:132) 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. 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

5.

Approach. Fifth Edition, McGraw Hill, 2001. 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 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ỵ

(cid:132) D÷ liÖu lμ chung cho c¶ hÖ thèng

(cid:144) 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

(cid:144) 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 (cid:144) Söa ®æi 1 thñ tôc cã nguy c¬ ¶nh h−ëng tíi phÇn

kh¸c liªn quan

(cid:132) Thay ®æi cÊu tróc d÷ liÖu dÉn ®Õn thay ®æi tæng

thÓ hÖ thèng (cid:198) d÷ liÖu cÇn tæ chøc tèt (cid:132) 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ỵ

(cid:132) HiÖn ®ang trë nªn phæ biÕn

(cid:132) Lμ mét c¸ch tiÕp cËn kh¸c, nh×n nhËn hÖ

thèng theo c¸c quan ®iÓm:

(cid:144) tËp c¸c ®èi t−îng cã t−¬ng t¸c víi nhau (cid:144) mçi ®èi t−îng bao gãi c¶ d÷ liÖu vμ c¸c xö lý

trªn chóng

(cid:144) T−¬ng t¸c gi÷a c¸c ®èi t−êng b»ng truyÒn

th«ng b¸o

(cid:144) 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

Receipt

Invoice

invoice# date amount customer#

customer# name address credit period

invoice# date amount customer

Payment

issue () sendReminder () acceptPayment () sendReceipt ()

invoice# date amount customer#

Bộ môn Công nghệ phần mềm – ĐHCN 7

¦u ®iÓm cña OOD

NguyễnVănVỵ

(cid:132) DÔ b¶o tr×: c¸c ®èi t−îng ®−îc hiÓu nh− c¸c

thùc thÓ ho¹t ®éng ®éc lËp (cid:144) Bao gãi th«ng tin (cid:144) liªn kÕt láng lÎo (trao ®æi b»ng truyÒn th«ng b¸o)

(cid:132) DÔ t¸i sö dông: (cid:144) ®é ®éc lËp cao (cid:144) cã kh¶ n¨ng kÕ thõa

(cid:132) 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ỵ

(cid:132) 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

(cid:132) Ph©n ®Þnh vai trß vμ tr¸ch nhiÖm cña chóng

trong hÖ thèng

(cid:132) 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 (cid:132) 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

(cid:132) 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ã

(cid:132) §é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

(cid:132) 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ỵ

(cid:132) 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

(cid:132) 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

(cid:132) Líp ®−îc x¸c ®Þnh b»ng:

(cid:144) Tªn (cid:144) Bé c¸c thuéc tÝnh (cid:144) 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 11

Trõu t−îng hãa

NguyễnVănVỵ

(cid:132) 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ý (cid:144) chØ m« t¶ c¸c tÝnh chÊt chóng ta quan t©m (cid:144) che giÊu c¸c th«ng tin kh«ng cÇn thiÕt

(cid:132) §−îc cμi ®Æt nh− lμ:

(cid:144) kiÓu d÷ liÖu trõu t−îng, líp ®èi t−îng (cid:144) 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ỵ

(cid:132) Lμ kh¸i niÖm c¬ së cña thiÕt kÕ/lËp tr×nh

h−íng ®èi t−îng

(cid:132) Che giÊu th«ng tin ®Ó ®èi t−îng kh«ng cÇn

thiÕt kh«ng thÓ sö dông

(cid:132) ChØ cung cÊp chøc n¨ng, dÞch vô cÇn

(cid:132) Che giÊu c¸c yÕu tè cã kh¶ n¨ng thay ®æi

(cid:144)cÊu tróc d÷ liÖu (cid:144)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ỵ

(cid:132) M« t¶ mèi quan hÖ gi÷a c¸c kho¶n môc d÷ liÖu (cid:132) 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 (cid:132) C¸c cÊu tróc c¬ së

(cid:144) kho¶n môc v« h−íng (cid:144) m¶ng (mét chiÒu, nhiÒu chiÒu) (cid:144) danh s¸ch mãc nèi (cid:144) 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ỵ

(cid:132) 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

(cid:132) 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) (cid:132) 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

(cid:132) 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

Programmer

Manager

project progLanguage

budgetsControlled dateAppointed

Project Manager

Dept. Manager

Strategic Manager

projects

dept

responsibilities

Bộ môn Công nghệ phần mềm – ĐHCN 17

¦u ®iÓm cña kÕ thõa

NguyễnVănVỵ

(cid:132) Lμ c¬ chÕ trõu t−îng ®Ó ph©n lo¹i c¸c líp (thùc

thÓ)

(cid:132) T¸i sö dông c¶ ë møc thiÕt kÕ vμ møc lËp tr×nh

(cid:144) t¸i sö dông cÊu tróc d÷ liÖu (cid:144) t¸i sö dông ph−¬ng thøc:

(cid:121) giao diÖn (cid:121) cμi ®Æt (m·)

(cid:132) 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ỵ

o4: C4

state o4

o1: C1 state o1 ops1()

o3:C3 state o3 ops3 ()

ops4 ()

o5:C5

o6: C1

o2: C3

state o5 ops5 ()

state o6 ops1 ()

state o2 ops3 ()

Bộ môn Công nghệ phần mềm – ĐHCN 19

T−¬ng t¸c gi÷a c¸c ®èi t−îng

NguyễnVănVỵ

(cid:132) C¸c ®èi t−îng giao tiÕp b»ng trao ®æi th«ng b¸o (cid:132) Th«ng b¸o

(cid:144) Tªn dÞch vô ®−îc yªu cÇu (cid:144) Th«ng tin dïng ®Ó thùc hiÖn dÞch vô

(cid:132) C¸c lo¹i ®èi t−îng

(cid:144) actor: chØ göi th«ng b¸o (cid:144) agent: göi vμ nhËn th«ng b¸o (cid:144) server: chØ nhËn th«ng b¸o

(cid:132) Thùc tÕ, th«ng b¸o ®−îc cμi ®Æt b»ng lêi gäi hμm

(cid:144) Tªn = tªn hμm (cid:144) Th«ng tin = danh s¸ch tham sè

Bộ môn Công nghệ phần mềm – ĐHCN 20

Mét sè vÊn ®Ò dïng kÕ thõa

NguyễnVănVỵ

(cid:132) §èi t−îng kh«ng tù chøa, kh«ng thÓ hiÓu nÕu

kh«ng tham chiÕu ®Õn líp cha

(cid:132) 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 21

KÕ thõa vμ OOD

NguyễnVănVỵ

(cid:132) 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

(cid:132) 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 22

e. Ng«n ng÷ m« h×nh hãa thèng nhÊt

Unified Modeling Language

NguyễnVănVỵ

(cid:132) Là một ngôn ngữ mô hình để phát triển

phần mềm hướmg đối tượng

(cid:132) Các đặc trưng: UML là ngôn ngữ:

(cid:131) độ họa (cid:131) làm trực quan hóa (cid:131) đặc tả (cid:131) xây dựng mô hình (cid:131) làm tài liệu

Bộ môn Công nghệ phần mềm – ĐHCN 23

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

(cid:132) 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)

Bộ môn Công nghệ phần mềm – ĐHCN 24

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

(cid:132) 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

Window

Đặt hàng

Đặt hàng

origin open()

Actor Interface

Component-thμnhfần

Node - nót

orderform.java

Server

Bộ môn Công nghệ phần mềm – ĐHCN 25

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

(cid:132) C¸c sù vËt hμnh vi , nhãm gép, gi¶i thÝch

state machine

package

interaction

display

®îi

Client + OrderForm + Tracking FormOrde

Note

Class

Tù t¹o

Bộ môn Công nghệ phần mềm – ĐHCN 26

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

B. C¸c mèi quan hÖ

dependence

assosiation

generalization

0..1 1..*

realization

aggregation

composite

Bộ môn Công nghệ phần mềm – ĐHCN 27

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

C. C¸c biÓu ®å

“extend”

®Æt héi nghi

Gäi®iÖntho¹i

“use”

Tr¶lêi

BiÓu ®å cửa sa sö dông

Bộ môn Công nghệ phần mềm – ĐHCN 28

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

C. C¸c biÓu ®å

tμi kho¶n

GiaodiÖn róttiÒn

®iÒu khiÓn rót tiÒn

GiaodiÖnnhËntiÒn

lÞch sö tμi kho¶n BiÓu ®å cửa c«ng t¸c ph©n tÝch

Bộ môn Công nghệ phần mềm – ĐHCN 29

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

c:company

TransportAgent

d2:Department

d1:Department

Message

Queue

name=“R&D”

name =“Sale”

d3:Department

p: Person

OutgoingQueue

IncomingQueue

name = “US Sales”

name=“Exin”

BiÓu ®å líp BiÓu ®å ®èi t−îng

Bộ môn Công nghệ phần mềm – ĐHCN 30

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

C. C¸c biÓu ®å

:message

:OutgoingQueue

:TranAgent

create

ad dMessage

RemoveMessage

BiÓu ®å tuÇn tù

Bộ môn Công nghệ phần mềm – ĐHCN 31

Ng«n ng÷ m« h×nh hãa thèng nhÊt

NguyễnVănVỵ

C. C¸c biÓu ®å

waiting

GettingToken

GettingBody

BiÓu ®å tr¹ng th¸i

Bộ môn Công nghệ phần mềm – ĐHCN 32

Ph©n tÝch/thiÕt kÕ h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) M« h×nh ph©n tÝch

(cid:132) M« h×nh thiÕt kÕ

(cid:131) M« h×nh cÊu tróc gãi (cid:131) M« h×nh céng t¸c (cid:131) M« h×nh líp (cid:131) ®Æc t¶ líp, giao diÖn

(cid:160)M« h×nh nghiÖp vô (cid:121) M« h×nh miÒn (cid:121) BiÓu ®å ho¹t ®éng (cid:160)M« h×nh ca sö dông (cid:160)M« h×nh líp ph©n tÝch (cid:160)M« h×nh gãi líp

Bộ môn Công nghệ phần mềm – ĐHCN 33

TiÕn tr×nh ph©n tÝch-thiÕt kÕ DT

NguyễnVănVỵ

ThiÕt kÕ líp

ThiÕt kÕ hÖ thèng

Ph©n tÝch 1 gãi ca sö dông

M« t¶ nghiÖp vô

ThiÕt kÕ CSDL

LËp m« h×nh ca sö dông

Ph©n gãi c¸c líp ph©n tÝch

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Õ

LËp m« h×nh kiÕn tróc-gãi ca sö dông

ThiÕt kÕ giao diÖn sö dông

NghiÖp vô

Ph©n tÝch

ThiÕt kÕ

TiÕn tr×nh ph©n tÝch vμ thiÕt kÕ h−íng ®èi t−îng

Bộ môn Công nghệ phần mềm – ĐHCN 34

Ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

1. M« t¶ nghiÖp vô

(cid:131) B»ng lêi (cid:131) B»ng biÓu ®å ho¹t ®«ng

2. X©y dùng m« h×nh nghiÖp vô

(cid:131) M« h×nh miÒn lÜnh vùc (cid:131) M« h×nh ca sö dông

3. Ph©n tÝch x¸c ®Þnh cÊu tróc (khëi th¶o)

(cid:131) Lμm mÞn m« h×nh ca sö dông (cid:131) 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 35

Ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

1. Ph©n tÝch mét ca sö dông (cid:131) T×m c¸c líp ph©n tÝch (cid:131) 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) (cid:131) T¸ch c¸c líp dÞch vô & øng dông (cid:131) 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 (cid:131) X¸c ®inh giao diÖn gi÷a c¸c gãi (cid:131) X¸c ®Þnh liªn kÕt gi÷a c¸c gãi

Bộ môn Công nghệ phần mềm – ĐHCN 36

ThiÕt kÕ h−íng ®èi t−îng

NguyễnVănVỵ

1. ThiÕt kÕ biÓu ®å t−¬ng t¸c mçi gãi

(cid:131) X¸c ®Þnh l¹i c¸c líp (cid:131) X©y dùng biÓu ®å t−¬ng t¸c

2. Ph¸t triÓn biÓu ®å líp thiÕt kÕ

(cid:131) ChuyÓn biÓu ®å c«ng t¸c sang biÓu ®å líp (cid:131) Hoμn thiÖn c¸c quan hÖ c«ng t¸c

3. ThiÕt kÕ c¸c líp

(cid:131) ThiÕt kÕ c¸c thuéc tÝnh (cid:131) ThiÕt kÕ c¸c ph−¬ng thøc (cid:131) 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 37

VÝ dô: ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

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

ng©n hµng

dÞch vô

1..*

1 1

1

1..*

1..*

1..*

göi tiÒn

ChuyÓn tiÒn

tµi kho¶n

1 kh¸ch

1

1

rót tiÒn

M« h×nh miÒn

BiÓu ®å ca sö dông

Bộ môn Công nghệ phần mềm – ĐHCN 38

VÝ dô: ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) X¸c ®Þnh gãi c¸c ca sö dông

Giao dÞch tÝn dông

göi tiÒn

göi tiÒn

göi tiÒn

BiÓu ®å gãi ca sö dông

Bộ môn Công nghệ phần mềm – ĐHCN 39

VÝ dô: ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) Ph©n tÝch mét gãi c¸c ca sö dông

M« h×nh ph©n tÝch

M« hinh ca sử dụng

<>

rót tiền

thực thi ca sử dụng rót tiền

C¸c lớp ph©n tÝch thực thi ca sử dụng rót tiền.

tài khoản giao diện thủ quỹ điều khiển rut tiền M¸y trả tiền

Bộ môn Công nghệ phần mềm – ĐHCN 40

VÝ dô: ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) BiÓu ®å ph©n tÝch mét gãi ca sö dông

M¸y trả tiền

Kh¸ch hµng

điều khiển rót tiền

giao diện thủ quỹ

Tµi khoản

C¸c líp ph©n tÝch vμ quan hÖ gi÷a chóng

Bộ môn Công nghệ phần mềm – ĐHCN 41

VÝ dô: ph©n tÝch h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) BiÓu ®å gãi c¸c líp ph©n tÝch

M¸y trả tiền

điều khiển rót tiền

giao diện thủ quỹ kh¸ch hμng điều khiển chuyển tiền Tμi khoản chuyển đổi tμi khoản

C¸c gãi cña c¸c líp ph©n tÝch

M¸y nhận tiền điều khiển nhận tiền

Bộ môn Công nghệ phần mềm – ĐHCN 42

VÝ dô: Thiết kế h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) ThiÕt kÕ hÖ thèng

M¸y kh¸ch

kh¸ch hµng

intranet

internet

Biểu đồ bố trÝ c¸c nót của hệ thống

M¸y dịch vụ ng©n hµng M¸y dịch vụ ứng dụng

Bộ môn Công nghệ phần mềm – ĐHCN 43

VÝ dô: Thiết kế h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) BiÓu ®å c¸c líp thiÕt kÕ

M¸y đọc thẻ

quản lý giao dịch

Mµn h×nh hiển thị

lịch sủ tµi khoản

Bµn phÝm

quản lý kh¸ch

rót tiền

M¸y đẩy tiền

Tµi khoản

quản lý tµi khoản

M¸y đếm tiền

cảm ứng trả tiền

C¸c lớp thiÕt kÕ tham gia thực hiện ca sử dụng rót tiền

Bộ môn Công nghệ phần mềm – ĐHCN 44

VÝ dô: Thiết kế h−íng ®èi t−îng

NguyễnVănVỵ

: máy

: quản lý : máy : bàn giao dịch đếm tiền đọc thẻ : màn hình hiển thi phím : quản lý khách

: khách hàng

đư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

m· PIN

đề nghi x¸c nhận PIN

Yªu cầu số tiền rót

hiện bảng yªu cầu

nhập vμo 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)

Biểu đồ tuần tự thực hiện ca sử dụng rót tiền

Bộ môn Công nghệ phần mềm – ĐHCN 45

VÝ dô: Thiết kế h−íng ®èi t−îng

NguyễnVănVỵ

:

(cid:132) 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 sotkh

string string

§Þnh danh tμi kho¶n 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ệ

Bộ môn Công nghệ phần mềm – ĐHCN 46

VÝ dô: Thiết kế h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) ThiÕt kÕ líp: Tμi kho¶n

b. Bảng c¸c thao t¸c (t¸c vụ)

ý nghĩa

Tªn thao t¸c

taolap() gui() chuyen()

Tạo một tài khoản cho kh¸ch hàng mới Bổ sung tiền gửi vào tài khoản Chuyển một số tiền từ 1 tài khoản sang 1 tài khoản kh¸c Rót một số tiền từ tài khoản Đãng tài khoản

rut() dong()

Bộ môn Công nghệ phần mềm – ĐHCN 47

VÝ dô: Thiết kÕ h−íng ®èi t−îng

NguyễnVănVỵ

(cid:132) ThiÕt kÕ líp

Taikhoan

IDtaikh:string sotaikh: string sodu: money

taolap (sotkh:string, sotien;money)

+ gui(sotkh:string, soien:money) + chuyen(sotkh:stringk, sotien:money,

sotkh2:string) + rut (sotk:h:string, sotien;money)

dong()

Lớp tμi khoản với c¸c thuộc tÝnh vμ c¸c thao t¸c

Bộ môn Công nghệ phần mềm – ĐHCN 48

MÉu thiÕt kÕ - Pattern

NguyễnVănVỵ

(cid:132) MÉu thiÕt kÕ: Pattern

(cid:131) khi thiÕt kÕ cã nhiÒu tr−êng hîp cã sù t−¬ng tù (cid:131) 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ù (cid:31) gäi lμ mÉu thiÕt kÕ

(cid:132) M« t¶ mét mÉu bao gåm: (cid:131) VÊn ®Ò ®Æt ra (ng÷ c¶nh) (cid:131) Gi¶i ph¸p: ph¸t biÓu nh− mét ch©m ng«n (cid:131) KÕt qu¶ (cid:131) C¸c mÉu liªn quan (cid:131) M« h×nh mÉu

Bộ môn Công nghệ phần mềm – ĐHCN 49

VÝ dô mét sè mÉu thiÕt kÕ

NguyễnVănVỵ

(cid:132) B¶n chÊt mÉu

(cid:153) MÉu thiÕt kÕ kh«ng ph¶i lμ c¸i g× míi mÎ (cid:153) MÉu thiÕt kÕ lμ mét sù ®óc kÕt tõ kinh nghiÖm

(cid:132) 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μ:

(cid:131) Expert (chuyªn gia) (cid:131) Creator (bộ tạo lập) (cid:131) Low Coupling (ghÐp nối thấp) (cid:131) HighCohension (kết dÝnh cao) (cid:131) Controller (bộ điều khiển)

(cid:132)

Bộ môn Công nghệ phần mềm – ĐHCN 50

VÝ dô mét sè mÉu thiÕt kÕ

NguyễnVănVỵ

(cid:132) M« h×nh mÉu cña mÉu chuyªn gia

(cid:131) VÊn ®Ò: Nguyªn t¾c g¸n tr¸ch nhiÖm cho 1 ®èi t−¬ng

lμ g×?

(cid:131) 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 ®ã (cid:131) KÕt qu¶: Gi¶m sù phô thuéc vμo líp kh¸c (cid:131) 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 51

VÝ dô mét sè mÉu thiÕt kÕ

NguyễnVănVỵ

(cid:132) M« h×nh mÉu chuyªn gia: bμi to¸n b¸n hμng (cid:131) 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

(cid:131) 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)

danhmuc upc: string mota: string gia: int taoDM( ) layGia(upc)

mathangban upc: string sott: int soluong: int taoIterm( ) tienIterm(upc,soluong,p)

Bộ môn Công nghệ phần mềm – ĐHCN 52

Lîi Ých sö dông mÉu thiÕt kÕ

NguyễnVănVỵ

(cid:131) Cho ta gi¶i ph¸p cña vÊn ®Ò kh«ng cÇn t×m kiÕm (cid:131) Dïng l¹i c¸i ®· cã, ®ì tèn thêi gian vμ c«ng søc (cid:131) 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 53

C©u hái và thảo luận

NguyễnVănVỵ

Bộ môn Công nghệ phần mềm – ĐHCN 54