uml.so do tuong tac va tuan tu
DESCRIPTION
kakaTRANSCRIPT
![Page 1: UML.so Do Tuong Tac Va Tuan Tu](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/5.jpg)
<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](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.pub/reader036/viewer/2022082420/5490c943b4795969178b4f17/html5/thumbnails/7.jpg)
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