LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
ViỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Bài 10. Biểu đồ use case và
Biểu đồ hoạt động
Nội dung
1. Tổng quan về biểu đồ use case
2. Các thành phần chính trong biểu đồ
use case
3. Biểu đồ hot đng
3
1.1. Tổng quan về biểu đồ use case
• Mi h thng tương tc vi con ngưi hoc cc h
thng khc để thc hin nhim v
• Các hành vi của h thng có thể được mô t trong
các use case.
▫ What, not How
▫ Các use case mô t các tương tác giữa h thng và
môi trưng của nó
Biểu đồ use case
4
1.1. Tổng quan về biu đ use case (2)
• Biểu đồ mô t cc yêu cu chc năng ca h
thng dưi dng cc use case.
• Bao gồm cc chc năng mong đi ca h thng
(use case) v môi trưng (actor) ca n.
5
View Report Card
Student
Register for Courses
Login
1.2. Li ích ca biu đ use case
• Ging như một bn hp đồng giữa ngưi pht triển
phn mềm v khch hng.
• L công cụ mnh mẽ cho vic lập kế hoch Đưc
dùng trong tất c cc giai đon trong quy trình pht triển
h thng
▫ Khch hng ca bn phi phê chuẩn biểu đồ use-case
▫ Sử dụng biểu đồ use case để tho luận vi khch hàng.
▫ Cc thnh viên tham gia vo dự n, sử dụng mô hình ny để
hiểu r hơn về h thng
6
7
1.2. Li ích ca biểu đồ use case (2)
• Giao tiếp
• Xác định
• Kiểm chứng
End User
Domain Expert
Users
Verification
Identification
Use Case
Communication
Nội dung
1. Tổng quan về biểu đồ use case
2. Các thành phần chính trong biểu đồ
use case
3. Biểu đồ hot đng
8
2.1. Tác nhân (actor)
9
Tác nhân là bt k th g tương tc
vi h thng, c s trao đi d liu
vi h thng
– Là một lp/loại ngưi dng ch không
phi một ngưi c thể
– Một ngưi dng c thể c thể đng
vai tr là cc tc nhân khc nhau, c
ngha là ngưi đ c nhiu vai tr
khc nhau trong h thng
– Không phi là một phần của h thng
Actors are EXTERNAL.
Actor
Ví dụ về tác nhân
• Tc nhân trao đổi thông tin vi h thng:
▫ Gửi thông tin ti h thng
▫ Nhận thông tin từ h thng
10
-Tc nhân KHÔNG phi l
một phn ca h thng!!!
- Gip gii hn h thng
Tc nhân c thể l:
• Ngưi dùng,
• Thiết bị phn cng
• H thng phn mềm khc
Tìm kiếm tác nhân ca h thng
• Đt các câu hỏi sau để tìm ra tác nhân:
▫ Nhóm ngưi nào yêu cầu h thng làm vic giúp họ?
▫ Nhóm ngưi nào kích hot chức năng của h thng?
▫ Nhóm ngưi nào sẽ duy trì và qun trị h thng hot
đng?
▫ H thng có tương tác vi các thiết bị hay phần mềm
ngoi vi nào khác hay không?
• Thông tin về tác nhân:
▫ Tên tác nhân phi mô t vai trò của tác nhân đó mt
cách rõ ràng
▫ Tên nên là danh từ
▫ Cần mô t khái quát kh năng của tác nhân đó
11
2.2. Use case
12
Use Case
Use case mô t chc năng ca h thng, l một
chui cc hnh động ca h thng thực hin
nhằm thu đưc một kết qu dễ thấy ti một tc
nhân no đ.
– Một use case mô hình ha một hội thoi giữa một
hoặc nhiều tc nhân vi h thng
– Một use case mô t hnh động ca h thng thực
hin nhằm mang đến một gi trị no đ cho tc nhân.
Tìm use case ca h thng
• Xem các yêu cầu chức năng để tìm ra các UC
• Đi vi mi tác nhân tìm được, đt các câu hỏi:
▫ Các tác nhân yêu cầu những gì từ h thng
▫ Các công vic chính mà tác nhân đó mun HT thc thi?
▫ Tác nhân đó có to ra hay thay đổi dữ liu gì của HT?
▫ Tác nhân đó có phi 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 vi
tác nhân
▫ Tên nên là đng từ
▫ Mô t ngắn gọn về mc đích của UC
13
Những điều nên tránh khi to UC
• To ra các UC quá nhỏ
▫ Hành đng quá đơn gin mà chỉ cần mô t bởi vài dòng
• To ra quá nhiều Use case (hàng chc)
▫ Nhóm các Use case liên quan thành mt Use case tổng quát
(mức 1)
▫ Mô t các Use Case tổng quát ở mt sơ đồ khác (mức 2)
Ví d: “Qun lý sách” bao gồm “Nhập sách”, “Xuất sách”, “…”
• Sử dng các Use-case quá c thể, hoc làm vic vi dữ liu
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à “Qun lý sách” bao gồm “Thêm sách”)
14
2.3. Mi liên h (relationship)
• Mi liên h giữa các actor vi nhau
▫ Khái quát hóa (Generalization)
▫ Giao tiếp
• Mi liên h giữa actor và use case
▫ Giao tiếp
• Mi liên h giữa các use case vi nhau
▫ Generalization: Khái quát hóa
▫ Include: Bao hàm
▫ Extend: Mở rng
15
2.3.1. Mi liên h giữa các actor vi nhau
• Khái quát hóa (Generalization)
▫ Tác nhân con kế thừa tính chất và
hành vi của tác nhân cha
• Giao tiếp
▫ Xét s khác nhau giữa hai biểu đồ sau
16
2.3.2. Mi liên h giữa actor vi use case
• Thiết lập quan h giữa Tác nhân và Use Case
▫ Chúng tương tác bằng cách gửi các tín hiu cho nhau
• Mt use case mô hình hóa mt hi thoi giữa các tác
nhân và h thng
• Mt use case được bắt đầu bởi mt tác nhân để gọi mt
chức năng nào đó trong h thng.
Actor
Association
Use Case
17
2.3.2. Mi liên h giữa actor vi use case (2)
Chiều của quan h chính là chiều của tín hiu gửi đi
• Từ tác nhân ti Use Case
▫ Kích hot Use case
▫ Hỏi thông tin nào đó trong h thng
▫ Thay đổi thông tin nào đó trong h thng
▫ Thông báo cho UC về mt s kin đt bit nào đó xy ra vi h thng
• Từ Use Case ti tác nhân:
▫ Nếu như có mt điều gì đó xy ra vi HT và tác nhân đó cần được biết
s kin đó
▫ UC đôi khi cần hỏi thông tin nào đó từ mt tác nhân trưc khi UC đó
đưa ra mt quyết định
18
2.2.3. Mi liên h giữa các use case
• Generalization
• <<include>>
▫ always use
• <<extend>>
▫ sometime use
19
a. Quan h generalization
• Được sử dng để chỉ ra mt vài
tính chất chung của mt nhóm
tác nhân hoc UC
• Sử dng khái nim kế thừa
▫ Mô t hành vi chung (chia sẻ)
trong UC cha
▫ Mô t hành vi riêng trong (các)
UC con
20
b. Quan h <<include>>
• Cho phép mt UC sử dng chức năng của UC khác
• Chức năng của UC Inclusion sẽ được gọi trong
UC Base
• Sử dng stereotype là <<include>>
21
c. Quan h <<extend>>
• Cho phép mở rng chức năng của mt UC
• Chèn hành vi của UC Extension vào UC Base
• Chỉ chèn khi điều kin extend đúng (mở rng, phát sinh)
• Chèn vào lp cơ sở ti điểm phát sinh (extension point)
• Sử dng stereotype là <<extend>>
22
Đc biu đ use case
23
View Report Card
Student
Register for Courses
Login
Select Courses to
Teach
Submit Grades
Professor
Registrar
Billing System
Maintain Professor
Information
Maintain Student
Information
Close Registration
Course Catalog
Đọc biểu đồ use case
• Tr li các câu hỏi sau:
▫ Mô t các chức năng của h thng
▫ Sinh viên có thể tác đng lên những use-case nào?
▫ Giáo viên có thể tác đng lên những use-case nào?
▫ Nếu A vừa là sinh viên vừa là giáo viên, anh ta có
thể thc hin được những use-case nào?
▫ Sơ đồ này không nói lên được những gì?
▫ Những use-case nào cần thiết thc hin đầu tiên?
• Biểu đồ use case c thể mô t hết được không?
24
Nội dung
1. Tổng quan về biểu đồ use case
2. Các thành phần chính trong biểu đồ
use case
3. Biểu đồ hot đng
25
3. Biểu đồ hot động
• Biểu đồ hot động (Activity Diagram – AD) đưc sử
dụng để mô t cc hot động v cc hnh động đưc
thực hin trong một use case
▫ Biểu đồ luồng (flow chart): Chỉ ra luồng điều khiển từ hot
động/hnh động ny đến hot/hnh động khc.
26
Flow of Events
This use case starts when the Registrar requests that the
system close registration.
1. The system checks to see if registration is in progress. If
it is, then a message is displayed to the Registrar and the
use case terminates. The Close Registration processing
cannot be performed if registration is in progress.
2. For each course offering, the system checks if a professor
has signed up to teach the course offering and at least three
students have registered. If so, the system commits the
course offering for each schedule that contains it.
Activity 1
Activity 3
Activity 2