UML gồm có siêu mô hình UML và môhình UML. siêu mô hình UML giữ
chức năng định nghĩa các phần tử và cú pháp UML. Mô hình UML mô tả ký hiệu
các phần tử và các biểu đồ dựa trên siêu mô hình UML.
siêu mô hình UML bao gồm các phần tử và một số quy tắc về cú pháp. Ngoài
việc phần tử UML mang một ý nghĩa xác định, cú pháp UML còn mô tả cách
liên kết những phần tử nào với nhau để tạo ra ý nghĩa nào đó. ở góc độ mô hình
hóa, các phần tử UML có thể phân chia làm ba loại là các phần tử mô hình hóa
tĩnh, các phần tử mô hình hóa t-ơng tác và các phần tử quan hệ có chức năng liên
kết giữa hai phần tử trên với nhau. siêu mô hình UML giữ vai trò h-ớng dẫn
ng-ời sử dụng UML về cú pháp trong mô hình hóa. Ngoài ra, siêu mô hình UML
còn đ-ợc sử dụng bởi các nhà phát triển CASE tool để mô hình hóa dữ liệu cho
một CASE tool hỗ trợ UML. Mô hình dữ liệu này sử dụng lại định nghĩa phần tử
UML để thiết kế các lớp cơ bản và bổ sung thêm các lớp mới tùy theo chức năng
CASE tool cung cấp cho ng-ời sử dụng.
36 trang |
Chia sẻ: luyenbuizn | Lượt xem: 1146 | Lượt tải: 1
Bạn đang xem trước 20 trang nội dung tài liệu Phân tích thiết kế phần mềm hướng đối tượng và hướng thành phần - Chương 2. ngữ nghĩa và cú pháp các phần tử trong uml (uml semantic), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ch−¬ng 2. Ng÷ nghÜa vµ có ph¸p c¸c phÇn tö trong
UML (UML Semantic)
2.1. Giíi thiÖu
UML gåm cã siªu m« h×nh UML vµ m« h×nh UML. siªu m« h×nh UML gi÷
chøc n¨ng ®Þnh nghÜa c¸c phÇn tö vµ có ph¸p UML. M« h×nh UML m« t¶ ký hiÖu
c¸c phÇn tö vµ c¸c biÓu ®å dùa trªn siªu m« h×nh UML.
siªu m« h×nh UML bao gåm c¸c phÇn tö vµ mét sè quy t¾c vÒ có ph¸p. Ngoµi
viÖc phÇn tö UML mang mét ý nghÜa x¸c ®Þnh, có ph¸p UML cßn m« t¶ c¸ch
liªn kÕt nh÷ng phÇn tö nµo víi nhau ®Ó t¹o ra ý nghÜa nµo ®ã. ë gãc ®é m« h×nh
hãa, c¸c phÇn tö UML cã thÓ ph©n chia lµm ba lo¹i lµ c¸c phÇn tö m« h×nh hãa
tÜnh, c¸c phÇn tö m« h×nh hãa t−¬ng t¸c vµ c¸c phÇn tö quan hÖ cã chøc n¨ng liªn
kÕt gi÷a hai phÇn tö trªn víi nhau. siªu m« h×nh UML gi÷ vai trß h−íng dÉn
ng−êi sö dông UML vÒ có ph¸p trong m« h×nh hãa. Ngoµi ra, siªu m« h×nh UML
cßn ®−îc sö dông bëi c¸c nhµ ph¸t triÓn CASE tool ®Ó m« h×nh hãa d÷ liÖu cho
mét CASE tool hç trî UML. M« h×nh d÷ liÖu nµy sö dông l¹i ®Þnh nghÜa phÇn tö
UML ®Ó thiÕt kÕ c¸c líp c¬ b¶n vµ bæ sung thªm c¸c líp míi tïy theo chøc n¨ng
CASE tool cung cÊp cho ng−êi sö dông.
M« h×nh UML lµ biÓu diÔn ký hiÖu cña c¸c phÇn tö UML ®ång thêi cung cÊp
cho ng−êi sö dông c¸c biÓu ®å UML cô thÓ ®Ó m« h×nh hãa còng nh− lµm ng«n
ng÷ giao tiÕp gi÷a c¸c thµnh viªn cña nhãm trong qu¸ tr×nh ph¸t triÓn phÇn mÒm.
Nãi c¸ch kh¸c, c¸c biÓu ®å trong M« h×nh UML lµ thÓ hiÖn cña c¸c có ph¸p
t−¬ng øng trong siªu m« h×nh UML. siªu m« h×nh UML ®−îc chia thµnh nhiÒu
gãi thµnh phÇn (package) dùa trªn ý nghÜa cña có ph¸p ®−îc m« t¶. Mçi gãi ®Þnh
nghÜa c¸c phÇn tö kh¸c nhau vµ m« t¶ mét nhãm có ph¸p dùa trªn c¸c phÇn tö
nµy. Trong mçi gãi l¹i cã thÓ bao gåm c¸c gãi con. ViÖc ph©n chia nµy gióp cho
®Þnh nghÜa cña siªu m« h×nh UML râ rµng h¬n, chØ quan t©m ®Õn c¸c phÇn tö
trong gãi vµ lo¹i bá c¸c phÇn tö kh«ng cÇn thiÕt v−ît ra khái ph¹m vi ng÷ nghÜa
cÇn m« t¶ cña gãi. Gãi ®−îc biÓu diÔn nh− sau
Tªn gãi
H×nh 2.1. Ký hiÖu gãi
2.2. Tæng quan vÒ c¸c lo¹i quan hÖ gi÷a c¸c phÇn tö
Trong qu¸ tr×nh ®Þnh nghÜa phÇn tö cÇn ph¶i m« t¶ c¸c mèi liªn hÖ gi÷a phÇn
tö nµy víi c¸c phÇn tö kh¸c nªn UML sö dông mét tËp hîp c¸c quan hÖ. Mçi
7
quan hÖ cã mét ý nghÜa x¸c ®Þnh. C¸c quan hÖ nµy bao gåm quan hÖ tæng qu¸t
hãa (generalization), quan hÖ kÕt hîp (association), quan hÖ phô thuéc
(dependency).
Mçi phÇn tö ®Òu cã ng÷ nghÜa riªng. §Ó biÓu diÔn phÇn tö vµ quan hÖ gi÷a
c¸c phÇn tö, UML sö dông c¸c ký hiÖu riªng. Mét phÇn tö cã ký hiÖu nh− sau:
Tªn phÇn tö
C¸c thuéc tÝnh
H×nh 2.2. Ký hiÖu phÇn tö
PhÇn sau tr×nh bµy s¬ l−îc c¸c lo¹i quan hÖ. Chi tiÕt vÒ c¸c lo¹i quan hÖ gi÷a
c¸c phÇn tö ®−îc tr×nh bµy trong ch−¬ng sau.
2.2.1. Quan hÖ tæng qu¸t ho¸ (generalization)
Quan hÖ tæng qu¸t ho¸ lµ quan hÖ gi÷a mét phÇn tö tæng qu¸t h¬n vµ mét
phÇn tö ®Æc biÖt h¬n. PhÇn tö ®Æc biÖt h¬n chøa ®Çy ®ñ c¸c ®Æc ®iÓm cña phÇn tö
tæng qu¸t h¬n vµ ngoµi ra cßn cã nh÷ng th«ng tin riªg. Quan hÖ tæng qu¸t hãa cã
ký hiÖu nh− sau:
H×nh 2.3. Ký hiÖu quan hÖ tæng qu¸t ho¸
2.2.2. Quan hÖ kÕt hîp (association)
Quan hÖ kÕt hîp thÓ hiÖn liªn hÖ vÒ mÆt ng÷ nghÜa gi÷a hai phÇn tö. NghÜa lµ
phÇn tö nµy cã sö dông hay nhËn biÕt c¸c th«ng tin cña phÇn tö kia. Quan hÖ kÕt
hîp cã thÓ bao gåm hai lo¹i con lµ quan hÖ ng÷ nghÜa th«ng th−êng (association)
vµ quan hÖ kÕt tËp (aggregation). Quan hÖ ng÷ nghÜa th«ng th−êng
H×nh 2.4 Ký hiÖu quan hÖ kÕt hîp
Quan hÖ kÕt tËp: phÇn tö nµy chøa phÇn tö kia theo nghÜa vËt lý.
8
H×nh 2.5 Ký hiÖu quan hÖ kÕt tËp
2.2.3. Quan hÖ phô thuéc (dependency)
Quan hÖ phô thuéc thÓ hiÖn sù phô thuéc chøc n¨ng cña mét hay nhiÒu phÇn
tö nhËn vµo mét hay nhiÒu phÇn tö cho. Quan hÖ phô thuéc kÐm chi tiÕt vÒ møc
®é ng÷ nghÜa h¬n quan hÖ kÕt hîp vµ th−êng sö dông ®Ó m« t¶ sù phô thuéc lÉn
nhau gi÷a c¸c gãi.
H×nh 2.6 Ký hiÖu quan hÖ phô thuéc
2.3. Tæng quan vÒ c¸c phÇn tö vµ cÊu tróc siªu m« h×nh UML
2.3.1. Ph©n lo¹i phÇn tö trong siªu m« h×nh UML
ë gãc ®é ®Þnh nghÜa, c¸c phÇn tö trong UML cã thÓ ®−îc chia lµm hai lo¹i lµ
phÇn tö trõu t−îng vµ phÇn tö cô thÓ. C¸c phÇn tö trõu t−îng cã tÝnh tæng qu¸t
cao gi÷ chøc n¨ng tham gia vµo ®Þnh nghÜa c¸c phÇn tö kh¸c. C¸c phÇn tö cô thÓ
th−êng cã quan hÖ tæng qu¸t hãa qua nhiÒu tÇng víi c¸c phÇn tö trõu t−îng,
ngoµi ra cßn cã c¸c quan hÖ kÕt hîp (association) víi c¸c phÇn tö kh¸c. ChØ c¸c
phÇn tö cô thÓ míi cã ký hiÖu trong M« h×nh UML vµ ®−îc sö dông trong m«
h×nh hãa.
2.3.2. CÊu tróc siªu m« h×nh UML
Siªu m« h×nh UML bao gåm ba gãi chÝnh nh− sau
Foundation
Model ManagementBehavioralElements
H×nh 2.7. C¸c gãi chÝnh cña UML
9
Foundation Package (Gãi nÒn t¶ng) lµ gãi bao gåm phÇn lín c¸c phÇn tö trõu
t−îng vµ mét sè phÇn tö cô thÓ mang tÝnh chÊt c¬ b¶n. C¸c phÇn tö trong gãi nµy
®−îc sö dông bëi hai gãi lµ BehavioralElements Package (gãi phÇn tö hµnh vi) vµ
ModelManagement Package (gãi qu¶n trÞ m« h×nh).
BehavioralElements Package lµ gãi ®Þnh nghÜa c¸c phÇn tö sö dông cho viÖc m«
t¶ qu¸ tr×nh vËn ®éng cña mét phÇn tö hay t−¬ng t¸c gi÷a c¸c phÇn tö trong thÕ
giíi thùc.
ModelManagement lµ gãi ®Þnh nghÜa c¸c phÇn tö cho viÖc qu¶n lý m« h×nh cña
ng−êi sö dông.
2.4. Package Foundation Package (gãi nÒn t¶ng)
Foundation Package ®Þnh nghÜa nh÷ng phÇn tö UML c¬ b¶n. Foundation
Package bao gåm ba gãi con lµ Core Package (gãi c¬ b¶n), gãi c¸c Data Types
Package (gãi kiÓu d÷ liÖu) vµ Extension Mechanism Package (gãi kü thuËt më
réng).
Data Types
Core ExtensionMechanism
H×nh 2.8 Core Package
Core Package ®Þnh nghÜa nh÷ng phÇn tö c¬ b¶n bao gåm c¶ c¸c phÇn tö quan
hÖ vµ ®a sè lµ ë møc trõu t−îng. Extension Mechanism Package ®Þnh nghÜa c¬ chÕ
më réng cho c¸c phÇn tö UML ®Ó bæ sung c¸c phÇn tö míi. Data Types Package
®Þnh nghÜa c¸c kiÓu d÷ liÖu ®−îc sö dông trong siªu m« h×nh UML. C¸c thuéc
tÝnh cña c¸c phÇn tö trong siªu m« h×nh UML cã kiÓu d÷ liÖu thuéc vÒ Data
Types.
2.4.1. Core Package (gãi c¬ b¶n)
Core package bao gåm c¸c phÇn tö c¬ b¶n vµ ®−îc m« t¶ bëi n¨m m« h×nh lµ
Backbone (x−¬ng sèng), Relationships (quan hÖ), Dependencies (phô thuéc),
Classifiers (ph©n lo¹i) vµ Auxiliary Elements (bæ sung). Core package giíi thiÖu có
ph¸p cho m« h×nh hãa tÜnh, kh«ng quan t©m ®Õn qu¸ tr×nh vËn ®éng vµ t−¬ng t¸c
gi÷a c¸c ®èi t−îng trong thÕ giíi thùc.
10
2.4.1.1. M« h×nh Backbone (x−¬ng sèng)
Element
ElementOwnerShip
visibility: VisibilityKind
isSpecification:Boolean
Model Element
name :Name
Feature
ownerscope: ScopeKind
visibility: VisibilityKind
NameSpace GeneralizableElement
isRoot:Boolean
isLeaf:Boolean
isAbstract:boolean
Parameter
defaultValue: Expression
kind: ParameterDirectionKind
Constraint
body: BooleanExpression
Classifier
StuctualFeature
multiplicity: Multiplicity
changeability:ChangeableKind
tagetScope: ScopeKind
BehavioralFeature
isQuery:Boolean
Attribute
initialvalue: Expression
Operation
concurency:CallConcurencyKind
isRoot:Boolean
isLeaf:Boolean
isAbstract:boolean
specification: String
Method
body: ProcedureExpresstion
+ ownedElement
+ nameSpace
*
0..1
+ constraintElement
+ constraint
1..*
*
{ordered}
*
0..1
+ feature
+ owner
*
1
+ type
1 *
+ specification
+ type1
*
0..1
* + parameter
{ordered}
H×nh 2.9. M« h×nh BackBone
Backbone chñ yÕu ®Þnh nghÜa phÇn tö Classifier. Classifier lµ phÇn tö trõu t−îng
®ãng vai trß tæng qu¸t hãa trùc tiÕp cña phÇn lín c¸c phÇn tö cô thÓ kh¸c. Ngoµi
ra, c¸c phÇn tö c¬ b¶n cña UML ®−îc ®Þnh nghÜa trong Core bao gåm attribute
(thuéc tÝnh), operation (ho¹t ®éng) vµ method (ph−¬ng thøc), parameter (tham sè)
vµ constraint (rµng buéc).
§Ó phôc vô cho qu¸ tr×nh ®Þnh nghÜa Classifier, UML ®−a ra c¸c phÇn tö trõu
t−îng cã vai trß lµ tæng qu¸t hãa (trùc tiÕp hay gi¸n tiÕp) cña Classifier. C¸c phÇn
tö nµy cã quan hÖ víi nhau vµ cã quan hÖ víi Classifier ®−îc m« t¶ trong m« h×nh
Backbone bao gåm:
Element (phÇn tö) : Element lµ mét phÇn tö trõu t−îng ë møc cao nhÊt, tæng
qu¸t nhÊt trong c¸c phÇn tö UML.
ModelElement (phÇn tö m« h×nh) : ModelElement lµ phÇn tö ®−îc ®Þnh danh
trong m« h×nh vµ lµ tæng qu¸t hãa cÊp cao nhÊt thø hai cho c¸c phÇn tö kh¸c sau
Element. ModelElement lµ phÇn tö ®−îc x¸c ®Þnh qua tªn.
Namespace (kh«ng gian c¸c phÇn tö tham chiÕu theo tªn): Namespace lµ tËp
hîp c¸c phÇn tö ModelElement víi ®iÒu kiÖn ®Þnh danh cña mét ModelElement
trong mét Namespace lµ duy nhÊt.
ElementOwnership: ElementOwnership ®Þnh nghÜa tÇm vùc (visibility) cña mét
phÇn tö chøa trong Namspace (kh«ng gian c¸c phÇn tö). ElementOwnership quy
®Þnh tÇm vùc cña mét phÇn tö ®−îc giíi h¹n trong Namespace (chØ cã thÓ ®−îc
tham chiÕu bëi c¸c phÇn tö trong Namespace) hay v−ît khái Namespace (cã thÓ
®−îc tham chiÕu bëi c¸c phÇn tö ngoµi Namespace).
11
GeneralizableElement (phÇn tö cã thÓ tæng qu¸t hãa hay ®Æc biÖt hãa):
GeneralizableElement lµ c¸c phÇn tö cã thÓ tham gia vµo quan hÖ tæng qu¸t hãa
hay ®Æc biÖt hãa. Do ®ã mét GeneralizableElement cã thÓ lµ tæng qu¸t hãa hay ®Æc
biÖt hãa cña mét GeneralizableElement kh¸c.
Feature (®Æc tÝnh) : m« t¶ c¸c ®Æc tÝnh cña mét Classifier chñ yÕu lµ tÇm vùc
(visibility) cña ®Æc tÝnh. TÇm vùc nµy x¸c ®Þnh mét ®Æc tÝnh cña Classifier cã thÓ
®−îc tham chiÕu bëi c¸c Classifier kh¸c hay chØ ®−îc sö dông bëi chÝnh Classifier
chøa ®Æc tÝnh ®ã.
StructuralFeature (®Æc ®iÓm cÊu tróc) : ®−îc thõa kÕ tõ Fearture,
StructuralFeature m« t¶ ®Æc tÝnh vÒ mÆt cÊu tróc cña mét Classifier, m« t¶ cÊu tróc
nµy cã thÓ thay ®æi hay cè ®Þnh qua thuéc tÝnh changeability cña StructuralFeature.
StructualFeature cã mét ®Æc biÖt hãa lµ Attribute (thuéc tÝnh).
BehavioralFeature (®Æc ®iÓm hµnh vi) §−îc kÕ thõa tõ Feature vµ biÓu diÔn c¸c
®Æc tÝnh vÒ mÆt hµnh vi cña mét Classifier ®ång thêi m« t¶ ®Æc tÝnh hµnh vi nµy cã
¶nh h−ëng lªn tr¹ng th¸i cña Classifier hay kh«ng qua thuéc tÝnh isQuery.
BehavioralFeature gåm hai ®Æc biÖt hãa lµ Operation (ho¹t ®éng) vµ Method (ph−¬ng
thøc). Ngoµi ra, m« h×nh Backbone cßn ®Þnh nghÜa c¸c phÇn tö cô thÓ ®ãng vai trß
quan träng bËc nhÊt lµ Attribute (thuéc tÝnh), Method (ph−¬ng thøc), Operation (m«
t¶ ph−¬ng thøc), Parameter (tham sè) vµ Constraint (rµng buéc).
Attribute (thuéc tÝnh) : Attribute m« t¶ c¸c gi¸ trÞ mµ mét Classifier cã thÓ sö
dông ®Ó thÓ hiÖn tr¹ng th¸i. Attribute cã c¸c thuéc tÝnh chÝnh lµ name (tªn), initial
value (gi¸ trÞ khëi ®Çu)
Operation (m« t¶ ph−¬ng thøc): Operation lµ ph−¬ng thøc cã thÓ ®−îc yªu cÇu
tõ mét Classifier chøa Operation ®Ó t¸c ®éng lªn Classifier nµy. Operation cã quan hÖ
kÕt hîp (association) víi Parameter (tham sè) nghÜa lµ Operation sö dông mét tËp
tham sè ®Ó khëi ®Çu cho viÖc thi hµnh. Mét Operation cã thÓ ®−îc kÕ thõa tõ c¸c
Operation kh¸c.
Method (ph−¬ng thøc) : Method cã quan hÖ kÕt hîp víi Operation (m« t¶
ph−¬ng thøc) m« t¶ cô thÓ c¸ch thøc thùc hiÖn mét ph−¬ng thøc bao gåm c¸c
quy tr×nh vµ c¸c thuËt to¸n. Method cã t¸c ®éng ®Õn kÕt qu¶ cña ph−¬ng thøc.
Parameter (tham sè) : Parameter lµ tham sè cã thÓ thay ®æi, göi vµ nhËn. Mét
Parameter cã thÓ bao gåm tªn, kiÓu d÷ liÖu vµ quan hÖ víi c¸c phÇn tö kh¸c giao
tiÕp víi nã. Parameter ®−îc sö dông trong Operation (m« t¶ ph−¬ng thøc),
Templates (mÉu)...
Constraint (rµng buéc) : Constraint lµ c¸c ®iÒu kiÖn vÒ mÆt ng÷ nghÜa hay c¸c
giíi h¹n cho mét phÇn tö, cã thÓ diÔn t¶ ë d¹ng v¨n b¶n hay mét biÓu thøc logic
cña mét ng«n ng÷ m« t¶ rµng buéc. Ngoµi viÖc ®Þnh nghÜa phÇn tö rµng buéc
Constraint, UML cßn ®Þnh nghÜa mét ng«n ng÷ cho m« t¶ rµng buéc lµ ng«n ng÷
rµng buéc ®èi t−îng(Object Constraint Language). Gi÷a c¸c Classifier cã quan hÖ
tæng qu¸t hãa. Do Classifier lµ phÇn tö trõu t−îng nªn tÊt c¶ c¸c phÇn tö thõa kÕ
Classifier ®Òu cã tÝnh chÊt nµy.
2.4.1.2. M« h×nh Relationships (c¸c quan hÖ)
12
AsosicationEnd
isNavigable: Boolean
ordering: OrderingKind
aggregation:AggregationKind
multiplicity: Multiplicity
changeability:ChangeableKind
visibility: VisibilityKind
Model Element
name :Name
Relationship
Flow GeneralizableElement
isRoot:Boolean
isLeaf:Boolean
isAbstract:boolean
Asosication
body: BooleanExpression
Classifier
Class
isActive: Boolean
Assosication Class
Generalization
dicrimonator: Name
Attribute
initialvalue: Expression
+ source
+ target *
*
+ target Flow
*
+ source Flow
*
+ generalization
*
+ child
1
* 1+ specialization + parent
*
0..1
+ powertypeRange
+ powertype
+ specialization
+ type
*1
* *
+ qualifier + asosicationEnd
* 0..1
{ordered}
{ordered}
+ connection
2..* 1
H×nh 2.10. M« h×nh Relationships
13
M« h×nh Relationships ®Þnh nghÜa c¸c quan hÖ gi÷a c¸c phÇn tö UML bao
gåm hai lo¹i quan hÖ c¬ b¶n lµ generalization (quan hÖ tæng qu¸t hãa), association
(quan hÖ kÕt hîp).
Generalization ®−îc ®Þnh nghÜa lµ sù liªn hÖ gi÷a hai phÇn tö. PhÇn tö ®Æc
biÖt h¬n gäi lµ phÇn tö con (child) vµ phÇn tö tæng qu¸t h¬n lµ phÇn tö cha
(parent).
Association (Quan hÖ kÕt hîp) m« t¶ nhiÒu Classifier tham gia vµo nhiÒu
AssociationEnd (mèi kÕt hîp). Association th−êng gÆp lµ quan hÖ kÕt hîp cã hai
AssociationEnd (mèi kÕt hîp). Mçi mèi kÕt hîp g¾n víi mét Classifier. Association
m« t¶ sù liªn hÖ vÒ ng÷ nghÜa gi÷a c¸c Classifier.
AssociationClass (Líp kÕt hîp), Thõa kÕ tõ Class vµ Association,
AssociationClass võa cã tÝnh chÊt cña mét Class võa cã tÝnh chÊt cña mét
Association. AssociationClass nèi mét tËp c¸c classifier víi nhau vµ cã c¸c thuéc
tÝnh riªng ®Æc tr−ng cho quan hÖ gi÷a c¸c classifier nµy.
Nh©n sù
TiÒn l−¬ng
Nh©n sù
1..*
C«ng ty
0..*
H×nh 2.11. VÝ dô líp kÕt hîp
2.4.1.3. M« h×nh Classifiers (c¸c ®Æc biÖt hãa cña classifiers)
M« h×nh Classifiers m« t¶ c¸c ®Æc biÖt hãa cña Classifier bao gåm c¸c phÇn tö
Class (líp), Interface (giao diÖn), DataType (kiÓu d÷ liÖu), Node (nót) vµ
Component (thµnh phÇn)
14
isActive: Boolean
Class DataType
Interface Node Component
visibility: VisibilityKind
Element
ModelElement
+resident
+deploymentLocation *
* *
* +resident
+ImplementationLocation
Classifier
H×nh 2.12. C¸c líp ®Æc biÖt cña Classifier
Class (líp)
Class lµ tËp hîp c¸c ®èi t−îng cã cïng c¸c thuéc tÝnh, hµnh ®éng vµ ng÷
nghÜa. Mét Class cã thÓ lµ trõu t−îng (abstract) nghÜa lµ kh«ng cã thÓ hiÖn (®èi
t−îng) nµo ®−îc t¹o ra trùc tiÕp tõ nã. Class lµ phÇn tö cô thÓ cã biÓu diÔn ký
hiÖu trªn M« h×nh UML. Lµ ®Æc biÖt hãa cña Classifier, Class bao gåm c¸c
Attribute (thuéc tÝnh), Operation (m« t¶ ph−¬ng thøc) vµ Method. Gi÷a c¸c Class
cã quan hÖ tæng qu¸t hãa, quan hÖ kÕt hîp.
Th− ký
KÕ to¸n viªnC«ng viÖc
Phßng ban
Tªn nh©n viªn
Nh©n viªn
LÊy th«ng tin nh©n viªn()
Thùc hiÖn
Trùc thuéc
Quan hÖ
kÕt hîp
Tæng qu¸t ho¸
Thuéc tÝnh
Ph−¬ng thøc
H×nh 2.13. VÝ dô vÒ líp vµ quan hÖ gi÷a c¸c líp
15
Interface (giao diÖn)
Interface lµ tËp c¸c operation (ph−¬ng thøc) cña mét Classifier. Mçi Interface
cung cÊp mét dÞch vô cña Classifier bao gåm mét nhãm c¸c operation cã quan hÖ
víi Interface ®ã. Mçi Classifier cã thÓ cung cÊp nhiÒu dÞch vô kh¸c nhau qua c¸c
Interface kh¸c nhau.
DataType (kiÓu d÷ liÖu)
DataType m« t¶ kiÓu d÷ liÖu cña ng−êi sö dông. UML kh«ng ®Þnh nghÜa c¸c
kiÓu d÷ liÖu cô thÓ. ViÖc ®Þnh nghÜa c¸c kiÓu d÷ liÖu cña ng−êi sö dông tïy
thuéc vµo m«i tr−êng ph¸t triÓn phÇn mÒm nªn th−êng c¸c CASE tool ®¶m
nhËn chøc n¨ng ®Þnh nghÜa c¸c kiÓu d÷ liÖu nµy.
Node (nót)
Node lµ phÇn tö ®¹i diÖn cho mét tµi nguyªn vËt lý cã bé nhí vµ kh¶ n¨ng
xö lý tÝnh to¸n. C¸c node th−êng ®¹i diÖn cho c¸c m¸y tÝnh vµ m« t¶ viÖc ph©n
bè c¸c m¸y tÝnh trªn m¹ng.
Component (thµnh phÇn)
Component lµ mét phÇn riªng biÖt ë møc vËt lý cña hÖ thèng. Component
®ãng gãi c¸c ph−¬ng thøc xö lý vµ cung cÊp tËp c¸c dÞch vô xö lý nµy qua mét
tËp interface (giao diÖn) kh¸c nhau. Mçi giao diÖn bao gåm nhiÒu ph−¬ng thøc
kh¸c nhau ®Ó phôc vô cho mét môc ®Ých cô thÓ. C¸c ph−¬ng thøc cã thÓ lµ c¸c
®o¹n m· thi hµnh ®−îc, c¸c script hay lÖnh. Mét component th−êng cung cÊp
nhiÒu lo¹i dÞch vô kh¸c nhau liªn quan ®Õn mét ®èi t−îng cô thÓ.
>
MSBind
DBindingColectionEvents Giao diÖn
Component
DBindingColection
DBinding
Mét MSBind lµ mét
component nèi mét control
cña Window víi mét
recordset. MSBind cung cÊp
nhiÒu dÞch vô, trong ®ã dÞch
vô g¾n control vµo recordset
lµ Bindding
H×nh 2.14. VÝ dô vÒ component vµ interface
16
2.4.1.4. M« h×nh Dependencies (c¸c quan hÖ phô thuéc)
Dependency m« t¶ sù phô thuéc chøc n¨ng gi÷a hai thµnh phÇn cho vµ thµnh
phÇn nhËn. Thµnh phÇn cho ®ãng vai trß cung cÊp dÞch vô cho thµnh phÇn nhËn.
Dependency ®Þnh nghÜa phô thuéc gi÷a hai phÇn tö ModelElement nªn hÇu nh− tÊt
c¶ c¸c phÇn tö cô thÓ thõa kÕ ModelElement ®Òu cã thÓ cã quan hÖ phô thuéc.
Quan hÖ phô thuéc cã c¸c ®Æc biÖt hãa lµ Binding (g¾n), Abstraction (trõu
t−îng hãa), Usage (sö dông) vµ Permisson (cho phÐp).
Relation
name: Name
ModelElement Dependency
Binding
1..*
1..*
*
*
+ supplier
+ client + clientDependency
+ supplierDependency
Usage
mapping: MappingExpression
Abstraction Permission
+ argument
{ordered}
1..*
0..1
H×nh 2.15. M« h×nh Dependence
Binding (g¾n)
Binding ®Þnh nghÜa quan hÖ gi÷a mét Template (mÉu) lµ thµnh phÇn cho cña
Dependency víi mét thµnh phÇn ®−îc t¹o tõ Template ®ã lµ thµnh phÇn nhËn cña
Dependency. Binding bao gåm c¸c ®èi sè phï hîp víi c¸c tham sè cña Template.
Abstraction (trõu t−îng hãa)
Abstraction m« t¶ mèi liªn hÖ gi÷a c¸c phÇn tö ë c¸c møc trõu t−îng hãa
kh¸c nhau. VÝ dô nh− chuyÓn mét kh¸i niÖm ë møc ph©n tÝch sang møc thiÕt kÕ
b»ng quan hÖ Abstraction.
17
Usage (sö dông)
Usage lµ quan hÖ gi÷a mét phÇn tö ModelElement cã sö dông ph−¬ng thøc
cña mét phÇn tö ModelElement kh¸c.
Permisson (cho phÐp)
Permisson cung cÊp quyÒn h¹n cho mét phÇn tö ngoµi Namespace (kh«ng
gian c¸c phÇn tö) tham chiÕu c¸c phÇn tö kh¸c trong Namespace. PhÇn tö nhËn
lµ mét ModelElement phÇn tö cho b¾t buéc lµ mét Namespace.
2.4.1.5. M« h×nh AuxiliaryElements (c¸c phÇn tö bæ sung)
TemplateParameter
name:Name
ModelElement
Element
PresentationElement
+ defaultElement
1..*
0..1
+ subject
{ordered}
+ templateParameter
+presentation
+ annotatedElement
* *
Element
+argument
{ordered}
0..1
*
*
Comment
*
*
H×nh 2.16. M« h×nh AuxiliaryElements
Template Parameter (tham sè cho mÉu)
Tham sè cho mÉu lµ tham sè cho c¸c phÇn tö Template. VÝ dô nh− trong mét
m«i tr−êng ng«n ng÷ lËp tr×nh hç trî Template, ta cã thÓ x©y dùng líp míi b»ng
c¸ch cung cÊp c¸c líp tham sè cho Template. TemplateParameter ®Þnh nghÜa quan
18
hÖ gi÷a mét phÇn tö ModelElement víi c¸c tham sè (c¸c tham sè nµy lµ c¸c phÇn
tö ModelElement). ModelElement lµ mét Template khi sö dông Ýt nhÊt mét
TemplateParameter.
Presentation Element (phÇn tö biÓu diÔn trùc quan)
PresentationElement m« t¶ th«ng tin cho viÖc biÓu diÔn c¸c ModelElement.
UML kh«ng ®Þnh nghÜa cô thÓ c¸c th«ng tin nµy mµ ®Ó cho c¸c CASE tool tù do
®Þnh nghÜa.
2.4.2. Package Extension Mechanisms (gãi kü thuËt më réng)
2.4.2.1. Kh¸i qu¸t
Extension Mechanisms ®Þnh nghÜa c¸ch thøc më réng ng«n ng÷ UML b»ng
c¸ch ®−a ra c¬ chÕ bæ sung c¸c phÇn tö víi ng÷ nghÜa míi. Package nµy ®Þnh
nghÜa Stereotypes, Constraint (rµng buéc) vµ Tagged Value (thÎ gi¸ trÞ) lµ ba c¬
chÕ më réng cña UML.
UML cung cÊp c¬ chÕ më réng ®Ó thªm c¸c phÇn tö míi cho c¸c lÜnh vùc
®Æc biÖt mµ UML chuÈn kh«ng ®Þnh nghÜa. C¸c lÜnh vùc cÇn c¸c kh¸i niÖm míi
cã thÓ tù ®Þnh nghÜa c¸c kh¸i niÖm nµy qua c¬ chÕ më réng UML.
ViÖc më réng nµy kh«ng ®¬n gi¶n lµ g¾n tªn Stereotypes vµo phÇn tö vµ quy
®Þnh ng÷ nghÜa míi do ®«i khi cßn cã c¸c rµng buéc ng÷ nghÜa trong thÕ giíi
thùc. Do ®ã c¸c stereotype th−êng chøa c¸c rµng buéc vµ c¸c gi¸ trÞ thÎ. Mçi
StereoType quy ®Þnh lo¹i phÇn tö ModelElement mµ stereotype nµy cã thÓ t¸c
®éng. PhÇn tö ®−îc t¸c ®éng nµy lµ c¸c phÇn tö trong siªu m« h×nh UML vÝ dô
nh− Class, Association, Component... Khi g¾n stereotype vµo c¸c phÇn tö nµy th×
®−îc phÇn tö míi thõa kÕ phÇn tö cò vµ cã tªn cña stereotype. VÝ dô nh−
Component cã c¸c stereotype lµ "document”,"executable”,"table”. C¸c stereotype
nµy b¶n chÊt còng lµ component nh−ng "document" lµ mét thµnh phÇn
(component) chøa c¸c s−u liÖu, "executable" lµ thµnh phÇn chøa c¸c dÞch vô xö
lý cßn "table" chøa c¸c b¶ng trong mét c¬ së d÷ liÖu.
19
ModelElement
(from Core)
Constraint
(from Core)
+ constraint
{ordered}
+ constrainedElement
1
0..1
+ taggedValue
GeneralizableElement
(from Core)
+ stereotype
icon:Geometry
baseClass:Name
Stereotype
1..*
*
*
+ constrainedElement
0..1
0..1
+ requiredTag *
*
+ extendedElement
{xor}
Element
*
+ stereotypeConstraint
H×nh 2.17. M« h×nh Extension Mechanisms
2.4.2.2. Constraint (rµng buéc)
Lµ c¸c rµng buéc ng÷ nghÜa ®−îc g¾n víi mét phÇn tö cÇn më réng ®Ó ¸p
®Æt c¸c ®iÒu kiÖn lªn phÇn tö nµy vµ cã t¸c dông thay ®æi hay giíi h¹n ng÷
nghÜa. PhÇn tö më réng ph¶i tháa m·n c¸c rµng buéc nµy ®Ó ®¶m b¶o sù chÝnh
x¸c vÒ ng÷ nghÜa. Constraint còng cã thÓ ®−îc g¾n víi stereotypes ®Ó t¸c ®éng
lªn c¸c phÇn tö cã quan hÖ víi stereotypes nµy.
2.4.2.3. Stereotype
Lµ c¬ chÕ ph©n lo¹i mét phÇn tö theo quan hÖ kÕt hîp cña phÇn tö nµy víi
c¸c stereotype. Mçi stereotype g¾n mét phÇn tö sÏ cho mét phÇn tö míi thõa kÕ
phÇn tö cò ngoµi ra cã thªm c¸c th«ng riªng. Stereotype chÝnh lµ sù kh¸c nhau
vÒ ng÷ nghÜa cña hai phÇn tö cïng cÊu tróc. VÝ dô nh− trong quy tr×nh ph¸t triÓn
phÇn mÒm Rational Unified Process, c¸c stereotype cho phÇn tö Class ®−îc ®Þnh
nghÜa thªm trong ®ã cã stereotype "boundary”. Stereotype nµy lµ mét Class ®ãng
vai trß giao tiÕp víi c¸c t−¬ng t¸c bªn ngoµi hÖ thèng. Môc ®Ých cña më réng
nµy lµ ph©n lo¹i c¸c Class theo chøc n¨ng phôc vô cho qu¸ tr×nh ph©n tÝch.
20
Class víi
stereotype lµ
"boundary"
Giao diÖn ng−êi sö dông
Giao diÖn ng−êi sö dông
Ph©n tÝch
H×nh 2.18. VÝ dô Stereotype
2.4.2.4. Tagged Value (thÎ gi¸ trÞ)
Lµ c¸c thuéc tÝnh ®Ýnh kÌm cho mét phÇn tö më réng. Tagged Value cã thÓ
chøa nh÷ng th«ng tin bÊt kú cÇn thiÕt bæ sung cho mét phÇn tö míi.
2.4.3. C¸c kiÓu d÷ liÖu trong siªu m« h×nh UML (Data Types)
2.4.3.1. Kh¸i qu¸t
DataTypes ®Þnh nghÜa c¸c kiÓu d÷ kiÖu dïng riªng trong siªu m« h×nh UML
nghÜa lµ thuéc tÝnh cña c¸c phÇn tö trong siªu m« h×nh UML cã c¸c kiÓu d÷ liÖu
trong Data Types. Data Types cÇn thiÕt cho sù tham kh¶o s©u h¬n vÒ c¸c thuéc
tÝnh vµ ý nghÜa mçi thuéc tÝnh cña mét phÇn tö trong siªu m« h×nh UML.
Data Types kh«ng ph¶i lµ kiÓu d÷ liÖu cña ng−êi sö dông. KiÓu d÷ liÖu cña
ng−êi sö dông UML ®−îc ®Þnh nghÜa bëi DataType lµ ®Æc biÖt hãa cña
Classifiers trong Core. Data Types kh«ng ®Þnh nghÜa có ph¸p nµo cho ng−êi sö
dông.
2.4.3.2. C¸c kiÓu d÷ liÖu trong Data Types
ActionExpression : biÓu thøc cho kÕt qu¶ lµ sù thi hµnh mét Action.
AggregationKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ none, aggregate, composite.
C¸c gi¸ trÞ nµy x¸c ®Þnh lo¹i Association.
ArgListsExpression :biÓu thøc tr¶ vÒ mét danh s¸ch c¸c ®èi t−îng (object).
Boolean : kiÓu liÖt kª bao gåm hai gi¸ trÞ false vµ true.
BooleanExpression : biÓu thøc logic tr¶ vÒ kiÓu Boolean.
CallConcurrencyKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ sequential, guarded,
concurrent.
ChangeableKind : kiÓu liÖt kª quy ®Þnh gi¸ trÞ mét AttributeLink hay mét
LinkEnd cã thÓ thay ®æi bao gåm c¸c none, frozen vµ addOnly.
Enumeration : ®Þnh nghÜa kiÓu liÖt kª.
21
EnumerationLiteral : ®Þnh nghÜa mét gi¸ trÞ thuéc mét kiÓu liÖt kª.
Expression : biÓu thøc tr¶ vÒ mét kiÓu thuéc package DataType.
Integer : kiÓu nguyªn.
IterationExpression : chuçi tr¶ vÒ cÊu tróc kiÓm so¸t lÆp.
LocationReference : vÞ trÝ cho viÖc chÌn mét use case vµo mét use case kh¸c.
Mapping : biÓu thøc chuyÓn ®æi c¸c ModelElement.
MappingExpression : biÓu thøc tr¶ vÒ kiÓu Mapping.
MessageDirectionKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ activation vµ return.
Muliplicity : tËp c¸c sè nguyªn kh«ng ©m.
MultiplicityRange : miÒn gi¸ trÞ sè nguyªn kh«ng ©m.
Name : ®Þnh danh cho mét ModelElement.
ObjectSetExpression : biÓu thøc tr¶ vÒ danh s¸ch c¸c ®èi t−îng.
OperationDirectionKind : kiÓu liÖt kª quy ®Þnh mét Operation lµ ®−îc yªu cÇu
hay ®−îc cung cÊp bëi mét Classifier bao gåm c¸c gi¸ trÞ provide vµ require.
ParameterDirectionKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ in, inout, out vµ return.
Primitive : ®Þnh nghÜa kiÓu d÷ liÖu ®¬n.
ProcedureExpression : biÓu thøc tr¶ vÒ mét Procedure.
ProgrammingLanguageType : kiÓu d÷ liÖu trong mét ng«n ng÷ lËp tr×nh.
PseudostateKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ initial, deepHistory,
shallowHistory, join, fork, branch, junction vµ final.
ScopeKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ classifier vµ instance.
String : chuçi v¨n b¶n.
Structure : kiÓu d÷ liÖu cã cÊu tróc.
Time : kiÓu giê.
TimeExpression : biÓu thøc kiÓu Time.
UnlimitedInteger : kiÓu nguyªn kh«ng giíi h¹n.
Uninterpreted : kiÓu kh«ng x¸c ®Þnh.
VisibilityKind : kiÓu liÖt kª bao gåm c¸c gi¸ trÞ public, protected vµ private.
2
Các file đính kèm theo tài liệu này:
- pages_from_ngon_ngu_mo_hinh_hoa_uml_2.pdf