uml.so do tuong tac va tuan tu

10
Sơ đồ tương tác (interaction diagram) 1/ GIỚI THIỆU : Sơ đồ hoạt vụ chỉ ra các tác nhân tương tác với các chức năng lớn của một hệ thống. Đó là một cách nhìn thiên về chức năng và từ bên ngoài hệ thống. Sơ đồ lớp mô tả nhân của hệ thống với các lớp và cách thức chúng kết hợp lại với nhau. Đó là một cách nhìn tĩnh và thiên về cấu trúc. Các sơ đồ tương tác, về phần mình, cho phép đặt cầu nối giữa hai cách tiếp cận trên. Chúng cho thấy làm thế nào các thể hiện ở trong lòng hệ thống có thể tương tác với nhau để thực hiện một chức năng nào đó. Các tương tác khá nhiều và rất đa dạng, cần có một ngôn ngữ phong phú để biểu diễn chúng. UML cung cấp nhiều sơ đồ cho mục đích này : sơ đồ tuần tự (sequence diagram), sơ đồ cộng tác (collaboration diagram, hoặc còn gọi là sơ đồ liên lạc, communication diagram), sơ đồ về thời gian (timing diagram). Các sơ đồ này mang lại phong cách động cho việc mô hình hóa hệ thống. 2/ LỢI ÍCH CỦA TƯƠNG TÁC (INTERACTION): 2.1 Định nghĩa: 2.1.1 Tương tác (interaction): Một tương tác định nghĩa hành vi của một hệ có cấu trúc (một hệ thống con, một trường hợp sử dụng, một lớp, một thành tố, …) bằng cách đặc biệt chú trọng đến việc trao đổi các thông tin giữa các thể hiện (instances) của nó. 2.1.2 Sinh tuyến (đường đời: lifeline) Một sinh tuyến biểu diễn một thành phần duy nhất (unique: không được trùng lắp) tham gia vào một tương tác. 2.1.3 Sơ đồ tương tác: Các sơ đồ tuần tự và sơ đồ liên lạc biểu diễn các tương tác giữa các sinh tuyến. Một sơ đồ tuần tự chỉ ra các tương tác dưới góc độ thời gian, đặc biệt là các chuỗi thông báo (messages) trao đổi nhau giữa các sinh 1

Upload: vu-nguyen-chan

Post on 15-Dec-2014

41 views

Category:

Documents


2 download

DESCRIPTION

kaka

TRANSCRIPT

Page 1: UML.so Do Tuong Tac Va Tuan Tu

Sơ đồ tương tác(interaction diagram)

1/ GIỚI THIỆU :Sơ đồ hoạt vụ chỉ ra các tác nhân tương tác với các chức năng lớn của một hệ

thống. Đó là một cách nhìn thiên về chức năng và từ bên ngoài hệ thống.Sơ đồ lớp mô tả nhân của hệ thống với các lớp và cách thức chúng kết hợp lại

với nhau. Đó là một cách nhìn tĩnh và thiên về cấu trúc.Các sơ đồ tương tác, về phần mình, cho phép đặt cầu nối giữa hai cách tiếp

cận trên. Chúng cho thấy làm thế nào các thể hiện ở trong lòng hệ thống có thể tương tác với nhau để thực hiện một chức năng nào đó.

Các tương tác khá nhiều và rất đa dạng, cần có một ngôn ngữ phong phú để biểu diễn chúng. UML cung cấp nhiều sơ đồ cho mục đích này : sơ đồ tuần tự (sequence diagram), sơ đồ cộng tác (collaboration diagram, hoặc còn gọi là sơ đồ liên lạc, communication diagram), sơ đồ về thời gian (timing diagram). Các sơ đồ này mang lại phong cách động cho việc mô hình hóa hệ thống.

2/ LỢI ÍCH CỦA TƯƠNG TÁC (INTERACTION):2.1 Định nghĩa:

2.1.1 Tương tác (interaction):Một tương tác định nghĩa hành vi của một hệ có cấu trúc (một hệ thống con,

một trường hợp sử dụng, một lớp, một thành tố, …) bằng cách đặc biệt chú trọng đến việc trao đổi các thông tin giữa các thể hiện (instances) của nó.

