Tải bản đầy đủ (.pdf) (6 trang)

Biểu đồ trạng thái

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (174.12 KB, 6 trang )

Biểu đồ trạng thái

Biểu đồ trạng thái
Bởi:
Đoàn Văn Ban
Bước nghiên cứu tiếp theo sau biểu đồ trình tự là biểu đồ trạng thái (State Diagram,
State Machine Diagram, State Chart Diagram ).
Biểu đồ trạng thái mô tả các thông tin về các trạng thái khác nhau của đối tượng, thể
hiện các đối tượng chuyển từ trạng thái này sang trạng thái khác như thế nào, hoạt động
của đối tượng trong mỗi trạng thái ra sao. Biểu đồ trạng thái thể hiện chu kỳ hoạt động
của đối tượng, các hệ thống con và của cả hệ thống, từ khi chúng được tạo ra cho đến
khi kết thúc. Biểu đồ trạng thái mô tả:
• Các trạng thái mà các đối tượng có thể có,
• Các sự kiện: các thông điệp nhận được, các lỗi có thể xuất hiện, điều kiện nào
đó có thể trở thành đúng (true), khoảng thời gian đã qua, v.v. tác động lên trạng
thái để làm biến đổi chúng.
Biểu đồ này là giải pháp tốt để mô hình hoá hành vi động của các lớp đối tượng. Trong
một dự án, không nhất thiết phải tạo ra các biểu đồ trạng thái cho tất cả các lớp. Tuy
nhiên, đối với những lớp có nhiều hành vi động, có nhiều trạng thái hoạt động khác nhau
thì biểu đồ trạng thái là hữu ích, giúp chúng ta hiểu rõ hệ thống hơn.

Trạng thái và sự biến đổi trạng thái
Mọi đối tượng trong hệ thống đều có chu kỳ sống và mỗi thời điểm đều có một trạng
thái nào đó.
Người bán hàng trong hệ thống HBH đang bán hàng, phiên bán hàng đã được thanh
toán, v.v.
Trạng thái là một trong các điều kiện có thể để đối tượng tồn tại, là kết quả của một hoạt
động trước đó của đối tượng.
Trạng thái của đối tượng thường được mô tả trong hình chữ nhật góc tròn và được xác
định bởi:
• Tên gọi trạng thái, thường bắt đầu bằng động từ,


1/6


Biểu đồ trạng thái

• Biến trạng thái mô tả các giá trị hiện thời của trạng thái,
• Hoạt động là hành vi mà đối tượng sẽ thực hiện khi nó ở vào trạng thái đó.
Hoạt động của trạng thái được mô tả hình thức như sau:
event_name argument_list ‘/’ action_exp
Trong đó,
event_name: Tên của sự kiện, có thể là một trong các sự kiện chuẩn: exit (thoát ra),
entry (nhập vào), do (thực hiện).
argument_list: danh sách các sự kiện,
action_exp: những hoạt động cần thực hiện bao gồm các lời gọi hàm, thao tác trên các
biến trạng thái, v.v.
Trạng thái Login (đăng nhập hệ thống) được mô tả trong UML:

Trạng thái Login

Khi hệ thống ở trạng thái Login thì biến LoginTime (thời gian khi khởi nhập) được gán
là CurrentTime (thời gian hiện thời) của máy tính. Sự kiện vào của trạng thái này là gõ từ
“login” và để thoát ra khỏi trạng thái này thì phải thực hiện lời gọi hàm login(UserName,
Password). Các hoạt động của đối tượng ở trạng thái này là: Nhận vào UserName (tên
người sử dụng), Password (mật khẩu), và hiển thị sự trợ giúp display help.
• Khi không cần mô tả chi tiết thì có thể chỉ cần tên gọi để xác định trạng thái
trong các biểu đồ.
• Có hai trạng thái đặc biệt là trạng thái bắt đầu được ký hiệu là:
và trạng
thái kết thúc, được ký hiệu là
Biểu đồ trạng thái thường có trạng thái bắt đầu còn trạng thái kết thúc thì có thể có hoặc

