Upload
le-anh-khoa
View
1.373
Download
6
Embed Size (px)
Citation preview
1
UML/NN 1
Chương 7
Mô hình động
UML/NN 2
Nội dung
Biểu đồ trạng thái (state diagram)Biểu đồ tuần tự (sequency diagram)Biểu đồ cộng tác (collaboration diagram)Biểu đồ hoạt động (activity diagram)
Biểu đồ tuần tự và biểu đồ cộng tác còn được gọi là biểu đồ tương tác (interaction)
UML/NN 3
9 Biểu đồ
1. Biểu đồ Use case (Use Case Diagram)2. Biểu đồ lớp (Class Diagram)3. Biểu đồ đối tượng (Object Diagram)4. Biểu đồ trạng thái (State Diagram)5. Biểu đồ trình tự (Sequence Diagram)6. Biểu đồ cộng tác (Collaboration Diagram)7. Biểu đồ hoạt động (Activity Diagram)8. Biểu đồ thành phần (Component Diagram)9. Biểu đồ triển khai (Deployment Diagram)
UML/NN 4
Mô hình động (dynamic model)
Hệ thống sẽ đáp lại những sự kiện từ bên ngoài ra saoCần phải xác định chuỗi các thủ tục là hệ quả của một sự kiện từ bên ngoàiTrọng tâm của mô hình này là chỉ ra ứng xử theo thời gian của các đối tượng trong hệ thống.Chỉ ra hoạt động của một hệ thống theo một hướng nhìn
2
UML/NN 5
Biểu đồ trạng thái: đèn giao thông
UML/NN 6
Biểu đồ trạng thái (state)
Trạng thái của đối tượng ở một thời điểm là tình trạng của đối tượng ở ngay lúc đóTrạng thái của đối tượng được xác định bởi tất cảthuộc tính của đối tượng và những liên kết mà nógiữ
UML/NN 7
top
Các thành phần
ReadyReadyReady
stop
/ctr := 0stop
StateStateState
TriggerTriggerTrigger
ActionActionAction
Initial pseudostate
Initial Initial pseudostatepseudostate
TransitionTransitionTransition
Final stateFinal Final statestate
DoneDoneDone
“top” state““toptop”” statestate
UML/NN 8
Biểu đồ trạng thái
Biểu đồ trạng thái đưa ra hình ảnh động của hệ thống
Biểu đồ trạng thái biểu diễn cho hành vi của những đối tượng riêng biệtNó chỉ ra trình tự những trạng thái mà đối tượng trải qua suốt chu kỳ sống nhằm đáp ứng những sự kiệnNó cũng mô tả những sự kiện làm thay đổi trạng thái của đối tượng
3
UML/NN 9
Biểu đồ trạng thái
Biểu đồ trạng thái đặc biệt hữu ích để mô tả:Các thực thể nghiệp vụ phức tạp, như khách hàng và tài khoảnHành vi của hệ thống conTương tác trong các lớp biên (boundary) trong quá trình xác định giao diệnViệc hiện thực các use caseCác đối tượng phức tạp, hiện thực các thực thểnghiệp vụ hoặc các thực thể thiết kế phức tạp
UML/NN 10
Biểu đồ trạng thái
Tất cả trạng tháiTất cả dịch chuyển
Quá trình thay đổi trạng thái gọi là dịch chuyển trạng thái (transition)Dịch chuyển là kết quả của một hoạt động mà gây ra một biến đổi trạng thái quan trọng
Tất cả sự kiện gây ra dịch chuyển
UML/NN 11
Trạng thái con
Trạng thái của một đối tượng có thể có các trạng thái con. Trạng thái con là một phần của trạng thái kết hợpTrạng thái con có thể thực hiện đồng thời hay tuần tự
UML/NN 12
Cách tạo biểu đồ trạng thái
1. Xác định thực thể có hành vi phức tạp2. Định nghĩa trạng thái ban đầu và trạng thái kết thúc3. Xác định những biến cố ảnh hưởng tới thực thể4. Làm việc từ trạng thái bắt đầu dò ra trạng thái trung
gian5. Xác định các hành động vào và ra của các trạng thái6. Mở rộng các trạng thái bằng các trạng thái con khi
cần thiết7. Nếu thực thể là một lớp, kiểm tra các hành động của
nó trong trạng thái đó có được sự hỗ trợ bởi các tác vụ và các kết hợp của một lớp không. Nếu không phải mở rộng lớp này
4
UML/NN 13
Biểu đồ trạng thái
UML/NN 14
Mô hình dịch chuyển trạng tháiMô hình trạng thái của lớp Message
Composed
entry/ assign IDexit/ fill dateon char/ handle character
compose command
Stored
entry/ save into folder
Read
entry/ convert to rich text
unhightlight
focushightlight
read command / recover( id )
logout
save command
re-fwd cmd / quote / append subject
Sending
do/ send( repc )
send command[ recipents != null ] / parse
sending done
UML/NN 15
ATM: kiểm tra PIN
UML/NN 16
Đăng ký khóa học: Trạng thái con
5
UML/NN 17
Nội dung
Biểu đồ trạng thái (state diagram)Biểu đồ trình tự (sequency diagram)Biểu đồ cộng tác (collaboration diagram)Biểu đồ hoạt động (activity diagram)
UML/NN 18
Biểu đồ trình tự (sequency)
Trình tự xét từ trên xuống dưới
: Customer : Interface : Vendor
Input Coin
Verify Coin
Reject Faulty Coin with Message
Send Genuine Coin
Vend Tea
The BIG Picture –Round Trip Engineering
Business Modeling
Use Case Diagram &Use Case Specification
Analysis Class Diagram
Analysis Sequence DiagramDesign Sequence Diagram
Design Class Diagram
Code Generation
Other Relevant Diagrams
UML/NN 20
Biểu đồ trình tự
Minh họa tương tác giữa các đối tượng, thông điệp gởi và nhận giữa những đối tượng theo trình tựthời gianTrên chiều ngang có những hộp biểu diễn cho đối tượng hay tên lớp, tên được gạch dướiChiều đứng chỉ thời gianTừ các hình chữ nhật biểu diễn đối tượng có các đường gạch rời (dashed line) thẳng đứng biểu thịthời gian sống của đối tượng. Trong khoảng thời gian này, đối tượng được thể hiện, sẵn sàng để gửi và nhận thông điệp
6
UML/NN 21
Đệ qui
Lặp lại cùng hoạt động cho đến khi đạt được một điều kiệnMũi tên sự kiện vào và ra cùng một đối tượng
: Customer : Interface : Vendor
Input Coin
Verify Coin
Reject Faulty Coin with Message Send Genuine Coin
Vend Tea
UML/NN 22
Message
Tương tác giữa 2 đối tượng thông qua việc truyền message giữa 2 đối tượngTruyền message có nghĩa là gọi phương thức của đối tượngKhi thực hiện một phương thức một giá trị trả về được truyền từ đối tượng được gọi tới đối tượng gọiMessage được biểu diễn bằng một mũi tên có hướng từ đối tượng gọi tới đối tượng được gọi
UML/NN 23
Các thành phần
1: PerformResponsibility
Client Object Supplier Object
Message
:Client :Supplier
Focus of Control
Reflexive Message
Object Lifeline
1.1: PerformAnotherResponsibility
Hierarchical MessageNumbering
UML/NN 24
Supermarket
7
UML/NN 25
Các bước để vẽ một biểu đồ tuần tự
Quyết định ngữ cảnh của tương tácXác định các thành phần có cấu trúc (lớp hoặc đối tượng) cần thiết để thực hiện chức năngXem xét các kịch bản (scenario) thay thếVẽ các biểu đồ thể hiện:Đặt các đối tượng từ trái qua phảiBắt đầu từ thông điệp bắt đầu, sắp xếp theo chiều từtrên xuống dưới, cho biết các thuộc thể nhằm cung cấp ngữ nghĩaThêm các ràng buộc, giải thích, các điều khiển
Nếu cần có thể vẽ một biểu đồ tổng quát
UML/NN 26
ATM (1)
UML/NN 27
ATM (2)
UML/NN 28
Đăng ký môn học (1)
: Student: RegisterForCoursesForm : RegistrationController : Course Catalog: CourseCatalogSystem
A list of the available course offerings for this semester are displayed
Student wishes to create a new schedule
1. // create schedule( )
1.2. // display course offerings( )
1.1. // get course offerings( )
1.1.1. // get course offerings(forSemester)
1.3. // display blank schedule( )A blank schedule is displayed for the students to select offerings
1.1.1.1. // get course offerings( )
8
UML/NN 29
Đăng ký môn học (2)
UML/NN 30
Nội dung
Biểu đồ trạng thái (state diagram)Biểu đồ tuần tự (sequency diagram)Biểu đồ cộng tác (collaboration diagram)Biểu đồ hoạt động (activity diagram)
UML/NN 31
Biểu đồ cộng tác (collaboration)
Tương tự như biểu đồ trình tự nhưng tập trung vào sự kiện, không quan tâm tới thời gian sốngĐối tượng được chỉ ra bằng biểu tượng lớpTrình tự trong biểu đồ cộng tác được chỉbằng số của thông điệpLà một cách tốt hơn cho việc thiết kế tác vụvà hiểu những ảnh hưởng lên đối tượng đã choChỉ ra các chi tiết về các lệnh gọi tác vụ
UML/NN 32
Biểu đồ cộng tác
1: PerformResponsibility
Client Object
Supplier Object
Message
Link
:Client
:Supplier
9
UML/NN 33
Cách tạo biểu đồ cộng tác
Dựa vào ngữ cảnh: hệ thống, hệ thống con, use case hoặc các thao tácXác định các phần tử cấu trúc (lớp, đối tượng…) cần thiếtMô hình các quan hệ có cấu trúcVẽ biểu đồ cộng tác mức thể hiệnCó thể vẽ biểu đồ cộng tác mức đặc tả đểnêu tóm tắt các kịch bản
UML/NN 34
: Student
: RegisterForCoursesForm
: RegistrationController
: CourseCatalogSystem
5: // display course offerings( )6: // display blank schedule( )
1: // create schedule( )
2: // get course offerings( )
3: // get course offerings(forSemester)
4: // get course offerings( )
: Course Catalog
Đăng ký môn học
UML/NN 35
Biểu đồ cộng tác
UML/NN 36
Mô hình trình tự và cộng tác
Tương đương về ngữ nghĩa. Có thể chuyển qua lại giữa 2 mô hình mà không mất mát thông tinMô hình động một hệ thốngMô hình một kich bản use case
10
UML/NN 37
Khác biệt giữa 2 mô hình
– Show relationships in addition to interactions
– Better for visualizing patterns of communication
– Better for visualizing all of the effects on a given object
– Easier to use for brainstorming sessions
– Show the explicit sequence of messages
– Show execution occurrence
– Better for visualizing overall flow
– Better for real-time specifications and for complex scenarios
Cộng tácTrình tự
UML/NN 38
Đăng ký môn học
UML/NN 39
Đăng ký môn học: cộng tác
UML/NN 40
Nội dung
Biểu đồ trạng thái (state diagram)Biểu đồ tuần tự (sequency diagram)Biểu đồ cộng tác (collaboration diagram)Biểu đồ hoạt động (activity diagram)
11
UML/NN 41
Biểu đồ hoạt động (activity)
UML/NN 42
Biểu đồ hoạt động (activity)
Là phương tiện mô tả dòng công việc (workflow)Thường bắt giữ các tác động (active) khi một thao tác (operation) được thực thi. Mô tả tương tác diễn ra như thế nào giữa các đối tượng có quan hệThường dùng trong mô hình nghiệp vụ vàmô hình hệ thống (các use case), giải thích rõ các hoạt động phức tạp
Ký hiệu
1. Activity states, represent the performance of a step within the workflow.
2. Transition show what activity state follows after another.
3. Decisions (branch) for which a set of guardconditions are defined. These are conditions that must be met to trigger the transition.
4. Synchronization bars, which you can use to show parallel subflows. Synchronization bars allow you to show concurrent threads -fork or join.
Ký hiệu Start State
Activity State
Decision (branch)
Synchronisationbar
Stop/End State
Concurrent thread
Alternative thread
Transition
12
UML/NN 45
Cách tạo biểu đồ hoạt động
Xác định tác nhân và use caseXác định các nhánhTạo ra dòng hoạt động có thể hiểuBổ sung các thông tin quan trọngDùng swimlaneTinh chế các hoạt động
UML/NN 46
Swimlanes (luồng)
Tương tự biểu đồhoạt động giúp cho việc hiểu được sựphân bổ hoạt động giữa các đối tượng
UML/NN 47
ATM
UML/NN 48
Biểu đồ hoạt độngCustomer
RequestProduct
Continuework
Processorder
Sales Warehouse
Pullmaterial
Shiporder
Receiveorder
Billcustomer
Paybill
Closeorder
13
UML/NN 49
Biểu đồ hoạt độngMô hình nghiệp vụ
This example is a proposal
process, taken from an
organization that sells telecom network solutions.
Mô hình hệ thống
Just as you would use an activity diagram to show the structure of a workflow, you could also use it to show the structure of a flow of events of a system use case
Mô hình hệ thống
14
UML/NN 53
Use Case ModelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
UML/NN 54
Analysis & Design ModelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Incl. subsystems and packages
UML/NN 55
Deployment and Implementation ModelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Incl. active classes and components
UML/NN 56
Test ModelUse CaseDiagrams
CollaborationDiagrams
ComponentDiagrams
DeploymentDiagrams
ObjectDiagrams
StatechartDiagrams
SequenceDiagrams
ClassDiagrams
ActivityDiagrams
Use CaseModel
DesignModel
Depl.Model
Impl.Model
AnalysisModel
TestModel
Test model refers to all other models and uses corresponding diagrams
15
UML/NN 57
Bài tập - Login
Use-case này mô tả cách một người dùng đăng nhập vào hệ thốngLuồng sự kiện chính (Basic flow)
This use case starts when the actor wishes to log into the systemThe system requests that the actor enter his/her name & pwdThe actor enters his/her name and pwdThe system validates the entered name & pwdThe system logs the actor into the system
UML/NN 58
…Bài tập - Login
Luồng sự kiện phụ (Alternative flow)If in the basic flow, the actor enters an invalid name & pwd, the system displays an error messageThe actor can choose to either return to the beginning of the basic flow or canel the login, at which point the use case ends
UML/NN 59
Sequence diagram
: Us er : Us er
MainFormMainForm Log inFormLog inForm Login Con troll orLogin Con troll or DBUs erDBUs er1. Select Login
1.1. Sh ow
2. Submit(us r ,pas )
2.1. Verify(us r,pas )
2.1.1. GetUs erLis t
2.1.2. Sel fVeri fy(us r ,pas )
2.1.2.1.
2.1.2.1.1. s how res ult
UML/NN 60
Collaboration diagram
: User
MainForm
LoginForm
LoginControllor
DBUser
1. Select Login1.1. Show
2. Submit(usr,pas)
2.1. Veri fy(usr,pas)2.1.1. GetUserList
2.1.2. SelfVerify(usr,pas)
2.1.2.1.
2.1.2.1.1. show resul t
16
UML/NN 61
Bài tập – Chọn phương thức thanh toán
Chọn phương thức thanh toán:Pick up his check directlyReceive it in the mail Have it deposited directly into a specified bank account
UML/NN 62
Bài tập - Chọn phương thức thanh toán
Luồng sự kiện chínhThis use case starts when the employee wishes to select a payment methodThe system requests the employee specify the payment method he/she would likeThe employee selects the desired payment methodIf the employee selects the “pick up” method, no additional information is requiredIf the employee selects the “mail” method, the system requests employee specify the address that the paycheck will be mailed to
UML/NN 63
…Bài tập - Chọn phương thức thanh toán
Luồng sự kiện chính (cont.)If the employee selects the “direct deposit” method, the system requests employee specify the bank name and account numberOnce the employee provides the requested information, the system updates the employee information to reflect the chosen payment method
Luồng sự kiện phụ – Employee not foundIf in the basic flow, information for the employee could not be located, the system displays an error massage and the use case ends
Draw the adjacent
diagram in Visual
Paradigm
17
UML/NN 65
A Booking System
Actors: traveler, client account db, airline reservation systemPreconditions: Traveler has logged inBasic course:
Traveler selects ‘change flight itinerary’ optionSystem retrieves traveler’s account and flight itinerary from client account databaseSystem asks traveler to select itinerary segment she wants to change; traveler selects itinerary segment.System asks traveler for new departure and destination information; traveler provides information.If flights are available then ……System displays transaction summary.
Alternative course:If no flights are available then…
UML/NN 66
Sequence Diagram
: Booking SystemTraveler Airline Reservation System
change flight itinerary
get customer account
get itinerarypresent itinerary
select segment
present detailed info
update informationavailable flight
::
Client Account DBMSClient Account DBMS
UML/NN 67
Collaboration Diagram
Traveler Client Account DBMS
Airline Reservation System
: Booking System
7: update information
2: get customer account3: get itinerary
4: present itinerary
8: available flight
1: change flight itinerary5: select segment
6: present detailed info