Thiết Kế Kiến Trúc Phần Mềm: Các Yếu Tố Quan Trọng Cần Biết

Chuyên khảo phân tích 06 architectural design, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo., phục vụ nghiên cứu và ứng dụng thực tiễn

Trường đại học

Trường Đại Học

Chuyên ngành

Công Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

Bài Giảng

2023

55
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

1. Quyết định chọn kiến trúc thiết kế

2. Các góc nhìn về kiến trúc

3. Các kiến trúc mẫu

4. Các kiến trúc ứng dụng

Tóm tắt

I. Tổng Quan Về Thiết Kế Kiến Trúc Phần Mềm

Thiết kế kiến trúc phần mềm là một giai đoạn quan trọng trong quy trình phát triển phần mềm. Nó không chỉ định hình cách thức tổ chức hệ thống mà còn đảm bảo rằng các yêu cầu chức năng và phi chức năng được đáp ứng. Kiến trúc phần mềm giúp xác định các thành phần chính và cách chúng tương tác với nhau. Việc hiểu rõ về kiến trúc phần mềm là điều cần thiết để phát triển các ứng dụng hiệu quả và bền vững.

1.1. Khái Niệm Về Kiến Trúc Phần Mềm

Kiến trúc phần mềm là cấu trúc tổng thể của một hệ thống phần mềm, bao gồm các thành phần và mối quan hệ giữa chúng. Nó giúp định hình cách thức mà các component tương tác và giao tiếp với nhau.

1.2. Vai Trò Của Thiết Kế Kiến Trúc

Thiết kế kiến trúc đóng vai trò cầu nối giữa yêu cầu phần mềm và thiết kế chi tiết. Nó giúp nhận diện các component chính và cách thức giao tiếp giữa chúng, từ đó tạo ra một mô hình kiến trúc hoàn chỉnh.

II. Các Thách Thức Trong Thiết Kế Kiến Trúc Phần Mềm

Thiết kế kiến trúc phần mềm không phải là một nhiệm vụ đơn giản. Có nhiều thách thức mà các nhà phát triển phải đối mặt, từ việc lựa chọn mô hình kiến trúc phù hợp đến việc đảm bảo rằng hệ thống có thể mở rộng và bảo trì dễ dàng. Những thách thức này có thể ảnh hưởng đến hiệu suất và tính khả thi của hệ thống.

2.1. Lựa Chọn Mô Hình Kiến Trúc Phù Hợp

Việc lựa chọn mô hình kiến trúc phù hợp là một trong những thách thức lớn nhất. Các nhà phát triển cần xem xét các yếu tố như yêu cầu chức năng, phi chức năng và khả năng mở rộng của hệ thống.

2.2. Đảm Bảo Tính Khả Thi Của Hệ Thống

Tính khả thi của hệ thống phụ thuộc vào khả năng đáp ứng các yêu cầu thay đổi trong tương lai. Thiết kế kiến trúc cần phải linh hoạt để có thể thích ứng với các thay đổi này mà không làm giảm hiệu suất.

III. Phương Pháp Thiết Kế Kiến Trúc Phần Mềm Hiệu Quả

Để thiết kế kiến trúc phần mềm hiệu quả, các nhà phát triển có thể áp dụng nhiều phương pháp khác nhau. Những phương pháp này không chỉ giúp tối ưu hóa quy trình phát triển mà còn đảm bảo rằng hệ thống đáp ứng được các yêu cầu đặt ra.

3.1. Sử Dụng Các Mô Hình Kiến Trúc

Các mô hình kiến trúc như MVC, kiến trúc phân tầng, và kiến trúc client-server là những công cụ hữu ích trong thiết kế. Chúng giúp tổ chức hệ thống một cách rõ ràng và dễ hiểu.

3.2. Tái Sử Dụng Kiến Trúc

Tái sử dụng kiến trúc từ các hệ thống trước đó có thể tiết kiệm thời gian và công sức. Các hệ thống có cùng lĩnh vực thường có cấu trúc tương tự nhau, giúp giảm thiểu rủi ro trong quá trình phát triển.

IV. Ứng Dụng Thực Tiễn Của Thiết Kế Kiến Trúc Phần Mềm

Thiết kế kiến trúc phần mềm có nhiều ứng dụng thực tiễn trong các lĩnh vực khác nhau. Từ các hệ thống thương mại điện tử đến các ứng dụng xử lý ngôn ngữ, kiến trúc phần mềm đóng vai trò quan trọng trong việc đảm bảo hiệu suất và tính khả thi của hệ thống.

4.1. Hệ Thống Thương Mại Điện Tử

