Bài giảng Công nghệ phần mềm - Chủ đề 2: Khảo sát hiện trạng & Xác định yêu cầu (Phần 2)
Mô hình hoá yêu cầu
• Vấn đề: Các mô tả về yêu cầu trong giai
đoạn xác định yêu cầu:
– Chỉ mô tả các thông tin liên quan đến việc
thực hiện các nghiệp vụ trong thế giới thực.
– Chưa thể hiện rõ nét việc thực hiện các
nghiệp vụ này trên máy tính.
– Mô tả thông qua các văn bản dễ gây ra nhầm
lẫn và không trực quan.
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ phần mềm - Chủ đề 2: Khảo sát hiện trạng & Xác định yêu cầu (Phần 2)", để 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 Công nghệ phần mềm - Chủ đề 2: Khảo sát hiện trạng & Xác định yêu cầu (Phần 2)
COMP1026 – Introduction to Software Engneering Chapter 2b - 1 HIENLTH Chủ đề 2: Khảo sát hiện trạng & Xác định yêu cầu COMP1026 – Introduction to Software Engneering Chapter 2b - 2 HIENLTH ĐẶC TẢ YÊU CẦU Phần 2 COMP1026 – Introduction to Software Engneering Chapter 2b - 3 HIENLTH Đặc tả yêu cầu • Đặc tả yêu cầu là quá trình bổ sung các thông tin vào tài liệu xác định yêu cầu và phát triển các mô hình phân tích • Quan trọng vì chi phí sửa đổi cao nếu gặp sai sót COMP1026 – Introduction to Software Engneering Chapter 2b - 4 HIENLTH Đặc tả yêu cầu • Có thể sử dụng các mô hình/lược đồ sau để mô tả yêu cầu của khách hàng – Use-case diagram (OOM) – Activity diagram (OOM) – Business Process Model (BPM) – Requirement Model (RM) – Data Flow Diagram (DFD) COMP1026 – Introduction to Software Engneering Chapter 2b - 5 HIENLTH Mô hình hoá yêu cầu • Vấn đề: Các mô tả về yêu cầu trong giai đoạn xác định yêu cầu: – Chỉ mô tả các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực. – Chưa thể hiện rõ nét việc thực hiện các nghiệp vụ này trên máy tính. – Mô tả thông qua các văn bản dễ gây ra nhầm lẫn và không trực quan. COMP1026 – Introduction to Software Engneering Chapter 2b - 6 HIENLTH Mô hình hoá yêu cầu • Mục tiêu: – Mô hình hóa thế giới thực với các yêu cầu đã xác định, giải quyết các vấn đề trên. • Kết quả: – Sơ đồ luồng dữ liệu của từng công việc – Sơ đồ phối hợp giữa các công việc • Sơ đồ luồng dữ liệu: – Là sơ đồ biểu thị các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực bên trong máy tính. COMP1026 – Introduction to Software Engneering Chapter 2b - 7 HIENLTH Mô hình hóa yêu cầu • Có hai mức mô hình hóa: – Mức quan niệm (giai đoạn phân tích): Mô tả phát thảo các thành phần của phần mềm. – Mức logic (giai đoạn thiết kế): Mô tả chi tiết các thành phần của phần mềm • Các loại mô hình: – Mô hình chức năng: Mô tả thành phần xử lý – Mô hình dữ liệu: Mô tả thành phần dữ liệu – Mô hình đối tượng: Mô tả đồng thời dữ liệu và xử lý 7 COMP1026 – Introduction to Software Engneering Chapter 2b - 8 HIENLTH Nội dung • Mô hình hóa yêu cầu: – Lược đồ Use-case – Khái niệm Actor và Usecase – Ví dụ • Mô hình hóa các dòng dữ liệu của mỗi Use-case – Giới thiệu Mô hình DFD – Sử dụng mô hình DFD để mô hình hóa yêu cầu lưu trữ, tra cứu, tính toán, kết xuất COMP1026 – Introduction to Software Engneering Chapter 2b - 9 HIENLTH Mở đầu • Đặt vấn đề: – Các mô tả về yêu cầu trong giai đoạn xác định yêu cầu: • Chỉ mô tả chủ yếu các thông tin liên quan đến việc thực hiện các nghiệp vụ trong thế giới thực, chưa thể hiện rõ nét việc thực hiện các nghiệp vụ trên máy tính • Mô tả thông quá các văn bản dễ gây ra nhầm lẫn và không trực quan Mô hình hóa yêu cầu COMP1026 – Introduction to Software Engneering Chapter 2b - 10 HIENLTH Use Case Diagram • Tập trung vào người sử dụng của hệ thống • Đưa ra những vai trò của người sử dụng khi tương tác với hệ thống • Đưa ra những dịch vụ cơ bản (Use Case) • Đưa ra hình ảnh tương tác giữa các user hay các vai trò COMP1026 – Introduction to Software Engneering Chapter 2b - 11 HIENLTH Use Case Diagram • Ghi nhận chức năng hệ thống dưới góc nhìn của người sử dụng • Được xây dựng trong giai đoạn đầu của quy trình CNPM • Mục tiêu: – Đặc tả ngữ cảnh của 01 hệ thống – Nắm bắt các yêu cầu của hệ thống – Xác nhận tính hợp lệ của kiến trúc hệ thống – Định hướng quá trình cài đặt và phát sinh các trường hợp test • Được dùng bởi nhà phân tích COMP1026 – Introduction to Software Engneering Chapter 2b - 12 HIENLTH Tên Actor Khái niệm Actor Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống Có thể trao đổi thông tin một cách chủ động với hệ thống hoặc nhận thông tin bị động từ hệ thống Phần mềm Con người Phần cứng Phần mềm khác COMP1026 – Introduction to Software Engneering Chapter 2b - 13 HIENLTH Tên Actor Actor Nhóm người sử dụng Phần mềm Con người Phần cứng Phần mềm khác Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống COMP1026 – Introduction to Software Engneering Chapter 2b - 14 HIENLTH Ví dụ STT Yêu cầu 1 Tiếp nhận học sinh 2 Lập danh sách lớp 3 Tra cứu học sinh 4 Nhận bảng điểm môn 5 Xem báo cáo tổng kết 6 Thay đổi quy định Nhóm người dùng Giáo vụ? Giáo vụ? Mọi người? Phụ huynh? Học sinh? Giáo viên? Giáo vụ? Ban giám hiệu? Ban giám hiệu? Quản trị hệ thống? Xét phần mềm Quản lý học sinh cấp III Một nhóm người dùng tương ứng với một Actor Mỗi Nhóm người dùng (Actor) được quyền sử dụng một hay nhiều chức năng trong hệ thống Một chức năng có thể cho phép nhiều Nhóm người dùng sử dụng Nhiều nhóm người dùng có cùng các quyền hạn giống nhau Nên xét là 1 Actor hay nhiều Actor? Việc xác định Actor phụ thuộc ngữ cảnh và quy trình thực tế COMP1026 – Introduction to Software Engneering Chapter 2b - 15 HIENLTH Ví dụ STT Yêu cầu 1 Lập thẻ độc giả 2 Nhận sách mới 3 Tra cứu sách 4 Lập phiếu mượn 5 Nhận trả sách 6 Thay đổi quy định Nhóm người dùng Thủ thư Thủ thư Thủ thư? Độc giả? Khách bất kỳ? Thủ thư Thủ thư Thủ thư? Quản trị hệ thống? Xét phần mềm Quản lý thư viện COMP1026 – Introduction to Software Engneering Chapter 2b - 16 HIENLTH Tên Actor Actor Phần cứng ngoại vi Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống Phần mềm Con người Phần cứng Phần mềm khác COMP1026 – Introduction to Software Engneering Chapter 2b - 17 HIENLTH Ví dụ • Ví dụ: – Phần mềm quản lý Siêu thị: • Đọc thông tin từ thiết bị đọc mã vạch – Phần mềm quản lý cửa tự động: • Đọc thông tin từ camera • Phát lệnh điều khiển mở cửa – Phần mềm quản lý ra vào các phòng trong công sở • Đọc tín hiệu từ đầu đọc thẻ từ • Phát lệnh điều khiển mở cửa – Phần mềm chống trộm • Đọc tín hiệu từ camera, sensor • Phát lệnh điều khiển ra loa, đèn, điện thoại Các thiết bị ngoại vi mà phần mềm cần tương tác Có cần liệt kê tất cả thiết bị ngoại vi? COMP1026 – Introduction to Software Engneering Chapter 2b - 18 HIENLTH Tên Actor Actor Phần mềm khác Tác nhân BÊN NGOÀI hệ thống Có tương tác với hệ thống Phần mềm Con người Phần cứng Phần mềm khác COMP1026 – Introduction to Software Engneering Chapter 2b - 19 HIENLTH Ví dụ • Kết xuất/nạp dữ liệu từ Excel • Kết xuất dữ liệu báo cáo ra phần mềm gửi email (Microsoft Outlook, Outlook Express) • Phần mềm trung gian kết nối để chuyển đổi email từ dạng Web-based sang POP3 (ví dụ Yahoo!Pop) • COMP1026 – Introduction to Software Engneering Chapter 2b - 20 HIENLTH Nhận diện các Actor Trả lời một số câu hỏi như: • Ai là người sử dụng chức năng chính của hệ thống? • Ai cần sự hỗ trợ từ hệ thống để thực hiện công việc thường nhật của họ? • Ai phải thực hiện công việc bảo dưỡng, quản trị và giữ cho hệ thống hoạt động? • Hệ thống sẽ kiểm soát thiết bị phần cứng nào? • Hệ thống đang xây dựng cần tương tác với những hệ thống khác hay không ? • Ai hoặc vật thể nào quan tâm đến hay chịu ảnh hưởng bởi kết quả mà hệ thống phần mềm tạo ra? COMP1026 – Introduction to Software Engneering Chapter 2b - 21 HIENLTH Use-Case Khái niệm Use-Case • Một Use-Case là một chuỗi các hành động mà hệ thống thực hiện mang lại một kết quả quan sát được đối với actor. • Có thể hiểu một Use-Case là một chức năng của hệ thống, mang một ý nghĩa nhất định đối với người dung • Được biểu diễn bằng hình Ellipse, bao gồm: tên, luồng sự kiện, kịch bản COMP1026 – Introduction to Software Engneering Chapter 2b - 22 HIENLTH Use-Case Khái niệm Use-Case • Mỗi use case có các thuộc tính sau: • Action Steps • Extension Points • Exceptions • Pre-Conditions • Post-Conditions COMP1026 – Introduction to Software Engneering Chapter 2b - 23 HIENLTH Use-Case Khái niệm Use-Case •Action Steps: • Mô tả các bước thông thường tương tác giữa người dùng và hệ thống khi thực hiện Use case này COMP1026 – Introduction to Software Engneering Chapter 2b - 24 HIENLTH Khái niệm Use-Case •Action Steps: • Chọn chức năng xem thời khóa biểu • Hiển thị màn hình cho phép người dùng chọn thông tin cần xem gì • Chọn niên khóa từ danh sách hiện có trong hệ thống • Chọn học kỳ từ danh sách hiện có trong hệ thống • Chọn lớp hoặc tên giảng viên cần xem trong danh sách lớp và giảng viên hiện có trong hệ thống • Hiển thị thông tin chi tiết thời khóa biểu lớp hoặc thời khóa biểu của giảng viên COMP1026 – Introduction to Software Engneering Chapter 2b - 25 HIENLTH Use-Case Khái niệm Use-Case •Extension Points: • Mô tả các trường hợp ngoại lệ khi sử dụng Use case này COMP1026 – Introduction to Software Engneering Chapter 2b - 26 HIENLTH Khái niệm Use-Case •Extension Points: • Nếu người dùng hủy bỏ chức năng xem thời khóa biểu thì hệ thống quay trở lại màn hình trước khi người dùng chọn chức năng xem thời khóa biểu • Nếu người dùng chọn xem thời khóa biểu của tất cả các lớp thì hiển thị TKB của tất cả các lớp các lớp • Người dùng có thể chọn xem thời khóa biểu của tất cả các giảng viên • Người dùng có thể in thời khóa biểu của từng lớp • Người dùng có thể in thời khóa biểu của từng giảng viên COMP1026 – Introduction to Software Engneering Chapter 2b - 27 HIENLTH Use-Case Khái niệm Use-Case •Exceptions • Xử lý lỗi xảy ra trong quá trình người dùng sử dụng chức năng này COMP1026 – Introduction to Software Engneering Chapter 2b - 28 HIENLTH Khái niệm Use-Case •Exceptions • Người dùng chọn lớp chưa có thông tin, hệ thống báo lỗi và yêu cầu người dùng chọn lớp khác • Người dùng chọn giảng viên chưa có thông tin, hệ thống báo lỗi và yêu cầu người dùng chọn giảng viên khác • Trình duyệt không hiển thị được do lỗi javascript, hệ thống báo lỗi và yêu cầu người dùng chọn trình duyệt khác (ví dụ FireFox, Mozila,..) COMP1026 – Introduction to Software Engneering Chapter 2b - 29 HIENLTH Khái niệm Use-Case •Exceptions • Trình duyệt không hiển thị được do lỗi đường truyền mạng (Request timeout) hệ thống yêu cầu người dùng refresh lại chức năng này • Trình duyệt không hiển thị được do lỗi kết nối CSDL (Connection) hệ thống yêu cầu người dùng refresh lại chức năng này • COMP1026 – Introduction to Software Engneering Chapter 2b - 30 HIENLTH Use-Case Khái niệm Use-Case •Pre-Conditions • Điều kiện cần để thực hiện hành động COMP1026 – Introduction to Software Engneering Chapter 2b - 31 HIENLTH Use-Case Khái niệm Use-Case •Post-Conditions • Điều kiện cần để kết thúc hành động COMP1026 – Introduction to Software Engneering Chapter 2b - 32 HIENLTH Ví dụ STT Yêu cầu 1 Tiếp nhận học sinh 2 Lập danh sách lớp 3 Tra cứu học sinh 4 Nhận bảng điểm môn 5 Xem báo cáo tổng kết 6 Thay đổi quy định Xét phần mềm Quản lý học sinh cấp III Có bao nhiêu Use-case trong ví dụ này? Bao gồm cả tính năng Thêm mới, Xóa, và Sửa COMP1026 – Introduction to Software Engneering Chapter 2b - 33 HIENLTH Ví dụ STT Yêu cầu 1 Tiếp nhận học sinh 2 Lập danh sách lớp 3 Tra cứu học sinh 4 Nhận bảng điểm môn 5 Xem báo cáo tổng kết 6 Thay đổi quy định Xét phần mềm Quản lý học sinh cấp III Có bao nhiêu Use-case trong ví dụ này? Bao gồm cả tính năng Thêm mới, Xóa, và Sửa COMP1026 – Introduction to Software Engneering Chapter 2b - 34 HIENLTH Ví dụ STT Yêu cầu 1 Lập thẻ độc giả 2 Nhận sách mới 3 Tra cứu học sinh 4 Lập phiếu mượn 5 Nhận trả sách 6 Thay đổi quy định Xét phần mềm Quản lý thư viện Có bao nhiêu Use-case trong ví dụ này? COMP1026 – Introduction to Software Engneering Chapter 2b - 35 HIENLTH Ví dụ STT Yêu cầu 1 Sắp đặt mạch điện 2 Cung cấp nguồn điện 3 Thay đổi thông số 4 Lưu bài thí nghiệm 5 Lấy lại thí nghiệm 6 Thay đổi quy định Phần mềm thí nghiệm mạch điện Có bao nhiêu Use-case trong ví dụ này? COMP1026 – Introduction to Software Engneering Chapter 2b - 36 HIENLTH Tìm kiếm Use Case Trả lời một số câu hỏi như: • Actor yêu cầu chức năng gì của hệ thống? • Actor cần phải đọc, tạo, xoá, sửa đổi hoặc lưu trữ thông tin nào đó của hệ thống không? • Actor cần thiết phải được cảnh báo về những sự kiện trong hệ thống, hay actor cần phải báo hiệu cho hệ thống về vấn đề nào đó không? • Hệ thống có thể hỗ trợ một số công việc thường nhật của actor nào đó hay không? COMP1026 – Introduction to Software Engneering Chapter 2b - 37 HIENLTH Tìm kiếm Use Case (tt) Một số câu hỏi khác cần chú ý: • Hệ thống cần dữ liệu input/ouput nào? Dữ liệu đó đến từ đâu? • Những khó khăn nào liên quan đến hiện thực của hệ thống hiện tại (chẳng hạn hệ thống quản lý bằng giấy tờ nên được thay thế bằng hệ thống quản lý trên máy tính)? COMP1026 – Introduction to Software Engneering Chapter 2b - 38 HIENLTH Sơ đồ Use-case Rút tiền Khách hàng Kiểm tra tài khoản Sự tương tác giữa Actor và Use-case Chiều của mũi tên thể hiện vai trò chủ động trong sự tương tác COMP1026 – Introduction to Software Engneering Chapter 2b - 39 HIENLTH Các loại mối quan hệ • Phụ thuộc • Tổng quát hóa • Kết hợp COMP1026 – Introduction to Software Engneering Chapter 2b - 40 HIENLTH Tổng quát hóa giữa các Actor Người sử dụng Giáo viên Giáo vụ COMP1026 – Introduction to Software Engneering Chapter 2b - 41 HIENLTH Quan hệ giữa các Use Case • Use case – Use case – Dependency: Phụ thuộc > Nhap TKB Dang Nhap Giao vu COMP1026 – Introduction to Software Engneering Chapter 2b - 42 HIENLTH Quan hệ giữa các Use Case • Use case – Use case – Generalization: Kế thừa Xem TKB Xem TKB Giang vien Xem TKB Sinh vien Giang vien Sinh vien COMP1026 – Introduction to Software Engneering Chapter 2b - 43 HIENLTH Ví dụ minh họa • Use case diagrams mô tả hệ thống quản lý thời khóa biểu: – Actor: • Giáo vụ khoa • Giảng viên • Sinh viên – Use case: • Xem thời khóa biểu • Nhập thời khóa biểu • Sửa thời khóa biểu • Xóa thời khóa biểu • Đăng nhập COMP1026 – Introduction to Software Engneering Chapter 2b - 44 HIENLTH Ví dụ minh họa • Use case diagram mô tả hệ thống quản lý thời khóa biểu COMP1026 – Introduction to Software Engneering Chapter 2b - 45 HIENLTH Tạo Use case diagram trong Power Designer • Tạo mới Use Case Diagram ? • Tạo actor • Tạo Use case • Mô tả thuộc tính cho Use case • Tạo mối quan hệ giữa các Use case/actor, use case/use case • Phát sinh report COMP1026 – Introduction to Software Engneering Chapter 2b - 46 HIENLTH Ví dụ: Hệ thống ATM Một khách hàng có thể muốn gửi tiền vào, rút tiền ra hoặc đơn giản kiểm tra lại số tiền trong tài khoản của anh ta qua máy tự động rút tiền (ATM). Khi đưa tiền vào hoặc rút tiền ra, cần phải ghi ra giấy kết quả những chuyển dịch đã thực hiện và trao tờ giấy này cho khách hàng. Quan sát các chức năng căn bản và các thành phần tham gia, ta thấy có hai tác nhân dễ nhận ra nhất là khách hàng và ATM. Qua đó, có thể nhận dạng các Use Case sau: • Gửi tiền vào. • Rút tiền ra. • Kiểm tra mức tiền trong tài khoản • Thực hiện các chuyển dịch nội bộ hệ thống • In kết quả các chuyển dịch đã thực hiện. COMP1026 – Introduction to Software Engneering Chapter 2b - 47 HIENLTH Ví dụ: Hệ thống ATM (tt) Các Use case trong hệ thống ATM COMP1026 – Introduction to Software Engneering Chapter 2b - 48 HIENLTH Mô tả hoạt động rút tiền từ ATM 1. Use-Case bắt đầu khi k ... 3, D5 và quy định liên quan để tính kết quả D4 – Ghi kết quả D4 – Hiển thị thông tin kết quả D2 và kết xuất D6 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 67 HIENLTH Sơ đồ tổng quát cho Yêu cầu tính toán • Ghi chú: – D1 thường có chứa yếu tố thời gian thực hiện xử lý tính toán – Có nhiều mức độ khác nhau xác định D1 trong xử lý tính toán (để tăng tính tiện dụng) – D1 có thể rỗng (tính toán cho mọi đối tượng trong tất cả cột mốc thời gian liên quan) – D4 có thể có hay không có => Khi nào cần D4? – Thông thường D2 và D6 bao gồm D3 và D4 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 68 HIENLTH Sơ đồ tổng quát cho Yêu cầu báo biểu • D1: Thông tin về báo biểu muốn thực hiện (dựa vào biểu mẫu liên quan) • D5: Thông tin về báo biểu muốn thực hiện (chỉ có trong một số yêu cầu đặc biệt) • D3: Dữ liệu cần thiết cho việc tưực hiện báo biểu (dựa vào biểu mẫu và quy định liên quan) • D4: Thông tin có trong báo biểu liên quan (cần thiết phải lưu lại) nhưng chưa được xử lý và ghi nhận lại (yêu cầu xử lý tính toán) • D2: Thông tin về báo biểu được lập (biểu mẫu liên quan) • D6: Dữ liệu kết xuất (thường giống D2) Người dùng Thiết bị nhập Thiết bị xuấtXử lý BB D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 69 HIENLTH Sơ đồ tổng quát cho Yêu cầu báo biểu • Xử lý báo biểu – Nhận thông tin D1, D5 (nếu cần) – Đọc D3 để lấy các dữ liệu cần thiết cho việc lập báo biểu – Nếu có D4 thì tính toán theo quy định và Ghi kết quả D4 – Hiển thị thông tin báo biểu D2 và kết xuất D6 Người dùng Thiết bị nhập Thiết bị xuấtXử lý BB D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 70 HIENLTH Sơ đồ tổng quát cho Yêu cầu báo biểu • Ghi chú: – D1 thường có chứa yếu tố thời gian của báo biểu – Có nhiều mức độ khác nhau xác định D1 trong xử lý tính toán (để tăng tính tiện dụng) – D4 có thể có hay không có => Khi nào cần D4? – Thông thường D2 và D6 bao gồm D3 và D4 Người dùng Thiết bị nhập Thiết bị xuấtXử lý BB D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 71 HIENLTH Ví dụ 1 • Xét chức năng tính đạo hàm của một đơn thức 1. Phân tích Sơ đồ luồng dữ liệu 71 Người dùng Xử lý tính đạo hàm D1 D2 D1: Đơn thức cần tính đạo hàm P D2: Đơn thức kết quả Q Thuật toán xử lý Nhập và kiểm tra D1 (a≠0) Tính và xuất D2 COMP1026 – Introduction to Software Engneering Chapter 2b - 72 HIENLTH Ví dụ 1 2. Thiết kế Mô tả chi tiết cách thức giao diện 72 Khởi động giá trị ban đầu Kiểm tra P hợp lệ và nhập giá trị cho P Tính Q Xuất Q (0) (1) COMP1026 – Introduction to Software Engneering Chapter 2b - 73 HIENLTH Ví dụ 1 2. Thiết kế Mô tả chi tiết kiểu dữ liệu: Sử dụng kiểu cấu trúc DON_THUC với hai thành phần: – Hệ số có kiểu số thực – Số mũ có kiểu số nguyên (không âm) Mô tả chi tiết các hàm xử lý – Hàm xử lý biến cố 1 – Hàm kiểm tra hệ số, Hàm kiểm tra số mũ – Hàm nhập đơn thức – Hàm tính đạo hàm, Hàm xuất đơn thức 73 COMP1026 – Introduction to Software Engneering Chapter 2b - 74 HIENLTH Ví dụ 1 3. Lập trình ‘Khai báo kiểu cấu trúc (VB6) Private Type DON_THUC Heso as Single Somu as Integer End type ‘Khai báo biến Dim P as DON_THUC Dim Q as DON_THUC 74 ‘Khai báo kiểu cấu trúc (VB.NET) Structure DON_THUC Dim he_so As Single Dim so_mu As Integer End Structure COMP1026 – Introduction to Software Engneering Chapter 2b - 75 HIENLTH Ví dụ 1 3. Lập trình ‘Hàm xử lý biến cố tính đạo hàm trên màn hình Private sub cmdDaoham_Click() if Kiem_Tra_He_So() and Kiem_Tra_So_Mu() then Nhap() DaoHam() Xuat() End if End sub 75 COMP1026 – Introduction to Software Engneering Chapter 2b - 76 HIENLTH Ví dụ 2 • Xét chức năng giải bất phương trình bậc nhất có dạng ax + b ≥ 0, với a ≠ 0 • Hãy phân tích, thiết kế và lập trình 76 COMP1026 – Introduction to Software Engneering Chapter 2b - 77 HIENLTH Ví dụ 2 • Sơ đồ luồng dữ liệu 77 D1: Các hệ a, b của bất phương trình D2: Nghiệm của bất phương trình thuộc một trong hai dạng sau: Dạng 1: (-∞, x0], Dạng 2: [x0, +∞) Người dùng Giải bất phương trình D1 D2 Xử lý: Nhập và kiểm tra D1 (a ≠ 0) Tính D2 theo qui tắc: a>0: nghiệm thuộc dạng 2 a<0: nghiệm thuộc dạng 1 Với x0 = -b/a Xuất D2 COMP1026 – Introduction to Software Engneering Chapter 2b - 78 HIENLTH Ví dụ 3 • Xét chức năng giải phương trình bậc hai: ax² + bx + c = 0, với a ≠ 0 • Hãy phân tích, thiết kế và lập trình 78 COMP1026 – Introduction to Software Engneering Chapter 2b - 79 HIENLTH Ví dụ 3 • Sơ đồ luồng dữ liệu 79 D1: Các hệ a, b, c của tam thức bậc 2 P(x) = ax² + bx + c D2: Nghiệm của phương trình P(x) = 0 thuộc một trong ba loại sau: Vô nghiệm Nghiệm kép x1 = x2 Hai nghiệm phân biệt x1 và x2 Người dùng Giải phương Trình bậc 2 D1 D2 COMP1026 – Introduction to Software Engneering Chapter 2b - 80 HIENLTH Ví dụ 3 80 2a b Xử lý: Nhập và kiểm tra D1 (a ≠ 0) Tính D2 theo các bước: Δ = b² - 4ac Nếu Δ < 0 : nghiệm loại 1 Nếu Δ = 0 : nghiệm loại 2, với x1=x2=-b/2a Nếu Δ > 0 : nghiệm loại 3, với x1 = x2 = Xuất D2 2a b a b 2 Người dùng Giải phương Trình bậc 2 D1 D2 COMP1026 – Introduction to Software Engneering Chapter 2b - 81 HIENLTH Ví dụ 4 • Xét phần mềm quản lý thư viện, hãy lập sơ đồ luồng dữ liệu cho yêu cầu Lập thẻ độc giả 81 COMP1026 – Introduction to Software Engneering Chapter 2b - 82 HIENLTH Ví dụ 4 82 Người dùng, Thủ thư Thiết bị nhập Máy in Lập thẻ độc giả D1 D6 D3 D4 D2 D5 COMP1026 – Introduction to Software Engneering Chapter 2b - 83 HIENLTH Ví dụ 4 • Giải thích: – D1: Thông tin về thẻ độc giả: Họ tên, Loại độc giả, Ngày sinh, Địa chỉ, E-Mail, Ngày Lập Thẻ. – D2: Không có – D3: Danh sách các loại độc giả, Tuổi tối thiểu, Tuổi tối đa, Thời hạn sử dụng. – D4: D1 – D5: D4 – D6: Danh mục loại độc giả 83 COMP1026 – Introduction to Software Engneering Chapter 2b - 84 HIENLTH Ví dụ 4 • Thuật toán: – Bước 01: Kết nối dữ liệu – Bước 02: Đọc D3 từ bộ nhớ phụ – Bước 03: Nhận D1 từ người dùng – Bước 04: Kiểm tra “Loại độc giả” có thuộc “danh sách các loại độc giả” hay không? – Bước 05: Tính tuổi độc giả. – Bước 06: Kiểm tra qui định “Tuổi tối thiểu” – Bước 07: Kiểm tra qui định “Tuổi tối đa” 84 COMP1026 – Introduction to Software Engneering Chapter 2b - 85 HIENLTH Ví dụ 4 • Thuật toán: – Bước 08: Nếu không thỏa tất cả các qui định trên thì tới bước 12 – Bước 09: Tính ngày hết hạn của thẻ. – Bước 10: Lưu D4 xuống bộ nhớ phụ – Bước 11: Xuất D5 ra máy in – Bước 12: Đóng kết nối cơ sở dữ liệu – Bước 13: Kết thúc. 85 COMP1026 – Introduction to Software Engneering Chapter 2b - 86 HIENLTH Sơ đồ tổng quát cho Yêu cầu lưu trữ 86 • D1: Thông tin cần lưu trữ (dựa vào biểu mẫu liên quan) • D5: Thông tin cần lưu trữ (chỉ có trong một số yêu cầu đặc biệt) • D3: – Các danh mục để chọn lựa – Dữ liệu cần thiết cho việc kiểm tra tính hợp lệ (dựa vào quy định) • D2: – Các danh mục để chọn lựa – Kết quả thành công/thất bại • D4: Dữ liệu được lưu trữ (dựa vào biểu mẫu). – Ghi chú: Thông thường D4 = D1 (+ D5) (+ ID tự phát sinh) • D6: Dữ liệu kết xuất (chỉ có trong một số yêu cầu đặc biệt) Người dùng Thiết bị nhập Thiết bị xuấtXử lý LT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 87 HIENLTH Sơ đồ tổng quát cho Yêu cầu lưu trữ • Xử lý lưu trữ – Đọc D3 để lấy các tham số, quy định và danh mục – Hiển thị D2 (các danh mục) – Nhận thông tin D1, D5 (nếu cần) – Kiểm tra các thông tin D1, D5 có thỏa quy định liên quan hay không (dựa vào D3 nếu cần thiết) – Nếu thỏa quy định, ghi D4, thông báo kết quả D2 (nếu cần) và xuất D6 (nếu cần thiết) 87 Người dùng Thiết bị nhập Thiết bị xuấtXử lý LT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 88 HIENLTH Sơ đồ tổng quát cho Yêu cầu lưu trữ • Ghi chú: – D1 không nhất thiết chứa toàn bộ thông tin trong biểu mẫu liên quan – Tùy theo quy định có thể có hay không có D5 – D4 hoặc D6 không nhất thiết phải trùng với D1 hoặc D5 – D2 không nhất thiết phải trùng với D3 88 Người dùng Thiết bị nhập Thiết bị xuấtXử lý LT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 89 HIENLTH Sơ đồ tổng quát cho Yêu cầu tra cứu • D1: Thông tin về đối tượng muốn tìm kiếm (dựa vào biểu mẫu liên quan đến đối tượng cần tìm kiếm) • D5: Thông tin về đối tượng muốn tìm kiếm (chỉ có trong một số yêu cầu đặc biệt) • D3: – Các danh mục để chọn lựa – Dữ liệu về đối tượng khi tìm thấy (dựa vào biểu mẫu liên quan đến đối tượng cần tìm kiếm) • D2: – Các danh mục để chọn lựa – Dữ liệu về đối tượng khi tìm thấy (dựa vào biểu mẫu liên quan đến đối tượng cần tìm kiếm) • D6: Dữ liệu kết xuất (thông thường là cần thiết) • D4: Dữ liệu cần lưu trữ lại – Thông thường không cần thiết – Cần thiết khi nào??? 89 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TC D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 90 HIENLTH Sơ đồ tổng quát cho Yêu cầu tra cứu • Xử lý tra cứu – Đọc để lấy các danh mục (D3) – Hiển thị D2 (các danh mục) – Nhận thông tin về tiêu chí tìm kiếm D1, D5 (nếu cần) – Tìm kiếm theo các tiêu chí D1, D5, nhận được danh sách các đối tượng tìm được (D3) – Hiển thị thông tin kết quả (D2) và kết xuất D6 (nếu cần) 90 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TC D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 91 HIENLTH Sơ đồ tổng quát cho Yêu cầu tra cứu • Ghi chú: – Có rất nhiều mức độ khác nhau từ rất đơn giản đến rất phức tạp để xác định D1 – D1 chứa nhiều thông tin thì việc tìm kiếm sẽ dễ dàng cho người dùng và ngược lại sẽ khó khăn cho phần thiết kế và cài đặt chức năng này – D3 thông thường là danh sách các đối tượng tìm thấy cùng với thông tin liên quan. – D3 cũng có rất nhiều mức độ khác nhau để xác định các thông tin của đối tượng tìm thấy – D2 và D6 thường trùng với D3 (nhưng không nhất thiết) 91 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TC D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 92 HIENLTH Sơ đồ tổng quát cho Yêu cầu tính toán • D1: Thông tin về đối tượng cần thực hiện việc xử lý tính toán (dựa vào các biểu mẫu liên quan) • D5: Thông tin về đối tượng cần thực hiện việc xử lý tính toán (chỉ có trong một số yêu cầu đặc biệt) • D3: – Dữ liệu cần thiết cho việc xử lý tính toán (dựa vào biểu mẫu và quy định liên quan) – Các tham số tính toán • D4: Kết quả của xử lý tính toán • D2: Kết quả của xử lý tính toán (thường gồm cả D3 và D4) • D6: Dữ liệu kết xuất (thường gồm cả D3 và D4) 92 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 93 HIENLTH Sơ đồ tổng quát cho Yêu cầu tính toán • Xử lý tính toán – Nhận thông tin D1, D5 (nếu cần) – Đọc D3 để lấy các dữ liệu cần thiết cho việc tính toán (kể cả các tham số) – Sử dụng D1, D3, D5 và quy định liên quan để tính kết quả D4 – Ghi kết quả D4 – Hiển thị thông tin kết quả D2 và kết xuất D6 93 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 94 HIENLTH Sơ đồ tổng quát cho Yêu cầu tính toán • Ghi chú: – D1 thường có chứa yếu tố thời gian thực hiện xử lý tính toán – Có nhiều mức độ khác nhau xác định D1 trong xử lý tính toán (để tăng tính tiện dụng) – D1 có thể rỗng (tính toán cho mọi đối tượng trong tất cả cột mốc thời gian liên quan) – D4 có thể có hay không có => Khi nào cần D4? – Thông thường D2 và D6 bao gồm D3 và D4 94 Người dùng Thiết bị nhập Thiết bị xuấtXử lý TT D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 95 HIENLTH Sơ đồ tổng quát cho Yêu cầu báo biểu • D1: Thông tin về báo biểu muốn thực hiện (dựa vào biểu mẫu liên quan) • D5: Thông tin về báo biểu muốn thực hiện (chỉ có trong một số yêu cầu đặc biệt) • D3: Dữ liệu cần thiết cho việc thực hiện báo biểu (dựa vào biểu mẫu và quy định liên quan) • D4: Thông tin có trong báo biểu liên quan (cần thiết phải lưu lại) nhưng chưa được xử lý và ghi nhận lại (yêu cầu xử lý tính toán) • D2: Thông tin về báo biểu được lập (biểu mẫu liên quan) • D6: Dữ liệu kết xuất (thường giống D2) 95 Người dùng Thiết bị nhập Thiết bị xuấtXử lý BB D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 96 HIENLTH Sơ đồ tổng quát cho Yêu cầu báo biểu • Xử lý báo biểu – Nhận thông tin D1, D5 (nếu cần) – Đọc D3 để lấy các dữ liệu cần thiết cho việc lập báo biểu – Nếu có D4 thì tính toán theo quy định và Ghi kết quả D4 – Hiển thị thông tin báo biểu D2 và kết xuất D6 96 Người dùng Thiết bị nhập Thiết bị xuấtXử lý BB D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 97 HIENLTH Sơ đồ tổng quát cho Yêu cầu báo biểu • Ghi chú: – D1 thường có chứa yếu tố thời gian của báo biểu – Có nhiều mức độ khác nhau xác định D1 trong xử lý tính toán (để tăng tính tiện dụng) – D4 có thể có hay không có => Khi nào cần D4? – Thông thường D2 và D6 bao gồm D3 và D4 97 Người dùng Thiết bị nhập Thiết bị xuấtXử lý BB D1 D2 D3 D4 D5 D6 COMP1026 – Introduction to Software Engneering Chapter 2b - 98 HIENLTH Bài tập 1. Xét phần mềm quản lý học sinh với nghiệp vụ tiếp nhận hồ sơ học sinh Hãy lập sơ đồ luồng dữ liệu 98 COMP1026 – Introduction to Software Engneering Chapter 2b - 99 HIENLTH Bài tập 2. Xét phần mềm quản lý bán hàng với nghiệp vụ lập phiếu thu tiền của khách hàng Hãy lập sơ đồ luồng dữ liệu 99 COMP1026 – Introduction to Software Engneering Chapter 2b - 100 HIENLTH Bài tập 3. Xét phần mềm quản lý các đại lý với nghiệp vụ tiếp nhận hồ sơ đại lý 100 COMP1026 – Introduction to Software Engneering Chapter 2b - 101 HIENLTH Bài tập 4. Xét phần mềm quản lý giải vô địch bóng đá quốc gia 101 COMP1026 – Introduction to Software Engneering Chapter 2b - 102 HIENLTH Bài tập • Đặc tả yêu cầu và xây dựng Use case diagram cho các ứng dụng sau: – Quản lý giải bóng đá vô địch quốc gia – Quản lý bình chọn bài hát hay Làn sóng xanh – Quản lý giáo vụ trường đại học – Quản lý giáo vụ trường phổ thông – Quản lý bán hàng – Quản lý học viên trung tâm tin học, ngoại ngữ – Quản lý nhân sự -tiền lương – Quản lý bán hàng trực tuyến – Quản lý nhà trẻ – COMP1026 – Introduction to Software Engneering Chapter 2b - 103 HIENLTH References Bài giảng này tham khảo: • Slide bài giảng “Nhập môn Công nghệ Phần mềm”, Trần Ngọc Bảo, ĐH Sư phạm TpHCM. • Slide bài giảng “Xây dựng phần mềm hướng đối tượng”, Trần Minh Triết, ĐH KHTN TpHCM. • Giáo trình “Nhập môn Công nghệ Phần mềm”, Nguyễn Tiến Huy, ĐH KHTN TpHCM COMP1026 – Introduction to Software Engneering Chapter 2b - 104 HIENLTH Q & A 104 COMP1026 – Introduction to Software Engneering Chapter 2b - 105 HIENLTH Câu hỏi và thảo luận
File đính kèm:
- bai_giang_cong_nghe_phan_mem_chu_de_2_khao_sat_hien_trang_xa.pdf