Bài giảng Nhập môn công nghệ phần mềm (Introduction to software engineering) - Chương 6: Kỹ nghệ yêu cầu phần mềm (Requirement Engineering)
• 1. Tổng quan về yêu cầu phần mềm
• 2. Quy trình xác định yêu cầu phần mềm
• 3. Phương pháp và công cụ đặc tả yêu cầu
phần mềm
• 4. Nguyên lý phân tích yêu cầu sử dụng
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Nhập môn công nghệ phần mềm (Introduction to software engineering) - Chương 6: Kỹ nghệ yêu cầu phần mềm (Requirement Engineering)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Nhập môn công nghệ phần mềm (Introduction to software engineering) - Chương 6: Kỹ nghệ yêu cầu phần mềm (Requirement Engineering)
các yêu cầu phần mềm (Requirements elicitation) – Các yêu cầu về phần mềm (Software) • Phân tích các yêu cầu phần mềm và thương lượng với – Các yêu cầu về phần cứng (Hardware) khách hàng (Requirements analysis and negotiation) – Các yêu cầu về dữ liệu (Data) • Đặc tả các yêu cầu phần mềm (Requirements – Các yêu cầu về con người (People, Users) specification) • Mô hình hóa hệ thống (System modeling) • Theo cách đặc tả phần mềm • Kiểm tra tính hợp lý của các yêu cầu phần mềm – Các yêu cầu chức năng (Requirements validation) – Các yêu cầu ngoài chức năng • Quản trị các yêu cầu phần mềm (Requirements management) – Các ràng buộc khác 5 6 5 6 Quy trình xác định yêu cầu PM (tiếp) Phát hiện yêu cầu phần mềm Xây dựng • Đánh giá tính khả thi về kỹ thuật và nghiệp vụ một nguyên mẫu (prototype) của phần mềm định phát triển • Tìm kiếm các nhân sự (chuyên gia, người sử dụng) có những hiểu biết sâu sắc nhất, Xác định Phát triển chi tiết nhất về hệ thống giúp chúng ta xác Vấn đề Xem yêu cầu đặc điểm kỹ thuật duyệt định yêu cầu phần mềm • Xác định môi trường kỹ thuật trong đó sẽ triển khai phần mềm Tạo ra mô hình • Xác định các ràng buộc về lĩnh vực ứng dụng phân tích của phần mềm (giới hạn về chức năng/hiệu năng phần mềm) Last Update8-07 Dept. of SE, 2002 SE-III.7 8 7 8 Đầu ra của bước phát hiện yêu cầu Phát hiện yêu cầu phần mềm phần mềm • Xác định các phương pháp sử dụng để phát hiện • Bảng kê (statement) các đòi hỏi và chức năng khả thi các yêu cầu phần mềm: phỏng vấn, làm việc của phần mềm nhóm, các buổi họp, gặp gỡ đối tác, v.v. • Bảng kê phạm vi ứng dụng của phần mềm • Thu hút sự tham gia của nhiều chuyên gia, khách • Mô tả môi trường kỹ thuật của phần mềm hàng để chúng ta có được các quan điểm xem xét • Bảng kê tập hợp các kịch bản sử dụng của phần mềm phần mềm khác nhau từ phía khách hàng • Các nguyên mẫu xây dựng, phát triển hay sử dụng • Xác định các yêu cầu còn nhập nhằng để làm mẫu trong phần mềm (nếu có) thử • Danh sách nhân sự tham gia vào quá trình phát hiện • Thiết kế các kịch bản sử dụng của phần mềm để các yêu cầu phần mềm - kể cả các nhân sự từ phía công giúp khách hàng định rõ các yêu cầu chính. ty- khách hàng 9 10 9 10 Phân tích các yêu cầu PM và Phân tích các yêu cầu phần mềm và thương lượng với khách hàng thương lượng với khách hàng Phân tích Cần Nhất quán + Khả thiết ? hàng đầy đủ ? thi ? công ph ầ n khách Nhóm Nhóm ngh ệ m m ề Yêu cầu không cần Yêu cầu không đầy đủ, Yêu cầu không khả thiết yêu cầu mâu thuẫn thi Thương lượng Thảo luận Đặt thứ tự ưu Nhất trí về các tiên cho các yêu về các yêu cầu cầu yêu cầu 11 12 11 12 Phân tích các yêu cầu phần mềm và Phân tích các yêu cầu phần mềm và thương lượng với khách hàng thương lượng với khách hàng • Phân loại các yêu cầu phần mềm và sắp xếp chúng theo • Thẩm định các rủi ro có thể xảy ra với từng yêu các nhóm liên quan cầu phần mềm • Khảo sát tỉ mỉ từng yêu cầu phần mềm trong mối quan hệ của nó với các yêu cầu phần mềm khác • Đánh giá thô (tương đối) về giá thành và thời gian • Thẩm định từng yêu cầu phần mềm theo các tính chất: thực hiện của từng yêu cầu phần mềm trong giá phù hợp, đầy đủ, rõ ràng, không trùng lặp thành sản phẩm phần mềm và thời gian thực • Phân cấp các yêu cầu phần mềm theo dựa trên nhu cầu và đòi hỏi khách hàng / người sử dụng hiện phần mềm • Thẩm định từng yêu cầu phần mềm để xác định: • Giải quyết tất cả các bất đồng về yêu cầu phần – Các yêu cầu PM có khả năng thực hiện được trong môi trường kỹ thuật hay không mềm với khách hàng / người sử dụng trên cơ sở – Có khả năng kiểm định các yêu cầu phần mềm hay không thảo luận và thương lượng các yêu cầu đề ra 13 14 13 14 Đặc tả yêu cầu phần mềm Ví dụ: Các yêu cầu về hồ sơ đặc tả • Đặc tả các yêu cầu phần mềm: xây dựng các tài liệu đặc tả, trong đó có thể sử dụng tới các công cụ như: mô hình hóa, mô hình toán học • Đặc tả hành vi bên ngoài của HT hình thức (a formal mathematical model), tập hợp các kịch bản sử dụng, các nguyên mẫu hoặc bất kỳ một tổ hợp các công cụ nói trên • Đặc tả các ràng buộc về cài đặt • Phương pháp đặc tả: – Đặc tả phi hình thức (Informal specifications): viết bằng ngôn ngữ tự • Dễ thay đổi nhiên – Đặc tả hình thức (Formal specifications): viết bằng tập các ký pháp có • Dùng như công cụ tham khảo cho bảo trì các quy định về cú pháp (syntax) và ngữ nghĩa (sematic) rất chặt chẽ, thí dụ ký pháp đồ họa dùng các lưu đồ. • Sự ghi chép cẩn thận về vòng đời của HT, • Tiêu chí đánh giá chất lượng của hồ sơ đặc tả: – Tính rõ ràng, chính xác nghĩa là dự đoán các thay đổi – Tính phù hợp – Tính đầy đủ, hoàn thiện • Các đáp ứng với các sự cố không mong đợi 15 16 15 16 Các thành phần của hồ sơ đặc tả Đặc tả chức năng • Đặc tả vận hành hay đặc tả chức năng (Operational specifications): • Miêu tả các chức năng của hệ thống, phụ thuộc vào mô tả các hoạt động của hệ thống phần mềm sẽ xây dựng: kiểu phần mềm và mong đợi của người dùng – Các dịch vụ mà hệ thống phải cung cấp – – Hệ thống sẽ phản ứng với đầu vào cụ thể ra sao Tương tác giữa phần mềm và môi trường, độc lập với việc – Hành vi của hệ thống trong các tình huống đặc biệt. cài đặt • Đặc tả mô tả hay đặc tả phi chức năng (Descriptive – Ví dụ: Hệ thống đồng hồ phải hiển thị thời gian dựa trên vị specifications): đặc tả các đặc tính, đặc trưng của phần mềm: trí của nó – Các ràng buộc về các dịch vụ hay các chức năng hệ thống cung • Các công cụ đặc tả tiêu biểu: cấp như thời gian, ràng buộc về các quá trình phát triển, các chuẩn, – Biểu đồ luồng dữ liệu (Data Flow Diagrams) • Ngoài ra còn có yêu cầu về lĩnh vực, bắt nguồn từ lĩnh vực – Máy trạng thái hữu hạn (Finite State Machines) của ứng dụng hệ thống và các đặc trưng của lĩnh vực này. – Mạng Petri (Petri nets), – Tuy nhiên không bắt buộc và có thể dùng ngôn ngữ tự nhiên. 17 18 17 18 Đặc tả phi chức năng và ràng buộc Tài liệu yêu cầu • Yêu cầu phi chức năng: Định nghĩa các khía cạnh sử dụng phần mềm, không liên quan trực tiếp tới các hành vi chức năng: • Tài liệu về yêu cầu là các phát biểu chính thức – Các tính chất của hệ thống như độ tin cậy, thời gian trả lời, dung lượng bộ nhớ, về cái được yêu cầu bởi các nhà phát triển HT • Thời gian trả lời phải nhỏ hơn 1 giây • Ràng buộc: do khách hàng hay môi trường thực thi phần mềm đặt ra • Nó bao gồm cả 2 phần: định nghĩa và đặc tả – Các yêu cầu do tổ chức qui định như qui định chuẩn về quá trình tiến hành, chuẩn tài liệu, yêu cầu • Ngôn ngữ cài đặt phải là COBOL – Các yêu cầu từ bên ngoài • Nó không phải là tài liệu thiết kế. Tốt hơn có • Phải giao tiếp với hệ thống điều phối được viết vào năm 1956. • Thường sử dụng các công cụ thể nó chỉ là 1 tập các cái mà HT phải làm hơn – Biểu đồ thực thể liên kết (Entity-Relationship Diagrams) – Đặc tả Logic (Logic Specifications) là HT phải làm thế nào (PT chứ không phải là – Đặc tả đại số (Algebraic Specifications) TK) à Khó phát biểu chính xác, Rất khó kiểm tra 19 20 19 20 3. Phương pháp và công cụ đặc tả yêu Nội dung cần có của tài liệu yêu cầu cầu phần mềm Xác định các yêu cầu, đọc hiểu để kiểm tra Khách hàng hệ thống xem có đúng với nhu cầu hay không. Họ xác • Biểu đồ phân cấp chức năng - WBS (work định các thay đổi về yêu cầu. break down structure) Sử dụng tài liệu về yêu cầu để lên kế hoạch Nhà quản lý đấu thầu cho hệ thống và lên kế hoạch cho • Biểu đồ luồng dữ liệu – DFD (data flow quá trình phát triển hệ thống diagram) Sử dụng yêu cầu để hiểu về hệ thống sẽ phát Kỹ sư hệ thống • triển Máy trạng thái – FSM (Finite state machine) Sử dụng yêu cầu để phát triển các trường hợp • Sơ đồ thực thể liên kết – ERD (entity relation Kỹ sư kiểm thử hệ thống kiểm thử cho hệ thống diagram) Sử dụng yêu cầu để hiểu về hệ thống và mối Kỹ sư bảo trì hệ thống liên hệ giữa các phấn khác nhau của hệ thống 21 22 21 22 Ví dụ: mô tả biểu thức toán học bằng Đặc tả chức năng với DFD DFD • Hệ thống (System): tập hợp các dữ liệu (data) được xử (a+b)*(c+a*d)-e*(a+b) lý bằng các chức năng tương ứng (functions) • Các ký pháp sử dụng: b c a d a Thể hiện các chức năng (functions) + * + Thể hiện luồng dữ liệu Kho dữ liệu * Vào ra dữ liệu và tương tác giữa hệ thống và người sử dụng 23 24 23 24 Ví dụ đặc tả các chức năng của thư Các hạn chế của DFD viện qua DFD Yêu cầu từ người mượn • Ý nghĩa của các ký pháp sử dụng được xác định Sách Tên sách, tác giả Tên người mượn Kho sách bởi các định danh lựa chọn của NSD Sách • Tên tác giả Ví dụ: DFD của chức năng tìm kiếm sách: Có If NSD nhập vào cả tên tác giả và tiêu đề sách Then Danh sách tác giả sách Thông tin về sách tìm kiếm sách tương ứng, không có thì thông báo lỗi Tên sách Tên sách; Danh sách tên sách Tên người mượn Elseif chỉ nhập tên tác giả Then Danh sách người mượn hiển thị danh sách các sách tương ứng với Danh sách chủ đề Tìm theo Liệt kê các tên sách tên tác giả đã nhập và yêu cầu NSD lựa chọn sách chủ đề liên quan đến chủ đề Elseif chỉ nhập tiêu đề sách Then Chủ đề . . . Chủ đề yêu cầu Đưa ra Tên sách Endif 25 26 25 26 Các hạn chế của DFD Các hạn chế của DFD • Trong DFD không xác định rõ các • Chức năng D có thể cần cả A, B và C • DFD không xác định sự đồng bộ giữa các chức hướng thực hiện (control aspects) • Chức năng D có thể chỉ cần một trong A, B và C để thực hiện năng / mô-đun A • Chức năng D có thể kết xuất kết – E quả cho một trong E và F A xử lý dữ liệu và B được hưởng (nhận) các kết B D • Chức năng D có thể kết xuất kết quả được xử lý từ A F quả chung cho cả E và F C • Chức năng D có thể kết xuất kết – A và B là các chức năng không đồng bộ quả riêng cho cả E và F (asynchronous activities) vì thế cần có buffer để • Biểu đồ DFD này không chỉ rõ đầu ngăn chặn tình trang mất dữ liệu vào là gì để thực hiện chức năng D và đầu ra là gì sau khi thực hiện A B chức năng D. 27 28 27 28 Đặc tả trạng thái với FSM - Finite Ví dụ: quản lý thư viện State Machines • FSM chứa • Xét các giao dịch: – Tập hữu hạn các trạng thái Q – Mượn sách / Trả sách – Tập hữu hạn các đầu vào I – Thêm đầu sách / Loại bỏ đầu sách – Các chức năng chuyển tiếp – Liệt kê danh sách các đầu sách theo tên tác giả • δ : Q x I à Q hay theo chủ đề Báo động áp lực cao – Tìm kiếm sách theo các yêu cầu của người mượn – Tìm kiếm sách quá hạn trả, . . . Báo động nhiệt độ cao ON OFF Khởi động lại 29 30 29 30 Đặc tả yêu cầu Đặc tả các đối tượng • Độc giả không được mượn quá một số lượng • Các đối tượng: sách nhất định, trong một thời gian nhất định – Tên sách • Một số sách không được mượn về – Mã quyển – Nhân viên phục vụ • Một số người không được mượn một số loại – Người mượn sách nào đó, . . . • Cần có: – tập hợp (danh sách) các tiêu đề sách – danh sách các tác giả cho từng quyển sách, – danh sách các chủ đề liên quan của các quyển sách 31 32 31 32 Đặc tả dữ liệu với FSM đặc tả trạng thái Mô hình thực thể liên kết -ERD • Ta có tập hợp các sách (mỗi đầu sách có thể có nhiều quyển sách trong thư viện). • Mô hình khái niệm cho phép đặc tả các yêu • Mỗi quyển sách có thể có 1 trong 5 trạng thái cầu logic của hệ thống, thường được sử dụng sau: trong các hệ thống dữ liệu lớn – (AV) Available: được phép mượn, • ER Model – (CO) - (BR): đã mượn (Check Out; Borrow), – Thực thể – (L): Last, CO AV BR – Quan hệ – (R): Remove – Thuộc tính • Biểu đồ thực thể L R Có thể có hạn chế về số sách được mượn cho 1 nhóm độc giả hoặc mọi độc giả, . . . 33 34 33 34 Thực thể Thuộc tính • Tính chất của một thực thể hoặc một đối • Thực thể : tập hợp các thông tin liên quan cần tượng dữ liệu được xử lý trong phần mềm – đặt tên cho 1 mẫu (instance) của đối tượng dữ liệu • Thực thể có thể có mối quan hệ: – mô tả mẫu (instance) – người sở hữu ôtô – tạo liên kết (reference) đến các mẫu khác Người sở hữu Ôtô Ford Automobile Company Car Blue Ford ID • Thực thể có các thuộc tính Tập các thuộc tính của 1 đối tượng dữ liệu được xác định thông qua ngữ cảnh của bài toán. 35 36 35 36 Quan hệ Ví dụ: ERD mô tả thư viện Area • Chỉ ra mối liên quan gữa các đối tượng dữ liệu N 1 N Deals Bookstore Orders Books with Belongs to Copy 1 Ø Cardinality : chỉ ra định lượng của mối quan hệ N N Title 1:1 one-to-one 1:N one-to-many M:N many-to-many state Ø Modality : 0 – có thể có, có thể không có quan hệ Was Text holds held Written by 1 – bắt buộc có quan hệ by 1 M 1 Is N Author Customer provided Repair Action Borrower with limit 37 38 37 38 So sánh Thế nào là một đặc tả tốt? DFD FSM ERD • Dễ hiểu với người dùng Đơn giản, dễ hiểu. Có thể phức tạp với số Đơn giản, dễ hiểu lượng trạng thái lớn • Có ít điều nhập nhằng Mô tả trạng thái của thực • Mô tả luồng dữ liệu thể Mô tả trừu tượng cơ sở Có ít quy ước khi mô tả, có thể tạo đơn giản dữ liệu Xác định rõ hướng thực • Với phong cách từ trên xuống (topdown) Không xác định rõ hướng hiện Không xác định rõ hướng thực hiện thực hiện • Dễ triển khai cho những pha sau của vòng đời: Thể hiện tốt tính song Không thể hiện tính tuần song và tuần tự Không thể hiện tính tuần thiết kế hệ thống và thiết kế chương trình và tự hay song song của tiến tự hay song song giao diện dễ làm, đảm bảo tính nhất quán, . . . trình 39 40 39 40 2.1 D Customer 1 Order Thế nào là một đặc tả tốt? Customer Verify Master Customer Need to establish Valid Khách hàng mới 2.2 D Inventory 2 Order Update Đặt hàng Mặt hàng Customer Verify Master Hệ thống Item Hoá đơn Phiếu hàng Kho hàng Notify Khách hàng đặt hàng 2.4 Thông báo Update chuyển hàng Valid Avail Commit 2.3 Item D Shipping 4 Check Taxes Available Tax 2.5 Back Ord D Inventory 2 Master Order Create D Back 3 Order Pending Order Order 41 42 41 42 4. Nguyên lý phân tích yêu cầu sử Mô hình hóa các chức năng dụng Mô hình hóa dữ liệu • Xác định các chức năng chuyển đổi đối tượng • Xác định các đối tượng dữ liệu dữ liệu • Xác định các đặc tính của các đối tượng dữ • Chỉ ra luồng dữ liệu đi qua hệ thống như thế liệu nào • Thiết lập các mối quan hệ giữa các đối tượng • Biểu diễn bộ phận sản sinh dữ liệu và bộ phận dữ liệu tiêu thụ dữ liệu 43 44 43 44 Mô hình hóa hành vi Phân mảnh các mô hình • Chỉ ra các trạng thái (states) khác nhau của hệ • Tinh lọc từng mô hình để biểu diễn các mức thống trừu tượng thấp hơn • Đặc tả các hiện tượng (events) làm hệ thống • Lọc đối tượng dữ liệu thay đổi trạng thái • Tạo ra phân cấp chức năng • Biểu diễn hành vi (behavior) ở các mức chi tiết khác nhau 45 46 45 46 Bản chất của việc phân tích • Hãy bắt đầu bằng cách tập trung vào bản chất của vấn đề chứ không xem xét những chi tiết cài đặt 47 47
File đính kèm:
- bai_giang_nhap_mon_cong_nghe_phan_mem_introduction_to_softwa.pdf