Chương 1 T�ng quan v� Công ngh� Ph�n m�m UỶ BAN NHÂN DÂN TỈNH BẠC LIÊU TRƯỜNG CAO ĐẲNG KINH TẾ KỸ THUẬT Ý ẢNH BẰNG PHOTOSHOP NGÀNH/NGHỀ TIN HỌC ỨNG DỤNG TRÌNH ĐỘ GIÁO TRÌNH MÔN HỌC/MÔ ĐUN CÔNG NGHỆ PH[.]
UỶ BAN NHÂN DÂN TỈNH BẠC LIÊU TRƯỜNG CAO ĐẲNG KINH TẾ - KỸ THUẬT Ý ẢNH BẰNG PHOTOSHOP NGÀNH/NGHỀ: TIN HỌC ỨNG DỤNG TRÌNH ĐỘ: GIÁO TRÌNH MƠN HỌC/MƠ ĐUN: CÔNG NGHỆ PHẦN MỀM NGÀNH/NGHỀ: TIN HỌC ỨNG DỤNG TRÌNH ĐỘ: TRUNG CẤP Ban hành kèm theo Quyết định số: /QĐ-… ngày…….tháng….năm ………… của……………………………… BẠC LIÊU, NĂM 2021 LỜI NĨI ĐẦU Cơng nghệ phần mềm ngành thiếu lĩnh vực Cơng nghệ thơng tin Ngày nay, sản xuất hệ thống phần mềm lớn hữu ích nhờ phần lớn vào phát triển Công nghệ phần mềm Môn học giúp học sinh hiểu u cầu cơng việc cần phải làm giai đoạn quy trình, để đảm trách cơng việc giai đoạn làm phần mềm Trong phạm vi đề cương giảng môn Công nghệ phần mềm giới thiệu chi tiết nội dung vịng đời phần mềm, mơ hình phát triển phần mềm pha cần thực trình xây dựng hệ thống phần mềm, bao gồm: lập kế hoạch, khảo sát, phân tích, thiết kế, cài đặt, kiểm thử, tích hợp, bảo trì … Để từ đó, giúp học sinh có khái niệm Cơng nghệ phần mềm có khả áp dụng để xây dựng hệ thống phần mềm cụ thể Mặc dầu có cố gắng đề cương giảng cịn nhiều hạn chế nên đề cương khơng tránh khỏi thiếu sót, mong nhận đóng góp ý kiến người đọc Bạc Liêu, ngày 06 tháng 10 năm 2021 Trang MỤC LỤC BÀI BÀI MỞ ĐẦU Một số khái niệm 1.1 Phần mềm 1.3 Công nghệ Phần mềm 1.4 Khoa học Máy tính Cơng nghệ hệ thống Các đặc tính phần mềm Tiêu chí phần mềm tốt Bài 11 QUY TRÌNH XÂY DỰNG PHẦN MỀM 11 Một số quy trình xây dựng phần mềm 11 1.1 Mơ hình thác nước 11 1.2 Mô hình mẫu 12 1.3 Mơ hình phát triển lặp lại, tăng dần 12 1.4 Mơ hình xoắn ốc 13 Các hoạt động quy trình xây dựng phần mềm 14 2.1 Đặc tả phần mềm 14 2.2 Thiết kế cài đặt 15 2.3 Đánh giá phần mềm 16 2.4 Cải tiến phần mềm 16 Bài 18 PHÂN TÍCH VÀ ĐẶC TẢ YÊU CẦU 18 Xác định yêu cầu 18 1.1 Yêu cầu 18 1.2 Phân loại yêu cầu 18 Quy trình xác định yêu cầu 21 2.1 Phân tích khả thi 21 2.2 Phát phân tích yêu cầu 22 Đánh giá yêu cầu 25 3.1 Khái niệm đặc tả 26 3.2 Tại phải đặc tả 27 3.3 Phân loại kỹ thuật đặc tả 27 Bài 29 THIẾT KẾ PHẦN MỀM 29 Qui trình thiết kế 29 1.1 Khái niệm thiết kế 29 1.2 Vai Trò 29 1.3 Nguyên lý thiết kế 30 1.4 Cấu trúc thiết kế 30 1.5 Phân rã hệ thống 30 1.6 Các đặc điểm thiết kế phần mềm 31 Thiết kế kiến trúc 33 2.1 Các vấn đề thiết kế kiến trúc 33 2.2 Các đặc điểm kiến trúc hệ thống 33 Thiết kế giao diện người dùng 34 Bài 36 KIỂM THỬ PHẦN MỀM 36 Một số khái niệm 36 Quy trình kiểm thử phần mềm 37 Trang 3 Các phương pháp kiểm thử phần mềm 40 Nguyên lý kiểm thử phần mề 42 4.1 Kiểm thử đưa lỗi 43 4.2 Kiểm thử cạn kiệt 43 4.3 Kiểm thử sớm tốt 43 4.4 Sự tập trung lỗi 43 4.5 Nghịch lý thuốc trừ sâu 44 4.6 Kiểm thử phụ thuộc vào ngữ cảnh 44 4.7 Khơng có lỗi – Sai lầm 44 BÀI 45 TRIỂN KHAI VÀ BẢO TRÌ 45 Khái niệm 45 Các hình thái bảo trì 45 Trình tự nghiệp vụ bảo trì 46 Những khó khăn bảo trì 48 TÀI LIỆU THAM KHẢO 48 Trang BÀI BÀI MỞ ĐẦU Giới thiệu: MỤC TIÊU: + Trình bày khái niệm cơng nghệ phần mềm phân loại phần mềm + Nêu đặc tính tiêu chí phần mềm + Phân loại phần mềm ứng dụng thực tế + Nhận định quy trình hoạt động cơng nghệ phầm mềm + Sau học nội dung học sinh ứng dụng phần mềm phù hợp thị trường công nghệ Một số khái niệm 1.1 Phần mềm 1.1.1 Khái niệm Phần mềm Chương trình máy tính tài liệu liên quan đến như: u cầu, mơ hình thiết kế, tài liệu hướng dẫn sử dụng… Do đó, thấy đặc điểm phần mềm trừu tượng Trong cách nhìn này, người ta tiếp cận theo quan điểm hệ thống Mức nhất, phần mềm hệ thống phức tạp, hệ thống Và hệ thống Chương trình mô đun thủ tục Hệ thống Hệ thống Hệ thống Các tệp Job unit Bài trình Bài trình Jobstep unit Tệp trung gian Mô đun Đối số Mô đun Đối số Thủ tục Member unit Common Module Hình 1.1 Kiến trúc phân cấp phần mềm Trang Phần mềm (software): tập hợp câu lệnh viết nhiều ngơn ngữ lập trình, nhằm tự động thực số chức giải tốn 1.1.2 Các sản phẩm phần mềm Chia thành loại: - Sản phẩm đại trà Ví dụ: Hình 1.2: Sản phẩm đại trà phần mềm kế toán - Sản phẩm theo đơn đặt hàng Ví dụ: Phần mềm quản lý nhà trường; Phần mềm kiểm định chất lượng vắc xin, sinh phẩm; Phần mềm quản lý thi trắc nghiệm; Hệ thống nhận gửi công văn qua mạng - Một phần mềm tạo cách phát triển Chương trình mới, thay đổi điều chỉnh hệ thống phần mềm đại trà tái sử dụng lại phần mềm tồn - Phần mềm sản phẩm dùng cho tính tốn, tạo, quản lý, thu nhận, biến đổi, thể truyền thông tin - Phần mềm phương tiện tạo sản phẩm - Hỗ trợ hay cung cấp trực tiếp chức hệ thống - Điều khiển Chương trình khác (hệ điều hành) - Thực truyền thông (phần mềm mạng) 1.2 Phân loại phần mềm Phân loại phần mềm định nghĩa định hướng công việc ứng dụng, ví dụ theo kiểu hướng giao dịch, hỏi đáp, trợ giúp định 1.2.1 Phần mềm hệ thống Phần mềm với chức cung cấp môi trường thao tác dễ dàng cho người sử dụng nhằm tăng hiệu xử lý phần cứng, quản lý tiến trình, tài nguyên Trang hệ thống, ví dụ Hệ điều hành máy tính, Hệ điều hành mạng, … Rõ ràng với loại phần mềm yêu cầu quan trọng tính xác, độ ổn định cao tính dung lỗi 1.2.2 Phần mềm ứng dụng Dùng để xử lý nghiệp vụ thích hợp quản lý, kế toán, , đáp ứng yêu cầu nghiệp vụ người dùng Người ta nói phần mềm phần mềm làm sản phẩm thông tin Một cách phân loại khác: - Phần mềm hệ thống; - Phần mềm thời gian thực; - Phần mềm nghiệp vụ; - Phần mềm tính tốn Khoa học Kỹ thuật; - Phần mềm nhúng 1.3 Công nghệ Phần mềm Khái niệm Công nghệ phần mềm đưa lần vào năm 1968 hội nghị thảo luận khủng hoảng phần mềm Công nghệ phần mềm đề cập tới lý thuyết, phương pháp công cụ để xây dựng phần mềm chuyên nghiệp, mang lại lợi nhuận cao Hoạt động từ thủ công đến công nghệ: Từ thủ cơng Chương trình nhỏ Khơng chun nghiệp người làm Người sử dụng - người phát triển Tiến trình phát triển đơn giản Công nghệ Dự án lớn Chuyên nghiệp Nhiều người làm Khách hàng nhà cung cấp Tiến trình phát triển phức tạp Như vậy, “Cơng nghệ phần mềm lĩnh vực khoa học phương pháp luận, kỹ thuật cơng cụ tích hợp quy trình sản xuất vận hành phần mềm nhằm tạo phần mềm với chất lượng mong muốn” tầng (Hình 1.3): tầng chất lượng, tầng quy trình, tầng phương pháp tầng công cụ Công cụ Phương pháp Qui trình Tiêu điểm chất lượng Hình 1.3: Các tầng Công nghệ phần mềm Trang - Công cụ phần mềm nhằm cung cấp hỗ trợ tự động, bán tự động cho quy trình phương pháp phần mềm Khi cơng cụ tích hợp, thơng tin tạo cơng cụ sử dụng cơng cụ khác, ví dụ thiết kế có hỗ trợ - Phương pháp phần mềm nhằm cung cấp kỹ thuật để chế tác phần mềm bao gồm: + Phân tích yêu cầu người dùng; + Thiết kế hệ thống; + Lập trình; + Kiểm thử; + Khai thác; + Bảo trì - Là quy trình kỷ luật có định lượng áp dụng cho phát triển, thực thi bảo trì hệ thống thiên phần mềm Tập trung vào quy trình, đo lường, sản phẩm, tính thời gian chất lượng * Gồm giai đoạn lớn: - Giai đoạn xác định: Phân tích hệ thống, hoạch định đề tài, phân tích yêu cầu - Giai đoạn phát triển: Thiết kế phần mềm, sinh mã, kiểm tra phần mềm - Giai đoạn bảo trì: Sửa lỗi, thay đổi môi trường thực thi, tăng cường 1.4 Khoa học Máy tính Cơng nghệ hệ thống - Khoa học máy tính đề cập tới lý thuyết vấn đề bản; cịn cơng nghệ phần mềm đề cập tới hoạt động xây dựng đưa phần mềm hữu ích - Khi phát triển phần mềm trở lên mạnh mẽ lý thuyết khoa học máy tính khơng đủ để đóng vai trị tảng hồn thiện cho công nghệ phần mềm - Công nghệ hệ thống (hay gọi Kỹ nghệ hệ thống) liên quan tới tất khía cạnh q trình phát triển hệ thống dựa vào máy tính bao gồm: phần cứng, phần mềm, công nghệ xử lý Công nghệ phần mềm phần quy trình này, có liên quan tới việc phát triển hạ tầng phần mềm, điều khiển, ứng dụng sở liệu hệ thống Các đặc tính phần mềm Phần mềm loại sản phẩm có đặc thù riêng Người ta thường lưu tâm đến đặc tính sau: - Là hàng hóa vơ hình, khơng nhìn thấy - Chất lượng phần mềm: khơng mịn mà có xu hướng tốt lên sau lần có lỗi phát sửa chữa Trang - Phần mềm vốn chứa lỗi tiềm tàng, theo quy mơ lớn khả chứa lỗi cao - Lỗi phần mềm dễ phát người ngồi - Chức phần mềm thường biến hóa, thay đổi theo thời gian theo nơi sử dụng - Hiệu ứng sóng thay đổi phần mềm - Phần mềm vốn chứa ý tưởng sáng tạo tác giả/nhóm tác giả làm - Cần khả “tư nhị phân” xây dựng, phát triển phần mềm - Phần mềm chép đơn giản Tiêu chí phần mềm tốt - Để đánh giá chất lượng phần mềm, người ta đưa tiêu chí hình 1.4 Tính dễ hiểu Các tiêu Thời gian (Phần cứng phát triển) Hình 1.4: Tiêu chí phần mềm tốt Trang Câu hỏi 1: Khái niệm phần mềm gì? Phân loại phần mềm? Khái niệm công nghệ phần mềm? Phân biệt khác công nghệ phần mềm, khoa học máy tính cơng nghệ hệ thống Nêu đặc tính phần mềm Tiêu chí phần mềm tốt gì? Trang 10 ... phần mềm phân loại phần mềm + Nêu đặc tính tiêu chí phần mềm + Phân loại phần mềm ứng dụng thực tế + Nhận định quy trình hoạt động cơng nghệ phầm mềm + Sau học nội dung học sinh ứng dụng phần mềm. .. 1.3 Công nghệ Phần mềm Khái niệm Công nghệ phần mềm đưa lần vào năm 1968 hội nghị thảo luận khủng hoảng phần mềm Công nghệ phần mềm đề cập tới lý thuyết, phương pháp công cụ để xây dựng phần mềm. .. nói phần mềm phần mềm làm sản phẩm thông tin Một cách phân loại khác: - Phần mềm hệ thống; - Phần mềm thời gian thực; - Phần mềm nghiệp vụ; - Phần mềm tính toán Khoa học Kỹ thuật; - Phần mềm