Categories
Software Architecture

Đánh Giá Kiến Trúc 3: Các Bước Của ATAM

Tóm tắt về ATAM

  • Chuẩn bị (thuyết trình)
    1. Trình bày ATAM
    2. Trình bày các động lực kinh doanh
    3. Trình bày kiến trúc
  • Điều tra và phân tích (đánh giá các QAs chính)
    1. Xác định các phương pháp tiếp cận kiến trúc
    2. Tạo cây tiện ích thuộc tính chất lượng
    3. Phân tích các phương pháp tiếp cận kiến trúc
  • Kiểm tra (kết quả cho đến nay đối với các bên liên quan)
    1. Động não và ưu tiên các tình huống
    2. Phân tích các phương pháp tiếp cận kiến trúc
  • Báo cáo
    1. Trình bày kết quả

Bước 1: trình bày ATAM 

  • Trưởng nhóm đánh giá
    • ATAM các bước ngắn gọn
    • Các kỹ thuật được sử dụng để khơi gợi và phân tích
      • Tạo cây tiện ích
      • Khai thác và phân tích dựa trên kiến trúc
      • Động não và sắp xếp thứ tự ưu tiên cho kịch bản
    • Kết quả đánh giá
      • Các tình huống được gợi ra và ưu tiên
      • Các câu hỏi được sử dụng để hiểu và đánh giá kiến trúc
      • Cây tiện ích của QA
      • Rủi ro và không rủi ro được phát hiện
      • Điểm nhạy cảm và sự cân bằng

Bước 2: Trình bày các động lực kinh doanh

  • Mô tả
    • Các chức năng quan trọng nhất của hệ thống
    • Mọi ràng buộc về kỹ thuật, quản lý, kinh tế hoặc chính trị có liên quan
    • Các mục tiêu kinh doanh và bối cảnh liên quan đến dự án
    • Các bên liên quan chính
    • Các động lực kiến trúc (các mục tiêu thuộc tính chất lượng chính)

Bước 3: Trình bày kiến trúc

  • Do kiến trúc sư chính (hoặc nhóm kiến trúc)
  • Cái gì: ( bản chất )
    • Ràng buộc kỹ thuật (hệ điều hành, phần cứng, phần mềm trung gian)
    • Các hệ thống khác mà hệ thống phải tương tác
    • Phương pháp tiếp cận kiến trúc (chiến thuật) được sử dụng để đáp ứng các yêu cầu
    • Định hướng các yêu cầu về kiến trúc, các đại lượng có thể đo lường được liên quan đến những yêu cầu này
    • COTS và sự tích hợp của chúng
    • Các tình huống ca sử dụng quan trọng nhất
    • Các tình huống thay đổi quan trọng nhất
    • Các vấn đề / rủi ro về việc đáp ứng các yêu cầu định hướng

Bước 4: Xác định các phương pháp tiếp cận kiến trúc

  • Lập danh mục các mẫu và các cách tiếp cận khác có thể thấy rõ
    • Dựa trên bước 3
    • Làm cơ sở cho các phân tích sau này
  • Về cơ bản
    • Nhóm đánh giá thừa nhận những gì họ có được cho đến nay

Bước 5: Tạo cây tiện ích thuộc tính chất lượng

  • Cái gì: Mục tiêu QA được trình bày chi tiết thông qua cây tiện ích thuộc tính chất lượng
  • Các mục tiêu thuộc tính chất lượng quan trọng nhất
    • Được xác định, ưu tiên, tinh chỉnh
    • Được thể hiện dưới dạng các tình huống
  • “Tiện ích” là một biểu hiện độ tốt tổng thể của hệ thống
    • Các thuộc tính chất lượng tạo thành cấp độ thứ hai là các thành phần của tiện ích

