26/10/2012
1
Gv: Vũ Thị Dương
Email: [email protected]
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
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
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
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ừ
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
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
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
+ 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()
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ự
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
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
Đố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()