Mặc dù còn tùy số lượng & qui mô, các bạn Architect thông thường phân loại đặc tính của một ứng dụng ra làm nhiều category khác nhau:
Operational Architecture Characteristics – Đặc tính vận hành
Thuật ngữ | Định nghĩa |
Availability | Hệ thống sẽ cần khả dụng trong bao lâu (nếu 24/7, cần thực hiện các bước để cho phép hệ thống hoạt động nhanh chóng trong trường hợp có bất kỳ sự cố nào). |
Continuity | Khả năng khôi phục sau biến cố/thảm họa. |
Performance | Bao gồm stress test, peak analysis, phân tích tần suất sử dụng các chức năng, công suất yêu cầu và thời gian đáp ứng. Việc chấp nhận hiệu suất đôi khi đòi hỏi một bài tập riêng, mất hàng tháng để hoàn thành. |
Recoverability | Các yêu cầu về tính liên tục của doanh nghiệp (ví dụ: trong trường hợp xảy ra thảm họa, mức độ nhanh chóng hệ thống được yêu cầu trực tuyến trở lại như đạt được thế nào?). Điều này sẽ ảnh hưởng đến chiến lược sao lưu và các yêu cầu đối với phần cứng bị trùng lặp. |
Reliability/safety | Đánh giá xem hệ thống có an toàn khi fail không, hoặc nếu nó là nhiệm vụ quan trọng theo cách ảnh hưởng đến tính mạng hay không. Nếu không thành công, công ty có mất một khoản tiền lớn không? |
Robustness | Khả năng xử lý các điều kiện lỗi và ranh giới trong khi chạy nếu kết nối internet bị ngắt hoặc mất điện hoặc lỗi phần cứng. |
Scalability | Khả năng hệ thống thi hành và điều hành khi số lượng người dùng hoặc yêu cầu tăng lên. |
Structural Architecture Characteristics – Đặc tính cấu trúc
Thuật ngữ | Định nghĩa |
Configurability | Khả năng cho người dùng cuối dễ dàng thay đổi các khía cạnh của cấu hình phần mềm (thông qua các giao diện có thể sử dụng). |
Extensibility | Tầm quan trọng của việc gắng thêm các phần chức năng mới vào. |
Installability | Dễ dàng cài đặt hệ thống trên tất cả các nền tảng cần thiết. |
Leverageability/reuse | Khả năng tận dụng các thành phần chung trên nhiều sản phẩm. |
Localization | Hỗ trợ nhiều ngôn ngữ trên entry/truy vấn trong các trường dữ liệu; trên các báo cáo, các yêu cầu về ký tự nhiều byte và đơn vị đo lường hoặc đơn vị tiền tệ. |
Maintainability | Làm thế nào dễ dàng để áp dụng các thay đổi và cải tiến hệ thống? |
Portability | Hệ thống có cần chạy trên nhiều nền tảng không? (Ví dụ: giao diện người dùng có cần chạy với Oracle cũng như SAP DB không? |
Supportability | Ứng dụng cần hỗ trợ kỹ thuật ở mức độ nào? Mức độ ghi nhật ký và các phương tiện khác được yêu cầu để gỡ lỗi trong hệ thống? |
Upgradeability | Khả năng nâng cấp dễ dàng / nhanh chóng từ phiên bản trước của ứng dụng / giải pháp này lên phiên bản mới hơn trên máy chủ và máy khách. |
Cross-Cutting Architecture Characteristics – Đặc tính xuyên suốt các hệ thống
Thuật ngữ | Định nghĩa |
Accessibility | Tiếp cận với tất cả người dùng của bạn, bao gồm cả những người khuyết tật như mù màu hoặc khiếm thính. |
Archivability | Dữ liệu sẽ cần được lưu trữ hoặc xóa sau một khoảng thời gian? (Ví dụ: tài khoản khách hàng sẽ bị xóa sau ba tháng hoặc bị đánh dấu là lỗi thời và được lưu trữ vào cơ sở dữ liệu thứ cấp để truy cập trong tương lai.) |
Authentication | Các yêu cầu bảo mật để đảm bảo người dùng là chính họ. |
Authorization | Yêu cầu bảo mật để đảm bảo người dùng chỉ có thể truy cập các chức năng nhất định trong ứng dụng (theo trường hợp sử dụng, hệ thống con, trang web, quy tắc kinh doanh, cấp trường, v.v.). |
Legal | Hệ thống hoạt động trong những ràng buộc pháp lý nào (bảo vệ dữ liệu, Sarbanes Oxley, GDPR, v.v.)? Công ty yêu cầu những quyền bảo lưu nào? Bất kỳ quy định nào liên quan đến cách ứng dụng được xây dựng hoặc triển khai? |
Privacy | Khả năng ẩn đi các giao dịch với nhân viên nội bộ của công ty (các giao dịch được mã hóa để ngay cả DBA và kiến trúc sư mạng cũng không thể nhìn thấy chúng). |
Security | Dữ liệu có cần được mã hóa trong cơ sở dữ liệu không? Được mã hóa để giao tiếp mạng giữa các hệ thống nội bộ? Loại xác thực nào cần có để truy cập người dùng từ xa? |
Supportability | Ứng dụng cần hỗ trợ kỹ thuật ở mức độ nào? Mức độ ghi nhật ký và các phương tiện khác được yêu cầu để gỡ lỗi trong hệ thống? |
Usability/achievability | Mức độ đào tạo cần thiết để người dùng đạt được mục tiêu của họ với ứng dụng / giải pháp. Các yêu cầu về khả năng sử dụng cần được xử lý nghiêm túc như bất kỳ vấn đề kiến trúc nào khác. |
Ngoài ra ISO cũng định nghĩa một tập riêng về Architecture Characteristics
Thuật ngữ | Định nghĩa |
Performance efficiency | Đo lường hiệu suất so với lượng tài nguyên được sử dụng trong các điều kiện đã biết. Điều này bao gồm hành vi thời gian (thước đo phản hồi, thời gian xử lý và / hoặc tốc độ thông lượng), sử dụng tài nguyên (số lượng và loại tài nguyên được sử dụng) và dung lượng (mức độ vượt quá giới hạn tối đa đã thiết lập). |
Compatibility | Mức độ mà một sản phẩm, hệ thống hoặc thành phần có thể trao đổi thông tin với các sản phẩm, hệ thống hoặc thành phần khác và / hoặc thực hiện các chức năng cần thiết của nó trong khi chia sẻ cùng một môi trường phần cứng hoặc phần mềm. Nó bao gồm sự chung sống (có thể thực hiện các chức năng cần thiết một cách hiệu quả trong khi chia sẻ môi trường và tài nguyên chung với các sản phẩm khác) và khả năng tương tác (mức độ mà hai hoặc nhiều hệ thống có thể trao đổi và sử dụng thông tin). |
Usability | Người dùng có thể sử dụng hệ thống một cách hiệu quả, hiệu quả và thỏa mãn mục đích đã định. Nó bao gồm khả năng nhận biết tính phù hợp (người dùng có thể nhận ra liệu phần mềm có phù hợp với nhu cầu của họ hay không), khả năng học hỏi (người dùng có thể dễ dàng học cách sử dụng phần mềm như thế nào), bảo vệ lỗi người dùng (bảo vệ chống lại người dùng mắc lỗi) và khả năng truy cập (cung cấp phần mềm cho những người có nhiều đặc điểm và khả năng nhất). |
Reliability | Mức độ mà hệ thống hoạt động trong các điều kiện cụ thể trong một khoảng thời gian nhất định. Đặc tính này bao gồm các danh mục phụ như mức độ trưởng thành (phần mềm có đáp ứng nhu cầu về độ tin cậy trong hoạt động bình thường không), tính khả dụng (phần mềm có thể hoạt động và có thể truy cập được), khả năng chịu lỗi (phần mềm có hoạt động như dự định bất chấp lỗi phần cứng hoặc phần mềm) và khả năng khôi phục (có thể phần mềm khôi phục sau lỗi bằng cách khôi phục mọi dữ liệu bị ảnh hưởng và thiết lập lại trạng thái mong muốn của hệ thống. |
Security | Mức độ phần mềm bảo vệ thông tin và dữ liệu để mọi người hoặc các sản phẩm hoặc hệ thống khác có mức độ truy cập dữ liệu phù hợp với các loại và cấp độ ủy quyền của họ. Nhóm đặc điểm này bao gồm tính bảo mật (dữ liệu chỉ có thể truy cập được đối với những người được phép truy cập), tính toàn vẹn (phần mềm ngăn chặn truy cập trái phép hoặc sửa đổi phần mềm hoặc dữ liệu), không từ chối, (các hành động hoặc sự kiện có thể được chứng minh là đã diễn ra) trách nhiệm giải trình (có thể truy tìm các hành động của người dùng của người dùng) và tính xác thực (chứng minh danh tính của người dùng). |
Maintainability | Thể hiện mức độ hiệu quả và hiệu quả mà các nhà phát triển có thể sửa đổi phần mềm để cải thiện, sửa chữa hoặc điều chỉnh phần mềm theo những thay đổi của môi trường và / hoặc các yêu cầu. Đặc điểm này bao gồm tính mô-đun (mức độ mà phần mềm bao gồm các thành phần rời rạc), khả năng tái sử dụng (mức độ mà nhà phát triển có thể sử dụng một nội dung trong nhiều hệ thống hoặc trong việc xây dựng các nội dung khác), khả năng phân tích (cách các nhà phát triển có thể dễ dàng thu thập các số liệu cụ thể về phần mềm), khả năng sửa đổi (mức độ mà các nhà phát triển có thể sửa đổi phần mềm mà không tạo ra các khiếm khuyết hoặc làm giảm chất lượng sản phẩm hiện có) và khả năng kiểm tra (mức độ dễ dàng mà các nhà phát triển và những người khác có thể kiểm tra phần mềm). |
Portability | Mức độ mà các nhà phát triển có thể đem một hệ thống, sản phẩm hoặc thành phần từ một phần cứng, phần mềm hoặc môi trường hoạt động hoặc sử dụng khác sang môi trường khác. Đặc điểm này bao gồm các đặc điểm phụ về khả năng thích ứng (liệu các nhà phát triển có thể điều chỉnh phần mềm một cách hiệu quả và hiệu quả cho các phần cứng, phần mềm khác nhau hoặc đang phát triển, hoặc các môi trường hoạt động hoặc sử dụng khác), khả năng cài đặt (phần mềm có thể được cài đặt và / hoặc gỡ cài đặt trong một môi trường cụ thể), và khả năng thay thế (các nhà phát triển có thể thay thế chức năng bằng phần mềm khác dễ dàng như thế nào). |