Tải bản đầy đủ (.pdf) (7 trang)

Bài giảng Phân tích thiết kế hướng đối tượng: Chương 3 - Lê Thị Minh Nguyện

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 7 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

Ch

ư

ơng 3.


Mơ hình Use Case



GV: Lê Thị Minh Nguyện
Email:


Phân tích thiết kế hướng đối tượng 1


Nội dung



1. Giới thiệu Use case



2. Các khái niệm mơ hình hóa UC


3. Luồng sự kiện trong UC



Phân tích thiết kế hướng đối tượng 2


1. Giới thiệu Use case



Phân tích thiết kế hướng đối tượng 3

MUA



SODA



1. Giới thiệu Use case



Phân tích thiết kế hướng đối tượng 4

Đưa tiền



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

1. Giới thiệu Use case




Phân tích thiết kế hướng đối tượng 5

Đưa tiền



Lựa sản phẩm


Khơng có SP



1. Giới thiệu Use case



Phân tích thiết kế hướng đối tượng 6


Giả sử tơi quyết định mua một chiếc máy fax mới


Loại máy nào sẽ được chọn đây?


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?
Tơi muốn có những tính năng nào?


Tơi muốn dùng bằng giấy thường hay giấy thermal?
Tơi muốn copy bằng cái máy đó?


Tơi muốn nối nó với máy tính của mình?


Tơi muốn dùng nó vừa làm máy fax vừa làm scanner?


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?
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
bản fax gởi tới ?.


1. Giới thiệu Use case




Phân tích thiết kế hướng đối tượng 7


Giả sử tôi quyết định mua một chiếc máy fax mới


Loại máy nào sẽ được chọn đây?


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?
Tơi muốn có những tính năng nào?


Tơi muốn dùng bằng giấy thường hay giấy thermal?
Tôi muốn copy bằng cái máy đó?


Tơi muốn nối nó với máy tính của mình?


Tơi muốn dùng nó vừa làm máy fax vừa làm scanner?


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?
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
bản fax gởi tới ?.


2. Các khái niệm mơ hình hóa UC



2.1. Tác nhân (Actor)


2.2. Use case-UC



2.3. Ví dụ xác định Actor và Use case


2.4. Quan hệ (Relationship)



2.5. Biểu đồ Use Case (Use case Diagram)




</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

2

.

1

. Actor



•Tác nhân (actor) biểu diễn bất cứ thứ gìtương tác
với hệ thống.


•Là đối tượngbên ngồitương tác với hệ thống theo 3
hình thức:


•Tương tác trao đổi thơng tin với hệ thống hoặc sử dụng
chức năng.


•Cung cấp đầu vào hoặc nhận thông tin đầu ra từ hệ thống.
•Khơng điều khiển hoạt động của hệ thống<i>.</i>


•Có thể làngười, máy móchoặchệ thống khácmà
chúng ta khơng phải xây dựng


• Ví dụ như các thiết bị ngoại vi, thậm chí là database


9


Actor


KhachHang


2

.

1

. Actor



•Đặt các câu hỏi sau để tìm ra tác nhân:


•Nhóm người nào u cầu hệ thống làm việc giúp họ?


•Nhóm người nào kích hoạt chức năng của hệ thống?
•Nhóm người nào sẽ duy trì và quản trị hệ thống hoạt động?
•Hệ thống có tương tác với các thiết bị ngoại vi hay phần mềm


nào khác khơng?


•Hệ thống đang xây dựng tương tác với hệ thống khác nào?
•Thơng tin về tác nhân:


•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
•Tên nên là danh từ


•Cần mơ tả khái qt khả năng của tác nhân đó
10
<b>Tìm kiếm tác nhân của hệ thống</b>


2.2. Use Case (UC)



•Use case (Chức năng): Mơ tảchức năng mà hệ thống có
•Mỗi Use-Case biểu diễn cho một chức năng của hệ thống
•Use-Case là một chuỗi bao gồm nhiều hành động


•Mỗi Use-Case có thể mở rộng (extext) thành nhiều Use-Case
khác


•Mỗi Use-Case có thể bao hàm (include) nhiều Use-Case khác
•Use-Case được đặt bên trong phạm vi hệ thống


•Ký hiệu: hình elip + tên Use-Case (động từ)



Phân tích thiết kế hướng đối tượng 11


Mượn sách
Use Case


2.2. Use Case (UC)



•Xem các yêu cầu chức năng để tìm ra các UC


•Đố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
case hệ thống.


•Các tác nhân yêu cầu hệ thống thực hiện chức năng nào


•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
HT thực thi?


•Tác nhân đó có tạo ra hay thay đổi dữ liệu gì của HT?
•Tác nhân đó có phải thơng báo gì cho HT?
•Tác nhân đó có cần thơng tin thơng báo gì từ HT?
•Thơng tin về use case:


•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
•Tên nên là động từ


•Mơ tả ngắn gọn về mục đích của UC


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

Những điều nên tránh khi tạo Use Case


•Tạo ra các UC q nhỏ



•Hành động q đơn giản mà chỉ cần mơ tả bởi vài dịng
•Tạo ra q nhiều Use case (hàng chục)


•Nhóm các Use case liên quan thành một Use case tổng qt
(mức 1)


•Mơ tả các Use Case tổng qt ở một sơ đồ khác (mức 2)
•Ví dụ: “Quản lý sách” bao gồm “Nhập sách”, “Xuất sách”, “…”
•Sử dụng các Use-case quá cụ thể, hoặc làm việc với dữ liệu quá cụ


thể. Ví dụ:


•“Tìm sách theo tên” (nên là “Tìm sách”)
•“Nhập Pin vào máy ATM” (nên là “Nhập PIN”)


