Tải bản đầy đủ (.pdf) (283 trang)

Công nghệ phần mềm

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (779.44 KB, 283 trang )

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,


Object Management Group (www.omg.org), 1999

[3]UML Toolkit, Hans-Erik Eriksson & Magnus Penker, 1998

[4] Object-Oriented Software Engineering, A Use-Case Driven
Approach, I. Jacobson, ACM Press/Addison-Wesley, 1992

[5] Object-Oriented Analysis and Design with Applications, G.
Booch, The Benjamin Cummings Publishing Company, 1994
-Trang 3-
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)
Hình thức đánh giá
 Thi giữa kỳ: trắc nghiệm không sử dụng
tài liệu, chiếm 20 % kết quả cuối cùng
 Thi cuối kỳ: trắc nghiệm không sử dụng
tài liệu, chiếm 80 % kết quả cuối cùng
-Trang 4-
Khoa Công Nghệ Thông Tin - Môn Công Nghệ Phần Mềm
ĐỀ CƯƠNG
Chương 1: Giới thiệu về Công Nghệ Phần Mềm
Chương 2: Phân tích yêu cầu theo phương pháp cổ điển
Chương 3: Các khái niệm cơ bản của mô hình hướng đối tượng
Chương 4: Mô hình nghiệp vụ và thu thập yêu cầu
Chương 5: Phân tích yêu cầu hướng đối tượng
Chương 6: Cơ sở của thiết kế phần mềm và phương pháp thiết kế cổ điển
Chương 7: Thiết kế hướng đối tượng
Chương 8: Hiện thực và triển khai hệ thống
Chương 9: Kỹ thuật kiểm tra phần mềm
Chương 10: Chiến thuật kiểm tra phần mềm

-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

KHỦNG HOẢNG PHẦN MỀM
 Phần mềm được viết ngay từ khi
xuất hiện các hệ máy tính và ngôn
ngữ lậïp trình đầu tiên
 Trên thực tế 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
-Trang 8-
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)
Các dữ liệu quan sát được

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
-Trang 9-

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

ĐỊNH NGHĨA
Đònh nghóa cổ điển (của Fritz Bauer)
Công Nghệ Phần Mềm là sự thiết lập và sử dụng các nguyên tắc
khoa học nhằm mục đích tạo ra các phần mềm một cách kinh tế mà
các phần mềm đó hoạt động hiệu quả và tin cậy trên các máy tính.
-Trang 12-
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
ĐỊNH NGHĨA (t.t)
Đònh nghóa khác:
Công Nghệ Phần Mềm
 Là các quy trình đúng kỷ luật và có đònh lượng được áp dụng
cho sự phát triển, thực thi và bảo trì các hệ thống thiên về phần
mềm
 Tập trung vào quy trình, sự đo lường, sản phẩm, tính đúng
thời gian và chất lượng
-Trang 13-
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
CHU TRÌNH
Chu trình (process) đònh nghóa một bộ khung các tiêu
chuẩn phải được thiết lập để triển khai công nghệ phần
mềm.
-Trang 14-
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
PHƯƠNG PHÁP
Phương pháp (method) chỉ ra cách thực hiện những công
việc cụ thể (“how to”):
 phân tích yêu cầu
 thiết kế
 xây dựng chương trình
 kiểm tra

 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)

Repeatable
(Level 2)
Defined
(Level 3)
Managed
(Level 4)
Optimized
(Level 5)
Risk
Competitiveness
-Trang 18-
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ÁC MÔ HÌNH PHÁT TRIỂN PHẦN MỀM
 Mô hình tuần tự tuyến tính: cổ điển
 Mô hình prototyping: prototype
 Mô hình xoắn ốc: đánh giá rủi ro
 Mô hình tăng dần: các bước lặp
 Mô hình RAD: thời gian phát triển ngắn
-Trang 19-
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 TUẦN TỰ TUYẾN TÍNH
 Mô hình phát triển phần mềm đầu tiên
 Các công việc tiếp nối nhau một cách tuần tự
 Đặt nền móng cho các phương pháp phân tích, thiết kế, kiểm
tra…
System Engineering
Requirement
Analysis
Software
Design

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

hoạt động hiệu quả
Thảo luận với
khách hàng
Xây dựng
prototype
Đánh giá của
khách hàng
-Trang 22-
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 XOẮN ỐC
 Được thực hiện theo một chuỗi lặp kiểu xoắn ốc, mỗi lần lặp cải
thiện sản phẩm
 Có phương pháp đánh giá rủi ro
 Có thể áp dụng prototype
 Mỗi lần lặp được cải thiện cho thích nghi với bản chất của đề án
Đánh giá
rủi ro
Phát triển sản phẩm
ở lần lặp tiếp theo
Hoạch đònh
đề tài
Đònh nghóa
quy trình
R
R
R
-Trang 23-
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
Phân tích yêu cầu

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

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×