Trong các hệ thống thương mại điện tử, thiết kế kiến trúc phần mềm giúp quản lý các giao dịch và thông tin khách hàng một cách hiệu quả. Kiến trúc phân tầng thường được sử dụng để tổ chức các chức năng khác nhau.

4.2. Ứng Dụng Xử Lý Ngôn Ngữ

Các ứng dụng xử lý ngôn ngữ như trình biên dịch và hệ thống dịch thuật cần một kiến trúc mạnh mẽ để xử lý các yêu cầu phức tạp từ người dùng. Thiết kế kiến trúc phần mềm giúp đảm bảo rằng các yêu cầu này được đáp ứng một cách hiệu quả.

V. Kết Luận Về Thiết Kế Kiến Trúc Phần Mềm

Thiết kế kiến trúc phần mềm là một lĩnh vực quan trọng trong phát triển phần mềm. Nó không chỉ giúp tổ chức hệ thống mà còn đảm bảo rằng các yêu cầu được đáp ứng một cách hiệu quả. Tương lai của thiết kế kiến trúc phần mềm sẽ tiếp tục phát triển với sự xuất hiện của các công nghệ mới và các phương pháp tiếp cận sáng tạo.

5.1. Xu Hướng Tương Lai Trong Thiết Kế Kiến Trúc

Với sự phát triển của công nghệ, thiết kế kiến trúc phần mềm sẽ ngày càng trở nên phức tạp hơn. Các nhà phát triển cần phải cập nhật kiến thức và kỹ năng để đáp ứng các yêu cầu mới.

5.2. Tầm Quan Trọng Của Kiến Trúc Phần Mềm

Kiến trúc phần mềm không chỉ là một phần của quy trình phát triển mà còn là yếu tố quyết định đến thành công của một hệ thống. Việc đầu tư vào thiết kế kiến trúc sẽ mang lại lợi ích lâu dài cho các dự án phần mềm.

15/07/2025
06 architectural design

Trích đoạn nội dung tài liệu

Nhập môn Công nghệ phần mềm Tuần 9: Thiết kế kiến trúc phần mềm Nội dung của slide này được dịch và hiệu chỉnh dựa vào các slides của Ian Sommerville Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4.

Các kiến trúc ứng dụng 2 NGUYỄN Thị Minh Tuyền Kiến trúc phần mềm £ Thiết kế kiến trúc liên quan đến việc hiểu một hệ thống được tổ chức như thế nào và thiết kế toàn bộ kiến trúc của hệ thống đó. £ Đầu ra: mô hình kiến trúc. 3 NGUYỄN Thị Minh Tuyền Thiết kế kiến trúc £ Là giai đoạn đầu tiên của một quy trình thiết kế hệ thống. £ Là cầu nối giữa yêu cầu phần mềm và thiết kế.

£ Thực tế: Thiết kế kiến trúc thường được tiến hành song song với các hoạt động đặc tả. £ Bước này giúp nhận diện các component chính của hệ thống và cách thức giao tiếp giữa các component. 4 NGUYỄN Thị Minh Tuyền Các mức trừu tượng của kiến trúc £ Kiến trúc phần mềm nhỏ p Liên quan đến kiến trúc của các chương trình đơn lẻ. p Một chương trình được phân thành các component.

£ Kiến trúc hệ thống lớn p Liên quan đến kiến trúc của một hệ thống phức tạp gồm nhiều hệ thống khác, chương trình và các component của chương trình. p Những hệ thống này được phân tán trên nhiều máy tính khác nhau, có thể được sở hữu và quản lý bởi nhiều công ty khác nhau. 5 NGUYỄN Thị Minh Tuyền Ưu điểm của kiến trúc £ Giao tiếp với các stakeholder p Kiến trúc là biểu diễn mức cao của hệ thống p Được sử dụng để thảo luận với các stakeholder. £ Phân tích hệ thống p Là cách để phân tích xem liệu hệ thống có đáp ứng được các yêu cầu phi chức năng hay không.

£ Tái sử dụng p Kiến trúc có thể được tái sử dụng cho nhiều hệ thống khác. 6 NGUYỄN Thị Minh Tuyền Biểu diễn kiến trúc £ Sử dụng biểu đồ khối [Hofmeister et al., 2000] p Đơn giản, không mang tính hình thức để chỉ ra các thực thể và quan hệ giữa chúng. p Biểu diễn một góc nhìn toàn cảnh về cấu trúc hệ thống: những người thuộc các lĩnh vực khác nhau vẫn có thể hiểu được. £ Việc sử dụng loại kiến trúc này bị chỉ trích trong một thời gian dài p Thiếu ngữ nghĩa, không chỉ ra được loại quan hệ giữa các thực thể và không chỉ ra các thuộc tính của thực thể trong kiến trúc.

