Phân tích và đặc tả các yêu cầu hệ thống
Khái niệm ca sử dụng, hay trường hợp sử dụng (Use Case) được Ivan Jacobson đề xuất từ năm 1994 nhằm mô tả các dịch vụ của hệ thống cho khách hàng và xác định mối quan hệ tương tác giữa hệ thống phần mềm với NSD trong nghiệp vụ. Một ...
Khái niệm ca sử dụng, hay trường hợp sử dụng (Use Case) được Ivan Jacobson đề xuất từ năm 1994 nhằm mô tả các dịch vụ của hệ thống cho khách hàng và xác định mối quan hệ tương tác giữa hệ thống phần mềm với NSD trong nghiệp vụ.
Một cách hình thức hơn, ca sử dụng mô tả tập các hoạt động của hệ thống theo quan điểm của các tác nhân (Actor). Nó mô tả các yêu cầu của hệ thống và trả lời cho câu hỏi:
Hệ thống phải làm cái gì (What ?).
Ca sử dụng mô tả một quá trình từ bắt đầu cho đến khi kết thúc, gồm dãy các thao tác, các giao dịch cần thiết để sản sinh ra cái gì đó (giá trị, thông tin) theo yêu cầu của một tổ chức, của tác nhân, v.v.
Ca sử dụng được ký hiệu là:
![](/pictures/picfullsizes/2018/05/24/ozm1527153584.jpg)
Trong đó, “Hoạt động” là các chức năng, nhiệm vụ hay gọi chung là dịch vụ của hệ thống và nó thường được mô tả bằng các động từ, hay mệnh đề động từ đơn,
Bán hàng, thanh toán, khởi động hệ thống, v.v.
Những ca sử dụng phức tạp sẽ được mô tả chi tiết thông qua các kịch bản.
Mục tiêu của ca sử dụng trong cả quá trình phát triển phần mềm:
- Mô tả các yêu cầu chức năng của hệ thống, là kết quả của quá trình khảo sát, nghiên cứu các yêu cầu của bài toán và những thoả thuận giữa khách hàng, NSD hệ thống với người phát triển phần mềm.
- Làm cơ sở để người phân tích viên hiểu, người thiết kế xây dựng các kiến trúc, người lập trình cài đặt các chức năng của hệ thống,
- Cung cấp các cơ sở để kiểm duyệt, thử nghiệm hệ thống.
Các ca sử dụng đóng vai trò rất quan trọng trong cả quá trình phát triển phần mềm, tất cả các pha phân tích, thiết kế sau này đều dựa vào các ca sử dụng. Như vậy, quá trình được hướng dẫn bởi ca sử dụng là một cách hữu hiệu để mô hình hoá hệ thống với UML. Hình 3-2 chỉ cho chúng ta thấy ai sẽ cần đến ca sử dụng và cần để làm gì. Người sử dụng phải nêu được các yêu cầu của hệ thống, phân tích viên phải hiểu được các công việc của hệ thống, người thiết kế (kiến trúc sư) phải kiến trúc sư phải đưa ra được các thành phần để thực hiện các ca sử dụng, người lập trình thực hiện cài đặt chúng và cuối cùng nhân viên kiểm tra hệ thống dựa vào những ca sử dụng đó.
![](/pictures/picfullsizes/2018/05/24/tcs1527153584.jpg)
Tác nhân ngoài, hay gọi ngắn gọn là tác nhân là những thực thể bên ngoài có tương tác với hệ thống, bao gồm người, vật, thiết bị hay các hệ thống khác có trao đổi thông tin với hệ thống. Nói cách khác, tác nhân đại diện cho người hay một bộ phận của tổ chức mong muốn nhận được các thông tin (dữ liệu) hoặc các câu trả lời từ những ca sử dụng tương ứng.
Khách mua hàng, người bán hàng là hai tác nhân của HBH.
Ký hiệu của tác nhân là hình nhân cùng với tên gọi như hình 3.
![](/pictures/picfullsizes/2018/05/24/rcj1527153584.jpg)
Tên gọi của tác nhân được mô tả bằng các danh từ (chung) và thường phải nêu được vai trò của nó đối với hệ thống.
Tác nhân trao đổi với hệ thống thông qua việc tương tác, sử dụng các dịch vụ của hệ thống là các ca sử dụng bằng cách trao đổi các thông điệp. Như vậy, tác nhân sẽ cung cấp hoặc sử dụng các thông tin của hệ thống thông qua các ca sử dụng.
![](/pictures/picfullsizes/2018/05/24/pdg1527153584.jpg)
Thông thường trong mỗi hệ thống, khách hàng, NSD, người quản lý, người phụ vụ, v.v. có thể xem như là các tác nhân của hệ thống đó. Chúng ta cũng dễ nhận thấy, một ca sử dụng thì phải được khởi động bởi, hay phục vụ cho một hay nhiều tác nhân.
Thông thường việc xác định và hiểu rõ các yêu cầu hệ thống là rất khó khăn, phức tạp vì khối lượng thông tin liên quan là rất nhiều, được mô tả lộn xộn và không có cấu trúc. Khái niệm ca sử dụng được đưa ra để biểu thị các yêu cầu từ phía NSD, xuất phát từ quan điểm đơn giản là hệ thống được xây dựng trước hết là cho những NSD chúng, là để phục vụ tốt cho khách hàng.
Như trên đã phân tích, các tác nhân và các ca sử dụng của một hệ thống có mối quan hệ chặt chẽ với nhau. Mỗi tác nhân phải liên quan đến ít nhất một ca sử dụng và ngược lại mỗi ca sử dụng lại phục vụ trực tiếp hoặc gián tiếp cho một số tác nhân. Như vậy, các tác nhân và các ca sử dụng cùng mối quan hệ của chúng mô tả bức tranh khái quát về hệ thống, đặc tả đầy đủ về các yêu cầu của hệ thống. Do đó, vấn đề rất quan trọng đặt ra là làm thế nào để xác định được đầy đủ và chính xác các tác nhân ngoài, các ca sử dụng của hệ thống cần xây dựng.
Xác định các tác nhân
Tác nhân là một bộ phận bên ngoài hệ thống nhưng cộng tác chặt chẽ với hệ thống. Nó chính là đối tượng mà hệ thống phục vụ hoặc cần có để cung cấp dữ liệu. Do đó, nhiệm vụ trước tiên của người phân tích là xác định các tác nhân.
Một trong các kỹ thuật hỗ trợ để xác định các tác nhân là dựa trên các câu trả lời những câu hỏi sau:
- Ai sẽ sử dụng các chức năng chính của hệ thống?
- Ai cần sự hỗ trợ của hệ thống để thực hiện các công việc hàng ngày?
- Ai quản trị, bảo dưỡng để đảm bảo cho hệ thống hoạt động thường xuyên?
- Hệ thống quản lý, sử dụng những thiết bị nào?
- Hệ thống cần tương tác với những bộ phận, hệ thống nào khác?
- Ai hay cái gì quan tâm đến kết quả xử lý của hệ thống?
Xác định các ca sử dụng
Bước tiếp theo là xác định các ca sử dụng dựa trên những tài liệu đặc tả các yêu cầu, thông qua các tác nhân, v.v. Có hai phương pháp chính hỗ trợ giúp ta xác định các ca sử dụng:
1. Phương pháp thứ nhất là dựa vào các tác nhân:
a. Xác định những tác nhân liên quan đến một hệ thống hoặc đến một tổ chức, nghĩa là tìm và xác định những tác nhân là NSD hay những hệ thống khác tương tác với hệ thống cần xây dựng.
b. Với mỗi tác nhân, tìm những tiến trình (chức năng) được khởi đầu, hay giúp các tác nhân thực hiện, giao tiếp / tương tác với hệ thống.
2. Phương pháp thứ hai để tìm các ca sử dụng là dựa vào các sự kiện.
a.Xác định những sự kiện bên ngoài có tác động đến hệ thống hay hệ thống phải trả lời.
b. Tìm mối liên quan giữa các sự kiện và các ca sử dụng.
Tương tự như trên, hãy trả lời những câu hỏi sau đây để tìm ra các ca sử dụng:
1. Nhiệm vụ chính của các tác nhân là gì?
2. Tác nhân cần phải đọc, ghi, sửa đổi, cập nhật, hay lưu trữ thông tin hay không?
3. Những thay đổi bên ngoài hệ thống thì tác nhân có cần phải thông báo cho hệ thống hay không?
4. Những tác nhân nào cần được thông báo về những thay đổi của hệ thống?
5. Hệ thống cần có những đầu vào/ra nào?, từ đâu và đến đâu?
Dựa vào các phương pháp nêu trên, chúng ta hãy xác định các tác nhân và các ca
sử dụng của hệ thống HBH.
1. Danh sách các tác nhân của HBH:
+ Khách hàng (Customer): là những người được hệ HBH phục vụ, là khách hàng.
+ Người bán hàng (Cashier): những người cần sử dụng chức năng bán hàng của hệ thống để thực hiện nhiệm vụ của mình.
+ Người quản lý (Manager): những người được phép khởi động (Start Up) hay kết thúc cả hệ thống (Shut Down) tại các điểm bán hàng đầu cuối.
+ Người quản trị hệ thống (System Administrator): có thể bổ sung, thay đổi những NSD.
2. Danh sách các ca sử dụng của HBH
1. Bán hàng, mua hàng (Buy Items) là nhiệm vụ của hệ thống HBH liên quan trực tiếp tới khách hàng và người bán hàng. Trong trường hợp này, hai chức năng bán hàng và mua hàng là đồng nghĩa, nên có thể chọn một trong hai chức năng đó. Casử dụng này liên quan đến cả người bán hàng và khách hàng.
2. Thanh toán, trả tiền mua hàng hay thu tiền (Refund Items, Cash Out): là chức năng mà hệ thống phải thực hiện để thanh toán với khách hàng bằng phương thức mà họ lựa chọn: trả tiền mặt, thẻ tín dụng, hay trả bằng séc. Ca sử dụng này cũng liên quan đến cả người bán hàng và khách hàng.
3. Đăng nhập hệ thống (Log In): Người bán hàng cần sử dụng để nhập vào hệ thống và sử dụng nó để bán hàng.
4. Khởi động (Start Up), Đóng hệ thống (Shut Down): Người quản lý thực hiện để khởi động hay kết thúc hoạt động của hệ thống.
5. Bổ sung NSD mới (Add New Users), Loại bỏ NSD (Remove User): Người quản trị hệ thống có thể bổ sung thêm người sử dụng mới hay loại bỏ những NSD không còn cần sử dụng hệ thống.
Sau khi xác định được các tác nhân và các ca sử dụng thì phải đặt lại tên cho chúng. Tên của các tác nhân và ca sử dụng phải đơn giản, rõ nghĩa và phù hợp với lĩnh vực của bài toán ứng dụng.
- Tên của tác nhân phải là danh từ chung và biểu hiện được vai trò của nó trong các mối quan hệ với hệ thống.
- Tên của ca sử dụng phải bắt đầu bằng động từ, là mệnh đề đơn, ngắn gọn và mô tả đúng nhiệm vụ mà hệ thống cần thực hiện.
Tóm lại, danh sách các tác nhân và ca sử dụng trong hệ HBH được xác định như sau:
Tác nhân | Ca sử dụng |
Người bán hàng (Cashier) | Đăng nhập hệ thống (Log In)Thu tiền bán hàng (Cash Out) |
Khách hàng (Customer) | Mua hàng (Buy Items)Thu tiền, thanh toán (Refund Items) |
Người quản lý (Manager) Hay gian hàng trưởng | Khởi động hệ thống (Start Up) để ngườibán hàng có thể sử dụng để bán hàng.Đóng hệ thống khi hết giờ (Shut Down) |
Quản trị hệ thống(System Adminitrator) | Bổ sung NSD (Add New Users) Loại bỏ NSD (Delete User) |
Để hiểu rõ hơn về tiến trình xử lý các yêu cầu của hệ thống, ta nên xây dựng các đặc tả cho các ca sử dụng.
Mẫu (Format) đặc tả ca sử dụng có dạng:
Ca sử dụng: Tên của ca sử dụng bắt đầu bằng động từ.
Các tác nhân: Danh sách các tác nhân liên quan đến ca sử dụng, chỉ rõ ai bắt đầu với ca sử dụng này.
Mô tả: Mô tả tóm tắt tiến trình xử lý công việc cần thực hiện.
Tham chiếu: Các chức năng, ca sử dụng và những hệ thống liên quan.
Đặc tả một số ca sử dụng trong HBH
1. Ca sử dụng: Mua hay bán hàng
Tác nhân: Khách hàng, người bán hàng
Mô tả: Khách hàng sau khi đã chọn đủ các mặt hàng cần mua để ở trong giỏ hàng thì đưa hàng đến quầy thu tiền. Người bán hàng lần lượt ghi nhận các mặt hàng trong giỏ hàng của khách và thu tiền. Sau khi thanh toán xong khách hàng được mang số hàng đã mua đi ra khỏi cửa hàng.
Tham chiếu tới: Các chức năng R1.1, R1.2,2 R1.3, R1.6, R1.7, R1.8, R2.1, R2.2, R2.3.
2. Ca sử dụng : Thanh toán
Tác nhân: Khách hàng, người bán hàng.
Mô tả: Khách hàng có thể trả tiền theo 3 phương thức:
1. Trả tiền mặt
2. Trả bằng thẻ tín dụng
3. Trả bằng séc
Người bán nhận tiền mặt, thẻ tín dụng, tiền séc rồi thanh toán tiền thừa cho khách hàng sau khi thẻ tín dụng, séc đã được kiểm duyệt.
Tham chiếu tới: Các chức năng R1.1, R1.2,2 R1.3, R1.9, R2.1, R2.2, R2.3. Tương tự mô tả tiếp các ca sử dụng còn lại.
Như trong đặc tả ca sử dụng “Thanh toán” ta thấy nó lại được phân làm ba trường hợp: Thanh toán tiền mặt, Thanh toán bằng thẻ tín dụng và Thanh toán bằng séc. Do đó, để hiểu rõ hơn các hoạt động của hệ thống chúng ta có thể bổ sung thêm ba ca sử dụng mới: Thanh toán tiền mặt, Thanh toán bằng thẻ tín dụng và Thanh toán bằng séc. Để thanh toán được bằng thẻ tín dụng và bằng séc thì thẻ tín dụng, séc phải được kiểm duyệt bởi các tác nhân:
+ Bộ phận kiểm duyệt thẻ tín dụng: giúp hệ thống kiểm tra thẻ tín dụng.
+ Bộ phận kiểm duyệt : giúp hệ thống kiểm tra séc.
Ngoài những đặc tả nêu trên, ta còn có thể xây dựng các kịch bản hành động để mô tả các sự kiện xảy ra trong hệ thống. Mỗi kịch bản có thể mô tả theo hai luồng: luồng thực hiện của các tác nhân và luồng tương ứng với hệ thống.
Đối với ca sử dụng “Bán hàng” có kịch bản (luồng công việc chính) thực hiện như sau:
Sau đây chúng ta xét tiếp kịch bản con Thanh toán tiền mặt của ca sử dụng Thanh toán.
Kịch bản con “Thanh toán bằng thẻ tín dụng”