Giáo trình Công nghệ phần mềm - Chương 2: Xác định và phân tích yêu cầu
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Công nghệ phần mềm - Chương 2: Xác định và phân tích yêu cầu", để 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:
 giao_trinh_cong_nghe_phan_mem_chuong_2_xac_dinh_va_phan_tich.pdf giao_trinh_cong_nghe_phan_mem_chuong_2_xac_dinh_va_phan_tich.pdf
Nội dung text: Giáo trình Công nghệ phần mềm - Chương 2: Xác định và phân tích yêu cầu
- Chương 2: Xác định và phân tích yêu cầu 1
- Nội dung  Giai đoạn khảo sát hiện trạng  Hiện trạng tổ chức  Hiện trạng nghiệp vụ  Hiện trạng Tin học (phần cứng, phần mềm, con người)  Xác định và thu thập yêu cầu:  Phân loại yêu cầu: . Yêu cầu chức năng: Lưu trữ, tra cứu, tính toán, kết xuất, . Yêu cầu phi chức năng: Yêu cầu bảo mật, Mã hóa dữ liệu, Sao lưu định kỳ, Phục hồi khi có sự cố, 2
- Nội dung  Xác định và thu thập yêu cầu(tt):  Kỹ thuật thu thập yêu cầu: . Phỏng vấn . Bảng câu hỏi . Nghiên cứu các tài liệu . Quan sát thực tế . Phân tích thiết kế nhóm (JAD - Joint Application Design)  Phân tích yêu cầu (Mô hình hóa yêu cầu) 3
- Khảo sát hiện trạng  Hiện trạng tổ chức  Đối nội: Cơ cấu tổ chức nội bộ . Bản thân tổ chức là một hệ thống, có cơ cấu tổ chức . Sơ đồ cơ cấu tổ chức nội bộ Cách nhìn tổng thể về 1 tổ chức  Đối ngoại: . Tổ chức Môi trường của tổ chức 4
- Khảo sát hiện trạng  Hiện trạng nghiệp vụ  Hiểu được quy trình nghiệp vụ: mục tiêu quan trọng nhất của khảo sát hiện trạng  Có bao nhiêu nghiệp vụ, bao nhiêu quy trình? . Dưới góc nhìn của người làm quản lý, không phải của chuyên viên Tin học  Nghiệp vụ được thực hiện như thế nào? . Các công đoạn, bộ phận liên quan  Tần suất? Thời điểm thực hiện 5
- Khảo sát hiện trạng  Hiện trạng nghiệp vụ (tt)  Khối lượng tác vụ/quyết định?  Đánh giá nghiệp vụ hiện tại . Cần có những nhận xét của những người chuyên môn trong guồng máy công tác hiện tại  Có vấn đề/khó khăn gì hiện tại hay không? Nguyên nhân? . Vấn đề/khó khăn độc lập với công nghệ, chỉ liên quan đến chuyên môn nghiệp vụ thì cần giải quyết ngay 6
- Khảo sát hiện trạng  Hiện trạng Tin học  Phần cứng: . Các thiết bị hiện tại, . Số lượng, . Cấu hình, . Vị trí (vật lý), . Tình hình kết nối mạng, . Loại kết nối 7
- Khảo sát hiện trạng  Hiện trạng Tin học (tt)  Phần mềm: . Hệ điều hành . Hệ quản trị CSDL . Các phần mềm tiện ích khác .  Con người: . Trình độ chuyên môn Tin học 8
- Xác định và thu thập yêu cầu  Phân loại yêu cầu:  Yêu cầu chức năng: . Lưu trữ . Tra cứu . Tính toán . Kết xuất  Yêu cầu phi chức năng: . ? 9
- Xác định và thu thập yêu cầu  Kỹ thuật thu thập yêu cầu:  Phỏng vấn  Bảng câu hỏi  Nghiên cứu các tài liệu  Quan sát thực tế  Phân tích thiết kế nhóm (JAD)  10
- Kỹ thuật Phỏng vấn  Phỏng vấn cá nhân/phỏng vấn nhóm?  Phỏng vấn cá nhân  Phỏng vấn nhóm  Phỏng vấn tự do/phỏng vấn có định hướng?  Phỏng vấn tự do . Người được hỏi có cảm giác thoải mái, cung cấp nhiều thông tin sâu sắc . Nguy cơ: không có được những thông tin cần thiết, thông tin khó hệ thống được 11
- Kỹ thuật Phỏng vấn  Phỏng vấn tự do/phỏng vấn có định hướng?  Phỏng vấn có định hướng . Người được hỏi có thể cảm thấy không thoải mái, ít có khả năng ghi nhận được nhận xét, ý kiến, suy nghĩ riêng của người được phỏng vấn, ít cảm nhận được thái độ của họ đối với hiện trạng. . Có thể định hướng nội dung cần tìm hiểu, có thể hệ thống hóa các vấn đề ghi nhận được 12
- Kỹ thuật Phỏng vấn  Làm việc với cấp lãnh đạo để nắm mục tiêu của hệ thống phần mềm cần xây dựng, những đối tượng cần phỏng vấn  Yêu cầu cấp lãnh đạo thông báo xuống các phòng ban, đơn vị để hợp tác  Phân tích để xác định đúng và đủ những đối tượng cần phỏng vấn  Hẹn lịch làm việc, Xác định trước vị trí/trách nhiệm của người sắp phỏng vấn 13
- Kỹ thuật Phỏng vấn  Khi tìm hiểu, cần ghi nhận các thông tin:  Nội dung: cái gì?  Bao giờ có: thời gian  Bằng cách nào có nội dung thông tin đó  Nội dung đó ở dạng gì?  Đánh giá của người được phỏng vấn về tình hình hiện tại thực hiện nghiệp vụ  Không nên:  Đưa nhận xét cá nhân của người phỏng vấn  Dùng thuật ngữ/ngôn ngữ Tin học 14
- Kỹ thuật dùng bảng câu hỏi  Phải trình bày rõ:  Mục đích của bảng câu hỏi,  Mục đích sử dụng những thông tin trong bảng câu hỏi,  Tính bảo mật thông tin trả lời (không tiết lộ ai là người cung cấp thông tin, không để lộ ra ngoài tổ chức )  Hướng dẫn cách điền: rất cần thiết, cần lưu ý để tránh hiểu nhầm  Thời hạn trả về:  Cần nhắc khi gần đến thời hạn 15
- Kỹ thuật dùng bảng câu hỏi  Câu hỏi trình bày rõ ràng  Hình thức bảng câu hỏi phải dễ dàng để xử lý tự động  Cần để dành chỗ để ghi câu trả lời.  Thêm chỗ cho lời bình  Không phải chỉ ở cuối trang, hay cuối bảng câu hỏi,  Nên dự kiến những câu hỏi nào sẽ có ý kiến thêm thì nên có sẵn chỗ để ghi lời bình ngay dưới câu hỏi đó) 16
- Kỹ thuật Nghiên cứu tài liệu  Các tài liệu (có thể tìm hiểu những văn bản chung)  Những quy định nội bộ, Các báo cáo liên quan  Những quy định về quy trình nghiệp vụ  Rất khó có đầy đủ văn bản quy định về quy trình nghiệp vụ  Đơn vị đạt chuẩn ISO?  Những quy định “bất thành văn” !!!  Thường dễ hơn kỹ thuật phỏng vấn hay bảng câu hỏi  Thường được tiến hành trước làm cơ sở chuẩn bị cho việc phỏng vấn hay dùng bảng câu hỏi 17
- Kỹ thuật Quan sát thực tế  Tiến hành sau cùng (nếu cần thiết)  Kiểm tra lại:  Đã hiểu đúng nghiệp vụ hiện tại?  Có những ngoại lệ?  Phát hiện những khó khăn, lỗ hổng trong quy trình nghiệp vụ  Nhược điểm: ? 18
- Phân tích thiết kế nhóm - JAD  JAD – Joint Application Design  Kỹ thuật áp dụng cho các giai đoạn phân tích yêu cầu và đặc tả  Các nhà phát triển và khách hàng làm việc như một nhóm chung và có trách nhiệm chung đối với kết quả đầu ra.  Nhóm làm việc sẽ thảo luận các yêu cầu cần có, thiết kế các màn hình và báo cáo, xây dựng mô hình định khung nhanh, rút ra các đặc tả  Chủ yếu dựa trên sự đồng thuận (consensus) 19
- Mô hình hóa yêu cầu  Tại sao phải mô hình hóa yêu cầu?  Mô hình hóa yêu cầu:  Mô hình hóa là một trong các cách thức mô tả trực quan một vấn đề dưới dạng các sơ đồ  Mô hình hóa sử dụng hệ thống các ký hiệu tương ứng với các thành phần của vấn đề cần mô tả  Mô hình hóa phần mềm (Hệ thống dựa trên phần mềm):  Mô tả trực quan các thành phần của phần mềm dưới dạng các sơ đồ 20
- 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ý 21
- Sơ đồ luồng dữ liệu  Mô hình hóa hướng chức năng với sơ đồ luồng dữ liệu – DFD (Data Flow Diagram)  Mục tiêu: Mô tả mức quan niệm (phát thảo) các thành phần của phần mềm với sự chú trọng trên thành phần xử lý 22
- Sơ đồ luồng dữ liệu  Các ký hiệu Tác nhân/thiết bị (Người sử dụng, thiết bị phát sinh hay tiếp nhận dữ liệu) Khối xử lý Luồng dữ liệu (thông tin) Bộ nhớ phụ (Hồ sơ, Sổ sách, tập tin, csdl ) 23
- Sơ đồ tổng quát Ý nghĩa từng dòng dữ liệu Dữ liệu D1: . Dữ liệu xuất D2: . nhập D3: . Người dùng D4: . D5: . D1 D2 D6: . D5 Thiết bị nhập Xử lý Thiết bị xuất D6 Dữ liệu Dữ liệu đọc D3 D4 ghi Thuật toán xử lý: -Bước 1: -Bước 2: -Bước 3: - 24
- 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 Người dùng  D1: Đơn thức cần tính đạo hàm P D1 D2  D2: Đơn thức kết quả Q Xử lý tính  Thuật toán xử lý đạo hàm  Nhập và kiểm tra D1  Tính và xuất D2 25
- Ví dụ 1 2. Thiết kế  Mô tả chi tiết cách thức giao diện (0) Khởi động giá trị ban đầu Kiểm tra P hợp lệ và (1) nhập giá trị cho P Tính Q Xuất Q 26
- 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 27
- Ví dụ 1 3. Lập trình ‘Khai báo biến 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 28
- 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 29
- 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 30
- Ví dụ 2  Sơ đồ luồng dữ liệu  D1: Các hệ a, b của bất phương trình Người dùng  D2: Nghiệm của bất phương trình thuộc một trong hai dạng sau: D1 D2  Dạng 1: (-∞, x0], Dạng 2: [x0, +∞) Giải bất  Xử lý: phương trình  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 31
- 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 32
- Ví dụ 3  Sơ đồ luồng dữ liệu Người dùng  D1: Các hệ a, b, c của tam thức bậc 2  P(x) = ax² + bx + c D1 D2  D2: Nghiệm của phương trình P(x) = 0 Giải phương thuộc một trong ba loại sau: Trình bậc 2  Vô nghiệm  Nghiệm kép x1 = x2  Hai nghiệm phân biệt x1 và x2 33
- b 2a Ví dụ 3 Người dùng  Xử lý:  Nhập và kiểm tra D1 ( a ≠ 0 ) D1 D2  Tính D2 theo các bước: Giải phương . Δ = b² - 4ac Trình bậc 2 . Nếu Δ 0 : nghiệm loại 3, với x1 = 2a b x2 = 2a  Xuất D2 34
- 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ả 35
- Ví dụ 4 Người dùng, Thủ thư D1 D6 D2 Lập thẻ D5 Màn hình, Thiết bị nhập độc giả Máy in D3 D4 36
- 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ả 37
- 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” 38
- 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. 39
- Sơ đồ tổng quát cho Yêu cầu lưu trữ  D1: Thông tin cần lưu trữ (dựa vào biểu mẫu liên quan) Người dùng  D5: Thông tin cần lưu trữ (chỉ có trong một số yêu cầu đặc biệt) D1 D2  D3:  Các danh mục để chọn lựa D5 Thiết bị nhập Xử lý LT Thiết bị xuất  Dữ liệu cần thiết cho việc kiểm tra tính D6 hợp lệ (dựa vào quy định)  D2: D3 D4  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) 40
- Sơ đồ tổng quát cho Yêu cầu lưu trữ  Xử lý lưu trữ Người dùng  Đọc D3 để lấy các tham số, quy định và danh mục D1 D2  Hiển thị D2 (các danh mục) D5 Thiết bị nhập Xử lý LT Thiết bị xuất  Nhận thông tin D1, D5 (nếu cần) D6  Kiểm tra các thông tin D1, D5 có thỏa quy định liên quan hay không D3 D4 (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) 41
- Sơ đồ tổng quát cho Yêu cầu lưu trữ  Ghi chú: Người dùng  D1 không nhất thiết chứa toàn bộ thông tin trong biểu mẫu liên quan D1 D2  Tùy theo quy định có thể có hay D5 Thiết bị nhập Xử lý LT Thiết bị xuất không có D5 D6  D4 hoặc D6 không nhất thiết phải trùng với D1 hoặc D5 D3 D4  D2 không nhất thiết phải trùng với D3 42
- 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) Người dùng  D3: D1 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 D5 mẫu liên quan đến đối tượng cần tìm kiếm) Thiết bị nhập Xử lý TC Thiết bị xuất D6  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 D3 D4 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??? 43
- 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) Người dùng  Hiển thị D2 (các danh mục) D1 D2  Nhận thông tin về tiêu chí tìm D5 Thiết bị nhập Xử lý TC Thiết bị xuất kiếm D1, D5 (nếu cần) D6  Tìm kiếm theo các tiêu chí D1, D3 D4 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) 44
- 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 Người dùng  D1 chứa nhiều thông tin thì việc tìm kiếm sẽ D1 D2 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 D5 Thiết bị nhập Xử lý TC Thiết bị xuất này D6  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 D4  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) 45
- 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: Người dùng  Dữ liệu cần thiết cho việc xử lý tính toán (dựa D1 D2 vào biểu mẫu và quy định liên quan) D5  Các tham số tính toán Thiết bị nhập Xử lý TT Thiết bị xuất D6  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 D3 D4 và D4)  D6: Dữ liệu kết xuất (thường gồm cả D3 và D4) 46
- 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 Người dùng cho việc tính toán (kể cả các tham D1 D2 số) D5  Sử dụng D1, D3, D5 và quy định Thiết bị nhập Xử lý TT Thiết bị xuất liên quan để tính kết quả D4 D6  Ghi kết quả D4 D3 D4  Hiển thị thông tin kết quả D2 và kết xuất D6 47
- 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 Người dùng thực hiện xử lý tính toán  Có nhiều mức độ khác nhau xác định D1 D2 D1 trong xử lý tính toán (để tăng tính D5 tiện dụng) Thiết bị nhập Xử lý TT Thiết bị xuất D6  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 D3 D4 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 48
- 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 Người dùng (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 D1 D2 báo biểu (dựa vào biểu mẫu và quy định D5 liên quan) Thiết bị nhập Xử lý BB Thiết bị xuất D6  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 D3 D4 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) 49
- 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 Người dùng cần) D1 D2  Đọc D3 để lấy các dữ liệu cần D5 thiết cho việc lập báo biểu Thiết bị nhập Xử lý BB Thiết bị xuất D6  Nếu có D4 thì tính toán theo quy định và Ghi kết quả D4 D3 D4  Hiển thị thông tin báo biểu D2 và kết xuất D6 50
- 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 Người dùng  Có nhiều mức độ khác nhau D1 D2 xác định D1 trong xử lý tính D5 Thiết bị nhập Xử lý BB Thiết bị xuất toán (để tăng tính tiện dụng) D6  D4 có thể có hay không có D3 D4 => Khi nào cần D4?  Thông thường D2 và D6 bao gồm D3 và D4 51
- 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 52
- 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 53
- 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ý Hãy lập sơ đồ luồng dữ liệu 54
- Bài tập 4. Xét phần mềm quản lý giải vô địch bóng đá quốc gia Hãy lập sơ đồ luồng dữ liệu 55





