1. LOGO
Chương 3: Mô hình hóa yêu cầu
Trường Đại học Khoa học Tự nhiên, ĐHQG-HCM
Khoa Công Nghệ Thông Tin
Bộ môn Công Nghệ Phần Mềm
GVLT: Phạm Thi Vương
2. LOGO
Tài liệu tham khảo
Bài giảng dựa chính trên bài giảng “Xây dựng phần mềm hướng đối tượng” -ThS Trần Minh Triết –ĐH KHTN
Bài giảng “Phân tích và thiết kế hướng đối tượng” –TS Phạm Ngọc Nam –ĐH BK HN
Bài giảng “Phân tích và thiết kế hướng đối tượng” –ThS Phạm Nguyễn Cương –ĐH KHTN
….
2
4. LOGO
Nội dung
Giới thiệu UML
Mô hình hóa yêu cầu:
Lược đồ Use-case
Khái niệm Actor và Usecase
Ví dụ
Mô hình hóa các dòng dữ liệu của mỗi Use-case
Giới thiệu Mô hình DFD
Sử dụng mô hình DFD để mô hình hóa yêu cầu lưu trữ, tra cứu, tính toán, kết xuất
4
5. LOGOMở đầu
Đặt vấn đề:
Cácmôtảvềyêucầutronggiaiđoạnxácđịnhyêucầu:
•Chỉmôtảchủyếucácthôngtinliênquanđếnviệcthựchiệncácnghiệpvụtrongthếgiớithực,chưathểhiệnrõnétviệcthựchiệncácnghiệpvụtrênmáytính
•Môtảthôngquácácvănbảndễgâyranhầmlẫnvàkhôngtrựcquan
Mô hình hóa yêu cầu
5
6. LOGO
Mục đích của mô hình
Trực quan hóa hệ thống
Chỉ rõ cấu trúc và ứng xử của hệ thống
Cho chúng ta một khuôn mẫu để hướng dẫn chúng ta trong quá trình xây dựng hệ thống
Đưa ra các dẫn chứng bằng tài liệu về các quyết định mà chúng ta đã đưa ra trong quá trình thiết kế hệ thống
6
7. LOGO
Lịch sử các phương pháp mô hình hóa
Döõ lieäuTiếp cận đối tượng
JsdOMT
OOM
CRC
OODa
Ida
OOSA
Merise
Remora
Axial
Ssa
Hipo
Tiếp cận Descartes
Arianne
ProteeùCorig
Tiếp cận hệ thống90
80
70
60Xöû lyù
Sadt
Sa/sd
Niam
OOA
UML/
RUP
Thôøi gian
8. LOGO
UML(Unified Modeling Language)
Phương pháp Booch + phương pháp OMT UP (Unified Process) (1994)
Jacobson đã nỗ lực tích hợp phương pháp UP + OOSEUML đầu tiên (1996)
UML 1.0 công bố (1/1997)
UML 2.0 công bố (2004)
8
9. LOGO
UML
9
Các phương pháp khác
Booch
OMT
UML 0.8 (95)
UML 0.9 (96)
UML 1.0 (1-97)
UML 1.1 (11-97) OOSE
Các thành viên công nghiệp
(HP, IBM,Oracle, Microsoft,
Rational,…)
UML 1.2 (98)
UML 1.3 (99)
Chuẩn hoá bởi OMG
UML 1.5 (2003)
UML 2.0 (2004)
10. LOGOUML
Các đặc trưng của một tiến trình sử dụng UML:
Tính lặp (iterative)
Gia tăng (incremental)
Tập trung vào người dùng (user – concentrated)
Hướng kiến trúc (well-defined structure)
11. LOGOUML
Năm khung nhìn về hệ thống
Khung nhìn luận lý (logical view)
Khung nhìn thực hiện (implementation view)
Khung nhìn xử lý (proces view)
Khung nhìn triển khai (deployment view)
Khung nhìn use case (Use case view)
12. LOGO
Chương 2 -Mô hình và các phương pháp mô hình hóa
12Phần 1 -Tổng quanUML
Các sơ đồ mô tả khía cạnh tĩnh
Sơ đồ đối tượng (object diagram)
Sơ đồ lớp (class diagram)
Sơ đồ use case (use case diagram)
Sơ đồ thành phần (component diagram)
Sơ đồ triển khai (deployment diragram)
Các sơ đồ mô tả khía cạnh động
Các sơ đồ tương tác (interaction diagram)
•Sơ đồ tuần tự (sequence diagram)
•Sơ đồ hợp tác (collaboration diagram)
Sơ đồ hoạt động (activity diagram)
Sơ đồ chuyển dịch trạng thái (state transition diagram)
13. LOGO
UML
Tài xế
Xe
Bằng lái xe
Xe tảiXe ô tôXe mô tô
Sở hữu
0..1
1..*
Của
1
* Tác giảtênTácGiả: stringđịaChỉ: stringSáchtựaSách: stringnămXuấtBản: integer
1
1..*
Sơ đồ lớp
14. LOGO
UML
Sơ đồ đối tượngHoàng:Tác giảtênTácGiả =’Nguyễn Văn Hoàng’địaChỉ=’123-Nguyễn Văn Cừ -Q5’ UML:Sách
tựaSách =’UML’
nămXuấtBản=1998
Cơ sở dữ liệu:Sách
tựaSách =’UML’
nămXuấtBản=1997
15. LOGO
UML
Sơ đồ Use caseMượn sáchTrả sách
Mượn tại chổ
Đọc sách, báo
Mua sách
Đọc giảThủ thư
Nhà cung cấp
16. LOGO
UML
Sơ đồ thành phần
Giao diện
Tiện ích
Xử lý
Cơ sở dữ liệu
17. LOGO
UML
Sơ đồ triển khai
Node 1 (phòng quản trị):Server CSDL
Node 3 (đọc giả):APP
Giao diện
Giao diện
Node 4 (thủ thư):APP
Tiện ích
Node 2 (phòng quản trị):APP Server
Cơ sở dữ liệu
Xử lý
18. LOGO
UML
Sơ đồ tuần tự
:Người gọi
:Máy gọi
Tổng đài
:Máy nhận
:Người nhận
Nhấc máy
Tín hiệu
Quay số
Kết nối
Tín hiệu
Đổ chuông
Nhấc máy
Gác máy
Tín hiệu
Tín hiệu gác máy
Tín hiệu gác máy
Tin hiệu gác máy
19. LOGO
UML
Sơ đồ trạng thái
Sẵn sàng cho mượn
Đang mượn
Mất
Hết lưu hành
Lưu trữ
Muợn
Trả
Đánh mất
Đánh mất
Đánh mất
Đánh mất
Thanh lý
Chấm dứt lưu hành
Nhập kho lưu trữ
Nhập kho
20. LOGO
UML
Sơ đồ hoạt động
Kiểm tra các sách đã mượn
Từ chối mượn sách
Lấy sách
Cập nhật thông tin muợn
[Độc giả đến mượn sách]
[Sách đã mượn>3]
[Sách đã mượn<=3]
22. LOGO
Khái niệm Actor
22
Tên Actor
Tác nhânBÊN NGOÀIhệ thống
Có tương tácvới hệ thốngPhần mềm
Con người
Phần cứng
Phần mềm khác
23. LOGO
Actor Nhóm người sử dụng
23Tên Actor
Tác nhânBÊN NGOÀIhệ thống
Có tương tácvới hệ thống
Phần mềm
Con người
Phần cứng
Phần mềm khác
24. LOGO
24
Actor Nhóm người sử dụng
Khách hàng
`
Quầy bán hàng Kho hàng
Hệ thống bán hàng tại siêu thị
Nhà cung cấp
Tác nhân
25. LOGO
Ví dụ
STT
Yêu cầu
1
Tiếp nhận học sinh
2
Lập danh sách lớp
3
Tra cứu học sinh
4
Nhận bảng điểm môn
5
Xem báo cáo tổng kết
6
Thay đổi quy định
25
Nhóm người dùng
Giáo vụ?
Giáo vụ?
Mọi người? Phụ huynh? Học sinh?
Giáo viên? Giáo vụ?
Ban giám hiệu?
Ban giám hiệu? Quản trị hệ thống?
Xét phần mềm Quản lý học sinh cấp III
26. LOGO
Ví dụ
26
Xét phần mềm Quản lý học sinh cấp III
MộtnhómngườidùngtươngứngvớimộtActor
MỗiNhómngườidùng(Actor)đượcquyềnsửdụngmộthaynhiềuchứcnăngtronghệthống
MộtchứcnăngcóthểchophépnhiềuNhómngườidùngsửdụng
Nhiềunhómngườidùngcócùngcácquyềnhạngiốngnhau Nên xét là 1 Actor hay nhiều Actor?
ViệcxácđịnhActorphụthuộcngữcảnhvàquytrìnhthựctế
27. LOGOVí dụ27
STT
Yêu cầu
1
Lập thẻ độc giả
2
Nhận sách mới
3
Tra cứu học sinh
4
Lập phiếu mượn
5
Nhận trả sách
6
Thay đổi quy định
Nhóm người dùng
Thủ thư
Thủthư
Thủ thư? Độc giả? Khách bất kỳ?
Thủ thư
Thủ thư
Thủ thư? Quản trị hệ thống?
Xét phần mềm Quản lý thư viện
28. LOGO
Actor Phần cứng ngoại vi
28Tên Actor
Tác nhânBÊN NGOÀIhệ thống
Có tương tácvới hệ thống
Phần mềmCon người
Phần cứng
Phần mềm khác
29. LOGO
Ví dụ
Ví dụ:
Phần mềm quản lý Siêu thị:
•Đọc thông tin từ thiết bị đọc mã vạch
Phần mềm quản lý cửa tự động:
•Đọc thông tin từ camera
•Phát lệnh điều khiển mở cửa
Phần mềm quản lý ra vào các phòng trong công sở
•Đọc tín hiệu từ đầu đọc thẻ từ
•Phát lệnh điều khiển mở cửa
Phần mềm chống trộm
•Đọc tín hiệu từ camera, sensor
•Phát lệnh điều khiển ra loa, đèn, điện thoại…
29Các thiết bị ngoại vimà phần mềm cần tương tác Có cần liệt kê tất cả thiết bị ngoại vi?
30. LOGO
Actor Phần mềm khác
30Tên Actor
Tác nhânBÊN NGOÀIhệ thống
Có tương tácvới hệ thốngPhần mềmCon người
Phần cứng
Phần mềm khác
31. LOGO
Ví dụ
Kết xuất/nạp dữ liệu từ Excel
Kết xuất dữ liệu báo cáo ra phần mềm gửi email (Microsoft Outlook, Outlook Express…)
Phần mềm trung gian kết nối để chuyển đổi email từ dạng Web-based sang POP3 (ví dụ Yahoo!Pop)
…
31
33. LOGO
Use -Case
33Kiểm tra cá nhân (check-in)
Kiểm tra nhóm
Hành khách
Hướng dẫn viên
34. LOGOVí dụ
34
STT
Yêu cầu
1
Lập thẻ độc giả
2
Nhận sách mới
3
Tra cứu học sinh
4
Lập phiếu mượn
5
Nhận trả sách
6
Mua thêm sách
Xét phần mềm Quản lý thư viện
CóbaonhiêuUse-casetrongVídụnày?
35. LOGO
Ví dụ
Mượn sách
Trả sách
Đăng ký thành viênTra cứu thông tinMua sách
Độc giả
Nhà cung cấp
Các use case của hệ thống thư viện
36. LOGO
36
Xác định tác nhân và use case nghiệp vụ
Ví dụ: các use case trong một tổ chức nhà hàng
Tiếp thịPhục vụ ăn trưaPhục vụ ăn tối
Phát triển qui trình
Thực thi nghiệp vụ
Phát triển nghiệp vụ
Mua nguyên liệu
Phát triển nguồn lực
Thị trườngKhách
Nhà cung cấp
Tổng quản lý
<<quản lý>>
<<quản lý>>
<<quản lý>>
<<quản lý>>
<<quản lý>> <<quản lý>>
Nghiệp vụ
Quản lý
Hỗ trợ
37. LOGO
37
Mô hình use case
Ví dụ: mô hình use case của siêu thị -sơ đồ ngữ cảnh
Nhà cung cấp
Quản lý xuất hàng
Quản lý nhập hàng
Quản lý nhân viên
Thống kê báo cáo
Kiểm kê hàng hoá
Quản lý khách hàng thân thiết
Quản lý bán hàng
Ban giám đốc
Khách hàng
38. LOGO
Ví dụ
STT
Yêu cầu
1
Tiếp nhận học sinh
2
Lập danh sách lớp
3
Tra cứu học sinh
4
Nhận bảng điểm môn
5
Xem báo cáo tổng kết
6
Thay đổi quy định
38
Xét phần mềm Quản lý học sinh cấp III
CóbaonhiêuUse-casetrongVídụnày?
Bao gồm cả tính năng
Thêm mới, Xóa, và Sửa
39. LOGO
Ví dụ
39
STT
Yêu cầu
1
Sắp đặt mạch điện
2
Cung cấp nguồn điện
3
Thay đổi thông số
4
Lưu bài thí nghiệm
5
Lấy lại thí nghiệm
6
Thay đổi quy định
Phần mềm thí nghiệm mạch điện
CóbaonhiêuUse-casetrongVídụnày?
40. LOGO
Sơ đồ Use-case
40
Rút tiền
Khách hàng
Kiểm tra tài khoản
Sự tương tácgiữa Actorvà Use-case
Chiều của mũi tênthể hiển vai trò chủ độngtrong sự tương tác
41. LOGO
Tổng quát hóa giữa các Actor
41
Người sử dụng
Giáo viên
Giáo vụ
42. LOGO
42
Mô tả use case
Nôi dung của một use case được mô tả ban đầu theo hai phần:
Giới thiệu về use case
Các dòng cơ bản (basic flow):bao gồm các hoạt động chính và thứ tự mô tả nội dung chính của use case
Các thay thế (alternative flow): mô tả các nhánh hoạt động bất thường để xử lý ngoại lệ ngoài các dòng chính
43. LOGO
43
Mô tả use case
Ví dụ: mô tả use case mượn sách
Use case bắt đầu khi một có đọc giả đến mượn sách. Mục tiêu của use case nhằm xử lý mượn sách cho đọc giả
Các dòng cơ bản:
1. Xác định thẻ thư viện của đọc giả: nhân viên yêu cầu đọc giả xuất trình thẻ thư viện để kiểm tra
2. Xác định thông tin nợ sách: kiểm tra thông tin các sách đang nợ của đọc giả
3. Ghi nhận thông tin lần mượn: cập nhật vào hệ thống thông tin về lần mượn của đọc giả
4. Gởi sách cho đọc giả và thông báo ngày giới hạn trả sách
44. LOGO
44
Mô tả use case
Ví dụ: mô tả use case mượn sách
Các dòng thay thế:
-Xử lý thẻ hết hạn: nếu thẻ sinh viên của đọc giả hết hạn, thủ thư sẽ thông báo cho đọc giả và yêu cầu làm thẻ mới
-Xử lý không cho mượn: nếu số lượng sách mà đọc giả đang mượn >3, thủ thư sẽ từ chối lần mượn của đọc giả
45. LOGO
45
Mô tả use case
Ví dụ: mô tả use case Đăng ký
Use case mô tả hoạt động đăng kiểm tại quầy đăng ký khi hành khách tới để đăng ký đi chuyến bay của mình.
Các dòng cơ bản:
1. Tìm kiếm chỗ ngồi: sau khi nhận vé từ hành khách, nhân viên sẽ tìm một chỗ ngồi cho hành khách từ hệ thống. Hệ thống sẽ đánh dấu chỗ đó không còn trống.
2. In thẻ lên máy bay: in thẻ lên máy bay cho hành khách.
3. Xử lý hành lý: kiểm tra vá xác nhận hành lý, in ra thẻ đánh dấu hành lý và thẻ kiểm soát hành lý cho nhân viên.
Các dòng thay thế
1. Xử lý hành lý đặc biệt: xử lý các hành lý chứa một loại hàng đặc biệt hoặc quá nặng (được mô tả trong use case ….).
46. LOGOMô tả Use-case
1. Use-Case bắt đầu khi khách hàng đưa thẻ tín dụng vào. Hệ thống đọc và thẩm tra thông tin của thẻ.
2. Hệ thông nhắc nhập số PIN. Hệ thống kiểm tra số PIN.
3. Hệ thống hỏi tác vụ nào khách hàng muốn thực hiện. Khách hàng chọn “Rút tiền.”
4. Hệ thống hỏi số lượng. Khách hàng nhập số lượng.
5. Hệ thống yêu cầu nhập kiểu tài khoản. Khách hàng chọn checking hoặc savings.
6. Hệ thống liên lạc với ATM network . . .
46
Ví dụ: mô tả use case Rút tiền ATM
47. LOGO
Mô tả use-case
basic flow(“Happy Path”)
Một số alternative flows
Các biến thể thường gặp (Regular variants)
Các trường hợp bất thường (Odd cases)
Exceptional flowsxử lý các tình huốnglỗi
47
“Happy Path”