You are on page 1of 40

VIN KHOA HC V CNG NGH VIT NAM

VIN CNG NGH THNG TIN

PHN TCH THIT K HNG I TNG


PGS.TS. ng Vn c Email: dvduc@ioit.ac.vn

Ni dung
1. Tin trnh pht trin phn mm theo hng i tng 2. Gii thiu Ngn ng m hnh ha thng nht UML 3. M hnh ha nghip v 4. M hnh ha trng hp s dng 5. M hnh ha tng tc i tng

Biu lp v gi
7. Biu chuyn trng thi v biu hot ng 8. Biu kin trc vt l v pht sinh m trnh 9. M hnh ha d liu 10. Bi hc thc nghim
dvduc-2004 Phn tch thit k hng i tng Bi 6 - 2/40

Bi 6

Biu lp v gi

Lp l g?

i tng l ci g tn ti trong th gii thc Lp l m t thuc tnh, hnh vi, ng ngha ca mt nhm i tng

Lp xc nh thng tin no c lu tr trong i tng v hnh vi no i tng c

Th d v lp: Lp Employee

i tng ca lp c cc attribute: Name, Address, Salary Cc operation: Thu mn, ui vic v bt nhn vin?
Tn lp Thuc tnh Thao tc
- Private + Public

K php ha ca lp trong biu


Class - Attribute +Operation()


Phn tch thit k hng i tng Bi 6 - 4/40

dvduc-2004

Tm kim lp nh th no?

Vic tm kim y lp l kh khn Khuyn co

Tm lp t cc danh t trong lung s kin

Ch rng danh t c th l tc nhn, lp, thuc tnh v biu thc khng phi loi trn Nhng ci chung ca i tng to thnh lp Cc bo co tm ra trong pha phn tch yu cu hnh thnh lp giao din Cc thit b phn cng c biu din bi lp khc nhau

Tm lp t biu tng tc

Tm lp cc ni khc

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 5/40

Tm kim lp nh th no?

Cng vi chuyn gia lnh vc vn tr li cc cu hi sau y tm ra lp

C thng tin no cn lu tr hay phn tch? Nu c, n l lp


C h thng ngoi khng? Nu c th n c xem nh nhng lp cha trong h thng ca ta hay h thng ca ta tng tc vi chng C mu, th vin lp, thnh phn...? Nu c, thng thng chng cha cc ng vin lp H thng cn qun l cc thit b ngoi vi no? Mi thit b k thut ni vi h thng u l ng vin lp. Tc nhn ng vai tr tc nghip no? Cc nhim v ny c th l lp; th d ngi s dng, thao tc vin h thng, khch hng...
Phn tch thit k hng i tng Bi 6 - 6/40

dvduc-2004

Lp biu lp

Biu lp cho bit hnh nh tnh ca b phn h thng Biu lp bao gm cc lp v quan h gia chng Thng thng mi h thng c vi biu lp

Xy dng vi biu lp m t y h thng

Biu lp gip ngi pht trin quan st, lp k hoch cu trc h thng trc khi vit m trnh Rose

Biu lp c hnh thnh trong Logical View


Phn tch thit k hng i tng Bi 6 - 7/40

dvduc-2004

Stereotype ca lp

Trong biu lp, stereotype l c ch phn nhm lp UML c sn nhiu stereotype s dng Ba stereotype lp c s s dng trong pha phn tch l

Boundary

Dnh cho lp nm trn bin h thng vi th gii cn li Chng c th l form, report, giao din vi phn cng nh my in, scanner... Kho st biu UC tm kim lp bin

Form

Actor Boundary class

Use Case

Actor2 Use Case Actor1 Boundary class

Entity Control
Phn tch thit k hng i tng

dvduc-2004

Bi 6 - 8/40

Stereotype ca lp

Ba stereotype lp c s s dng trong pha phn tch l


Boundary Entity

Lp thc th l lp lu tr thng tin s ghi vo b nh ngoi Tm chng trong lung s kin v biu tng tc Thng thng phi to ra bng CSDL cho lp loi ny

BoundaryClass

Mi thuc tnh ca lp thc th s l trng trong bng CSDL

EntityClass

Control

