Professional Documents
Culture Documents
2.1 Mở đầu
Sự thiếu hiểu biết giữa khách hàng và nhà thiết kế hệ thông tin thường dẫn đến định nghĩa
không chính xác yêu cầu của khách hàng. Sự khác nhau giữa mô hình bài toán và lời giải, cũng
như sự biến đổi giữa chúng thường là nguyên nhân dẫn đến những sai sót trong lúc giải thích vấn
đề. Những sai sót thường gặp đó là: hoàn toàn không hiểu yêu cầu của khách hàng hoặc hiểu
không đến nơi đến chốn các yêu cầu đó. Phương pháp phổ biến để giải quyết vấn đề này đó là
mô hình hóa các trường hợp sử dụng (mô hình use-case), nhờ nó chúng ta có thể xác định được
chức năng của hệ một cách đơn giản, dễ hiểu hơn đối với những người tham gia thiết kế.
Phương pháp này cho phép xây dựng một ngôn ngữ để có thể trao đổi thông tin giữa các bên.
Sự đơn giản của mô hình use-case là nguyên nhân chính dẫn đến việc sử dụng nó không chỉ làm
cơ sở để ký hợp đồng giữa khách hàng và nhóm thiết kế mà còn là cơ sở cho cả quá trình tạo nên
sản phẩm (ví dụ. Rational Unified Process là quá trình được tạo nên từ mô hình use-case).
Các khái niệm cơ bản sử dụng trong mô hình use-case sẽ được giới thiệu ở phần một. Sau đó
chúng ta sẽ nghiên cứu các tác nhân (actor), mối liên hệ giữa các use-case và mối liên hệ giữa
các tác nhân. Cuối cùng bốn bước liên tiếp trong quá trình xây dựng mô hình use-case sẽ được
trình bày.
Tác nhân Người (hoặc vật nào đó) không phải là hệ có (1) Dạng chuẩn:
(actor) ảnh hưởng qua lại với hệ.
Insurance
Vậy khách hàng được coi là tác nhân hoặc system
không phải là tác nhân đối với hệ, điều đó
phụ thuộc vào mức độ trừu tượng. Nói chung
khách hang không có quyền sử dụng trực
tiếp các chức năng của hệ được coi là các tác (2) chỉ tác nhân mô hình
nhân thương mại, không phải là tác nhân con theo thời gian:
trong mô hình use-case.
The 1st day of a
year
Tương tác Để đánh dấu tương tác qua lại giữa tác nhân (1)
qua lại giữa và use-case người ta sử dụng đường liền (1).
tác nhân và Để xác định hướng di chuyển sự kiện người
use-case. ta sử dụng đường liền có hướng (2); grot chỉ
thực thể (tác nhân hoặc use-case), gây nên sự
kiện. Tương tác ký hiệu bằng dấu (3), đó là (2)
tương tác tương đương (1), không sử dụng.
(3)
Khối sử dụng Biểu diễn đoạn hệ thống, được sử dụng bởi
lại vài use-case. Khối sử dụng lại có thể là một
use-case riêng biệt, cho phép
Khái niệm Client
này không Đánh dấu tương tác có thể tác nhân với use-
nằm trong authorization
case. Tương tác của tác nhân với khối sử
chuần UML, dụng lại trong ý nghĩa thông thường (như là
mặc dù nó có chức năng phụ cho các use-case khác và nó
ích cho sự mô không sử dụng được bởi các thực thể ở ngoài
tả chức năng hệ (ký hiệu trên biểu đồ bằng hình chữ nhật,
phụ, đặc biệt không phải hình elip)), bị nghiêm cấm.
quá trình xác
định cấu trúc
của hệ thiết
kế.
Get general
Concrete guest Informed person
information
Hình 1. Biểu diễn sự khác nhau giữa khái niệm tác nhân và người sử dụng hệ.
Tên use-case
Tác nhân
...
Sơ đồ trên trông rõ ràng nhưng khó có thể tưởng tượng là nó có thể mô tả các trường hợp khó, ví
dụ các trường hợp với nhiều mạch xen kẽ (alternative thread). Mỗi kịch bản phụ để tránh sự
không rõ ràng, nhiều nghĩa, cần phải định nghĩa đầy đủ cả quá trình, điều đó có thể dẫn đến sự
lặp lại nhiều đoạn kịch bản. Ngoài ra trong cách ghi này, khó có thể tìm ra các luồng chảy con,
cần thiết trong các bước tiếp theo để có thể gộp chúng thành khối sử dụng lại. Tồn tại cách khác
tốt hơn, đó là chia riêng hai phần:
• Luồng sự kiện chính và
• Luồng sự kiện có thể xuất hiện xen kẽ
Trong lúc xác định hai loại mạch này chúng ta có thể đánh dấu các chuỗi tương tác bằng các số
tự nhiên liên tiếp, bằng cách đó có thể phát hiện ra các đoạn kịch bản bị nhắc lại. Các luồng sự
kiện con nên được coi như là các nhóm chức năng trong ngôn ngữ lập trình, có nghĩa là khi trở
về từ luồng sụ kiện con lệnh thực hiện tiếp theo sẽ là lệnh xuất hiện sau lệnh vừa gọi luồng sự
kiện đó.
«include»
P1 P2
Sơ đồ trên hình 4 biểu diễn use-case sai mối quan hệ „extend” nối hai trường hợp „Nộp đơn đặt
hàng” và „Thực hiện đơn đặt hàng” , giả sử rằng hai use-case này không thể thực hiện trong
cùng một tiến trình. Giới hạn không cho phép nối các trường hợp không thể xuất hiện trong cùng
một tiến trình liên quan đến cả hai loại quan hệ.
Place an order
«extend»
Client
Supplier
Process an order
Trên hình 5 chúng ta có ví dụ sơ đồ chứa các điểm mở rộng. Trong sơ đồ này chúng ta có thể
định nghĩa các điều kiện khi sử dụng trường hợp mở rộng.
Car repair
extension points:
Car is out of repair shop
Car needs review
extension point:
«extend» Car needs review
«extend»
extension point:
Car is out of Car review
repair shop
extension points:
Car is dirty
Car towing
«extend»
extension point:
Car wash Car is dirty
Khái quát hóa – chi tiết hóa dựa trên cơ sở tìm ra các yếu tố giống nhau trong các use-case. Nó
dùng để thiết kế tối ưu các luồng sự kiện. Mối quan hệ này là phương tiện để có thể đơn giản hóa
mô hình xương sống và các trường hợp ứng dụng. mối quan hệ khái quát hóa – chi tiết hóa định
nghĩa cho khái niệm tác nhân sẽ được trình bày cụ thể ở chương sau.
Refill
comodity
Create report
Controler
«include»
Account’s balance Client’s card
information and code
verification
Client
System
administrator
Hình 7. Sơ đồ use-case cho máy thực hiện các lệnh của ngân hàng.
Deposit money
?
Hình 8. Sơ đồ ví dụ use-case.
Trường hợp khách hàng tự rút tiền đã được giải quyết. Tuy vậy trường hợp khách hàng tự trả
tiền vẫn còn là vấn đề mở. Giả sử rằng khách hàng không có quyền sử dụng chức năng liên quan
đến việc trả tiền. Cần phải định nghĩa một tác nhân mới, ví dụ thủ quỹ. Trên sơ đồ ở hình 9, tác
nhân thủ quỹ được ghi thêm như là một nguyên tố phát triển mô hình.
Deposit money
Cashier
ud Bank system
Deposit
money
Withdraw Cashier
money
Management
Take a loan
Hình 6. Mô hình được phát triển thêm các tác nhân mới, các use-case kế tiếp, sơ đồ đóng khung
cùng tên gọi của nó.
Sơ đồ có thề tiếp tục mở rộng bằng cách cho thêm các tác nhân mới, các use-case mới, khối sử
dụng lại hoặc các mối quan hệ giữa các use-case cũng như giữa use-case và khối sử dụng lại
(Hình 10 và 11). Ngoài ra có thể có thể đóng khung sơ đồ và đặt tên cho hệ.
ud Bank system
Deposit
money Cashier
«include»
Withdraw
money
«extend»
«include»
Update account
balance
Bank
client Check account
balance
Take a loan
Management
Hình 7. Mô hình được mở rộng thêm khối sử dụng lại và mối quan hệ giữa các use-case.
«include»
«include»
Execute
program
Programmer User
Print file
Hình 8 Sơ đồ ví dụ use-case.
«extend»
Edit
program Compile
program
«extend»
Execute
program
Programmer User
Print file
1 Establish glossary
Notion glossary
2 Determine actors
Hình 10. Các bước kế tiếp trong xây dựng mô hình truường hợp.
Nhóm khách hàng nào cần sự dụng sự giúp đỡ của hệ (ví dụ: người gửi thư, người nộp đơn đặt
hàng,...)?
Những đối tượng nào sẽ cần thiết cho hệ trong lúc hoạt động và thực hiện các nhiệm vụ của
mình (ví dụ người điều hành mạng)
Hệ phải sử dụng các yếu tố bên ngoài nào (ví dụ các hệ khác, phần tử nhạy, mạng,...) để có thể
thực hiện nhiệm vụ của mình?
Xác định tác nhân phải đi cùng với xác định với phạm vi trách nhiệm của hệ, có nghĩa là nhất
thiết phải xác định danh giới của hệ, tức là loại bỏ các miền vấn đề con, mà hệ không phục vụ.
Các tác nhân tiềm tàng cần được biểu diễn bằng hình ảnh sử dụng sơ đồ như trên hình 15.
Database
management
subsystem
«system»
System
Bank operations
administrator
machine
Client
Hình 11. Sơ đồ ngữ cảnh của máy thực hiện các lệnh của ngân hàng.
Sau đó trong bước kế tiếp cần xác định:
• Tên của từng tác nhân;
• Phạm vi ý nghĩa của từng tác nhân và mối quan hệ giữa các tác nhân, ví dụ: thư kí và nhân
viên quản lí, nhân viên quản lí và một nhân viên bất kỳ, nhân viên và một người bất kỳ.
Để cố thể làm đơn giản cấu trúc của sơ đồ và tăng sự mạch lạc (bằng cach giảm số lương
tương tác của tác nhân và use-case, từ đó dẫn đến giảm bớt số đường cắt trên sơ đồ), cần
phải xác định cấp bậc thừa kế của tác nhân đối với việc sử dụng hệ, tức là xây dựng cấu
trúc khái quát hóa- chi tiết hóa cho tác nhân. Ví dụ, trên Hình 16 tác nhân nhân viên quản
lí được thừa hưởng quyền dùng các use-case định nghĩa cho tác nhân nhân viên và có thể
sử dụng mọi use-case của chính bản thân mình. Trong hình 17 cấu trúc thừa hưởng của các
tác nhân được sử dụng với mục đích làm giảm số đường nối chỉ tương tác giữa các tác
nhân trong hệ.
Person
inheritance
symbol
Employee Guest
Accountant Administrative
worker
Hình 12. Ví dụ cấu trúc thừa hưởng của các tác nhân
Database
management Client’s account
subsystem service
«include»
«include»
Account’s balance Client’s card
information and code
verification
Client
Client’s card «include»
initialization
System
administrator
Hình 13. Sơ đồ máy thực hiện các lệnh ở ngân hàng, sử dụng cấu trúc thừa hưởng của các tác
nhân
• Đối với mỗi tác nhân cần xác định nhiệm vụ, cần phải thực hiện với mục đích bổ trợ hoạt
động trong miền vấn đề cũng như hoạt động của hệ.
• Trong bước đầu tiên càn xác định “nhiệm vụ chính”, tức là các nhiệm vụ có ý nghĩa
chính cho việc hợp tác với hệ (đó là các sử dụng chuẩn). Bỏ qua các hành động đặc biệt,
bổ sung hoặc không bắt buộc
• Nhóm các nhiệm vụ có mục đích giống nhau thành một use-case, Bằng cách đó có thể
trách chia một use-case ra thành nhiều trường hợp con (nhất là trong các bước đầu tiên
xây dựng mô hình)
• Phân tích lại các use-case đã đặt ra (một số trường hợp có thể là trường hợp con của các
use-case khác), cũng như mối lien hệ giữ tác nhân và use-case. Xác đinh cái gggì có thể
thừa, cái gì có thể khái quát hóa.
• Xác định mối quan hệ qua lại giữa các use-case. Đối với mỗi loại quan hệ, xác định đó là
quan heeệ loại gì: cơ bản hay không bắt buộc?
• Bổ sung thêm các trường hợp phụ, đặc biệt, các trường hợp bổ sung, hoặc không bắt
buộc.
• Diễn tả use-case bằng ngôn ngữ tự nhiên, sử dụng cac thuật ngữ được định nghĩa ở trong
từ điển khái niệm. Cơ sở cho nhận định: mô hình đã đủ chi tiết chưa chính là câu trả lời
cho câu hỏi: tất cả nhóm thiết kế có hiểu nội dung của use-case không? Tài liệu mô tả nó
đã đủ cụ thể cho nhà thiết kế và người kiểm tra chương trình chưa?
• Chia mỗi use-case ra thành các khối, sao cho mỗi khối không quá tổng quát cũng không
quá cụ thể.
• Nghiên cứu các trường hợp đã đựoc định nghĩa dưới khía cạnh tách riêng các khối sử
dụng lại. Phân tích sự giống nhau về tên gọi của use-case cũng như sự giống nhau về tên
gọi và cách xử sự của các khối xuất hiện trong định nghĩa của nó. Sự tách khối sử dụng
lại có thể gắn liền với việc xác định các nhiệm vụ chính hoặc cho thêm các tính chất mới
cho các nhiệm vụ đã tồn tại.
Tên cho các use-case cần phải ngắn gọn, nhưng đồng thời phải xác định được đặc
điểm của bài toán. Các tên này phải thể hiện các hoạt động từ khía cạnh tác nhân, ví dụ:
”trả tiền” chứ không phải “nhận tiền từ khách hàng”.
Bảng 2 chứa bản mẫu để thiết lập tài liệu cho use-case. Bảng 4 mô tả use-case „Hãy cho mượn
đĩa” được đingh nghĩa cho hệ thống phục vụ cửa hàng mượn đĩa DVD (văn bản các yêu cầu
được ghi ở mục 2.12).
Tác nhân Danh sách các tác nhân có liên quan đến use-case
Điều kiện bắt đầu Thông tin: cái gì cần phải thực hiện trước đó để hệ có thể thực hiện
use-case đang xét.
Điều kiện kết thúc Các điều kiện sau khi thực hiện use-case
Các đòi hỏi không Vd. Thời gian cho phép cho một câu hỏi, tôc độ giao dịch, itd.
chức năng
Số id 7
Dạng Cụ thể
Mô tả Use-case liên quan đến việc ghi chép các giao dịch mượn đĩa; nếu
đĩa dành cho người lớn thì chỉ người trên 18 tuổi co quyền được
mượn; một người có thể mượn nhiều nhất 5 đĩa; không được cho
mượn, nếu người đó đang ở trong thời gian „treo tài khoản”.
Điều kiện bắt đầu Người mượn phải có đăng ký là khách hàng của cửa hàng.
Điều kiện kết thúc Nếu các điều kiện mượn đĩa được thỏa mãn, thì các thông tin về
giao dịch phải được ghi lại: ai mượn, mượn gì và mượn khi nào.
Luồng sự kiện chính 1.Nhân viên cửa hàng khởi động use-case hãy cho mượn đĩa
2.Hệ yêu cầu đưa tên, họ người cho mượn đĩa. Nhân viên đưa các
thông tin cần thiết.
3.Hệ hỏi tên phim. Nhân viên đưa tên.
4.Hệ ghi lại thông tin về giao dịch mượn đĩa phim (ai mượn, đĩa
gì, ngày tháng mượn).
Luồng sự kiện không 2a Nếu người cho mượn không có quyên cho mượn (không có
bắt buộc đăng ký trong hệ) hệ sẽ thong báo với tác nhân và kết thúc use-
case.
2b. Nếu có nhiều hơn một người có quyền cho mượn đĩa, hệ sẽ
đưa ra danh sách. Nhân viên sẽ chọn một người từ danh sách đó.
3a Nếu không có phim yêu cầu ở trong cửa hàng hoặc tất cả các
phim đó đã được mượn, hệ sẽ tang báo với tác nhân và kết thúc
use-case.
3b Nếu phim dành cho người lớn, người mượn nhỏ hơn 18 tuổi,
hệ thông báo điều đó với tác nhân và kết thúc use-case.
3c Nếu khách hàng đã mượn nhiều hơn 5 đĩa, hệ thông báo với tác
nhân và kết thúc use-case.
3d Nếu khách hàng đang ở trong thời kỳ treo tài khoản, hệ thông
báo với tác nhân và kết thúc use-case.
Bảng 3 Tài liệu mô tả use-case Hãy cho mượn đĩa của hệ phục vụ của hàng cho mượn đĩa DVD.
1) Cần phải ghi lại thông tin về khách hàng và luật sư: tên (không vượt quá hai tên), họ, tên
thời con gái, địa chỉ và số điện thoại.
2) Đối với nhân viên, cần phải ghi lại thông tin về số năm công tác trong nghề.
3) Đối với các sự việc mà văn phòng giải quyết cần ghi lại thông tin như: ngày bắt đầu và
ngày kết thúc, sự việc liên quan đến vấn đề gì, sự việc có kết thúc tốt đẹp không, thông
tin về khách hàng và các luật sư tham gia giải quyết sự việc.
4) Cần phải ghi lại tất cả các ngày tháng và các phiên tòa liên quan đến sự việc. Trong sự
kiện mỗi phiên tòa phải có số riêng, không được trùng lặp.
5) Luật sư có thể bị thải việc trong lúc giải quyết vụ việc, cần phải ghi lại từ khi nào đến khi
nào luật sư tham gia giải quyết sự việc.
6) Trong một thời điểm luật sư chỉ có thể được chia một sự việc.
7) Cần phải chú ý rằng, luật sư cũng có thể là khách hàng của văn phòng, nhưng lúc đó
không được tham gia giải quyết sự việc mà người đó yêu cầu.
8) Sự việc có thể bị hủy bất cứ thời điểm nào; thông tin về các sự việc bị hủy không cần ghi
lại.
9) Thông tin về các sự việc phải lưu trữ trong hệ 10 năm sau khi sự việc kết thúc.
10) Hệ thông sẽ giúp văn phòng trong các công việc sau đây:
• Xác định danh sách các sự việc đã kết thúc thắng lợi trong thời gian đã cho.
ud Law office
Register trial
«include»
Check if the lawyer is
Law office currently available
manager
Dismiss lawyer from the case
Cancel case
10 years after
closing the case
Delete case
• Hiểu rõ hơn các khả năng sử dụng hệ, điều đó giúp cho người sử dụng, cũng như nhà
phân tích và các nhà thiết kế thể hiểu rõ hơn mục đích và chức năng của hệ thống;
• Sự thong tin giữa các thành viên liên quan đến hệ thống (đại diện khách hàng, người sử
dụng hệ, thiết kế viên ) được rõ ràng, mạch lạc hơn;
• Xác định quyền sử dụng các dữ liệu của hệ (dựa trên tương tác giữa tác nhân và use-
case);
• Xác định một cách sơ lược cấu trúc của hệ, nhờ đó có thể xác định thành phần của hệ, từ
đó kế hoạch xây dựng hệ;
• Cơ sở để đánh giá thời gian và phí tổn để thực hiện đề tài;
• Kiểm tra sự chính xác của các kết quả (trung gian) được tạo nên trong quá trình xây
dựng hệ;
Hình 15 cho thấy sự ảnh hường của mô hình use-case đến mô hình phân tích cũng như mô hình
miền vấn đề và ngược lại, có nghĩa là sự ảnh hường của mô hình miền vấn đề đến mô hình ứng
dụng và mô hình phân tích. Mô hình phân tích nói chung thường vượt ra ngoài phạm vi nhiệm
vụ của hệ thống, nó bao gồm cả các hoạt động chung với hệ bên ngoài.
Experts
Domain
experience Domain
model
Analytical
Use cases model of
system
Users
strong influence
weak influence
Hình 15 Biểu diễn mối quan hệ qua lại giữ các nhân tố cốt yếu của quá trình xây dựng hệ thông
tin.
• Với mỗi tác nhân hãy tìm use-case (không đi vào các chi tiết cụ thể của mỗi
use-case);
• Hãy xây dựng sơ đồ use-case dựa vào các tác nhân và các use-case được định
nghĩa;
• Hãy xây dựng cấu trúc các use-case dựa trên quan hệ giữa chúng: include và
extend;
• Hãy xây dựng cấu trúc đẳng cấp của các tác nhân;
• Hãy thay đổi sơ đồ dựa trên quan hệ giữa các tác nhân của hệ;
• Thay đổi cho phù hợp với hiện thực từ điển khái niệm;
2. Hãy thực hiện các bài tập sau đây cho một vài use-case (vd. use-case liên quan đến giao
dịch trả đĩa):
• Xây dựng kịch bản;
• Xác định khối sử dụng lại;
• Xây dựng sơ đồ use-case, đối với mỗi use-case cần chú ý các kết luận suy ra từ phân tích
kịch bản và các khối sử dụng lại;
• Hãy thay đổi văn bản mô tả use-case;
• Thay đổi cho phù hợp với hiện thực từ điển khái niệm.
1. Hệ thống có nhiệm vụ lưu trữ các thông tin về khách hàng (tên, tuổi, địa chỉ, sổ điện thoại).
Khách hàng chỉ có thể là những người đẫ kết thúc 16 tuổi.
2. Hệ thống có nhiệm vụ lưu trữ các thông tin về nhân viên (tên, tuổi, ngày tháng năm sinh,
nơi sinh, địa chỉ, sổ điẹn thoại, ngày nhận việc, mức lương). Không được nhận nhân viên
chưa thành niên. Nhân viên cửa hàng có thể đồng thời là khách hàng, lúc đó mọi nguyên tắc
sử dụng cho nhân viên đó cũng giống như một khách hàng bình thường.
3. Hệ thống có nhiệm vụ lưu trữ các thông tin về phim và đĩa DVD của cửa hàng.
4. Thông tin về phim bao gồm: tên phim, ngày sản xuất, phim dài bao nhiêu phút, các diễn viên
chính và số tiền phải trả khi mượn phim. Phim dành cho người lớn chỉ có thể cho người đã
kết thúc 18 tuổi mượn.
5. Cùng một phim có thể có nhiều đĩa. Trên một đĩa chỉ có thể có một phim. Hủy một phim có
nghĩa là hủy tất cả các đĩa có chứa phim đó.
6. Thông tin về giao dịch mượn đĩa bao gồm: ngày mượn, ngày trả và tiền số phải trả khi mượn
phim. Khách hàng phải trả tiền ngay khi mượn phim. Khách hàng có thể quyết định ngày trả
đĩa, các đĩa khác nhau có thể có ngày trả khác nhau.
7. Mỗi lần mượn có thể mượn vài đĩa nhưng không được vượt quá 3 đĩa.
8. Khách hàng có thể giữ nhiều nhất 5 đĩa trong một thời điểm.
9. Trong trường hợp giữ đĩa quá lâu, số tiền phải trả cho một ngày giữ đĩa sẽ tăng theo một
phần trăm nào đó so với giá tiêu chuẩn. Phần trăm đó sẽ tăng dần theo số ngày quá hạn,
nhưng không được vượt quá 100% số tiền qui định.
10. Người mượn bị 3 lần quá hạn sẽ mất quyền mượn đĩa; thời gian „mất quyền sử dụng” kéo dài
một năm.
11. Hàng ngày phải viết tường trình về các sự kiện xảy ra ở cửa hàng: số lượng đĩa được mượn,
số lượng đĩa được trả, số lượng đĩa hiện đang được mượn và số tiền thu được.
12. Thỉnh thoảng viết tường trình kết về hoạt động của cửa hàng trong một thời gian nào đó (các
khoảng thời gian có thể giao nhau), chứa các thông tin về các đĩa thường hay được mượn và
các diễn viên nổi tiếng.
13. Với mỗi bản tường trình, cần ghi lại ngày ghi chép.
14. Các bản tường trình phải được sắp xếp theo thời gian.