3. Cấu trúc của luận văn
1.4.3. Thiết kế khung làm việc 26
Pha thiết kế khung làm việc bao gồm thiết kế kiến trúc, mà ở đó xác định các đối tƣợng và sự cộng tác giữa chúng, và thiết kế chi tiết, mà ở đó các lớp và các phƣơng thức của nó đƣợc mô tả chi tiết hơn. Đầu ra từ pha thiết kế là một mô hình đối tƣợng tĩnh và các mô hình động mô tả các sự cộng tác. Các mô hình này nên tạo thành một nền tảng đầy đủ cho sự thực hiện hệ thống.
1.4.3.1. Quá trình thiết kế
Một thiết kế khung làm việc sẽ cung cấp các chức năng chung và trừu tƣợng đã đƣợc nhận dạng trong việc phân tích. Nó là sự thực hiện các phần chung của các ứng dụng trong miền ứng dụng.
Hình 1.10. Khung làm việc là phần chung của các ứng dụng trong một miền [1]. Hình 1.10 là tiến trình của pha thiết kế, trong đó các thiết kế đƣợc đánh giá liên tục và các giải pháp thiết kế đề xuất có thể đƣợc kiểm chứng bằng các mẫu. Trong pha thiết kế kiến trúc, đối tƣợng và các sự cộng tác của chúng sẽ đƣợc thay đổi, khi cân nhắc tới môi trƣờng thực hiện. Còn trong pha thiết kế chi tiết, các đối tƣợng đƣợc nhận dạng trong pha thiết kế kiến trúc sẽ đƣợc mô tả theo ngôn ngữ dự định dùng đƣợc để thực hiện khung làm việc và nếu cần thiết, các đối tƣợng đó sẽ đƣợc làm mịn. Tiến trình của pha thiết kế đƣợc chỉ ra trong hình 1.10.; Trong đó, các thiết kế đƣợc đánh giá liên tục và các giải pháp thiết kế đề xuất có thể đƣợc kiểm chứng bằng cách làm mẫu.
Ứng dụng 1 Ứng dụng 2
Hình 1.11. Các hoạt động trong pha thiết kế khung làm việc [7].
Trong thực tế, bằng cách nghiên cứu các ví dụ cụ thể có thể tìm ra các yếu tố rừu tƣợng của thiết kế đƣợc tìm từ “dƣới lên”. Thiết kế nên là một tổng quan trong đầu của các nhà thiết kế, một thiết kế mẫu hoặc một ứng dụng cũ trong đó vấn đề thiết kế tƣơng tự đã đƣợc giải quyết.
Ngoài việc tìm ra các trừu tƣợng, trong pha này còn phải nhận dạng các giải pháp thiết kế chung. Một giải pháp thiết kế chung không chỉ giải quyết vấn đề hiện tại mà còn sử dụng đƣợc với những vấn đề tƣơng tự. Các mẫu thiết kế là các giải pháp chung cho các vấn đề mà thƣờng xảy ra trong thiết kế khung làm việc. Các mẫu thiết kế không những giúp cho việc trao đổi giữa các nhóm thiết kế mà còn làm cho khung làm việc đƣợc hiểu dễ dàng hơn.
1.4.3.2. Thiết kế kiến trúc
Khi thiết kế kiến trúc, một mô tả mức cao của khung làm việc và các ứng dụng đƣợc đƣa ra dựa trên các mô hình phân tích. Các hoạt động trong hình 1.12 là chung cho thiết kế kiến trúc trong hầu hết các phƣơng pháp hƣớng đối tƣợng. Mục tiêu của thiết kế kiến trúc là để nhận dạng các đối tƣợng cần có để thực hiện hệ thống và cách mà chúng cộng tác với nhau. Trong pha này, nếu cần thiết, hệ thống sẽ đƣợc chia thành các hệ thống con.
Hình 1.12. Các hoạt động trong pha thiết kế kiến trúc [1].
Các yêu cầu và các mô hình phân tích chính là đầu vào của pha thiết kế kiến trúc, trong khi đó đầu ra của nó là các mô hình theo dạng của mô hình đối tƣợng tĩnh hoặc các mô hình động (các biểu đồ trạng thái, các lƣợc đồ tƣơng tác và các mô hình luồng dữ liệu). Các mô hình này sẽ là cơ sở cho việc nhận dạng cách thực hiện bằng các lớp.
a. Làm mịn mô hình đối tượng phân tích
Trong bƣớc làm mịn mô hình đối tƣợng phân tích, các đối tƣợng mới có thể đƣợc đƣa ra để điều chỉnh hệ thống trong suốt quá trình phát triển. Cần thực hiện song song phân tích môi trƣờng thực hiện với pha phân tích, hoặc ít nhất phân tích môi trƣờng thực hiện trƣớc khi bắt đầu pha thiết kế. Các thay đổi khác có thể là loại bỏ, chia tách hoặc sát nhập các đối tƣợng nhận đƣợc từ sự phân tích. Cần phải kiểm soát các thay đổi đó vì chúng thƣờng có xu hƣớng làm giảm sức mạnh của hệ thống do kiến trúc bị thay đổi.
b. Gán các trách nhiệm hệ thống tới các đối tượng cụ thể
Trách nhiệm của một đối tƣợng hoặc một hệ thống đƣợc định nghĩa nhƣ là “kiến thức để duy trì và các hoạt động mà nó có thể đƣợc thực hiện”. Trong hệ thống, trách nhiệm sẽ đƣợc phân phối cho các đối tƣợng đã đƣợc nhận dạng trong các pha sớm hơn.
Các trách nhiệm nên đƣợc đặt tại lớp mà về lôgíc lớp có trách nhiệm này. Trong một số trƣờng hợp, khó biết một trách nhiệm thuộc về một lớp nào. Sau đó, ngƣời thiết kế nên hƣớng tới mức cao nhất của sự trừu tƣợng. Nếu một trách nhiệm có thể thuộc
về một vài lớp từ quan điểm đƣợc lôgic, thì trách nhiệm này nên đặt trong lớp ở mức trừu tƣợng cao hơn.
c. Phân tích các sự cộng tác
Khi một đối tƣợng cần đến một hoặc nhiều các tác vụ của các đối tƣợng khác để thực hiện đầy đủ chức năng của mình thì nó sẽ công tác với một đối tƣợng khác đó.
Đối với mỗi đối tƣợng và mỗi trách nhiệm, sự cộng tác đƣợc tìm ra nếu nhƣ trách nhiệm này chỉ có thể đƣợc đáp ứng đầy đủ nếu có sự cộng tác với các đối tƣợng khác.
Hình 1.13. Nguyên tắc định nghĩa sự cộng tác giữa các lớp trừu tƣợng [1].
d.Làm mịn các cấu trúc thừa kế và các sự cộng tác
Hoạt động làm mịn đƣợc thực hiện trong suốt quá trình thiết kế. Các sự trừu tƣợng không đƣợc xác định nghĩa một lần, các nhà thiết kế hầu nhƣ chắc chắn phải lặp lại thông qua các hoạt động trƣớc.
Một sự quan tâm chính khi làm mịn các cấu trúc phân cấp và các sự cộng tác nên giữa các chức năng chung và các trừu tƣợng đã đƣợc nhận dạng trong sự phân tích. Sự làm mịn sâu hơn không nên vi phạm các trừu tƣợng có tính khái niệm này.
Một cách để bắt đầu sự làm mịn là tìm các siêu lớp mà thực hiện cùng một tác vụ và cố gắng chuyển tác vụ này vào một siêu lớp mới. Bất kỳ khi nào, sự thừa kế nên đƣợc thay thế bằng tổ hợp.
Các nhà thiết kế nên tìm các lớp hoặc các tác vụ mà có các tên khác nhau, nhƣng cung cấp cùng chức năng. Đặt tên lại cho chúng là một cách đơn giản có thể chấp nhận đƣợc, và sẽ làm dễ dàng hơn nhận ra các điểm chung.
Nếu có các tác vụ hoặc các lớp mà cung cấp các chức năng gần giống nhau, thì có thể sử dụng tham số cho chúng. Các lớp tƣơng tự trong các ứng dụng khác có thể đƣợc thay thế bởi một lớp chung trong khung làm việc. Lớp này sẽ sử dụng việc truyền các tham số khác nhau, tùy thuộc vào ứng dụng sử dụng lớp này.
1.4.3.3. Thiết kế chi tiết
Trong pha thiết kế chi tiết, tất cả các lớp với các thuộc tính và các tác vụ đƣợc nhận dạng và đƣợc mô tả, khi sử dụng ngôn ngữ thực hiện dự định. Đầu vào là các đối tƣợng và các sự cộng tác đƣợc nhận dạng trong thiết kế kiến trúc, đã mô tả trong mô hình đối tƣợng tĩnh và các mô hình động, ví dụ các lƣợc đồ tƣơng tác và các biểu đồ chuyển dịch trạng thái.
Một tác vụ nên thực hiện nhiều hơn một nhiệm vụ. Một tác vụ mà thực hiện nhiều nhiệm vụ khác nhau nên đƣợc chia thành một vài tác vụ. Các lớp có nhiều hơn 25 tác vụ [1] mô tả các sự trừu tƣợng phức tạp, và có thể chứa một vài các trừu tƣợng khác. Các sự trừu tƣợng này nên có lớp của bản thân nó. Các sự trừu tƣợng có thể đƣợc đƣa ra từ các mô hình mà chúng thuộc về, để duy trì cấu trúc của tài liệu. Các sự trừu tƣợng mang tính khái niệm thuộc về sự phân tích.
Để nhận dạng đƣợc các lớp sâu hơn, các ký hiệu tác vụ nên là thống nhất, tính chất đồng dạng nên đƣợc chú trọng hơn là tính cụ thể.