D) CÁC CÁCH BIỂU DIỄN CỦA MÔ HÌNH PHÂN TÍCH
e. Xây dựng các mô hình thiết kế
Các mô hình thiết kế chỉ ra các đối tượng hoặc các lớp đối tượng trong hệ thống và mối quan hệ giữa các thực thể này. Các mô hình thiết kế có nhiều khả năng sẽ trở thành các bản thiết kế. Nó là cầu nối giữa yêu cầu hệ thống và việc thực hiện hệ thống. Điều này có nghĩa là sẽ có những yêu cầu xung đột trong các mô hình này. Những xung đột này có thể được giải quyết bằng cách phát triển các mô hình ở những mức độ chi tiết khác nhau. Tuy nhiên, một bước quan trọng trong tiến trình thiết kế là việc quyết định mô hình nào sẽ được sử dụng và mức độ chi tiết của các mô hình. Điều này phụ thuộc vào kiểu hệ thống sẽ được phát triển. Một hệ thống xử lý tuần tự sẽ được thiết kế theo một cách khác so với các hệ thống nhúng thời gian thực, do đó sẽ sử dụng các mô hình thiết kế khác nhau. Có rất ít hệ thống cần đến tất cả các mô hình thiết kế. Tối thiểu hóa các mô hình thiết kế sẽ làm giảm chi phí và thời gian cần thiết cho tiến trình thiết kế.
Có 2 kiểu mô hình thiết kế thường được sử dụng trong thiết kế hướng đối tượng:
- Các mô hình tĩnh: mô tả cấu trúc tĩnh của hệ thống sử dụng các lớp đối tượng và các mối quan hệ giữa chúng. Các mối quan hệ quan trọng có thể được tài liệu hóa trong giai đoạn này là các mối quan hệ kế thừa và khái quát hóa, sử dụng/được sử dụng bởi các mối quan hệ và các mối quan hệ hợp thành.
- Các mô hình động: mô tả cấu trúc động của hệ thống và chỉ ra mối tương tác giữa các đối tượng hệ thống (không phải là các lớp đối tượng). Các mối tương tác có thể được tài liệu hóa bao gồm thứ tự của dịch vụ yêu cầu được thực hiện bởi các đối tượng và cách thức mà trạng thái của hệ thống liên quan tới các tương tác đối tượng này.
UML cung cấp 12 mô hình động và tĩnh khác nhau để giúp cho quá trình thiết kế. Phần này không giới thiệu tất cả các mô hình, mà chỉ giới thiệu những mô hình thích hợp cho ví dụ trạm dự báo thời tiết, đó là các mô hình sau:
Mô hình hệ thống con
Các mô hình hệ thống con chỉ ra việc nhóm một cách logic các đối tượng vào những hệ thống con. Điều này được thể hiện bằng cách sử dụng một mẫu sơ đồ các lớp, trong đó mỗi hệ thống con là một gói. Một mô hình hệ thống con là một mô hình tĩnh hữu ích khi nó chỉ ra cách thức nhóm các đối tượng có liên quan vào các nhóm. Hình 6.21 chỉ ra các hệ thống con trong hệ thống bản đồ thời tiết. Các gói UML thể hiện tính cấu trúc và không phản ánh trực tiếp các đối tượng sẽ được phát triển trong hệ thống.
Hình 6.21. Mô hình hệ thống con của trạm khí tượng
Hình vẽ trên chỉ ra các đối tượng trong các hệ thống con của trạm khí tượng. Mô hình trên
cũng chỉ ra mối liên kết giữa các đối tượng trong mô hình. Ví dụ, đối tượng CommsController được kết hợp với đối tượng WeatherStation và đối tượng WeatherStation được kết hợp vào gói Data collection. Điều này có nghĩa là đối tượng này được kết hợp với một hoặc nhiều đối tượng khác trong gói. Một mô hình gói kết hợp với một mô hình lớp đối tượng có thể mô tả các nhóm logic trong hệ thống.
Mô hình tuần tự
Các mô hình tuần tự chỉ ra thứ tự các tương tác của đối tượng. Các mô hình này được thể hiện bằng cách sử dụng một lược đồ tuần tự hoặc song song. Các mô hình tuần tự là các mô hình động, thể hiện một tương tác trong hệ thống và thứ tự của các tương tác này. Trong một mô hình tuần tự:
- Các đối tượng liên quan trong tương tác này được bố trí theo chiều ngang với một đường thẳng đứng được liên kết với từng đối tượng.
- Thời gian được biểu diễn theo chiều thẳng đứng, trình tự tính từ trên xuống dưới.
- Các mũi tên được gán nhãn kết nối giữa các trục thẳng đứng biểu diễn các tương tác giữa các đối tượng. Đây không phải là các luồng dữ liệu mà nó biểu diễn các thông điệp hoặc những sự kiện quantrọng của tương tác.
- Các hình chữ nhật rỗng biểu diễn thời gian mà một đối tượng kiểm soát một đối tượng khác trong hệ thống. Một đối tượng lấy quyền điều khiển ở trên đỉnh của hình chữ nhật và trả lại quyền điều khiển cho đối tượng khác tại điểm đáy của hình chữ nhật. Nếu có sự kế thừa trong lời
« subsy stem»
Inter face Data collection« subsy stem»
CommsController WeatherStation WeatherData Instrument Status « subsy stem» Instruments Air thermometer Ground thermometer RainGauge Barometer Anemometer WindVane
Hình 6.22. Mô hình tuần tự của phương thức report() trong hệ thống trạm khí tượng
Hình 6.22 chỉ ra thứ tự của các tương tác khi hệ thống bản đồ bên ngoài yêu cầu dữ liệu từ các trạm thời tiết. Ta có thể đọc sơ đồ này từ trên xuống dưới:
1. Một đối tượng là một sự kiện của lớp CommsController (:CommsController) nhận một tín hiệu từ môi trường (bên ngoài) yêu cầu thu thập dữ liệu thời tiết. Nó báo cho đối tượng gửi yêu cầu là đã nhận được tín hiệu yêu cầu này. Đầu mũi tên của thông điệp phản hồi chỉ ra rằng bên gửi thông điệp không mong chờ thông tin phản hồi.
2. Đối tượng này gửi một thông điệp tới một đối tượng là một sự kiện của WeatherStation để tạo ra một bản tin thời tiết. Sự kiện của CommsController sau đó rơi vào trạng thái treo. Kiểu mũi tên này được sử dụng để chỉ ra rằng một sự kiện đối tượng CommsController và một sự kiện của đối tượng WeatherStation là các đối tượng có thể thực thi đồng thời.
3. Đối tượng là một sự kiện của WeatherStation gửi một thông điệp tới đối tượng WeatherData để tóm lược dữ liệu thời tiết. Trong trường hợp này, mũi tên đặc chỉ ra rằng sự kiện của WeatherStation đang đợi câu trả lời.
4. Bản tóm tắt này được tính toán và điều khiển trả lại cho đối tượng WeatherStation. Đường mũi tên nét đứt chỉ ra việc trả điều khiển.
5. Đối tượng này gửi một thông điệp cho yêu cầu CommsController để truyền dữ liệu tới một hệ thống từ xa. Đối tượng WeatherStation sau đó rơi vào trạng thái treo.
6. Đối tượng CommsController gửi dữ liệu đã được tóm lược tới hệ thống từ xa, nhận một
thông tin phản hồi, sau đó rơi vào trạng thái treo, đợi yêu cầu tiếp theo.
Từ lược đồ tuần tự này, chúng ta có thể nhận thấy rằng đối tượng CommsCotroller và đối tượng WeatherStation là những tiến trình song song, nơi thực thi có thể bị treo hoặc trở về trạng thái ban đầu. Thực ra, sự kiện của đối tượng CommsController nghe thông điệp từ hệ thống bên ngoài, giải mã thông điệp này và khởi tạo các phương thức của trạm thời tiết.
Mô hình trạng thái máy
Các mô hình trạng thái máy chỉ ra cách thức một đối tượng thay đổi trạng thái của mình khi phải trả lời các sự kiện. Các mô hình này được biểu diễn bằng các biểu đồ trạng thái. Các mô hình trạng thái là các mô hình động được sử dụng cho mô hình kết hợp các hoạt động của một nhóm đối tượng, nhưng cũng có thể sử dụng để tóm lược hoạt động của một đối tượng đơn khi nó trả lời một thông điệp mà nó phải xử lý. Để làm được điều này, ta có thể sử dụng mô hình trạng thái máy để chỉ ra các đối tượng thay đổi trạng thái như thế nào phụ thuộc vào thông điệp mà nó nhận được. UML sử dụng các lược đồ trạng thái để mô tả các mô hình trạng thái.
Hình 6.23 là một lược đồ trạng thái cho đối tượng WeatherStation chỉ ra làm thế nào nó trả lời các yêu cầu của các dịch vụ khác nhau.
Hình 6.23. Lược đồ trạng thái của đối tượng WeatherStation
Sơ đồ này có thể đọc như sau:
1. Nếu trạng thái của đối tượng là Shutdown thì sau đó nó chỉ có thể trả lời thông điệp
startup(), nó sẽ được chuyển sang trạng thái chờ thông điệp tiếp theo được gửi đến. Đường mũi tên không gán nhãn và có hình tròn ở đầu chỉ ra rằng trạng thái Shutdown là trạng thái khởi đầu.
2. Trong trạng thái chờ, hệ thống chờ đợi thông điệp tiếp theo. Nếu nó nhận được thông điệp
shutdown(), thì đối tượng trở về trạng thái Shutdown.
3. Nếu nhận được thông điệp reportWeather(), hệ thống sẽ chuyển sang trạng thái
5. Nếu có một tín hiệu từ đồng hồ, hệ thống sẽ chuyển sang trạng thái Collecting, nó tiến hành thu thập dữ liệu từ các thiết bị. Mỗi thiết bị được chỉ thị để trả lại kết quả thu thập được.