C trch nhim iu phi hot ng ca cc lp khc Thng thng mi UC c mt lp iu khin N khng thc hin chc nng nghip v no Cc lp iu khin khc: iu khin s kin lin quan n an ninh v lin quan n giao dch CSDL
Phn tch thit k hng i tng

ControlClass

Ngi s dng t to ra stereotype mi


Bi 6 - 9/40

dvduc-2004

Cc loi lp trong biu

Phn loi lp theo cc khi nim ca ngn ng lp trnh c th: C++, Java, Web, Visual Basic, CORBA, Oracle... Rose h tr nhiu stereotype cho cc nhm lp, th d

Lp thng thng Lp tham s (Parameterized class) Lp hin thc (Instantiated class) Lp tin ch (Class utility) Lp tin ch tham s (Parameterized class utility) Lp tin ch hin thc (Instantiated class utility) Metaclass Giao din (Interfaces)

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 10/40

Cc loi lp trong biu

Lp tham s (Parameterized class)


Item List Attribute Operation()

S dng to ra h cc lp khc C tn khc l template S dng cho C++, Ada Th d vi lp tham s List, c th to ra cc lp EmployeeList, OrderList... t i s cho lp tham s

Cc i c hin th trong hp nt t

Lp hin thc (Instantiated class)


<EmployeeList> Attribute Operation()

L lp hin thc m i ca chng c gi tr Trong UML, k php lp hin thc l lp c tn i s trong angle brackets <>

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 11/40

Cc loi lp trong biu

Lp tin ch (Class utility)


L tp hp cc thao tc Th d chng c th l cc hm ton hc cc lp khc s dng K php ha: Hnh ch nht bng

Class Utility Operation()

Lp tin ch tham s (Parameterized class utility)


Class Utility

Item

L lp tham s cha tp cc thao tc L template to ra cc lp tin ch

Operation()

Lp tin ch hin thc (Instantiated class utility)

<Class Utility> Operation()

L lp tin ch tham s m i s ca chng c gi tr


Phn tch thit k hng i tng

dvduc-2004

Bi 6 - 12/40

Cc loi lp trong biu

Metaclass

MetaClass Attribute Operation()

L lp m hin thc ca n l lp ch khng phi i tng

Giao din (Interfaces)

Nhiu ngn ng hng i tng h tr khi nim giao din tch ci t lp khi giao din Giao din ch cha signatures ca phng php cho lp ch khng cha ci t Cch tip cn ny l c s ca ngn ng nh ngha giao din (Interface Definition Language IDL)

Cho php nh ngha giao din c lp ngn ng


ImplementationClass Interface

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 13/40

c t lp trong biu

Trong Rose:

S dng ca s c t lp gn cc thuc tnh cho lp nh stereotype, persistent, visibility... Ca s c t khc nhau vi cc ngn ng khc nhau khi chn ci t m hnh sau ny

Cc lp ca Java, XML, CORBA

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 14/40

c t lp trong biu

c t lp bao gm

Tn lp

Mi lp trong m hnh c tn duy nht Thng thng s dng danh t n, khng nn c du cch Th d: Flight, Airplane Xc nh kh nng nhn thy lp t ngoi gi Cc loi

Phm vi (Visibility)

Public: mi lp trong h thng c th nhn thy Private hay Protected: c th nhn thy t bn trong lp hay t lp friend Package hay Implementation: ch cc lp trong cng gi mi nhn thy

Tnh nhiu (Multiplicity) Yu cu lu tr Duy tr (Persistent) Tng tranh (Concurrency) Tru tng (Abstract)
Phn tch thit k hng i tng Bi 6 - 15/40

dvduc-2004

c t lp trong biu

c t lp bao gm

... Tnh nhiu ca lp (Multiplicity)


L s hin thc mong i ca lp Th d: tnh nhiu ca lp Employee l n, ca lp iu khin v lp Security Manager l 1... Multiplicity ngha

n (Mc nh)
0..0 0..1 0..n 1..1 1..n

Nhiu
Khng Khng hoc 1 Khng hoc nhiu Chnh xc 1 Mt hoc nhiu

Yu cu lu tr cho lp ...
Phn tch thit k hng i tng Bi 6 - 16/40

dvduc-2004

c t lp trong biu

c t lp bao gm