Bước 5: Tạo cây tiện ích thuộc tính chất lượng phần tiếp theo

  • Các tình huống được ưu tiên (X, Y)
    • X biểu thị mức độ quan trọng của chúng
    • Y biểu thị mức độ khó khăn đối với kiến trúc để đáp ứng kịch bản
    • X, Y ∈ {H(igh), M(edium), L(ow)}
Quality AttributeAttribute RefinementASR
PerformanceTransaction response timeA user updates a patient’s account in response to a change-of-address notification while the system is under peak load, and the transaction completes in less than 0.75 second. (H,M)
A user updates a patient’s account in response to a change-of-address notification while the system is under double the peak load, and the transaction completes in less than 4 seconds. (L,M)
ThroughputAt peak load, the system is able to complete 150 normalized transactions per second. (M,M)
UsabilityProficiency trainingA new hire with two or more years’ experience in the business becomes proficient in Nightingale’s core functions in less than 1 week. (M,L)
A user in a particular context asks for help, and the system provides help for that context, within 3 seconds. (H,M)
Normal operationsA hospital payment officer initiates a payment plan for a patient while interacting with that patient and completes the process without the system introducing delays. (M,M)
ConfigurabilityUser-defined changesA hospital increases the fee for a particular service. The configuration team makes the change in 1 working day; no source code needs to change. (H,L)
MaintainabilityRoutine changesA maintainer encounters search- and response-time deficiencies, fixes the bug, and distributes the bug fix with no more than 3 person-days of effort. (H,M)
A reporting requirement requires a change to the report- generating metadata. Change is made in 4 person-hours of effort. (M,L)
Upgrades to commercial componentsThe database vendor releases a new version that must be installed in less than 3 person-weeks. (H,M)
ExtensibilityAdding new productA product that tracks blood bank donors is created within 2 person-months. (M,M)
SecurityConfidentialityA physical therapist is allowed to see that part of a patient’s record dealing with orthopedic treatment but not other parts nor any financial information. (H,M)
IntegrityThe system resists unauthorized intrusion and reports the intrusion attempt to authorities within 90 seconds. (H,M)
AvailabilityNo downtimeThe database vendor releases new software, which is hot-swapped into place, with no downtime. (H,L)
The system supports 24/7 web-based account access by patients. (L,L)
Tabular Form of the Utility Tree for the Nightingale ATAM Exercise

Bước 6: Phân tích các phương pháp tiếp cận kiến trúc

  • Kiểm tra
    • Các tình huống được xếp hạng cao nhất (bước 5)
    • Các kiểu kiến trúc được đề xuất để hiện thực hóa chúng (bước 4)
  • Mục tiêu là để nhóm đánh giá tin rằng cách tiếp cận là phù hợp để đáp ứng các yêu cầu về thuộc tính cụ thể
  • Hướng dẫn kịch bản
  • Xác định và ghi lại tập hợp các điểm nhạy cảm và điểm cân bằng, rủi ro và không rủi ro
    • Điểm nhạy cảm và điểm đánh đổi là rủi ro ứng viên

Bước 6 đầu ra

  • Các phương pháp tiếp cận kiến trúc phù hợp với từng kịch bản cây tiện ích ưu tiên cao
  • Các câu hỏi phân tích liên quan đến từng cách tiếp cận
    • Được chỉ ra QA liên quan đến kịch bản
  • Câu trả lời của kiến trúc sư đối với các câu hỏi
  • Các rủi ro, không rủi ro, điểm nhạy cảm, điểm cân bằng được liên kết với việc đạt được một / nhiều QA liên quan đến các câu hỏi QA đã thăm dò rủi ro

