Mô hình hoá use case tự động hoá• Mục tiêu • Xác định tác nhân hệ thống • Xác định use case • Tinh chế và nâng cấp sơ đồ use case • Mô tả use case • Phân chia sơ đồ use case thành các gó
Trang 1PHÂN TÍCH VÀ THIẾT KẾ HỆ
THỐNG DÙNG UML
GV: Nguyễn Văn Phong
Trang 2Mô hình hoá use case tự động hoá
• Mục tiêu
• Xác định tác nhân hệ thống
• Xác định use case
• Tinh chế và nâng cấp sơ đồ use case
• Mô tả use case
• Phân chia sơ đồ use case thành các gói (package)
Trang 3• Xác định được các use case biểu diễn chức năng
phần mềm hệ thống và mối quan hệ giữa tác nhân và use case nhằm xây dựng sơ đồ use case mô tả yêu
cầu phần mềm hệ thống
• Tinh chế sơ đồ use case nhằm làm gia tăng tính diễn đạt, tính tái sử dụng qua việc sử dụng các liên kết
<<extend>>, <<include>>
Trang 4Xác định tác nhân hệ thống
• Xác định tác nhân (actor)
– Tác nhân được hiểu là một vai trò tham gia vào hệ thống không giống như một con người cụ thể hoặc một công việc
– Một số câu hỏi gợi ý xác định tác nhân:
• Tác nhân chính (primary actor) : Ai đang sử dụng hệ thống? Hoặc ai được tác động bởi hệ thống? Hoặc nhóm đối tượng nào cần hệ thống trợ giúp để làm công việc?
Trang 5Xác định tác nhân hệ thống
• Xác định tác nhân (actor)
– Một số câu hỏi gợi ý xác định tác nhân:
• Tác nhân hỗ trợ (secondary actor) : những nhóm đối tượng nào hệ thống cần để thực hiện hoạt động của nó (vd: quản trị, dọn dẹp,…)
• Những phần cứng hoặc hệ thống bên ngoài nào sử dụng hệ thống?
Nhân viên
vận hành
Trong hệ thống ATM
Quản trị hệ thống
Trong hệ thư viện
Bán hàng
Trang 6Xác định tác nhân hệ thống
• Xác định tác nhân (actor)
– Xác định tác nhân từ kết quả của mô hình hoá nghiệp vụ
• Ví dụ: trong hệ thống thư viện
Tên use case có thể thay đổi để phù hợp với tác nhân mới
Tên use case có thể thay đổi để phù hợp với tác nhân mới
Trang 7Xác định tác nhân hệ thống
• Xác định tác nhân (actor)
– Xác định tác nhân từ kết quả của mô hình hoá nghiệp vụ
• Ví dụ: trong hệ thống thư viện
Đọc giả
Tra cứu sách
Đọc giả
Tra cứu sách
Trang 8Xác định use case
• Xác định use case thông qua tác nhân
– Tìm các nhiệm vụ và chức năng mà tác nhân sẽ thi hành hoặc hệ thống cần tác nhân để thi hành và mô hình hoá nó như là use case
Khởi động hệ thống
Đóng hệ thống
Trang 9Xác định use case
• Xác định use case thông qua tác nhân
– Tìm các nhiệm vụ và chức năng mà tác nhân sẽ thi hành hoặc hệ thống cần tác nhân để thi hành và mô hình hoá nó như là use case
Trang 10Thủ thư Nhà cung cấp
Trang 11Xác định use case
• Xác định use case thông qua tác nhân
– Đặt tên use case: tên use case nên đặt nhằm phản ánh một mô tả tổng quan về chức năng của use case
• Tên use case = động từ (do) + danh từ (what)
Trang 12Tinh chế và nâng cấp sơ đồ use case
• Bổ sung các use case mô tả chức năng đặc trưng phần mềm:
– Các use case quản trị hệ thống:
• Quản trị người dùng
• Quản trị thông số hệ thống
– Các use case quản trị dữ liệu
• Quản trị danh mục dữ liệu
• Quản trị an toàn (backup/restore)
– …
Trang 13Tinh chế và nâng cấp sơ đồ use case
• Bổ sung các use case mô tả chức năng đặc trưng phần mềm:
Đăng nhập
Đăng xuất
Quản trị người dùng
Quản trị nhà cung cấp
Trang 14Tinh chế và nâng cấp sơ đồ use case
• Bổ sung các use case mô tả chức năng đặc trưng phần mềm:
Khởi động hệ thống
Đóng hệ thống
Trang 15Tinh chế và nâng cấp sơ đồ use case
• Tinh chế use case
– Phát triển các liên kết <<extend>>:
• tách những dòng xử lý đặc biệt use case mở rộng
<<extend>>
Xử lý từ chối mượn sách
<<extend>>
Trang 16Tinh chế và nâng cấp sơ đồ use case
• Tinh chế use case
– Phát triển các liên kết <<extend>>:
• Tổng quát hoá các use case có dòng xử lý chung use case tổng quát
Rút tiền Gửi tiền
Truy vấn thông tin tài khoản
Giao dịch
<<extend>>
<<extend>>
<<extend>>
Trang 17Tinh chế và nâng cấp sơ đồ use case
• Tinh chế use case
– Phát triển các liên kết <<include>>:
Trang 18Tinh chế và nâng cấp sơ đồ use case
• Sơ đồ use case của hệ thống ATM
Giao dịch
Rút tiền Gửi tiền
Trang 19Tinh chế và nâng cấp sơ đồ use case
• Sơ đồ use case của hệ thống thư viện
Xử lý từ chối mượn sách
<<extend>> <<extend>>
Đăng nhập
Đăng xuất
Quản trị người dùng
Quản trị nhà cung cấp
Trang 20Chương 6 - Mô hình hoá use case tự động
hoá
• Mục tiêu
• Xác định tác nhân hệ thống
• Xác định use case
• Tinh chế và nâng cấp sơ đồ use case
Mô tả use case
• Phân chia sơ đồ use case thành các gói (package)
Trang 21Mô tả use case
Tóm tắt: tóm tắt nội dung hoạt động của use case
Dòng sự kiện chính: các sự kiện và hoạt động xảy ra bình thường của use case
Dòng sự kiện phụ: các sự kiện và những hoạt động bất thường của use case ngoài những hoạt động chính
Tiền điều kiện (pre-condition): mô tả trạng thái của hệ thống phải đạt được để use case có thể bắt đầu
Hậu điều kiện (post-condition): liệt kê các trạng thái
có thể của hệ thống tại cuối use case Hệ thống phải
thuộc một trong những trạng thái đó khi use case kết thúc
Trang 22Mô tả use case
• Ví dụ: mô tả use case Giao dịch
Tóm tắt: use case bắt đầu khi có khách hàng đưa thẻ vào máy ATM
Hệ thống sẽ cho phép khách hàng thực hiện các giao dịch
Dòng sự kiện chính:
1. Xác nhận thẻ và kiểm tra đăng nhập của khách hàng (thực hiện
bởi use case đăng nhập)
2. Hiển thị giao diện thực đơn yêu cầu khách hàng chọn dịch vụ
thực hiện
3. Khách hàng chọn dịch vụ thực hiện
4. Thi hành dịch vụ tương ứng khi khách hàng chọn (rút tiền, gửi
tiền, xem thông tin tài khoản: được mô tả trong từng use case tương ứng)
5. Đóng giao diện thực đơn và thông báo khách hàng rút thẻ
Trang 23Mô tả use case
• Ví dụ: mô tả use case Giao dịch
Dòng sự kiện phụ:
1. Xử lý thẻ không hợp lệ và đăng nhập không thành công
Tiền điều kiện:
1. ATM phải thông kết nối với mạng ngân hàng
2. ATM phải có đủ giấy để in hoá đơn
Hậu điều kiện:
1. ATM phải ở trạng thái sẵn sàng cho một khách hàng mới
Trang 24Mô tả use case
• Ví dụ: mô tả use case Rút tiền
Tóm tắt: use case bắt đầu khi khách hàng chọn thực hiện rút tiền từ
thực đơn chính Hệ thống sẽ xử lý yêu cầu rút tiền của khách hàng
Dóng sự kiện chính:
1. Yêu cầu xác định tài khoản
2. Yêu cầu nhập số tiền cần rút
3. Khách hàng nhập số tiền
4. Kiểm tra số tiền nhập với số dư tài khoản
5. Chuyển tiền ra cho khách hàng
6. In hoá đơn rút tiền cho khách hàng
Trang 25Mô tả use case
• Ví dụ: mô tả use case Rút tiền
Dòng sự kiện phụ:
1. Nếu số tiền vượt quá số dư thì thông báo cho khách hàng điều
chỉnh hoặc huỷ bỏ giao dịch
Tiền điều kiện:
1. ATM phải có đủ tiền mặt trong máy
2. ATM phải có đủ giấy để in hoá đơn
Hậu điều kiện:
1. ATM phải ở trạng thái cho thực hiện một giao dịch mới
Trang 26Chương 6 - Mô hình hoá use case tự động
hoá
• Mục tiêu
• Xác định tác nhân hệ thống
• Xác định use case
• Tinh chế và nâng cấp sơ đồ use case
• Mô tả use case
Phân chia sơ đồ use case thành các gói (package)
Trang 27Phân chia sơ đồ use case thành gói
• Phân chia sơ đồ use case thành các gói nhằm:
– Thu hẹp tiêu kịch bản khi gặp các hệ thống lớn với sơ đồ use case
phức tạp
– Mỗi gói phản ánh một phạm vi của hệ thống mà chúng ta chỉ muốn quản lý nó khi chúng ta truy cập gói đó
Trang 28Phân chia sơ đồ use case thành gói
• Ví dụ: hệ thống ATM
• Hệ thống thư viện
Giao dịch
Trang 29Máy rút tiền ATM có các chức năng chính như sau:
Cấp phát tiền cho những ai có thẻ ngân hàng (cho phép rút một số lượng tiền bởi hệ thống thông tin của ngân
hàng) và những ai có thẻ VISA (cho phép từ xa bởi hệ
thống VISA)
Cho xem kiểm tra số tiến tài khoản và bỏ tiền vào tài
khoản bằng tiền mặt hoặc ngân phiếu đối với những ai có thẻ ngân hàng
Tất cả các giao tác đều được kiểm tra an toàn
Kiểm tra mã PIN
Mã PIN nhập sai 3 lần thì thẻ sẽ bị “nuốt”
Cần phải thường xuyên nạp tiền vào máy, lấy ngân phiếu và các thẻ bị nuốt ra
Xác định các tác nhân, các ca sử dụng và vẽ biểu đồ ca sử dụng
Bài tập 1
Trang 30Bài tập 1
• Các tác nhân
– Người có thẻ ngân hàng (bankcard)
– Người có thẻ VISA (VISAcard)
– Người vận hành máy (operator)
– Hệ thống VISA (VISA)
– Hệ thống thông tin ngân hàng (bank)
Trang 31Bài tập 1
• Các ca sử dụng
– Rút tiền với thẻ ngân hàng (withdraw by bankcard)
– Rút tiền với thẻ VISA (withdraw by VISAcard)
– Kiểm tra mã PIN (identify)
– Xem số tiền còn trong tài khoản (balance)
– Bỏ tiền vào tài khoản bằng ngân phiếu hoặc tiền mặt (deposit)
– Nạp tiền vào máy (put money)
– Lấy thẻ bị nuốt trong máy (get cards)
– Lấy ngân phiếu trong máy (get cheques)
Trang 32Bài tập 2
• Quản lý đào tạo nhân viên: Một công ty muốn mô tả bằng UML việc
đào tạo nhân viên để tin học hóa một số công việc Việc đào tạo được bắt đầu khi người quản lý đào tạo nhận được yêu cầu đào tạo của một nhân viên Nhân viên này có thể xem danh mục các chuyên đề đào tạo của các đơn vị đào tạo ký kết với công ty Yêu cầu của nhân viên được xem xét bởi người quản lý đào tạo và người quản lý sẽ trả lời là chấp nhận hay từ chối đề nghị đó Trong trường hợp chấp nhận, người quản
lý sẽ xác định chuyên đề phù hợp trong danh mục các chuyên đề, sau
đó gửi cho nhân viên nội dung của chuyên đề và danh sách các khóa đào tạo Nhân viên sẽ chọn khóa đào tạo và người quản lý sẽ đăng ký khóa học với đơn vị đào tạo cho nhân viên Trong trường hợp muốn hủy bỏ đăng ký khóa đào tạo, nhân viên phải thông báo sớm cho người quản lý biết để người quản lý thực hiện hủy bỏ Cuối khóa đào tạo, nhân viên chuyển phiếu đánh giá kết quả học về cho công ty Người quản lý sẽ kiểm tra hóa đơn thanh toán tiền của đơn vị đào tạo.
• Xây dựng biểu đồ ca sử dụng.
Trang 33Bài tập 3
cấp cơm hộp tại nhà Hiện tại các đơn đặt hàng được thực hiện bằng điện thoại đến các cửa hàng XXX Công ty chỉ có thể xử lý một số có giới hạn các đơn đặt hàng
và mỗi khách hàng phải biết rõ thực đơn cung cấp bởi cửa hàng mà họ liên lạc (có thể thay đổi tùy theo cửa hàng) Công ty XXX muốn tin học hóa tiến trình đặt
lý công ty
Trang 34Bài tập 3
• Ngược lại, đơn đặt hàng có thể thực hiện bất kỳ lúc nào qua internet Khách hàng cần phải có thẻ tín dụng Khi đặt hàng, khách hàng cần phải cung cấp thông tin: họ tên và địa chỉ giao hàng Một đơn đặt hàng có thể yêu cầu nhiều hộp cơm, loại hộp cơm khác nhau và số lượng từng loại hộp cơm Một khi đã đặt hàng, khách hàng có thể theo dõi đơn đặt hàng của mình Khi mà đơn đặt hàng chưa được xử lý thì
khách hàng có thể hủy đơn đặt hàng
• Các nhà hàng XXX mở cửa 24/24h Để bảo đảm phục vụ trên nhiều địa bàn và
24/24h, công ty hợp đồng nhiều nhân viên làm việc bán thời gian, chủ yếu là sinh viên Mỗi nhân viên được cấp một điện thoại di động để tiện liên lạc Khi cần báo rằng nhân viên đó rảnh rỗi, chỉ cần ấn nút trên điện thoại di động hoặc ngược lại
ấn một nút khác để thông báo nhân viên đó bận Người quản lý có thể xem trạng thái của toàn hệ thống thông qua Internet Người quản lý có thể giao nhiệm vụ cho nhân viên làm việc ở cửa hàng hoặc đi giao hàng Một nhân viên có thể thay đổi địa điểm làm việc hoặc vai trò (làm việc tại cửa hàng hay đi giao hàng) nhiều lần trong một ngày phụ thuộc vào các đơn đặt hàng
Trang 35Bài tập 3
• Khi đặt hàng, khách hàng không chỉ rỏ đặt ở cửa hàng nào, mà chính người quản lý
sẽ yêu cầu cửa hàng nào cung cấp và nhân viên nào giao hàng Mục đích là để
người quản lý để tối ưu thời gian, khoảng cách, hoạt động giữa các của hàng và các nhân viên Mỗi nhân viên giao hàng có phương tiện riêng để đi giao hàng Hơn
nữa, khi đi giao hàng nhân viên sẽ được cung cấp thiết bị chuyên dụng có tích hợp GPS, cho phép định vị chính xác thông qua kết nối vệ tinh Thiết bị có một màn hình cho phép nhân viên xem thông tin các đơn đặt hàng mà nhân viên đó cần thực
hiện giao hàng, tra bản đồ và định vị các cửa hàng và địa chỉ khách hàng Nhân viên giao hàng cũng sử dụng thiết bị này để thông báo khi nào anh ta thực hiện đơn đặt hàng nào và khi nào giao hàng cho khách hàng
• Trong mỗi cửa hàng có một nhân viên đóng vai trò điều phối viên Tại cửa hàng, chỉ
có điều phối viên là người duy nhất sử dụng phần mềm còn các nhân viên khác chuẩn bị các món ăn Điều phối viên xem các đơn đặt hàng cần thực hiện, chỉ rỏ khi nào bắt đầu chuẩn bị món ăn cho đơn đặt hàng, khi nào kết thúc và khi nào thì giao cho nhân viên giao hàng
• Xây dựng biểu đồ ca sử dụng, chỉ xét các tác nhân là người sử dụng