... Yu cu lu tr cho lp

t kch thc b nh mong i lu tr i tng ca lp Rose: c kh nng sinh ngn ng nh ngha d liu (Data Definition Language DDL) nh ngha cu trc ca CSDL Khi pht sinh DDL, Rose tm kim cc lp c nh du mt trong hai loi c tnh Persistence:

Duy tr (Persistent)

Persistent: Thng tin trong i tng ca lp s lu tr vo CSDL hay tp c khun mu khc Transient: Thng tin trong i tng ca lp s khng lu tr lu di

Khng s dng tnh cht persistence cho lp cng c, lp cng c tham s v lp cng c hin thc tham s.

Tng tranh (Concurrency) ...


Phn tch thit k hng i tng Bi 6 - 17/40

dvduc-2004

c t lp trong biu

c t lp bao gm

... Tng tranh (Concurrency)


Tng tranh m t ng x ca lp trong a lung iu khin Bn loi tng tranh

Sequential: (trng thi mc nh) lp ng x nh hot ng ch trong mt lung iu khin Guarded: Lp ng x nh trong a lung iu khin, cc lp trong cc lung khc nhau cng tc vi nhau khng lm nh hng n cc lp khc Active: Lp c lung iu khin ring Synchronous: Lp ng x nh trong a lung iu khin. Cc lp khng cng tc vi nhau v chng hot ng loi tr tng h.

Tru tng (Abstract)


L lp khng c hin thc ha S dng trong cu trc k tha


Phn tch thit k hng i tng

AbstractClass

dvduc-2004

Bi 6 - 18/40

Gi cc lp

Gi (Packages) nhm cc lp c nhng ci chung C nhiu quan im hnh thnh gi

Gi lp theo prototype

Th d c gi Boundaries, gi Control v gi Entities

Boundaries

Gi lp theo chc nng

Th d gi Security, gi Reporting, gi Error Handling...


Entities

Control

S dng t hp hai loi tip cn trn hnh thnh gi

C th t chc gi bn trong gi khc Quan h gia cc gi hnh thnh trn c s quan h gia cc lp trong cc gi.

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 19/40

Thuc tnh lp

Thuc tnh l nhm thng tin lin kt vi lp C th gn mt hay nhiu thuc tnh vo lp Tm kim thuc tnh?

Tm trong ti liu UC Tm cc danh t trong lung s kin

Th d: Ngi s dng nhp tn, a ch ngy sinh ca Nhn vin -> Tn, a ch, ngy sinh l danh t v l thuc tnh ca lp Nhn vin Th d ti liu yu cu h thng m t cc thng tin cn thu thp

Tm trong ti liu yu cu h thng

Tm thuc tnh trong cu trc CSDL

Nu xc nh cu trc CSDL th cc trng trong bng l thuc tnh ca lp

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 20/40

Thuc tnh lp

Trong trng hp kh khn quyt nh danh t tm ra l thuc tnh hay l lp

Th d: Tn cng ty l thuc tnh hay lp?


Loi ng dng c th quyt nh vic ny Mt khc cn quan st nhm thng tin c hnh vi hay khng m bo rng cc thuc tnh tm ra phi c ch cho yu cu h thng Gn thn trng thuc tnh cho cc lp

Khi kt thc tm kim thuc tnh

Khng nn hnh thnh lp c qu nhiu hay qu t thuc tnh (tt nht nn c lp t hn 10 thuc tnh)

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 21/40

c t thuc tnh lp

Trong Rose: s dng ca s c t thuc tnh gn c tnh cho thuc tnh Vi mi thuc tnh trong biu cn c

Tn thuc tnh Kiu d liu thuc tnh lu tr. Ph thuc vo ngn ng lp trnh

Th d, Add : String Th d, IDNumber: Interger=0

Gi tr khi u

Stereotype Phm vi (visibility) ....


Phn tch thit k hng i tng Bi 6 - 22/40

dvduc-2004

c t thuc tnh lp

Vi mi thuc tnh trong biu cn c


... Phm vi (visibility)

Public Attributes Private Attributes and Operation s Public Operations

Mt tnh cht quan trng ca lp trnh hng i tng l tnh gi Bn la chn phm vi cho thuc tnh

