26/10/2012
1
Gv: Vũ Thị Dương
Email:
KHOA CÔNG NGHỆ THÔNG TIN
Trường Đại học công nghiệp Hà Nội
PHÂN TÍCH THIẾT KẾ
HƯỚNG ĐỐI TƯỢNG
Mô hình hóa hành vi.
Mô hình hóa sự tương tác
Bài 5
26/10/2012
2
Phân tích thiết kế hướng đối tượng Bài 5 - 3/38
Mục tiêu
Sau khi học xong bài học, sinh viên nắm được
1. Tại sao cần phải mô hình hóa hành vi
2. Có mấy cách mô hình hóa hành vi
3. Biểu đồ tương tác có mấy loại. Ưu nhược điểm từng loại
4. Cách xây dựng biểu đồ tương tác
Phân tích thiết kế hướng đối tượng Bài 5 - 4/38
Mô hình hóa hành vi
Hành vi (behavior) là cách hành động, cách cư xử của
một hệ thống
Mô hình hóa hành vi là sự diễn tả khía cạnh động của hệ
thống.
Có 3 cách tiếp cận hành vi hệ thống
Hành vi thể hiện trong sự tương tác giữa các đối tượng, tạo nên
kịch bản
Hành vi biểu lộ cách ứng xử của mỗi đối tượng trước các sự kiện
xảy ra với nó
Hành vi bộc lộ ở công việc và luồng công việc
UML có những biểu đồ khác nhau đáp ứng 3 cách tiếp
cận đó với hành vi của hệ thống
26/10/2012
3
Phân tích thiết kế hướng đối tượng Bài 5 - 5/38
Mô hình hóa tương tác đối tượng
Mục đích:
Diễn tả sự tương tác giữa các đối tượng nhằm tạo ra các kịch
bản của mỗi ca sử dụng của hệ thống
Thực hiện thực sự các kịch bản của mỗi ca sử dụng
Hai loại biểu đồ được sử dụng để mô hình hóa đối tượng
Biểu đồ trình tự (Sequence diagram)
Tập trung vào mô tả điều khiển
Biểu đồ cộng tác (Colaboration diagram)
Tập trung vào mô tả dữ liệu
Biểu đồ trình tự và biểu đồ cộng tác đều chỉ ra cùng loại thông
tin. Gọi tên chung cho hai loại biểu đồ này là biểu đồ tương tác
(Interaction diagram)
Biểu đồ tương tác giúp xác định hệ thống làm việc như thế nào?
Phân tích thiết kế hướng đối tượng Bài 5 - 6/38
Nội dung chính
Khái niệm đối tượng
Khái niệm thông điệp
Cách xây dựng biểu đồ tương tác
Tìm kiếm đối tượng
Tìm kiếm tác nhân
Biểu đồ trình tự
Biểu đồ cộng tác
26/10/2012
4
Phân tích thiết kế hướng đối tượng Bài 4 - 7/23
Đối tượng?
Ta nhìn thấy đối tượng xung quanh ta
Bàn, ghế, quyển sách
Đối tượng là cái gì đó gói thông tin và hành vi
Nó là khái niệm biểu diễn cái cụ thể trong thế giới thực (có
căn cước (định danh/địa chỉ) và ranh giới rõ ràng
Thí dụ Máy bay VN358 là đối tượng
Có các thông tin:
Ngày bay 10 April, giờ bay 8h30, số hiệu máy bay VN358, bay từ Hà Nội
Có các hành vi
Nó biết đón khách vào máy bay, biết đưa khách ra khỏi máy bay, xác
định khi nào máy bay đầy khách
Thông tin được lưu trữ bởi thuộc tính (Attribute)
Hành vi của đối tượng được gọi là thao tác (Operation)
Phân tích thiết kế hướng đối tượng Bài 6 - 8/23
Thuộc tính
Thuộc tính là 1 tính chất có đặt tên của 1 lớp và nó nhận 1
giá trị cho đối tượng thuộc lớp đó tại mỗi thời điểm
Tên thuộc tính là danh từ hay cụm danh từ, chữ cái đầu
viết thường
Cú pháp đầy đủ là
[Tần nhìn]/[/]tên[:kiểu][cơ số][=giá trị đầu[{xâu tính chất}]
Tầm nhìn: cho biết thuộc tính đó được thấy và dùng ở các lớp khác
Public- ký hiệu +; Private- ký hiệu – ; Protected- ký hiệu #
Cơ số: trỏ số các giá trị có thể nhận
Kiểu: kiểu giá trị các thuộc tính
Giá trị đầu: giá trị ngầm định
Xâu tính chất: trỏ các giá trị có thể gán cho các thuộc tính
26/10/2012
5
Phân tích thiết kế hướng đối tượng Bài 6 - 9/23
Thao tác
Thao tác là 1 dịch vụ mà đối tượng có thể đáp ứng
khi được yêu cầu (thông qua 1 thông điệp)
Cú pháp đầy đủ:
[tầm nhìn] tên[(danh sách tham số)][: kiểu trả lại][{xâu tính chất}]
Ý nghĩa các thành phần tham gia giống với đối tượng
Tầm nhìn: cho biết thuộc tính đó được thấy và dùng ở các
lớp khác
Public- ký hiệu +; Private- ký hiệu – ; Protected- ký hiệu #
Danh sách tham số: các dữ liệu cần đưa vào từ ngoài.
Kiểu trả lại: kiểu giá trị các thuộc tính
Xâu tính chất: trỏ các giá trị có thể gán cho các thuộc tính
Thông điệp
Thông điệp (message): là một đặc tả sự giao lưu giữa hai
đối tượng gồm quá trình truyền đạt thông tin hay yêu cầu
thực hiện một hoạt động nào đó
Hành động tạo bởi một thông điệp có thể là các loại sau:
Gọi (call): yêu cầu thực hiện một thao tác của đối tượng nhận
Trả lại (return): trả lại một giá trị cho bên gọi
Gửi (send): gửi một tín hiệu tới một đối tượng
Tạo tập (create): tạo lập một đối tượng mới
Hủy bỏ (destroy): hủy một đối tượng
Phân tích thiết kế hướng đối tượng Bài 5- 10/34
26/10/2012
6
Các loại thông điệp (tt)
Thông điệp đồng bộ (biểu diễn bằng mũi tên đầu tam giác
đặc)
Đó là một chuyển giao điều khiển lồng, tức là một lời gọi thao tác:
bên gọi chuyển tới bên bị gọi, rồi tạm ngưng để chờ bên bị gọi trả
lại điều khiển
Bên bị gọi thực hiện tao tác yêu cầu, nếu cần có thể chuyển điều
khiển cho bên khác và có thể kèm theo kết quả trả lời
Thông điệp trả về có thể biểu diễn tường minh bởi mũi tên nét đứt
hay có thể bỏ quả (ví nó là thời điểm kết thúc thao tác )
Phân tích thiết kế hướng đối tượng Bài 5- 11/34
Các loại thông điệp (tt)
Thông điệp không đồng bộ (biểu diễn bằng mũi tên
thường )(UML 1.3 trở về trước dùng mũi tên nửa)
Là chuyển giao điều khiển phẳng. Thông điệp gửi đi vào hàng đợi
bên nhận
Bên gửi không cần biết thông điệp đã nhận chưa mà tiếp tục làm
việc ngay
Bên nhận thực hiện một thao tác và cũng có thể trả về một thông
tin cho bên gửi. Nhưng nếu có sự trả lại thì phải biểu diễn tường
minh
Phân tích thiết kế hướng đối tượng Bài 5- 12/34
26/10/2012
7
Phân tích thiết kế hướng đối tượng Bài - 13/34
Các thông điệp (tt)
Các tác giả UML khuyên rằng
Nên ít dùng thông điệp không đồng bộ, đặc biệt trong biểu đồ
trình tự hệ thống
Thông điệp nối giữa tác nhân và hệ thống thường dùng là thông
điệp không đồng bộ vì
Hệ thống hiện thời là một khối nguyên
Các tương tác là những điều khiển theo bước, chưa đi vào bên
trong hệ thống để có các lời gọi theo kiểu thủ tục
Thông điệp đồng bộ nên được dùng trong các trường hợp còn
lại vì
Nó diễn tả các lời gọi thao tác thông thường
Được hỗ trợ trong phần lớn các ngôn ngữ lập trình thông thường
Các thông điệp còn lại ít được dùng hơn vì đó là các diễn tả cho
các trường hợp hiếm gặp.
Phân tích thiết kế hướng đối tượng Bài 5 - 14/38
Xây dựng biểu đồ tương tác
Để xây dựng biểu đồ tương tác ta bắt đầu từ luồng sự kiện
Xây dựng từng biểu đồ cho
luồng chính, luồng thay thế, luồng lỗi
Nếu hai luồng thay thế và luồng lỗi tương tự nhau thì gộp chúng
lại
Các bước xây dựng biểu đồ tương tác
Tìm kiếm đối tượng
Tìm kiếm tác nhân
Bổ sung thông điệp vào biểu đồ
26/10/2012
8
dvduc-2004 Phân tích thiết kế hướng đối tượng Bài 5 - 15/34
Tìm kiếm đối tượng
Khảo sát các danh từ trong đặc tả UC
Tìm đối tượng trong tài liệu kịch bản
Kịch bản (Scenario) là một hiện thực của luồng sự kiện
Mỗi luồng sự kiện có nhiều kịch bản
Mỗi UC có thể có nhiều biểu đồ tương tác
Tìm đối tượng không được mô tả trong luồng sự kiện
Các đối tượng cho phép tác nhân nhập và quan sát thông tin
Các đối tượng tham gia điều khiển trình tự luồng xuyên qua UC
Tìm đối tượng tương ứng với khái niệm trừu tượng khi
phân tích
Thí dụ Tên sách, Tên tạp chí là trừu tượng không tương ứng với
đối tượng nào trong thế giới thực
Phân tích thiết kế hướng đối tượng Bài 5 - 16/34
Biểu diễn đối tượng
Tênđốitượng Tênđốitượng : Lớp : Lớp
<<Stereotype>>>
Tênđốitượng
Ten doi tuongTen doi tuong
:Name1:Name1 :Name2:Name2
Message1
Message2
Message3
26/10/2012
9
Phân tích thiết kế hướng đối tượng Bài - 17/34
Tìm kiếm tác nhân
Sau khi xác định đối tượng, ta tìm kiếm tác nhân cho
biểu đồ tương tác
Tác nhân trong biểu đồ tương tác là sự kích hoạt từ
ngoài để khởi động luồng công việc của luồng sự kiện
Tìm kiếm tác nhân trong luống sự kiện
Ai hay cái gì khởi xướng tiến trình?
Có thể có nhiều tác nhân cho một biểu đồ tương tác
Nếu tác nhân nhận hay gửi thông điệp cho hệ thống
theo kịch bản nào đó thì chúng phải có mặt trong biểu
đồ tương tác của kịch bản đó
Phân tích thiết kế hướng đối tượng Bài 5 - 18/38
Nội dung chính
Cách xây dựng biểu đồ tương tác
Biểu đồ trình tự
Biểu đồ cộng tác
26/10/2012
10
Phân tích thiết kế hướng đối tượng Bài - 19/34
Xây dựng biểu đồ trình tự
(cho các đối tượng tham gia ca sử dụng)
Xem lại biểu đồ lớp tham gia của các ca sử dụng (ở bước trước) để
Tìm xem các cá thể nào thực sự tham gia vào kịch bản đang xét
Xem các đối tượng đóng vai trò gì trong bước đó
Dàn các đối tượng thành hàng ngang trên đỉnh biểu đồ. Bố trí đối
tượng quan trọng ở giữa, phụ trợ phải, đối tác (nếu có) đặt bên trái
Vẽ đường đời cho các đối tượng
Xuất phát từ thông điệp khởi đầu, bố trí các thông điệp tiếp lần lượt
từ trên xuống
Nếu cần làm rõ thời kỳ hoạt động của đối tượng thì đưa thêm tiêu
trình điều khiển (hình chữ nhật)
Nếu làm rõ ràng buộc thời gian thì thêm các ký hiệu và nếu cần đưa
thêm tiền điều kiện, hậu điều kiện nếu cần
Phân tích thiết kế hướng đối tượng Bài - 20/34
Mô hình tổng quát biểu đồ tt
Nguoi su dung:
Tac nhan 1
Nguoi su dung:
Tac nhan 1
Doi tuong Mau
nhap lieu
Doi tuong Mau
nhap lieu
Doi tuong dieu
khien
Doi tuong dieu
khien
Doi tuong du
lieu
Doi tuong du
lieu
1: Mo mau nhap lieu
2: Nhap thong tin
3: Luu thong tin
7: Luu tru
4: Luu tru
5: Tao lap
6: Thu thap thong tin
26/10/2012
11
Thông điệp tạo và hủy bỏ
Phân tích thiết kế hướng đối tượng Bài 5- 21/34
Doi tuong 1Doi tuong 1
Doi tuong 2Doi tuong 2
new()
Thong diep()
Dap ung
delete()
Mô tả thông điệp trong biểu đồ tt
Cú pháp thông điệp: tênthôngđiệp(ds tham số)
Tênthông điệp: biểu thức trình tự (có thể là các số hay chữ)+ tên
thông điệp.
Điều kiện chọn đặt trong [], nghĩa là thông điệp
được gửi đi khi điều kiện này thỏa mãn
Ký hiệu ở dạng lặp : *, nghĩa là thông điệp được lặp
lại nhiều lần
Phân tích thiết kế hướng đối tượng Bài 5- 22/34
26/10/2012
12
Thông điệp lặp
Phân tích thiết kế hướng đối tượng Bài 5- 23/34
Doi tuong ADoi tuong A Doi tuong BDoi tuong B
1: *[X] Message
* Ky hieu lap
[] Ky hieu dieu kien
Phân tích thiết kế hướng đối tượng Bài 4 – 24/13
Thí dụ: Chọn môn giảng
Dựa vào kịch bản đặc tả Chọn môn học để giảng
I. Mô tả tóm tắt:
1. Tên ca sử dụng: chọn môn để giảng
2. Mục đích: Giúp thầy giáo xác định môn mà mình sẽ giảng trong
học kỳ
3. Tóm lược: Thầy giáo chọn học kỳ rồi sau đó có thể thêm, xem, in
các môn và kết thúc
II. Mô tả kịch bản
1. Kịch bản chính
Ca sử dụng bắt đầu khi thầy giáo đăng nhập hệ thống hợp lệ và nhắc
thầy giáo chọn học kỳ này hay học kỳ sau, thầy chọn học kỳ , hệ
thống nhắc thầy chọn việc: Thêm, bỏ,xem,in ra
2. Kịch bản con
Thêm một lớp giảng (còn nữa)
26/10/2012
13
Phân tích thiết kế hướng đối tượng Bài 4 – 25/13
Thí dụ: Chọn môn giảng
Kịch bản con thêm một lớp giảng
Hệ thống hiển thị màn hình các môn học trong học kỳ, gồm tên,
mã số môn học.
Thầy giáo nhập tên môn học, mã số môn học.
Hệ thống hiển thị các lớp giảng với môn đã chọn.
Thầy giáo chọn 1 lớp giảng.
Hệ thống kết nỗi thầy với lớp giảng đã chọn. Ca sử dụng bắt đầu
lại
……
Dựa vào kịch bản đặc tả ta phát hiện các lớp:
Lớp Thực thể: Lớp giảng, môn học, thầy giáo
Lớp Biên: W_thầy; W_Lớp
Lớp điều khiển: QLLớpthầy
Chọn môn giảng
26/10/2012
14
Phân tích thiết kế hướng đối tượng
Bài - 27/34
: Thay giao
: W_Thay : W_LopGiang
: QLLopThay
toan : MonHoc : LopHoc
1: dangNhap(mk)
2: KiemTraMK
3: yc/ChonHK
4: chonHK
6: chonThem
7: hienThi()
8: chonMon(toan)
9: layLopGiang()
10: layLopGiang()
11: layLop( )
12: ketQua
13: ketQua
14: ketQua
15: hienThi()
16: chonLopGiang()
17: nhanLopGiang()
18: themThay()
19: themThay()
5: yc Chon viec
Phân tích thiết kế hướng đối tượng Bài 5- 28/34
26/10/2012
15
Biểu đồ trình tự “đăng nhập”
Phân tích thiết kế hướng đối tượng Bài 5- 29/34
Đăng ký môn học
Phân tích thiết kế hướng đối tượng Bài 5- 30/34
Sinh vien
(from Use Case View)
)
W_DangNhap
- tenDN
- matKhau
- hocKy
- namHoc
+ kiemTraDN()
+ themMon()
+ boMon()
+ layTKB()
(from Bien)
W_dangKyMonHoc
- mon
- lopHoc
- buoiHoc
+ themMon()
+ boMon()
+ hienThi()
+ InLichHoc()
(from Bien)
ThayGiao
# hocham/hocvi : String
# maGV : string
# tenGV : string
# gioiTinh : Int
# noiSinh : String
# ngaySinh : String
# danToc : String
# diaChi : string
# soDT[0 10] : string
# email : String
+ layThay()
+ themThay()
(from QLThay)
MonHoc
# tenMon : String
# maMon : String
# moTa : String
# soTinChi : Integer
# loaiMon : String
# hocKy : string
+ layMon()
+ layLop()
+ laySoTC()
+ luuMon()
(from LichBieu)
QLDangKyMon
+ layMon()
+ themMon()
+ boMon()
+ xemMon()
+ layLop()
+ boLop()
(from DieuKhien)
SinhVien
# tenSV : String
# maSV : String
# gioiTinh : int
# noiSinh : string
# danToc : String
# diaChi : String
# ngaySinh : Date
# soDT : string
# email : String
+ layMK()
+ themSv()
+ xoaSv()
+ capNhatTTsv()
(from QLSinhVien)
LopHoc
# maLop : String
# tenLop : String
# ngayBatDau : Date
# ngayKetThuc : date
# ngayHocTrongTuan : Byte
+ ganThay()
+ themsv()
+ layLop()
+ themLop()
+ xoaLop()
+ capNhatTTLop()
+ ganLop(monHoc, tietHoc,ngayTT)()
+ boSinhVien()
(from LichBieu)
0 4
1 n
0 4
1 n
0 n
1
0 n
1
10 30
0 8
10 30
0 8
BuoiHoc
# tietDau
# tietCuoi
# ghiChu
# stt : Int
+ luuMota()
+ layBuoiHoc()
(from ThucThe)
1
1 n
1
1 n
26/10/2012
16
Phân tích thiết kế hướng đối tượng Bài 5- 31/34
Lập bản giới thiệu môn học
Tóm tắt
Sau khi các thầy giáo đã đăng ký các môn mà mình có thể dạy
trong kỳ
CBQS đăng nhập thành công vào hệ thống
Hệ thống yêu cầu chọn việc
CBQS chọn lập danh sách môn học
CBQS chọn học kỳ, năm học
Hệ thống hiển thị danh sách các môn học trong học kỳ + thông tin
tên thầy dạy.
CBQS chọn môn học
hệ thống lấy các lớp và thông tin thầy ứng với các lớp
CBQS nhập thông tin bổ sung: buổi học để sinh viên có căn cứ lựa
chọn
Kết quả: Danh sách các môn học đươc tạo ra
Phân tích thiết kế hướng đối tượng Bài 5- 32/34
26/10/2012
17
Lập bảng danh sách môn học
Phân tích thiết kế hướng đối tượng Bài 5- 33/34
Trình tự lập ds môn học
Phân tích thiết kế hướng đối tượng Bài 5- 34/34
26/10/2012
18
Phân tích thiết kế hướng đối tượng Bài 5 - 35/38
Nội dung chính
Cách xây dựng biểu đồ tương tác
Biểu đồ trình tự
Biểu đồ cộng tác
Phân tích thiết kế hướng đối tượng
Bài 36/34
Biểu đồ cộng tác
Tương tự biểu đồ trình tự, biểu đồ cộng tác (Collaboration
diagram) chỉ ra luồng thực hiện trong kịch bản của UC
Biểu đồ cộng tác tập trung vào
quan hệ giữa các đối tượng
cấu trúc tổ chức của các đối tượng
luồng dữ liệu trong kịch bản
Tương đối khó quan sát trình tự các thông điệp trong biểu
đồ cộng tác
Do vậy, các dự án thường hay xây dựng cả hai loại biểu đồ này
Trong Rose: Có thể tự động chuyển đổi qua lại giữa biểu đồ trình
tự và biểu đồ cộng tác (nhấn phím F5)
26/10/2012
19
Phân tích thiết kế hướng đối tượng Bài - 37/34
Biểu đồ cộng tác
Cả biểu đồ trình tự và biểu đồ cộng tác đều mô tả luồng điều khiển
trong kịch bản
Khác biệt giữa biểu đồ trình tự và biểu đồ cộng tác
biểu đồ cộng tác mô tả luồng dữ liệu
biểu đồ trình tự không mô tả luồng dữ liệu
Luồng dữ liệu được sử dụng để mô tả thông tin trả lại khi một đối
tượng gửi thông điệp đến đối tượng kia
Không nên bổ sung mọi luồng dữ liệu bào biểu đồ vì nó sẽ làm rối
Sử dụng nó khi thấy cần thiết
Thông điệp được biểu diễn bằng mũi tên nhỏ vẽ dọc theo một kết nối
giữa hai đối tượng
Doi tuong
1
Doi tuong
2
1: Thong diep
Du lieu A
Du lieu B
Phân tích thiết kế hướng đối tượng Bài - 38/34
Biểu đồ cộng tác
Tiêu đề của thông điệp có cú pháp
[Bước trước] [Biểu thức trình tự] [Trả lời:=]tên thông điệp (ds
tham số)
Bước trước: danh sách số thứ tự, cách nhau bằng dấu phẩy và kết thúc
bằng gạch chéo(/). Thông điệp chỉ được chuyển giao khi thông điệp tương
tứng với các số thứ tựu cho trong ds đã chuyển giao rồi. -> yc đồng bộ
Biểu thức trình tự: là dãy số theo sau là dấu hai chấm (:) diễn tả trình tự
tiếp nỗi các thông điệp
Ví dụ: Thông điệp 2.1.3 tiếp sau thông điệp 2.1.2 và cả 2 đều được gửi đi
bởi cùng thao tác thực hiện thông điệp 2.1.
Các số lại có thể thay bằng các dãy ký tự nhằm mục đích
Diễn tả lộ trình điều khiển, như là A3, B4/C3.1.2
Diễn tả điều kiện chọn như là 4.2.[x<0]
Diễn tả thông điệp lặp như là 1.1.*; hay 2.1.*[i:=1 n}
26/10/2012
20
Phân tích thiết kế hướng đối tượng Bài - 39/34
Biểu đồ cộng tác
Trả lời là tên của kết quả trả về bên gửi. Tên này có thể là một thuộc tính
của đối tượng gửi hoặc cũng có thể lấy là một biến cục bộ trong thao tác
gửi thông điệp. Tên này cũng có thể dùng làm tham số cho thông điệp
khác
Tên Thông điệp (ds tham số): là tên của thông điệp kèm theo danh sách
tham số. Tên thông điệp là thành phần bắt buộc, thường lấy trùng với
thao tác cần được huy động ở bên nhận.
Phân tích thiết kế hướng đối tượng Bài - 40/34
Biểu đồ cộng tác
26/10/2012
21
Phân tích thiết kế hướng đối tượng Bài - 41/34
Xây dựng biểu đồ cộng tác
Xem lai các lớp tham gia ca sử dụng để xác định cá thể
của lớp nào tham gia thực sự vào kịch bản đang xét
Vẽ các đối tượng như là đỉnh của đồ thị. Bố trí đối tượng
quan trọng vào giữa, đối tượng khác ở xung quanh
Xác định các kết nỗi giữa các đối tượng cùng các thông
điệp có thể có trên đó
Vẽ liên kết trước, vẽ các kết nỗi và ghi chú khuôn dập nếu cần (global,
local )
Xuất phát với thông điệp khởi đầu tương tác, bố trí các
thông điệp tiếp theo trên các kết nối, thêm các số tự tự.
Dùng ký pháp dấu chấm để làm rõ sự lồng nhau
Phân tích thiết kế hướng đối tượng Bài - 42/34
Xây dựng biểu đồ cộng tác
Nếu thấy cần các ràng buộc về không gian và thời gian,
hãy thêm vào thông điệp các dấu hiệu về thời gian và đính
kèm các ràng buộc về không gian.
Nếu thấy cần diễn tả luồng điều khiênr này một cách hình
thức hơn hãy đưa thêm tiền điều kiện và hậu điều kiện
cho mỗi thông điệp
26/10/2012
22
Phân tích thiết kế hướng đối tượng Bài - 43/34
Chú ý
Vậy dùng biểu đồ nào để mô hình hóa sự tương tác
Trả lời: tùy ý, nghĩa là tùy lúc, tùy nơi và tùy thích; chỉ nên dùng 1
biểu đồ cho 1 tương tác
Biểu đồ này chỉ diễn tả 1 luồng điều khiển. Do đó ta lập 1
biểu đồ t.tác cho 1 ca sử dụng.
1 biểu đồ là chính,
Biểu đồ còn lại diễn tả các lối rẽ khả dĩ hay các trường hợp mắc lỗi
khác
Phân tích thiết kế hướng đối tượng Bài 5- 44/34
26/10/2012
23
Đối chiếu và chỉnh sửa các MH
Dựa vào các biểu đồ cấu trúc (lớp lĩnh vực, lớp tham gia
ca sử dụng) và các biểu đồ tương tác đã lập (BD trình tự,
cộng tác). Ta cần đối chiếu và sửa lại các biểu đồ để chỉnh
lại các chỗ không phù hợp
Thêm bớt các lớp
Một số lớp đã phát hiện khi lập các biểu đồ tương tác, cần bổ sung
vào biểu đồ cấu trúc (lớp lĩnh vực, lớp tham gia UC)
Một số lớp trong biểu đồ cấu trúc không hề có đối tượng tham gia
vào một biểu đồ tương tác nào. Cần loại bỏ chúng đi
Phân tích thiết kế hướng đối tượng Bài 5- 45/34
Đối chiếu và chỉnh sửa các MH
Thêm và chỉnh lý các thao tác trong các lớp
Khi có một thông điệp được gửi từ một đối tượng của lớp A sang
một đối tượng của lớp B thì
Trong lớp B, phải có một thao tác công cộng tuonwg ứng với
thông điệp đó. Tên thông điệp và thao tác cần phải phù hợp ngữ
nghĩa với nhau. Thông thường thì nên elaays tên trung với tên
thao tác
Trong lớp A, bên gửi phải có một thao tác có trách nhiêm gửiđi
thoông điệp trên
Phân tích thiết kế hướng đối tượng Bài 5- 46/34
26/10/2012
24
Đối chiếu và chỉnh sửa các MH
Thêm các kiểu cho các thuộc tính, các tham số trả lời
Các kiều có thể là kiểu nguyên thủy hay kiểu do người dùng đưa
vào hay cũng có thể là kiểu do người dùng định nghiwax
Chưa nên chọn tên các kiểu của một ngôn ngữ lập trình cụ thể nào
mà vẫn dùng tên chung,
Thêm và chỉnh lý mối liên quan giữa các lớp
Khi đối tượng lớp A, gửi một thông điệp cho một đối tượng của lớp
B, thì giữa hai lớp đó có một kiết nối với nghĩa là: Bên nhận thuộc
phạm vi hay hiểu biết (tầm nhìn) của bên gửi
Nếu sự hiểu biết đó là vốn có từ lầu, thì đấy là biểu hiện của liên
kết association giữa A và B
Nếu sự hiểu biết đó là mới được cung cấp (ví dụ: Thông qua việc
truyền tham số hay việc nhận kết quả trả lời), thì đấy là biểu hiện
của sự phụ thuộc của A vào B
Phân tích thiết kế hướng đối tượng Bài 5- 47/34
Đối chiếu và chỉnh sửa các MH
Ví dụ: Liên kết hay phụ thuộc
Phân tích thiết kế hướng đối tượng Bài 5- 48/34
26/10/2012
25
Phân tích thiết kế hướng đối tượng Bài - 49/34
Ví dụ
Trong hệ thống ATM xem giải quyết phin không hợp
lệ. Ở đây ta cần nghĩ về tuần tự các hoạt động mà
khách có thể thực hiện:
Đưa thẻ vào
Nhập mã pin
Rút thẻ
Vậy hoạt động hệ thống là chấp nhận quyền truy cập
hay từ chối
Tiếp theo, cac định ta đang tương tác với cài gì (ATM
hay hệ thông tin ngân hàng
Máy ATM sẽ sử dụng đối tượng nào kiểm tra mã PIN.
Phân tích thiết kế hướng đối tượng Bài 5- 50/34
: KhachHang
: W_KhachHang : W_ManHinhATM : W_RutTien
: QLRut
: TaiKhoan : GiaoDich : GDRut : MayATM
1: danNhap(sothe,mk)
2: kiemtramaPin
3: hienThi()
4: Y/c chon viec
5: chon Rut tien
6: hien thi()
7: Y/c chon viec
8: Nhap vao 1 so
9: rutTien( )
10: ktrSoDuTK()
11: ketQua
12: ktrMenhGiaVaTien()
13: ketQua
14: taoMoiGD()
15: taoMoiGD()
16: taoMoiGD()
17: ketQua
18: ketQua()
19: demTien()
20: ketQua
21: giamSoduTK()
22: thucHien()
23: ketqua
24: ketqua
25: hienThi()
26: ycNhanTien va The