Kiến trúc phần mềm – Wikipedia tiếng Việt

Kiến trúc phần mềm của một chương trình máy tính hay một hệ thống tính toán là cấu trúc của các thành phần trong hệ thống đó. Kiến trúc phần mềm bao gồm các phần tử phần mềm, các thuộc tính và mối quan hệ giữa chúng. Ngoài ra, thuật ngữ “kiến trúc phần mềm” cũng đề cập đến các tài liệu kiến trúc phần mềm của một hệ thống, thuận tiện cho việc trao đổi thông tin giữa các thành viên trong một dự án. Kiến trúc phần mềm giúp việc quyết định ở mức cao trong thiết kế phần mềm dễ dàng hơn và cho phép tái sử dụng các thành phần và mẫu thiết kế của các dự án.[1]

Lĩnh vực khoa học máy tính trải qua sự tích hợp những yếu tố cùng với sự phức tạp của cấu trúc [ 2 ]. Lúc đầu, sự phức tạp được xử lý bởi người tăng trưởng bằng cách lựa chọn những cấu trúc tài liệu đúng đắn, tăng trưởng những thuật toán và vận dụng những thuật toán để chia nhỏ những yếu tố. Thuật ngữ kiến trúc phần mềm tương quan đến sự mới lạ của ngành công nghiệp này, nhưng nguyên tắc cơ bản của nó đã được vận dụng bởi những chuyên gia tiên phong trong ngành công nghệ phần mềm từ những năm 1980. Các nỗ lực khởi đầu để chớp lấy và lý giải kiến trúc phần mềm của một mạng lưới hệ thống thường không đúng mực và chưa được tổ chức triển khai rõ ràng. Nó được miêu tả bởi những lược đồ ” box and line ” gồm một tập hợp những hộp và những đường kẻ [ 3 ]. Trong những năm 1990, đã có 1 số ít nỗ lực tập trung chuyên sâu để xác lập và hệ thống hóa những góc nhìn cơ bản của môn học. Nhiều khái niệm của mẫu phong cách thiết kế ( Design Pattern ), mẫu mã ( styles ), những ngôn từ đặc tả và luận lý hình thức ( formal logic ) đã được tăng trưởng trong thời hạn này .Khái niệm ” Kiến trúc phần mềm ” tập trung chuyên sâu vào việc giảm tải những phức tạp bằng cách trừu tượng hóa yếu tố và phân loại rõ nghĩa vụ và trách nhiệm việc làm. Tuy vậy, đến thời nay vẫn chưa có một khái niệm thật đúng chuẩn và rõ ràng cho thuật ngữ ” Kiến trúc phần mềm ” [ 4 ] .

Như vậy mặc dù khái niệm “Kiến trúc phần mềm” đã xuất hiện trong các giảng đường đại học và được đưa vào sử dụng trong ngành công nghệ phần mềm, nhưng việc nó vẫn chưa có các quy tắc, luật lệ chung và chưa rõ ràng nên thiết kế kiến trúc phần mềm vẫn là một sự pha tạp giữa “khoa học” và “nghệ thuật”. Vẻ “nghệ thuật” của kiến trúc phần mềm được lý giải là do có sự xuất hiện của các yêu cầu phi chức năng của hệ thống mà phần mềm phải đáp ứng được các yêu cầu này, chẳng hạn như các yêu cầu về các thuộc tính chất lượng [5]. Ngoài ra, phần mềm còn phải thỏa mãn các yêu cầu khác như: khả năng chịu lỗi, tính tương thích với các phiên bản cũ của các phần mềm khác (backward compatibility [6]), khả năng mở rộng, tính tin cậy, khả năng bảo trì, tính hiện hữu, tính bảo mật, tính dễ dùng, và một số các yêu cầu khác nữa [5].

Để chuyển những quan điểm, nhu yếu của người sử dụng sang kiến trúc phần mềm, cần phải triển khai 1 số ít bước tìm hiểu và khám phá, tìm hiểu thêm những nhu yếu riêng và những sở trường thích nghi riêng của từng loại người dùng phần mềm. Ngoài ra còn phải tìm hiểu và khám phá, tìm hiểu thêm những quan điểm của đội tăng trưởng phần mềm, đội bảo dưỡng phần mềm, đội kiểm thử, đội tiến hành phần mềm. Vì lẽ đó, kiến trúc phần mềm phải là nơi thỏa mãn nhu cầu được những quan điểm, những nhu yếu của những nguồn khác nhau. Và điều đó cũng đặt ra nhu yếu cho việc phải bảo vệ ngay từ quy trình tiến độ thiết kế xây dựng kiến trúc phần mềm, đã phải thỏa mãn nhu cầu những quan điểm, nhu yếu của những nguồn khác nhau ; trước khi tiến trình tăng trưởng phần mềm được thực thi .
Nguồn gốc của kiến trúc phần mềm như một ý tưởng sáng tạo được trình làng tiên phong trong điều tra và nghiên cứu của Edsger Dijkstra năm 1968 và David Parnas đầu những năm 1970. Các nhà khoa học nhấn mạnh vấn đề rằng cấu trúc của một mạng lưới hệ thống phần mềm rất quan trọng và đạt được cấu trúc đúng đắn là một yếu tố quyết định hành động. Các điều tra và nghiên cứu về nghành này ngày càng nhiều và trở nên phổ cập từ đầu những năm 1990 cùng với những điều tra và nghiên cứu tập trung chuyên sâu vào những mẫu phong cách thiết kế ( pattern ), ngôn từ đặc tả kiến trúc ( Architecture Description Languages ), tài liệu kiến trúc và những giải pháp chính thức. Các viện nghiên cứu và điều tra đóng vai trò quan trọng trong điều tra và nghiên cứu môn học kiến trúc phần mềm. Mary Shaw và David Garlan của viện nghiên cứu và điều tra Carnegie Mellon đã viết cuốn sách ” Software Architecture : Perspectives on an Emerging Discipline ” vào năm 1996, mang đến những khái niệm tân tiến trong kiến trúc phần mềm như thành phần ( component ), liên kết ( connector ), kiểu ( style ) và nhiều thứ nữa. Trường ĐH tổng hợp California, viện điều tra và nghiên cứu phần mềm Irvine cũng có nhiều nỗ lực trong nghiên cứu và điều tra kiến trúc phần mềm, đa phần hướng vào những kiểu kiến trúc, ngôn từ đặc tả kiến trúc và những kiến trúc động. Một trong những chuẩn tiên phong trong kiến trúc phần mềm là chuẩn ANSI / IEEE 1471 – 2000 được ISO đồng ý như ISO / IEC DIS 25961 .

