Các khái niệm hướng đối tượng
2. Tổng quan về ngôn ngữ mô hình hóa UML
3. Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
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
7. Mô hình hóa dữ liệu
              
            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
Nội dung chi tiết
1. Các khái niệm hướng đối tượng
2. Tổng quan về ngôn ngữ mô hình hóa UML
3. Mô hình hóa yêu cầu (biểu đồ ca sử dụng)
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
7. Mô hình hóa dữ liệu
2010 Phân tích thiết kế hướng đối tượng Bài 5 – 2/38
Mô hình hóa hành vi.
Mô hình hóa sự tương tác
Bài 5
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
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: Nhằm tạo ra các kịch bản của mỗi ca sử dụng 
của hệ thố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
 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
Phâ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
 Để 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 đồ
Phân tích thiết kế hướng đối tượng Bài - 8/34
Tìm kiếm đối tượng
 Khảo sát các danh từ trong luồng sự kiện
 Tìm đối tượng trong tài liệu kịch bả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
 Mỗi biểu đồ được xây dựng cho một kịch bản thông qua luồng sự kiện
 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 - 9/34
Tìm kiếm đối tượng
 Có thể hình thành các biểu đồ tương tác
 Ở mức cao: để chỉ ra hệ thống giao tiếp như thế nào
 Ở mức rất thấp: để chỉ ra lớp nào cần tham gia vào kịch bản
 Nên xem xét các nhóm đối tượng sau khi tìm kiếm chúng
 Đối tượng thực thể (Entity)
 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...
 Đối tượng biên (Boundary)
 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
 Đối tượng điều khiển (Control)
 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
Phân tích thiết kế hướng đối tượng Bài - 10/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 - 11/34
Sử dụng biểu đồ tương tác
 Từ biểu đồ tương tác người thiết kế và người phát triển 
xác định các
 lớp sẽ xây dựng
 quan hệ giữa các lớp
 thao tác và các trách nhiệm của lớp
 Biểu đồ trình tự theo thứ tự thời gian
 Giúp người sử dụng quan sát luồng logíc thông qua kịch bản
 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
 Giúp dễ dàng quan sát đối tượng nào giao tiếp với các đối tượng 
nào
 Khi thay đổi đối tượng, dẽ dàng nhận thấy tác động trên các đối 
tượng khác?
Phâ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 bao gồm các thành phần sau
 Đối tượng (Objects)
 Biểu đồ tương tác sử dụng tên đối tượng, tên lớp hay cả hai
 Thông điệp (Messages)
 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
 Liên kết (Links)
 Là hiện thực của quan hệ kết hợp giữa các đối tượng
 Chú thích (Notes) và ràng buộc
Phâ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
 Gán trách nhiệm cho đối tượng nhận thông điệp
 Phải gán trách nhiệm cho đối tượng một cách phù hợp
 Thí dụ không gán trách nhiệm nghiệp vụ cho đối tượng Form, Screen
 Dựa trên các loại lớp để cân nhắc hình thành trách nhiệm 
cho chúng
 Lớp Entity: lưu trữ thông tin và thực hiện các chức năng nghiệp vụ
 Lớp Boundary
 form và windows: hiển thị và nhận thông tin. Có thể xử lý vài nghiệp 
vụ rất nhỏ
 interfaces: trao đổi thông tin với hệ thống khác. Xử lý vài nghiệp vụ 
rất nhỏ
 Lớp Control: theo dõi trình tự thực hiện
Phân tích thiết kế hướng đối tượng Bài 5 - 14/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 - 15/34
Biểu đồ trình tự
 Biểu đồ trình tự là biểu đồ theo thứ tự thời gian
 Đọc biểu đồ từ đỉnh xuống đáy
 Đọc biểu đồ bằng quan sát các đối tượng và thông điệp
 Mỗi đối tượng có vòng đời (Lifeline)
 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
