Each line item is the product of the unit price and quantity} PTTKHT bang UML - BM HTTT 7... Thương la private va protected... PTTKHT bang UML - BM HTTT 21 Check.
Trang 3L p thi t k ơ ê ê
L p thi t k ơ ê ê
Trong UML, l p thi t k bao ơ ê ê
g m 2 thanh ph n chinh:ô â
◦ Thu c tinh (attribute)ô
◦ Thao tac (operation)
PTTKHT bang UML - BM HTTT 3
Trang 4Thao tac (Operation)
La hanh vi (behavior) liên quan đ n 1 l p.ê ơ
M t operation có 4 thanh ph n:ô â
◦ T m nhin (visibility)â
◦ Tên thao tac (Operation name)
◦ Cac tham s ngo vao: argument1, argument2 ô
◦ Gia tr tr v (return type) i a ê
Ký hi u:ệ
Visibility Operation Name(argument1 :
argument1 data type, argument2 :
Trang 5B n ki u t m nhin (visibility) ô ê â
B n ki u t m nhin (visibility) ô ê â
Public (+) cho phep t t c cac l p â a ơ
khac bên ngoai đ ươ c xem va s d ng ư u operation nay.
Private (-) gi i h n vi c truy xu t ch ơ a ệ â i trong ph m vi c a class Vi d ch có a u u i cac operation c a class m i đ u ơ ươ c
truy xu t đ n thu c tinh riêng â ê ô
(private) c a l p đó u ơ
PTTKHT bang UML - BM HTTT 5
Trang 6B n ki u t m nhin (visibility) ô ê â
B n ki u t m nhin (visibility) ô ê â
Protected (#) cho phep ch cac l p i ơ
con (subclass) c a l p đó m i đ u ơ ơ ươ c xem va s d ng operation Do tinh k ư u ê
th a cac l p con ph i truy xu t đ ư ơ a â ươ c
đ n cac thu c tinh va thao tac c a ê ô u
l p cha ơ
Package (~) cho phep cac đ i t ô ươ ng
Trang 7Vi d v thao tac u ê
Vi d v thao tac u ê
+ totalOrderAmount (order : Order) : Dollar
{The total is the sum of all line items less the
volume discount Each line item is the product
of the unit price and quantity}
PTTKHT bang UML - BM HTTT 7
Trang 9Implementor Operations
Th c thi 1 s ch c năng nghi p v ự ô ứ ệ u
Operation lo i nay tha ương đươc tim th y trong â
lươc đ Interaction vi lô ươc đ nay t p trung ô ậ
ch y u vao ch c năng nghi p v M i message u ê ứ ệ u ỗtrong lươc đ có th anh x thanh 1 ô ê a
implementor operation
M i implementor operation c ng có th l n ỗ ũ ê â
ngươ ê ac v l i yêu c u ban đ u â â
PTTKHT bang UML - BM HTTT
Trang 10Implementor Operations
Vi m i operation đỗ ươc suy t message trên lư ươc
đ interaction, ma lô ươc đ nay l i đô a ươc suy t ưflow of events, va flow of event đ n t use case ê ư
va use case thi suy đươ ưc t requirement
Kh năng l n theo v t nay (trace) b o đ m r ng a â ê a a ằ
m i requirement đ u đu c hi n th c hoa thanh ỗ ê ơ ệ ựcode va m i đo n code đ u có th suy ngỗ a ê ê ươc
v l i requirement.ê a
Trang 11Manager Operations
Thông đi p có tên la create trong UML la d ng đ c ệ a ô
l p ngôn ng dung đ ch s kh i đ u Khi chuy n ậ ư ê i ự ơ â ê sang ngôn ng l p trinh, chung thu c lo i Manager ư ậ ô a Operation
Lo i operation nay qu n lý vi c t o va hu cac đ i a a ệ a ỷ ô
t ươ ng Có hai lo i đi n hinh la constructor va a ê
destructor Th ươ ng thi cac manager operation nay
đ ươ a c t o t đ ng cho m i class ự ô ỗ
Do có nhi u thông d ch khac nhau tuy theo ngôn ê i
ng va vi s kh i đ u/h y c a 1 l p qua thông d ng ư ự ơ â u u ơ u nên cac operation lo i nay đ u b b qua không xet a ê i o
đ n trong DCD ê
PTTKHT bang UML - BM HTTT
Trang 12Access Operations
Thông thương cac attribute đ u thu c lo i ê ô a
private hay protected Tuy nhiên có th 1 l p ê ơnay c n xem hay thay đ i thu c tinh c a 1 l p â ô ô u ơkhac, đi u nay th c hi n đê ự ệ ươc thông qua
access operation
M t s ngôn ng nh Java thi m i m t thu c ô ô ư ư ỗ ô ôtinh đ u có phê ương th c ứ get va set đ nh n ê ậhay đ t gia tr cho thu c tinh đó ă i ô
Trang 13Access Operations
Cac operation get va set thương qua thông
d ng, không c n đ a vao lu â ư ươc đ class đ ô ê
tranh gây rươm ra
Vi d v i n thu c tinh thi có t i 2n method u ơ ô ơ
lo i nay Vi v y trong la ậ ươc đ class c a h ô u ệ
th ng POS , ta b qua không đ a method ô o ư
getPrice() vao l p Product-Specification.ơ
PTTKHT bang UML - BM HTTT 13
Trang 14Helper Operations
La cac operation ma 1 class c n th c thi nhi m â ự ệ
v c a nó ma cac l p khac không c n bi t đ n u u ơ â ê êcac operation nay
Thương la private va protected
Tương t nh implementor operation, ự ư helper operation đươc tim t cac reflexive message ưtrong lươc đ interaction ô
Trang 15Khai bao lo i operation a
Khai bao lo i operation a
Khai bao lo i (stereotypes) operation giup a
nh n bi t nó thu c lo i nao đ hi u đậ ê ô a ê ê ươc
Trang 16T o l a ươ c đ l p thi t k ô ơ ê ê
T o l a ươ c đ l p thi t k ô ơ ê ê
Design Class Diagram- DCD
DCD có th đê ươc th c hi n ti p theo ngay ự ệ ê
sau khi t o la ươc đ tu n t nh ng trong th c ô â ự ư ự
t thi DCD thê ương đươ ac t o song song v i ơ
lươc đ tu n t ô â ự
Trang 17 Interface ch ch a cac khai bao phi ứ ương th c ứ
(operation signature), không ch a ma th c thi ứ ự
PTTKHT bang UML - BM HTTT 17
Trang 18Vi d v interface u ê
Vi d v interface u ê
Xet m t l p chuyên v b o m t, có cac ô ơ ê a ậ
operation nh sau CheckID, CheckPassword, ư
LogSecurityViolation Trong đó:
◦ CheckID có user ID nh tham s va tr v ư ô a êgia tr Boolean bao cho bi t ID có h p l hay i ê ơ ệkhông
◦ CheckPassword có tham s đ u vao la ô â
password, gia tr tr v la ki u Boolean i a ê ê
◦
Trang 20Vi d v interface u ê
Vi d v interface u ê
Cach khac: t o l p a ơ SecurityImplementer v i cac ơ
phương th c va ma th c thi T o thêm 1 l p ứ ự a ơ
khac có tên la SecurityInterface ch đ ch a cac i ê ứkhai bao phương th c (operation signatures).ứ
Cac l p khac s tham chi u đ n l p interface ơ e ê ê ơthay vi tham chi u đ n l p th c thi Nh đó ê ê ơ ự ơ
l p implementor khi b thay đ i s khônglam ơ i ô e
nh h ng cho c h th ng
Trang 21 Trong Rose, interface đươc mô hinh nh 1 l p ư ơ
v i 1 bi u tơ ê ương vong tron
PTTKHT bang UML - BM HTTT 21
Check
Trang 22L ươ c đ DCD ô
L ươ c đ DCD ô
Trang 23Cach t o l a ươ c đ DCD ô
Cach t o l a ươ c đ DCD ô
Bươc 1: Nh n d ng cac l p ph n m m va mô ậ a ơ â ê
t chung: duy t qua t t c cac la ệ â a ươc đ tô ương
tac va li t kê cac l p đa thi t k Đ i v i h ệ ơ ê ê ô ơ ệ
th ng POS, cac l p nay s la:ô ơ e
Register ProductCatalog
Store Payment Sale
ProductSpecification SalesLineItem
Bươc 2: V le ươc đ class t cac l p v a nh n ô ư ơ ư ậ
d ng kem theo cac thu c tinh đa đa ô ươc xac đ nh itrong mô hinh domain
PTTKHT bang UML - BM HTTT 23
Trang 24Cach t o l a ươ c đ DCD ô
Cach t o l a ươ c đ DCD ô
Chu ý la m t s l p trong mô hinh domain nh ô ô ơ ưCashier không xu t hi n trong mô hinh thi t â ệ ê
k l n l p nay Tuy nhiên trong cac l n l p sau ê ơ â ă â ă
đó khi có thêm yêu c u m i hay khi x lý cac â ơ ưuse case khac, có th chung l i đê a ươc đ a vao Vi ư
d khi có yêu c u b o m t c n đăng nh p vao u â a ậ â ậ
h th ng, luc nay l p ph n m m Cashier s tr ệ ô ơ â ê e ơnên c n thi t.â ê
Trang 25Cac l p DC c a h th ng POS ơ u ệ ô Cac l p DC c a h th ng POS ơ u ệ ô
PTTKHT bang UML - BM HTTT 25
Trang 26Cach t o l a ươ c đ DCD ô
Cach t o l a ươ c đ DCD ô
Bươc 3: Thêm cac operation vao cac l p d a ơ ự
vao phân tich cac lươc đ tô ương tac.Vi d n u u ê
thông đi p makeLineItem đệ ươ ư êc g i đ n 1 đi n ê
hinh c a l p Sale thi l p Sale ph i ch a method u ơ ơ a ứmakeLineItem
◦ T p h p t t c cac thông đi p g i đ n l p X ậ ơ â a ệ ư ê ơngang qua t t c lâ a ươc đ tô ương tac s la cac eoperation c a l p X u ơ
Trang 27PTTKHT bang UML - BM HTTT 27
Trang 28L ươ c đ DC c a h th ng POS ô u ệ ô
L ươ c đ DC c a h th ng POS ô u ệ ô
Trang 29Thông bao Create()
Thông bao Create() trong UML la d ng đ c l p a ô ậngôn ng dung đ ch s kh i đ u Khi chuy n ư ê i ự ơ â êthi t k sang ngôn ng l p trinh OO, nó s ê ê ư ậ e
đươc bi u di n sao cho có ngh a la kh i đ u ê ê i ơ â
Nh ng th c s không có method ư ự ự create trong
C++, Java (vi đa có s n constructor)ă
Do có nhi u thông d ch khac nhau tuy theo ngôn ê i
ng va vi s kh i đ u c a 1 l p qua thông d ng ư ự ơ â u ơ unên nói chung thương cac method va constructor
có liên quan đ n vi c t o l p đ u b b qua ê ệ a ơ ê i o
không xet đ n trong DCD.ê
PTTKHT bang UML - BM HTTT 29
Trang 30Thông bao Create()
M t s ngôn ng có cu phap r t khac v i đ nh ô ô ư â ơ i
d ng c b n c a UMLa ơ a u
methodName(parameterList)
Trong DCD ch nên dung đ nh d ng UML cho i i a
du đa ch n ngôn ng th c thi nao Lý to ư ự ương
nh t la nên đ vi c biên d ch nay th c hi n â ê ệ i ự ệ
trong giai đo n ma hóa (coding) m c du UML a ă
v n ch p nh n dung cac cu phap khac khi đ c â â ậâ ă
t method.a
Trang 31Thông bao đ n đa đ i t ê ô ươ ng
Thông bao đ n đa đ i t ê ô ươ ng
M t thông bao đ n đa đ i tô ê ô ương (multiobject)
đươc xem nh m t thông bao g i đ n m t ư ô ư ê ô
t p h p cac đ i tậ ơ ô ương (container/collection)
Vi d thông bao find g i đ n đa đ i tu ư ê ô ương
đươc xem nh m t thông bao g i đ n m t ư ô ư ê ô
t p h p đ i tậ ơ ô ương, do đó method find không thu c vao l p Productspecification, ma la thanh ô ơ
ph n c a interface c a đa đ i tâ u u ô ương
PTTKHT bang UML - BM HTTT 31
Trang 32Thông bao đ n đa đ i t ê ô ươ ng
Thông bao đ n đa đ i t ê ô ươ ng
Cac interface ho c l p lo i container thă ơ a ương la cac ph n t th vi n đa đ nh ngh a s n ( ch ng â ư ư ệ i i ă ă
h n interface ja ava.util.Map), do đó cac l p nay ơ
thương không c n ch ra 1 cach tâ i ương minh
trong DCD, vi chung cho bi t thông tin thi it ê
nh ng gây nhi u cho lư ê ươc đ thi nhi u ô ê
Trang 33Thông bao đ n đa đ i t ê ô ươ ng
Thông bao đ n đa đ i t ê ô ươ ng
PTTKHT bang UML - BM HTTT 33
Trang 34Cach t o l a ươ c đ DCD ô
Cach t o l a ươ c đ DCD ô
Bươc 4: Thêm m i k t h p gi a cac l p ô ê ơ ư ơ
thi t k : m i đ u c a m i k t h p thê ê ỗ â u ô ê ơ ương
đươ oc g i la role va trong DCD đươc bi u di n ê ê
b ng m i tên có hằ ũ ương Chi u m i tên dung ê ũ
đ ch thu c tinh c a role, có th đi theo 1 ê i ô u ê
chi u duy nh t c a m i k t h p t cac đ i ê â u ô ê ơ ư ô
tương c a l p ngu n đ n l p đich Chi u m i u ơ ô ê ơ ê ũtên ng m đ nh kh năng nhin th y – thâ i a â ương la
kh năng nhin th y ta â ương tr ng (attribute ư
Trang 35Cach t o l a ươ c đ DCD ô
Cach t o l a ươ c đ DCD ô
Thương thi m i k t h p v i m i tên có hô ê ơ ơ ũ ương
đươc hi u nh kh năng nhin th y tê ư a â ương tr ng ư
t l p ngu n sang l p đich Khi chuy n sang ngôn ư ơ ô ơ ê
ng l p trinh OO, l p ngu n s có thêm m t ư ậ ơ ô e ô
thu c tinh tham chi u đ n m t đi n hinh c a ô ê ê ô ê u
l p đich Vi d , l p Register đ nh ngh a m t thu c ơ u ơ i i ô ôtinh tham chi u đ n l p Sale ê ê ơ
Trong DCD, cac m i k t h p đô ê ơ ươc dung đ ch ê i
kh năng nhin th y c a l p Con trong mô hinh a â u ơdomain thi m i k t h p đô ê ơ ươc dung đ nh n ê â
m nh ý ngh a nghi p v a i ệ u
PTTKHT bang UML - BM HTTT 35
Trang 36Kh năng nhin th y l p khac a â ơ
Kh năng nhin th y l p khac a â ơ
Kh năng nhin th y va m i k t h p gi a cac a â ô ê ơ ư
l p đơ ươc ch ra trong li ươc đ tô ương tac
Trang 37Kh năng nhin th y l p khac a â ơ
Kh năng nhin th y l p khac a â ơ
PTTKHT bang UML - BM HTTT 37
Trang 38Cach t o l a ươ c đ DCD ô
Cach t o l a ươ c đ DCD ô
Bươc 5: B sung cac quan h ph thu cô ệ u ô
◦ UML con bao ham c m i quan h ph thu c a ô ệ u ô(dependency relationship) đ ch ra 1 ph n t ê i â ưnay có hi u bi t v 1 ph n t khac Nó đê ê ê â ư ươc
bi u di n b ng đê ê ằ ương m i tên đ t net ũ ứ
◦ Trong lươc đ l p, quan h ph thu c nay ô ơ ệ u ô
thương đươc dung đ bi u di n kh năng ê ê ê a
nhin th y không tâ ương minh (non-attribute
visibility) gi a cac l p, nh thông qua tham s , ư ơ ư ô
Trang 39Quan h ph thu c trong POS ệ u ô
Quan h ph thu c trong POS ệ u ô
L p ph n m m Register nh n đ i t ơ â ê ậ ô ươ ng tr v a ê
c a lo i ProductSpecification t thông đi p ma nó u a ư ệ
g i đ n ProductCatalog Vi v y Register có 1 t m ư ê ậ â nhin cu b ng n h n t i ProductSpecifications câ ô ă a ơ
Trong khi đó Sale nh n ProductSpecification nh 1 ậ ư tham s trong thông đi p makeLineItem, nên ch có ô ệ i
1 t m nhin d ng tham s ma thôi â a ô
Cac t m nhin nay đ u không t â ê ươ ng minh, đó
chinh la cac quan h ph thu c ệ u ô
PTTKHT bang UML - BM HTTT 39