Phân tích yêu cầu phần mềm - Lecture 10: Yêu cầu phi chức năng

pdf 16 trang Gia Huy 17/05/2022 3270
Bạn đang xem tài liệu "Phân tích yêu cầu phần mềm - Lecture 10: Yêu cầu phi chức năng", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfphan_tich_yeu_cau_phan_mem_lecture_10_yeu_cau_phi_chuc_nang.pdf

Nội dung text: Phân tích yêu cầu phần mềm - Lecture 10: Yêu cầu phi chức năng

  1. Phân tích yêu cầu phần mềm Lecture 10: Yêu cầu phi chức năng Non-Functional Requirements (NFRs)  Tiền khái niệm: Các dạng ký pháp mô hình hóa mà chúng ta đã biết  Yêu cầu phi chức năng (NFRs) là gì ? Các hệ số chất lượng, tiêu chuẩn thiết kế; các độ đo Ví dụ về NFRs  Tiếp cận hướng sản phẩm (Product-oriented) với NFRs Tạo ra sự đặc tả các hệ số chất lượng Ví dụ: Sự tin cậy  Tiếp cận hướng tiến trình (Process-oriented) với NFRs Phân tích mục tiêu linh động (softgoal) cho các thỏa hiệp trong thiết kế 1
  2. Phân tích yêu cầu phần mềm Các dạng biểu đồ trong UML Use Cases Biểu đồ trình tự Khía cạnh từ người dùng Kịch bản cụ thể Liệt kê trực quan các giao tiếp giữa những chức năng tổng quan của người dùng và hệ thống các yêu cầu chính Trình tự của việc trao đổi các thông báo Biểu đồ hoạt động Biểu đồ chuyển trạng thái Tiến trình hoạt động Các đáp ứng theo sự đồng thời và kiện của một đối tượng, đồng bộ phụ thuộc mô hình hóa hành vi giữa các công việc của một lớp giao diện. Biểu đồ lớp Cấu trúc thông tin quan hệ giữa các lớp, giao diện, hợp tác. Thể hiện mặt tĩnh của hệ thống. 2
  3. Phân tích yêu cầu phần mềm và những biểu đồ không thuộc - UML: Mô hình mục tiêu (Goal Models) Nắm bắt các mục tiêu chiến lược của các đối tác Tốt cho việc khảo sát các câu hỏi ‘how’ và ‘why’ với các đối tác Tốt để phân tích các thỏa hiệp trade-offs, đặc biệt trên các chọn lựa thiết kế Mô hình Cây bắt lỗi (Fault Tree Models) - như một ví dụ trong kỹ thuật phân tích rủi ro Nắm bắt các lỗi tiềm ẩn của một hệ thống và nguồn gốc nguyên nhân Tốt cho phân tích rủi ro, đặc biệt trong những ứng dụng với tiêu chuẩn an toàn Mô hình chiến lược phụ thuộc (Strategic Dependency Models (i*)) Nắm bắt quan hệ giữa các tác nhân trong một tổ chức Hữu ích cho quan hệ giữa mục tiêu đối tác với tổ chức thiết lập chúng Tốt cho việc thấu hiểu tổ chức sẽ thay đổi như thế nào Mô hình quan hệ - thực thể (Enntity-Relationship Models) Nắm bắt quan hệ về cấu trúc thông tin được lưu trữ Tốt cho việc hiểu các ràng buộc và những giả thiết về phạm vi chủ thể Lập nền tảng tốt cho thiết kế CSDL Các kiểu bảng lớp (Class Tables), bảng sự kiện (Event Tables) và bảng điều kiện (Condition Tables (SCR)) Nắm bắt hành vi động của một hệ thống phản ứng trong thực tế Tốt cho việc biểu diễn chức năng kết hợp từ inputs đến outputs Tốt cho việc tạo các mô hình hành vi chính xác, như suy diễn tự động 3
  4. Phân tích yêu cầu phần mềm Yêu cầu phi chức năng là gì?  Chức năng vs. Phi chức năng Các yêu cầu chức năng mô tả cái hệ thống sẽ làm Các chức năng có thể nắm bắt trong use cases Các hành vi có thể được phân tích bằng việc vẽ biểu đồ trình tự, biểu đồ trạng thái, etc. và khả năng lần vết để giải quyết những vấn đề rắc rối của một chương trình Các yêu cầu phi chức năng là những ràng buộc toàn thể trên hệ thống phần mềm e.g. chi phí phát triển, chi phí vận hành, khả năng thực thi, độ tin cậy, khả năng bảo trì, tính khả chuyển, tính thiết thực, etc. Thường được biết như chất lượng phần mềm, hoặc chỉ là “các khả năng” (“ilities”) Thường không được cài đặt trong một mô-đun duy nhất của chương trình  Những trở ngại của NFRs Khó để mô hình Thường ở trạng thái không hình thức, và vì thế mà: Thường mâu thuẫn, Khó thực hiện trong suốt quá trình phát triển Khó đánh giá khách hàng nào ưu tiên để phân phối Khó tạo ra các tiêu chuẩn để có thể đo lường chúng Chúng ta muốn ổn định chúng theo cách có thể đo lường được sẽ đáp ứng chúng như thế nào. 4
  5. Phân tích yêu cầu phần mềm Ví dụ về NFRs  Yêu cầu giao diện  Yêu cầu vận hành Giao diện của hệ thống mới sẽ như thế nào Các ràng buộc vật lý (kích thước, trọng lượng), trong môi trường của nó? Mức kỹ năng & khả năng nhân sự Giao diện người dùng “thân thiện” Dễ bảo trì Giao diện đối với các hệ thống khác Các điều kiện về môi trường  Yêu cầu thực thi etc Giới hạn về thời gian / không gian Thời gian tải nạp, thời gian đáp ứng, kích  Yêu cầu chu trình sống thước dữ liệu nhập và không gian lưu trữ “Future-proofing” e.g. ”hệ thống phải kiểm soát 1000 Khả năng bảo trì giao dịch trên giây" Khả năng mở rộng Độ tin cậy Tính khả chuyển Tính sẵn dùng của các thành phần Thị trường mong đợi hoặc vòng đời sản phẩm Sự nguyên vẹn của thông tin dùng duy Những giới hạn phát triển trì và cung cấp cho hệ thống E.g giới hạn thời gian phát triển, e.g. "hệ thống phải có ít hơn 1 giờ Tài nguyên sẵn dùng đình trệ hoạt động trong 3 thángs" Các chuẩn về phương pháp Tính bảo mật etc. E.g. Cho phép thông tin lưu hành, hoặc phân quyền người dùng  Yêu cầu kinh tế Khả năng chịu lỗi e.g. giới hạn nghiêm ngặt đúng thời gian E.g. Hệ thống sẽ cần năng lực tồn tại, và/hoặc vốn dài hạn. chịu đựng các sự cố tự nhiên, etc 5
  6. Phân tích yêu cầu phần mềm Tiếp cận NFRs  Sản phẩm vs. Tiến trình? Tiếp cận hướng sản phẩm (Product-oriented Approaches) Tập trung vào chất lượng của hệ thống (hoặc phần mềm) Nắm bắt các tiểu chuẩn thiết lập của mỗi yêu cầu để mà chúng ta có thể đo lường chúng khi sản phẩm được thiết kế Tiếp cận hướng tiến trình (process-oriented Approaches) Tập trung vào các yêu cầu phi chức năng (NFRs) nào có thể dùng trong tiến trình thiết kế Phân tích tương tác giữa NFRs và các chọn lựa thiết kế để mà chúng ta có thể đưa ra các quyết định thiết kế phù hợp  Định lượng (Quantitative) vs. Định tính (Qualitative)? Tiếp cận định lượng Tìm thang đo các thuộc tính về chất lượng Tính toán mức độ cho một thiết kế đáp ứng với các mục tiêu chất lượng nào Tiếp cận định tính Nghiên cứu các dạng quan hệ giữa các mục tiêu chất lượng Lý do của các sự thỏa hiệp (trade-offs), etc. 6
  7. Phân tích yêu cầu phần mềm Chất lượng phần mềm  Nghĩ đến một đồ vật thông thường e.g. Một cái ghế – bạn sẽ đo “chất lượng” của nó như thế nào? Chất lượng kết cấu? Giá trị thẩm mỹ? Đáp ứng mục tiêu?  Tất cả các độ đo chất lượng đều có quan hệ Không có thang đo nào tuyệt đối Đôi khi chúng ta có thể nói A tốt hơn B nhưng thường rất khó để nói tốt hơn thế nào !  Đối với phần mềm : Chất lượng kết cấu? Phần mềm thì không được chế tạo (mà là phát triển) Giá trị thẩm mỹ? nhưng hầu hết phần mềm thì trực quan giá trị thẩm mỹ là một sự quan tâm bên lề Đáp ứng mục tiêu? Cần phải hiểu rõ mục tiêu 7
  8. Phân tích yêu cầu phần mềm Sự đáp ứng (Fitness) Source: Budgen, 1994, pp58-9  Chất lượng phần mềm là đáp ứng với mục tiêu Nó có thực hiện điều cần thực hiện? Nó có thực hiện theo cách người dùng cần nó thực hiện? Nó có đủ tin cậy? Đủ nhanh? Đủ an toàn? Đủ bảo mật? Nó sẽ có khả năng thực hiện? Nó sẽ luôn sẵn sàng khi người dùng cần đến nó? Nó có thể thay đổi khi nhu cầu thay đổi?  Chất lượng không phải là một độ đo cho riêng phần mềm Nó đo lường các quan hệ của phần mềm trong lĩnh vực ứng dụng của nó không thể đo lường điều này trước khi bạn đặt phần mềm vào môi trường của nó và chất lượng sẽ khác nhau trong những môi trường khác nhau! Trong khi thiết kế, chúng ta cần dự đoán phần mềm sẽ đáp ứng với mục tiêu tốt như thế nào chúng ta cần những người dự đoán chất lượng tốt (người phân tích thiết kế) Trong khi phân tích yêu cầu, chúng ta cần hiểu rõ việc đáp ứng với mục tiêu sẽ được đo lường thế nào Mục tiêu dự định là gì? Các yếu tố chất lượng gì sẽ quan trọng đối với các đối tác? Những yếu tố đó sẽ được tổ chức như thế nào? 8
  9. Phân tích yêu cầu phần mềm Các yêu tố vs. Tiêu chuẩn  Các yếu tố chất lượng Điều này thì liên quan đến quan hệ khách hàng (customer-related) Ví dụ: hiệu năng, tính toàn vẹn, độ tin cậy, tính chính xác, khả năng chịu lỗi, sự tiện dụng,  Tiêu chuẩn thiết kế Điều này liên quan tới kỹ thuật (hướng phát triển) chẳng hạn như quản lý các bất thường, tính hoàn thiện, tính ổn định, khả năng lưu vết, tính trực quan,  Yếu tố chất lượng và tiêu chuẩn thiết kế thì có liên quan: Mỗi yếu tố phụ thuộc vào một số tiêu chuẩn liên quan: E.g. Tính chính xác phụ thuộc vào tính hoàn thiện, tính ổn định, khả năng lưu vết, E.g. Tính khả thi phụ thuộc vào sự mô-đun hóa, tính linh động và tính đơn giản Có thể có một số chuẩn kết hợp để giúp bạn  Trong quá trình phân tích: Xác định quan hệ quan trọng của mỗi yếu tố chất lượng Từ quan điểm của khách hàng! Xác định tiêu chuẩn thiết kế mà mỗi yếu tố này phụ thuộc Thiết lập độ đo lường các yêu cầu 9
  10. Tiêu chuẩn thiết kế Boehm’s NFR list Độc lập thiết bị Source: See Blum, 1992, p176 Tự lưu trữ Khả chuyển Chính xác Hoàn thiện Tin cậy Thiết thực/toàn vẹn Ổn định Đặc tính Hiệu quả chung như Tiện ích Dễ giải trình Hiệu suất thiết bị Sẵn dùng Dể truy xuất Dễ giao tiếp Dễ kiểm thử Linh hoạt Dễ hiểu Có cấu trúc Khả năng bảo trì Cô đọng Các yếu tố chất lượng Dễ sửa đổi Hợp lệ Có thể mở rộng 10
  11. Tiêu chuẩn thiết kế Dễ vận hành McCall’s NFR list Dễ huấn luyện Source: See van Vliet 2000, pp111-3 Dễ giao tiếp Sẵn dùng Dung lượng I/O Tốc độ I/O Toàn vẹn Quản lý truy xuất Kiểm soát truy xuất Vận hành sản phẩm Hiệu quả Lưu trữ hiệu quả Thực thi hiệu quả Chính xác Khả năng lưu vết Hoàn thiện Các yếu tố chất lượng Tin cậy Chính xác Khả năng chịu lỗi Dễ bảo trì Nhất quán Đơn giản Bảo dưỡng sản phẩm Cô đọng Dễ kiểm thử Phương tiên hóa Dễ mở rộng Linh động Tổng quát hóa Linh động Tái sử dụng Mô-đun hóa Chuyển giao sản phẩm Độc lập thiết bị Khả chuyển Độc lập hệ thống s/w Giao tiếp tương đồng Liên vận hành Dữ liệu tương đồng 11
  12. Phân tích yêu cầu phần mềm Thiết lập độ đo các yêu cầu Source: Budgen, 1994, pp60-1  Chúng ta phải đổi các khái niệm không rõ ràng về chất lượng thành độ đo lường Các ví dụ Các yếu tố chất lượng Độ tin cậy Độ phức tạp Dễ sử dụng (các khái niệm trừu tượng của các đặc tính chất lượng) Thời gian Tiêu chuẩn đo lường Trung bình Thông tin cần để học số lần gặp lỗi? truyền nhận (định nghĩa một số độ đo) giữa các thủ tục? cách sử dụng? Số phút cần Đếm số lần từ kết quả Thực hiện nó Đếm số cho một số và đếm số lỗi lần gọi hiển thị của thiết kế thao tác của trên giờ??? thủ tục??? (hiện thực hóa độ đo) người dùng??? 12
  13. Phân tích yêu cầu phần mềm Ví dụ : Đo độ tin cậy  Định nghĩa ví dụ: Khả năng của hệ thống hành xử một cách thống nhất theo phương cách người dùng có thể chấp nhận được khi hệ thống vận hành bên trong môi trường mà nó dự định thực hiện.  Các chú thích: Độ tin cậy có thể được xác định dưới dạng một giá trị phần trăm (như, 99.999%) Điều này có thể mang ý nghĩa khác nhau đối với các ứng dụng khác nhau: Mạng điện thoại: mạng toàn cục có thể bị lỗi không nhiều hơn, trung bình khoảng 1hr mỗi năm, nhưng lỗi của các chuyển mạng cá nhân có thể xuất hiện thường xuyên hơn nhiều. Hệ thống kiểm tra bệnh nhân: hệ thống có thể bị lỗi đến khoảng 1hr/year, nhưng trong trường hợp này, các bác sĩ/ y tá sẽ báo động lỗi. Lỗi thường xuyên hơn ở các bộ phận cá thể thì không thể chấp nhận được. Tốt nhất, chúng ta có thể thực hiện một số việc như sau: " Không có nhiều hơn X lỗi trên 10KLOC (line of code) có thể được phát hiện trong suốt quá trình tích hợp và kiểm thử; không có nhiều hơn Y lỗi trên 10KLOC có thể tồn tại trong hệ thống sau khi phân phối, theo như tính toán bởi Monte Carlo dùng kỹ thuật tìm kiếm nhân lỗi như trong phụ lục Z; hệ thống phải vận hành 99.9% trên 100% khả năng vận hành theo lịch trong suốt năm vận hành đầu tiên của nó " 13
  14. Phân tích yêu cầu phần mềm Đo độ tin cậy  Ví dụ - yêu cầu về độ tin cậy: “Phần mềm sẽ có không nhiều hơn X lỗi trên một ngàn dòng mã lệnh” Nhưng có thể đo được lỗi tại thời điểm phân phối sản phẩm không?  Dùng trình gỡ lỗi (Debuging) Đo lường hiệu quả của tiến trình kiểm thử Một số nhân lỗi thì được nêu ra cho hệ thống phần mềm sau đó thực hiện kiểm thử và sửa lỗi không toàn bộ Ước lượng số lỗi = # nhân lỗi x # lỗi phát hiện trong hệ thống # nhân lỗi được phát hiện NHƯNG, không phải tất cả lỗi đều quan trọng như nhau! 14
  15. Phân tích yêu cầu phần mềm Thiết lập độ đo yêu cầu  Xác định ‘tiêu chuẩn đáp ứng’ cho mỗi yêu cầu Đặt ‘tiêu chuẩn đáp ứng’ bên cạnh yêu cầu E.g. Đối với phần mềm ATM mới Yêu cầu: “Phần mềm phải trực quan và rõ ràng (không cần giải thích gì thêm)” Tiêu chuẩn đáp ứng: “95% các khách hàng hiện có của ngân hàng sẽ có thể rút tiền và gửi séc trong vòng 2 phút khi sử dụng sản phẩm lần đầu tiên”  Chọn tiêu chuẩn đáp ứng tốt Các đối tác thường hiếm khi mô tả điều này Các tiêu chuẩn đúng không luôn rõ ràng: Làm việc với các đối tác để tìm ra các tiêu chuẩn đáp ứng tốt  Sự thay thế Đôi khi, chất lượng không thể đo lường trực tiếp. Tìm các định danh thay thế: E.g. “Một vài dữ liệu nhập bị lỗi” thế cho Tính dễ sử dụng E.g. “Liên kết không chặt chẽ” thế cho Tính dễ bảo trì 15
  16. Phân tích yêu cầu phần mềm Danh mục NFR Source: Cysneiros & Yu, 2004  Danh mục định nghĩa sẵn của sự phân tích NFR Cung cấp kiến thức nền để kiểm tra độ bao phủ của một NFR Cung cấp một công cụ làm rõ NFRs Ví dụ: 16