không tuỳ vào chu kỳ hoạt động của các đối tượng.

2/6


Biểu đồ trạng thái

Trong biểu đồ, đường mũi tên chỉ ra sự biến đổi từ một trạng thái sang trạng thái khác
khi có các sự kiện xảy ra làm thay đổi các trạng thái. Trạng thái của đối tượng sẽ bị thay
đổi khi có cái gì đó xảy ra, nghĩa là khi có một hay nhiều sự kiện xuất hiện. Sự biến đổi
trạng thái hay sự chuyển trạng thể hiện mối quan hệ giữa các trạng thái với nhau.
Sự chuyển trạng được thể hiện trong biểu đồ bằng mũi tên có nhãn là sự kiện, thao tác
(hàm có đối số), hoặc điều kiện cầm canh (guard). Sự chuyển trạng có thể là đệ qui,
nghĩa là trong một điều kiện nhất định, một đối tượng có thể quay lại trạng thái cũ của
nó.

Xác định các trạng thái và các sự kiện
Để xác định được các trạng thái và các sự kiện chúng ta cần trả lời cho các câu hỏi sau:
• Một đối tượng có thể ở những trạng thái nào? Liệt kê tất cả các trạng thái có thể
có trong hệ thống của mỗi đối tượng.
• Những sự kiện nào có thể xuất hiện? Bởi vì sự kiện có thể làm biến đổi trạng
thái, do vậy, từ các sự kiện có thể xác định được các trạng thái của đối tượng.
• Những trạng thái mới nào sẽ xuất hiện? Từ một trạng thái, đối tượng có thể
chuyển sang trạng thái mới khi một số sự kiện xác định xuất hiện.
• Ở mỗi trạng thái, hoạt động của đối tượng là gì?
• Sự tương tác giữa các đối tượng là gì? Sự tương tác giữa các đối tượng thường
gắn chặt với các trạng thái của đối tượng.
• Những sự kiện, hay chuyển đổi trạng thái nào là không thể xảy ra? Một số sự
kiện, hay trạng thái không thể chuyển đổi sang trạng thái khác được,
Khi khách mua hàng trả bằng thẻ tín dụng không hợp pháp thì phiên bán đó không thực

hiện được.
• Cái gì làm cho đối tượng được tạo ra? Đối tượng thường được tạo ra bởi một,
hay một số sự kiện.
• Cái gì làm cho đối tượng bị huỷ bỏ? Đối tượng thường được loại bỏ khi không
còn cần thiết nó nữa.

Xây dựng biểu đồ trạng thái
Biểu đồ trạng thái được sử dụng để chỉ ra cách các đối tượng phản ứng lại đối với các
sự kiện và cách biến đổi các trạng thái theo các sự kiện đó.
Hãy mô tả hoạt động của hệ thống thang máy. Thường thang máy bắt đầu hoạt động từ
tầng một (OnFirstFloor). Khi đang ở OnFirstFloor và có người ở tầng trên (floorNum)
nhấn nút yêu cầu thang máy (goUp(floorNum)) thì nó chuyển sang trạng thái chuyển lên
(MovingUp). Khi chuyển đến tầng yêu cầu (arrived) thì nó chuyển sang trạng thái dừng,
3/6


Biểu đồ trạng thái

nghỉ (Idle) để mở cửa cho người vào /ra khỏi thang máy. Đang ở trạng thái nghỉ Idle,
nếu có ai ở tầng trên yêu cầu thì nó lại chuyển về MovingUp, nếu có người ở tầng dưới
yêu cầu thì thang máy chuyển xuống (MovingDown), còn khi hết giờ (time-out) nó sang
trạng thái chuyển về tầng một (MovingtoFirstFloor) rồi về tầng một. Biểu đồ trạng thái
mô tả hoạt động của thang máy được vẽ như hình 2.

