14/9/2009
1
Chương 1
Tổng quan về công nghệ phần mềm
Nội dung
I.
Các khái niệm
II.
Quy trình xây dựng phần mềm
III.
Nghề nghiệp kỹ sư phần mềm
I. Các khái niệm
1.
Khoa học, kỹ thuật, công nghệ
2.
Phần mềm
a.
Phần mềm tốt
b.
Phần mềm đủ hay thiếu và nguyên
nhân
c.
Tiến hóa của phần mềm
d.
Các loại phần mềm
3.
Công nghệ phần mềm (SE)
Các khái niệm
—Khoa học (science)
—
Kỹ thuật (technology)
—
Công nghệ (engineering)
—
Phần mềm (software)
—
Công nghệ phần mềm (software
engineering)
14/9/2009
2
Phần mềm
—
Software = Computer Program +
associated documentation
—
Loại sản phẩm phần mềm
—
Generic Product: là sản phẩm đóng gói và
bán rộng rãi trên thị trường.
—
Bespoke Product: là sản phẩm được phát
triển theo yêu cầu đặc thù của từng khách
hàng.
Đặc tính của sản phẩm phần mềm tốt
—
Maintainability: phần mềm có thể thay đổi
thuận tiện theo yêu cầu của người dùng
—
Dependability: tính ổn định, bảo mật và an
toàn của phần mềm. Không gây tổn hại về vật
chất hay kinh tế cho hệ thống.
—
Efficiency: Sử dụng hiệu quả tài nguyên của
hệ thống cho công việc
—
Usability: giao diện và phương thức phải phù
hợp với người dùng đồng thời đáp ứng đúng
yêu cầu của người dùng
Phần mềm-đủ hay thiếu
—
Phần mềm được viết ngay từ khi có những máy
tính programable đầu tiên.
—
Được quan tâm và phát triền từ rất sớm
—
Có rất nhiều phần mềm đã được viết
→ Không thiếu phần mềm
—
Thực tế việc sản xuất phần mềm không đáp ứng
kịp yêu cầu của người sử dụng:
—
Không đủ về số lượng
—
Thiếu về chất lượng
—
Không kịp về thời gian
→ Phần mềm không đáp ứng đủ cho người dùng
Nguyên nhân khách quan
—
Số lượng phần mềm phải được hiểu là số
đầu/loại phần mềm được sử dụng cho từng mục
tiêu ứng dụng.
—
Nhu cầu sử dụng phần mềm là rất lớn
— Nhiều ngành nghề cần dùng phần mềm máy tính
— Mỗi ngành nghề cần nhiều loại phần mềm khác
nhau
—
Mội loại phần mềm cần nhiều cấp độ khác
nhau theo trình độ người dùng
14/9/2009
3
Nguyên nhân khách quan
—
Chất lượng phần mềm cũng chưa đáp ứng tốt
hoàn toàn người sử dụng:
—
Tính customize rất cao của sản phẩm phần mềm.
—
Trình độ sử dụng khác nhau và điều kiện hạ tầng
ứng dụng khác nhau
—
Nhu cầu phần mềm thường rất cấp bách
—
Tầm nhìn và chiến lược chưa đầu đủ của người sử
dụng
—
Không có kế hoạch lâu dài
—
Phải thay đổi theo từng đối tượng người dùng
Nguyên nhân chủ quan
—
Tính chuyên nghiệp trong sản xuất phần mềm
chưa cao: Các dữ liệu quan sát được (1979)
—
Theo kiểm toán Mỹ
—
50% vượt ngân sách
—
60% trễ
—
40% không đúng yêu cầu trong đó 22% phải
thiết kế lại toàn bộ và 29% thất bại hoàn toàn
—
Theo thống kê của Tom de Marco (1979)
—
25% hệ phần mềm lớn thất bại
Nguyên nhân chủ quan
—
Theo thống kê của Copets Jones (1991)
—
Trung bình các hệ thông tin quản lý trể 1 năm
—
Vượt ngân sách 100%
Nguyên nhân chủ quan
—
Lý do của những hệ quả trên
—
Phát triển phần mềm giống như một nghệ thuật,
chưa được xem như một ngành khoa học
—
Quy trình phát triển phần mềm chưa được thống
nhất
—
Phải viết lại phần mềm mỗi khi có sự thay đổi
về ngôn ngữ, phần cứng hoặc hệ điều hành
—
Chưa đạt được 1 chuẩn cho việc đo lường hiệu
suất và sản phẩm