Trường Đại Học Bách Khoa Tp. Hồ Chí Minh
Khoa Công Nghệ Thông Tin
Môn học
CÔNG NGHỆ PHẦN MỀM
-Trang 1-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm
GIỚI THIỆU MÔN HỌC
Đặc điểm
Mã số: 501095 Số tín chỉ: 2 Phân phối giờ: 2(2.1.4)
Môn học trước: Toán Tin Học (501302)
Tóm tắt nội dung
Các khái niệm cơ bản của Công Nghệ Phần Mềm: các mô hình phát triển
phần mềm, phân tích yêu cầu, thiết kế, kiểm tra…
2 trường phái chính: có cấu trúc (cổ điển) & hướng đối tượng
Chuẩn UML và việc áp dụng nó trong phương pháp hướng đối tượng
Thực hành tại phòng Lab: làm quen với công cụ Rational Rose
-Trang 2-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm
GIỚI THIỆU MÔN HỌC (t.t)
Tài liệu tham khảo
[1] Software Engineering - A practitioner’s approach, R.S.
Pressman, McGraw-Hill, 1997
[2] OMG Unified Modeling Language Specification, version 1.3,
-Trang 5-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm
Trường Đại Học Bách Khoa Tp. Hồ Chí Minh
Khoa Công Nghệ Thông Tin
Chương 1
GIỚI THIỆU VỀ
CÔNG NGHỆ PHẦN MỀM
✦
✦✦
✦ Một số khái niệm
✦
✦✦
✦ Các mô hình phát triển phần mềm
-Trang 6-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
NỘI DUNG
1.1. Một số khái niệm
1.1.1. Khủng hoảng phần mềm
1.1.2. Đònh nghóa
1.1.3. Chu trình (process), phương pháp (method), công cụ (tool)
1.1.4. Một cách nhìn tổng quan về công nghệ phần mềm
1.1.5. Mô hình CMM
1.2. Các mô hình phát triển phần mềm
1.2.1. Mô hình tuần tự tuyến tính
1.2.2. Mô hình prototype
1.2.3. Mô hình xoắn ốc
1.2.4. Mô hình tăng dần
1.2.3. Mô hình RAD
-Trang 7-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
KHỦNG HOẢNG PHẦN MỀM (t.t)
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
-Trang 10-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
KHỦNG HOẢNG PHẦN MỀM (t.t)
Hướng tới công nghệ sản xuất phần mềm chuyên nghiệp
craft
production
commercialization
science
professional
engineering
-Trang 11-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
sửa lỗi
...
-Trang 15-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
CÔNG CỤ
Công cụ (tool) cung cấp các hỗ trợ tự
động hay bán tự động đối với chu trình và
phương pháp
Các công cụ được tích hợp tạo thành
CASE (Computer Aided Software
Engineering)
-Trang 16-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
MỘT CÁCH NHÌN TỔNG QUAN VỀ CNPM
Gồm 3 giai đoạn lớn
Giai đoạn đònh nghóa: Phân tích hệ thống (system engineering), Hoạch
đònh đề tài (software project management), Phân tích yêu cầu (requirement
analysis).
Giai đoạn phát triển: Thiết kế phần mềm (software design), sinh mã
(code generation), kiểm tra phần mềm (software testing)
Giai đoạn bảo trì: Sửa lỗi (correction), thay đổi môi trường thực thi
(adaptation), tăng cường (enhancement)
-Trang 17-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
MÔ HÌNH CMM
Initial
(Level 1)
Coding
Test Maintenance
-Trang 20-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
Bộc lộ một số khuyết điểm
Bản chất của phát triển phần mềm là quá trình lặp đi lặp lại chứ không
phải tuần tự
Bắt buộc khách hàng đặc tả tất cả yêu cầu một cách chính xác và đầy đủ
ngay từ ban đầu
Khách hàng thường phải chờ đợi rất lâu để thấy được phiên bản đầu tiên
của sản phẩm
Tồn tại “delay” trong nhóm làm việc
MÔ HÌNH TUẦN TỰ TUYẾN TÍNH (t.t)
-Trang 21-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
MÔ HÌNH PROTOTYPING
Prototype như là một cơ chế để
nhận diện chính xác yêu cầu của
khách hàng
Prototype có thể bò “throw-away”
Một số khuyết điểm
Khách hàng hối thúc nhà
phát triển hoàn thành sản phẩm
một khi thấy được các prototype
đầu tiên
Các prototype thường không
1
2
3
Kiểm tra hệ thống
Thiết kế kiến trúc
Phát triển module
Tích hợp
4
-Trang 24-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM
MÔ HÌNH TĂNG DẦN (t.t)
Các bước (iteration) đầu tập trung vào yêu cầu của phần mềm và
thiết lập một kiến trúc ổn đònh cho hệ thống (ít phải thay đổi sau
này)
Các bước sau tập trung vào việc xây dựng sản phẩm để cuối
cùng chuyển sang giai đoạn kiểm tra hệ thống
Mỗi bước hiện thực một phần cụ thể trong toàn bộ yêu cầu của
hệ thống
Quá trình xây dựng và chiến thuật kiểm tra theo kiểu tăng dần
và dựa trên phương pháp kiểm tra hồi quy.
-Trang 25-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm - Chương 1: Giới thiệu về CNPM