1. HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Bài tập lớn môn CNPM
Kĩ thuật bảo trì phần mềm
Giảng viên: Thạc Bình Cường
Môn học : Nhập môn Công nghệ phần mềm
Thời gian: 5 - 2017
2. Giới thiệu về bảo trì phần mềm
Gồm những công việc thực hiện thực hiện hay nâng
cấp phần mềm như là:
• Khắc phục lỗi
• Nâng cấp khả năng
• Cải tiến cho phần mềm
• Tối ưu hóa
Mục tiêu của bảo trì là giữ và phát huy giá trị của
phần mềm qua thời gian.
3. Phân loại bảo trì phần mềm
•Bảo trì để tu sửa
•Bảo trì để thích hợp
•Bảo trì để cải tiên
•Bảo trì để ngăn ngừa
4. Bảo trì để tu sửa
Dùng để khắc phục những điểm khiếm khuyết
trong phần mềm
Tiến hành vì việc kiểm thử không thể phát hiện
hết lỗi
Bảo trì tu sửa tiến hành do nguyên nhân sau:
•Kĩ sư và khách hàng không hiểu ý nhau
•Lỗi phần mềm do code kém, kiểm thử chưa hết
•Thiếu chuẩn hóa phần mềm.
5. Bảo trì để thích hợp
•Do thay đổi môi trường bên ngoài
•Các thế hệ phần cứng mới, hệ điều hành mới
xuất hiện
Phần mềm cần được nâng cấp để tương thích với
những thay đổi
•Ngoài ra còn liên quan đến vấn đề thay đổi pháp
luật
6. Bảo trì để cải tiến
• Khi được sử dụng, đội phát triển sẽ nhận được những
khuyến cáo về khả năng mới, sửa đổi và nâng cao
chức năng.
=> Phải tổ chức bảo trì để cải tiến.
• Các bước thực hiện:
1. Xây dựng lưu đồ phần mềm
2. Suy dẫn ra biểu thức Bun cho từng dãy xử lí
3. Biên dịch bảng chân lý (Đúng/Sai)
4. Tái cấu trúc phần mềm
7. Bảo trì để phòng ngừa
•Tu chỉnh chương trình có tính đến sự mở rộng và
thay đổi trong tương lai của phần mềm
•Người ta luôn tính toán, nên bảo trì phòng ngừa
ít khi thực hiện
•Dựa trên thiết kế không tường minh.
•Sử dụng các công cụ CASE cho kĩ nghệ ngược và
tái kĩ nghệ ngược để tự động hóa.
8. Phương pháp cải tiến bảo trì
Phát triển những kỹ thuật mới cho bảo trì:
•Công cụ phần mềm hỗ trợ bảo trì.
•Cơ sở dữ liệu cho bảo trì.
•Quản lý tài liệu, quản lý dữ liệu, quản lý chương
trình nguồn, quản lý dữ liệu thử, quản lý sử bảo trì.
•Chuẩn hóa mọi khâu trong phát triển phần mềm.
•Người bảo trì chủ chốt tham gia vào giai đoạn phân
tích và thiết kế.
•Thiết kế để dễ bảo trì.
10. Các đặc thù quan trọng
Đặc thù Ý nghĩa
Định nghĩa
hoạt động
Chỉ đến việc áp dụng qui trình của
bước thực hiện
Đầu vào
Chỉ đến thành phần yêu cầu đầu vào
của bước thực hiện
Đầu ra
Chỉ đến thành phần đầu ra của bước
thực hiện
Điều khiển
Chỉ đến thành phần cung cấp khả
năng điều khiển bước thực hiện
Đo lường
Chỉ đến thành phần đo lường trong
khi thực thi bước thực hiện
18. Mô hình bảo trì Quick-fix
• Cách tiếp cận mang tính chữa
cháy
• Chờ đợi lỗi xảy ra rồi sửa nhanh
nhất có thể
• Lỗi sẽ được sửa chữa mà không
cần đến việc phân tích tác động
lâu dài.
• Chỉ thực sự hiệu quả trong môi
trường làm phần mềm một
người duy nhất
19. Mô hình Boehm
• Dựa trên nguyên tắc gắn liền giữa kinh tế và nguyên tắc
• Là chu kì vòng khép kín
20. Mô hình Osborne
•Tạo ra sự hỗ trợ cho mọi
thứ
•Liên quan trực tiếp đến
thực tế bảo trì
•Lặp lại liên tục vòng đời
phần mềm
24. Kĩ nghệ ngược
•Kĩ nghệ Reverse Engineering là quá trình tìm ra
những thông tin ẩn hoặc chưa rõ rang về hệ
thống phần mềm.
•Nó quan trọng vì nhiều phần mềm thiếu tài liệu
và cấu trúc kém
•Mục đích chính là phục hồi thông tin từ đoạn mã
có sẵn để hiểu rõ về phần mềm nhằm nâng cấp
nó
26. Kiểm thử hồi quy
• Kiểm thử hồi quy tập trung vào việc tìm kiếm lỗi sau khi xảy
ra một thay đổi mã chính.
• Phương pháp phổ biến của kiểm thử hồi quy bao gồm chạy
lại những kiểm thử trước đó và kiểm thử xem lỗi cố định
trước đây tại sao lại xuất hiện.
• Độ sâu của kiểm thử phụ thuộc vào các nguy cơ và giai đoạn
trong quá trình phát hành các tính năng bổ sung. Chúng có
thể được hoàn tất khi thay đổi thêm vào đầu hoặc cuối bản
phát hành, cũng có thể được có mức độ nguy hiểm thấp khi
thực hiện kiểm thử tích cực trên mỗi tính năng.
27. Chi phí bảo trì
• Chi phí cho việc bảo trì phần mềm đã tăng dần trong 20 năm qua. Chi
phí vè tài chính luôn là mối quan tâm của chúng ta. Tuy nhiên, có
những chi phí ít thấy lại là mối quan tâm cần được ưu tiên.
• Chi phí cuối cùng cho việc bảo trì phần mềm làm giảm hiệu suất bảo
trì (được đo theo số dòng lệnh (LOC) trên người – tháng hay điểm
chức năng (FP) trên người – tháng), điều thường gặp phải khi bắt đầu
bảo trì chương trình cũ.
• Nỗ lực dành cho việc bảo trì có thể bị phân chia vào các hoạt động
sản xuất ( như phân tích và đánh giá, sửa đổi thiết kế, mã hóa) và các
hoạt động như hiểu mã chương trình làm gì, thử diễn giải cấu trúc dữ
liệu, các đắc trưng giao diện, các biên hiệu năng.
29. Tài liệu trong bảo trì
• Tài liệu người dùng: Là tài liệu bao gồm mô tả về các chức năng của
một hệ thống mà không nói về nguyên lí áp dụng nó.
30. Tài liệu trong bảo trì
• Tài liệu hệ thống: bao gồm những tài liệu liên quan
khía cạnh hệ thống, bao gồm phân tích, kĩ thuật, thiết
kế, thực thi, thử nghiệm, an ninh, chuẩn đoán lỗi, và
phục hồi hệ thống.
• VD: Kế hoạch test hệ thống, từ điển dữ liệu…
31. Tài liệu tham khảo
1) SOFTWARE EVOLUTION AND MAINTENANCE (2015) A Practitioner’s
Approach by PRIYADARSHI TRIPATHY KSHIRASAGAR NAIK by John
Wiley
2) Giáo trình Nhập môn Công nghệ Phần mềm NXB Giáo dục Việt
Nam 2011, tác giả: Thạc Bình Cường
3) Software Maintenance: Concepts and Practice (2003) by Penny
Grubb, Armstrong A. Takang
4) http://swebokwiki.org/Chapter_5:_Software_Maintenance#Evoluti
on_of_Software
5) http://www.worldscientific.com/worldscibooks/10.1142/5318
6) https://ifs.host.cs.st-
andrews.ac.uk/Books/SE9/Web/ExtraChaps/Documentation.pdf