Bài giảng Bảo trì phần mềm - Phần 1: Giới thiệu tổng quan về bảo trì phần mềm cung cấp cho người học các kiến thức: Giới thiệu, Framework (khung làm việc) của bảo trì phần mềm. Mời các bạn cùng tham khảo nội dung chi tiết.
Trang 1BẢO TRÌ PHẦN MỀM
(BTPM)
PHẦN I –
GIỚI THIỆU TỔNG QUAN VỀ
BẢO TRÌ PHẦN MỀM
Nội dung
Giới thiệu
Framework (khung làm việc) của BTPM
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
3
Nội dung
Giới thiệu
Một số thuật ngữ cơ bản
So sánh giữa hoạt động bảo trì và hoạt động phát triển
mới
Sự cần thiết của bảo trì phần mềm
Các loại thay đổi phần mềm
Các loại bảo trì phần mềm
4
Một số thuật ngữ cơ bản
Phần mềm (Software)
Phần mềm bao gồm:
Mã nguồn và mã đối tượng;
Tài liệu như phân tích yêu cầu, đặc tả, thiết kế;
Các thủ tục được sử dụng để thiết lập và điều hành hệ thống phần mềm
Trang 2Một số thuật ngữ cơ bản
Phần mềm
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
6
Một số thuật ngữ cơ bản
Sự tiến hóa của phần mềm (Software Evolution)là quá trình thay đổi liên tục từ một trạng thái thấp hơn, đơn giản hơn hay tệ hơn sang một trạng thái cao hơn, phức tạp hơn hay tốt hơn
Các luật về sự tiến hóa
Luật thay đổi liên tục
Luật phức tạp gia tăng
Luật tự điều chỉnh
Luật bảo toàn sự ổn định tổ chức
Luật bảo toàn tính quen thuộc
Luật phát triển liên tục
Luật chất lượng suy thoái
Luật các hệ thống thông tin phản hồi
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
7
Một số thuật ngữ cơ bản
Bảo trì (Maintenance) là hoạt động giữ cho một
thực thể ở trạng thái hiện tại được chỉnh sửa, hiệu
quả, và hợp lệ; giữ cho nó không bị sai hay suy
thoái.
8
Một số thuật ngữ cơ bản
Bảo trì phần mềm (Software Maintenace)
[IEEE 1219] Bảo trì phần mềm là sự sửa đổi một sản phẩm phần mềm sau khi phát hành nhằm hiệu chỉnh lỗi, cải thiện sự thực thi hay các đặc tính khác, hay làm cho sản phẩm thích ứng với môi trường bị thay đổi
[ISO/IEC 12207] Bảo trì phần mềm là sản phẩm phần mềm phải trải qua sự sửa đổi về mã lệnh và các tài liệu liên quan do có vấn đề hay có nhu cầu cải tiến Mục đích là sửa đổi sản phẩm phần mềm hiện có mà vẫn giữ được tính toàn vẹn của nó
Trang 3Một số thuật ngữ cơ bản
Bảo trì phần mềm (Software Maintenace)
[ISO/IEC/IEEE 14764] bảo trì phần mềm là toàn
bộ các hoạt động được cần để cung cấp sự hỗ trợ
hiệu quả về chi phí cho phần mềm Các hoạt động
bảo trì được thực hiện trong suốt giai đoạn tiền
phát hành phần mềm cũng như trong suốt giai
đoạn sau phát hành, khi sản phẩm đã được đưa
vào vận hành
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
10
Một số thuật ngữ cơ bản
Một số ký hiệu viết tắt
IEEE: The Institute of Electrical and Electronics Engineers
ISO: The International Organization for Standardization
IEC: The International Electrotechnical Commission
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
11
So sánh giữa các hoạt động bảo trì
và phát triển mới
Bảo trì được xem như sự tiếp tục của phát triển mới
Phân tích yêu cầu & Định nghĩa Thiết kế
Cài đặt
Kiểm thử
Bảo trì Triển khai
12
So sánh giữa các hoạt động bảo trì
và phát triển mới
Phát triển mới , với các ràng buộc xác định, được thực hiện từ đầu trong khi Bảo trì phải thực hiện với các thông số và ràng buộc của hệ thống hiện có.
Phát triển phần mềm đòi hỏi phải nhìn lại một
cách có kiểm soát và cẩn thận trong khi Bảo trì
không những nhìn lại sản phẩm phát triển mà còn
nhìn tới.
Trang 4So sánh giữa các hoạt động bảo trì
và phát triển mới
So sánh chi phí giữa bảo trì và phát triển mới
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
14
Sự cần thiết của BTPM
Bảo trì phần mềm được cần đến vì :
Cung cấp tính liên tục của dịch vụ
Hỗ trợ các nâng cấp bắt buộc
Hỗ trợ các yêu cầu cải tiến của người sử dụng
Làm thuận tiện công việc bảo trì tương lai
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
15
Các loại thay đổi PM
Thay đổi hiệu chỉnh (Corrective Change)
Là sự thay đổi được bắt nguồn từ những nhược điểm
trong phần mềm
Một nhược điểm có thể là kết quả của các lỗi thiết kế,
lỗi luận lý và lỗi lập trình Tất cả những lỗi này, đôi
khi còn được gọi là các lỗi “còn dư” (residual) hay bug
16
Các loại thay đổi PM
Thay đổi thích ứng (Adaptive Change)
Là sự thay đổi được phát sinh từ nhu cầu phù hợp với các thay đổi trong môi trường của hệ thống phần mềm
Môi trường trong ngữ cảnh này nói đến toàn bộ các điều kiện và các ảnh hưởng từ bên ngoài tác động vào
hệ thống Một thay đổi của toàn bộ hay một phần của môi trường này đảm bảo là có sự sửa đổi tương ứng của phần mềm
Trang 5Các loại thay đổi PM
Thay đổi hoàn thiện (Perfective Change)
Là sự thay đổi được thực hiện để mở rộng những yêu
cầu hiện tại của hệ thống
Sự mở rộng các yêu cầu có thể ở dạng như: cải tiến
chức năng của hệ thống hiện hành hay cải thiện hiệu
quả tính toán
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
18
Các loại thay đổi PM
Thay đổi dự phòng (Preventive Change)
Là sự thay đổi được thực hiện để ngăn ngừa sự làm việc sai chức năng hay cải thiện tính có thể bảo trì của phần mềm
Thường được đề nghị bởi tổ chức bảo trì với mục đích làm cho chương trình dễ hiểu hơn và vì thế làm cho việc bảo trì trong tương lai dễ dàng hơn
Thường không dẫn đến sự thay đổi đáng kể về chức năng
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
19
Các loại thay đổi PM
Quan hệ tiềm ẩn giữa các loại thay đổi phần mềm
20
Các loại thay đổi phần mềm
Các yếu tố cản trở sự thay đổi phần mềm
Thiếu tài nguyên
Chất lượng của hệ thống hiện hành
Chiến lược của tổ chức
Sự trì trệ (sức ì) của người sử dụng
Thu hút và giữ được nhân viên (bảo trì) có năng lực
Trang 6Các loại BTPM
Các loại BTPM
Bảo trì hiệu chỉnh
Bảo trì thích ứng
Bảo trì hoàn thiện
Bảo trì dự phòng
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
22
Các loại BTPM
Bảo trì hiệu chỉnh (Corrective Maintenance)
Xác định và giải quyết các vấn đề về lỗi
Công việc của bảo trì viên:
Tìm các nguyên nhân gây ra lỗi
Thực hiện chỉnh sửa hay thay đổi (các: yêu cầu, thiết kế, chương trình, công cụ kiểm thử, và tài liệu) khi cần Các bước thực hiện:
Sửa chữa ban đầu (tạm thời)
Hiệu chỉnh các vấn đề tổng quát hơn (tầm xa)
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
23
Các loại BTPM
Bảo trì thích ứng (Adaptive Maintenance)
Sự thay đổi được thực hiện để đáp ứng những thay đổi
trong môi trường
24
Các loại BTPM
Bảo trì hoàn thiện (Perfective Maintenance)
Bảo trì hoàn thiện đòi hỏi phải thực hiện những thay đổi để cải tiến một mặt nào đó của hệ thống nhằm đáp ứng các yêu cầu của người sử dụng, những thay đổi không bắt nguồn từ các lỗi
Trang 7Các loại BTPM
Bảo trì dự phòng (Preventive Maintenance)
Bảo trì dự phòng đòi hỏi phải thay đổi một mặt nào đó
của hệ thống để ngăn ngừa những thất bại trước khi
chúng xảy ra
Bảo trì dự phòng thường do lập trình viên hay người
phân tích chương trình tìm thấy lỗi thực sự hay tiềm ẩn
mà lỗi này vẫn chưa gây ra sự thất bại cho hệ thống và
thực hiện các hành động để hiệu chỉnh lỗi trước khi sự
phá hủy bị xảy ra
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
26
Các loại BTPM
Công sức bảo trì
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
27
Các loại BTPM
Lưu ý:
Nhiều bảo trì viên xem:
Bảo trì dự phòng là bảo trì hiệu chỉnh
Bảo trì thích ứng và bảo trì hoàn thiện là bảo trì cải
tiến
28
Nội dung
Framework của BTPM
Một số thuật ngữ
Các thành phần trong framework của bảo trì phần mềm
Mối quan hệ giữa các yếu tố bảo trì
Trang 8Định nghĩa
Framework
Một tập hợp các khái niệm, các điều kiện, các giả thiết để xác
định cách thức một việc nào đó sẽ được tiếp cận, được hiểu
Framework của bảo trì phần mềm
Ngữ cảnh và môi trường mà trong đó các hoạt động bảo trì phần
mềm được thực hiện
Nhân sự bảo trì (Maintenance Personnel)
Các cá nhân liên quan đến việc bảo trì một sản phẩm phần mềm
Quy trình bảo trì (Maintenance Process)
Bất cứ hoạt động nào được thực hiện hay được cần đến hoặc bởi
máy móc hoặc bởi nhân sự bảo trì trong suốt sự bảo trì phần
mềm
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
30
Định nghĩa
Môi trường (Environment)
Toàn bộ các ảnh hưởng và các điều kiện từ bên ngoài tác động lên thực thể
Yếu tố môi trường (Environmetal Factor)
Một tác tử từ bên ngoài tác động lên thực thể và ảnh hưởng đến hình dáng hay sự hoạt động của nó
Môi trường điều hành (Operating Environment)
Tất cả các hệ thống phần cứng và phần mềm tác động đến hay hoạt động theo sản phầm phần mềm bằng bất cứ cách nào
Môi trường tổ chức (Organizational Environment)
Tất cả các yếu tố môi trường không liên quan đến phần cứng và phần mềm
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
31
Các thành phần
Framework của bảo trì phần mềm
32
Các thành phần
Người dùng và các yêu cầu của họ
Người dùng là các cá nhân sử dụng hệ thống
Các yêu cầu của người dùng gồm hiệu chỉnh lỗi, thêm chức năng cho hệ thống, cải thiện tính có thể bảo trì, cung cấp các hỗ trợ không liên quan đến chương trình
Trang 9Các thành phần
Môi trường
Về cơ bản, môi trường ảnh hưởng đến hệ thống
phần mềm là môi trường điều hành và môi trường
tổ chức
Những yếu tố môi trường điển hình là các: quy tắc
nghiệp vụ, quy định của chính phủ, mô hình sản
phẩm và nền tảng điều hành phần cứng và phần
mềm
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
34
Các thành phần
Môi trường điều hành
Những yếu tố trong môi trường điều hành: những đổi mới về hệ nền phần cứng và phần mềm
Đổi mới phần cứng: phần cứng mà hệ thống phần mềm chạy trên đó có thể thay đổi trong thời gian tồn tại của phần mềm Một thay đổi như vậy có khuynh hướng ảnh hưởng tới phần mềm theo một số cách
Đổi mới phần mềm : những thay đổi trong phần mềm chủ có thể dẫn đến sự sửa đổi tương ứng trong sản
phẩm phần mềm
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
35
Các thành phần
Môi trường tổ chức
Các yếu tố của môi trường tổ chức: chính sách và các hệ số
(được áp đặt) của thuế và thương mại, sự cạnh tranh thị
trường, …
Thay đổi chính sách: một thay đổi trong quy tắc nghiệp vụ
hay trong chính sách cụ thể dẫn tới sự sửa đổi tương ứng
của các chương trình bị ảnh hưởng
Cạnh tranh thị trường: các tổ chức tạo ra các sản phẩm
phần mềm tương tự nhau thường ở trong tình trạng cạnh
tranh => họ thực hiện các sửa đổi quan trọng để duy trì mức
độ hài lòng của khách hàng hoặc cải tiến thành phần mà
khách hàng hiện có
36
Các thành phần
Quy trình bảo trì
Những yếu tố quan trọng của quy trình bảo trì:
Sự nắm bắt các yêu cầu thay đổi: là một tiến trình tìm ra chính xác những thay đổi nào được yêu cầu
Lưu ý: lỗ hổng thông tin
Sự khác nhau trong thói quen lập trình: chỉ sự khác nhau trong cách tiếp cận được sử dụng để viết và bảo trì chương trình
Lưu ý: sự nhất quán (quy định chung) trong lập trình
Trang 10Các thành phần
Sự thay đổi mô thức: nói đến sự thay đổi cách thức mà
ta phát triển và bảo trì phần mềm
Lưu ý: Vẫn còn tồn tại một số lượng lớn các hệ
thống được phát triển bằng cách:
Sử dụng các công cụ phần mềm không tương
xứng
Được viết bằng những ngôn ngữ lập trình mức
thấp
Dùng các kỹ thuật lập trình cũ
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
38
Các thành phần
Những hệ thống trong phần lưu ý thừa hưởng một số đặc điểm:
Không đủ để giao tiếp với các điểm đặc trưng cốt yếu như cấu trúc chương trình, trừu tượng hóa dữ liệu và trừu tượng hóa chức năng
Không làm rõ cấu trúc chương trình, các giao diện chương trình, kiểu và các cấu trúc dữ liệu, và các chức năng của hệ thống
Không còn là vấn đề (những ràng buộc ảnh hưởng đến thiết kế của hệ thống) phải quan tâm hiện nay
Khó hiểu vì mã lệnh đôi khi được viết bằng các cấu trúc theo chuẩn hoặc không theo chuẩn
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
39
Phát hiện và chỉnh sửa lỗi
Phần mềm “không lỗi” là không tồn tại
Lưu ý: lỗi dư
Các sản phẩm phần mềm có các lỗi “dư”
Những lỗi này rất khó phát hiện ngay cả khi với các kỹ
thuật và công cụ kiểm thử mạnh nhất
Các lỗi “dư” được phát hiện trong vòng đời của sản
phẩm phần mềm càng trễ, chi phí để hiệu chỉnh chúng
càng cao
Các thành phần
40
Các thành phần
Chi phí sửa lỗi tại các giai đoạn
Trang 11Các thành phần
Sản phẩm phần mềm
Những khía cạnh của một sản phẩm phần mềm
gây khó khăn cho hoạt động bảo trì:
Tính trưởng thành và tính khó của phạm vi ứng dụng
Chất lượng của các tài liệu
Tính “dễ uốn” của chương trình
Chất lượng kế thừa
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
42
Các thành phần
Nhân sự bảo trì
Các yếu tố nhân sự ảnh hưởng đến hoạt động bảo trì:
Tốc độ thay thế nhân viên
Sự thành thạo về lĩnh vực
Thực tiễn làm việc
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
43
Mối quan hệ giữa các yếu tố bảo trì
Ba loại quan hệ và tương tác được xác định:
Sản phẩm/môi trường
Sản phẩm/người dùng
Sản phẩm/nhân sự bảo trì
Mối quan hệ giữa các yếu tố bảo trì
Mối quan hệ giữa các yếu tố bảo trì
44
Trang 12Mối quan hệ giữa các yếu tố bảo trì
Quan hệ giữa sản phẩm và môi trường
Một sản phẩm phần mềm không tồn tại cô lập
Sản phẩm phần mềm có thể được xem như một
thực thể được “làm chủ” bởi môi trường điều hành
và môi trường tổ chức của nó
Sản phẩm phần mềm kế thừa các thay đổi trong các
thành phần của các môi trường đó
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
46
Mối quan hệ giữa các yếu tố bảo trì
Quan hệ giữa sản phẩm và người dùng
Một trong các mục tiêu của sản phẩm phần mềm là phục vụ các nhu cầu của người sử dụng
Nhu cầu của người dùng thay đổi theo thời gian
Để một hệ thống vẫn hữu ích và có thể chấp nhận được, nó phải thay đổi để phù hợp với các yêu cầu đang thay đổi này
Bộ môn CNPM, Khoa CNTT&TT, ĐH Cần Thơ
47
Mối quan hệ giữa các yếu tố bảo trì
Sự tương tác giữa nhân sự bảo trì và sản phẩm
Nhân sự bảo trì là những người thực hiện các thay đổi
Các thay đổi trong yêu cầu người dùng, quy trình bảo
trì hay môi trường hoạt động và tổ chức sẽ dẫn đến nhu
cầu thay đổi trong sản phẩm phần mềm
Sản phẩm phần mềm sẽ không bị ảnh hưởng cho tới
khi nhân sự bảo trì thực hiện các thay đổi
Quy trình bảo trì được sử dụng và tính cách của nhân
sự bảo trì sẽ ảnh hưởng đến chất lượng sản phẩm
48
HẾT