Xem mẫu
- TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM
MÔN HỌC
CÔNG NGHỆ PHẦN MỀM
Chương 1
Tổng quan
CNPM/NN 1
- Nội dung
1. Phần mềm
2. Công nghệ Phần mềm.
3. Những thách thức trong Công nghệ phần mềm.
4. Một số thuật ngữ công nghệ phần mềm.
5. Nghề nghiệp.
6. Các nhận thức sai lầm.
CNPM/NN 2
- 1. Phần mềm (Software)?
Sản phẩm phần mềm là những chương trình điều khiển máy
tính để thực hiện các chức năng hữu ích, nó thường bao gồm
các tài liệu hướng dẫn.
Trong sản xuất phần mềm, các tài liệu đi theo với phần mềm
là hết sức cần thiết. Các tài liệu đó là: tài liệu phân tích, tài liệu
về kiến trúc phần mềm, các dữ liệu kiểm thử (testing), các tài
liệu về các thành phần sử dụng lại, tài liệu theo dõi các phiên
bản…
Ngoài việc cung cấp phần mềm, đơn vị sản xuất thường kèm
theo các công việc như: cài đặt, bảo trì, nâng cấp, huấn
luyện…
CNPM/NN 3
- Phần mềm dùng làm gì?
Phần mềm là một sản phẩm
Dùng cho tính toán
Tạo, quản lý, thu nhận, biến đổi, thể hiện hay là truyền thông tin
Phần mềm là một phương tiện tạo sản phẩm
Hỗ trợ hay cung cấp trực tiếp các chức năng cho hệ thống
Điều khiển những chương trình khác (HĐH)
Thực hiện truyền thông (PM Mạng)
Giúp cho việc tạo các chương trình khác (Tool, Framework)
CNPM/NN 4
- Phần mềm gồm những gì?
Phần mềm là tập hợp những mục hay là đối
tượng mà hình thành một cấu hình bao gồm:
• Chương trình
• Tài liệu
• Dữ liệu…
CNPM/NN 5
- Phần mềm gồm những gì?
source documents
codes reports
manuals
object plans
codes
data
test suites test results
prototypes
CNPM/NN 6
- Đặc điểm của phần mềm?
Phần mềm phải được tạo bằng cách phát triển
(develop or engineer) chứ không phải đơn thuần
là sản xuất (manufacture)
Phần mềm không hao mòn
Phần mềm thì phức tạp, chi phí cho những thay
đổi (change) ở những giai đoạn sau rất cao
Hầu hết phần mềm vẫn phải xây dựng bằng
cách tùy biến
CNPM/NN 7
- Lỗi theo thời gian
CNPM/NN 8
- Bản chất của phần mềm)...
Phần mềm
Phần mềm không sờ thấy được.
Phần mềm dễ dàng nhân bản.
Phần mềm khó đánh giá về chất lượng.
Phần mềm dễ dàng thay đổi.
Phần mềm không hao mòn.
Nhận xét
Nhiều phần mềm thiết kế nghèo nàn đang gây lỗi.
Nhu cầu phần mềm không ngừng gia tăng.
Chúng ta đang ở trong tình trạng khủng hoảng khôngngừng
(‘SW crisis’)
Chúng ta phải học để phát triển phần mềm(nhận xét)
CNPM/NN 9
- Hai loại sản phẩm phần mềm
Các sản phẩm phần mềm được chia thành 2 nhóm:
Sản phẩm đại trà (Generic Product)
Sản phẩm theo đơn đặt hàng (Bespoke Product hoặc
Customised Product)
Một phần mềm mới có thể được tạo ra bằng cách phát
triển các chương trình mới, thay đổi và điều chỉnh các hệ
thống phần mềm đại trà hoặc tái sử dụng lại các phần
mềm đã tồn tại…
CNPM/NN 10
- Những loại phần mềm
Phần mềm hệ thống
Phần mềm ứng dụng
Phần mềm khoa học kỹ thuật
Phần mềm nhúng
Phần mềm máy tính cá nhân
Ứng dụng Web
Phần mềm AI (Artificial Intelligence)…
CNPM/NN 11
- 1.12
CNPM/NN 12
- 2. Công nghệ phần mềm?
Công nghệ phần mềm là sự thiết lập và sử dụng những
nguyên lý công nghệ đúng đắn nhằm đạt được phần mềm có
tính kinh tế tức là phần mềm có tính tin cậy và làm việc hiệu
quả trên những máy móc thực
Công Nghệ Phần Mềm (software engineering): là sự áp dụng
những phương pháp có tính hệ thống, có kỷ luật và có thể
định lượng được nhằm phát triển, vận hành và bảo trì phần
mềm, tức là áp dụng những kiến thức công nghệ vào phần
mềm (theo IEEE)
CNPM/NN 13
- Công nghệ phần mềm?
Kỹ sư
Phần mềm
Phát triển
sản phẩm phần mềm
Công nghệ phần mềm
Nguyên tắc công nghệ:
1. Tập trung vào vào việc phát triển hệ thống phần mềm chất
lượng cao với chi phí hiệu quả
2. Tập trung vào tất cả các khía cạnh của sản phẩm phần mềm
• Từ: Đặc tả
• Tới: Phát hành và sử dụng
14
- Tại sao phải kỹ nghệ phần mềm?
Nền kinh tế của tất cả các quốc gia phát triển phụ thuộc
vào phần mềm
Ngày càng nhiều hệ thống được phần mềm điều khiển
Chi tiêu cho phần mềm chiếm tỷ lệ đáng kể trong
những quốc gia phát triển
CNPM/NN 15
- Công nghệ học trong CNPM ?
Như các ngành công nghệ học khác, CNPM cũng lấy các
phương pháp khoa học làm cơ sở
Các kỹ thuật về thiết kế, chế tạo, kiểm thử và bảo trì phần
mềm đã được hệ thống hóa thành phương pháp luận và hình
thành nên CNPM
Toàn bộ qui trình phát triển phần mềm gắn liền với khái niệm
chu kỳ sống phát triểncủa phần mềm (Software development Life
Cycle)
CNPM/NN 16
- 3. Những thách thức đối với CNPM
Cứ 6 đề án triển khai thì có 2 bị huỷ bỏ
Trung bình thời gian thực hiện thực tế bị kéo dài 50% (cá biệt
200-300%)
Các đề án lớn dễ thất bại
3/4 các hệ thống lớn có lỗi khi thực thi
Quá trình phân tích yêu cầu (5% công sức): để lại 55% lỗi, có
18% phát hiện được
Quá trình thiết kế (25% công sức): để lại 30% lỗi, có 10% phát
hiện được
Quá trình mã hoá, kiểm tra và bảo trì: để lại 15% lỗi, có 72%
phát hiện được
CNPM/NN 17
- The Standish Group
- Những thách thức đối với CNPM
Nguyên nhâ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
Quá trình phát triển phần mềm chưa được thống nhất
Phải viết lại s/w mỗi khi có sự thay đổi về ngôn ngữ, h/w hoặc
o/s
Chưa đạt được 1 chuẩn cho việc đo lường hiệu suất và sản
phẩm
Độ phức tạp của phần mềm quá cao đối với 1 “kiến trúc sư”
Kỹ thuật đặc tả để lại sự nhập nhằng trong các yêu cầu phần
mềm
Làm việc nhóm không đúng kỷ luật gây ra các lỗi
CNPM/NN 19
- Các rắc rối về phần mềm?
Vấn đề thời gian.
Vấn đề chi phí.
Vấn đề phát hiện lỗi trước khi chuyển giao.
Vấn đề đo lường.
CNPM/NN 20
nguon tai.lieu . vn