Giới thiệu về Software Architecture: Kiến trúc và thiết kế

Related Articles

  • Trung Nguyen
  • 14/11/2020

  • 11 min read

Kiến trúc của một mạng lưới hệ thống ứng dụng ( Software Architecture ) diễn đạt những thành phần chính của nó, những mối quan hệ của những thành phần và cách chúng tương tác với nhau .

Kiến trúc phần mềm và thiết kế phần mềm phụ thuộc một số yếu tố như Chiến lược kinh doanh, thuộc tính chất lượng, nguồn nhân lực, thiết kế và môi trường CNTT.

Kiến trúc phần mềm (Software Architecture)Chúng ta hoàn toàn có thể tách Kiến trúc và Thiết kế ứng dụng thành hai quá trình riêng không liên quan gì đến nhau : Kiến trúc ứng dụng và Thiết kế ứng dụng .

Trong Kiến trúc phần mềm, các quyết định phi chức năng được đúc kết và tách biệt bởi các yêu cầu chức năng.

Trong Thiết kế ứng dụng, những nhu yếu công dụng được triển khai xong .

Kiến trúc phần mềm (Software Architecture)

Kiến trúc đóng vai trò như một bản thiết kế cho một hệ thống. Nó cung cấp một sự trừu tượng để quản lý độ phức tạp của hệ thống và thiết lập một cơ chế giao tiếp và phối hợp giữa các thành phần.

  • Nó xác định một giải pháp có cấu trúc để đáp ứng tất cả các yêu cầu kỹ thuật và vận hành, đồng thời tối ưu hóa các thuộc tính chất lượng chung như hiệu suất và bảo mật.
  • Hơn nữa, nó liên quan đến một tập hợp các quyết định quan trọng về tổ chức liên quan đến phát triển phần mềm và mỗi quyết định này có thể có tác động đáng kể đến chất lượng, khả năng bảo trì, hiệu suất và sự thành công chung của sản phẩm cuối cùng.

Những quyết định hành động này gồm có :

  • Lựa chọn các phần tử cấu trúc và các giao diện của chúng mà hệ thống được cấu thành.
  • Hành vi như được chỉ định trong sự hợp tác giữa các yếu tố đó.
  • Các yếu tố cấu trúc và hành vi này kết hợp thành hệ thống con lớn.
  • Các quyết định về kiến ​​trúc phù hợp với các mục tiêu kinh doanh.
  • Phong cách kiến ​​trúc hướng dẫn tổ chức.

Thiết kế phần mềm (Software Design)

Thiết kế phần mềm cung cấp một kế hoạch thiết kế mô tả các phần tử của hệ thống, cách chúng phù hợp và làm việc cùng nhau để đáp ứng yêu cầu của hệ thống. Các mục tiêu của việc có một kế hoạch thiết kế như sau:

  • Để thương lượng các yêu cầu hệ thống và đặt kỳ vọng với khách hàng, nhân viên tiếp thị và quản lý.
  • Hoạt động như một bản thiết kế trong quá trình phát triển.
  • Hướng dẫn các tác vụ triển khai, bao gồm thiết kế chi tiết, mã hóa, tích hợp và thử nghiệm.

Nó xảy ra trước khi phong cách thiết kế chi tiết cụ thể, viết code, tích hợp và thử nghiệm, sau khi đã nghiên cứu và phân tích miền, nghiên cứu và phân tích nhu yếu và nghiên cứu và phân tích rủi ro đáng tiếc .Thiết kế phần mềm (Software Design)

Mục tiêu của Software Architecture

Mục tiêu

Mục tiêu chính của Software Architecture là xác lập những nhu yếu tác động ảnh hưởng đến cấu trúc của ứng dụng. Một kiến ​ ​ trúc chuyên nghiệp và bài bản giúp giảm rủi ro đáng tiếc tương quan đến việc kiến thiết xây dựng giải pháp kỹ thuật và kiến thiết xây dựng cầu nối giữa nhu yếu nhiệm vụ và kỹ thuật .

Một số mục tiêu khác như sau:

  • Đưa ra cấu trúc của hệ thống, nhưng ẩn các chi tiết triển khai của nó.
  • Nhận ra tất cả các trường hợp sử dụng và tình huống sử dụng.
  • Cố gắng giải quyết các yêu cầu của các bên liên quan khác nhau.
  • Xử lý cả các yêu cầu về chức năng và chất lượng.
  • Giảm mục tiêu sở hữu và nâng cao vị thế thị trường của tổ chức.
  • Cải thiện chất lượng và chức năng do hệ thống cung cấp.
  • Cải thiện niềm tin bên ngoài vào tổ chức hoặc hệ thống.

Hạn chế

