UML Chuong 7 Mohinhdong

17
1 UML/NN 1 Chương 7 Mô hình động UML/NN 2 Ni dung Biu đồ trng thái (state diagram) Biu đồ tun t(sequency diagram) Biu đồ cng tác (collaboration diagram) Biu đồ hot động (activity diagram) Biu đồ tun tvà biu đồ cng tác còn được gi là biu đồ tương tác (interaction) UML/NN 3 9 Biu đồ 1. Biu đồ Use case (Use Case Diagram) 2. Biu đồ lp (Class Diagram) 3. Biu đồ đối tượng (Object Diagram) 4. Biu đồ trng thái (State Diagram) 5. Biu đồ trình t(Sequence Diagram) 6. Biu đồ cng tác (Collaboration Diagram) 7. Biu đồ hot động (Activity Diagram) 8. Biu đồ thành phn (Component Diagram) 9. Biu đồ trin khai (Deployment Diagram) UML/NN 4 Mô hình động (dynamic model) Hthng sđáp li nhng skin tbên ngoài ra sao Cn phi xác định chui các thtc là hquca mt skin tbên ngoài Trng tâm ca mô hình này là chra ng xtheo thi gian ca các đối tượng trong hthng. Chra hot động ca mt hthng theo mt hướng nhìn

Transcript of UML Chuong 7 Mohinhdong

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