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)

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.

pdf36 trang | Chia sẻ: luyenbuizn | Lượt xem: 1057 | Lượt tải: 1download
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:

  • pdfpages_from_ngon_ngu_mo_hinh_hoa_uml_2.pdf
Tài liệu liên quan