Lý giải sự quan trọng của kiến trúc phần mềm[sửa|sửa mã nguồn]

Có ba nguyên do chính [ 1 ] để lý giải tầm quan trọng của kiến trúc phần mềm :

Hỗ trợ việc tiếp xúc[sửa|sửa mã nguồn]

Hỗ trợ việc giao tiếp với các thành viên trong dự án. Kiến trúc phần mềm tái hiện một vẻ bề ngoài trừu tượng của hệ thống. Với sự trừu tượng hóa hệ thống với các khái niệm dễ hiểu, những thành viên trong dự án sẽ chỉ cần vận dụng các kiến thức cơ bản của mình về hệ thống trong việc tìm hiểu, dàn xếp, phối hợp làm việc, và bàn bạc trao đổi với nhau.

Giúp ra quyết định hành động sớm hơn[sửa|sửa mã nguồn]

Việc ra quyết định hành động được thực thi sớm hơn. Kiến trúc phần mềm bộc lộ những quyết định hành động phong cách thiết kế dành cho mạng lưới hệ thống. Như vậy những đội tham gia tăng trưởng, tiến hành, kiểm thử và bảo dưỡng phần mềm cũng như những nhóm người dùng và những cấp quản trị sẽ có cái nhìn tổng quan hơn cũng như sớm hơn về mạng lưới hệ thống ngay từ khi nó còn sơ khai. Mỗi đội đó sẽ có những góp phần quan điểm của mình, những đề xuất kiến nghị cũng như những phản bác của mình khi mọi chuyện chưa quá muộn. Nếu không có quyết định hành động sớm, thì khi phần mềm đã được kiến thiết xây dựng hoàn hảo hoặc khá hoàn hảo mà bất thần Open những nhu yếu đổi khác từ phía nhóm này hoặc nhóm khác, ngoài việc gây ngưng trệ cho tiến trình việc làm mà còn hoàn toàn có thể gây ra tâm ý căng thẳng mệt mỏi, xích míc giữa những đội tham gia trong dự án Bất Động Sản .

Tính khả chuyển cho mạng lưới hệ thống[sửa|sửa mã nguồn]

Kiến trúc phần mềm không nhờ vào vào một ngôn từ đơn cử nào cả mà chỉ tuân theo một số ít chuẩn của những ngôn từ đặc tả nó. Ngoài ra, kiến trúc phần mềm khi được thiết kế xây dựng cho một mạng lưới hệ thống, nó tạo thành một quy mô có sự kết nối tương đối với mạng lưới hệ thống. Kiến trúc phần mềm còn chỉ ra phương pháp mà phần mềm thao tác với mạng lưới hệ thống. Do vậy, khi ta muốn chuyển phần mềm sang thao tác ở những mạng lưới hệ thống khác có những điểm tương đương nhất định với mạng lưới hệ thống cũ thì phần mềm này cũng sẽ có những thuộc tính chất lượng và những nhu yếu tính năng được bảo vệ là không quá khác so với khi sống sót ở mạng lưới hệ thống cũ .

Mô tả kiến trúc phần mềm[sửa|sửa mã nguồn]

Ngôn ngữ đặc tả kiến trúc[sửa|sửa mã nguồn]

Ngôn ngữ đặc tả kiến trúc ADL ( Architecture Description Languages ) được sử dụng để miêu tả một kiến trúc phần mềm. Có nhiều ngôn từ ADL khác nhau được tăng trưởng bởi những tổ chức triển khai như Wrigh ( được tăng trưởng bởi Carnegie Mellon ), ACME ( Carnegie Mellon ), xADL ( UCI ), Darwin ( Imperial College London ), DAOP-ADL ( Trường ĐH Málaga – Tây Ban Nha ). Các thành phần cơ bản của một ngôn từ ADL là thành phần, liên kết và thông số kỹ thuật mạng lưới hệ thống .

Các khung nhìn[sửa|sửa mã nguồn]

Một số khung nhìn phổ biến là:

  • Khung nhìn theo các chức năng/view logic (Functional/logic view)
  • Khung nhìn theo mã nguồn (Code view)
  • Khung nhìn theo tư tưởng phát triển/ cấu trúc (Development/structural view)
  • Khung nhìn về xử lý đồng thời /tiến trình / thread (Concurrency/process/thread view)
  • Khung nhìn vật lý /view triển khai / (Physical/deployment view)
  • Khung nhìn theo hành động người sử dụng (User action/feedback view)

Liên kết ngoài[sửa|sửa mã nguồn]

Source: https://dvn.com.vn/
Category : Thủ Thuật

Alternate Text Gọi ngay