8/30/2017<br />
<br />
Nội dung<br />
1. Giới thiệu Use case<br />
2. Các khái niệm mô hình hóa UC<br />
3. Luồng sự kiện trong UC<br />
<br />
Chương 3.<br />
Mô hình Use Case<br />
GV: Lê Thị Minh Nguyện<br />
Email: nguyenltm@huflit.edu.vn<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
1<br />
<br />
1. Giới thiệu Use case<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
2<br />
<br />
1. Giới thiệu Use case<br />
<br />
MUA<br />
SODA<br />
<br />
Đưa tiền<br />
Lựa sản phẩm<br />
Lấy sản phẩm<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
3<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
4<br />
<br />
1<br />
<br />
8/30/2017<br />
<br />
1. Giới thiệu Use case<br />
<br />
1. Giới thiệu Use case<br />
Giả sử tôi quyết định mua một chiếc máy fax mới<br />
Loại máy nào sẽ được chọn đây?<br />
Tôi tự hỏi thật chính xác mình muốn làm gì với chiếc máy fax sẽ mua?<br />
<br />
Đưa tiền<br />
<br />
Tôi muốn có những tính năng nào?<br />
Tôi muốn dùng bằng giấy thường hay giấy thermal?<br />
Tôi muốn copy bằng cái máy đó?<br />
<br />
Lựa sản phẩm<br />
<br />
Tôi muốn nối nó với máy tính của mình?<br />
Tôi muốn dùng nó vừa làm máy fax vừa làm scanner?<br />
<br />
Không có SP<br />
<br />
Tôi có cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn số tăng tốc?<br />
Liệu tôi có muốn sử dụng máy fax này để phân biệt giữa một cú điện thoại gọi tới và một<br />
<br />
bản fax gởi tới ?.<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
5<br />
<br />
1. Giới thiệu Use case<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
6<br />
<br />
2. Các khái niệm mô hình hóa UC<br />
2.1. Tác nhân (Actor)<br />
2.2. Use case-UC<br />
2.3. Ví dụ xác định Actor và Use case<br />
2.4. Quan hệ (Relationship)<br />
2.5. Biểu đồ Use Case (Use case Diagram)<br />
<br />
Giả sử tôi quyết định mua một chiếc máy fax mới<br />
<br />
Loại máy nào sẽ được chọn đây?<br />
Tôi tự hỏi thật chính xác mình muốn làm gì với chiếc máy fax sẽ mua?<br />
Tôi muốn có những tính năng nào?<br />
Tôi muốn dùng bằng giấy thường hay giấy thermal?<br />
Tôi muốn copy bằng cái máy đó?<br />
Tôi muốn nối nó với máy tính của mình?<br />
Tôi muốn dùng nó vừa làm máy fax vừa làm scanner?<br />
Tôi có cần phải gởi fax thật nhanh đến mức độ cần một chức năng chọn số tăng tốc?<br />
Liệu tôi có muốn sử dụng máy fax này để phân biệt giữa một cú điện thoại gọi tới và một<br />
bản fax gởi tới ?.<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
7<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
8<br />
<br />
2<br />
<br />
8/30/2017<br />
<br />
2.1. Actor<br />
<br />
2.1. Actor<br />
Tìm kiếm tác nhân của hệ thống<br />
<br />
• Tác nhân (actor) biểu diễn bất cứ thứ gì tương tác<br />
với hệ thống.<br />
• Là đối tượng bên ngoài tương tác với hệ thống theo 3<br />
hình thức:<br />
• Tương tác trao đổi thông tin với hệ thống hoặc sử dụng<br />
chức năng.<br />
• Cung cấp đầu vào hoặc nhận thông tin đầu ra từ hệ thống.<br />
• Không điều khiển hoạt động của hệ thống.<br />
<br />
• Đặt các câu hỏi sau để tìm ra tác nhân:<br />
Nhóm người nào yêu cầu hệ thống làm việc giúp họ?<br />
Nhóm người nào kích hoạt chức năng của hệ thống?<br />
Nhóm người nào sẽ duy trì và quản trị hệ thống hoạt động?<br />
Hệ thống có tương tác với các thiết bị ngoại vi hay phần mềm<br />
nào khác không?<br />
• Hệ thống đang xây dựng tương tác với hệ thống khác nào?<br />
•<br />
•<br />
•<br />
•<br />
<br />
Actor<br />
<br />
• Có thể là người, máy móc hoặc hệ thống khác mà<br />
chúng ta không phải xây dựng<br />
<br />
• Thông tin về tác nhân:<br />
• Tên tác nhân phải mô tả vai trò của tác nhân đó một cách rõ ràng<br />
• Tên nên là danh từ<br />
• Cần mô tả khái quát khả năng của tác nhân đó<br />
<br />
• Ví dụ như các thiết bị ngoại vi, thậm chí là database<br />
KhachHang<br />
9<br />
<br />
10<br />
<br />
2.2. Use Case (UC)<br />
<br />
2.2. Use Case (UC)<br />
<br />
• Use case (Chức năng): Mô tả chức năng mà hệ thống có<br />
• Mỗi Use-Case biểu diễn cho một chức năng của hệ thống<br />
• Use-Case là một chuỗi bao gồm nhiều hành động<br />
• Mỗi Use-Case có thể mở rộng (extext) thành nhiều Use-Case<br />
khác<br />
• Mỗi Use-Case có thể bao hàm (include) nhiều Use-Case khác<br />
• Use-Case được đặt bên trong phạm vi hệ thống<br />
• Ký hiệu: hình elip + tên Use-Case (động từ)<br />
<br />
Tìm kiếm Use Case của hệ thống<br />
• Xem các yêu cầu chức năng để tìm ra các UC<br />
• Đối với mỗi tác nhân tìm được, đặt các câu hỏi sau để tì ra các Use<br />
case hệ thống.<br />
• Các tác nhân yêu cầu hệ thống thực hiện chức năng nào<br />
• Các công việc chính(đọc, ghi, tạo lập, bãi bỏ, sửa đổi) mà tác nhân đó muốn<br />
HT thực thi?<br />
• Tác nhân đó có tạo ra hay thay đổi dữ liệu gì của HT?<br />
• Tác nhân đó có phải thông báo gì cho HT?<br />
• Tác nhân đó có cần thông tin thông báo gì từ HT?<br />
<br />
• Thông tin về use case:<br />
Use Case<br />
<br />
• Tên của UC nên chỉ rõ kết quả của quá trình tương tác với tác nhân<br />
• Tên nên là động từ<br />
• Mô tả ngắn gọn về mục đích của UC<br />
<br />
Mượn sách<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
11<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
12<br />
<br />
3<br />
<br />
8/30/2017<br />
<br />
Những điều nên tránh khi tạo Use Case<br />
<br />
Ranh giới giữa hệ hệ thống và thế giới thực<br />
<br />
• Tạo ra các UC quá nhỏ<br />
<br />
• Hành động quá đơn giản mà chỉ cần mô tả bởi vài dòng<br />
• Tạo ra quá nhiều Use case (hàng chục)<br />
<br />
• Nhóm các Use case liên quan thành một Use case tổng quát<br />
(mức 1)<br />
• Mô tả các Use Case tổng quát ở một sơ đồ khác (mức 2)<br />
• Ví dụ: “Quản lý sách” bao gồm “Nhập sách”, “Xuất sách”, “…”<br />
<br />
• Sử dụng các Use-case quá cụ thể, hoặc làm việc với dữ liệu quá cụ<br />
thể. Ví dụ:<br />
<br />
Subject/System boundary:<br />
Chỉ ra ranh giới (boundary) giữa system và thế giới thực.<br />
Actor thường nằm bên ngoài system, use cases thường<br />
nằm trong system<br />
<br />
• “Tìm sách theo tên” (nên là “Tìm sách”)<br />
• “Nhập Pin vào máy ATM” (nên là “Nhập PIN”)<br />
• “Thêm sách” (nên là “Quản lý sách” bao gồm “Thêm sách”)<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
13<br />
<br />
Ví dụ: Xác định tác nhân và Use Case<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
14<br />
<br />
Ví dụ: Xác định tác nhân và Use Case<br />
<br />
• Xét hệ thống website có các chức năng sau:<br />
• Khách hàng đăng ký tài khoản và mua sản phẩm<br />
• Chủ cửa hàng duyệt các đơn hàng và đăng ký sản phẩm<br />
• Hệ thống website có chức năng xuất báo cáo ra tập tin excel sử dụng phần<br />
mềm MS Excel<br />
• Hệ thống hỗ trợ khách hàng trực tuyến bằng cách trao đổi trực tiếp bằng âm<br />
thanh của micro<br />
• Hệ thống có khả năng giao tiếp với thiết bị đọc mã vạch để phục vụ cho việc<br />
nhập thông tin sản phẩm<br />
• Hệ thống hỗ trợ thanh toán trực tuyến thông qua việc kết nối với Hệ thống<br />
thanh toán Paypal<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
15<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
16<br />
<br />
4<br />
<br />
8/30/2017<br />
<br />
Ví dụ: Xác định tác nhân và Use Case<br />
<br />
Xác định Use Case<br />
<br />
Phân loại Actor<br />
<br />
• Xét hệ thống website có các chức năng sau:<br />
• Khách hàng đăng ký tài khoản và mua sản phẩm<br />
• Chủ cửa hàng duyệt các đơn hàng và đăng ký sản phẩm<br />
• Hệ thống website có chức năng xuất báo cáo ra tập tin excel sử dụng phần<br />
mềm MS Excel<br />
• Hệ thống hỗ trợ khách hàng trực tuyến bằng cách trao đổi trực tiếp bằng âm<br />
thanh của micro<br />
• Hệ thống có khả năng giao tiếp với thiết bị đọc mã vạch để phục vụ cho việc<br />
nhập thông tin sản phẩm<br />
• Hệ thống hỗ trợ thanh toán trực tuyến thông qua việc kết nối với Hệ thống<br />
thanh toán Paypal<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
17<br />
<br />
Xác định Use Case<br />
<br />
2.3. Quan hệ (Relationship)<br />
•<br />
•<br />
•<br />
•<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
18<br />
<br />
19<br />
<br />
Association<br />
Include<br />
Extend<br />
Generalization/Specializtion<br />
<br />
Phân tích thiết kế hướng đối tượng<br />
<br />
20<br />
<br />
5<br />
<br />