Biểu đồ trạng thái của lớp Thangmay

Chúng ta hãy xây dựng biểu đồ trạng thái cho lớp HoaDon.

Biểu đồ các trạng thái của lớp HoaDon


Khi một hoá đơn (đối tượng của lớp HoaDon) được tạo lập thì nó ở trạng thái chưa
thanh toán, sau đó khi có sự kiện khách hàng thanh toán, nghĩa là khách trả tiền cho các
mặt hành đã chọn mua thì nó chuyển sang trạng thái đã thanh toán.
Như đã đề cập ở trên, các ca sử dụng là rất quan trọng, nó thể hiện những nhiệm vụ mà
hệ thống phải thực hiện. Vì vậy, thường chúng phải xây dựng các biểu đồ trạng thái để
mô tả cho các lớp trong những ca sử dụng quan trọng nhất của hệ thống.
Biểu đồ trạng thái của hệ HBH được xây dựng như sau:

4/6


Biểu đồ trạng thái

Biểu đồ trạng thái của lớp HBH

Trạng thái của một đối tượng cũng có khi là trạng thái phức hợp, nghĩa là nó có thể chứa
các trạng thái con được lồng bên trong. Một số trạng thái, ví dụ trạng thái Kiểm duyệt
thẻ trong biểu đồ trên có thể tiếp tục được làm mịn hơn ở pha sau.
Chúng ta xét tiếp Telephone trong ca sử dụng “Gọi điện thoại” đã được mô tả bằng biểu
đồ vết các sự kiện ở trên. Telephone có hai trạng thái chính: Idle (rỗi) và Active (hoạt
động). Trạng thái Active lại có thể phân tách tiếp thành PlayingDialTone (âm hiệu ĐT
mời gọi), Dialing (quay số), Connecting (kết nối hai đầu dây) và Talking (đàm thoại).
Biểu đồ trạng thái cho các hoạt động trên được mô tả như sau.

Biểu đồ trạng thái của Telephone

Máy điện thoại ở trạng thái Idle, khi người gọi nhấc tai nghe lên (off hook) thì nó chuyển
sang trạng thái hoạt động (Active) sẵn sàng phục vụ đàm thoại giữa hai điểm trong mạng
điện thoại. Trạng thái Active lại được mô tả dưới dạng một biểu đồ trạng thái con. Bắt
đầu là trạng thái Có âm hiệu điện thoại mời gọi (PlayingDialTone), khi người gọi quay

số (digit) nó chuyển sang trạng thái Quay số (Dialing). Khi quay xong (completed),
nó chuyển tiếp sang trạng thái Kết nối (Connecting) và khi đường dây được kết nối
(connected) thì hai người có thể nói chuyện được với nhau (Talking). Trạng thái Talking
lại có thể mô tả chi tiết hơn bằng một biểu đồ trạng thái con nếu cần thiết.

5/6


Biểu đồ trạng thái

• Biểu đồ trạng thái chỉ cần xây dựng cho những đối tượng có nhiều hoạt động
quan trọng trong hệ thống,
• Dựa vào các ca sử dụng để xây dựng biểu đồ trạng thái,
• Dựa vào các thuộc tính liên quan để định nghĩa các trạng thái.
Tóm lại, biểu đồ trạng thái là cần thiết vì nó giúp người phân tích, thiết kế và người lập
trình hiểu, nắm bắt được các hành vi ứng xử của các đối tượng tham gia vào các ca sử
dụng. Họ không chỉ cài đặt đối tượng mà còn cần phải làm cho chúng thực hiện những
công việc mà hệ thống yêu cầu. Tuy nhiên, biểu đồ trạng thái không được sử dụng để
sinh mã tự động trong khâu lập trình ở bước sau.
Biểu thức trạng thái trong phân tích hướng đối tượng cũng tương tự như sơ đồ khối trong
phân tích có cấu trúc, nó mô tả các bước cần thực hiện (thuật toán) của hệ thống.

6/6



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×