OOAD - Mô hình hóa động
Mô hình động thể hiện các khía cạnh phụ thuộc vào thời gian của một hệ thống. Nó liên quan đến những thay đổi theo thời gian trong trạng thái của các đối tượng trong một hệ thống. Các khái niệm chính là -
Trạng thái, là tình trạng tại một điều kiện cụ thể trong suốt thời gian tồn tại của một đối tượng.
Chuyển đổi, một sự thay đổi trong trạng thái
Sự kiện, sự kiện kích hoạt chuyển đổi
Hành động, một phép tính nguyên tử và không bị gián đoạn xảy ra do một số sự kiện và
Đồng thời của quá trình chuyển đổi.
Máy trạng thái mô hình hóa hành vi của một đối tượng khi nó đi qua một số trạng thái trong vòng đời của nó do một số sự kiện cũng như các hành động xảy ra do các sự kiện đó. Máy trạng thái được biểu diễn bằng đồ thị thông qua sơ đồ chuyển trạng thái.
Tiểu bang và Chuyển đổi trạng thái
Tiểu bang
Trạng thái là một trừu tượng được đưa ra bởi các giá trị của các thuộc tính mà đối tượng có tại một khoảng thời gian cụ thể. Đó là một tình huống xảy ra trong một khoảng thời gian hữu hạn trong thời gian tồn tại của một đối tượng, trong đó nó đáp ứng các điều kiện nhất định, thực hiện các hoạt động nhất định hoặc chờ đợi các sự kiện nhất định xảy ra. Trong biểu đồ chuyển đổi trạng thái, một trạng thái được biểu diễn bằng các hình chữ nhật tròn.
Các phần của một trạng thái
Name- Một chuỗi phân biệt trạng thái này với trạng thái khác. Một tiểu bang có thể không có bất kỳ tên nào.
Entry/Exit Actions - Nó biểu thị các hoạt động được thực hiện khi vào và ra khỏi trạng thái.
Internal Transitions - Những thay đổi bên trong một trạng thái không gây ra sự thay đổi trong trạng thái.
Sub–states - Các tiểu bang trong các tiểu bang.
Trạng thái ban đầu và cuối cùng
Trạng thái bắt đầu mặc định của một đối tượng được gọi là trạng thái ban đầu của nó. Trạng thái cuối cùng cho biết hoàn thành việc thực thi của máy trạng thái. Trạng thái đầu và trạng thái cuối là trạng thái giả và có thể không có các phần của trạng thái thông thường ngoại trừ tên. Trong các biểu đồ chuyển trạng thái, trạng thái ban đầu được biểu diễn bằng một vòng tròn màu đen được tô đầy. Trạng thái cuối cùng được biểu thị bằng một vòng tròn màu đen được tô bao quanh trong một vòng tròn màu đen chưa được tô màu khác.
Chuyển tiếp
Quá trình chuyển đổi biểu thị sự thay đổi trạng thái của một đối tượng. Nếu một đối tượng ở trong một trạng thái nhất định khi một sự kiện xảy ra, đối tượng có thể thực hiện các hoạt động nhất định với các điều kiện xác định và thay đổi trạng thái. Trong trường hợp này, một sự chuyển đổi trạng thái được cho là đã xảy ra. Sự chuyển đổi đưa ra mối quan hệ giữa trạng thái đầu tiên và trạng thái mới. Quá trình chuyển đổi được biểu diễn bằng đồ thị bằng một vòng cung có hướng đặc từ trạng thái nguồn đến trạng thái đích.
Năm phần của quá trình chuyển đổi là -
Source State - Trạng thái bị ảnh hưởng bởi quá trình chuyển đổi.
Event Trigger - Sự xuất hiện do một đối tượng ở trạng thái nguồn trải qua quá trình chuyển đổi nếu điều kiện bảo vệ được thỏa mãn.
Guard Condition - Một biểu thức Boolean nếu True, gây ra chuyển đổi khi nhận kích hoạt sự kiện.
Action - Một tính toán nguyên tử và không gián đoạn xảy ra trên đối tượng nguồn do một số sự kiện.
Target State - Trạng thái đích sau khi hoàn thành quá trình chuyển đổi.
Example
Giả sử một người đang đi taxi từ địa điểm X đến địa điểm Y. Trạng thái của người đó có thể là: Đang chờ (chờ taxi), Đi xe (anh ta đã có taxi và đang di chuyển trong đó), và Đạt (anh ta đã đến Nơi Đến). Hình sau mô tả quá trình chuyển đổi trạng thái.
Sự kiện
Sự kiện là một số sự kiện có thể kích hoạt chuyển đổi trạng thái của một đối tượng hoặc một nhóm đối tượng. Sự kiện có vị trí theo thời gian và không gian nhưng không có khoảng thời gian gắn liền với nó. Các sự kiện thường được liên kết với một số hành động.
Ví dụ về các sự kiện là nhấp chuột, nhấn phím, ngắt, tràn ngăn xếp, v.v.
Các sự kiện kích hoạt chuyển đổi được viết cùng với cung chuyển tiếp trong biểu đồ trạng thái.
Example
Xét ví dụ minh họa trong hình trên, quá trình chuyển đổi từ trạng thái Chờ sang trạng thái Cưỡi diễn ra khi người đó bắt taxi. Tương tự như vậy, trạng thái cuối cùng đạt được, khi anh ta đến đích. Hai sự kiện này có thể được gọi là sự kiện Get_Taxi và Reach_Destination. Hình sau đây cho thấy các sự kiện trong một máy trạng thái.
Sự kiện bên ngoài và bên trong
Sự kiện bên ngoài là những sự kiện truyền từ người dùng của hệ thống đến các đối tượng trong hệ thống. Ví dụ, nhấp chuột hoặc nhấn phím của người dùng là các sự kiện bên ngoài.
Sự kiện bên trong là những sự kiện truyền từ đối tượng này sang đối tượng khác trong hệ thống. Ví dụ: tràn ngăn xếp, lỗi chia, v.v.
Sự kiện hoãn lại
Các sự kiện bị hoãn lại là những sự kiện không được đối tượng xử lý ngay lập tức ở trạng thái hiện tại nhưng được xếp vào hàng đợi để chúng có thể được đối tượng xử lý ở một số trạng thái khác sau đó.
Lớp sự kiện
Lớp sự kiện chỉ ra một nhóm các sự kiện có cấu trúc và hành vi chung. Cũng như các lớp đối tượng, các lớp sự kiện cũng có thể được tổ chức theo cấu trúc phân cấp. Các lớp sự kiện có thể có các thuộc tính liên kết với chúng, thời gian là một thuộc tính ngầm định. Ví dụ: chúng ta có thể xem xét các sự kiện khởi hành của một chuyến bay của một hãng hàng không, chúng ta có thể nhóm thành loại sau:
Flight_Departs (Chuyến bay_No, Từ_ Thành phố, Đến_ Thành phố, Tuyến đường)
Hành động
Hoạt động
Hoạt động là một hoạt động dựa trên các trạng thái của một đối tượng yêu cầu một khoảng thời gian. Chúng là những thực thi đang diễn ra trong một hệ thống có thể bị gián đoạn. Các hoạt động được thể hiện trong sơ đồ hoạt động mô tả dòng chảy từ hoạt động này sang hoạt động khác.
Hoạt động
Một hành động là một hoạt động nguyên tử thực hiện do kết quả của các sự kiện nhất định. Theo nguyên tử, nó có nghĩa là các hành động là không thể bị gián đoạn, tức là, nếu một hành động bắt đầu thực hiện, nó sẽ hoàn thành mà không bị gián đoạn bởi bất kỳ sự kiện nào. Một hành động có thể hoạt động trên một đối tượng mà sự kiện đã được kích hoạt trên đó hoặc trên các đối tượng khác mà đối tượng này nhìn thấy. Một tập hợp các hành động bao gồm một hoạt động.
Hành động nhập và thoát
Hành động nhập là hành động được thực hiện khi vào một trạng thái, bất kể quá trình chuyển đổi dẫn đến trạng thái đó.
Tương tự như vậy, hành động được thực hiện trong khi rời khỏi một trạng thái, bất kể quá trình chuyển đổi đã dẫn ra khỏi nó, được gọi là hành động thoát.
Tình huống
Kịch bản là mô tả của một chuỗi hành động cụ thể. Nó mô tả hành vi của các đối tượng trải qua một chuỗi hành động cụ thể. Các kịch bản chính mô tả các trình tự thiết yếu và các kịch bản phụ mô tả các trình tự thay thế.
Sơ đồ cho mô hình động
Có hai sơ đồ chính được sử dụng để lập mô hình động -
Sơ đồ tương tác
Biểu đồ tương tác mô tả hành vi động giữa các đối tượng khác nhau. Nó bao gồm một tập hợp các đối tượng, các mối quan hệ của chúng và thông điệp mà các đối tượng gửi và nhận. Do đó, một tương tác mô hình hóa hành vi của một nhóm các đối tượng có liên quan với nhau. Hai loại sơ đồ tương tác là -
Sequence Diagram - Nó đại diện cho thứ tự thời gian của các thông điệp theo cách lập bảng.
Collaboration Diagram - Nó thể hiện tổ chức cấu trúc của các đối tượng gửi và nhận thông điệp qua các đỉnh và cung.
Sơ đồ chuyển đổi trạng thái
Biểu đồ chuyển trạng thái hoặc máy trạng thái mô tả hành vi động của một đối tượng duy nhất. Nó minh họa các chuỗi trạng thái mà một đối tượng trải qua trong thời gian tồn tại của nó, sự chuyển đổi của các trạng thái, các sự kiện và điều kiện gây ra quá trình chuyển đổi và các phản ứng do các sự kiện đó gây ra.
Đồng thời của các sự kiện
Trong một hệ thống, có thể tồn tại hai loại đồng thời. Họ là -
Hệ thống đồng thời
Ở đây, đồng thời được mô hình hóa ở mức hệ thống. Hệ thống tổng thể được mô hình hóa là tập hợp các máy trạng thái, trong đó mỗi máy trạng thái thực thi đồng thời với các máy khác.
Đồng thời trong một đối tượng
Ở đây, một đối tượng có thể đưa ra các sự kiện đồng thời. Một đối tượng có thể có các trạng thái bao gồm các trạng thái con, và các sự kiện đồng thời có thể xảy ra trong mỗi trạng thái con.
Các khái niệm liên quan đến đồng thời trong một đối tượng như sau:
Các tiểu bang đơn giản và hỗn hợp
Một trạng thái đơn giản không có cấu trúc con. Một trạng thái có các trạng thái đơn giản hơn được lồng vào bên trong nó được gọi là trạng thái hỗn hợp. Trạng thái con là trạng thái được lồng bên trong trạng thái khác. Nó thường được sử dụng để giảm độ phức tạp của một máy trạng thái. Các trạng thái con có thể được lồng vào bất kỳ số cấp nào.
Các trạng thái tổng hợp có thể có các trạng thái con tuần tự hoặc các trạng thái con đồng thời.
Trạng thái con tuần tự
Trong các trạng thái con tuần tự, việc kiểm soát việc thực thi lần lượt chuyển từ trạng thái con này sang trạng thái con khác một cách tuần tự. Có nhiều nhất một trạng thái ban đầu và một trạng thái cuối cùng trong các máy trạng thái này.
Hình sau minh họa khái niệm về trạng thái con tuần tự.
Các trạng thái con đồng thời
Trong các trạng thái con đồng thời, các trạng thái con thực thi song song, hay nói cách khác, mỗi trạng thái có các máy trạng thái thực thi đồng thời bên trong nó. Mỗi máy trạng thái có trạng thái ban đầu và trạng thái cuối cùng của riêng nó. Nếu một trạng thái con đồng thời đạt đến trạng thái cuối cùng của nó trước trạng thái khác, thì điều khiển sẽ đợi ở trạng thái cuối cùng của nó. Khi tất cả các máy trạng thái lồng nhau đạt đến trạng thái cuối cùng của chúng, các trạng thái con tham gia trở lại một luồng duy nhất.
Hình sau đây cho thấy khái niệm về trạng thái con đồng thời.