[Bass et al., 2003] 7 NGUYỄN Thị Minh Tuyền Kiến trúc của hệ thống điều khiển robot Vision system Object Arm Gripper identification controller controller system Packaging selection system Packing Conveyor system controller 8 NGUYỄN Thị Minh Tuyền Sử dụng các mô hình kiến trúc £ Là phương tiện để thảo luận về thiết kế hệ thống p Thiết kế kiến trúc ở mức cao có ích khi giao tiếp với các stakeholder và lên kế hoạch dự án vì nó không đi sâu vào chi tiết. p Các stakeholder có thể hiểu được mô hình trừu tượng của hệ thống è hỗ trợ việc thảo luận về toàn bộ hệ thống mà không bị rối bởi việc quá đi sâu vào chi tiết. £ Là cách để viết tài liệu về kiến trúc đã được thiết kế p Mục tiêu: tạo ra một mô hình hệ thống hoàn chỉnh trong đó nó chỉ ra được các component khác nhau trong hệ thống, giao diện và sự kết nối của chúng. 9 NGUYỄN Thị Minh Tuyền Nội dung 1.

Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng 10 NGUYỄN Thị Minh Tuyền Quyết định chọn kiến trúc thiết kế £ Thiết kế kiến trúc là một quy trình sáng tạo p Thiết kế tổ chức của một hệ thống thoả mãn được các yêu cầu chức năng và yêu cầu phi chức năng.

p Các hoạt động trong quy trình phụ thuộc vào loại ứng dụng được phát triển, kinh nghiệm của người thiết kế kiến trúc và các yêu cầu cụ thể của hệ thống. £ Thiết kế kiến trúc được xem như là một chuỗi các quyết định hơn là một chuỗi tuần tự các hoạt động. 11 NGUYỄN Thị Minh Tuyền Quyết định chọn kiến trúc thiết kế 1. Có thể sử dụng kiến trúc tổng quát nào không? 2.

Hệ thống được phân tán như thế nào? 3. Mẫu kiến trúc nào phù hợp? 4. Phương pháp nào được sử dụng để cấu trúc hóa hệ thống? 5. Hệ thống được phân rã thành các module như thế nào? 6.

Chiến thuật nào được sử dụng để điều khiển hoạt động của các component trong hệ thống? 7. Kiến trúc được thiết kế như thế nào để thoả mãn tốt nhất 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á bằng cách nào? 9. Kiến trúc được viết thành tài liệu như thế nào? 12 NGUYỄN Thị Minh Tuyền Tái sử dụng kiến trúc £ Các hệ thống có cùng lĩnh vực thường có cấu trúc tương tự nhau p Phản ánh những đặc điểm của lĩnh vực đó.

£ Kiến trúc của một hệ thống có thể được thiết kế dựa vào một hoặc nhiều mẫu kiến trúc có sẵn (architectural pattern). £ Mẫu kiến trúc p Mô tả về kiến trúc của một hệ thống. p Chứa các đặc điểm chính của một kiến trúc đã được sử dụng qua các hệ thống phần mềm khác nhau. 13 NGUYỄN Thị Minh Tuyền Kiến trúc và đặc điểm của hệ thống £ Hiệu năng (Performance) p Định vị các chức năng quan trọng trong một số ít component và giảm thiểu giao tiếp.

Những component này được triển khai trên cùng một máy tính. £ Bảo mật (Security) p Sử dụng kiến trúc phân tầng với các phần quan trọng được đặt ở các lớp trong cùng. £ An toàn (Safety) p Định vị các thao tác liên quan đến an toàn trong một số ít các hệ thống con. £ Tính thường trực (Availability) p Thiết kế sẵn các component dư thừa sao cho có thể thay thế hoặc cập nhật các component mà không phải dừng hệ thống, nghĩa là đảm bảo cho hệ thống hoạt động liên tục.

£ Tính dễ bảo trì (Maintainability) p Sử dụng các component nhỏ, chi tiết, có thể thay thế được. 14 NGUYỄN Thị Minh Tuyền Nội dung 1. Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3.

Các kiến trúc mẫu 4. Các kiến trúc ứng dụng 15 NGUYỄN Thị Minh Tuyền Các góc nhìn về mặt kiến trúc £ Mỗi mô hình kiến trúc chỉ thể hiện một góc nhìn về hệ thống. £ Khi thiết kế và viết tài liệu: cần biểu diễn hệ thống phần mềm ở nhiều góc nhìn khác nhau. 16 NGUYỄN Thị Minh Tuyền Mô hình kiến trúc phần mềm 4 + 1 biểu diễn hệ thống dưới chỉ ra cách một phần dạng các đối tượng và lớp mềm được phân rã để đối tượng.

