CH NG 3 : KHÁI QUÁ TV UML
3.7. M& r'ng UML
UML có th c m r ng ho c có th c s a i phù h p v i m t ph ng pháp c bi t, m t t ch c c th hay m t ng i dùng c th . Chúng ta s& bàn lu n s qua n ba c ch m r ng UML: khn m u (stereotype), giá tr ính kèm (tagged value) và h n ch (constraint).
3.7.1. Khuôn m u (Stereotype)
C ch m r ng khuôn m u nh ngh+a m t lo i ph n t mơ hình m i d a trên m t ph n t mơ hình ã t n t i. Khn m u có th c coi là "t ng t " nh m t ph n t ã có s2n, c ng thêm ph n quy nh ng ngh+a (semantic) riêng bi t khơng có trong ph n t g c kia. Khuôn m u c a m t ph n t có th c s d ng trong cùng tình hu ng nh ph n t c(n b n. Khuôn m u d a trên t!t c các lo i ph n t mơ hình s2n có - l p, nút m ng, thành ph n, c'ng nh các m i quan h nh liên k t, khái quát hóa, s ph thu c. Ngơn ng UML có ch a m t s l ng l n các khuôn m u c nh ngh+a s2n và chúng c s d ng s a i các ph n t mơ hình s2n có, thay cho vi c ph i nh ngh+a hoàn toàn m i. C ch này giúp gìn gi tính n gi n c a n n t ng ngôn ng UML.
Khuôn m u c miêu t qua vi c a tên c a chúng vào trong m t c p ký t ngo c nh#n <<>>, theo nh trong hình 3.16. Ký t ngo c nh#n này c g#i là guillements. Khn m u c'ng có th có kí hi u hình h#c riêng. M t ph n t c a m t lo i khuôn m u c th có th c th hi n b i tên khuôn m u i kèm ký hi u hình h#c mơ t ph n t c(n b n, hay là s k t h p c a c hai y u t này. B!t k0 khi nào m t ph n t mơ hình c n i k t v i m t tên ho c kí hi u khn m u, ta s& #c " ây là m t lo i ph n
t thu c lo i khn m u...". Ví d , m t l p v i <<Window>> s& c g#i là "m t l p trong d ng khuôn m u c a s ", ý ngh+a c a nó là m t d ng l p c a s . Nh ng thu c tính c th mà m t l p c a s c n ph i có s& c nh ngh+a khi khuôn m u này c nh ngh+a.
Nh ã nói, khn m u là m t c ch m r ng xu!t s"c, là m t c ch ng(n cho ngôn ng UML không tr nên quá ph c t p, m c dù v n cho phép th c hi n s m r ng và s a i c n thi t. a ph n các ph n t mơ hình m i mà b n c n n u có m t khuôn m u n n t ng trong ngôn ng UML. M t khn m u sau ó có th c s d ng c ng thêm các ng ngh+a c n thi t, nh%m m c ích nh ngh+a nên các ph n t mơ hình cịn thi u.
Hình 3.16- Customer là m t l p khn m u <<Actor>>
3.7.2. Giá tr ính kèm (Tagged Value)
Nh ã nói, các ph n t mơ hình có th có các thu c tính ch a m t c p tên-giá tr v b n thân chúng (hình 3.17). Các thu c tính này c'ng cịn c g#i là các gía tr ính kèm. UML có ch a m t lo t các thu c tính c nh ngh+a tr c, nh ng k c ng i s d ng c'ng có th nh ngh+a ra các thu c tính m i ch a các thông tin b sung v các ph n t mô hình. M#i hình d ng thơng tin u có th c ính kèm vào ph n t : các thông tin chuyên bi t v ph ng pháp, các thông tin c a nhà qu n tr v ti n trình mơ hình hóa, các thơng tin c s d ng b i các cơng c khác, ví d nh các công c t o code, hay b!t k0 m t lo i thông tin nào mà ng i s d ng mu n ính kèm vào ph n t mơ hình.
Hình 3.17 - M t ví d v Tagged Value
3.7.3. H n ch (Constraint)
M t s h n ch là m t s gi i h n v s s d ng ho c ý ngh+a c a m t ph n t . S h n ch ho c s& c khai báo trong công c và c s d ng nhi u l n trong r!t nhi u bi u khác nhau, hay c nh ngh+a và s d ng trong ch* m t bi u , theo nh nhu c u.
Hình 3.18 ch* ra m i quan h n i k t gi a nhóm các cơng dân l n tu i và l p con ng i, ch* ra r%ng nhóm cơng dân có th có nhi u ng i liên quan. M c dù v y, miêu t r%ng ch* nh ng ng i nào l n h n 60 tu i m i có th tham gia vào nhóm này, ng i ta nh ngh+a m t s h n ch , h n h-p tiêu chu$n tham gia i v i ch* nh ng ng i nào mà thu c tính tu i tác có giá tr l n h n 60. nh ngh+a này s& h n ch s l ng nh ng ng i c s d ng trong m i quan h . N u khơng có nó, ng i ta r!t d hi u l m khi di n t bi u . Trong tr ng h p t i t , nó có th d n n s th c thi sai trái c a h th ng.
Trong tr ng h p này, h n ch c nh ngh+a và ng d ng tr c ti p trong chính bi u mà nó c c n t i. Nh ng nhìn chung thì h n ch c'ng có th c nh ngh+a v i tên cùng l i c t riêng, ví d nh : "cơng dân già" và "ng i có tu i l n h n 60", và h n ch này s& c s d ng trong nhi u bi u khác nhau. UML có ch a m t lo t các h n ch c nh ngh+a s2n, chúng c miêu t chi ti t trong các ch ng sau.
Hình 3.18- M t ràng bu c h n ch i t ng Person góp ph n vào quan h k t h p