Sự kiện gọi call event: Tiếp nhận một lời gọi tới một thao tác Sự kiện tín hiệu signal event: là sự tiếp nhận một tín hiệu Tín hiệu là một đối tượng có tên, được gửi một cách khô
Trang 1Gv: Vũ Thị Dương Email: duongvt01@gmail.com
KHOA CÔNG NGHỆ THÔNG TIN
Trường Đại học công nghiệp Hà Nội
PHÂN TÍCH THIẾT KẾ
HƯỚNG ĐỐI TƯỢNG
Biểu đồ chuyển trạng thái
và biểu đồ hoạt động
Bài 7
Trang 2Phân tích thiết kế hướng đối tượng Bài 7 - 3/21
Biểu đồ chuyển trạng thái
Về mặt hành vi ứng xử Ta có thể phân loại 2 loại đối
tượng:
Đối tượng bị động nhận thông điệp
Đối tượng chủ động nhận thông điệp
Đối tượng bị động: là đối tượng mà cách ứng xử của nó
không hề thay đồi theo thời gian
Đối tượng chủ động: là đối tượng mà cách ứng xử của
nó thay đổi theo thời gian
Tùy thuộc vào trạng bên trong của đối tượng tại lúc đó
Đối tượng này có đời sống thực sự: Sinh ra, trải qua trạng thái
và hủy bỏ
Mục đích của mô hình hóa ứng xử là mô tả phản ứng của
các đối tượng chủ động trước các sự kiện đến với chúng
Biểu đồ chuyển trạng thái
Biểu đồ bao gồm các thông tin sau
Các trạng thái của đối tượng
Hành vi của đối tượng
Sự kiện tác động làm thay đổi trạng thái
Trang 3Biểu đồ trạng thái
Sự kiện
Là một điều gì đó xảy ra bất chợt đối với hệ thống và có
ảnh hưởng đến hành vi của hệ thống
Sự kiện bên trong: là sự kiện bắt nguồn từ bên trong hệ thống (ví
dụ như lỗi tràn ô)
Sự kiện bên ngoài là sự kiện bắt nguồn từ bên ngoài hệ thống (ví
dụ như nhắp chuột)
Đối với một thông điệp thì sự kiện có thể đến với nó thông
qua một thông điệp từ một đối tượng khác gửi tới
Sự kiện gọi (call event): Tiếp nhận một lời gọi tới một thao tác
Sự kiện tín hiệu (signal event): là sự tiếp nhận một tín hiệu
Tín hiệu là một đối tượng có tên, được gửi một cách không đồng
bộ bởi một đối tượng và được tiếp nhận bởi một đối tượng khác
Phân tích thiết kế hướng đối tượng Bài 7 - 5/21
Trạng thái đối tượng
tính và kết nối mà đối tượng có thể nhận ở 1 thời điểm
nào đó
Trạng thái được xác định bởi giá trị của thuộc tính và liên
kết với đối tượng khác
Thí dụ
Trang 4Phân tích thiết kế hướng đối tượng Bài 7 - 7/21
Trạng thái trung gian (State)
Trạng thái được xác định từ khảo sát thuộc tính lớp và quan
hệ giữa các lớp
Có những sự kiện xảy ra khi đối tượng đang ở 1 trạng thái,
nhưng không gây ra 1 bước dịch chuyển mà chỉ kích hoạt
một hành động hay hoạt động nào đó
Có năm loại thông tin có thể gộp trong trạng thái
Trang 5Phân tích thiết kế hướng đối tượng Bài 7 - 9/21
Biểu diễn trong phần tử biểu đồ: do hay /
Hành động là thao tác mà thời gian thực hiện không đáng kể
Hành động vào ( Entry Action )
Là hành vi xảy ra khi đối tượng đang chuyển vào trạng
Trang 6Phân tích thiết kế hướng đối tượng Bài 7 - 11/21
Hành động khi vào trạng thái (hđ2)
Hoạt động định sẵn trong trạng thái (hđ3)
Hành động khi ra khỏi trạng thái (hđ5)
Hành động gắn với bước dịch chuyển tới một
trạng thái khác (hđ6)
Trang 7Phân tích thiết kế hướng đối tượng Bài 7 - 13/21
Sự kiện ( Event ): cái gì đó là nguyên nhân chuyển từ trạng thái
này sang trạng thái khác
Hầu hết chuyển tiếp đều có sự kiện Sự kiện có thể có đối số, thí
dụ, Remove passenger(name)
Điều kiện bảo vệ ( Guard ): xác định khi nào sự kiện xảy ra, thí dụ,
Trạng thái máy bay từ Open sang Full khi chỗ cuối cùng đã có
người mua vé
Hành động ( Action ): hành vi không ngắt được, xảy ra như một
phần của chuyển tiếp
Trong lịch trình exit/ ghi lại giờ hạ cánh
Tiếp đất
Hạ cánh
Trạng thái 1 Event[Guard condition] / Action Trạng thái 2
Ví dụ Biểu đồ trạng thái
BĐ trạng thái Hóa đơn
BĐ trạng thái Máy ATM
Trang 8Phân tích thiết kế hướng đối tượng Bài 7 - 15/21
Trang 9Phân tích thiết kế hướng đối tượng Bài 7 - 17/21
Biểu đồ trạng thái
Trạng thái ẩn (Nested state)
Để giảm quá nhiều trạng thái trong biểu đồ ta có thể lồng trạng
thái vào trong trạng thái khác: Substate, Superstate
N ếu hai hay nhiều trạng thái có cùng quá độ -> nhóm chúng
thành superstate
Lịch sử trạng thái (Superstate history)
Nhiều khi có nhu cầu nhớ lại trạng thái vừa trước đó của đối
tượng Sử dụng chỉ báo lịch sử lịch sử trạng thái nơi đối tượng
Biểu đồ trạng thái
Trạng thái lịch sử (tt)
Ký hiệu trạng thái lịch sử H được đặt đâu đó trong trạng thái cha
(thường là góc dưới bên trái) và bước dịch chuyển trở lại trạng thái cha
chạm đến H
Ví dụ 2 Máy giặt có chu trình làm việc gồm 3 giai đoạn: Giặt xà phòng,
giũ sạch và vất khô Bất cứ lúc nào ta có thể mở cửa và quy trình tạm
ngưng Khi đóng cửa trở lại thì quy trình lại tiếp tục từ trạng thái vừa bị
ngắt
Trang 10 Đối tượng của lớp có yêu cầu tổ chức một số thao tác vào một trật
tự nhất định Lúc đó các trạng thái tiếp nối nhau sẽ cho phép mô
tả lịch trình đưa ra các kích hoạt cho các thao tác cần thiết
Thường chỉ khoảng 10-20% số các lớp là có yêu cầu mô tả hành vi
với biểu đồ trạng thái
Vậy các bước xây dựng biểu đồ trạng thái như sau
Phân tích thiết kế hướng đối tượng Bài 7 - 19/21
Cách xây dựng BĐ trạng thái
Tìm các trạng thái: không có 1 chỉ dẫn cụ thể nào
Lưu ý là số các trạng thái là hữu hạn Không cần vẽ BĐ TT cho các
lớp có dưới 3 trạng thái Tuy nhiên cũng có một số gợi ý
1. Với quan niệm trạng thái là một giai đoạn ổn định trong
đời sống nhiều biến động về hành vi, thì các giai đoạn
này thường được nhắc tới trong ngôn từ của các chuyên
gia lĩnh vực
2. Căn cứ vào sự biến thiên của các thuộc tính và kết nối,
qua đó phát hiện ra giá trị ngưỡng là các giá trị mà vượt
qua nó thì đối tượng sẽ có một số thay đổi trong hành vi
3. Nghiên cứu các biểu đồ trình tự có chứa đối tượng thuộc
lớp mà ta đang xét Thường thì khoảng cách giữa hai lần
đối tượng nhận thông điệp liên tiếp sẽ tương ứng với một
trạng thái
Trang 11Cách xây dựng BĐ trạng thái
Tìm các trạng thái: không có 1 chỉ dẫn cụ thể nào
Lưu ý là số các trạng thái là hữu hạn Không cần vẽ BĐ TT cho các
lớp có dưới 3 trạng thái
Tổ chức các trạng thái thành biểu đồ bằng cách bổ sung
các dịch chuyển giữa các trạng thái cùng với các sự kiện
tương ứng
Biểu diễn các dãy trạng thái theo hướng từ khi sinh ra, đến kết
thúc cùng với các dịch chuyển liên quan
Bổ sung dần các dịch chuyển tương tứng với các kiều kiện rẽ
nhánh
Thêm các hành động và hoạt động
Gom nhóm hay phân rã trạng thái nếu cần
Phân tích thiết kế hướng đối tượng Bài 7 - 21/21
Ví dụ Biểu đồ trạng thái
Biểu đồ trạng thái lớp học trong thời gian đăng ký
Trang 12Cách xây dựng BĐ trạng thái
Khi muốn tạm giấu các trạng thái con trong một trạng thí
cha, nhưng tránh hiểu nhầm về tính kế thừa, ta dùng các
tồn căn (UML 1.0) hay điểm vào, điểm ra (UML 2.0)
Phân tích thiết kế hướng đối tượng Bài 7 - 23/21
Gom nhóm trạng thái
Trang 13Đối chiếu BĐ tương tác và trạng thái
Biểu đồ tương tác (trình tự và giao tiếp) diễn tả sự chuyển
giao thông điệp giữa các đối tượng
Biểu đồ trạng thái lại diễn tả phản ứng của các đối tượng
khi nhận thông điệp
BĐ TT mang lại cách nhìn sau, chính xác và đầy đủ về đối
tượng nên lấy nó làm căn cứ để nghiệm thu và bổ sung
các biểu đồ liên quan
Ví dụ…
Phân tích thiết kế hướng đối tượng Bài 7 - 25/21
Đối chiếu BĐ tương tác và trạng thái
Trang 14Vẽ biểu đồ trạng thái của xe hơi cần sửa chữa
Tiến trình sửa xe hơi của khách hàng yêu cầu được sửa
chữa, chúng được đặt trong garage đợi để sửa Việc sửa
chữa có thể được tiến hành bấy cứ lúc nào Khi sửa chữa
có thể cần phải thay phụ tùng mới, trong trường hợp đó
cần phải đợi phụ tùng mới được mua về để thay thế Khi
sửa xong xe, xe được lái thử Theo kết quả thử, sẽ xác
định cần sửa chữa khác hay xe đã sẵn sàng giao cho
khách hàng Khi đó, xe được đưa vào garage đợi khách
đến lấy
Phân tích thiết kế hướng đối tượng Bài 7 - 27/21
Trong bài toán trên ta thấy lớp xe hơi có quan hệ với lớp
dịch vụ sửa chữa
Các trạng thái của xe hơi liên kết với lớp dịch vụ: Đợi sửa,
đang sửa, đã sửa
Trang 15?
Phân tích thiết kế hướng đối tượng Bài 7 - 29/21
?
Cho trong Gara
Thay pt[ het phu tung ] / Mua phu tung() Doi khach den lay
Trang 16Vẽ biểu đồ hoạt động mô tả tiến trình sửa xe
hơi
Tiến trình sửa xe hơi của khách hàng yêu cầu được sửa
chữa, chúng được đặt trong garage đợi để sửa Việc sửa
chữa có thể được tiến hành bấy cứ lúc nào Khi sửa chữa
có thể cần phải thay phụ tùng mới, trong trường hợp đó
cần phải đợi phụ tùng mới được mua về để thay thế Khi
sửa xong xe, xe được lái thử Theo kết quả thử, sẽ xác
định cần sửa chữa khác hay xe đã sẵn sàng giao cho
khách hàng Khi đó, xe được đưa vào garage đợi khách
đến lấy
Phân tích thiết kế hướng đối tượng Bài 7 - 31/21
Vẽ biểu đồ hoạt động mô tả tiến trình sửa xe
Trang 17Mô tả các trạng thái sách trong thư viện
Khi sách được nhập vào thư viện, nếu sách đó là bản duy
nhất thì nó chỉ được đọc tại chỗ, nếu có nhiều bản thì nó
có thể được dùng để cho mượn Thậm chí có nhiều bản
của cuốn sách, thủ thhuw có quyền thay đổi các bản đó
thành loại tài liệu chỉ được đọc lại chỗ Nếu 1 cuốn sách
được cho mượn một thời gian xác định mà không được trả
lại thì coi như nó bị mất và 1 năm sau đó thì bị xóa khỏi
kho Tuy nhiên, nếu sau đó lại tìm thấy thì lại sẵn sàng
cho mượn Trong trường hợp cuốn sách quá cũ và hư
hỏng nó sẽ bị loại bỏ Cuốn sách có thể được thay thế
cuốn mới hay bị xóa bỏ Không thể đặt trước sách mà hiện
tại thư viện không có trong kho
Phân tích thiết kế hướng đối tượng Bài 7 - 33/21
Tóm lại
Việc chọn trạng thái không có 1 gợi ý chính xác Tuy nhiên
tham khảo một số thông tin sau
Trạng thái là giai đoạn ổn định -> tìm các giai đoạn trong diễn đạt
của lớp lĩnh vực và các tài liệu liên quan
Trạng thái là sự phản ánh thô các giá trị thuộc tính kết nối Do đó
ta nên tìm các giá trị ngưỡng mà vượt qua nó đối tượng sẽ thay
đối hành vi Từ đó ta tìm ra các giai đoạn Đó là các trạng thái
Chú ý: Số trạng thái là hữu hạn nên
Trang 18Phân tích thiết kế hướng đối tượng Bài 7 - 35/21
Biểu đồ hoạt động
Biểu đồ hoạt động (Activity diagram) do Odell đề xuất
cho UML để
Trong khi biểu đồ tương tác tập trung vào luồng điều khiển từ
đối tượng đến đối tượng khác
Biểu đồ hoạt động tập trung vào luồng điều khiển từ hoạt động
đến hoạt động
Thường dùng để diễn tả logic của một ca sử dụng, một kịch
bản, một nhóm ca sử dụng, một quy tắc hay một thao tác
phức tạp
Biểu đồ hoạt động
Biểu đồ hoạt động mô tả một nội dung hoạt động theo
các luồng đi từ việc này sang việc khác
Nó thường được dùng để diễn tả logic của một ca sử
dụng hay một kịch bản, một nhón ca sử dụng…
Biểu đồ gồm: Các nút là các hoạt động và cung là các
dịch chuyển
Hoạt động (Activity)
Là một công việc, có thể là được xử lý bằng tay (điền mẫu)
hay bằng máy tính (hiển thị màn hình đăng ký)
Ký hiệu: hình chữ nhật tròn góc có mang theo tên của hoạt
động
Tên hoạt động
Trang 19Phân tích thiết kế hướng đối tượng Bài 7 - 37/21
Biểu đồ hoạt động
Hành động (Actions)
Là các bước nhỏ hơn trong Activity
Action có thể xảy ra khi
Đang vào activity
Hành động vào xảy ra khi activity bắt đầu, đánh dấu bằng “Entry”
Khi đang đi ra khỏi activity
Hành động ra xảy ra khi rời bỏ activity, đánh dấu bằng “Exit”
Khi thực hiện activity
Hành động xảy ra khi đang trong activity, đánh dấu bằng “do”
Khi có sự kiện đặc biệt xảy ra
Hành động xảy ra khi và chỉ khi có sự kiện cụ thể xảy ra, đánh dấu bằng “event” tiếp theo là tên sự kiện
Chuyển tiếp (Transition)
Chỉ ra luồng điều khiển từ hoạt động này đến hoạt động khác
Ký hiệu là mũi tên nỗi từ hoạt động này sang hoạt động khác
Trang 20Biểu đồ hoạt động cho ca sử dụng Đăng ký môn học
Phân tích thiết kế hướng đối tượng Bài 7 - 39/21
Biểu đồ hoạt động
Làn bơi (Swimlanes)
Sử dụng để mô hình hóa luồng công việc trong tiến trình nghiệp vụ
Chỉ ra ai có trách nhiệm thực hiện từng hoạt động
Để phân hoạch các trạng thái hoạt động vào nhóm
Phân tách nhóm trên biểu đồ bằng các làn bơi
Mỗi hoạt động thuộc về một làn bơi
Quá độ có thể được vẽ từ làn bơi này đến làn bơi khác
Mỗi làn bơi có thể được cài đặt bởi một hay nhiều lớp
Trang 21Phân tích thiết kế hướng đối tượng Bài 7 - 41/21
Trang 22Phân tích thiết kế hướng đối tượng Bài 7 - 43/21
Biểu đồ hoạt động
Kết thúc mua hàng
Yêu cầu mua
b : Bill [Chưa thanh toán]
Chuyển hàng ra
Gửi hàng đi
O : Order [Đã điền]
Nhân viên kho hàng Nhân viên bán hàng
Khách hàng
Swimlanes
Tóm tắt
Bài này đã xem xét các vấn đề sau
Biểu đồ chuyển trạng thái
Trạng thái của đối tượng
Các phần tử đồ họa xây dựng biểu đồ
Kỹ thuật xây dựng biểu đồ trạng thái
Biểu đồ hoạt động
Ứng dụng của biểu đồ hoạt động
Các phần tử đồ họa xây dựng biểu đồ hoạt động
Trang 23Phân tích thiết kế hướng đối tượng Bài 7 - 45/21
Bài tập
Mô tả một máy ATM 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)
Cho xem, kiểm tra tăng giản tài khoản và gửi 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 bào máy, lấy ngân phiếu
và các thẻ bị nuốt ra
Mô tả việc rút tiền với biểu đồ hoạt động
Nếu thẻ hợp lệ khách hàng có thể nhập mã PiN
Thẻ sẽ bị nuốt sau 3 lần nhập không thành công
Hệ thống ngân hàng sẽ cho phép rút một lượng
tiền tối đa hoặc từ chối việc rút tiền Một thẻ
không được lấy ra bời khách hàng sau khi rút sẽ bị
nuốt Tiền mặt không lấy bởi khách sẽ bị máy thu
hồi lại Phiếu xác nhận rút tiền luôn được in trong
khi khách chờ lấy tiền
Trang 24Phân tích thiết kế hướng đối tượng Bài 7 - 47/21
Vẽ sơ đồ hoạt động cho tiến trình sửa xe hơi
Tiến trình sửa xe hơi ở một gara Có nhiều xe hơi
của khách hàng yêu cầu được sửa Chúng được
đặt trong gara đợi sửa Việc sửa có thể được tiến
ành bất cứ lúc nào Khi sửa có thể cần phải thay
phụ tùng mới, trong trường hợp đó cần phải đợi
phụ tùng mới được mua về thay thế Khi sửa
xong, xe sẽ được lái thử Theo kết quả thử sẽ xác
minh cần sửa chữa xe khác hay xe đã sẵn sàng để
giao khác Khi đó, xe được đưa vào gẩ đợi khác
đến lấy
Biểu đồ trình tự sửa xe hơi
Yeu cau sua xe
Sua xe
entry/ xac dinh duoc loi do/ sua() exit/ Kiem tra het loi do/ thay phu tung()