phát triển như thế nào. logical view development view use case process view physical view chỉ ra cách các tương tác chỉ ra phần cứng của hệ thời gian thực xảy ra thống và cách các trong hệ thống. component của hệ thống được phân tán trên các 17 processor như thế nào. NGUYỄN Thị Minh Tuyền Nội dung 1.

Quyết định chọn kiến trúc thiết kế 2. Các góc nhìn về kiến trúc 3. Các kiến trúc mẫu 4. Các kiến trúc ứng dụng 18 NGUYỄN Thị Minh Tuyền Kiến trúc mẫu(Architectural pattern) £ Là một phương tiện để biểu diễn, chia sẻ và tái sử dụng lại các kiến thức về hệ thống phần mềm.

£ Các kiến trúc mẫu là dạng mô tả trừu tượng, thường chứa thông tin : p Mô tả p Sử dụng khi nào p Ưu nhược điểm. £ Các mẫu được biểu diễn sử dụng bảng và mô tả đồ họa. 19 NGUYỄN Thị Minh Tuyền Một số mô hình kiến trúc mẫu £ Model-View-Controller (MVC) £ Kiến trúc phân tầng £ Repository £ Client–server £ Pipe and filter NGUYỄN Thị Minh Tuyền Mô hình MVC Tên Mô hình MVC (Model-View-Controller) Tách riêng phần biểu diễn và phần tương tác ra khỏi dữ liệu hệ thống. Ba component tương tác với nhau.

• Model component: quản lý dữ liệu hệ thống và các thao tác trên dữ trên dữ liệu đó. Mô tả • View component: định nghĩa và quản lý cách dữ liệu được biểu diễn tới người dùng như thế nào. • Controller component: Quản lý tương tác người dùng ( ví dụ như ấn phím, nhấp chuột, .) và chuyển các tương tác này tới View và Model. • Khi có nhiều cách biểu diễn và tương tác với dữ liệu.

Sử dụng khi nào • Khi chưa biết được các yêu cầu tương lai cho tương tác và biểu diễn dữ liệu. Cho phép dữ liệu thay đổi độc lập với hiển thị và ngược lại. Hỗ Ưu điểm trợ biểu diễn theo nhiều cách khác nhau trên cùng một dữ liệu. Có thể chứa code bổ sung và code sẽ phức tạp hơn khi mô Nhược điểm hình dữ liệu và mô hình tương tác đơn giản.

21 NGUYỄN Thị Minh Tuyền Tổ chức của mô hình MVC Controller View View selection Maps user actions Renders model to model updates Requests model updates Selects view Sends user events to User events controller Change notification State State query change Model Encapsulates application state Notifies view of state changes 22 NGUYỄN Thị Minh Tuyền Ví dụ: Kiến trúc ứng dụng Web sử dụng mô hình MVC Browser Controller View Form to display HTTP request processing Dynamic page Application-specific logic generation Data validation Forms management User events Change notification Update Refresh request request Model Business logic Database 23 NGUYỄN Thị Minh Tuyền Kiến trúc phân tầng £ Được sử dụng để mô hình hóa giao diện của các hệ thống con. £ Tổ chức hệ thống thành một tập các tầng, mỗi tầng cung cấp một tập các dịch vụ. £ Hỗ trợ việc phát triển dần dần các hệ thống con trên các tầng khác nhau. p Khi giao diện của tầng thay đổi, chỉ các tầng lân cận mới bị ảnh hưởng.

24 NGUYỄN Thị Minh Tuyền Mô hình kiến trúc phân tầng Tên Kiến trúc phân tầng Tổ chức hệ thống thành các tầng, mỗi tầng chứa các chức năng liên quan đến nhau. Mô tả Một tầng cung cấp các dịch vụ cho tầng trên của nó vì vậy các tầng thấp nhất biểu diễn các dịch vụ lõi được sử dụng trong toàn bộ hệ thống. • Khi xây dựng các tính năng mới dựa trên những hệ thống có sẵn; • Khi việc phát triển được dàn trải trên nhiều nhóm khác nhau và mỗi Sử dụng khi nào nhóm chịu trách nhiệm về chức năng của một tầng; • Khi có yêu cầu về bảo mật ở nhiều mức độ. • Cho phép thay thế các phần miễn là interface được duy trì.

Ưu điểm • Các chức năng dư thừa (ví dụ như phân quyền) có thể được cung cấp ở mỗi tầng để tăng độ tin cậy của hệ thống.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