Giáo trình Những khó khăn của Kỹ Nghệ Phần mềm
Chúng ta có vấnđềtrong việc phát triển
PM
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
Làđộng lựccho việccảitiến qui trình phát
triểnPM
32 trang |
Chia sẻ: chaien | Lượt xem: 1713 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình 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 DOWNLOAD ở 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
Các file đính kèm theo tài liệu này:
- lec1_1_4349.pdf