ScholarGate
Trợ lý

Thiết kế và Kiến trúc Phần mềm

Thiết kế và kiến trúc phần mềm liên quan đến cách một hệ thống phần mềm được cấu trúc thành các thành phần và kết nối, cách các trách nhiệm được phân tách, và cách các quyết định thiết kế đáp ứng các nhu cầu chức năng và thuộc tính chất lượng.

Tìm chủ đề với PaperMindSắp ra mắtFind papers & topics
Tools & resources
Tải xuống bản trình chiếu
Learn & explore
VideoSắp ra mắt

Definition

Thiết kế phần mềm là quá trình xác định kiến trúc, các thành phần, giao diện và các đặc điểm khác của một hệ thống, và kiến trúc phần mềm là tập hợp các cấu trúc bao gồm các yếu tố của hệ thống, các mối quan hệ của chúng và các thuộc tính của cả hai.

Scope

Lĩnh vực này bao gồm các kiểu và mẫu kiến trúc (phân lớp, client-server, microservices, hướng sự kiện, pipe-and-filter); các nguyên tắc thiết kế như tính mô-đun, che giấu thông tin, tính gắn kết, tính phụ thuộc, và phân tách mối quan tâm; thiết kế hướng đối tượng và dựa trên thành phần; các mẫu thiết kế; các thuộc tính chất lượng kiến trúc và sự đánh đổi của chúng; và các ký hiệu mô hình hóa như UML được sử dụng để thể hiện các thiết kế.

Sub-topics

Core questions

  • Một hệ thống nên được phân tách thành các mô-đun và thành phần như thế nào?
  • Kiểu kiến trúc nào hỗ trợ tốt nhất các thuộc tính chất lượng yêu cầu?
  • Các nguyên tắc thiết kế như tính phụ thuộc và tính gắn kết hướng dẫn cấu trúc tốt như thế nào?
  • Các vấn đề thiết kế lặp lại được giải quyết bằng các mẫu tái sử dụng như thế nào?

Key theories

Che giấu thông tin và tính mô-đun
Parnas đã lập luận rằng các mô-đun nên được định nghĩa để che giấu các quyết định thiết kế có khả năng thay đổi đằng sau các giao diện ổn định, để sự thay đổi được cục bộ hóa; nguyên tắc này là nền tảng của tính mô-đun, đóng gói và tính phụ thuộc thấp.
Các thuộc tính chất lượng kiến trúc và sự đánh đổi
Kiến trúc được thúc đẩy bởi các thuộc tính chất lượng như hiệu suất, khả năng sửa đổi, tính sẵn sàng và bảo mật; vì những thuộc tính này thường xung đột, kiến trúc về cơ bản là việc cân nhắc các đánh đổi được hướng dẫn bởi các chiến thuật và mẫu.
Các mẫu thiết kế
Các vấn đề thiết kế lặp lại có các giải pháp được hiểu rõ, có tên gọi — các mẫu tạo dựng, cấu trúc và hành vi — nắm bắt kinh nghiệm chuyên môn và cung cấp một vốn từ vựng chung cho thiết kế hướng đối tượng.

Clinical relevance

Các quyết định kiến trúc thường khó thay đổi nhất về sau và ảnh hưởng mạnh mẽ nhất đến các thuộc tính chất lượng của hệ thống, do đó, thiết kế và kiến trúc vững chắc có thể giảm chi phí bảo trì dài hạn, cho phép khả năng mở rộng và phát triển, cũng như định hình tổ chức nhóm.

Evidence & guidelines

Tiêu chuẩn ISO/IEC/IEEE 42010 chuẩn hóa mô tả kiến trúc, và lĩnh vực kiến thức Thiết kế Phần mềm của SWEBOK cùng với các tài liệu tham khảo như Software Architecture in Practice cung cấp hướng dẫn đồng thuận.

History

Các nguyên tắc thiết kế mô-đun đã được Parnas trình bày vào đầu những năm 1970. Thiết kế hướng đối tượng và các mẫu thiết kế đã phát triển mạnh mẽ vào những năm 1980 và 1990, kiến trúc phần mềm nổi lên như một lĩnh vực riêng biệt với công trình của Shaw và Garlan vào giữa những năm 1990, và các kiểu kiến trúc hướng dịch vụ và microservice tiếp nối vào những năm 2000 và 2010.

Debates

Kiến trúc nguyên khối so với kiến trúc microservice
Việc xây dựng hệ thống dưới dạng một khối nguyên khối có thể triển khai duy nhất hay nhiều dịch vụ có thể triển khai độc lập là một vấn đề được tranh luận rộng rãi; microservices mang lại khả năng mở rộng và triển khai độc lập với chi phí là sự phức tạp của hệ thống phân tán, vì vậy lựa chọn đúng đắn phụ thuộc vào quy mô và cấu trúc tổ chức.

Key figures

  • David Parnas
  • Mary Shaw
  • Len Bass
  • Erich Gamma
  • Grady Booch

Related topics

Seminal works

  • parnas1972
  • gamma1994
  • bass2012

Frequently asked questions

Sự khác biệt giữa thiết kế và kiến trúc là gì?
Kiến trúc liên quan đến các cấu trúc cấp cao nhất và các quyết định tốn kém nhất để thay đổi — các thành phần chính, sự tương tác của chúng và các thuộc tính chất lượng toàn hệ thống — trong khi thiết kế bao gồm cấu trúc nội bộ chi tiết hơn của các thành phần đó; ranh giới là một vấn đề về tầm quan trọng hơn là một đường phân định rõ ràng.
Tại sao các mẫu thiết kế lại quan trọng?
Các mẫu nắm bắt các giải pháp đã được chứng minh cho các vấn đề thiết kế lặp lại và cung cấp cho các kỹ sư một vốn từ vựng chung, giúp các thiết kế dễ dàng giao tiếp, suy luận và phát triển hơn; chúng là hướng dẫn cần được áp dụng một cách thận trọng, không phải là các công thức bắt buộc.

Methods for this concept

Related concepts