Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
0,95 MB
Nội dung
Công nghệ phần mềm Kỹ nghệ Phần mềm (SE) Nội dung • • • • • • • Khái niệm SE Các yếu tố SE Các giai đoạn phát triển SE Vòng đời phát triển Các thách thức cho phát triển PM Chi phí cho phát triển PM Một số vấn đề đạo đức nghề nghiệp Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Một số định nghĩa SE Software Engineering (SE) • SE thiết lập sử dụng nguyên lý công nghệ đắn để phần mềm cách kinh tế, vừa tin cậy vừa làm việc hiệu máy thực [Bauer 1969] • SE nguyên lý kỹ nghệ liên quan đến tất mặt lý thuyết, phương pháp, công cụ phần mềm [Sommerville 1995] Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Một số định nghĩa SE Software Engineering (SE) • SE mơn tích hợp quy trình, phương pháp, cơng cụ để phát triển phần mềm máy tính [Pressman 1995] Bộ mơn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Khái niệm SE • ngành cơng nghiệp liên quan đến khía cạnh việc phát triển phần mềm (thu thập, phân tích đặc tả; thiết thế, lập trình, kiểm thử, chuyển giao, vận hành ảo trì, …) • Kỹ nghệ: xây dựng PM cách ứng dụng lý thuyết, phương pháp, công cụ cách chọn lọc cố gắng tạo giải pháp giải vấn đề khơng có lý thuyết cơng cụ để áp dụng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN Tổng quan SE • Mục tiêu SE – Làm để có SP PM (trong mơi trường đầy biến động, đầy thay đổi) • Có chất lượng cao (đủ tính dễ dùng) • Có thời gian phát triển ngắn • Có chi phí phát triển “thấp” • Là ngành kinh tế – Công nghiệp: phát triển, chuyển giao PM – Các trường ĐH, Viện NC: nghiên cứu, đề xuất giải pháp cho vấn đề mà công nghiệp đặt – R&D: mảng việc chung hai đối tượng Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN CÁC YẾU TỐ CƠ BẢN CỦA SE • Tổng hợp: Kỹ nghệ phần mềm – Là q trình tích hợp gồm • Thủ tục (procedures) • Phương pháp (methods) • Cơng cụ (tools) – Nhằm tạo phần mềm hiệu với giới hạn cho trước Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN THỦ TỤC • Quy trình quản lý phát triển – Trình tự thực công việc – Tài liệu, sản phẩm cần bàn giao cách thức thực – Mốc thời gian (milestones) sản phẩm đưa (theo chuẩn) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN PHƯƠNG PHÁP • Cách làm cụ thể để xây dựng phần mềm • Mỗi giai đoạn có phương pháp riêng – Phân tích (nắm bắt u cầu, đặc tả yêu cầu) – Thiết kế (kiến trúc, giao diện, liệu) – Lập trình (cấu trúc, hướng đối tượng) – Kiểm thử (hộp đen, hộp trắng, hồi quy) – Quản lý dự án (PERT, COCOMO) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN CƠNG CỤ • Trợ giúp tự động/bán tự động phương pháp • Computer Aided Software Engineering – CASE, công cụ trợ giúp công đoạn khác tiến trình phát triển phần mềm Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 10 CÁC GIAI ĐOẠN PHÁT TRIỂN • ~80s (nửa sau) – Phát triển mơ hình quản lý • Các chuẩn cơng nhận (CMM, ISO) • Nhiều mơ hình tổ chức làm phần mềm đề xuất • Nhiều cơng cụ trợ giúp quản lý dự án hồn thiện Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 15 VÒNG ĐỜI PHÁT TRIỂN PHẦN MỀM • Là hoạt động từ đặt hàng, phát triển, sử dụng đến loại bỏ • Các giai đoạn Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 16 CÁC GIAI ĐOẠN CHUNG NHẤT PHÁT TRIỂN • Lập kế hoạch dự án – Thu thập yêu cầu sơ – Ước lượng sớm – Lập kế hoạch • Phân tích đặc tả u cầu – Thu thập yêu cầu – Phân tích yêu cầu – Đặc tả yêu cầu – Thẩm định • Phát triển – Thiết kế – Triển khai (Implemeting) – Kiểm thử – Viết tài liệu • Tiến hóa – Sửa lỗi, làm thích nghi – Nâng cấp, bổ sung Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 17 Thách thức phát triển PM • Việc phát triển ứng dụng > 5000 function points (~500,000 LOC) (các ứng dụng lớn) nhiệm vụ rủi ro giới đại (Capers Jones) • Những rủi ro dẫn đến hủy đình trệ tăng nhanh với việc tăng kích thước ứng dụng (Capers Jones) • Chúng ta phải đối mặt với nhiều thách thức lớn q trình phát triển PM Bộ mơn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 18 Thống kê Standish Group (2006) • Có tới 50% số dự án phần mềm thất bại • Chỉ có 16.2% dự án hồn thành hạn nằm giới hạn ngân sách, đáp ứng tất tính đặc tính cam kết ban đầu • Có 52.7% dự án hồn thành vào hoạt động khơng hồn thành hạn bội chi, thêm không đáp ứng đầy đủ tính đặc tính thiết kế ban đầu • Và có 31.1% dự án thất bại trước hoàn thành -> 83.8% dự án thất bại không đáp ứng yêu cầu ban đầu Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 19 Thực trạng dự án CNTT VN • Nhỏ lẻ, manh mún, thiếu thiết kế tổng thể – Các phần mềm quan khơng giao tiếp với • Chất lượng thấp – Khơng đủ chức năng, khó sử dụng – Nhiều lỗi –… • Khó/khơng thể nâng cấp/bảo trì Bộ mơn Cơng nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 20 Những khó khăn phát triển PM (1) Khơng có phương pháp mơ tả rõ ràng định nghĩa yêu cầu người dùng (khách hàng), sau bàn giao sản phẩm dễ phát sinh trục trặc (2) Với phần mềm quy mô lớn, tài liệu đặc tả cố định thời gian dài, khó đáp ứng nhu cầu thay đổi người dùng cách kịp thời thời gian (3) Nếu khơng có Phương pháp luận thiết kế quán mà thiết kế theo cách riêng (của công ty, nhóm), dẫn đến suy giảm chất lượng phần mềm (do phụ thuộc nhiều vào người) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 21 Những khó khăn phát triển PM (2) (4) Nếu khơng có chuẩn làm tài liệu quy trình sản xuất phần mềm, đặc tả không rõ ràng làm giảm chất lượng phần mềm (5) Nếu khơng có giải pháp đảm bảo chất lượng giai đoạn mà kiểm thử giai đoạn cuối phát lỗi, thường bàn giao sản phẩm khơng hạn (6) Nếu coi trọng việc lập trình khâu thiết kế thường dẫn đến làm giảm chất lượng phần mềm (7) Nếu coi thường việc tái sử dụng phần mềm (software reuse), suất lao động giảm Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 22 Những khó khăn phát triển PM (3) (8) Phần lớn quy trình phát triển phần mềm có nhiều thao tác người thực hiện, suất lao động thường bị giảm (9) Khơng chứng minh tính đắn phần mềm, độ tin cậy phần mềm giảm (10) Chuẩn phần mềm tốt đo cách định lượng, đánh giá hệ thống đắn hay khơng (11) Cơng việc bảo trì kéo dài hệ lụy lớn với tổ chức Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 23 Những khó khăn phát triển PM (4) (12) Quản lý dự án lỏng lẻo kéo theo quản lý lịch trình khơng rõ ràng (13) Khơng có tiêu chuẩn để ước lượng nhân lực dự toán làm kéo dài thời hạn vượt kinh phí dự án Đây vấn đề phản ánh khía cạnh khủng hoảng phần mềm, tìm cách nỗ lực vượt qua để tạo phần mềm tốt! Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 24 Chi phí cho Phần cứng Phần mềm % 100 80 - Phần cứng 60 40 20 - Phát triển Phần mềm Bảo trì - 0+ 1955 + 1970 + 1985 Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN + 2000 25 Chi phí cho pha Chi phí phát triển Lập kế hoạch Lập trình Phân tích Thiết kế Lập trình Kiểm thử Bảo trì Kiểm thử 1/3 lập kế hoạch 1/6 lập trình 1/2 Kiểm thử Chi phí phát triển phần tảng băng chìm! Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 26 Chi phí cho pha (2) Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 27 Đạo đức nghề nghiệp • Tính chun nghiệp • Quy tắc đạo đức ứng xử nghề nghiệp • Các vấn đề luật pháp Bộ môn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 28 Tổng kết • • • • • • Khái niệm SE Các yếu tố SE Các giai đoạn phát triển SE Vòng đời phát triển Các thách thức cho phát triển PM Chi phí cho phát triển PM Bộ mơn Công nghệ phần mềm - Khoa CNTT - Trường ĐHCN - ĐHQGHN 29