Thiết kế kiến trúc là một quá trình sáng tạo nơi bạn thiết kế một hệ thống tổ chức mà sẽ đáp ứng các yêu cầu chức năng và phi chức năng của một hệ thống. Bởi vì nó là một quá trình sáng tạo, các hoạt động trong quá trình này phụ thuộc vào loại hệ thống được phát triển, các nền tảng và kinh nghiệm của các kiến trúc sư hệ thống, và các yêu cầu cụ thể cho hệ thống. Do đó hữu ích để suy nghĩ về thiết kế kiến trúc như một loạt các quyết định được thực hiện chứ không phải là một chuỗi các hoạt động. Trong quá trình thiết kế kiến trúc, hệ thống kiến trúc sư phải thực hiện một số quyết định cấu trúc sâu sắc ảnh hưởng đến hệ thống và quá trình phát triển của nó. Dựa trên kiến thức và kinh nghiệm của họ, họ phải xem xét dưới đây kết câu hỏi cơ bản về hệ thống:
1. Có một kiến trúc ứng dụng chung chung mà có thể hoạt động như một khuôn mẫu cho các hệ thống đang được thiết kế?
2. Làm thế nào hệ thống sẽ được phân phối trên một số lõi hoặc bộ vi xử lý?
3. Những mô hình kiến trúc, phong cách có thể được sử dụng?
4. Điều gì sẽ là cách tiếp cận cơ bản được sử dụng để cấu trúc hệ thống?
5. Làm thế nào sẽ là thành phần cấu trúc trong hệ thống được phân hủy thành các thành phần phụ?
6. Chiến lược nào sẽ được sử dụng để kiểm soát hoạt động của các thành phần trong hệ thống?
7. Những tổ chức kiến trúc là tốt nhất cho việc cung cấp các các yêu cầu phi chức năng của hệ thống?
8. Thiết kế kiến trúc sẽ được đánh giá như thế nào?
9. Làm thế nào nên các kiến trúc của hệ thống được ghi lại?
Mặc dù mỗi hệ thống phần mềm độc đáo, hệ thống trong cùng miền ứng dụng thường có kiến trúc tương tự như phản ánh các khái niệm cơ bản của tên miền. Ví dụ, dòng sản phẩm ứng dụng là các ứng dụng được xây dựng trên kiến trúc lõi với các biến thể đáp ứng yêu cầu của khách hàng cụ thể. Khi thiết kế một kiến trúc hệ thống, bạn phải quyết định những gì hệ thống của bạn và các lớp ứng dụng rộng lớn hơn có điểm chung, và quyết định bao nhiêu kiến thức từ các kiến trúc ứng dụng mà bạn có thể tái sử dụng. Tôi thảo luận về kiến trúc ứng dụng chung trong Mục 6.4 và sản phẩm ứng dụng dòng trong Chương 16. Đối với các hệ thống nhúng và các hệ thống được thiết kế cho các máy tính cá nhân, thường chỉ là một bộ xử lý duy nhất và bạn sẽ không cần phải thiết kế một ture trúc phân phối cho hệ thống. Tuy nhiên, hầu hết các hệ thống lớn hiện đang phân phối các hệ thống trong đó các phần mềm hệ thống được phân phối trên nhiều máy tính khác nhau. Sự lựa chọn của kiến trúc phân phối là một quyết định quan trọng ảnh hưởng đến hiệu suất và
đang được dịch, vui lòng đợi..