Mục tiêu của chương 2 Phát triển phần mềm thuộc bài giảng Phát triển vận hành và bảo trì phần mềm trình bày các kiến thức cơ bản như: hoạt động và các nguyên tắc để phát triển phần mềm theo hướng cấu trúc và hướng đối tượng...mời các bạn thma khảo tài liệu này để hiểu sâu hơn về phát triển phần mềm.
CHƯƠNG PHÁT TRIỂN PHẦN MỀM Mục đich: Chương tập trung vào hoạt động nguyên tắc để phát triển phần mềm theo hướng cấu trúc hướng đối tượng NỘI DUNG 2.1 Các hoạt động phát triển p/mềm 2.1.1 Thiết kế phần mềm 2.1.2 Sinh mã – thực, triển khai 2.1.3 Kiểm thử phần mềm 2.2 Nghệ thuật gỡ rối 2.2.1 Brute-force (ép buộc) 2.2.2 Loại trừ nguyên nhân 2.2.3 Theo vết 2.1 Các hoạt động phát triển p/mềm • Các giai đoạn p/triển gồm: 2.1.1 2.1.2 2.1.3 Thiết kế phần mềm (software design); Sinh mã (code generation); Kiểm thử phần mềm (software testing) 2.1.1 Thiết kế phần mềm • Là cơng việc giai đoạn ↑ • Nhằm tạo biểu diễn kiện hệ thống p/mềm cần x/dựng từ kết phân tích u cầu để dễ dàng thực sau • Là lĩnh vực tương đối mẻ phát triển với nhiều phương pháp khác 2.1.1 Thiết kế phần mềm 2.1.1.1 2.1.2.2 2.1.2.3 2.1.2.3 2.1.2.4 Cơ sở thiết kế p/mềm Phân chia module hiệu Các hoạt động thiết kế Phương pháp thiết kế cổ điển Phương pháp thiết kế hướng đối tượng 2.1.1.1 Cơ sở thiết kế p/mềm • • • • • • • a) Trừu tượng hóa b) Tinh chế c) Phân chia moddule d) Kiến trúc phần mềm e) Cấu trúc liệu f) Thủ tục g) Che dấu thơng tin a) Trừu tượng hóa • Quá trình thiết kế trải qua nhiều mức độ trừu tượng hóa khác nhau: – Mức cao nhất: Vần đề cần thiết kế mô tả cách tổng quát sử dụng thuật ngữ hướng vấn đề – Mức thấp hơn: Hướng đến thủ tục xử lý chi tiết; kết hợp thuật ngữ hướng đến thực – Mức thấp nhất: Vấn đề mô tả theo cách thực trực tiếp a) Trừu tượng hóa • Phân loại trừu tượng hóa thủ tục liệu * Trừu tượng hóa thủ tục: Là chuỗi lệnh liên tiếp thực chức Ví dụ: - Mở cửa bao gồm: đến cửa, cầm lấy tay nắm, xoay tay nám, kéo cánh cửa - Thêm phần tử vào danh sách có thứ tự: Xác định vị trí, chèn phần tử a) Trừu tượng hóa • * Trừu tượng hóa liệu: Là tổ hợp liệu mô tả đối tượng liệu • Ví dụ: đối tượng thực thể trừu tượng hóa tính chất hành vi b) Tinh chế • Tinh chế trình làm rõ vấn đề Tinh chế trừu tượng hóa khái niệm bù trừ thể hiện: Càng tinh chế hạ thấp mức độ trừu tượng hóa a) Mục tiêu kiểm thử phần mềm • Mục tiêu kiểm nghiệm phần mềm tìm lỗi (nếu có) với chi phí thấp • Kiểm nghiệm phần mềm giúp: - Phát lỗi chương trình(nếu có) - Chứng minh phần mềm hoạt động thiết kế - Chứng minh phần mềm đáp ứng yêu cầu user => góp phần chứng minh chất lượng phần mềm b) Các nguyên lý kiểm thử phần mềm • Việc kiểm nghiệm nên hướng yêu cầu khách hàng • Nên hoạch định trước một thời gian dài • Áp dụng nguyên lý Pareto: 80% lỗi có nguyên nhân từ 20% module, cô lập kiểm tra module khả nghi • Nên tiến hành từ nhỏ đến lớn: Bắt đầu từ module riêng biệt sau tích hợp module lại • Khơng thể kiểm nghiệm triệt để phần mềm • Nên thực đối tượng khơng tham gia vào q trình phát triển phần mềm c) Thiết lập test-case • Khái niệm Test – case: Một test – case bao gồm: - Dữ liệu đầu vào - Thao tác kiểm nghiệm - Dữ liệu đầu mong muốn • Test – case cho kiểm nghiệm black – box: => Chủ yếu dựa vào yêu cầu cụ thể chức phần mềm • Test – case cho kiểm nghiệm white – box: => Chủ yếu dựa vào cấu trúc điều khiển phần mềm 2.1.3.3 Kiểm thử hướng đối tượng • Về chiến thuật kiểm nghiệm hướng đối tượng theo thứ tự giống kiểm nghiệm cổ điển: a) Kiểm nghiệm đơn vị b) kiểm nghiệm tích hợp c) kiểm nghiệm chức d) kiểm nghiệm toàn hệ thống a) Kiểm nghiệm đơn vị hướng đối tượng • Không thể tách rời tác vụ đối tượng/lớp để kiểm nghiệm vì: - Tác vụ đóng bao lớp - Các lớp viết đè tác vụ • Kiểm nghiệm đơn vị hướng đối tượng tập trung vào lớp, kiểm nghiệm hành vi lớp b) Kiểm nghiệm tích hợp hướng đối tượng • Xét hai hình thức kiểm nghiệm tích hợp hướng đối tượng: – Kiểm nghiệm sở thread: Tích hợp lớp tạo thành thread để phục vụ cho input chương trình – Kiểm nghiệm sở sử dụng lớp: Client tích hợp để sử dụng dịch vụ cung cấp lớp server c) Kiểm nghiệm theo kịch • Dựa vào use – case để tạo kịch • Ví dụ: Một kịch cho hệ thống đăng ký môn học qua Web Login với username = “e59306547”, password = “6547” Chọn chức đăng ký môn học Chọn nhóm mơn học mơn: CNPM, AI, XLTHS, PTTK, XSTK có nhóm trùng thời khóa biểu Nhấn nút Submit => Chương trình phải báo lỗi liệt kê nhóm bị trùng thời khóa biểu 2.1.4 Nghệ thuật gỡ rối (debug) 2.1.4.1 Gỡ rối gì? 2.1.4.2 Các hình thức gỡ rối 2.1.4.1 Gỡ rối gì? • Gỡ rối trình nhằm loại bỏ lỗi phát q trình kiểm thử • Gỡ rối thực kết việc kiểm tra: Lỗi phát – tìm nguyên nhân – sửa lỗi • Gỡ rối cơng việc khó khăn, dễ gây tâm lý chán nản nguyên nhân gây lỗi nhiều lại mơ hồ: – Do time – out (vượt thời gian), – độ xác, – chủ quan lập trình, • Khả gỡ rối gần bẩm sinh người 2.1.4.1 Gỡ rối gì? Lỗi phần mềm thuật ngữ chung sử dụng để mô tả: - lỗi thiếu sót, - sai lầm, - thất bại - khuyết điểm chương trình máy tình, tạo nên: - kết khơng khơng mong đợi, - ứng xử khơng mong đợi 2.1.4.2 Các hình thức gỡ rối • Có hình thức gỡ rối: – Brute force (ép buộc thô bạo), – loại trừ nguyên nhân – theo vết => Ta nên dùng kết hợp hình thức a) Brute force – ép buộc thơ bạo • Là phương pháp phổ biến lại hiệu cho việc phát nguyên nhân gây lỗi phần mềm • Triết lý phương pháp là: “hãy để máy tính tìm lỗi” • Có cách thực hiện: - Lấy liệu nhớ để xem xét - Dùng Run – time trace để tìm lỗi - Dùng lệnh Write để xuất liệu cần kiểm tra hình => Ta nên áp dụng phương pháp tất phương pháp khác thất bại b) Loại trừ nguyên nhân • Cách thức thực hiện: - Khi lỗi phát hiện, cố gắng đưa danh sách nguyên nhân gây lỗi - Danh sách nghiệm lại để loại bỏ dần nguyên nhân không tìm thấy ngun nhân khả nghi - Khi liệu kiểm nghiệm tinh chế lại để tiếp tục tìm lỗi c) Theo vết • Là phương pháp gỡ lỗi phổ biến, dùng thành cơng chương trình nhỏ lại khó áp dụng cho chương trình lớn • Cách thức thực hiện: Bắt đầu từ dịng mã nguồn có triệu chứng lỗi, thực lan ngược trở lại dịng mã nguồn tìm thấy dịng gây lỗi KẾT THÚC GIAI ĐOẠN PHÁT TRIỂN – CHƯƠNG ...NỘI DUNG 2. 1 Các hoạt động phát triển p /mềm 2. 1.1 Thiết kế phần mềm 2. 1 .2 Sinh mã – thực, triển khai 2. 1.3 Kiểm thử phần mềm 2. 2 Nghệ thuật gỡ rối 2. 2.1 Brute-force (ép buộc) 2. 2 .2 Loại trừ... nguyên nhân 2. 2.3 Theo vết 2. 1 Các hoạt động phát triển p /mềm • Các giai đoạn p /triển gồm: 2. 1.1 2. 1 .2 2.1.3 Thiết kế phần mềm (software design); Sinh mã (code generation); Kiểm thử phần mềm (software... vực tương đối mẻ phát triển với nhiều phương pháp khác 2. 1.1 Thiết kế phần mềm 2. 1.1.1 2. 1 .2. 2 2. 1 .2. 3 2. 1 .2. 3 2. 1 .2. 4 Cơ sở thiết kế p /mềm Phân chia module hiệu Các hoạt động thiết kế Phương