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

Bởi tuhocmoithu

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 ứng dụng 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 cố gắng nỗ lực bắt đầu để chớp lấy và lý giải kiến trúc ứng dụng 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 hoá 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 ứng dụng ” 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 ứng dụng ” [ 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 ứng dụng, cần phải thực thi 1 số ít bước 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 ứng dụng. 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 ứng dụng, đội bảo dưỡng ứng dụng, đội kiểm thử, đội tiến hành ứng dụng. Vì lẽ đó, kiến trúc ứng dụng 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ừ quá trình thiết kế xây dựng kiến trúc ứng dụng, đã 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 quá trình tăng trưởng ứng dụng được triển khai .
Nguồn gốc của kiến trúc ứng dụng như một sáng tạo độc đáo được trình làng tiên phong trong nghiên cứu và điều tra 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 ứng dụng 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 nghiên cứu và điều tra về nghành nghề dịch vụ này ngày càng nhiều và trở nên thông dụng từ đầu những năm 1990 cùng với những nghiên cứu và điều tra 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 điều tra và nghiên cứu đóng vai trò quan trọng trong nghiên cứu và điều tra môn học kiến trúc ứng dụng. Mary Shaw và David Garlan của viện điều tra và nghiên cứu 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 ứng dụng 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 ứng dụng Irvine cũng có nhiều nỗ lực trong nghiên cứu và điều tra kiến trúc ứng dụng, đ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 ứng dụng là chuẩn ANSI / IEEE 1471 – 2000 được ISO gật đầu như ISO / IEC DIS 25961 .

Mục Lục

Lý giải sự quan trọng của kiến trúc ứng dụng[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 ứng dụng :

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 triển khai sớm hơn. Kiến trúc ứng dụng 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 ứng dụng 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 yêu cầu 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 ứng dụng đã được kiến thiết xây dựng hoàn hảo hoặc khá hoàn hảo mà bất ngờ đột ngột 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 quy trình tiến độ việc làm mà còn hoàn toàn có thể gây ra tâm ý stress, 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 ứng dụng không nhờ vào vào một ngôn từ đơn cử nào cả mà chỉ tuân theo 1 số ít chuẩn của những ngôn từ đặc tả nó. Ngoài ra, kiến trúc ứng dụng khi được kiến thiết 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 ứng dụng còn chỉ ra phương pháp mà ứng dụng thao tác với mạng lưới hệ thống. Do vậy, khi ta muốn chuyển ứng dụng 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ì ứng dụng này cũng sẽ có những thuộc tính chất lượng và những nhu yếu công dụ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 ứng dụng[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 để mô tả một kiến trúc phần mềm. Có nhiều ngôn ngữ ADL khác nhau được phát triển bởi các tổ chức như Wrigh (được phát triển bởi Carnegie Mellon), ACME (Carnegie Mellon), xADL (UCI), Darwin (Imperial College London), DAOP-ADL (Trường đại học Málaga – Tây Ban Nha).
Các thành phần cơ bản của một ngôn ngữ ADL là thành phần, kết nối và cấu hình hệ thống.

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

Một số khung nhìn phổ cập 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]

You may also like

Để lại bình luận