Kiến trúc ứng dụng vẫn là một ngành học mới nổi trong ngành kỹ thuật ứng dụng. Nó có những hạn chế sau :

  • Thiếu các công cụ và cách thức tiêu chuẩn hóa để biểu diễn kiến ​​trúc.
  • Thiếu các phương pháp phân tích để dự đoán liệu kiến ​​trúc có dẫn đến việc triển khai đáp ứng các yêu cầu hay không.
  • Thiếu nhận thức về tầm quan trọng của thiết kế kiến ​​trúc đối với phát triển phần mềm.
  • Thiếu hiểu biết về vai trò của kiến ​​trúc sư phần mềm và giao tiếp kém giữa các bên liên quan.
  • Thiếu hiểu biết về quy trình thiết kế, kinh nghiệm thiết kế và đánh giá thiết kế.

Vai trò của kiến ​​trúc sư phần mềm (Software Architect)

Kiến trúc sư ứng dụng phân phối giải pháp mà nhóm kỹ thuật hoàn toàn có thể tạo và phong cách thiết kế cho hàng loạt ứng dụng. Một kiến ​ ​ trúc sư ứng dụng nên có trình độ trong những nghành sau :

Chuyên môn thiết kế

  • Chuyên môn về thiết kế phần mềm, bao gồm các phương pháp và cách tiếp cận đa dạng như thiết kế hướng đối tượng, thiết kế hướng sự kiện, v.v.
  • Lãnh đạo nhóm phát triển và điều phối các nỗ lực phát triển vì tính toàn vẹn của thiết kế.
  • Nên có thể xem xét các đề xuất thiết kế và đánh đổi giữa chúng.

Chuyên môn về miền

  • Chuyên môn về hệ thống đang được phát triển và lập kế hoạch phát triển phần mềm.
  • Hỗ trợ trong quá trình điều tra yêu cầu, đảm bảo tính đầy đủ và nhất quán.
  • Phối hợp định nghĩa mô hình miền cho hệ thống đang được phát triển.

Chuyên môn công nghệ

  • Chuyên môn về các công nghệ sẵn có giúp triển khai hệ thống.
  • Phối hợp lựa chọn ngôn ngữ lập trình, khuôn khổ, nền tảng, cơ sở dữ liệu, v.v.

Chuyên môn phương pháp

  • Chuyên môn về các phương pháp luận phát triển phần mềm có thể được áp dụng trong SDLC (Software Development Life Cycle – Vòng đời phát triển phần mềm).
  • Chọn các cách tiếp cận thích hợp để phát triển giúp ích cho toàn bộ nhóm.

Vai trò tiềm ẩn của Software Architect

  • Tạo điều kiện thuận lợi cho công việc kỹ thuật giữa các thành viên trong nhóm và củng cố mối quan hệ tin cậy trong nhóm.
  • Chuyên gia thông tin chia sẻ kiến ​​thức và có nhiều kinh nghiệm.
  • Bảo vệ các thành viên trong nhóm khỏi các lực lượng bên ngoài có thể làm họ mất tập trung và mang lại ít giá trị hơn cho dự án.

Sản phẩm của Software Architect

  • Một tập hợp các mục tiêu chức năng rõ ràng, đầy đủ, nhất quán và có thể đạt được
  • Mô tả chức năng của hệ thống
  • Một khái niệm cho hệ thống
  • Một thiết kế dưới dạng hệ thống
  • Khái niệm về thời gian, các thuộc tính của người vận hành và các kế hoạch thực hiện và hoạt động
  • Một tài liệu hoặc quy trình đảm bảo tuân theo sự phân rã chức năng và hình thức giao diện được kiểm soát

Thuộc tính chất lượng

Chất lượng là thước đo sự xuất sắc hoặc trạng thái không có thiếu sót hoặc khuyết tật. Thuộc tính chất lượng là những thuộc tính của mạng lưới hệ thống tách biệt với công dụng của mạng lưới hệ thống .Việc tiến hành những thuộc tính chất lượng giúp thuận tiện phân biệt mạng lưới hệ thống tốt với mạng lưới hệ thống xấu. Thuộc tính là những yếu tố toàn diện và tổng thể ảnh hưởng tác động đến thời hạn chạy, phong cách thiết kế mạng lưới hệ thống và thưởng thức người dùng .Chúng hoàn toàn có thể được phân loại là :

  • Thuộc tính chất lượng tĩnh.
  • Thuộc tính chất lượng động.

Thuộc tính chất lượng tĩnh

Phản ánh cấu trúc của một mạng lưới hệ thống và tổ chức triển khai, tương quan trực tiếp đến kiến ​ ​ trúc, phong cách thiết kế và mã nguồn. Chúng vô hình dung so với người dùng cuối, nhưng tác động ảnh hưởng đến ngân sách tăng trưởng và bảo dưỡng, ví dụ : tính mô-đun, năng lực kiểm tra, năng lực bảo dưỡng, v.v.

Thuộc tính chất lượng động