•“Thêm sách” (nên là “Quản lý sách” bao gồm “Thêm sách”)


Phân tích thiết kế hướng đối tượng 13


Ranh giới giữa hệ hệ thống và thế giới thực



Phân tích thiết kế hướng đối tượng 14


Subject/System boundary:


Chỉ ra ranh giới (boundary) giữa system và thế giới thực.
Actor thường nằm bên ngoài system, use cases thường
nằm trong system


Ví dụ: Xác định tác nhân và Use Case



•Xét hệ thống website có các chức năng sau:


•Khách hàng đăng ký tài khoản và mua sản phẩm
•Chủ cửa hàng duyệt các đơn hàng và đăng ký sản phẩm


•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
mềm MS Excel


•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
thanh của micro


•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
nhập thông tin sản phẩm


•Hệ thống hỗ trợ thanh tốn trực tuyến thơng qua việc kết nối với Hệ thống
thanh tốn Paypal


Phân tích thiết kế hướng đối tượng 15


Ví dụ: Xác định tác nhân và Use Case



</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

Ví dụ: Xác định tác nhân và Use Case



Phân tích thiết kế hướng đối tượng 17


<b>Phân loại Actor</b>


Xác định Use Case



Phân tích thiết kế hướng đối tượng 18


•Xét hệ thống website có các chức năng sau:


•Khách hàng đăng ký tài khoản và mua sản phẩm
•Chủ cửa hàng duyệt các đơn hàng và đăng ký sản phẩm


•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
mềm MS Excel


•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
thanh của micro


•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
nhập thơng tin sản phẩm


•Hệ thống hỗ trợ thanh tốn trực tuyến thơng qua việc kết nối với Hệ thống
thanh tốn Paypal


Xác định Use Case



Phân tích thiết kế hướng đối tượng 19


2.3. Quan hệ (Relationship)


• Association



• Include


• Extend



• Generalization/Specializtion



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

Association



• Association



• Là mối liên hệ giữa<i>actors và</i>
<i>use cases</i>


• Thể hiện tương tác giữa
actors và use cases
• Đơi khi có mũi tên (thể hiện


hướng thực thi)


• Một use case được bắt đầu
bởi một tác nhân để gọi một
chức năng nào đó trong hệ
thống.


Phân tích thiết kế hướng đối tượng


21


Include



Cho phép một UC sử dụng chức năng của UC khác



Chức năng của UC Inclusion sẽ bắt buộc được gọi trong


UC Base



Sử dụng stereotype là <<include>>



Phân tích thiết kế hướng đối tượng 22



Include



Phân tích thiết kế hướng đối tượng 23

UC rút tiền



1.Gọi UC xác thực KH
2.Hiển thị menu


3.KH chọn chức năng rút tiền

UC xác thực KH



2. Kiểm tra thẻ
1. Đưa thẻ vào máy
3. KH nhập pin
4. Hệ thống kiểm tra pin


E1: Thẻ sai.
E2: sai pin


Khi nào thì dùng quan hệ <<include>>


Tách ra hành vi (chức năng) chung của 2 hoặc nhiều UC



•Tránh việc mơ tả hành vi đó nhiều lần trong các UC
•Đảm bảo nhưng hành vi chung đó được thống nhất

Tách ra hành vi của UC cơ sở nên được đóng gói riêng



(encapsulate)



•Tách hành vi khơng phải là chính của UC đó (hành vi ít quan trọng)


•Giảm thiểu sự phức tạp của luồng sự kiện


</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

<<extend>>



•Cho phép mở rộng chức năng của một UC
•Chèn hành vi của UC Extension vào UC Base


•Chỉ chèn khi điều kiện extend đúng (mở rộng, phát sinh) (Khi
thực hiện thực hiện UC Base thì thực hiện UC extension ở một
số tình huống nào đó, chứ khơng bắt buộc)


•Chèn vào lớp cơ sở tại điểm phát sinh (extension point)
•Sử dụng stereotype là <<extend>>


Phân tích thiết kế hướng đối tượng 25


Khi nào dùng quan hệ mở rộng <<Extends>>



•Tách ra hành vi ngoại lệ, đặc biệt
hoặc khơng bắt buộc


•Chỉ được thực thi trong điều kiện
cụ thể


•Tách ra để làm đơn giản luồng
chính


•Thêm một hành vi mở rộng đối
với UC cơ sở.



•Phát triển hành vi đó độc lập
• Extension use case <i>khơng</i> <i>bắt</i>


<i>buộc</i>phải xảy ra


Phân tích thiết kế hướng đối tượng 26


Generalization/Specializtion


•Chỉ ra một vài tác nhân hay UC có


một số cái chung, giống nhau.
•Khơng nhất thiết hình thành quan


hệ này cho các tác nhân.


•Khi mộtloại tác nhân kích hoạtmột


hay vàiUC màloại tác nhân khác
khơng kích hoạt-> nên hình thành
quan hệ khái qt hóa


•Khi cảhai loại tác nhâncùng sử dụng
các UC -> khơng cần mơ hình hóa
quan hệ khái qt hóa


Phân tích thiết kế hướng đối tượng 27


Tạo các gói



Phân tích thiết kế hướng đối tượng 28


Có thểnhóm các thành phần thànhmột nhóm chung


Nếusố lượng UC quá lớncó thể chia chúng vào các nhóm
• Dễ hiểu mơ hình tổng thể hơn


• Dễ bảo trì mơ hình UC


• Dễ giao việc cho các thành viên


Xem xét khả nănggộp nhóm


• Tương tácvớicùng một tác nhân


</div>

<!--links-->

×