Bài giảng Đặc tả phần mềm

1. Yêu cầu chức năng Mô tả hệ thống sẽ làm gì Mô tả các chức năng hoặc các dịch vụ của hệ thống một cách chi tiết. Đặc điểm của yêu cầu chức năng: Tính mập mờ, không rõ ràng: Tính hoàn thiện và nhất quán:

ppt53 trang | Chia sẻ: haohao89 | Lượt xem: 6680 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Bài giảng Đặc tả phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
* CHƯƠNG 2 : ĐẶC TẢ PHẦN MỀM Việc hình thành các yêu cầu và cách đặc tả Yêu cầu hệ thống Yêu cầu người dùng Tài liệu đặc tả yêu cầu Quy trình xác định yêu cầu Kỹ thuật phân tích yêu cầu * I. VIỆC HÌNH THÀNH CÁC YÊU CẦU VÀ CÁCH ĐẶC TẢ 1. Việc hình thành các yêu cầu Yêu cầu : Requirements described the “what” of a system, not the “how” Yêu cầu phần mềm là những yêu cầu về phần mềm mà khách hàng nêu ra : các chức năng của phần mềm, hiệu năng của phần mềm, các yêu cầu về thiết kế và giao diện, một số yêu cầu đặc biệt khác * 1. Việc hình thành các yêu cầu (tiếp) Yêu cầu thường được mô tả ở nhiều mức chi tiết khác nhau phục vụ cho các đối tượng đọc khác nhau Thế nào là một yêu cầu tốt : I. VIỆC HÌNH THÀNH CÁC YÊU CẦU VÀ CÁCH ĐẶC TẢ * 2. Cách đặc tả Đặc tả : là sự mô tả các đặc trưng nhằm diễn đạt các yêu cầu và chức năng của sản phẩm phần mềm cần xây dựng. Đặc tả liên quan đến các đối tượng, khái niệm và thủ tục nào đó cần đến khi phát triển chương trình Các đặc trưng : Tính chính xác Tính trừu tượng Tính chặt chẽ về mặt toán học I. VIỆC HÌNH THÀNH CÁC YÊU CẦU VÀ CÁCH ĐẶC TẢ * 2. Cách đặc tả (tiếp) Các phương pháp đặc tả Đặc tả hình thức Đặc tả phi hình thức Đặc tả hỗn hợp Các loại đặc tả: Đặc tả cấu trúc dữ liệu Đặc tả chức năng Đặc tả đối tượng Đặc tả thao tác Đặc tả cú pháp Đặc tả qua sơ đồ Đặc tả thuật toán … I. VIỆC HÌNH THÀNH CÁC YÊU CẦU VÀ CÁCH ĐẶC TẢ * Là bản đặc tả các dịch vụ mà hệ thống cung cấp và các ràng buộc để xây dựng, vận hành hệ thống. Các yêu cầu của hệ thống phần mềm thường được chia thành 3 loại : Yêu cầu chức năng Yêu cầu phi chức năng Yêu cầu miền ứng dụng II. YÊU CẦU HỆ THỐNG * 1. Yêu cầu chức năng Mô tả hệ thống sẽ làm gì Mô tả các chức năng hoặc các dịch vụ của hệ thống một cách chi tiết. Đặc điểm của yêu cầu chức năng: Tính mập mờ, không rõ ràng: Tính hoàn thiện và nhất quán: II. YÊU CẦU HỆ THỐNG * 1. Yêu cầu chức năng (tiếp) Một số yêu cầu chức năng : Chức năng tính toán Chức năng lưu trữ Chức năng tìm kiếm Chức năng kết xuất Chức năng backup Chứng năng đa người dùng Chức năng đa phương tiện II. YÊU CẦU HỆ THỐNG * 2. Yêu cầu phi chức năng Không đề cập trực tiếp tới các chức năng cụ thể của hệ thống Yêu cầu phi chức năng thường định nghĩa các thuộc tính như : Độ tin cậy, thời gian đáp ứng, các yêu cầu về lưu trữ…Các ràng buộc của hệ thống (Khả năng của thiết bị vào/ra, giao diện…) Một số y/cầu này liên quan đến quy trình xây dựng hệ thống (các chuẩn được sử dụng, các công cụ CASE, ngôn ngữ lập trình …). Nếu nó không được thoả mãn thì hệ thống sẽ không sử dụng được. II. YÊU CẦU HỆ THỐNG * 2. Yêu cầu phi chức năng (tiếp) Lý do xuất hiện các yêu cầu phi chức năng Yêu cầu của người sử dụng Ràng buộc về ngân sách. Các chính sách của tổ chức sử dụng hệ thống Yêu cầu tương thích giữa phần cứng và phần mềm Các tác nhân ngoài khác II. YÊU CẦU HỆ THỐNG * 2. Yêu cầu phi chức năng (tiếp) Phân loại các yêu cầu phi chức năng như sau: Các yêu cầu về sản phẩm xác định ứng xử của sản phẩm như: hiệu năng, khả năng sử dụng, độ tin cậy … của sản phẩm Các yêu cầu về tổ chức: các yêu cầu này được lấy từ những chính sách và quy tắc của khách hàng hoặc tổ chức sử dụng hệ thống. Các yêu cầu ngoài: được xác định từ các tác nhân ngoài của hệ thống II. YÊU CẦU HỆ THỐNG * 2. Yêu cầu phi chức năng (tiếp) II. YÊU CẦU HỆ THỐNG * 3. Yêu cầu miền ứng dụng Được xác định từ miền ứng dụng của hệ thống và phản ánh các thuộc tính, ràng buộc của miền ứng dụng. Nó có thể là yêu cầu chức năng hoặc phi chức năng. II. YÊU CẦU HỆ THỐNG * 3. Yêu cầu miền ứng dụng (tiếp) Một số vấn đề liên quan đến yêu cầu miền ứng dụng: Khả năng có thể hiểu được: các yêu cầu được biểu diễn dưới ngôn ngữ của miền ứng dụngthường gây khó hiểu cho người phát triển Ẩn ý: Các chuyên gia hiểu biết về lĩnh vực của họ  y/cầu miền ứng dụng một cách không rõ ràng, mang tính kỹ thuật. II. YÊU CẦU HỆ THỐNG * 3. Yêu cầu miền ứng dụng (tiếp) Một số ràng buộc Ràng buộc trước sau Ràng buộc cấu trúc Ràng buộc suy diễn Ràng buộc thời gian II. YÊU CẦU HỆ THỐNG * 4. Kỹ thuật đặc tả yêu cầu hệ thống Sử dụng ngôn ngữ tự nhiên. Tuy nhiên thường gặp một số vấn đề sau: Không rõ ràng: Quá mềm dẻo: Thiếu khả năng mô-đun hoá: II. YÊU CẦU HỆ THỐNG * 4. Kỹ thuật đặc tả yêu cầu hệ thống (tiếp) Các phương pháp đặc tả yêu cầu: Đặc tả bằng ngôn ngữ hướng cấu trúc Đặc tả dựa biểu mẫu (Form-based) Biểu đồ trình tự II. YÊU CẦU HỆ THỐNG * 4. Kỹ thuật đặc tả yêu cầu hệ thống (tiếp) Đặc tả bằng ngôn ngữ hướng cấu trúc Tuân theo những mẫu được định nghĩa trước. Tất cả các yêu cầu đều được viết theo chuẩn và các thuật ngữ được sử dụng có thể bị hạn chế. Ưu điểm của phương pháp này là đạt được mức độ diễn tả cao nhất của ngôn ngữ tự nhiên nhưng mức độ đồng lại bị lạm dụng trong các đặc tả. II. YÊU CẦU HỆ THỐNG * 4. Kỹ thuật đặc tả yêu cầu hệ thống (tiếp) Đặc tả dựa biểu mẫu (Form-based) Định nghĩa các chức năng hoặc thực thể, mô tả đầu vào và nơi xuất phát của nó, mô tả đầu ra và nơi nó sẽ đến. Chỉ rõ những thực thể cần thiết, các điều kiện trước và sau (nếu thích hợp), các ảnh hưởng của chức năng. II. YÊU CẦU HỆ THỐNG * 4. Kỹ thuật đặc tả yêu cầu hệ thống (tiếp) Biểu đồ trình tự Biểu diễn trình tự các sự kiện xảy ra khi người sử dụng tương tác với hệ thống. Thấy được thứ tự của các hành động được thực hiện. II. YÊU CẦU HỆ THỐNG * Yêu cầu này được định nghĩa bằng cách sử dụng ngôn ngữ tự nhiên, bảng hoặc biểu đồ đơn giản. III. YÊU CẦU NGƯỜI SỬ DỤNG * Một số khó khăn khi sử dụng ngôn ngữ tự nhiên: Không rõ ràng: Tính chính xác rất khó đạt được nếu tài liệu khó đọc. Yêu cầu lộn xộn: các yêu cầu chức năng và phi chức năng không rõ ràng. Lẫn lộn giữa các yêu cầu: các yêu cầu khác nhau có thể được diễn tả cùng với nhau. III. YÊU CẦU NGƯỜI SỬ DỤNG * Một số quy tắc sau: Đưa ra một định dạng chuẩn và áp dụng nó cho tất cả các yêu cầu. Bắt buộc sử dụng ngôn ngữ một cách thống nhất Đánh dấu những phần quan trọng trong các yêu cầu. Tránh sử dụng những từ ngữ mang tính chuyên môn, kỹ thuật. III. YÊU CẦU NGƯỜI SỬ DỤNG * Tài liệu đặc tả yêu cầu là những yêu cầu chính thức về những gì cần phải thực hiện bởi đội phát triển hệ thống. Tài liệu này nên bao gồm cả các định nghĩa về yêu cầu của người sử dụng và đặc tả yêu cầu hệ thống. Tài liệu này không phải là tài liệu thiết kế hệ thống. IV. TÀI LIỆU ĐẶC TẢ YÊU CẦU * Cấu trúc chung của tài liệu yêu cầu Chuẩn IEEE/ANSI 830-1984 đưa ra cấu trúc gồm 5 mục chính: Giới thiệu, mô tả chung, Các yêu cầu cụ thể, phụ lục, các chỉ số và chỉ dẫn Ngoài ra còn có thể có thêm các chương hay các phụ lục với các tin: Kiến trúc chung cả hệ thống phần cứng Cơ sở dữ liệu Chú dẫn Tài liệu yêu cầu cũng là 1 công cụ tham khảo cho toàn bộ hệ thống IV. TÀI LIỆU ĐẶC TẢ YÊU CẦU * Heniger đưa ra sáu yêu cầu của 1 tài liệu YCPM Chỉ mô tả các hoạt động của hệ thống từ bên ngoài Chỉ ra được ràng buộc của HT trong q/trình vận hành Dễ thay đổi Phục vụ như tài liệu tham khảo cho người bảo trì HT Dự toán trước được vòng đời của hệ thống Mô tả được các đáp ứng đối với sự cố, thay đổi ngoài dự tính IV. TÀI LIỆU ĐẶC TẢ YÊU CẦU * Dàn bài đặc tả yêu cầu phần mềm Giới thiệu A. Tham khảo hệ thống B. Mô tả chung C. Các ràng buộc dự án phần mềm Mô tả thông tin A. Biểu diễn luồng thông tin 1. Luồng dữ liệu 2. Luồng điều kiển B. Biểu diễn nội dung thông tin C. Mô tả giao diện hệ thống IV. TÀI LIỆU ĐẶC TẢ YÊU CẦU * III. Mô tả chức năng A. Phân hoạch chức năng B. Mô tả chức năng 1. Tường thuật về cách xử lý 2. Hạn chế/giới hạn 3. Yêu cầu hiệu năng 4. Ràng buộc thiết kế 5. Biểu đồ trợ giúp C. Mô tả điều khiển : 1. Đặc tả điều khiển 2. Ràng buộc thiết kế IV. TÀI LIỆU ĐẶC TẢ YÊU CẦU * IV. Mô tả hành vi A. Trạng thái hệ thống B. Sự kiện và hành động V. Tiêu chuẩn hợp lệ A. Giới hạn hiệu năng B. Lớp các kiểm thử C. Đáp ứng phần mềm trông đợi D. Các xem xét đặc biệt VI. Sách tham khảo VII. Phụ lục IV. TÀI LIỆU ĐẶC TẢ YÊU CẦU * Quy trình này biến đổi phụ thuộc vào miền ứng dụng, con người và tổ chức xây dựng yêu cầu. Tuy nhiên, những quy trình này vẫn có chung một số hoạt động sau: phát hiện yêu cầu, phân tích yêu cầu, đánh giá yêu cầu và quản lý yêu cầu. Thường sử dụng mô hình xoắn ốc để xác định các yêu cầu. V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Kết quả của hoạt động này là các tài liệu yêu cầu phần mềm Gồm có 4 giai đoạn chính Nghiên cứu khả thi (Feasibility study) Phát hiện và phân tích yêu cầu (Requirements elicitation and analysis) Đặc tả yêu cầu (Requirement Specification) Thẩm định yêu cầu (Requirement Validation) V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Nghiên cứu khả thi Cần đưa ra phương án p/triển và luận chứng sự khả thi Thực hiện công việc này sẽ quyết định đưa ra 1 hệ thống đáp ứng được yêu cầu của khách hàng, có tính khả thi cao nhất Việc thực hiện công việc này phải nhanh và rẻ Quyết định có tiếp tục p/triển theo phương án đó không Chỉ khi dự án khả thi được chấp nhận, quá trình triển khai mới được bắt đầu V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Nghiên cứu khả thi Nên phân loại phương án: phương án thấp, phương án trung bình, phương án cao Phân tích khả thi thường tập trung vào các mặt: Khả thi về kinh tế: chi phí và hiệu quả, lợi ích cuối Khả thi về kỹ thuật: khả năng đáp ứng của kỹ thuật Khả thi về pháp lý: loại trừ sự vi phạm, xâm phạm Khả thi về hoạt động: vận hành trong môi trường cụ thể Khả thi về thời gian: thời gian hoàn thành V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu Là bước tiếp theo -> tiếp tục khảo sát yêu cầu của khách hàng và người sử dụng về miền ứng dụng -> Phân tích thành t/liệu xác định các yêu cầu Chú ý cả những đối tượng khác nhau liên quan đến HT : các kỹ sư, người quản lý nghiệp vụ, chuyên gia miền Bao gồm cả việc phát triển thử nghiệm 1 hay nhiều mô hình hệ thống khác nhau. Làm bản mẫu ht có thể được thực hiện trong giai đoạn này V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phát hiện(thu thập yêu cầu) : Mục đích : Khó khăn: Hiểu biết của khách hàng Khó khăn về tính ổn định V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phát hiện(thu thập yêu cầu) : Các kỹ thuật sử dụng : Phỏng vấn : lựa chọn các stakeholder để phỏng vấn Phát phiếu điều tra Thu thập tài liệu : mẫu biểu, báo cáo thống kê, số liệu V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phân tích yêu cầu : Mục đích : V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phân tích yêu cầu : Các nguyên lý phân tích : Nguyên lý 1 : Miền dữ liệu - Xác định các đối tượng dữ liệu - Mô tả các thuộc tính dữ liệu - Thiết lập quan hệ dữ liệu Nguyên lý 2 : Miền chức năng: - Xác định chức năng biến đổi dữ liệu - Chỉ ra luồng dữ liệu trong hệ thống - Biểu diễn chức năng, luồng dữ liệu, kho DL V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Nguyên lý 3 : Xác định các trạng thái : - Chỉ ra các trạng thái khác nhau của hệ thống - Đặc tả các hiện tượng làm hệ thống thay đổi trạng thái Nguyên lý 4 : Phân tách mô hình - Lọc các đối tượng dữ liệu - Tạo phân cấp chức năng - Biểu diễn hành vi ở các mức chi tiết khác nhau Nguyên lý 5: Sự thiết yếu : - Chú trọng vấn đề thiết yếu - Loại bỏ những vấn đề chi tiết V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phân tích yêu cầu : Hướng phân tích : Phân tích hướng cấu trúc - Tập trung vào DL, quy trình biến đổi DL - Sử dụng các biểu đồ Phân tích hướng đối tượng: - Tập trung vào đối tượng, tương tác giữa các đối tượng - Sử dụng UML V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phân tích yêu cầu : Các mô hình phân tích V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) Bước phân tích yêu cầu : Trong các mô hình trên thì mô hình luồng dữ liệu (DFD) là một trong những cách thông dụng nhất hiện nay để phân tích hệ thống DFD biểu diễn các bước mà luồng dữ liệu phải trải qua trong hệ thống từ điểm đầu tới điểm cuối Các ký pháp sử dụng: : Thể hiện các chức năng : Thể hiện luồn dữ liệu : Kho dữ liệu : Tương tác hệ thống, vào/ra dữ liệu V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Phát hiện và phân tích yêu cầu (tiếp) V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Đặc tả yêu cầu (Requirement Specification) Mô tả chính xác và chi tiết yêu cầu của hệ thống để làm cơ sở cho giao kèo giữa khách hàng và người pt hệ thống Khi viết tài liệu này, các sai sót trong xác định yêu cầu sẽ được phát hiện và sửa chữa V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * 4. Thẩm định yêu cầu Là việc xem xét các đặc tả yêu cầu có mô tả chính xác những gì đặt ra trong hệ thống có thể thực hiện được không? Các thuộc tính cần thẩm định gồm: tính đúng đắn, nhất quán, đầy đủ, tính hiện thực V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * 4. Thẩm định yêu cầu Kỹ thuật thẩm định yêu cầu : Kiểm tra yêu cầu Tạo mẫu Tạo tình huống kiểm tra V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * V. QUY TRÌNH XÁC ĐỊNH YÊU CẦU * Tiếp cận yêu cầu định hướng cách nhìn (Viewpoint – Oriented Requirements Definition - VORD) Kỹ thuật phân tích yêu cầu dựa trên mô hình Kỹ thuật phân tích hình thức hóa VI. KỸ THUẬT PHÂN TÍCH YÊU CẦU * 1. Tiếp cận định hướng cách nhìn Ghi nhận những cách nhìn khác nhau của những người liên quan và sử dụng nó vào tiến trình thực hiện yêu cầu và tổ chức các yêu cầu VI. KỸ THUẬT PHÂN TÍCH YÊU CẦU * 1. Tiếp cận định hướng cách nhìn (tiếp) Phân loại khung nhìn : Khung nhìn tương tác : Khung nhìn gián tiếp : Khung nhìn miền : VI. KỸ THUẬT PHÂN TÍCH YÊU CẦU * 2. Phân tích yêu cầu dựa trên mô hình Được sử dụng rộng rãi để phân tích yêu cầu Kỹ thuật này đi theo 2 hướng tiếp cận Tiếp cận định hướng chức năng (Hướng cấu trúc dựa trên luồng dữ liệu) Tiếp cận hướng đối tượng Tập trung hướng vào mô tả nghiệp vụ của hệ thống thực kết quả thu được là mô hình nghiệp vụ VI. KỸ THUẬT PHÂN TÍCH YÊU CẦU * 2. Phân tích yêu cầu dựa trên mô hình Mô hình nghiệp vụ theo PP này gồm: Mô hình ngữ cảnh: Mô tả hệ thống được xét trong môi trường của nó Các mô hình cấu trúc chức năng mô tả cấu trúc chức năng của hệ thống Mô tả chi tiết các chức năng: cho đến mức thấp nhất Mô tả các đối tượng dữ liệu: Theo hướng cấu trúc là bao gồm tất cả các hồ sơ và bản mẫu, theo HĐT gồm các ĐT và khái niệm của thế giới thực Mô tả các mối liên kết của dữ liệu và chức năng – chỉ cần thiết với cách tiếp cận hướng cấu trúc Từ điển giải thích VI. KỸ THUẬT PHÂN TÍCH YÊU CẦU * 2. Kỹ thuật phân tích hình thức hóa Dựa trên việc sử dụng các khái niệm, ký pháp và mô hình toán học để phân tích và biểu diễn HT Phân tích sẽ không tách thành mô hình riêng Kết quả của việc phân tích và mô hình hóa cho ta ngay đặc tả của hệ thống. VI. KỸ THUẬT PHÂN TÍCH YÊU CẦU
Tài liệu liên quan