GIỚI THIỆU VỀ CÔNG NGHỆ PHẦN MỀM
BÀI 1
© 2008 by Vinh Trong Le
2/41
Nội dung
Phần mềm
Công nghệ phần mềm
Tiến trình phần mềm
© 2008 by Vinh Trong Le
3/41
I. Phần mềm (PM)
Các nội dung chính
Phần mềm là gì
Các thành phần của PM
Vai trò của PM
Đặc trưng của PM
Phân loại PM
Tiến hóa và thách thức
© 2008 by Vinh Trong Le
4/41
Phần mềm là gì?
Cấu trúc lưu trữ (Bộ nhớ ngoài)
Tài liệu
Hướng dẫn sử dụng <- người dùng
Tham khảo kỹ thuật <- người bảo trì
Phát triển <- người kỹ thuật
© 2008 by Vinh Trong Le
6/41
Vai trò PM
PM: Linh hồn của các hệ thống máy tính
Nền tảng trong mọi hoạt động của xã hội ngày nay
Sự phụ thuộc của các nền kinh tế
Thu chi từ PM chiếm đáng kể trong GNP; ví dụ: Năm 2006, Ấn độ xuất khẩu
hơn 30 tỷ USD; thế giới có > 7 triệu kỹ sư CNTT và tạo ra 600 tỷ USD/năm;
Thế giới chi phí cho phần mềm trong năm 2000 khoảng 770 tỷ USD.
Phần mềm sai hỏng -> kinh tế sẽ bị tổn thất: Yahoo mất vài chục tỷ đô la
trong những năm qua
Tạo nên sự khác biệt giữa các tổ chức: Phong cách làm việc và năng
suất lao động
Thay đổi theo môi trường: phần cứng
Cần phát triển theo nhóm
Quy mô lớn
Thời gian
© 2008 by Vinh Trong Le
9/41
Phân loại phần mềm
Hai cách phân loại chính:
Theo chức năng thực hiện
Theo lĩnh vực ứng dụng
Phân loại theo chức năng
Phần mềm hệ thống: Hệ điều hành, tiện ích tổ chức tệp…
Phần mềm nghiệp vụ: Trợ giúp các hoạt động nghiệp vụ
Sản phẩm theo đơn đặt hàng: Hệ thống TT quản lý (thư viện, kế toán…)
Sản phẩm dùng chung: Office
Phần mềm công cụ: Trợ giúp các quá trình phát triển phần mềm (ngôn
ngữ lập trình, quản lý dự án …)
Xử lý số và xử lý theo lô (batch)
Ngôn ngữ: Mã máy, hợp ngữ
Tiêu chí đánh giá: Nhanh, kích cỡ của bài toán
GĐ 2: -> giữa 1970s
Sản phẩm đa nhiệm, đa người dùng
Xử lý số, ký tự, theo lô và thời gian thực
© 2008 by Vinh Trong Le
12/41
Sự tiến hóa của PM
Ngôn ngữ có cấu trúc
Tiêu chí đánh giá: Nhanh, kích cỡ bài toán, số lượng người dùng.
GĐ 3: -> 1990
Phần mềm cá nhân, mạng, hệ thống lớn và chia sẻ được
Xử lý số, ký tự, multimedia; theo lô, thời gian thực, phân tán và song song
Ngôn ngữ: bậc cao, hướng đối tượng
Tiêu chí đánh giá: Tiện dụng, tin cậy và dễ bảo trì.
Thống kê:
16% DA đúng lịch, trong ngân sách, sản phẩm chất lượng
31% DA bị dừng
53% DA vượt ngân sách, quá hạn, ít tính năng
Công nghiệp PM: Ngành khổng lồ
Chi phí cho PM: 770 tỷ USD / Năm
Lý do:
Năng lực máy tính tăng nhanh
Thế giới thay đổi nhanh về nghiệp vụ và CN
Ham muốn của người dùng
© 2008 by Vinh Trong Le
15/41
Khó khăn và thách thức (tiếp)
-> cần tiến hóa PM
Công nghệ: Cần có các công nghệ, công cụ hiện đại để phát triển PM
Quản lý: Cần có các phương pháp (CMM-Capability Maturity Model ; CMMI-
Capability Maturity Model Integration )
© 2008 by Vinh Trong Le
16/41
Phương pháp
Công cụ
© 2008 by Vinh Trong Le
18/41
Lịch sử của SE
Bắt đầu (1970s): Các phương pháp lập trình và cấu trúc dữ liệu
Tính modul
Sơ đồ khối và top-down
Lập trình có cấu trúc
Chia chương trình thành các modul
Trừu tượng hóa dữ liệu
Tăng trưởng (nửa đầu 1980s)
Phương pháp phát triển hệ thống: CSDL, phân tích thiết kế hướng cấu trúc
Các bộ công cụ phát triển: Trợ giúp phân tích thiết kế, các ngôn ngữ bậc
cao
Bắt đầu quan tâm đến quản lý: Độ đo phần mềm
© 2008 by Vinh Trong Le
19/41
Định ra các mốc thời gian (milestones) và sản phẩm đưa ra
Phương pháp: Cách làm cụ thể để xây dựng PM; thường mỗi công đoạn có một
phương pháp riêng
Phân tích: xác định, đặc tả yêu cầu
Thiết kế: đặc tả kiến trúc, giao diện, dữ liệu, thủ tục
Lập trình
Kiểm thử
Quản lý dự án
Công cụ: Computer Aided Software Engineering (CASE)
© 2008 by Vinh Trong Le
21/41
Vòng đời phát triển PM
© 2008 by Vinh Trong Le
22/41
Các bước phát triển PM (1)
© 2008 by Vinh Trong Le
23/41
Các bước phát triển PM (2)
Xác định yêu cầu: Hệ thống làm gì, những ràng buộc nó cần tuân thủ
Phân tích hệ thống: Vai trò PM trong hệ thống, phác họa và chọn phương
án khả thi
Thêm mới: Thêm các chức năng mới
© 2008 by Vinh Trong Le
25/41
III. Tiến trình phần mềm
Các nội dung chính
Tiến trình và mô hình tiến trình
Các giai đoạn của tiến trình