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
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.
51 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 728 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Giáo trình UML - OOAD - Phân tích thiết kế phần mềm (Hướng đối tượng và hướng thành phần), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
. 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
Các file đính kèm theo tài liệu này:
- giao_trinh_uml_ooad_phan_tich_thiet_ke_phan_mem_huong_doi_tu.pdf