Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Những khó khăn của kỹ nghệ phần mềm
Outline
Liệucóvấnđềtrong việc phát triểnPM?
Mộtsốdựán thấtbại
Những con sốthống kê vềcác dựán PM
Khủng hoảng PM
Những khó khăn trong phát triểnPM
Tóm tắt nội dung Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Những khó khăn của kỹ nghệ phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Những khó khăn của Kỹ Nghệ Phần mềm Công Nghệ Phần Mềm Nâng Cao Pham Ngoc Hung, Coltech, VNU, 2009 2 Outline Liệu có vấn đề trong việc phát triển PM? Một số dự án thất bại Những con số thống kê về các dự án PM Khủng hoảng PM Những khó khăn trong phát triển PM Pham Ngoc Hung, Coltech, VNU, 2009 3 Tài liệu tham khảo Bài giảng trên lớp Sommerville, Software Engineering, Addison-Wesley Pressman, Software Engineering, McGraw Hill Advanced SE course (MIT) Pham Ngoc Hung, Coltech, VNU, 2009 4 Một số dự án thất bại AAS (FAA Advanced Automation System) (1989) IBM phát triển (2.3 triệu dòng lệnh bằng Ada) 1994: xây dựng lại từ đầu (vì đặc tả yêu cầu k đúng) FBI CIC IRS Modernization Program C-17: 20M, cuối 80s ->85 (lần thử đầu tiên 7/1990) Gặp nhiều vđề khó về kỹ thuật, quá thời gian và kinh phí Ariane 5 (June 04, 1996) nổ sau khi phóng (40s) Do lỗi PM điều khiển (chuyển 1 số thực 64bit -> số nguyên 16bit) Head of AF Systems Command: ‘‘PM là nhược điểm của việc phát triển vũ khí “ 7/10 chương trình phát triển vũ khí đang đối mặt với các vđề của PM và tỉ lệ này đang tăng lên Pham Ngoc Hung, Coltech, VNU, 2009 5 Những con số biết nói Việc phát triển các ứng dụng > 5000 function points (~500,000 LOC) là một trong những nhiệm vụ rủi ro nhấttrong thế giới hiện đại (Capers Jones) Những rủi ro dẫn đến hủi hoặc đình trệ tăng nhanh cùng với việc tăng của kích thước các ứng dụng (Capers Jones): 65% các HT lớn (>1,000,000 LOC) bị hủi trước khi hoàn thành 50% các HT ước lượng sai kích thước > 1/2 million LOC 25 % các dự án > 100,000 LOC Tỷ lệ thất bại (Failure or cancellation) của các dự án lớn là >20% (Capers Jones) Pham Ngoc Hung, Coltech, VNU, 2009 6 Ví dụ về kích thước dự án Pham Ngoc Hung, Coltech, VNU, 2009 7 Những con số biết nói (cont.) Sau khi khảo sát 8,000 dự án IT, Standish Group cho biết khoảng 30% bị hủi trước khi hoàn thành Trung bình các dự án ở Mỹ bị hủi sau 1 năm tiến hành và tiêu tốn 200% kinh phí dự kiến (Capers Jones). Các dự án bị hủi chiếm khoảng 15% tổng kinh phí PM của Mỹ ($14 billion in 1993 dollars) (Capers Jones). Pham Ngoc Hung, Coltech, VNU, 2009 8 Thống kê của Standish Group (2006) Có tới 50% trong số các dự án phần mềm thất bại Chỉ có 16.2% dự án là hoàn thành đúng hạn và nằm trong giới hạn ngân sách, đáp ứng tất cả tính năng và đặc tính như cam kết ban đầu Có 52.7% dự án được hoàn thành và đi vào hoạt động nhưng không hoàn thành đúng hạn và bội chi, thêm nữa không đáp ứng đầy đủ tính năng và đặc tính như thiết kế ban đầu Và có 31.1% dự án thất bại trước khi được hoàn thành -> hơn 83.8% dự án thất bại hoặc không đáp ứng những yêu cầu ban đầu Pham Ngoc Hung, Coltech, VNU, 2009 9 Những con số biết nói (cont.) 2/3 dự án được hoàn thành vượt quá thời gian và kinh phí dự kiến (Capers Jones) [bad estimates?] 2/3 dự án được hoàn thành là có độ tin cậy và chất lượng thấp trong một năm đầu triển khai (Jones). Tỷ lệ xảy ra lỗi của PM từ 0.5 đến 3.0 /1000 LOC (Bell Labs survey). Civilian software: tối thiểu 100 từ tiếng Anh được sinh ra cho mọi câu lệnh. Military: ~ 400 từ (Capers Jones) Pham Ngoc Hung, Coltech, VNU, 2009 10 Thảo luận Bạn đã từng tham gia một dự án mà nó chưa bao giờ kết thúc hoặc không được sử dụng? Bạn có những ví dụ nào khác về thất bại của các dự án PM? Pham Ngoc Hung, Coltech, VNU, 2009 11 Khủng hoảng phần mềm 10/1968 tại Hội nghị của NATO các chuyên gia phần mềm đưa ra ra thuật ngữ “Khủng hoảng phần mềm” (Software crisis). Qua hàng chục năm, thuật ngữ này vẫn được dùng và ngày càng mang tính cấp bách Khủng hoảng là gì ? [Webster’s Dict.] Điểm ngoặt trong tiến trình của bất kỳ cái gì; thời điểm, giai đoạn hoặc biến cố quyết định hay chủ chốt Điểm ngoặt trong quá trình diễn biến bệnh khi trở nên rõ ràng bệnh nhân sẽ sống hay chết Trong phần mềm: Day dứt kinh niên (chronic affliation, by Prof. Tiechrow, Geneva, Arp. 1989) Pham Ngoc Hung, Coltech, VNU, 2009 12 Tại sao tồn tại khủng hoảng PM? Là sự day dứt kinh niên (kéo dài theo thời gian hoặc thường tái diễn, liên tục không kết thúc) gặp phải trong phát triển phần mềm máy tính, như: Phải làm thế nào với việc giảm chất lượng vì những lỗi tiềm tàng có trong phần mềm ? Phải xử lý ra sao khi bảo dưỡng phần mềm đã có ? Phải giải quyết thế nào khi thiếu kỹ thuật viên phần mềm? Phải chế tác phần mềm ra sao khi có yêu cầu phát triển theo qui cách mới xuất hiện ? Phải xử lý ra sao khi sự cố phần mềm gây ra những vấn đề xã hội? Pham Ngoc Hung, Coltech, VNU, 2009 13 Một số yếu tố ảnh hưởng đến khủng hoảng Phần mềm càng lớn sẽ kéo theo phức tạp hóa và tăng chi phí phát triển Đổi vai trò giá thành SW vs. HW Công sức cho bảo trì càng tăng thì chi phí cho Backlog càng lớn Nhân lực chưa đáp ứng được nhu cầu phần mềm Những phiền hà của phần mềm gây ra những vấn đề xã hội … (?) Pham Ngoc Hung, Coltech, VNU, 2009 14 Những dự án lớn của NASA (National Aeronautics and Space Administration) Pham Ngoc Hung, Coltech, VNU, 2009 15 So sánh chi phí cho Phần cứng và Phần mềm % 100 80 60 40 20 0 - - - - + 1955 + 1970 + 2000 + 1985 Phần cứng Phát triển Bảo trì Phần mềm Pham Ngoc Hung, Coltech, VNU, 2009 16 Chi phí cho các pha Pham Ngoc Hung, Coltech, VNU, 2009 17 Chi phí cho các pha (cont.) Pham Ngoc Hung, Coltech, VNU, 2009 18 Chi phí cho các pha (cont.) Pham Ngoc Hung, Coltech, VNU, 2009 19 Backlog tại Nhật Bản năm 1985 Pham Ngoc Hung, Coltech, VNU, 2009 20 Chi phí cho các pha Pham Ngoc Hung, Coltech, VNU, 2009 21 Software Evolution (Maintenance) Belady and Lehman’s Laws: PM tiếp tục thay đổi với tốc độ nhanh PM sẽ trở nên không có cấu trúc như việc nó bị thay đổi Leveson’s Law: Việc áp dụng CNTT (MTĐT) sẽ không làm giảm nhân sự hay chi phí Pham Ngoc Hung, Coltech, VNU, 2009 22 Liệu đã có những cải thiện? PM đang được cải thiện chậm hơn phần cứng? "Software expands to fill the available memory" (Parkinson) "Software is getting slower more rapidly than hardware becomes faster" (Reiser) Expectations are changing Pham Ngoc Hung, Coltech, VNU, 2009 23 Thảo luận Is software engineering more difficult than hardware engineering? Why or why not? Pham Ngoc Hung, Coltech, VNU, 2009 24 Những khó khăn trong 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 của người dùng (khách hàng), sau khi bàn giao sản phẩm dễ phát sinh những trục trặc (troubles) (2) Với những phần mềm quy mô lớn, tư liệu đặc tả đã cố định thời gian dài, do vậy khó đáp ứng nhu cầu thay đổi của người dùng một cách kịp thời trong thời gian đó Pham Ngoc Hung, Coltech, VNU, 2009 25 Những khó khăn trong phát triển PM (cont.) (3) Nếu không có Phương pháp luận thiết kế nhất quán mà thiết kế theo cách riêng (của công ty, nhóm), thì sẽ dẫn đến suy giảm chất lượng phần mềm (do phụ thuộc quá nhiều vào con người) (4) Nếu không có chuẩn về làm tư liệu quy trình sản xuất phần mềm, thì những đặc tả không rõ ràng sẽ làm giảm chất lượng phần mềm Pham Ngoc Hung, Coltech, VNU, 2009 26 Những khó khăn trong phát triển PM (cont.) (5) Nếu không kiểm thử tính đúng đắn của phần mềm ở từng giai đoạn mà chỉ kiểm ở giai đoạn cuối và phát hiện ra lỗi, thì thường bàn giao sản phẩm không đúng hạn (6) Nếu coi trọng việc lập trình hơn khâu thiết kế thì 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), thì năng suất lao động sẽ giảm Pham Ngoc Hung, Coltech, VNU, 2009 27 Những khó khăn trong phát triển PM (cont.) (8) Phần lớn trong quy trình phát triển phần mềm có nhiều thao tác do con người thực hiện, do vậy năng suất lao động thường bị giảm (9) Không chứng minh được tính đúng đắn của phần mềm, do vậy độ tin cậy của phần mềm sẽ giảm (10) Chuẩn về một phần mềm tốt không thể đo được một cách định lượng, do vậy không thể đánh giá được một hệ thống đúng đắn hay không Pham Ngoc Hung, Coltech, VNU, 2009 28 Những khó khăn trong phát triển PM (cont.) (11) Khi đầu tư nhân lực lớn vào bảo trì sẽ làm giảm hiệu suất lao động của nhân viên (12) Công việc bảo trì kéo dài làm giảm chất lượng của tư liệu và ảnh hưởng xấu đến những việc khác Pham Ngoc Hung, Coltech, VNU, 2009 29 Những khó khăn trong phát triển PM (cont.) (13) Quản lý dự án lỏng lẻo kéo theo quản lý lịch trình cũng không rõ ràng (14) Không có tiêu chuẩn để ước lượng nhân lực và dự toán sẽ làm kéo dài thời hạn và vượt kinh phí của dự án Đây là những vấn đề phản ánh các khía cạnh khủng hoảng phần mềm, hãy tìm cách nỗ lực vượt qua để tạo ra phần mềm tốt! Pham Ngoc Hung, Coltech, VNU, 2009 30 Tổng kết Chúng ta có vấn đề trong việc phát triển PM Một số dự án thất bại Những con số thống kê về các dự án PM Khủng hoảng PM Những khó khăn trong phát triển PM Là động lực cho việc cải tiến qui trình phát triển PM Pham Ngoc Hung, Coltech, VNU, 2009 31 Pham Ngoc Hung, Coltech, VNU, 2009 32 Cách viết tài liệu mô tả bài toán (Proposal) Thông tin nhóm: Danh sách thành viên, nhóm trưởng Tên sản phẩm Mô tả các chức năng mong muốn của sản phẩm Khái quát Chi tiết từng chức năng Yêu cầu về giao diện Yêu cầu phi chức năng Môi trường phát triển Môi trường triển khai Chất lượng Các nhóm trình bày vào buổi sau Tài liệu mô tả + slide
File đính kèm:
- Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Những khó khăn của kỹ nghệ phần mềm.pdf