Professional Documents
Culture Documents
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 1
Khái quát chung
Bảo trì gồm:
Điều chỉnh các lỗi chưa được phát hiện trong các
giai đoạn trước
Nâng cấp tính năng sử dụng và vận hành an toàn
của hệ thống
Chiếm 65% - 75% công sức trong chu kỳ sống
của phần mềm
Nhiệm vụ: Giữ cho phần mềm được cập nhật
khi môi trường thay đổi và yêu cầu người
dùng thay đổi
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 2
Khái quát chung
Chuẩn IEEE (1993):
Sửa đổi phần mềm sau khi đã bàn giao để chỉnh lại
các lỗi phát sinh, cải thiện hiệu năng của phần mềm
hoặc các thuộc tính khác
Làm cho phần mềm thích ứng một môi trường đã bị
thay đổi
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 3
Khái quát chung
Các loại bảo trì:
Sửa lại cho đúng: sửa lỗi/ hỏng hóc phát sinh do
thiết kế, lỗi logic, coding, xử lý dữ liệu, hoạt động,…
Thích ứng: sửa cho phù hợp với môi trường trên
quy tắc kinh doanh, pháp luật, giáo dục,…
Hoàn thiện: đáp ứng yêu cầu mới hoặc thay đổi của
ngưởi dung, nâng cao chức năng hệ thống
Bảo vệ: giúp sau này hệ thống dễ bảo trì hơn
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 4
Khái quát chung
◉ Hiệu chỉnh
Các lỗi đặc tả
Thiết kế
Tài liệu
Mã nguồn
Hay các dạng khác
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 5
Khái quát chung
◉ Hoàn thiện
Thay đổi mã lệnh
=> Hoàn thiện hiệu năng sản phẩm
◉ Thích ứng
Các thay đổi nhằm tác động lại những thay đổi
trong môi trường sản phẩm đang vận hành
◉ Các dạng khác
Ngoài 3 dạng trên
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 6
Khái quát chung
Hiệu chỉnh
18%
Hoàn thiện
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 8
Phạm vi bảo hành, bảo trì
Trong trường hợp yêu cầu bảo hành/bảo trì
bao gồm các yêu cầu phát sinh ngoài dịch vụ
bảo trì (lỗi phát sinh không bắt nguồn từ bản
thân phần mềm), chủ đầu tư phải có trách
nhiệm thanh toán chi phí bổ sung
Chi phí này sẽ được công ty thông báo cho
chủ đầu tư trước khi tiến hành công việc
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 9
Quy trình
Bảo hành chủ động
Rà soát, thu thập thông tin bảo hành. Người có
trách nhiệm của công ty sẽ theo dõi và rà soát
định kỳ hàng tháng các lỗi (nếu có trên hệ
thống), nếu phát hiện lỗi hệ thống hoặc khi công
ty phát hành phiên bản phần mềm mới, công ty
sẽ gửi thông báo bảo hành đển chủ đầu tư
Hai bên phối hợp thời gian và lên phương án xử
lý việc bảo hành
2 bên bàn giao lại hệ thống cho chu đầu tư sau
khi thực hiện xong công việc bảo hành
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 10
Quy trình
Bảo hành bị động
Chủ đầu tư gửi yêu cầu bảo hành đến công ty khi
phát hiện sự cố hoặc lỗi hệ thống
Công ty thu thập thông tin và lên phương án xử
lý trả lời chủ đầu tư trong vòng 24h nếu là yêu
cầu khắc phục sự cố
Công ty tiến hành xử lý hệ thống sau khi được
chủ đầu tư chấp nhận phương án
Công ty bàn giao lại hệ thống cho chủ đầu tư sau
khi thực hiện xong công việc bảo hành.
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 11
Quy trình
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 12
Sự cần thiết của bảo trì
Khắc phục lỗi
Cải thiện thiết kế
Thực hiện các cải tiến
Giao diện với các phần mềm khác
Thích ứng với các loại phần cứng, phần mềm,
tính năng hệ thống… khác nhau có thể được
sử dụng
Tiến hóa phần mềm
Hủy bỏ phần mềm
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 13
Sự cần thiết của bảo trì
Các đặc điêm chính của hoạt động bảo trì:
Duy trì kiểm soát các chức năng của phần mềm
liên tục
Duy trì kiểm soát việc sửa đổi phần mềm
Hoàn thiện các chức năng hiện có
Xác định các mối đe dọa an ninh và sửa chữa
các lỗ hổng an ninh
Ngăn ngừa việc xuống cấp hiệu xuất tới mức
không thể chấp nhận được
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 14
Đòi hỏi với nhà lập trình bảo trì
Hình thành thuật ngữ nhà lập trình bảo trì
Khía cạnh khó khăn, nhiều thách thức
Nghịch lý hiện tại của các công ty
- Xem nhẹ công tác bảo trì
- Giao công tác bảo trì cho lập trình viên mới
Lý giải
- Không có lỗi nhưng người sử dụng không hiểu
hướng dẫn sử dụng, sử dụng sản phẩm không
đúng cách
- Hướng dẫn sử dụng không chính xác
- Lỗi mã nguồn
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 15
Đòi hỏi với nhà lập trình bảo trì
Phải có kỹ năng lần vết
Lỗi hồi quy: quan tâm đến các lỗi khác
Chuẩn bị tài liệu chi tiết cho toàn sản phẩm và
từng mô-đun sau sửa
Dịch vụ hậu mãi
Là chuẩn mực cho sự thành công của công ty
phần mềm
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 16
Chi phí bảo trì
Bảo trì tiêu thụ một phần lớn các nguồn lực
tài chính trong vòng đời phần mềm
Bảo trì tiêu thụ một phần lớn các nguồn lực
tài chính trong vòng đời phần mềm
Một nhận thức chung về bảo trì thường
thấy: bảo trì đơn thuần là sửa lỗi
Tuy nhiên, các nghiên cứu và khảo sát
trong những năm qua đã chỉ ra rằng phần
lới, trên 80%, bảo trì phần mềm được sử
dụng cho các hành động khắc phục
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 17
Chi phí bảo trì
Nhóm các cải tiến và sửa chữa lại với nhau
trong báo cáo quản lý góp phần tạo ra các
quan niệm sai lầm về chi phí cao của việc
sửa chữa
Hiểu biết về các loại bảo trì phần mềm giúp
hiểu được cơ cấu của chi phí bảo trì
Ngoài ra, có kiến thức về các yếu tổ ảnh
hưởng tới bảo trì phần mềm sẽ giúp quản
lý được chi phí
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 18
Chi phí bảo trì
Một số yếu tố môi trường và mối quan hệ
ảnh hưởng tới chi phí bảo trì phần mềm
Môi trường hoạt động liên quan đến phần cứng
và phần mềm
Môi trường tổ chức liên quan đến chính sách,
cạnh tranh, quy trình, sản phẩm và nhân viên
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 19
Các vấn đề chính trong bảo trì
Một số vấn đề quan trọng phải được xử lý
để đảm bảo duy trì hiệu quả phần mềm
Bảo trì phần mềm cung cấp các thách thức
độc lập về kỹ thuật và quản lý cho các kỷ
sư phần mềm
Ví dụ: cố gắng tìm được một lỗi trong phần
mềm có chứa lượng lớn các dòng code của
nhà phát triển
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 20
Các vấn đề chính trong bảo trì
Tương tự như vậy, cạnh tranh với những
nhà phát triển giống như một trận chiến
liên tục
Lập kế hoạch cho một tương lai phát hành
sản phẩm, thường bao gồm code cho tới
khi tạo ra các bản vá lỗi cho phiên bản hiện
tại, cũng tạo ra một thách thức
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 21
Các vấn đề chính trong bảo trì
Vấn đề kỹ thuật
Vấn đề quản lý
Vấn đề ước lượng chi phí
Đo lường
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 22
Quản lý bảo trì
Xây dựng cơ chế cho phép những thay đổi
Lãnh đạo nhóm SQA, lãnh đạo nhóm phát
triển phần mềm độc lập nhau
Các báo cáo lỗi
- Người sử dụng điền các thông tin về lỗi trên
các chức năng
- Đủ thông tin để MP có thể tái tạo lại lỗi
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 23
Quản lý bảo trì
Ủy quyền thay đổi trên sản phẩm
- Xác định lỗi, thay đổi hoặc cố định mã nguồn
- Kiểm thử hồi quy trên toàn sản phẩm
- Cập nhật tài liệu để phản ánh các thay đổi
- Có thể cập nhật tài liệu đặc tả và thiết kế
- Tạo phiên bản mới
- Chuyển đến nhóm SQA để xác nhận lại
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 24
Quản lý bảo trì
Bảo đảm công tác bảo trì
- Việc bảo trì thực hiện nhiều lần
- Tạo nhiều phiên bản
- Có kế hoạch bảo trì suốt tiến trình
- Ghi nhận cẩn thận các thông tin kỹ thuật
- Tài liệu được hoàn tất và hiệu chỉnh chu đáo,
phản ánh chính xác mọi thành phần của phiên
bản hiện hành
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 25
Quản lý bảo trì
Lặp lại công tác bảo trì
- Khách hàng thường xuyên thay đổi yêu cầu
- Đưa ra mô hình làm việc, khi có thay đổi
khách sẽ trả thêm chi phí phát triển
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 26
Bảo trì hướng đối tượng
◉ Dễ dàng
Các khái niệm độc lập
=> dễ xác định vị trí hiệu chỉnh, nâng cao
Thay đổi bên trong đối tượng
=> Giảm lỗi hồi quy
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 27
Bảo trì hướng đối tượng
◉ Khó khăn
Nghiên cứu toàn bộ cây thừa kế
Cài đặt trên NNLT HĐT
=> vấn đề đa hình và động
Lần vết các thừa kế liên tục nhau khi có lớp có
thay đổi
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 28
So sánh kỹ năng bảo trì và
kỹ năng phát triển
Kỹ năng
Khả năng Kỹ năng phát triển
bảo trì
Xác định nguyên Hiệu chỉnh Kiểm thử tích hợp và
nhân gây lỗi kiểm thử phát triển
Thực hiện hiệu quả Hoàn thiện Đặc tả, thiết kế, cài đặt
các chức năng mà thích ứng và tích hợp, kiểm thử
không có tài liệu
thích hợp
Nắm vững các vấn Đòi hỏi như nhau
đề liên quan trên
các giai đoạn
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 29
Kiểm thử giai đoạn bảo trì
Khó khăn khi phải nắm toàn sản phẩm
Cách tiến hành
- Sử dụng các tính huống kiểm thử đế đảm bảo
sản phẩm vận hành tốt sau cập nhật
- Thay đổi một số tình huống kiểm thử
- Lưu trữ toàn bộ các tình huống kiểm thử với
kết quả cần đạt tương ứng
Sử dụng kiểm thử hồi quy
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 30
Đánh giá giai đoạn bảo trì
Sử dụng cách đánh giá các giai đoạn liên quan
Ngoài ra còn có
- Số lượng báo cáo lỗi
- Phân loại lỗi theo độ khó và kiểu lỗi
- Thông tin về trạng thái hiện hành của báo cáo
lỗi
© 2004
Nhập Goodrich,
môn Tamassia
Công Nghệ Phần Mềm 31