TRƯỜNG ĐẠI HỌC THUỶ LỢI KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM Bài giảng CÔNG NGHỆ PHẦN MỀM Hà Nội 02/2020 TRƯỜNG ĐẠI HỌC THUỶ LỢI Khoa Công Nghệ Thông Tin Bộ Môn Công Nghệ Phần Mềm CÔNG N[.]
TRƯỜNG ĐẠI HỌC THUỶ LỢI KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM Bài giảng CÔNG NGHỆ PHẦN MỀM Hà Nội - 02/2020 TRƯỜNG ĐẠI HỌC THUỶ LỢI Khoa Công Nghệ Thông Tin Bộ Môn Công Nghệ Phần Mềm CÔNG NGHỆ PHẦN MỀM Giảng viên: TS Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn ĐT: 0898158945 TRƯỜNG ĐẠI HỌC THUỶ LỢI Khoa Công Nghệ Thông Tin Bộ Môn Công Nghệ Phần Mềm CÔNG NGHỆ PHẦN MỀM Giảng viên: TS Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn ĐT: 0898158945 NỘI DUNG ▪ Tên môn học: Công nghệ Phần mềm ▪ Tên tiếng Anh: Software Engineering ▪ Mã môn học: CSE481 ▪ Số tín chỉ: (LT: 2, TH/BT/TL: 1) ▪ Số tiết: 30 Lý thuyết & 15 - Bài tập, Thảo luận MỤC ĐÍCH MƠN HỌC ▪ Cung cấp khái niệm về: ▪ Phần mềm (Software) ▪ Công nghệ phần mềm (Software Engineering) ▪ Dự án phần mềm (Software Project) ▪ Quản trị dự án phần mềm (Software Project Management) ▪ Tiến trình phần mềm (Software Process) ▪ Giúp sinh viên biết hiểu: ▪ Quy trình xây dựng phần mềm với số phương pháp xây dựng phần mềm ▪ Các công việc thực kết đạt giai đoạn: khảo sát, phân tích, thiết kế, cài đặt, kiểm thử, bảo trì ▪ Các kiến trúc mơ hình triển khai phần mềm ▪ Các vấn đề đạo đức chuyên mơn NỘI DUNG MƠN HỌC ▪ Bài 1: Phần mềm Công nghệ phần mềm ▪ Bài 2: Xác định yêu cầu ▪ Bài 3: Phân tích thiết kế hệ thống thông tin ▪ Bài 4: Quản lý chất lượng phần mềm ▪ Bài 5: Mơ hình CMMI YÊU CẦU VỚI SINH VIÊN ▪ Dự lớp đầy đủ ▪ Tham gia thảo luận (trên lớp qua Piazza), thực hành ▪ Website: https://sites.google.com/site/cse481spring2017/ ▪ Trang web thảo luận: Piazza ▪ Cách đánh giá: ▪ Điểm trình (thực hành, chuyên cần): 50% ▪ Điểm thi hết môn: 50% BÀI TẬP DỰ ÁN (PROJECT) ▪ Mơ hình phát triển: SCRUM ▪ Số lượng thành viên: ~5 người ▪ Chủ đề: ▪ Nhóm tự đề xuất, ▪ Do giảng viên định ▪ Nền tảng: không giới hạn (web, desktop, mobile) ▪ Công nghệ: không giới hạn ▪ Số tính khơng cần nhiều ▪ Phải sử dụng công cụ quản lý dự án: redmine, github, bitbucket, trello, slack, jira, confluence, gitlab, jenkins (CI/CD)… TÀI LIỆU THAM KHẢO ▪ Software Engineering, Ian Sommerville, 10th Edition, 2016 ▪ Software engineering: A practitioner's approach, Part & Part 2, Roger S Pressman, McGraw-Hill Higher Education, 2010 (#000021579) ▪ Kỹ nghệ Phần mềm, Lê Văn Phùng, Nhà xuất Thông tin Truyền thông, 2014 ▪ Nhập Môn Cơng Nghệ Phần Mềm, Phạm Thị Quỳnh CƠNG NGHỆ PHẦN MỀM BÀI1 TỔNG QUAN VỀ PHẦN MỀM VÀ CÔNG NGHỆ PHẦN MỀM Giảng viên: TS Lê Nguyễn Tuấn Thành Email: thanhlnt@tlu.edu.vn Bộ Môn Công Nghệ Phần Mềm – Khoa CNTT Trường Đại Học Thủy Lợi Mức độ trưởng thành – Optimizing (2) Sự khác biệt đáng kể mức độ nhận diện tham số chất lượng quy trình: ▪ Ở mức 4, quy trình trọng thơng qua việc nhận diện nguyên nhân gây nên biến quy trình dự đốn thống kê kết ▪ Ở mức 5, doanh nghiệp trọng vào nguyên nhân phổ biến gây nên biến quy trình thay đổi chúng cho phù hợp nhằm nâng cao hiệu suất quy trình nhằm đạt mục tiêu liên tục cải tiến quy trình định lượng 18 19 PHẦN GIẢI THÍCH KPA TRONG CMMI Key Process Areas 20 KPA mức 2: Quản lý (1) ▪ Quản lý yêu cầu ▪ Để tạo hiểu biết chung khách hàng dự án phần mềm yêu cầu khách hàng để giải dự án ▪ Thỏa thuận với khách hàng sở cho việc lập kế hoạch quản lý dự án phần mềm ▪ Lập dự án phần mềm ▪ Thiết lập kế hoạch hợp lý để thực công nghệ phần mềm quản lý dự án phần mềm ▪ Kế hoạch hợp lý dựa việc xây dựng ước tính thực tế cho cơng việc thiết lập cam kết cần thiết để thực công việc ▪ Bắt đầu với SOW ràng buộc mục đích để định nghĩa giới hạn dự án 21 KPA mức 2: Quản lý (2) ▪ Theo dõi giám sát dự án phần mềm ▪ Thiết lập tầm nhìn đầy đủ tiến độ thực tế để quản lý có hành động hiệu suất dự án phần mềm sai lệch đáng kể so với kế hoạch phần mềm ▪ Sự quản lý dự án dựa kế hoạch phát triển phần mềm ▪ Quản lý hợp đồng phụ ▪ để lựa chọn nhà thầu phụ có trình độ quản lý chúng cách hiệu ▪ nhà thầu phụ lựa chọn khả thực công việc ▪ yếu tố khác bao gồm liên minh chiến lược kinh doanh, lực trình, cân nhắc kỹ thuật, 22 KPA mức 2: Quản lý (3) ▪ Đảm bảo chất lượng phần mềm ▪ Để cung cấp quản lý với tầm nhìn thích hợp vào quy trình sử dụng dự án phần mềm sản phẩm xây dựng ▪ Tầm nhìn đạt cách rà soát, kiểm toán sản phẩm hoạt động phần mềm để xác minh họ tuân thủ tiêu chuẩn thủ tục áp dụng ▪ Quản lý cấu hình phần mềm ▪ Thiết lập trì tính tồn vẹn sản phẩm dự án phần mềm suốt vòng đời phần mềm dự án ▪ Xác định cấu hình phần mềm thời điểm định, kiểm sốt cách có hệ thống thay đổi cấu hình trì tính tồn vẹn khả truy ngun cấu hình thơng qua chu trình sống phần mềm 23 KPA mức 3: Định nghĩa (1) ▪ Tập trung quy trình tổ chức ▪ Để thiết lập trách nhiệm tổ chức cho hoạt động quy trình phần mềm giúp nâng cao khả quy trình tổng thể phần mềm tổ chức ▪ Cải tiến quy trình liên tục bao gồm việc phát triển trì hiểu biết quy trình phần mềm điều phối hoạt động để đánh giá, phát triển, trì cải tiến quy trình ▪ Định nghĩa quy trình tổ chức ▪ Để phát triển trì tập hữu dụng tài sản quy trình phần mềm nhằm nâng cao hiệu suất quy trình dự án cung cấp sở để định nghĩa liệu có ý nghĩa cho việc quản lý quy trình định lượng 24 KPA mức 3: Định nghĩa (2) ▪ Chương trình đào tạo ▪ Để phát triển kỹ kiến thức cá nhân để họ thực vai trò họ hiệu ▪ Đào tạo trách nhiệm tổ chức, dự án phần mềm chịu trách nhiệm xác định kỹ cần thiết cung cấp đào tạo cần thiết ▪ Quản lý phần mềm tích hợp ▪ Để tích hợp hoạt động quản lý kỹ thuật phần mềm thành quy trình phần mềm xác định rõ ràng, điều chỉnh từ quy trình phần mềm chuẩn tổ chức tài sản quy trình có liên quan 25 KPA mức 3: Định nghĩa (3) ▪ Kỹ thuật sản phẩm phần mềm ▪ Để thực liên tục quy trình kỹ thuật định nghĩa rõ ràng nhằm tích hợp tất hoạt động công nghệ phần mềm để sản xuất sản phẩm phần mềm phù hợp xác cách hiệu lực hiệu ▪ Phối hợp nhóm ▪ Để thiết lập phương tiện cho nhóm kỹ thuật phần mềm để tham gia tích cực với nhóm kỹ thuật khác để dự án có khả đáp ứng tốt nhu cầu khách hàng cách có hiệu lực hiệu 26 KPA mức 3: Định nghĩa (4) ▪ Peer Reviews ▪ Để loại bỏ khiếm khuyết từ sản phẩm phần mềm hoạt động sớm hiệu ▪ Để phát triển hiểu biết tốt sản phẩm làm việc phần mềm khuyết tật ngăn ngừa ▪ Có thể thực thơng qua kiểm tra, hướng dẫn có cấu trúc, phương pháp duyệt lại chung khác 27 KPA mức 4: Quản lý định lượng (1) ▪ Quản lý quy trình định lượng ▪ Để kiểm sốt hiệu suất quy trình dự án phần mềm cách định lượng ▪ Biến thể ngẫu nhiên tồn quy trình ▪ Với trình ổn định, hiệu suất bình thường giới hạn biết đến (khả xử lý định lượng) ▪ Hiệu suất bên giới hạn "các nguyên nhân đặc biệt" thay đổi 28 KPA mức 4: Quản lý định lượng (2) ▪ Quản lý chất lượng phần mềm ▪ Để phát triển hiểu biết định lượng chất lượng sản phẩm phần mềm dự án đạt mục tiêu chất lượng cụ thể ▪ Các mục tiêu định lượng dựa nhu cầu tổ chức, khách hàng người dùng cuối ▪ "Quản lý Chất lượng Phần mềm" sản phẩm tập trung "Quản lý Quy trình Định lượng" quy trình tập trung 29 KPA mức 5: Tối ưu hóa (1) ▪ Phịng ngừa khuyết tật ▪ Phân tích khuyết tật, xác định ngun nhân, có hành động để ngăn ngừa chúng tái phát ▪ Một chế để bước cải tiến quy trình phần mềm cách tiến hóa ▪ Quản lý thay đổi công nghệ ▪ Để xác định công nghệ có lợi (tức cơng cụ, phương pháp quy trình) áp dụng chúng vào tổ chức theo cách có trật tự ▪ Chuyển đổi cơng nghệ có nghĩa xác định, lựa chọn đánh giá công nghệ kết hợp công nghệ hiệu vào tổ chức để cải thiện chất lượng phần mềm 30 KPA mức 5: Tối ưu hóa (2) ▪ Quản lý thay đổi quy trình ▪ Để cải tiến liên tục quy trình phần mềm sử dụng tổ chức với mục đích nâng cao chất lượng phần mềm, tăng suất giảm thời gian chu kỳ phát triển sản phẩm 31 Tài liệu tham khảo ▪ Software engineering: A practitioner's approach, Part & Part 2, Roger S Pressman, McGraw-Hill Higher Education, 2010 (#000021579) ▪ Software Engineering, Ian Sommerville, 10th Edition, 2016 ▪ Kỹ nghệ Phần mềm, TS Lê Văn Phùng, Nhà xuất thông tin truyền thông, 2014 ▪ Nhập Môn Công Nghệ Phần Mềm, Phạm Thị Quỳnh 32