Phâ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
Phâ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
Người gọi
Người nghe
Phâ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
 Đặc tả đối tượng
 Đặt tên
 Ánh xạ sang lớp
 Duy trì
 Đa hiện thực
Phâ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
Phâ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 
tác
 Đặt đặc tính đồng bộ cho 
thông điệp
 Đặt tần số cho thông điệp
Phân tích thiết kế hướng đối tượng Bài - 21/34
Xây dựng biểu đồ trình tự
 Đặc tả thông điệp
 Đặt tên thông điệp
 Tên chỉ ra mục tiêu của thông điệp
 Ánh xạ thông điệp vào thao tác
 Trước khi phát sinh mã trình phải ánh xạ mọi thông điệp thành thao 
tác
 Đặt tần số cho thông điệp
 Đá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
 Đặc tả đặc tính tương tranh cho thông điệp
Phâ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)
Phân tích thiết kế hướng đối tượng Bài - 23/34
Xây dựng biểu đồ trình tự
Client Supplier
1: Simple Message
Client Supplier
1: Sychronous Message
Client Supplier
1: Balking Message
Client Supplier
1: Timeout Message
Client Supplier
1: Asynchronous Message
Client Supplier
1: Procedure Call
2: Return Message
Client Supplier
1: Procedure Call
Các loại đồng bộ thông điệp
trong biểu đồ trình tự
Phân tích thiết kế hướng đối tượng Bài - 24/34
Lifeline trong biểu đồ trình tự
 Từ phiên bản Rose 2001A trở đi có khả năng
 Biểu diễn đối tượng vào thời điểm nó được tạo lập ra 
 Đánh dấu kết thúc lifeline nơi nó bị phá hủy
Object1 Object2
Object3
Object4
1: Perform function
2: Instantiate
3: Perform some processing
4: Destroy
5: Perform some more processing
Phâ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
Phâ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 : LopGiangtoan : MonHoc
dangNhap(mk) KiemTraMK
yc/ChonHK
chonHK
ycChonViec
chonThem
hienThi()
chonMon(toan)
layLopGiang()
layLopGiang() layLopGiang()
ketQua
ketQua
ketQua
hienThi()
chonLopGiang()
nhanLopGiang()
themThay() themThay()
Phân tích thiết kế hướng đối tượng Bài 5 - 27/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 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
 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)
Phâ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
Phâ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
Object1 Object2
1: Perform function
Data flow
Phâ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
Object1 Object2
1: Perform function
Data flow
Phâ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
 Trả lời:=tên thông điệp (ds tham số)
 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
Phân tích thiết kế hướng đối tượng Bài - 33/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ã đị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
 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ự
Phân tích thiết kế hướng đối tượng Bài - 34/34
 : W_Thay
 : Thay giao
 : W_LopGiang
 : LopGiang
toan : MonHoc
2: KiemTraMK
15: hienThi()
 : QLLopThay
7: hienThi()
1: dangNhap(mk)
4: chonHK
5: ycChonViec
6: chonThem
3: yc/ChonHK
8: chonMon(toan)
16: chonLopGiang()
9: layLopGiang()
17: nhanLopGiang()14: ketQua
10: layLopGiang()
18: themThay()
13: ketQua
11: layLopGiang()
19: themThay()
12: ketQua
Phân tích thiết kế hướng đối tượng Bài - 35/34
Tóm tắt
 Bài này đã xem xét các vấn đề sau
 Các loại biểu đồ tương tác
 Biểu đồ trình tự
 Biểu đồ cộng tác
 Tìm kiếm đối tượng, thông điệp của luồng sự kiện trong 
UC
 Đặc tả các phần tử mô hình xây dựng biểu đồ tương tác
 Kỹ thuật xây dựng biểu đồ trình tự
 Kỹ thuật xây dựng biểu đồ cộng tác
Phâ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ì
4. Các biểu đồ tương tác được xây dựng chủ yếu dựa 
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 
Phâ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
Phâ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ệ”. 
Phâ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