Đề tài Ngữ nghĩa và cú pháp các phần tử trong UML

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

pdf36 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2029 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đề tài Ngữ nghĩa và cú pháp các phần tử trong UML, để 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.5. Behavioural Elements Package (gãi phÇn tö hµnh vi) Behavioral Elements bao gåm c¸c phÇn tö cïng víi c¸c có ph¸p cho m« h×nh hãa hµnh vi vµ t−¬ng t¸c. BehavioralElements bao gåm n¨m gãi lµ Common Behavior (hµnh vi tæng qu¸t), Collaborations (m« h×nh céng t¸c), Use Cases (m« h×nh chøc n¨ng), State Machines (m« h×nh tr¹ng th¸i) vµ Activity Graphs (m« h×nh hµnh ®éng). 22 Activity Graphs State MachinesUse CasesCollaboration Common Behavior H×nh 2.19 Behavioural Elements Package CommonBehavior ®Þnh nghÜa c¸c phÇn tö hµnh vi c¬ b¶n. Collaboration ®Þnh nghÜa c¸c phÇn tö vµ có ph¸p cho biÓu ®å Collaboration vµ Sequence ë M« h×nh UML. Collaboration m« t¶ t−¬ng t¸c gi÷a c¸c phÇn tö ®Ó thùc hiÖn mét t¸c vô cô thÓ. Use Cases bao gåm c¸c phÇn tö m« h×nh hãa chøc n¨ng hÖ thèng cho tõng lo¹i ng−êi sö dông. Use Cases gi÷ vai trß ®Þnh nghÜa cho biÓu ®å Use Case ë M« h×nh UML. StateMachine bao gåm c¸c kh¸i niÖm cho m« h×nh hãa qu¸ tr×nh thay ®æi tr¹ng th¸i cña mét phÇn tö. StateMachine ®Þnh nghÜa biÓu ®å StateChart trong M« h×nh UML. Activity Graphs lµ d¹ng ®Æc biÖt cña StateMachine, ®−îc ®Þnh nghÜa dùa trªn StateMachine, m« t¶ qu¸ tr×nh hµnh ®éng cña mét hay nhiÒu phÇn tö. Activity Graphs ®Þnh nghÜa biÓu ®å Activity Graph trong M« h×nh UML. 2.5.1. Package Common Behavior (gãi hµnh vi tæng qu¸t) Common Behavior ®Þnh nghÜa c¸c phÇn tö c¬ b¶n cho m« h×nh hãa t−¬ng t¸c. Common Behiavior ®−îc m« t¶ b»ng c¸c m« h×nh Signals (tÝn hiÖu), Actions (hµnh ®éng), Instances and Links (thÓ hiÖn vµ liªn kÕt). 23 Classifier (from Core) Signal Exception BehavioralFeature (from Core) specification:String isRoot:Boolean isLeaf:Boolean isAbstract:Boolean Stereotype +signal 0..* +reception * +context+raisedSignal 1 * H×nh 2.20. M« h×nh Signals 2.5.1.1. M« h×nh Signals (tÝn hiÖu) M« h×nh nµy chñ yÕu ®Þnh nghÜa phÇn tö Signal (tÝn hiÖu). TÝn hiÖu ®−îc t¹o ra tõ mét BehavioralFeature (®Æc ®iÓm hµnh vi) cña classifier nµy vµ gñi ®Õn mét phÇn tö Reception (nhËn tÝn hiÖu)cña mét classifier kh¸c. Reception (phÇn tö nhËn tÝn hiÖu) Reception lµ phÇn tö nhËn tÝn hiÖu tõ mét classifier vµ gi÷ chøc n¨ng m« t¶ c¸c hµnh ®éng (b»ng chuçi v¨n b¶n) cña tÝn hiÖu ®Õn classifier nhËn. Signal (tÝn hiÖu) Signal lµ c¸c t¸c t−¬ng t¸c kh«ng ®ång bé gi÷a c¸c classifier vµ lµ phÇn tö ®éc lËp víi c¸c classifier. Signal ®−îc t¹o ra do c¸c BehavioralFeature (®Æc ®iÓm hµnh vi) cña c¸c classifier nµy vµ göi ®Õn c¸c classifier kh¸c. Do BehavioralFeature lµ phÇn tö hµnh vi trõu t−îng nªn tÊt c¶ c¸c phÇn tö hµnh vi thõa kÕ BehavioralFeature nh− c¸c operation (m« t¶ ph−¬ng thøc) ®Òu cã thÓ t¹o vµ göi c¸c signal. 24 Exception (lçi ngo¹i lÖ) Thõa kÕ signal, exception lµ tÝn hiÖu ®−îc göi ®i khi cã mét lçi trong qu¸ tr×nh thi hµnh mét hµnh vi. 2.5.1.2. M« h×nh Actions (hµnh ®éng) Action ®−îc m« t¶ b»ng m« h×nh Actions cña siªu m« h×nh UML. Action lµ c¸c chØ thÞ thi hµnh cã g©y ¶nh h−ëng ®Õn tr¹ng th¸i cña hÖ thèng Model (from Core) recurrence:IterationExpression target:ObjectSetExpression isAsynchronous:Boolean script:ActionExpression Action value:Expression Argument ActionSequence CallAction SendAction UninterpretedAction ReturnAction TerminateAction Operation (from Core) Signal DestroyAction * 1 * 1 +instantiation CreateAction Class (from Core) 0..* 1 +operation +signal 0..1 0..* +actualArgument {ordered} {ordered} +action 0..1 H×nh 2.21. M« h×nh Action Argument (®èi sè) Argument lµ ®èi sè cho mét Action, cung cÊp gi¸ trÞ tham sè cho mét Action. Action (hµnh ®éng) Action lµ c¸c chØ thÞ thi hµnh trong mét quy tr×nh tÝnh to¸n cã ¶nh h−ëng ®Õn tr¹ng th¸i cña hÖ thèng. Action bao gåm c¸c ®Æc biÖt hãa sau AssignmentAction : g¸n cho thuéc tÝnh mét gi¸ trÞ míi. 25 CallAction : kÝch ho¹t mét hµnh ®éng. CreateAction : t¹o thÓ hiÖn cña mét Classifier. DestroyAction : hñy mét ®èi t−îng ReturnAction : tr¶ vÒ gi¸ trÞ cho ®èi t−îng gäi. SendAction : göi tÝn hiÖu (Signal ). TerminateAction : hµnh ®éng tù hñy cña mét ®èi t−îng. UninterpretedAction : hµnh ®éng kh«ng x¸c ®Þnh. ActionSequence (hµnh ®éng phøc) ActionSequence lµ mét hµnh ®éng chøa mét tËp c¸c Action con theo thø tù x¸c ®Þnh. 2.5.1.3. M« h×nh Instances vµ Links (thÓ hiÖn vµ liªn kÕt) Instance vµ Link ®−îc ®Þnh nghÜa trong m« h×nh Instances vµ Links cña siªu m« h×nh UML. Instance ®Þnh nghÜa thÓ hiÖn cña mét classifier, c¸c thÓ hiÖn nµy liªn kÕt víi nhau qua c¸c Link. Stimulus (t¸c nh©n) Stimulus lµ mét giao tiÕp cô thÓ gi÷a hai instance qua mét liªn kÕt (link) ®−îc göi ®i bëi sù thi hµnh mét Action, cã thÓ lµ mét tÝn hiÖu göi ®Õn instance hay viÖc kÝch ho¹t mét ph−¬ng thøc. Hay nãi c¸ch kh¸c, c¸c thÓ hiÖn t−¬ng t¸c víi nhau qua stimulus. AttributeLink (thÎ thuéc tÝnh) AttributeLink chøa tËp c¸c gi¸ trÞ cña Attribute trong mét instance do ®ã thÓ hiÖn tr¹ng th¸i cña instance. LinkEnd (mèi liªn kÕt) LinkEnd lµ c¸c mèi liªn kÕt cña mét Link. Mçi LinkEnd t−¬ng øng víi mét AssociationEnd (mèi kÕt hîp) ®Ó x¸c ®Þnh LinkEnd. LinkEnd trong siªu m« h×nh UML lµ thÓ hiÖn cña AssociationEnd trong siªu m« h×nh UML. C¸c instance liªn kÕt víi nhau qua c¸c LinkEnd. Link (liªn kÕt) Link lµ liªn kÕt gi÷a c¸c instance. Link t−¬ng øng víi mét Association cã vai trß x¸c ®Þnh Link. Link trong siªu m« h×nh UML lµ thÓ hiÖn Association trong siªu m« h×nh UML. Link chØ cã vai trß liªn kÕt c¸c instance víi nhau, c¸c hµnh ®éng 26 gi÷a c¸c instance thùc hiÖn qua c¸c stimulus. Mét Link cã thÓ t−¬ng øng víi nhiÒu stimulus. Instance (thÓ hiÖn) Instance lµ thÓ hiÖn cña mét Classifier. Instance lµ mét thùc thÓ cã c¸c th«ng tin vÒ tr¹ng th¸i vµ chÞu t¸c ®éng cña c¸c Operation (m« t¶ ph−¬ng thøc) ®Ó thay ®æi tr¹ng th¸i. Instance ®−îc x¸c ®Þnh cÊu tróc vµ hµnh ®éng qua Classifier cã quan hÖ kÕt hîp víi nã. Instance cã c¸c ®Æc biÖt hãa sau DataValue (gi¸ trÞ d÷ liÖu): gi¸ trÞ cña mét thuéc tÝnh lµ thÓ hiÖn cña kiÓu d÷ liÖu cña thuéc tÝnh ®ã. ComponentInstance (thÓ hiÖn thµnh phÇn): thÓ hiÖn cña mét Component. NodeInstance (thÓ hiÖn nót) : thÓ hiÖn cña mét Node. Object (®èi t−îng) : thÓ hiÖn cña mét Class. 27 28 ModelElement (from Core)recurrence:IterationExpression target:ObjectSetExpression isAsynchronous:Boolean script:ActionExpression Action Attribute (from Core) Classifier (from Core) AttributeLink Link LinkEnd Asscociatio n (from Core) AsscociationEnd (from Core)Instance +classifie r DataValue ComponentInstance NodeInstance Object LinkObject +attribute +slot +value {orderd} +argument +receiver +sender +communicationLin k +connection {ordered } +linkEn d +asscociatio n +asscociationEn d +connection +instance +resident +dispatchAction 1 2..* 0..* 1 Simulus * * 1 * 1 * 0..1* * 1 1 * 1 * 1 * 1 +resident * 0..1 0..1 H×nh 2.22. M« h×nh Instances vµ Links 29 2.5.2. Collaborations Package (gãi céng t¸c) Collaborations ®Þnh nghÜa phÇn tö Collaboration vµ có ph¸p cho m« h×nh hãa t−¬ng t¸c gi÷a c¸c phÇn tö ®Ó thi hµnh mét t¸c vô cô thÓ. M« h×nh céng t¸c m« t¶ quan hÖ gi÷a instance vµ link th«ng qua c¸c message (th«ng ®iÖp). PhÇn tö Collaboration ®−îc ®Þnh nghÜa lµ qu¸ tr×nh trao ®æi c¸c message (th«ng ®iÖp) gi÷a c¸c role (vai) cña c¸c phÇn tö trong Collaboration. Mét phÇn tö classifier cã thÓ tham gia vµo Collaboration th«ng qua nhiÒu vai cña phÇn tö ®ã. GeneralizableElement {from Core} NameSpace {from Core} NameSpace Operatio {from Cor Classifie {from Cor * * 0..1 0..1 + represented Operation + represented Classifier AsosicationRole multiplic ity: Multiplicity + ownedElement InteractionModel Element {from Core} Message Asosication {from Core} AsosicationEnd {from Core} AsosicationEndRole collaborationMultiplic ity: Multiplic ity ClassifierRole multiplic ity: Multiplicity Attribute {from Core} Feature {from Core} Action {from Core} 1 + context1 * 1 * + interaction + message + predecssor * *+ activation + action * * 0..1 1 ** 1 1+ receive+ sender +/ ownedElement1..* * +/type 1* * * +avaiable Feature +avaiableQualifier * * 1 2..* +/connection *0..1 + base +connection 1 2..* 1 * * * + constrainingElement +avaiable contents * * {xor} H×nh 2.23. Gãi Collaborations AssociationEndRole (vai cña mèi kÕt hîp) AssociationEndRole lµ mèi liªn kÕt cña mét vai Association (AssociationRole) trong Collaboration. Mét Association cã thÓ tham gia nhiÒu vai vµo Collaboration nªn còng cã nhiÒu vai cña mèi liªn kÕt t−¬ng øng. 31 AssociationRole (vai cña quan hÖ kÕt hîp) Mét Association cã thÓ tham gia vµo Collaboration qua nhiÒu AssociationRole. AssociationRole lµ mét vai cña Association trong Collaboration. ClassifierRole (vai cña Classifier) Mét Collaboration bao gåm c¸c ClassifierRole vµ c¸c liªn kÕt gi÷a c¸c ClassifierRole nµy. Mét Classifier cã thÓ tham gia vµo Collaboration qua nhiÒu ClassifierRole. Collaboration (hîp t¸c) Collaboration m« t¶ qu¸ tr×nh t−¬ng t¸c gi÷a c¸c phÇn tö classifier (qua c¸c ClassifierRole cña nã) ®Ó thùc hiÖn mét operation (m« t¶ ph−¬ng thøc). C¸c classifier nµy trao ®æi c¸c th«ng ®iÖp víi nhau theo mét thø tù x¸c ®Þnh. Mçi th«ng ®iÖp g©y ra mét hµnh ®éng lªn phÇn tö classifier nhËn. Collaboration chÝnh lµ m« t¶ cho c¬ chÕ vËn hµnh cña mét hÖ thèng Giao diÖn söa ®æi th«ng tin sinh viªn :SVUI Xö lý söa ®æi th«ng tin sinh viªn:SV control Xö lý söa ®æi th«ng tin sinh viªn:SV control D÷ liÖu sinh viªn : SV Data 1.Söa ®æi th«ng tin sinh viªn :Phßng ®µo t¹o 4.Chän sinh viªn vµ söa ®æi 5.CËp nhËt th«ng tin ®· söa ®æi 5. CËp nhËt th«ng tin sinh viªn 2. HiÓn thÞ c¸c sinh viªn 3.lÊy d÷ liÖu sinh viªn 7. CËp nhËt d÷ liÖu lªn CSDL AsociationRole Th«ng ®iÖp víi classifier göi vµ nhËn Hai vai trß cña cïng m ét classifier "SVControl" tham gia vµo Collaboration H×nh 2.24. VÝ dô sù hîp t¸c 32 Message (th«ng ®iÖp) Message lµ th«ng ®iÖp gi÷a c¸c ClassifierRole. Message ®Þnh nghÜa vai trß cña ClassifierRole göi vµ ClassifierRole nhËn cïng víi mét Action (hµnh ®éng) lªn Classifier nhËn th«ng ®iÖp. 2.5.3. Use Cases Package (gãi Use Cases) Use Cases ®Þnh nghÜa c¸c phÇn tö vµ có ph¸p cho m« h×nh hãa chøc n¨ng cña hÖ thèng cung cÊp cho tõng lo¹i ng−êi sö dông. C¸c phÇn tö trong Use Cases chñ yÕu ®Ó m« t¶ c¸c hµnh vi trong hÖ thèng trong khi vÉn ch−a x¸c ®Þnh cÊu tróc hÖ thèng. Use Cases ®Þnh nghÜa hai phÇn tö c¬ b¶n lµ Actor vµ UseCase. Actor lµ c¸c t¸c nh©n bªn ngoµi hÖ thèng cã t−¬ng t¸c víi hÖ thèng (cã thÓ lµ ng−êi sö dông hay mét hÖ thèng kh¸c). Trong khi ®ã, mçi UseCase m« t¶ mét chøc n¨ng cña hÖ thèng vµ chøc n¨ng nµy ®−îc kÝch ho¹t khi cã t¸c ®éng cña Actor lªn UseCase. Association nèi Actor víi c¸c UseCase cho biÕt c¸c chøc n¨ng mµ hÖ thèng cung cÊp cho Actor. Classifier {from Core} Instance {from Common Behavior} UseCaseInstance UseCaseActor Include Extend condition : BooleanExpression Relationship {from Core} Model Element {from Core} ExtensionPoint location :LocationRefence +extensionPoint *1..* +classifier 1 * 1..* +extensionPoint {ordered} * + base + base +extension 11 1 +include** +addition 1 * * H×nh 2.25. gãi Use Cases Actor (t¸c nh©n) Actor lµ t¸c nh©n t¸c ®éng lªn hÖ thèng th«ng qua c¸c Use Case cña hÖ thèng. Mét Actor cã thÓ t−¬ng t¸c víi nhiÒu Use Case kh¸c nhau. 33 ExtensionPoint (®iÓm më réng) ExtensionPoint lµ vÞ trÝ trong mét UseCase cã thÓ më réng hµnh vi b»ng c¸ch chÌn thªm c¸c hµnh vi cho Use Case ®ã. Extend (më réng) Extend ®Þnh nghÜa quan hÖ gi÷a c¸c Use Case víi ý nghÜa mét Use Case nµy cã thÓ ®−îc më réng thªm c¸c hµnh vi trong Use Case kh¸c b»ng c¸ch thªm vµo m« t¶ cña Use Case gèc c¸c biÓu thøc vµ ®iÒu kiÖn më réng t¹i nh÷ng vÞ trÝ x¸c ®Þnh trong mét d·y c¸c hµnh vi cña Use Case. Include (bao gåm) Include ®Þnh nghÜa quan hÖ gi÷a c¸c Use Case víi ý nghÜa UseCase nµy sö dông c¸c hµnh vi ®−îc ®Þnh nghÜa trong UseCase kh¸c. UseCase UseCase lµ c¸c chøc n¨ng cña hÖ thèng d−íi gãc ®é cña ng−êi sö dông. UseCase kh«ng quan t©m ®Õn cÊu tróc bªn trong cña hÖ thèng. Mçi UseCase bao gåm mét d·y c¸c hµnh ®éng nguyªn tè cã thø tù (kh«ng bÞ ng¾t bëi c¸c hµnh ®éng nµo kh¸c)mµ hÖ thèng sÏ thùc hiÖn khi cã t−¬ng t¸c cña Actor lªn UseCase ®ã. Mçi UseCase cã thÓ ®−îc m« t¶ râ h¬n th«ng qua mét Collaboration chøa c¸c thµnh phÇn cña hÖ thèng vµ t−¬ng t¸c gi÷a chóng ®Ó thùc hiÖn Use Case. :Phßng ®µo t¹o Qu¶n lý sinh viªn §¨ng nhËp hÖ thèng > actor (t¸c nh©n) Usecase (tr−êng hîp sö dông) H×nh 2.26. VÝ dô UseCase 34 2.5.4. Package State Machines (gãi m« h×nh tr¹ng th¸i) State Machines cung cÊp c¸c phÇn tö vµ có ph¸p cho m« h×nh hãa hµnh ®éng vµ biÕn ®æi tr¹ng th¸i cña mét phÇn tö trong chu kú sèng d−íi c¸c sù kiÖn t¸c ®éng lªn nã. Mét mét phÇn tö (nh− c¸c Classifiers, Operation, Attribute...) cã thÓ cã mét qu¸ tr×nh biÕn ®æi tr¹ng th¸i. Qu¸ tr×nh nµy ®−îc ®Þnh nghÜa bëi phÇn tö StateMachine. PhÇn tö StateMachine ®−îc ®Þnh nghÜa trong gãi nµy bao gåm phÇn tö c¬ b¶n lµ State vµ Transition. State m« t¶ tr¹ng th¸i mét phÇn tö. Transition bao gåm nhiÒu lo¹i kh¸c nhau m« t¶ sù chuyÓn tr¹ng th¸i sang mét tr¹ng th¸i míi qua hµnh ®éng cña mét event (sù kiÖn). State Machines bao gåm hai m« h×nh lµ Main (chñ yÕu) vµ Events (sù kiÖn). Main m« t¶ State (tr¹ng th¸i) vµ chuyÓn tr¹ng th¸i (Transition). Events m« t¶ c¸c sù kiÖn t¸c ®éng lªn mét phÇn tö. 2.5.4.1. M« h×nh Main Model Element {from Core} E Action {from Common Behavior} State StateVertex StateMachine SynchState bound : UnlimitedInteger PseudoState kind : PseudoKind StubState referenceState: Name Transition SimpleState FinalStateCompositeState isConcurent : Boolean SubmachineState Guard expression : BooleanExpression + source + target +top 0..1 * 1 +context *+behaviour +submachine 1 1 * +outgoing +incoming +transition 0..1 * +guard0..1 1 0..1 0..1 +effect * 0..1 0..1 * +internal 0..1 0..1 0..1 0..1 0..1 0..1 +entry +exit +doActivity +deferrableEven 0..*0..* 0..1 * +container +subvertex 0..* 35 H×nh 2.27. M« h×nh Main ®Þnh nghÜa c¸c tr¹ng th¸i vµ sù dÞch chuyÓn tr¹ng th¸i StateVertex (®iÓm tr¹ng th¸i) StateVertex lµ ®iÓm biÓu diÔn trùc quan mét tr¹ng th¸i. State (tr¹ng th¸i) VÏ h×nh entry:thiÕt lËp Device do:vÏ trªn Device exit: huû bá Device H×nh 2.28. VÝ dô tr¹ng th¸i State m« t¶ tr¹ng th¸i cña phÇn tö (classifier, operation, use case...)ngoµi ra cßn m« t¶ mét sè c¸c Action sÏ ®−îc thi hµnh khi phÇn tö b¾t ®Çu tr¹ng th¸i, n¾m gi÷ tr¹ng th¸i vµ kÕt thóc tr¹ng th¸i cïng mét sè c¸c Event (sù kiÖn) ®−îc treo kh«ng cho t¸c ®éng lªn phÇn tö. State cã ®Æc biÖt hãa lµ FinalState. FinalState lµ tr¹ng th¸i kÕt thóc. PseudoState (tr¹ng th¸i gi¶) PseudoState ®Þnh nghÜa c¸c lo¹i State më réng cho StateMachine. PseudoState bao gåm c¸c lo¹i sau initial : tr¹ng th¸i khëi ®Çu ®Ó phÇn tö chuyÓn sang tr¹ng th¸i mÆc ®Þnh. deepHistory : lÊy l¹i State ®· ®−îc gi÷ tr−íc ®ã ë bÊt cø State con nµo cña CompositeState chøa deepHistory. shallowHistory : lÊy l¹i State ®· ®−îc gi÷ tr−íc ®ã ë cïng møc víi shalowHistory trong CompositeState. join : nhãm c¸c Transition tõ nhiÒu State kh¸c nhau. fork : t¸ch Transition thµnh nhiÒu Transition ®Õn c¸c State kh¸c nhau. junction : t¸ch mét Transition thµnh c¸c Transition cã Guard ®Ó ph©n nh¸nh theo ®iÒu kiÖn 36 Tr¹ng th¸i mÆc ®Þnh T¹m dõng Tr¹ng th¸i kÕt hîp 1 Tr¹ng th¸i kÕt hîp 2 B1 H C1 C2 H×nh 2.29. VÝ dô vÒ tr¹ng th¸i gi¶ vµ tr¹ng th¸i kÕp hîp Transition (chuyÓn tr¹ng th¸i) Transition ®Þnh nghÜa quan hÖ chuyÓn ®æi tr¹ng th¸i gi÷a mét StateVertex nguån vµ mét StateVertex ®Ých. Mét Transition cã thÓ g¾n víi c¸c Guard (c¶nh giíi). Guard lµ biÓu thøc logic g¾n víi mçi Transition. Khi mét sù kiÖn t¸c ®éng lªn phÇn tö g¾n víi StateMachine, Transition sÏ ®−îc kÝch ho¹t ®Ó phÇn tö nµy chuÈn bÞ chuyÓn tr¹ng th¸i. §èi víi c¸c Transition cã Guard th× biÓu thøc cña Guard sÏ ®−îc l−îng gi¸. Sù chuyÓn tr¹ng th¸i chØ x¶y ra khi biÓu thøc nµy cã gi¸ trÞ lµ true, ng−îc l¹i sÏ bÞ hñy bá. CompositeState (tr¹ng th¸i phøc) Composite State ®¹i diÖn cho tr¹ng th¸i phøc bao gåm nhiÒu ®iÓm tr¹ng th¸i (StateVertex). Do mçi ®iÓm tr¹ng th¸i biÓu diÔn mét tr¹ng th¸i ®¬n nªn CompositeState còng bao gåm nhiÒu tr¹ng th¸i ®¬n. CompositeState còng cã thÓ bao gåm c¸c CompositeState kh¸c. StateMachine StateMachine lµ phÇn tö m« t¶ tr¹ng th¸i vµ sù biÕn ®æi tr¹ng th¸i qua c¸c sù kiÖn cho phÇn tö g¾n víi StateMachine. StateMachine bao gåm hai phÇn tö c¬ b¶n lµ State (tr¹ng th¸i) vµ Transition (chuyÓn tr¹ng th¸i). 2.5.5. M« h×nh Events (sù kiÖn) Event lµ c¸c sù kiÖn t¸c ®éng lªn mét ModelElement bao gåm c¸c ®Æc biÖt hãa sau 37 Call Event : mét Operation ®−îc kÝch ho¹t. ChangeEvent : mét biÓu thøc logic chuyÓn sang gi¸ trÞ true. SignalEvent : mét Signal ®−îc göi ®i. TimeEvent : kÕt thóc mét giíi h¹n thêi gian. Model Element {from Core} Parameter {from Core} Operation {from Core} Signal {from Core} Event SignalEvent CallEvent TimeEvent when : TimeExpression ChangeEvent changeExpression : BooleanExpression {ordered} + parameter 0..1 1 * * * 1 + occurrence + occurrence + signnal + operation H×nh 2.30. M« h×nh Event 2.5.6. Activity Graphs Package (gãi biÓu ®å hµnh ®éng) Activity Graphs lµ ®Æc biÖt ho¸ tõ StateMachine. Activity Graphs m« t¶ c¸c phÇn tö vµ có ph¸p cho m« h×nh hãa hµnh ®éng vµ sù chuyÓn ®æi hµnh ®éng gi÷a c¸c phÇn tö víi nhau ®Ó thùc hiÖn mét t¸c vô. Activity Graphs tËp trung vµo tr×nh tù vµ ®iÒu kiÖn x¶y ra cña c¸c hµnh ®éng, sù ph©n chia hµnh ®éng cho mçi phÇn tö liªn quan. 38 Model Element {from Core} Classifier {from Core} StateMachine {from State Machine} Parameter {from Core} PartitionActivityGraph State {from State Machine} CompositeState isConcurrent: Boolean SimpleState {from State Machine} SubmachineState {from State Machine} ActionState isDynamic : Boolean dynamicArgument: : ArgListExpression dynamicMultiplicity : Multiplicity ObjectFlowState isSynch: Boolean ClassifierState SubactivityState isDynamic : Boolean dynamicArgument: : ArgListExpression dynamicMultiplicity : Multiplicity CallState +type +behavior +context 0..1 * 0..1 1+top +inState 1..* +partition 1 0..* 1 * 1 * +type +state +parameter * * 0..* +top H×nh 2.31. M« h×nh Activity Graphs 2.5.6.1. ActionState (tr¹ng th¸i hµnh ®éng) ActionState kÕ thõa SimpleState tõ StateMachine ®¹i diÖn cho viÖc thi hµnh mét hµnh ®éng. 2.5.6.2. ActivityGraph (®å thÞ hµnh ®éng) ActivityGraph m« t¶ c¸c xö lý cña c¸c phÇn tö liªn quan, phÇn tö nµo ®¶m nhËn c¸c xö lý nµo vµ sù chuyÓn giao xö lý gi÷a c¸c phÇn tö víi nhau. ActivityGraph ®−îc g¾n víi mét classifier (bao gåm UseCase) vµ cã thÓ ®−îc sö dông ®Ó m« h×nh hãa quy tr×nh nghiÖp vô trong mét tæ chøc. 39 Yªu cÇu mua hµng Thanh to¸n NhËn ®Æt hµng Giao hµng Cung cÊp hµng NhËn hµng Kh¸ch hµng Bé phËn b¸n hµng Kho hµng H×nh 5.32. VÝ dô vÒ biÓu ®å ho¹t ®éng 2.5.6.3. ObjectFlowState (tr¹ng th¸i ®èi t−îng lu©n chuyÓn) ObjectFlowState m« t¶ sù trao ®æi d÷ liÖu vÒ c¸c ®èi t−îng gi÷a c¸c tr¹ng th¸i hµnh ®éng trong ActivityGraph. ObjectFlowState chøa th«ng tin vÒ mét classifier ®ang ë mét tr¹ng th¸i x¸c ®Þnh vµ ®ãng vai trß trao ®æi th«ng tin gi÷a c¸c ActionState. 2.5.6.4. Partition (vïng) Parttion ph©n chia c¸c State trong ActivityGraph thµnh c¸c nhãm vµ th−êng t−¬ng øng víi c¸c ®¬n vÞ cÊu tróc trong mét tæ chøc. Partition cã thÓ ®−îc sö dông ®Ó ph©n lo¹i tr¹ng th¸i hay c¸c tµi nguyªn hÖ thèng cã liªn quan ®Õn mét nhãm c¸c tr¹ng th¸i 2.6. Model Management Package (gãi qu¶n trÞ m« h×nh) Model Management bao gåm c¸c phÇn tö cã chøc n¨ng tËp hîp c¸c phÇn tö kh¸c thµnh nhãm. C¸c phÇn tö ®−îc ®Þnh nghÜa trong Model Management cã ý nghÜa logic trong hÖ thèng ®−îc m« h×nh hãa. Chøc n¨ng cña chóng lµ ph©n 40 chia hÖ thèng thµnh c¸c phÇn con gióp cho viÖc qu¶n lý m« h×nh còng nh− m« h×nh hãa thuËn lîi h¬n. Model Element {from Core} Classifier {from Core} NameSpace {from Core} + ownedElement ElementOwnerShip {from Core} Element Import visibility : visibilityKind alias : Name GeneralizableElement {from Core} Package Model + nameSpace +importedElement 0..1 * * * Subsystem isInstantiable: Boolean H×nh 5.33. Gãi Model Management 2.6.1. ElementImport ElementImport ®Þnh nghÜa chØ danh vµ tÇm vùc cña mét ModelElement khi ®−îc ®−a vµo mét Package. Mét ModelElement trong package sÏ cã chØ danh cã thÓ kh¸c víi ®Þnh danh cña ModelElement ®ã. 2.6.2. Model (m« h×nh) M« h×nh lµ trõu t−îng hãa cña mét hÖ thèng cho mét môc ®Ých cô thÓ. Môc ®Ých nµy gióp x¸c ®Þnh nh÷ng thµnh phÇn nµo cña hÖ thèng sÏ ®−îc ph¶n ¸nh ë m« h×nh, kh«ng ph¶i tÊt c¶ c¸c thµnh phÇn hÖ thèng ®Òu tån t¹i trong mét m« h×nh. Do ®ã m« h×nh sÏ thÓ hiÖn hÖ thèng trªn gãc ®é phï hîp víi môc ®Ých nµy. 2.6.3. Package (gãi) Package lµ tËp hîp logic c¸c phÇn tö do ®ã Package kh«ng ®ãng vai trß g× trong qu¸ tr×nh m· hãa phÇn mÒm. Tuy nhiªn Package gióp qu¶n lý m« h×nh víi chøc n¨ng chøa c¸c phÇn tö vµ c¸c Package con. C¸c thµnh phÇn trong mét Package cã tÇm vùc ®−îc x¸c ®Þnh qua thuéc tÝnh visibility cho c¸c thµnh phÇn ngoµi Package tham chiÕu ®Õn. 41 Quan hÖ "access" (lµ mét stereotype cña quan hÖ Permission)gi÷a hai Package mang ý nghÜa c¸c phÇn tö cã visibility lµ "public" trong Package cho cã thÓ tham chiÕu bëi c¸c phÇn tö trong Package nhËn. Quan hÖ "import" (lµ mét stereotype cña quan hÖ Permission)gi÷a hai Package mang ý nghÜa c¸c phÇn tö cã visibility lµ "public" trong Package cho ®−îc thªm vµo trong Package nhËn víi c¸c chØ danh kh¸c (®Ó tr¸nh trïng tªn víi chØ danh cña c¸c phÇn tö cã s½n) vµ cã thÓ ®−îc tham chiÕu bëi c¸c phÇn tö cã s½n qua chØ danh nµy. 2.6.4. Subsystem (hÖ thèng con) Subsystem lµ nhãm c¸c phÇn tö m« t¶ hµnh ®éng cña mét hÖ thèng. Subsystem do ®ã bao gåm c¸c Operation (m« t¶ ph−¬ng thøc) vµ cung cÊp c¸c Interface (giao diÖn). C¸c thµnh phÇn trong Subsystem cã thÓ chia lµm hai lo¹i lµ c¸c thµnh phÇn m« t¶ hµnh ®éng vµ c¸c thµnh phÇn thùc thi hµnh ®éng. 42

Các file đính kèm theo tài liệu này:

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