2.1.2 Sinh tuyến (đường đời: lifeline)Một sinh tuyến biểu diễn một thành phần duy nhất (unique: không được trùng

lắp) tham gia vào một tương tác.2.1.3 Sơ đồ tương tác:

Các sơ đồ tuần tự và sơ đồ liên lạc biểu diễn các tương tác giữa các sinh tuyến. Một sơ đồ tuần tự chỉ ra các tương tác dưới góc độ thời gian, đặc biệt là các chuỗi thông báo (messages) trao đổi nhau giữa các sinh tuyến, trong khi một sơ đồ liên lạc biểu diễn về mặt không gian của các sinh tuyến.

Còn có dạng thứ ba của sơ đồ tương tác là sơ đồ thời gian nhằm mô hình hóa các hệ thống được khai thác dưới những điều kiện nghiêm ngặt về TG, chẳng hạn các hệ thống thời thực. Tuy nhiên, các sơ đồ tuần tự hoàn toàn có thể thực hiện chức năng này.

2.2 Ký hiệu :2.2.1 Sơ đồ tương tác:

Biểu diễn bằng một hình chữ nhật, góc trái có tên của sơ đồ, đứng sau từ khóa :

- sd : nếu là sơ đồ tuần tự- com : nếu là sơ đồ liên lạc/ sơ đồ cộng tácCó thể có :- danh sách các sinh tuyến đứng tiếp theo với từ khóa lifelines và dấu hai

chấm.- ràng buộc trên ít nhất một thuộc tính nào đó có dùng trong sơ đồ

2.2.2 Sinh tuyến:

1

Page 2: UML.so Do Tuong Tac Va Tuan Tu

Một sinh tuyến được biểu diễn bằng một hình chữ nhật hoặc một hình người "treo" một đường thẳng dọc có chấm. Trong hình chữ nhật hoặc phía dưới hình người chứa một định danh có ngữ pháp như sau :

[<tên sinh tuyến> [<chỉ số>] ] : <tên lớp>Ví dụ :

2.3 Ứng dụng của sơ đồ tương tác :Các sơ đồ tương tác được sử dụng trong suốt một dự án, từ khi thu thập các

nhu cầu cho đến khi thiết kế. Chúng dùng để :- mô tả các trường hợp sử dụng- mô hình hóa việc sử dụng một lớp hoặc một phương thức của lớp- thêm vào khía cạnh động cho việc mô hình hóa một hệ thống.Sơ đồ lớp trước tiên mô hình hóa lĩnh vực nào mà hệ thống sẽ được sử dụng

trong đó, và lĩnh vực này tương đối độc lập với các CT ứng dụng (application) sẽ đến kết hợp bám chặt trên đó. Việc cài đặt một sơ đồ lớp chỉ là một cơ sở để phát triển trình ứng dụng.

Cái đặc trưng cho một trình ứng dụng, chính là cách thức nó sử dụng sơ đồ lớp ra sao, tức cách thức các thể hiện của lớp tương tác nhau để thực hiện các chức năng của trình ứng dụng đó. Không có khía cạnh động này, một hệ thống chỉ là thuần túy tĩnh và không mang lại chức năng gì.

Ta không nên mô tả tất cả các tương tác chỉ trên một sơ đồ. Cần phải nhắm vào một hệ thống con và nghiên cứu cách thức các phần tử của nó tương tác nhau để mô tả một ứng xử (behavior) đặc thù của hệ thống.

Sơ đồ tuần tự thường dùng để mô tả các tương tác trong một hệ thống con, một trường hợp sử dụng, một lớp, một thành tố, …, tức trong một hệ có cấu trúc. Còn sơ đồ liên lạc dùng trong một ngữ cảnh đặc thù nào đó nhằm sử dụng một chức năng nào đó của hệ thống.

Ở đây, ta chủ yếu nghiên cứu về sơ đồ tuần tự.

2

