Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Trang 1Gv: Vũ Thị Dương Email: duongvt01@gmail.com
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
Trang 2Nội dung chi tiết
4. Mô hình hóa lĩnh vực ứng dụng (biểu đồ lớp lĩnh vực)
5. Mô hình hóa hành vi( biểu đồ tương tác, trạng thái)
6. Biểu đồ kiến trúc vật lý và phát sinh mã trình
Trang 3Mô hình hóa hành vi.
Mô hình hóa sự tương tác
Bài 5
Trang 4Phân tích thiết kế hướng đối tượng Bài 5 - 4/38
cận đó với hành vi của hệ thống
Trang 5Phâ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
của hệ thống
Tập trung vào mô tả điều khiển
Tập trung vào mô tả dữ liệu
tin Gọi tên chung cho hai loại biểu đồ này là biểu đồ tương tác
(Interaction diagram)
Trang 6Phân tích thiết kế hướng đối tượng Bài 5 - 6/38
Nội dung chính
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ự
Trang 7Phân tích thiết kế hướng đối tượng Bài 5 - 7/38
Xây dựng biểu đồ tương tác
lại
Trang 8Phân tích thiết kế hướng đối tượng Bài - 8/34
Tìm kiếm đối tượng
Tìm đối tượng trong tài liệu kịch bản
Mỗi biểu đồ được xây dựng cho một kịch bản thông qua luồng sự kiện
phân tích
đối tượng nào trong thế giới thực
Trang 9Phân tích thiết kế hướng đối tượng Bài - 9/34
Tìm kiếm đối tượng
Lưu trữ thông tin, có thể ánh xạ sang bảng, trường của CSDL
Nhiều danh từ trong luồng sự kiện thuộc loại này
Thí dụ: Chuyến bay VN358, Hành khách John, Vé số #1347A
Là đối tượng tại biên hệ thống và thế giới bên ngoài
Là các Forms, cửa sổ của ứng dụng và giao diện với các ứng dụng khác
Là các đối tượng bổ sung, không thực hiện chức năng nghiệp vụ nào
Nó điều phối các đối tượng khác và điều khiển toàn bộ luồng logíc
Trang 10Phân tích thiết kế hướng đối tượng Bài - 10/34
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 đó
Trang 11Phân tích thiết kế hướng đối tượng Bài - 11/34
Biểu đồ trình tự theo thứ tự thời gian
Biểu đồ cộng tác tập trung vào tổ chức cấu trúc của các đối tượng
nào
tượng khác?
Trang 12Phân tích thiết kế hướng đối tượng Bài - 12/34
Xây dựng biểu đồ tương tác
Biểu đồ tương tác sử dụng tên đối tượng, tên lớp hay cả hai
Thông qua thông điệp, một đối tượng hay lớp có thể yêu cầu lớp hay đối tượng khác thực hiện vài chức năng cụ thể
Thí dụ: Form yêu cầu đối tượng Report tự in
Là hiện thực của quan hệ kết hợp giữa các đối tượng
Trang 13Phân tích thiết kế hướng đối tượng Bài - 13/34
Xây dựng biểu đồ tương tác
Khi tạo lập biểu đồ tương tác có nghĩa là gán trách nhiệm cho đối tượng
Thí dụ không gán trách nhiệm nghiệp vụ cho đối tượng Form, Screen
Trang 14Phân tích thiết kế hướng đối tượng Bài 5 - 14/38
Nội dung chính
Biểu đồ trình tự
Trang 15Phân tích thiết kế hướng đối tượng Bài - 15/34
Biểu đồ trình tự
Biểu đồ trình tự là biểu đồ theo thứ tự thời gian
Bắt đầu khi hình thành đối tượng, kết thúc khi phá hủy đối tượng
Thông điệp được vẽ giữa hai đối tượng – thể hiện đối tượng gọi hàm đối tượng khác
Thông điệp phản thân
Trang 16Phân tích thiết kế hướng đối tượng Bài - 16/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ía 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
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
Trang 17Phân tích thiết kế hướng đối tượng Bài - 17/34
Biểu đồ trình tự
Thí dụ: Gọi điện thoại
Hệ thống điện thoại 1: Nhấc máy
2: Tín hiệu sẵn sàng 3: Quay số
4: Chuông 5: Chuông phản hồi
6: Nhấc máy 7: Hội thoại
Trang 18Phân tích thiết kế hướng đối tượng Bài - 18/34
Mô tả đối tượng trong biểu đồ tương tác
Trang 19Phân tích thiết kế hướng đối tượng Bài - 19/34
Mô tả đối tượng trong biểu đồ tương tác
Đặt tên đối tượng
Tên đối tượng là cụ thể, tên lớp là tên khái quát
Ánh xạ đối tượng sang lớp
Mỗi đối tượng trong biểu đồ tương tác được ánh xạ sang lớp
Thí dụ, Máy bay số VN358 ánh xạ sang lớp Máy bay
Có thể ánh xạ vào lớp mới hay lớp có sẵn trong biểu đồ
Lựa chọn duy trì cho đối tượng
Persistent : có thể lưu trữ vào CSDL hay theo khuôn dạng khác
Static : tồn tại trong bộ nhớ cho đến khi chương trình kết thúc
Transient : tồn tại trong bộ nhớ với khoảng thời gian ngắn
Đa hiện thực đối tượng (Multiple Instance)
UML có ký pháp dành cho đa hiện thực lớp
Thể hiện danh sách (nhân viên) trong biểu đồ
Ký pháp đồ họa đa hiện thực đối tượng trong
biểu đồ cộng tác
Employees : Person
Trang 20Phân tích thiết kế hướng đối tượng Bài - 20/34
Xây dựng biểu đồ trình tự
Sau khi vẽ đối tượng trong
biểu đồ, cần
vẽ liên kết các đối tượng
bổ sung thông điệp cho
chúng
Đặc tả thông điệp
Đặt tên thông điệp
Ánh xạ thông điệp vào thao
Trang 21Phân tích thiết kế hướng đối tượng Bài - 21/34
Xây dựng biểu đồ trình tự
Tên chỉ ra mục tiêu của thông điệp
Trước khi phát sinh mã trình phải ánh xạ mọi thông điệp thành thao tác
Đánh dấu thông điệp sẽ được gửi đều đặn, thí dụ mỗi 30s
Hai loại
Periodic : cho biết thông điệp được gửi đều đặn theo chu kỳ
Aperiodic : cho biết thông điệp không được gửi đều đặn mà được gửi một lần hay theo thời điểm không đều
Trang 22Phân tích thiết kế hướng đối tượng Bài - 22/34
Xây dựng biểu đồ trình tự
Đặc tả thông điệp
Đặt tên thông điệp
Ánh xạ thông điệp vào thao tác
Đặt tần số cho thông điệp
Đặt đặc tính tương tranh cho thông điệp
Đơn ( Simple ): Giá trị mặc định của thông điệp, cho biết thông điệp chạy trong đơn tiến trình
Đồng bộ ( Synchronous ): Client gửi thông điệp, chờ đến khi Supplier xử lý xong thông điệp
Cản trở ( Balking / Rendez-vous ): Client gửi thông điệp, nếu Supplier không sẵn sàng xử lý ngay thông điệp hủy bỏ
Hết hạn ( Timeout ): Client gửi thông điệp chờ đến Supplier xử lý trong khoảng thời gian nhất định
Dị bộ ( Asynchronous ): Client gửi thông điệp không chờ để Supplier xử lý xong mà tiếp tục làm công việc khác
Lời gọi thủ tục ( Procedure Call ): Client gửi thông điệp đến Supplier, chờ đến khi mọi trình tự lặp của các thông điệp được xử lý xong ( mũi tên đặc )
Trở về ( Return ): Mô tả trở về từ lời gọi thủ tục ( mũi tên nét đứt )
Trang 23Phân tích thiết kế hướng đối tượng Bài - 23/34
1: Procedure Call 2: Return Message
1: Procedure Call
Các loại đồng bộ thông điệp
trong biểu đồ trình tự
Trang 24Phân tích thiết kế hướng đối tượng Bài - 24/34
Lifeline trong biểu đồ trình tự
4: Destroy
5: Perform some more processing
Trang 25Phân tích thiết kế hướng đối tượng Bài - 25/34
Scripts trong biểu đồ trình tự
1996 Buschman bổ sung scripts cho biểu đồ trình tự của UML
Diễn tả chú thích làm rõ các thông điệp
Diễn tả điều kiện logíc trong biểu đồ
Biểu diễn tổng quát của scripts
Object A Object B
1: *[X] Message
* - Ký hiệu lặp [] – Ký hiệu điều kiện lặp
Trang 26Phân tích thiết kế hướng đối tượng Bài - 26/34
Ví dụ: chọn môn giảng/thêm lớp
: Thay giao : W_Thay : W_LopGiang : QLLopThay toan : MonHoc : LopGiang
dangNhap(mk) KiemTraMK
yc/ChonHK chonHK ycChonViec chonThem
hienThi() chonMon(toan)
layLopGiang()
layLopGiang() layLopGiang()
ketQua ketQua
ketQua hienThi()
chonLopGiang()
nhanLopGiang()
themThay() themThay()
Trang 27Phân tích thiết kế hướng đối tượng Bài 5 - 27/38
Nội dung chính
Biểu đồ trình tự
Biểu đồ cộng tác
Trang 28Phân tích thiết kế hướng đối tượng Bài 28/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
Tương đối khó quan sát trình tự các thông điệp trong biểu
đồ cộng tác
Trang 29Phân tích thiết kế hướng đối tượng Bài - 29/34
Thí dụ biểu đồ cộng tác
Thí dụ: Luồng sự kiện Khách hàng đặt chỗ cho chuyến bay
: Customer
Credit Form
Credit Processor : Credit System
Confirmation Form
Invalid Credit Form
4: ReserveSite 5: GenerateConfirmationCode
1: SubmitCreditInfo 2: CheckCredit 3: CheckCredit
6: DisplayConfirmation
9: Display 7: DisplayConfirmation
8: Confirm
Trang 30Phân tích thiết kế hướng đối tượng Bài - 30/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
1: Perform function
Data flow
Trang 31Phân tích thiết kế hướng đối tượng Bài - 31/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
1: Perform function
Data flow
Trang 32Phân tích thiết kế hướng đối tượng Bài - 32/34
Biểu đồ cộng tác
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
Tiêu đề của thông điệp có cú pháp
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.
Trả loà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.
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 này thường lấy trùng với thao tác cần được huy động ở bên nhận
Trang 33Phân tích thiết kế hướng đối tượng Bài - 33/34
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
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ự
Trang 34Phân tích thiết kế hướng đối tượng Bài - 34/34
3: yc/ChonHK
8: chonMon(toan) 16: chonLopGiang()
9: layLopGiang() 17: nhanLopGiang() 14: ketQua
10: layLopGiang() 18: them Thay() 13: ketQua
11: layLopGiang() 19: them Thay() 12: ketQua
Trang 35Phân tích thiết kế hướng đối tượng Bài - 35/34
Tóm tắt
Biểu đồ trình tự
Biểu đồ cộng tác
UC
Trang 36Phân tích thiết kế hướng đối tượng Bài - 36/34
Bài tập
1. Biểu đồ tương tác dùng để làm gì
2. Phân biệt hai kiểu biểu đồ tương tác: biểu đồ tuần
tự và biểu đồ cộng tác
3. Một liên kết trong biểu đồ cộng tác biểu diễn cái gì
trên nguồn nào sau đây:
A Biểu đồ trạng thái
B Các biểu đồ use case
C Biểu đồ lớp
D Biểu đồ hoạt động
Trang 37Phân tích thiết kế hướng đối tượng Bài - 37/34
Biểu đồ tuần tự (sequence diagram) nào sau đây là không phù hợp nếu nó nằm trong cùng mô hình với biểu đồ họat động đã cho Giải
thích
Trang 38Phân tích thiết kế hướng đối tượng Bài - 38/34
Biểu đồ tuần tự (sequence diagram)
Giải quyết PIN không hợp lệ”
Trang 39Phân tích thiết kế hướng đối tượng Bài - 39/34
Biểu đồ tuần tự (sequence diagram)
Rút tiền