Một Use case là gì? Là môt tả một tập hợp các dãy hành động mà hệ thống thực hiện để đáp lại tác động của tác nhân và kết thúc sẽ cho kết quả có thể quan sát được và có giá trị đối với một tác nhân của nó. Một use case được vẽ bằng một hình elip nét liền, bên trong viết tên usecase (chức năng). Tên này tuân theo quy tắc đặt tên cho hệ thống.
Tài liệu ca sử dụng – Tài
liệu trường hợp sử dụng (Use case document)
Hướng nhìn Use case miêu tả chức năng của hệ thống sẽ phải cung
cấp do được tác nhân từ bên ngoài mong đợi. Tác nhân là thực thể tưlơng tác với
hệ thống; đó có thể là một người sử dụng hoặc là một hệ thống khác. Hướng nhìn
Use case là hướng nhìn dành cho khách hàng, nhà thiết kế, nhà phát triển và
người thử nghiệm; nó được miêu tả qua các biểu đồ Use case (use case diagram)
và thỉnh thoảng cũng bao gồm cả các biểu đồ hoạt động (activity diagram). Cách
sử dụng hệ thống nhìn chung sẽ được miêu tả qua một loạt các Use case trong
hướng nhìn Use case, nơi mỗi một Use case là một lời miêu tả mang tính đặc thù
cho một tính năng của hệ thống (có nghĩa là một chức năng được mong đợi).
Hướng nhìn Use case mang tính trung tâm, bởi nó đặt ra nội dung
thúc đẩy sự phát triển các hướng nhìn khác. Mục tiêu chung của hệ thống là cung
cấp các chức năng miêu tả trong hướng nhìn này – cùng với một vài các thuộc
tính mang tính phi chức năng khác – vì thế hướng nhìn này có ảnh hưởng đến tất
cả các hướng nhìn khác. Hướng nhìn này cũng được sử dụng để thẩm tra (verify)
hệ thống qua việc thử nghiệm xem hướng nhìn Use case có đúng với mong đợi của
khách hàng (Hỏi: "Đây có phải là thứ bạn muốn") cũng như có đúng với
hệ thống vừa được hoàn thành (Hỏi: "Hệ thống có hoạt động như đã đặc
tả?”).
Trong phần này ta cần phải tìm tác nhân, tìm
các ca sử dụng, mô tả ngắn gọn ca sử dụng, mô tả mô hình ca sử dụng tổng thể.
Ca sử dụng, trường hợp sử dụng hay use case là
gì? Là công cụ giúp ta mô hình hoá hệ thống từ hướng nhìn của người sử dụng gọi
là Use Case.
Use Case là một công cụ
trợ giúp cho công việc của nhà phân tích cùng người sử dụng quyết định tính
năng của hệ thống. Một tập hợp các Use Case sẽ làm nổi bật một hệ thống theo
phương diện những người dùng định làm gì với hệ thống này.
Hãy xét một ngân hàng nhỏ. Hệ thống tương lai trong trường hợp này sẽ só nhiều người
sử dụng, mỗi người sẽ giao tiếp với hệ thống cho một mục đích khác biệt:
- Quản trị gia sử dụng hệ thống cho mục đích thống kê
- Nhân viên tiếp khách sử dụng hệ thống để thực hiện các
dịch vụ phục vụ khách hàng.
- Nhân viên phòng đầu tư sử dụng hệ thống để thực hiện
các giao dịch liên quan đến đầu tư.
- Nhân viên thẩm tra chữ ký sử dụng hệ thống cho mục đích
xác nhận chữ ký và bảo trì thông tin liên quan đến khách hàng.
- Khách hàng giao tiếp với hệ thống (nhà băng) cho các
hoạt động sử dụng dịch vụ như mở tài khoản, gửi tiền vào, rút tiền mặt, …
Quá trình tương tác giữa
người sử dụng và hệ thống trong mỗi một tình huống kể trên sẽ khác nhau và phụ
thuộc vào chức năng mà người sử dụng muốn thực thi cùng hệ thống.
Nhóm phát triển hệ thống
cần phải xây dựng nên một kịch bản nêu bật sự tương tác cần thiết giữa người sử
dụng và hệ thống trong mỗi khả năng hoạt động. Ví dụ như kịch bản cho sự tương
tác giữa nhân viên thu ngân và hệ thống của bộ phận tiết kiệm trong suốt tiến
trình của một giao dịch. Một kịch bản khác ví dụ là chuỗi tương tác xảy ra giữa
bộ phận tiết kiệm và bộ phận đầu tư trong một giao dịch chuyển tiền.
Ø
Xác định tác nhân.
Tác nhân là gì:
- Là một người hoặc một vật nào đó tương tác với hệ thống, sử dụng hệ thống.
- Một tác nhân là một dạng của thực thể (1 lớp) chứ không phải là một thực thể.
- Tác nhân mô tả và đại diện cho một vai trò chứ không phải là một người sử dụng thật sự và cụ thể của hệ thống.
- Một tác nhân giao tiếp với hệ thống bằng cách gởi và nhận thông điệp.
- Tác nhân đã kích hoạt và gây ra usecase.
- Tác nhân được xếp loại:
- Là một người hoặc một vật nào đó tương tác với hệ thống, sử dụng hệ thống.
- Một tác nhân là một dạng của thực thể (1 lớp) chứ không phải là một thực thể.
- Tác nhân mô tả và đại diện cho một vai trò chứ không phải là một người sử dụng thật sự và cụ thể của hệ thống.
- Một tác nhân giao tiếp với hệ thống bằng cách gởi và nhận thông điệp.
- Tác nhân đã kích hoạt và gây ra usecase.
- Tác nhân được xếp loại:
o
Tác nhân chính: là tác nhân sử dụng chức năng cơ bản của hệ thống.
o Tác nhân phụ: là tác nhân sử dụng các chức năng phụ của hệ thống.
o Tác nhân phụ: là tác nhân sử dụng các chức năng phụ của hệ thống.
Cả
2 loại tác nhân này đều được mô hình hoá để đảm bảo mô tả đầy đủ các chức năng
của hệ thống.
-
Tác nhân có thể được định nghĩa theo dạng tác nhân chủ động (là tác nhân gây ra
usecase) hay tác nhân thụ động (là tác nhân không bao giờ gây ra usecase mà chỉ
tham gia vào một hoặc nhiều usecase)
• Phương pháp tìm tác nhân:
- Khi nhận diện các tác nhân có nghĩa là chúng ta lọc ra các thực thể đáng quan tâm theo khía cạnh sử dụng và tương tác với hệ thống.
- Sau đó chúng ta có thể tự đặt mình vào vị trí của tác nhân để cố gắng nhận ra các yêu cầu và đòi hỏi của tác nhân đối với hệ thống.
- Xác định tác nhân cần usecase nào có thể nhận diện các tác nhân qua việc trả lời một số câu hỏi như sau:
• Phương pháp tìm tác nhân:
- Khi nhận diện các tác nhân có nghĩa là chúng ta lọc ra các thực thể đáng quan tâm theo khía cạnh sử dụng và tương tác với hệ thống.
- Sau đó chúng ta có thể tự đặt mình vào vị trí của tác nhân để cố gắng nhận ra các yêu cầu và đòi hỏi của tác nhân đối với hệ thống.
- Xác định tác nhân cần usecase nào có thể nhận diện các tác nhân qua việc trả lời một số câu hỏi như sau:
o
Ai sẽ sử dụng những chức năng chính của hệ thống? => tác nhân chính.
o Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những tác vụ hằng ngày của họ?
o Ai sẽ cần bảo trì, quản trị và đảm bảo cho hệ thống hoạt động => tác nhân phụ được xác định.
o Hệ thống sẽ phải xử lý và làm việc với những trang thiết bị hệ thống nào?
o Hệ thống cần phải tương tác với các hệ thống khác nào?
o Ai sẽ cần sự hỗ trợ của hệ thống để thực hiện những tác vụ hằng ngày của họ?
o Ai sẽ cần bảo trì, quản trị và đảm bảo cho hệ thống hoạt động => tác nhân phụ được xác định.
o Hệ thống sẽ phải xử lý và làm việc với những trang thiết bị hệ thống nào?
o Hệ thống cần phải tương tác với các hệ thống khác nào?
-
Khi đi tìm những người sử dụng hệ thống dễ bắt gặp nhất là những người đang
ngồi trước màn hình máy tính. Một điều nên nhớ rằng một người sử dụng có thể ở
bất kỳ nơi nào trực tiếp hay giao tiếp với hệ thống. Có thể là bất kỳ một vật
nào tương tác với hệ thống, bất kỳ một dịch vụ nào mà hệ thống đang sử dụng.
Ø Xác định ca sử dụng - trường hợp sử dụng - usecase.
Usecase là gì:
- Usecase là công cụ giúp chúng ta mô hình hoá hệ thống từ hướng nhìn của người sử dụng.
- Là công cụ giúp cho công việc của một nhà phân tích cùng với người sử dụng quy định tính năng của hệ thống.
- Là một tập hợp các usecase sẽ là nổi bậc một hệ thống theo phương diện những người dùng định làm gì với hệ thống này.
• Các phương pháp để tìm usecase:
- Usecase là công cụ giúp chúng ta mô hình hoá hệ thống từ hướng nhìn của người sử dụng.
- Là công cụ giúp cho công việc của một nhà phân tích cùng với người sử dụng quy định tính năng của hệ thống.
- Là một tập hợp các usecase sẽ là nổi bậc một hệ thống theo phương diện những người dùng định làm gì với hệ thống này.
• Các phương pháp để tìm usecase:
-
Quá trình tìm các usecase thì phải bắt đầu từ các tác nhân.
- Actor
này cần những chức năng nào từ hệ thống? Hành động chính của Actor là gì
?.
- Actor
có cần phải đọc, phải tạo, phải hủy bỏ, phải sửa chữa, hay là lưu trữ một
loại thông tin nào đó trong hệ thống?
- Actor
có cần phải báo cho hệ thống biết về những sự kiện nào đó? Những sự kiện
như thế sẽ đại diện cho những chức năng nào?
- Hệ
thống có cần phải thông báo cho Actor về những thay đổi bất ngờ trong nội
bộ hệ thống?
- Công
việc hàng ngày của Actor có thể được đơn giản hóa hoặc hữu hiệu hóa qua các
chức năng mới trong hệ thống (thường đây là những chức năng tiêu biểu chưa
được tự động hóa trong hệ thống)?
- Use
Case có thể được gây ra bởi các sự kiện nào khác?
- Hệ
thống cần những thông tin đầu vào/đầu ra nào? Những thông tin đầu vào/đầu
ra đó từ đâu tới và sẽ đi đâu?
- Khó khăn và thiếu hụt chính trong hệ thống hiện thời nằm ở đâu (thủ công /tự động hóa)?
- Đối với mỗi tác nhân phải hỏi các câu hỏi sau đây:
Tác nhân này cần những chức năng nào của hệ thống, hoạt động chính của tác nhân là gì.
Vd: Một giao dịch rút tiền bằng máy ATM hoạt động chính của tác nhân là:
t Tác nhân cần phải đọc, tạo, huỷ bỏ, sửa đổi
hay lưu trữ một loại thông tin nào đó trong hệ thống.
t Tác nhân cần phải báo cho hệ thống biết về sự
kiện nào đó. Những sự kiện như thế sẽ đại diện cho chức năng nào?
t Hệ thống cần phải thông báo cho tác nhân về
những sự thay đổi bất ngờ trong nội bộ của hệ thống.
Trong ví dụ ngân hàng nhỏ
ở trên, một số những Use Case dễ thấy nhất là:
- Một khách hàng mở một tài khoản mới.
- Phòng đầu tư tính toán tiền lãi cho các tài khoản đầu
tư.
- Một chương trình đầu tư mới được đưa vào áp dụng.
- Yêu cầu chuyển tiền của khách hàng được thực hiện.
- Chuyển tiền theo kỳ hạn từ một tài khoản đầu tư sang
một tài khoản tiết kiệm.
Ø Mô hình
hóa usecase
Mô hình
Use Case mô tả hướng nhìn Use Case của hệ thống. Hướng nhìn này là rất quan
trọng, bởi nó ảnh hưởng đến tất cả các hướng nhìn khác của hệ thống. Cả cấu
trúc logic lẫn cấu trúc physic đều chịu ảnh hưởng từ các Use Case, bởi chức
năng được đặc tả trong mô hình này chính là những chức năng được thực thi trong
các cấu trúc kia. Mục đích cuối cùng là thiết kế ra một giải pháp thỏa mãn các
yêu cầu đó.
Mô hình
hóa các Use Case chẳng phải chỉ được dùng để nắm bắt các yêu cầu của hệ thống
mới; nó cũng còn được sử dụng để hỗ trợ cho việc phát triển một phiên bản mới
của hệ thống. Khi phát triển một phiên bản mới của hệ thống đang tồn tại, người
ta sẽ bổ sung thêm các chức năng mới vào mô hình Use Case đã có bằng cách thêm
vào các tác nhân mới cũng như các Use Case mới, hoặc là thay đổi đặc tả của các
Use Case đã có. Khi bổ sung thêm vào mô hình Use Case đang tồn tại, hãy chú ý
để không bỏ ra bất kỳ một chức năng nào vẫn còn được cần tới.
Ø
Mô tả sơ lược ca sử dụng
Như đã
trình bày, lời miêu tả một Use Case thường được thực hiện trong văn bản. Đây là
lời đặc tả đơn giản và nhất quán về việc các tác nhân và các Use Case (hệ
thống) tương tác với nhau ra sao. Nó tập trung vào ứng xử đối ngoại của hệ
thống và không đề cập tới việc thực hiện nội bộ bên trong hệ thống. Ngôn ngữ và
các thuật ngữ được sử dụng trong lời miêu tả chính là ngôn ngữ và các thuật ngữ
được sử dụng bởi khách hàng/người dùng.
Văn bản
miêu tả cần phải bao gồm những điểm sau:
- Mục
đích của Use Case: Mục đích chung cuộc của Use Case là gì? Cái gì cần phải được
đạt tới? Use Case nói chung đều mang tính hướng mục đích và mục đích của mỗi
Use Case cần phải rõ ràng.
- Use
Case được khởi chạy như thế nào: Tác nhân nào gây ra sự thực hiện Use Case này?
Trong hoàn cảnh nào?
- Chuỗi
các thông điệp giữa tác nhân và Use Case: Use Case và các tác nhân trao đổi
thông điệp hay sự kiện nào để thông báo lẫn cho nhau, cập nhật hoặc nhận thông
tin và giúp đỡ nhau quyết định? Yếu tố nào sẽ miêu tả dòng chảy chính của các
thông điệp giữa hệ thống và tác nhân, và những thực thể nào trong hệ thống được
sử dụng hoặc là bị thay đổi?
- Dòng
chảy thay thế trong một Use Case: Một Use Case có thể có những dòng thực thi
thay thế tùy thuộc vào điều kiện. Hãy nhắc đến các yếu tố này, nhưng chú ý đừng
miêu tả chúng quá chi tiết đến mức độ chúng có thể “che khuất“ dòng chảy chính
của các hoạt động trong trường hợp căn bản. Những động tác xử lý lỗi đặc biệt
sẽ được miêu tả thành các Use Case khác.
- Use
Case sẽ kết thúc với một giá trị đối với tác nhân như thế nào: Hãy miêu tả khi
nào Use Case được coi là đã kết thúc, và loại giá trị mà nó cung cấp đến tác
nhân.
Hãy nhớ
rằng lời miêu tả này sẽ xác định những gì được thực thi có liên quan đến tác
nhân bên ngoài, chứ không phải những sự việc được thực hiện bên trong hệ thống.
Văn bản phải rõ ràng, nhất quán, khiến cho khách hàng có thể dễ dàng hiểu và
thẩm tra chúng (để rồi đồng ý rằng nó đại diện cho những gì mà anh/cô ta muốn
từ phía hệ thống). Tránh dùng những câu văn phức tạp, khó diễn giải và dễ hiểu
lầm.
Một Use
Case cũng có thể được miêu tả qua một biểu đồ hoạt động. Biểu đồ hoạt động này
chỉ ra chuỗi các hành động, thứ tự của chúng, các quyết định chọn lựa để xác
định xem hành động nào sau đó sẽ được thực hiện.
Để bổ
sung cho lời miêu tả một Use Case, người ta thường đưa ra một loạt các cảnh
kịch cụ thể để minh họa điều gì sẽ xảy ra một khi Use Case này được thực thể
hóa. Lời miêu tả cảnh kịch minh họa một trường hợp đặc biệt, khi cả tác nhân
lẫn Use Case đều được coi là một thực thể cụ thể. Khách hàng có thể dễ dàng
hiểu hơn toàn bộ một Use Case phức tạp nếu có những cảnh kịch được miêu tả thực
tiễn hơn, minh họa lại lối ứng xử và phương thức hoạt động của hệ thống. Nhưng
xin nhớ rằng, một lời miêu tả cảnh kịch chỉ là một sự bổ sung chứ không phải là
ứng cử viên để thay thế cho lời miêu tả Use Case.
Sau khi
các Use Case đã được miêu tả, một hoạt động và một công việc đặc biệt cần phải
thực hiện là thẩm tra xem các mối quan hệ (đã đề cập tới trong phần 2.7) có
được nhận diện không. Trước khi tất cả các Use Case được miêu tả, nhà phát
triển chưa thể có được những kiến thức hoàn tất và tổng thể để xác định các mối
quan hệ thích hợp, thử nghiệm làm theo phương thức đó có thể sẽ dẫn đến một
tình huống nguy hiểm. Trong thời gian thực hiện công việc này, hãy trả lời các
câu hỏi sau:
- Tất
cả các tác nhân liên quan đến một Use Case có mối liên kết giao tiếp với Use
Case đó không?
- Có
tồn tại những sự tương tự giữa một loạt các tác nhân minh họa một vai trò chung
và nhóm này liệu có thể được miêu tả là một lớp tác nhân căn bản (base class)?
- Có
tồn tại những sự tương tự giữa một loạt các Use Case, minh họa một dòng chảy
hành động chung? Nếu có, liệu điều này có thể được miêu tả là một mối quan hệ
sử dụng đến với một Use Case khác?
- Có
tồn tại những trường hợp đặc biệt của một Use Case có thể được miêu tả là một
mối quan hệ mở rộng?
- Có
tồn tại một tác nhân nào hay một Use Case nào không có mối liên kết giao tiếp?
Nếu có, chắc chắn ở đây đã có chuyện lầm lạc, sai trái: Tại sao lại xuất hiện
tác nhân này?
- Có
lời yêu cầu nào về chức năng đã được xác định, nhưng lại không được bất kỳ một
Use Case nào xử lý? Nếu thế, hãy tạo một Use Case cho yêu cầu đó.
Văn bản
miêu tả một Use Case đơn giản:
Ví dụ
Use Case "Cung Cấp Thông Tin Về Một Tài Khoản Tại Nhà Băng ABC”: Sau khi
phân tích hệ thống, ta nhận thấy cần có một Use Case để in lên màn hình của
nhân viên nhà băng tất cả những chi tiết về một tài khoản của một khách hàng.
Đặc tả
Use Case:
Những
công việc cụ thể cần thiết để tạo nên một mô hình Use Case bao gồm:
1. Định nghĩa hệ thống (xác định phạm vi hệ thống)
2. Tìm ra các tác nhân cũng như các Use Case
3. Mô tả Use Case
4. Định nghĩa mối quan hệ giữa các Use Case
5. Kiểm tra và phê chuẩn mô hình.
Chi
tiết tài khoản: // tên Use Case
Số Use
Case: UCSEC…
Miêu tả
ngắn: // miêu tả ngắn gọn Use Case
Use
Case "chi tiết tài khoản" cho phép nhân viên nhà băng xem các chi
tiết của một tài khoản mà anh ta định tìm hiểu.
Dòng
chảy các sự kiện: //
dòng logic chung
Nhân
viên chọn Chi Tiết Tài Khoản trên menu. Một con đường khác để chỉ ra các thông
tin chi tiết của tài khoản là gọi từ Màn Hình Tóm Tắt Thông Tin Về Tài Khoản d.
Dòng
hành động chính: // dòng logic chi tiết.
Mỗi
khách hàng sẽ có một số định danh gọi là CustomerId. Một khách hàng có thể có
nhiều tài khoản. Sau khi nhân viên nhập CustomerId vào hệ thống, màn hình phải
in ra tất cả những tài khoản thuộc về khách hàng này và thuộc về nhà băng ABC,
rải rác tại tất cả các chi nhánh. Khi chọn tiếp loại tài khoản và số tài khoản,
các chi tiết của tài khoản mong muốn sẽ được in ra.
Loại
tài khoản tiết kiệm: Nếu loại tài khoản được chọn là tài khoản tiết kiệm, các
chi tiết sau đây sẽ được in ra:
- Mức tiền hiện có
- Các tờ sec chưa thanh toán
- Lượng tiền tín dụng được phép
- Lượng tiền lãi cho tới ngày hôm nay
- Lượng tiền tối thiểu cần phải có trong tài
khoản
Loại tài
khoản đầu tư: Nếu loại tài khoản được chọn là loại đầu tư, các chi tiết sau đây
sẽ được in ra.
- Hạn đầu tư
- Số tiền đầu tư
- Ngày đầu tư
- Lượng tiền cuối hạn
- Ngày cuối hạn
- Tỷ lệ lời
Dòng
hành động thay thế: //
chuỗi logic thay thế
Không
tìm thấy chi tiết: Khi chọn một số tài khoản không thích hợp (không có tài
khoản tương ứng) dù vì lý do chức năng hay kỹ thuật, hệ thống sẽ đưa ra một màn
hình báo lỗi.
Điều
kiện thoát: // Use Case kết thúc như thế nào?
Nút
Thoát: Khi chọn nút thoát, người sử dụng sẽ quay trở lại màn hình chính.
Nút Xem
Thêm: Khi chọn nút này, người sử dụng sẽ được yêu cầu chọn loại tài khoản từ
một danh sách đổ xuống.
Nút Xem
Giao Dịch: Khi chọn nút này, người sử dụng sẽ được chuyển sang màn hình
"Giao dịch" và theo Use Case số giao dịch, màn hình sẽ chỉ ra những
giao dịch đã xảy ra đối với tài khoản, bên cạnh những chi tiết chính của tài
khoản.
Nút Yêu
Cầu In Kết Quả: Khi chọn phần thực đơn này, kết quả giao dịch sẽ được in ra ở
một máy in địa phương nối trực tiếp với máy tính của nhân viên.
Các yêu
cầu đặc biệt: // các yêu cầu đặc biệt
Hệ
thống có khả năng in lên màn hình bằng những ngôn ngữ khác. Chức năng này sẽ
được kích hoạt khi người sử dụng chọn mục Ngoại Ngữ trên menu.
Điều
kiện trước đó: // điều xảy ra trước khi Use Case được
thực hiện
Bảo an:
Người sử dụng (nhân viên tiếp khách) được cung cấp một số định danh riêng biệt
để truy nhập vào hệ thống.
Dịch
chuyển: Người sử dụng chỉ đến được màn hình Chi Tiết Tài Khoản sau khi đã truy
nhập thành công và Identify thành công.
Điều
kiện sau đó: // điều gì xảy ra sau khi Use Case được
thực hiện?
Tags
System Information