sd Rút tiền lifelines :KH, :Máy rút tiền, : Ngân hàng

đưa thẻ

+ ma: String: readonly ‘0000’<=ma<=’9999’

HiệnNhậpmã

NhậpMã (ma)

: Máy rút tiền: KH

: Ngân hàng

Ktra (ma)

NH_OK= Ktra (ma)

Page 3: UML.so Do Tuong Tac Va Tuan Tu

3/ THÔNG BÁO (MESSAGE):3.1 Các dạng thông báo :

Các thông tin chủ yếu chứa trong các sơ đồ tuần tự là các thông báo. Một thông báo định nghĩa một liên lạc giữa các sinh tuyến.

Có nhiều dạng thông báo, trong đó phổ biến nhất là dạng:(1) : gửi một tín hiệu. Thông báo khởi động một phản ứng nơi đối tượng nhận.

một cách không đồng bộ và không cần đợi trả lời. (2) : kích hoạt thực hiện một thao tác trong một phương thức. Đây là dạng

thông báo được sử dụng nhiều nhất trong lập trình hướng đối tượng. Ví dụ : dt.pt(), trong đó dt là đối tượng nhận thông báo và pt là một phương thức của dt. Trong thực tế, đa số thông báo loại này là đồng bộ. Cũng có thể thực hiện thông báo dạng này một cách không đồng bộ qua các thread.

(3) : tạo hoặc hủy một thể hiện (đối tượng)3.2 Ký hiệu :

3.2.1 Thông báo đồng bộ và thông báo không đồng bộ :Trong UML, (1) và (2) được biểu diễn như nhau, và hướng về đối tượng nhận.

Tuy nhiên, UML phân biệt :- Thông báo đồng bộ (synchrone) : Ở cuối mũi tên, ở đối tượng nhận, có thể có

trả lời phản hồi bằng mũi tên đứt đọan- Thông báo không đồng bộ (asynchrone) :

Thông báo đồng bộ (synchrone) 

Thông báo không đồng bộ (asynchrone) 

Cách 1

Cách 2

3.2.2 Tạo và hủy đối tượng :- Tạo đối tượng :

- Hủy đối tượng :

3.3 Thông báo và sự kiện :UML phân biệt việc gửi với nhận một thông báo, cũng như phân biệt việc bắt

đầu với việc kết thúc thực hiện một phản ứng. Các sự kiện (event) được dùng để đánh dấu từng giai đoạn.

Ví dụ :

3

đốitgMới: Lớp

Page 4: UML.so Do Tuong Tac Va Tuan Tu

Hoặc :

Dựa vào các sự kiện gửi và nhận, UML định nghĩa 3 kiểu thông báo :- Thông báo đầy đủ  : các sự kiện gửi và nhận đều được biết- Thông báo bị lạc  : sự kiện gửi có được biết, nhưng sự kiện nhận thì không.Ký hiệu :

- Thông báo tìm được  : ngược lại, sự kiện nhận có được biết, nhưng sự kiện gửi thì không.

Ký hiệu :

3.4 Ngữ pháp của thông báo :3.4.1 Thông báo gửi :

Thông báo gửi có ngữ pháp dưới đây :

4

sd Rút tiền

đưa thẻ

: Máy rút tiền

sự kiện nhận

sự kiện bắt đầu thực hiện

sự kiện chấm dứt thực hiện

KH

sự kiện gửi

sd Rút tiền

đưa thẻ

sự kiện nhận

sự kiện bắt đầu thực hiện

sự kiện chấm dứt thực hiện

KH

sự kiện gửi

: Máy rút tiền

Kiểm tra thẻ

Page 5: UML.so Do Tuong Tac Va Tuan Tu

<tên tín hiệu hoặc tên phương thức> [ ( <danh sách tham số> ) ]Trong danh sách, các tham số cách nhau bởi dấu phẩy, và mỗi tham số có ngữ

pháp như sau :[<tên tham số> <dấu> ] <trị của tham số>]

với :<dấu> là dấu ‘=’ nếu đó là tham số chỉ đọc,