Phản ánh hành vi của mạng lưới hệ thống trong quy trình thực thi. Chúng tương quan trực tiếp đến kiến ​ ​ trúc, phong cách thiết kế, mã nguồn, thông số kỹ thuật, tham số tiến hành, môi trường tự nhiên và nền tảng của mạng lưới hệ thống .Chúng được hiển thị cho người dùng cuối và sống sót trong thời hạn chạy, ví dụ như thông lượng, độ can đảm và mạnh mẽ, năng lực lan rộng ra, v.v.

Kịch bản chất lượng

Các kịch bản chất lượng chỉ rõ cách ngăn lỗi trở thành lỗi. Chúng có thể được chia thành sáu phần dựa trên đặc điểm thuộc tính của chúng:

  • Source – Một thực thể bên trong hoặc bên ngoài như con người, phần cứng, phần mềm hoặc cơ sở hạ tầng vật lý tạo ra tác động.
  • Stimulus – Một điều kiện cần được xem xét khi nó xuất hiện trên một hệ thống.
  • Environment – Tác động xảy ra trong những điều kiện nhất định.
  • Artifact – Toàn bộ hệ thống hoặc một số phần của nó như bộ xử lý, kênh giao tiếp, lưu trữ liên tục, quy trình, v.v.
  • Response – Một hoạt động được thực hiện sau khi xuất hiện tác động như phát hiện lỗi, khôi phục lỗi, tắt nguồn sự kiện, v.v.
  • Response measure – Nên đo lường các phản hồi đã xảy ra để các yêu cầu có thể được kiểm tra.

Các thuộc tính chất lượng chung

Bảng sau liệt kê những thuộc tính chất lượng chung mà Software Architecture phải có :

Phân loại Thuộc tính chất lượng Sự miêu tả
Chất lượng thiết kế Tính toàn vẹn Xác định tính nhất quán và mạch lạc của thiết kế tổng thể. Điều này bao gồm cách các thành phần hoặc mô-đun được thiết kế.
Khả năng bảo trì Xác định khả năng thay đổi, cập nhật, nâng cấp hệ thống một cách dễ dàng.
Khả năng tái sử dụng Xác định khả năng các thành phần hệ thống phù hợp để sử dụng trong các ứng dụng khác.
Chất lượng thời gian thực thi Khả năng tương tác Xác định khả năng hệ thống dễ dàng giao tiếp và trao đổi thông tin với các hệ thống bên thứ 3.
Khả năng quản lý Xác định mức độ dễ dàng quản trị hệ thống trong việc quản lý ứng dụng.
Độ tin cậy Xác định khả năng duy trì hoạt động theo thời gian của một hệ thống.
Khả năng mở rộng Xác định khả năng có thể xử lý việc tăng tải mà không ảnh hưởng đến hiệu suất của hệ thống hoặc khả năng dễ dàng mở rộng.
Khả năng bảo vệ Khả năng của một hệ thống để ngăn chặn các hành động phá hoại hoặc nằm ngoài cách sử dụng được thiết kế.
Hiệu suất Khả năng đáp ứng của hệ thống để thực hiện bất kỳ hành động nào trong một khoảng thời gian nhất định.
Tính khả dụng Xác định tỷ lệ thời gian hệ thống hoạt động, được đo bằng phần trăm của tổng thời gian ngừng hoạt động của hệ thống trong một khoảng thời gian xác định trước.
Chất lượng hệ thống Khả năng hỗ trợ Khả năng của hệ thống cung cấp thông tin hữu ích để xác định và giải quyết các vấn đề khi hệ thống không hoạt động chính xác.
Khả năng kiểm tra Đo lường mức độ dễ dàng tạo ra các tiêu chí kiểm tra cho hệ thống và các thành phần của nó.
Phẩm chất người dùng Khả năng sử dụng Xác định mức độ ứng dụng đáp ứng các yêu cầu của người dùng.
Chất lượng kiến trúc Tính đúng đắn Trách nhiệm giải trình để đáp ứng tất cả các yêu cầu của hệ thống.
Chất lượng non-runtime Tính di động Khả năng của hệ thống chạy trong các môi trường điện toán khác nhau.
Tính tích hợp Khả năng làm cho các thành phần được phát triển riêng biệt của hệ thống hoạt động chính xác với nhau.
Khả năng sửa đổi Khả năng dễ dàng thay đổi, sửa đổi, nâng cấp hệ thống phần mềm.
Chất lượng kinh doanh Chi phí và lịch trình Chi phí của hệ thống liên quan đến thời gian đưa ra thị trường, thời gian tồn tại của dự án và việc sử dụng di sản.
Khả năng tiếp thị Sử dụng hệ thống đối với cạnh tranh thị trường.

Nếu Comdy hữu ích và giúp bạn tiết kiệm thời gian làm việc

Bạn hoàn toàn có thể sung sướng đưa Comdy vào whitelist của trình chặn quảng cáo ❤ ️ để tương hỗ chúng tôi trong việc trả tiền cho dịch vụ tàng trữ web để duy trì hoạt động giải trí của website .

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories