IV. Thiết kế
3. Thiết kế kiến trúc
Mục đích của thiết kế kiến trúc là phác họa các mô hình thiết kế và sự bố trí của chúng bằng cách xác định:
• Các nút và các cấu hình mạng của hệ thống • Các hệ thống con và các giao diện của chúng • Các lớp thiết kế quan trọng về mặt kiến trúc
• Các cơ chế thiết kế chung để xử lý các yêu cầu chung
Các hệ thống con, các giao diện, hoặc các yếu tố thiết kế khác nhận được sẽ được tích hợp vào trong mô hình thiết kế. Sau đó ta cần bảo trì, thẩm định lại và cập nhật mô tả kiến trúc của các mô hình thiết kế và mô hình bố trí
Mô hình bố trí
Mô hình bố trí là một mô hình đối tượng mô tả sự phân bố về mặt vật lỹ của hệ thống dưới dạng phân tán các chức năng trên các nút như thế nào. Mô hình bố trí bao gồm:
§ Các nút, các đặc trưng, và các kết nối của chúng § Một sự sắp xếp ban đầu các lớp hoạt động trên các nút
Mỗi nút thể hiện cho một nguồn tài nguyên tính toán. Các nút có các mối quan hệ với nhau thể hiện các phương tiện truyền thống giữa chúng
Mô hình bố trí có thể mô tả rất nhiều cấu hình mạng khác nhau. Chức năng của một nút được xác định bởi các thành phần được triển khai trên các nút đó
Xác định các nút và các cấu hình mạng
Các cấu hình mạng chung thường dùng một dạng mẫu hai/ba tầng trong đó các ứng dụng khách hàng được phân vào một tâng, chức năng cơ sở dữ liệu vào một tầng, và logic nghiệp vụ/ứng dụng vào một tầng. Dạng đơn giản của kiến trúc máy khách/dịch vụ là một trường hợp đặc biệt của dạng mẫu ba tâng, trong đó logic nghiệp vụ/ứng dụng được bố trí vào cùng trong một tầng
Những mặt khác nhau của các cấu hình mạng cần lưu ý bao gồm:
§ Những nút nào liên quan với nhau, các khả nang về công suất xử lý và kích cỡ bộ nhớ của chúng là bao nhiêu?
§ Kết nối giữa các nút thuộc loại nào, các giao thức truyền thông giữa chúng là gì?
§ Các đặc trưng của các kết nối và các giao thức truyền
§ Nhu cầu về khả năng xử lý dư thừa, về chế độ hỏng hóc, về sự di trú tiến trình, về việc duy trì các bản sao dữ liệu dự phòng?
Xác định các hệ thống con và các giao diện của chúng
Các hệ thống con thiết kế cung cấp một cách thức để tổ chức mô hình thiết kế thành các cụm có thể quản lý được. Chúng có thể được xác minh ngay từ đầu như là một cách để phân chia công việc thiết kế hoặc được xác định khi mô hình thiết kế tiến hóa và một cấu trúc lớn cần được phân rã ra
Việc đưa các hệ thống con như thế vào trong mô hình thiết kế cho phép có thể lập luận và đánh giá các cơ hội tái sử dụng của chúng
Hệ thống con thiết kế
Một hệ thống con có thể bao gồm các lớp thiết kế, các thực thi ca sử dụng, các giao diện và các hệ thống con. Ngoài ra, một hệ thống con có thể còn cung cấp các giao diện thể hiện cho các chức năng xuất ra dưới dạng các tác vụ
Xác định các hệ thống con ứng dụng
Trước hết xác định các hệ thống con trong các tầng ứng dụng cụ thể và tầng ứng dụng tổng quát
Các gói phân tích đã được tìm thấy trong quá trình phân tích có thể được sử dụng càng nhiều càng tốt để xác định các hệ thống con tương ứng bên trong mô hình thiết kế. Điều này là đặc biệt quan trọng khi xảy ra đối với các gói dịch vụ, giúp chúng ta xác định các hệ thống con dịch vụ tương ứng mà không phá vỡ cấu trúc của hệ thống tùy theo dịch vụ mà hệ thống cung cấp. Tuy nhiên, việc xác định ban đầu các hệ thống con này sẽ được tinh chế lại trong quá trình thiết kế. Việc thẩm định sự phân rã hệ thống con ban đầu này có thể là cần thiết trong một số trường hợp
Xác định các hệ thống con phần giữa và phần mềm hệ thống
Phần giữa và phần mềm hệ thống là nền móng của một hệ thống, vì mọi tính chức năng đều ở đỉnh của phần mềm như là các hệ điều hành, các hệ quản trị cơ sở dữ liệu, phần mềm truyền thống, các công nghệ phân tán đối tượng, các bộ dụng cụ thiết kế GUI, và các công nghệ quản lý giao dịch
Xác định các mối quan hệ phụ thuộc giữa các hệ thống con
Các mối quan hệ phụ thuộc giữa các hệ thống con phải được xác định nếu nội dung của chúng có các quan hệ lẫn nhau. Hướng của mối quan hệ phụ thuộc phải là cùng hướng với hướng của mối quan hệ. Hãy xét các mối quan hệ phụ thuộc giữa các gói phân tích tương ứng với các hệ thống con thiết kế
Xác định các giao diện của hệ thống con
Các giao diện được một hệ thống con cung cấp xác định các thao tác mà từ “bên ngoài” hệ thống con đó có thể được truy nhập đến nó. Các giao diện này do các lớp hoặc các hệ thống con khác bên trong hệ thống con đó cung cấp
Giao diện
Các giao diện được sử dụng để đặc tả các tác vụ mà các lớp thiết kế và các hệ thống con cung cấp. Phần lớn các giao diện giữa các hệ thống con đều mang ý nghĩa về mặt kiến trúc, xác định phạm vi và cách thức mà các hệ thống con được phép tương tác với nhau
Một lớp thiết kế cung cấp một giao diện thì cũng phải cung cấp các phương thức thực thi các tác vụ của giao diện đó. Một hệ thống con cung cấp một giao diện
thì phải chứa đựng các lớp thiết kế hoặc các hệ thống con khác cung cấp phương thức thực thi giao diện đó
Xác định các lớp thiết kế quan trọng về mặt kiến trúc
Trong thực tế, ta sớm xác định các lớp thiết kế quan trọng về mặt kiến trúc trong vòng đời của phần mềm để khởi đầu công việc thiết kế. Tuy nhiên, đa số các lớp thiết kế sẽ được xác định khi thiết kế các lớp và được tinh chế lại dựa trên các kết quả có được từ hoạt động thiết kế ca sử dụng
Mô tả kiến trúc thiết kế
Mô tả kiến trúc cho một mô hình thiết kế thường gồm: Các hệ thống con, các giao diện và các phụ thuộc giữa chúng
Các lớp thiết kế cốt lõi, chẳng hạn như các lớp thiết kế mà lần vết tới các lớp phân tích mang ý nghĩa kiến trúc, các lớp động, và các lớp thiết kế có tính chất tổng quát và trung tâm, thể hiện cho các cơ chế thiết kế chung và có nhiều mối quan hệ với các lớp thiết kế khác
Các thực thi ca sử dụng thiết kế để thực thi những chức năng cốt lõi và quan trọng nhất cần được phát triển trong vòng đời phát triển, liên quan rất nhiều các lớp thiết kế và có mức độ bao trùm lớm, qua nhiều hệ thống con khác nhau, hoặc liên quan đến những lớp thiết kế cốt lõi
+ Xác định các lớp thiết kế từ các lớp phân tích
Lúc bắt đầu một số lớp thiết kế có thể được phác thảo từ các lớp phân tích quan trọng về mặt kiến trúc đã xác định trong quá trình phân tích. Tương tự, các mối quan hệ giữa các lớp phân tích này có thể được dùng để xác định các mối quan hệ giữa các lớp thiết kế tương ứng
+ Xác định các lớp hoạt động
Ta cũng có thể xác định các lớp hoạt động do hệ thống yêu cầu bằng cách xem xét các yêu cầu đồng thời đối với hệ thống, chẳng hạn như:
§ Các yêu cầu về hiệu năng, lưu lượng, và tính sẵn sàng mà các tác nhân cần có khi chúng tương tác với hệ thống. Chẳng hạn, nếu một tác nhân nào đó có các yêu cầu cao về thời gian phúc đáp, thì yêu cầu đó có thể được quản
lý bằng một đối tượng hoạt động dành riêng để nhận đầu vào từ tác nhân và cung cấp đầu ra cho tác nhân đó – một đối tượng mà không bị dừng lại chỉ vì các đối tượng hoạt động khác chịu tải nặng rồi
§ Sự phân bố hệ thống trên các nút. Các đối tượng hoạt động cần hỗ trợ bằng sự phân bố trên nhiều nút khác nhau
§ Các yêu cầu khác như là các yêu cầu về sự khởi động và kết thúc hệ thống Để phác thảo các lớp hoạt động ban đầu có thể sử dụng các kết quả của sự phân tích mô hình bố trí làm đầu vào rồi sau đó bố trí các thiết kế tương ứng của các lớp phân tích cho các nút thông qua các lớp hoạt động
Một khả năng khác để phác thảo các lớp hoạt động là sử dụng các hệ thống con được xác định trước đó và phân toàn bộ một hệ thống con cho một nút riêng bằng cách xác định một lớp hoạt động bên trong hệ thống con
Xác định các cơ chế thiết kế chung
Ta cần đưa ra một bộ các cơ chế thiết kế chung. Các cơ chế này có thể biểu thị là các lớp thiết kế, các cộng tác, hoặc ngay cả các hệ thống con
Các yêu cầu cần phải xử lý thường có liên quan tới các vấn đề nhau sau: § Tính lâu bền
§ Phân bố đối tượng trong suốt § Các đặc trưng an toàn
§ Phát hiện lỗi và phục hồi § Quản lý giao dịch
Trong một số trường hợp, không thể tìm tháy cơ chế ngay nhưng thay vào đó lại tìm được khi các thực thi ca sử dụng và các lớp thiết kế được khảo sát
Người phát triển cũng phải xác định các cộng tác chung mà chúng có thể làm việc như là các dạng mẫu(pattern) và được sử dụng bởi nhiều thực thi ca sử dụng bên trong mô hình thiết kế