dấu ‘ :’ nếu đó là tham số có thể sửa được (đọc/ ghi)Ví dụ   : nhậpMã(« 1234 ») nhậpMã(m) ghiNhận(maSV, maSach) sửaSolg(sl : 10) 

3.4.3 Thông báo trả lời:Thông báo trả lời có ngữ pháp dưới đây :

[<thuộc tính> = ] <thông báo gửi> [ : <trị trả về>] Ví dụ   : sốlgTồn= ktraHgTồn(« A001 ») maOK=ktraMa(ma) :true 

3.5 Ràng buộc trên các sinh tuyến:Các sinh tuyến của một tương tác có thể mang đủ loại ràng buộc. Ký hiệu: - Một ràng buộc được biểu diễn trên một sinh tuyến bằng một văn bản giữa

dấu móc ({ }).- Một ràng buộc cũng có thể được chứa trong một ghi chú gắn với thể hiện

của sự kiện liên quan.

(Phép assert khẳng định sự cần thiết của việc gửi thông báo tiếp theo. Như vậy, để rút được tiền ở một máy rút tiền, bắt buộc phải kiểm tra số tiền

mặt hiện có trong máy ; sau khi kiểm tra, thuộc tính tiềnMặt của Máy phải lớn hơn sotien.)

Ghi chú   : Một ràng buộc được đánh giá khi khai thác tương tác. Nếu ràng buộc không

được thỏa mãn, các thể hiện của sự kiện đi theo sau ràng buộc nay sẽ được xem là

5

KH

ktraTìền(sotien) assert

{ Máy.tiềnMặt>sotien }

rút (sotien)

sd Rút tiền

ycầu_rút (sotien)

: Máy

Page 6: UML.so Do Tuong Tac Va Tuan Tu

không hợp lệ, ngược lại với khi ràng buộc được thỏa mãn. Như vậy, một sơ đồ tương tác có thể mô tả các thông báo không hợp lệ, nghĩa là không bao giờ được gửi đi.

3.6 Các kiểu phân đoạn của tương tác:3.6.1 Rẽ nhánh :

Ví dụ : thuộc tính nn chỉ có 2 trị là « Anh » và « Việt ».

3.6.2 Vòng lặp :

3.6.3 Các toán tử assert, ignore và consider  :Toán tử assert có tác dụng và ngữ pháp như đã trình bày ở phần IV.3.5. Các phép ignore và consider cho phép tập trung chú ý để mô hình hóa một số

thông báo có thể được gửi trong một tương tác. ignore định nghĩa các thông báo có thể bỏ qua, còn consider định nghĩa các thông báo cần phải chú ý đến.

6

rút (sotien)

sd Rút tiền

chọnNgônNgữ(nn)

hiệnMànHìnhViệt

alt

hiệnMànHìnhAnh

[ else ]

[ nn=’Việt’ ]

: MáyKH

sd Xem tài khoản

ycXemTK( )

loop[1,n] trigia()

tg=trigia()tg=trigia()

NV NHtk[i]: TK

KH

Page 7: UML.so Do Tuong Tac Va Tuan Tu

Ngữ pháp :Các toán tử assert, ignore và consider  được đặt sau tên của sơ đồ tuần tự, với

ngữ pháp như sau :ignore { danh sách thông báo}consider { danh sách thông báo}

3.7 Phân rã một sinh tuyến:Đôi khi, một tương tác quá phức tạp để có thể đưựoc mô tả trong một sơ đồ

thôi, nên ta có thể cắt một sinh tuyến ra trên nhiều sơ đồ.Một phần của sinh tuyến được phân rã ra sẽ được thay thế bằng một hình chữ

nhật với từ khóa ref, và được trình bày ở sơ đồ khác.

7

ktraThẻ(ma)ref

sd Rút tiền lifelines :KH, :Máy rút tiền, : Ngân hàng

đưaThẻ(ma)

+ ma: String: readonly ‘0000’<=ma<=’9999’

cấpTiền(ma)ref [ma ok]

: Máy rút tiền

: KH

: Ngân hàng