Xem thêm ở Bước 6

  • Cây tiện ích chỉ ra cách thăm dò kiến trúc
  • Kiến trúc sư phản hồi với cách tiếp cận kiến trúc đáp ứng nhu cầu này
  • Nhóm đánh giá có thể sử dụng các câu hỏi dành riêng cho QA để thăm dò cách tiếp cận sâu hơn
  • Các câu hỏi dành riêng cho QA giúp nhóm
    • Hiểu chi tiết cách tiếp cận và cách nó được áp dụng trong trường hợp
    • Tìm kiếm những điểm yếu nổi tiếng bằng cách tiếp cận
    • Tìm kiếm các điểm nhạy cảm và điểm cân bằng của phương pháp tiếp cận
    • Tìm các tương tác và đánh đổi bằng các cách tiếp cận khác

Ví dụ về phân tích

Ví dụ phân tích các phương pháp tiếp cận kiến trúc.

Bước 7: Động não và ưu tiên các tình huống

  • Cây tiện ích hiển thị quan điểm của kiến trúc sư về các thuộc tính chất lượng
  • Ở đây, trọng tâm là quan điểm của các bên liên quan khác về các thuộc tính chất lượng và các tình huống dựa trên chúng
    • Tình huống nào có ý nghĩa và quan trọng nhất đối với người dùng, v.v.
  • Động não theo tình huống hoạt động tốt trong các nhóm lớn hơn
  • Danh sách các kịch bản được ưu tiên so với các kịch bản cây tiện ích

Bước 7: Các tình huống động não

  • Các tình huống ca sử dụng (Use case scenarios)
    • Các bên liên quan mong đợi hệ thống được sử dụng như thế nào
  • Các kịch bản tăng trưởng (Growth scenarios)
    • Kiến trúc dự kiến sẽ thích ứng với sự phát triển và thay đổi như thế nào
      • Các sửa đổi dự kiến, thay đổi về hiệu suất hoặc tính khả dụng, chuyển sang các nền tảng khác, tích hợp với phần mềm khác
  • Các tình huống khám phá (Exploratory scenarios)
    • Các hình thức phát triển cực đoan, cách kiến trúc có thể bị căng thẳng bởi những thay đổi
      • Các yêu cầu về tính khả dụng hoặc hiệu suất mới đáng kể, những thay đổi lớn về cơ sở hạ tầng hoặc sứ mệnh hệ thống

Bước 7: Mức độ ưu tiên

  • Các bên liên quan đầu tiên hợp nhất các kịch bản mà họ tin rằng thể hiện cùng một hành vi / mối quan tâm của QA
  • Sau đó, các bên liên quan bỏ phiếu về các kịch bản mà họ tin là quan trọng nhất
    • Bình chọn là công khai
    • Trưởng nhóm đánh giá sắp xếp các tình huống, phát hiện sự sụt giảm mạnh về số phiếu bầu và vạch ra ranh giới ở đó

Ví dụ về hệ thống điều phối xe

#ScenarioVotes
4Tự động lập kế hoạch lại một nhiệm vụ đã cử đi trong vòng 10 phút.28
27Chia nhỏ việc quản lý một tập hợp các phương tiện trên nhiều địa điểm kiểm soát.26
10Thay đổi công cụ phân tích nhà cung cấp sau khi nhiệm vụ đã bắt đầu mà không cần khởi động lại hệ thống.23
12Nhắm lại một bộ sưu tập các phương tiện đa dạng để xử lý tình huống khẩn cấp trong vòng chưa đầy 10 giây sau khi có lệnh.13
14Thay đổi cơ chế phân phối dữ liệu từ CORBA sang một tiêu chuẩn mới đang phát triển với nỗ lực chưa đến sáu tháng của người.12
Examples of Scenarios with Rankings

Các tình huống được xếp hạng cao với chú thích QA

Scenario# VotesQuality Attributes
428Performance
2726Performance, modifiability, availability
1023Modifiability
1213Performance
1412Modifiability
Highly Ranked Scenarios with Quality Attribute Annotations

