BÀI7
LÀM VIỆCVỚICÁC USE CASEDIAGRAM
Use case là một khái niệm hữu ích giúp phân tích viên hiểu được hành vi của hệ thống. Nó
giúp ta ghi nhận các yêu cầu từ quan điểm người dùng. Nội dung chính trong bài học này:
+ Biểu diễn một mô hình usecase (use case model)
+ Trực quan hóa mối quan hệ giữa cácusecase
+ Tìm hiểu vai trò của cácusecasediagram trong quá trình phát triển
+ Tạo và ứng dụng các mô hình usecase
+ Xem xét bức tranh tổng thể của UML
Biểu diễn một mô hình usecase (Use Case Model)
Một actor kích hoạt một usecase và một actor cũng nhận các giá trị trả về từ use case. Hình
ellipse biểu diễn use case, hình người gậy biểu diễn actor. Actor kích hoạt (initiating actor)
nằm bên trái của usecase trong khi actor nhận (receiving actor) nằm bên phải. Tên của actor
xuất hiện bên dưới actor. Tên của usecase xuất hiện bên trong hoặc dưới elippse. Một
đường nối giữa một actor và usecase biểu diễn sự liên lạc giữa actor và use case.
Một ưu điểm của phân tích usecase là cho thấy ranh giới (boundary) giữa hệ thống với thế
giới bên ngoài. Actor đặc trưng cho bên ngoài hệ thống, trong khi usecase là bên trong. Ta
dùng một hình chữ nhật để biểu diễn ranh giới hệ thống (system boundary).
Thuật ngữ: Các tác nhân (actor), cácusecase và các đường nối tạo nên một mô hình use
case (use case model).
Hình 7.1
Trong một usecase
model, hình người gậy
(stick) biểu diễn một
actor, hình ellipse biểu
diễn một usecase và
một đường nối biểu diễn
liên lạc giữa actor và
use case.
Trang 1 – Bài7
Xem lại ví dụ “Soda machine”
Áp dụng những ký hiệu vừa học vào ví dụ bài trước. Ta xây dựng cácusecase cho một
“soda machine”. Trong hệ thống có cácusecase “Buy soda”, “Restock” và “Collect”. Các
actor là Customer, Supplier’s Representative và Collector. Hình 7.2 biểu diễn mô hình use
case cho “soda machine”.
Hình 7.2
Một mô hình usecase
của “soda machine”.
Theo dõi các bước trong kịch bản:
Mỗi usecase là một tập hợp các kịch bản (scenario) và mỗi kịch bản là một chuỗi các bước
(step). Các bước không xuất hiện trong sơ đồ cũng như trong các ghi chú đính kèm cácuse
case. Mặc dù vậy UML không ngăn cấm việc này. Sự rõ ràng là điều quan trọng trong việc
tạo bất cứ diagram nào. Việc đính kèm ghi chú cho từng usecase đôi khi làm rối diagram.
Use casediagram thường là một phần trong tàiliệu thiết kế mà khách hàng và đội phát triển
cùng tham khảo. Mỗi diagram trên một trang riêng. Mỗi kịch bản cho mỗi usecase cũng đặt
trong một trang riêng, liệt kê theo dạng sau:
Actor mà kích hoạt use case.
Tiền điều kiện (precondition) cho use case.
Các bước (step) trong kịch bản (scenario).
Hậu điều kiện (postcondition) khi kịch bản hoàn tất.
Actor nhận kết quả từ use case.
Ta cũng có thể trình bày các giả sử cho kịch bản (ví dụ, mỗi lượt chỉ một người dùng soda
machine) và một mô tả ngắn gọn (brief description) của kịch bản.
Trang 2 – Bài7
Biểu diễn mối liên kết (relationship) giữa cácuse case:
Thuật ngữ: Ví dụ trong bài 6 đã cho thấy 2 cách thức mà cácusecase có thể liên kết với
nhau. Một cách là bao gồm (inclusion), cho phép tái sử dụng các step của một usecase này
bên trong một usecase khác. Cách khác là mở rộng (extension), cho phép tạo một usecase
mới bằng cách bổ sung một số step vào một usecase sẵn có.
Thuật ngữ: Hai loại quan hệ khác là tổng hợp hóa (generalization) và nhóm (grouping).
Giống như trường hợp các class, generalization có một usecase thừa kế từ usecase khác.
Grouping là một cách đơn giản để gom nhóm cácuse case.
Bao gồm (inclusion)
Xét cácusecase “Restock” và “Collect” trong ví dụ của bài 6. Chúng đều bắt đầu vớicác
bước mở khóa, mở máy và kết thúc vớicác bước đóng máy, khóa máy. Usecase “Mở máy”
đã được tạo ra để they thế cho hai bước đầu còn usecase “Đóng máy” thay thế cho hai bước
cuối.
Để biểu diễn quan hệ bao gồm (inclusion), ta dùng biểu tượng mà đã dùng cho sự phụ thuộc
(dependency) giữa các class, một đường đứt nét nối các class với mũi tên chỉ đến class phụ
thuộc. Ngay phía trên đường inclusion, ta thêm một stereotype <<include>>.
Chú ý: Usecase bao gồm (included use case) không bao gồm đứng một mình. Nó luôn là
một phần của một usecase khác chứa nó.
Hình 7.3
Mô hình usecase của
máy soda với inclusion.
Trang 3 – Bài7
Mở rộng (extension):
Thuật ngữ: theo như bài 6, usecase “Restock” là cơ sở cho usecase “Restock according to
sales”. Usecase mới được gọi là mở rộng (extend) usecase ban đầu vì nó thêm các bước
mới vào trình tự trong usecase gốc, được gọi là usecase cơ sở (base).
Thuật ngữ: Việc mở rộng chỉ xảy ra tại một số điểm cụ thể trong trình tự của usecase cơ
sở. Những điểm này gọi là điểm mở rộng (extension point). Trong usecase “Restock”,
những bước mới (chú ý đến loại hàng bán và quyết định loại nhãn bán nhiều hơn) xuất hiện
sau khi nhà cung cấp mở máy soda và sẵn sàng nạp soda. Điểm mở rộng là “Nạp các ngăn
chứa” (Fill the compartment).
Giống như inclusion, ta trực quan hóa extension với đường phụ thuộc kèm theo stereotype
<<extends>>. Trong usecase cơ sở, điểm mở rộng xuất hiện dưới tên của use case.
Hình 7.4
Một usecasediagram
biểu diễn extension và
inclusion.
Sự tổng quát hóa (generalization)
Các class có thể thừa kế từ một lớp khác và usecase cũng vậy. Trong việc thừa kế use case,
use case con thừa kế các hành vi và ngữ nghĩa từ cha, và bổ sung thêm các hành vi riêng của
nó. Ta có thể áp dụng usecase con bất cứ nơi nào mà ta có thể áp dụng usecase cha.
Trong ví dụ, usecase “Buy a cup of soda” nếu có sẽ thừa kế từ usecase “Buy soda”. Use
case con sẽ thêm các hành vi như “add ice” và “mix soda brands”. Ta mô hình hóa
generalization của usecase tương tự như mô hình hóa generalization của các class.
Hình 7.5
Một usecase có thể
thừa kế ý nghĩa và hành
vi từ usecase khác.
Mối quan hệ generalization có thể tồn tại giữa các actor cũng như giữa cácuse case. Ta có
thể trình bày người đại diện nhà cung cấp và người thu ngân như là các nhân viên của nhà
cung cấp. Nếu ta đổi tên người đại diện là Restocker thì Restocker và Collector đều là con
của Supplier Agent.
Trang 4 – Bài7
Hình 7.6
Giống như các class và
use case, actor cũng có
thể có mối quan hệ tổng
quát hóa.
Bức tranh tổng thể
Hiện giờ chúng ta đã nắm được cách thức tổ chức của UML. Hình 7.7 trực quan hóa các tổ
chức đó.
Hình 7.7
Tổ chức của UML
Tóm lược
Use case là một công cụ mạnh mẽ cho việc thu thập yêu cầu chức năng. Usecasediagram
bổ sung thêm sức mạnh bởi: nó trực quan hóa cácuse case, nó hỗ trợ việc liên lạc giữa
phân tích viên và người dùng và giữa phân tích viên với khách hàng. Trong một usecase
diagram, biểu tượng cho một usecase là một hình ellipse. Biểu tượng cho một tác nhân
(actor) là một hình người gậy (stick). Một đường kết hợp (association) liên kết một actor với
một use case. Cácusecase thường nằm trong một hình chữ nhật biểu diễn cho ranh giới hệ
thống (system boundary).
Trang 5 – Bài7
Sự bao gồm (inclusion) được biểu diễn bởi đường phụ thuộc (dependency line) với một
stereotype tên <<include>>. Sự mở rộng (extension) cũng được biểu diễn bởi đường phụ
thuộc với một stereotype tên <<extends>>. Hai mối quan hệ khác giữa cácusecase là sự
tổng quát hóa (generalization), trong đó một usecase thừa kế ý nghĩa, hành vi của usecase
khác, và việc gom nhóm (grouping) nhằm tổ chức một tập cácuse case. Sự tổng quát hóa
được biểu diễn tương tự như biểu diễn sự thừa kế giữa các class. Sự gom nhóm được biểu
diễn bởi biểu tương gói (package).
Câu hỏi
1. Nêu 2 ưu điểm của việc trực quan hóa một use case?
2. Mô tả sự tổng quát hóa? Trong quan hệ giữa cácuse case?
3. Sự giống và khác nhau giữa class và usecase
Bài tập
1. Vẽ một usecasediagram cho một TV remote control.
Trang 6 – Bài7
. BÀI 7
LÀM VIỆC VỚI CÁC USE CASE DIAGRAM
Use case là một khái niệm hữu ích giúp phân tích viên hiểu. hình use case (Use Case Model)
Một actor kích hoạt một use case và một actor cũng nhận các giá trị trả về từ use case. Hình
ellipse biểu diễn use case,
i
ểu diễn một mô hình use case (use case model) +Trực quan hóa mối quan hệ giữa các use case (Trang 1)
Hình 7.2
(Trang 2)
Hình 7.3
(Trang 3)
Hình 7.4
(Trang 4)
i
ện giờ chúng ta đã nắm được cách thức tổ chức của UML. Hình 7.7 trực quan hóa các tổ chức đó (Trang 5)
Hình 7.6
(Trang 5)