Chương I TỔNG QUAN VỀ HỆ THỜI GIAN THỰC
2.2 Phân tích thiết kế hướng mẫu - POAD
2.2.4 Thiết kế hướng mẫu
Trong giai đoạn này, sử dụng các mẫu trong tập mẫu đã được lựa chọn qua giai đoạn phân tích làm cơ sở xây dựng bản thiết kế đầu tiên.
Giai đoạn thiết kế gồm ba hoạt động chính:
1. Xây dựng sơ đồ mức mẫu thể hiện cấu tạo chung của các mẫu.
2. Xây dựng sơ đồ chi tiết thể hiện mối quan hệ giữa các mẫu.
3. Xây dựng sơ đồ chi tiết ứng dụng với cấu tạo bên trong của các mẫu.
Giai đoạn này tạo ra các mô hình thiết kế. Các loại mô hình thiết kế và các yếu tố sử dụng trong mô hình sẽ được sử dụng trong chương này với mục đích phát triển mô hình thiết kế hướng mẫu.
2.2.4.2 Mục đích của việc thiết kế hướng mẫu
Mục đích của giai đoạn thiết kế là sử dụng các mẫu thiết kế làm đơn vị cơ sở để tạo ra các bản thiết kế của ứng dụng. Bắt đầu từ tập các mẫu đã được lựa chọn trong giai đoạn phân tích.Chi tiết của giai đoạn thiết kế gồm :
Thiết kế tổng quát ứng dụng từ một hoặc nhiều sơ đồ mức mẫu.
Thiết kế giao diện dựa trên mối liên hệ giao diện giữa các mẫu.
Thiết kế chi tiết ứng dụng dựa trên cấu tạo bên trong của các mẫu.
2.2.4.3 Cấu trúc mẫu
Mục đích của giai đoạn này là tạo ra mô hình thiết kế của ứng dụng dựa trên các mẫu thiết kế.
a. Tạo các thể hiện của mẫu
Trên cơ sở các tài liệu mô tả mẫu về cấu tạo, các vấn đề mẫu giải quyết, các thành phần mẫu trong ngữ cảnh sử dụng phù hợp với mô hình ứng dụng hiện tại, đối chiếu mỗi mẫu với các trường hợp sử dụng trong thực tế, từ đó tiến hành định danh mẫu theo hai bước:
Thứ nhất xác định tên ứng dụng cụ thể (định danh) của mẫu và loại của mẫu, tên này sẽ được sử dụng trong suốt quá trình thiết kế.
Thứ hai là gắn các thuật ngữ ứng dụng cụ thể cho các thành phần bên trong của mẫu, các thuật ngữ này cũng được sử dụng trong suốt quá trình thiết kế chi tiết.
b. Nhiều thể hiện của cùng một kiểu
Người thiết kế có thể sử dụng nhiều định danh cho cùng một loại mẫu. Định danh của mẫu là để phân biệt các mẫu trong mô hình thiết kế.
c. Xác định các mối quan hệ giữa các thể hiện của mẫu
Sau khi định danh mẫu, bước tiếp theo là xác định mối quan hệ giữa các mẫu này. Trong phương pháp POAD thì mối quan hệ giữa các mẫu định danh là phụ thuộc.
Người thiết kế sẽ quyết định là có hoặc không có quan hệ phụ thuộc giữa các mẫu.
Rất khó để hiểu mối quan hệ giữa các mẫu nếu chỉ dựa trên các thể hiện tĩnh của ứng dụng. Các kết quả thu được từ phân tích ứng dụng sẽ hỗ trợ việc xác định mối quan hệ giữa các mẫu. Các nhà thiết kế có thể sử dụng ngữ cảnh UML hoặc sơ đồ tương tác để làm thể hiện mối quan hệ giữa các mẫu. Hoặc có thể sử dụng các tài liệu mẫu thu được từ quá trình phân tích bao gồm các mô tả về các thành phần ứng dụng và chức năng của chúng…Nói chung có một số kĩ thuật mà người thiết kế có thể sử dụng để xác định quan hệ giữa các mẫu như tìm hiều về các trạng thái của hệ thống, hành vi của đối tượng, sơ đồ đối tượng, …
d. Phát triển các biểu đồ mức mẫu
Trong suốt quá trình định danh mẫu và xác định quan hệ giữa các mẫu định danh, người thiết kế có thể phát triển sơ đồ mức mẫu. Sơ đồ này thể hiện các định danh mẫu và quan hệ giữa chúng. Sử dụng mô hình UML để biểu diễn sơ đồ mức mẫu. Sơ đồ mức mẫu là một biểu diễn của mẫu, nó bao gồm các kí hiệu và cú pháp thể hiện. Sơ đồ mức mẫu thể hiện các định danh mẫu và quan hệ giữa các định danh.
e. Hệ thống con và các khung làm việc
Người thiết kế có thể xây dựng sơ đồ mức mẫu cho toàn bộ ứng dung. Với các ứng dụng lớn và phức tạp, ta nên chia ứng dụng thành tập các hệ thống con hay khung làm việc. Khi đó, người thiết kế có thể xây dựng sơ đồ mức mẫu cho từng khung làm việc một. Khi không thể phân tích hệ thống theo một tập các mẫu do giới hạn của thư viện mẫu thì việc sử dụng khung làm việc là cần thiết. Khung làm việc kết hợp với sơ đồ mức mẫu là phân tích chi tiết ở mức thiết kế thấp hơn trong mô hình hướng đối tượng truyền thống như sơ đồ lớp.
f. Sản phẩm
Sản phẩm của giai đoạn này là sơ đồ mức mẫu của ứng dụng hoặc của mỗi hệ thống con hay khung làm việc.
2.2.4.4 Cấu trúc các mô hình mức mẫu chi tiết
Mục đích của hoạt động này là dựa vào sơ đồ thể hiện mẫu tìm hiểu cấu trúc bên trong của mẫu, từ đó xây dựng sơ đồ lớp của ứng dụng.
Tiến trình thực hiện:
a. Khai thác cấu trúc mẫu
Trong hoạt động này, người thiết kế tìm hiều về sơ đồ lớp bên trong mẫu dựa trên sơ đồ thể hiện mẫu. Trong môi trường phát triển tích hợp (IDE) hỗ trợ POAD, hoạt động này thường được thực hiện tự động và người thiết kế sẽ nhận được sơ đồ lớp của mỗi mẫu.
Người thiết kế cần tìm hiều các tài liệu mẫu, các thành phần cụ thể bên trong sơ đồ lớp và cách giải quyết các vấn đề thiết kế. Những hiểu biết thu được từ hoạt động này rất hữu ích cho việc xây dựng sơ đồ lớp cho toàn thể ứng dụng.
b. Những khía cạnh động là rất quan trọng
Hướng hoạt động của mẫu giúp người thiết kế hiều cách mà các thành phần bên trong mẫu liên hệ với bên ngoài, các tài liệu này tuy không đóng vai trò quyết định trong mô hình thiết kế ứng dụng nhưng lại rất quan trọng đối với sơ đồ lớp bên trong mỗi mẫu.
Trong POAD, sơ đồ lớp là giai đoạn gần với mức mã nguồn nhất, mỗi lớp trong sơ đồ tương ứng với một lớp trong mã ứng dụng, các ngôn ngữ hướng đối tượng đều hỗ trợ lớp trong xây dựng mã chương trình. Còn chuỗi các sự kiện, tương tác, đối tượng,… không tương ứng một một với mã chương trình, nhưng có vai trò thực hiện các phương thức trong mỗi lớp.
Một phần của hoạt động này là việc tìm hiểu hoạt động và vai trò của mỗi thành phần cụ thể, nó sẽ giúp người thiết kế hiểu sâu các chi tiết bên trong mẫu để giải quyết các vấn đề ứng dụng cụ thể.
c. Sự thực hiện các giao diện
Mỗi mẫu có một tập các thể hiện, các thể hiện có thể là phương thức hoặc lớp.
Người thiết kế cần xác định các thành phần thiết kế bên trong thực thi các thể hiện này. Mỗi thể hiện trong sơ đồ thể hiện mẫu tương ứng với một dấu hiệu bên trong thiết kế mẫu. Môi trường IDE sử dụng phần kết nối để chỉ ra liên hệ giữa thể hiện và các thành phần bên trong mẫu. Bộ phận kết nối này thường đơn giản như UML thực thi quan hệ giữa thể hiện với lớp trong sơ đồ lớp.
f. Sản phẩm
Sản phẩm của giai đoạn này là sơ đồ mẫu chi tiết sử dụng làm đầu vào trong các giai đoạn thiết kế sau