Bước 7: So sánh

  • Mức độ ưu tiên của kịch bản so với cây tiện ích
    • Đồng ý hoặc không đồng ý
  • Mỗi kịch bản được động não có mức độ ưu tiên cao được đặt trong nút lá thích hợp trong cây tiện ích
    • Trước đó, hãy xác định các QAs mà kịch bản giải quyết
  • Khi kịch bản cân não được đặt trong cây tiện ích:
    • Kịch bản sẽ khớp và về cơ bản sao chép một nút lá đã tồn tại
    • Kịch bản đi vào một lá mới của nhánh hiện có
    • Tình huống không khớp với cành cây (QA chưa được tính đến trước đây)

Cây tiện ích so với Kịch bản

Cây tiện íchKịch bản động não
Các bên liên quanKiến trúc sư, trưởng dự ánTất cả các bên liên quan
Quy mô nhóm điển hìnhNgười đánh giá, 2-3 nhân sự dự ánNgười đánh giá, 5-10 nhân sự liên quan đến dự án
Mục tiêu chínhGợi ý, đưa ra kết luận và ưu tiên các QA định hướng; cung cấp trọng tâm cho phần còn lại của đánh giáThúc đẩy giao tiếp với các bên liên quan để xác thực các mục tiêu QA được đưa ra thông qua cây tiện ích
Cách tiếp cậnTừ chung đến cụ thể; bắt đầu với QA, tinh chỉnh cho đến khi nổi lên kịch bảnTừ cụ thể đến chung; bắt đầu với các tình huống, xác định các QAs mà chúng thể hiện
Utility Trees versus Scenario Brainstorming

Các bên liên quan và Kiến trúc sư

  • Kiến trúc sư nên có mặt khi đánh giá!
    • Không thể xác định kiến trúc sư: rắc rối
    • Kiến trúc sư nhìn thấy tất cả các bên liên quan cùng nhau, bước quan trọng
    • Kiến trúc sư nhận các hạng mục để làm việc sau khi đánh giá
    • Phải trình bày kiến trúc
  • Xác định các loại bên liên quan và tên!
    • Người đánh giá đề xuất các loại
    • Khách hàng cung cấp tên

Bước 8: Phân tích các phương pháp tiếp cận kiến trúc

  • Các kịch bản được xếp hạng cao nhất từ bước 7 được trình bày cho kiến trúc sư
    • Kiến trúc sư giải thích cách các quyết định kiến trúc có liên quan góp phần hiện thực hóa từng kịch bản
    • Các phương pháp tiếp cận kiến trúc đã được thảo luận trước đây nên đến ở đây
  • Các hoạt động tương tự như trong Bước 6
  • Lý tưởng nhất: chỉ thử nghiệm
    • Nếu bước 7 không tạo ra bất kỳ tình huống ưu tiên cao nào chưa được đề cập

Bước 9: Trình bày kết quả

  • Báo cáo bằng lời nói và các trang trình bày
  • Báo cáo bằng văn bản
  • Đầu ra:
    • Các phương pháp tiếp cận kiến trúc được ghi lại
    • Tập hợp các tình huống và mức độ ưu tiên của chúng từ quá trình động não
    • Cây tiện ích
    • Những rủi ro được phát hiện
    • Các tài liệu không rủi ro
    • Tìm thấy các điểm nhạy cảm và điểm cân bằng

Bước 9: Các chủ đề rủi ro

  • Các rủi ro có thể được nhóm lại với nhau dựa trên một số mối quan tâm cơ bản chung, thiếu hụt hệ thống
  • Ví dụ
    • Tài liệu không được xem xét đầy đủ
      • Tài liệu không đủ
      • Tài liệu lỗi thời
    • Không quan tâm đầy đủ đến khả năng sao lưu hoặc cung cấp tính sẵn sàng cao
      • Hệ thống không thể hoạt động khi nhiều SW / HW khác nhau bị lỗi
  • Chủ đề rủi ro <-> các động lực kinh doanh bị ảnh hưởng
    • Phần kết thúc và rủi ro được chỉ ra cho ban quản lý

Leave a Reply

Your email address will not be published. Required fields are marked *