Public: Mi lp u nhn thy thuc tnh (+) Private: Lp khc khng nhn thy thuc tnh (-) Protected: Cc lp k tha c th nhn thy (#) Package v Implementation: Thuc tnh l public i vi cc lp trong cng gi
Public Private Protected Package (Implementation) + # Public Private Protected

...
Phn tch thit k hng i tng Bi 6 - 23/40

dvduc-2004

c t thuc tnh lp

Vi mi thuc tnh trong biu cn c


... Kiu lu tr thuc tnh


By value: Lp cha thuc tnh By reference: Thuc tnh t ngoi lp, lp c con tr n thuc tnh Unspecified: Khng xc nh L thuc tnh chia s cho mi hin thc lp K hiu trong lp l tn thuc tnh c gch chn (phin bn c: $) L thuc tnh c to bi 1 hay nhiu thuc tnh khc K hiu: du / trc tn thuc tnh
aClass staticAttribute / derivedAttribute

Thuc tnh tnh


Thuc tnh suy din


...

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 24/40

Thao tc lp

Thao tc l hnh vi kt hp vi lp, n xc nh trch nhim ca lp M t thao tc bao gm


Tn thao tc Tham s thao tc Kiu gi tr cho li

K php trong UML


Operation Name (arg1: arg1 data type, arg2: arg2 data type...): return type

Ch khi b sung thao tc trong lp


Khng nn lp ch c 1 hay 2 thao tc Nu lp khng c thao tc th m hnh ha n nh thuc tnh Nu lp c qu nhiu thao tc th kh qun l, nn chia s chng ra cc lp khc
Phn tch thit k hng i tng Bi 6 - 25/40

dvduc-2004

Cc loi thao tc

Thao tc ci t (Implementor)

Ci t mt vi chc nng nghip v Hu nh mi thng ip trong biu tng tc nh x vo thao tc ci t Qun l vic lp v hy b i tng

Thao tc qun l (Manager)

Th d: cc cu t, hy t ca lp

Thao tc xm nhp (Access)

Thao tc xm nhp vo cc thuc tnh private v protected

Th d: cc thao tc Get v Set cho mi thuc tnh trong lp

Thao tc tr gip (Helper)


L cc thao tc private v protected ca lp Cc thng ip phn thn trong biu tng tc nh x n thao tc ny
Phn tch thit k hng i tng Bi 6 - 26/40

dvduc-2004

Quan h gia cc lp

Quan h l kt ni ng ngha gia cc lp

Quan h cho mt lp bit thuc tnh, thao tc v quan h ca lp khc Kt hp (Associations) Ph thuc (Dependencies) T hp (Aggregations) Hin thc quan h (Realizes Relationships) Khi qut ha (Generalizations)

Cc loi quan h chnh


dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 27/40

Tm kim quan h

Kho st biu trnh t v biu cng tc

Nu lp A gi thng ip n lp B th gia chng c quan h

Thng thng l quan h kt hp hay ph thuc

Kho st cc lp tm ra cc quan h

Quan h tng th - thnh phn

Bt k lp no c hnh thnh t lp khc th chng c quan h tp hp Nu nhiu lp k tha t lp th ba th gia chng vi lp th ba c quan h khi qut ha

Quan h khi qut ha

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 28/40

Quan h kt hp

Association l kt ni ng ngha gia cc lp


Kt hp cho mt lp bit v thuc tnh v thao tc public ca lp khc Quan h kt hp hai chiu, mt chiu Quan h kt hp phn thn
Person

House

Person

House

Person

class Person { public: Person(); ~Person(); private: House *the_House; };

class House { public: House(); ~House(); private: Person *the_Person; };

class Person { public: Person(); ~Person(); private: House *the_House; };

class House { public: House(); ~House(); private: };

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 29/40

Quan h ph thuc

Dependency l quan h ch ra mt lp tham chiu lp khc

Khi thay i c t lp tham chiu th lp s dng n b nh hng Rose khng b sung thuc tnh cho hai lp c quan h ph thuc Cc lnh ngn ng c pht sinh h tr quan h ph thuc

Th d: #include
House Person

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 30/40

Quan h ph thuc gi

C th v quan h ph thuc gia cc gi nh gia cc lp Ph thuc gi t gi A n gi B c ngha rng vi gi trong lp A c quan h mt chiu vi cc lp trong gi B
Package A Package B

Trnh ph thuc vng gia cc gi


Package A Package B

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 31/40

Ph thuc t hp
Door

Aggregation l quan h gia tng th v b phn (WholeParts)

2..4 Car 1 1 1

Trong quan h ny, mt lp biu din ci ln hn cn lp kia biu din ci nh hn Biu din quan h has-a

4
Tire

Engine

Mt i tng ca lp tng th c nhiu i tng ca lp thnh phn

Tng th v b phn c th hy b vo thi im khc nhau Tn khc: quan h t hp bi tham chiu (by reference)
Phn tch thit k hng i tng

#include "car.h" class Door { ..... private: Car *the_car; }; #include "door.h" class Car { ... private: Door *the_Door; }; Bi 6 - 32/40

dvduc-2004

Quan h gp

Composition l dng c bit (mnh hn) ca quan h t hp

Tng th v thnh phn c hnh thnh hay hy b vo cng thi im Tn khc: quan h t hp bi gi tr (by value)
Frame 1
#include "Window.h" class Frame { ... private: }

Window n
#include "Frame.h" class Window { ... private: Frame the_Frame; }

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 33/40

Quan h khi qut ha

Generalization l quan h k tha ca hai phn t m hnh nh lp, tc nhn, Use case v gi

Cho php mt lp k tha cc thuc tnh, thao tc public v protected ca lp khc

Employee Name Address SSN Hire() Fire()

HourlyEmp Rate

SalariedEmp Salary

#include Employee.h class HourlyEmp: public Employee { private: float Rate; ...... };

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 34/40

c t quan h gia cc lp

c t chi tit quan h bao gm


Multiplicity Tn quan h Tn nhim v Export control Quan h tnh Quan h Friend Phm vi kt hp (Qualifier) Phn t lin kt

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 35/40

c t quan h gia cc lp

c t chi tit quan h bao gm

Multiplicity

Cho bit bao nhiu hin thc ca mt lp lin kt vi mt hin thc ca lp khc vo cng thi im
Course 0..4 10..20 Student

Tn quan h

Tn quan h l ng t m t ti sao li tn ti quan h


Company

Employs

Person

...

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 36/40

c t quan h gia cc lp

c t chi tit quan h bao gm


..... Tn nhim v

S dng tn nhim v thay th cho tn quan h trong quan h kt hp hay t hp ch ra ti sao quan h tn ti
Company +Employer +Employee Person

Export control

Trong quan h kt hp, thuc tnh c pht sinh trong m trnh Phm vi c gn cho thuc tnh bao gm: Public, Private, Protected, Package hay Implementation

...

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 37/40

c t quan h gia cc lp

c t chi tit quan h bao gm


..... Quan h tnh


Rose pht sinh thuc tnh cho quan h kt hp v quan h t hp C th gn tnh static cho thuc tnh chia s cho mi hin thc lp
Company +Employer +$Employee Person

Quan h Friend

Quan h ny ch ra rng lp Client c th xm nhp cc thuc tnh v thao tc khng phi public ca lp Supplier C th gn Friend cho kt hp, t hp, ph thuc hay khi qut ha M ngun ca lp Supplier s bao gm logc lp Client c phm vi Friend

...
Phn tch thit k hng i tng Bi 6 - 38/40

dvduc-2004

c t quan h gia cc lp

c t chi tit quan h bao gm


..... Phm vi kt hp (Qualifier)

S dng qualifier gim phm vi kt hp


Company
PersonID : Integer Person

Phn t lin kt

Cn gi l lp kt hp, ni lu tr thuc tnh lin quan n kt hp


Student 10..20 Grade 0..4 Course

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 39/40

Tm tt

Bi ny xem xt cc vn sau

Tm kim lp Tm kim thuc tnh, thao tc lp Tm kim cc loi quan h gia cc lp Biu din biu lp v gi Biu din ha cc thuc tnh ca thuc tnh, thao tc trong lp Biu din cc thuc tnh cho quan h gia cc lp

dvduc-2004

Phn tch thit k hng i tng

Bi 6 - 40/40

You might also like