Chương 3 THU THẬP YÊU CẦU HƯỚNG ĐỐI TƯỢNG LÀM VIỆC VỚI MỐI QUAN HỆ Mối kết hợp association Lượng số multiplicity Các mối kết hợp định tính qualified association Các mối kết hợ
Trang 1Chương 3 THU THẬP YÊU CẦU
HƯỚNG ĐỐI TƯỢNG
Tìm hiểu mối quan hệ
Giới thiệu về Use Case
Chương 3 THU THẬP YÊU CẦU HƯỚNG ĐỐI TƯỢNG
Trang 2Chương 3 THU THẬP YÊU CẦU HƯỚNG ĐỐI
TƯỢNG
LÀM VIỆC VỚI MỐI QUAN HỆ
Mối kết hợp (association)
Lượng số (multiplicity)
Các mối kết hợp định tính (qualified association)
Các mối kết hợp phản hồi (reflexive association)
Thừa kế và tổng quát hóa (inheritance and generalization)
Sự phụ thuộc (dependency)
GIỚI THIỆU VỀ USE CASE
Use case là gì?
Cách thức tạo use case
Các use case bao gồm (including use case)
Các use case mở rộng (extending use case)
Khởi động việc phân tích một use case
Trang 3Mối kết hợp (association)
Khi các lass kết nối với nhau thì sự kết nối đó được gọi là
mối kết hợp (association) Hãy cùng xem xét mối kết hợp
giữa một cầu thủ (player) và một đội bóng (team)
Trang 5Mối kết hợp (association)
Ràng buộc trên các mối kết hợp:
Trang 6Mối kết hợp (association)
Một loại ràng buộc khác là quan hệ hoặc (or), ký hiệu bởi {or} trên một đường đứt nét nối 2 đường association
Trang 7Lớp kết hợp (association class)
Một association có thể có các attribute và operation như
class Trong trường hợp này, ta có một lớp kết hợp
(association class) Ta trực quan hóa một association class
giống như với class thông thường và dùng một đường đứt nét nối nó với đường association
Trang 8Lượng số (multiplicity)
Lượng số (multiplicity) giúp đặc tả số lượng object từ 1
class này có thể quan hệ với 1 class từ class kia một mối kết hợp Chúng ta đặt các giá trị cho multiplicity ở phía trên đường association, gần phía class tương ứng
Lượng số chỉ ra số object của một class có thể quan hệ với một object của class kết hợp.
Trang 9Lượng số (multiplicity)
Có nhiều cách khác nhau biểu diễn cho multiplicity Một
class có thể quan hệ với class khác theo các loại
one-to-one, one-to-many, one-to-one or more, one-to-zero or one-to-one, one-to-bounded interval (ví dụ,1-to-5 10), one-to-n UML
dùng dấu * (asterisk) để biểu diễn giá trị “more” và “many” Khái niệm “or” được biểu diễn bằng hai chấm, chẳng hạn
“1 *” (one or more) Khái niệm “or” cũng có thể được biểu diễn bởi dấu phẩy, chẳng hạn “5,10” (5 or 10)
Trang 10Ví dụ
Trang 11Các mối kết hợp định tính (qualified
association)
Khi một multiplicity của một association là one-to-many, một thách thức đặt ra là: tìm kiếm (lookup) Khi một object
từ một class phải chọn một object trong class khác để
hoàn tất một vai trò trong một mối kết hợp thì class thứ nhất phải dựa vào một thuộc tính cụ thể để tìm ra object
đúng Thuộc tính đó được gọi là danh hiệu (identifier),
chẳng hạn như ID number.
Trang 12qualified association
Trong UML, thông tin định danh được gọi là qualifier Biểu tượng của nó là hình chữ nhật nhỏ kề bên class mà thực hiện việc tìm kiếm (Hình 4.11) Ý tưởng là nhằm làm tăng tính hiệu quả bằng cách giảm một multiplicity one-to-many thành một multiplicity one-to-one.
Trang 13Các mối kết hợp phản hồi (reflexive
Trang 14Sự thừa kế và sự tổng quát hóa (inheritance
and generalization)
Khái niệm thừa kế (inheritance) và tổng quát hóa
(generalization) đi đôi với nhau Một class (child class hoặc
subclass) có thể thừa kế các attribute và operation từ một class khác (parent class hoặc superclass) Class cha có tính tổng quát hơn so với class con
Sự phân cấp thừa kế (inheritance hierarchy) không buộc phải dừng ở 2 cấp: một class con có thể là class cha cho các class con khác
Trang 16Sự phụ thuộc (dependency)
Trong một loại mối quan hệ khác, một class này sử dụng một class khác Điều này được gọi là sự phụ thuộc
(dependency) Cách dùng phổ biến nhất của một
dependency là chỉ ra dấu hiệu (signature) của operation trong class này dùng class khác
Trang 17Kết thúc buổi 2
Trang 18GIỚI THIỆU VỀ USE CASE
Use case là gì?
Cách thức tạo use case
Các mối quan hệ trong use case
Các use case bao gồm (including use case)
Các use case mở rộng (extending use case)
Khởi động việc phân tích một use case
Trang 19Use Case là gì?
Hãy xem use case như một tập hợp các kịch bản
(scenario) về việc sử dụng hệ thống Mỗi kịch bản mô tả một chuỗi các sự kiện (event) Mỗi chuỗi được kích hoạt bởi người, một hệ thống khác, một thiết bị phần cứng hoặc bởi một thời điểm Các thực thể (entity) kích hoạt
chuỗi được gọi là tác nhân (actor) Kết quả của chuỗi
phải là cái gì đó sử dụng được cho actor kích hoạt chuỗi hoặc cho actor khác.
Trang 20 Use case “Mua soda”
Actor trong use case này là một khách hàng muốn mua một lon soda Khách hàng khởi động kịch bản bằng cách nhét tiền vào máy Sau đó anh ta lựa chọn Nếu mọi việc đều thuận lợi, máy có ít nhất 1 lon soda bên trong, thì một lon soda lạnh sẽ được đưa cho khách.
Trang 22Các loại quan hệ Bao gồm một use case (including a use case)
Trong các use case “Restock” và “Collect”, ta thấy có một
số bước (step) chung Chẳng hạn hư những bước đầu gồm mở khóa, mở máy soda và những bước cuối gồm đóng máy và khóa máy soda lại là giống nhau Chúng ta có thể giảm các bước trùng lặp giữa các use case không?
Trang 23Ex: Include
Client
«include»
get Account View Balance
Withdraw «include»
Usually not complete
Usually not complete
print Balance
Trang 24Quan hệ trong use case
Mở rộng một use case (extending a use case)
Có thể dùng lại một use case theo cách khác ngoài cách bao gồm (inclusion) Đôi khi, ta tạo một use case mới bằng cách thêm một vài bước vào một use case sẵn có.
Trở lại với use case “Restock” Trước khi đặt một lon soda vào
máy, đại diện nhà cung cấp có thể chú ý đến những nhãn hiệu nào bán chạy và ngược lại Thay vì đơn giản là nạp đầy đủ tất cả các nhãn hiệu, nhà cung cấp có thể thay thế các nhãn hiệu ít người mua bằng nhãn hiệu bán chạy hơn Các bước sau đó vẫn như cũ.
Nếu ta thêm các bước như trên vào use case “Restock”, ta sẽ có
một use case mới mà ta gọi là “Restok according to sales” Use case mới này là một sự mở rộng của use case ban đầu và kỹ thuật này
gọi là mở rộng một use case (extending a use case).
Trang 25Need not to show the
extention points always
user requires print-out
Need not to put the condition within brackets
Usually complete
Usually not complete
«extend»
Trang 26Ex: Extends
Trang 27Quan hệ uses
Quan hệ sử dụng: khi một nhóm các Use Case cùng chung
một hành vi nào đó thì hành vi này có thể được tách riêng
ra thành một Use Case riêng biệt và nó có thể được sử dụng bởi các Use Case kia, một mối quan hệ như vậy
được gọi là quan hệ sử dụng.
Trang 29Các bước để tạo use case
Draw Business Activity Diagrams
Identify the actors
Identify their requirements
Identify the use cases
Complete the Glossary
Identify the groups
Draw the initial usecase diagram
Prioritise the use cases
Trang 30Ví dụ 01 bảng mô tả giao tác giữa Actor vả
System
Assign staff to work on a campaign
Actor Action System Response
1 The actor enters the client name 2 Lists all campaigns for that client.
3 Selects the relevant campaign 4 Displays a list of all staff
members not already allocated
to this campaign.
5 Highlights the staff members 6.Presents a message confirming
to be assigned to this campaign that staff have been allocated.
Trang 31Bài sửa Use Case Xác định các xử lý
Shall check the CARD’s validity
Shall verify the PIN
Shall show the balance
Shall withdraw money within a limit
Shall change the PIN
Shall store a new CARD detail
Shall add another account to a CARD
Shall show the balance within 2 minutes
…
Trang 32Có thể chi tiết như
Client
«include»
prove Validity withdraw
Trang 33Precondition: Client must log-In (usecase prove Validity)
Trang 34Sửa bài
Chương trình quản lí Thư viện
Trang 35Đối với Sinh viên
Trang 36Đối với nhân viên