Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 15: Giai đoạn bảo trì

Nội dung:

? Khái quát chung

? Sự cần thiết của bảo trì

? Những đòi hỏi đối với các nhà lập trình bảo trì

? Quản lý bảo trì

? Bảo trì phần mềm h-ớng đối t-ợng

? So sánh kỹ năng bảo trì và kỹ năng phát triển

? Kiểm thử

? Đánh giá

pdf12 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1895 | Lượt tải: 5download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 15: Giai đoạn bảo trì, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
Huỳnh Xuân Hiệp - CNPM 
178
15 GIAI ĐOạN BảO TRì(MAINTENANCE PHASE)
Nội dung: 
ƒ Khái quát chung 
ƒ Sự cần thiết của bảo trì 
ƒ Những đòi hỏi đối với các nhà lập trình bảo trì 
ƒ Quản lý bảo trì 
ƒ Bảo trì phần mềm h−ớng đối t−ợng 
ƒ So sánh kỹ năng bảo trì và kỹ năng phát triển 
ƒ Kiểm thử 
ƒ Đánh giá 
Huỳnh Xuân Hiệp - CNPM 
179
15.1 Khái quát chung
(overview)
ƒ Giai đoạn bảo trì bắt đầu sau khi khách hàng đã chấp thuận sản phẩm và 
cần có các thay đổi trên sản phẩm 
ƒ Các thể hiện của bảo trì: mã nguồn, tài liệu, h−ớng dẫn sử dụng,... 
ƒ Còn gọi là sự tiến triển (evolution) để chỉ rõ sự phát triển của sản phẩm 
thay vì gọi đó là bảo trì 
Huỳnh Xuân Hiệp - CNPM 
180
15.2 Sự cần thiết của bảo trì
(why maintenance is necessary)
ƒ Hiệu chỉnh (corrective maintenance): khoảng 17.5%; các lỗi đặc tả , thiết 
kế, tài liệu, mã nguồn hay các dạng khác 
VD: Nghiên cứu trên 69 công ty của [Lientz, Swanson và Tompkins] 
ƒ Hoàn thiện (perfective maintenance): khoảng 60.5%; các thay đổi về mã 
lệnh nhằm hoàn thiện hiệu năng của sản phẩm 
VD: Khách hàng yêu cầu thêm một số chức năng hay sửa đổi sản phẩm 
để tăng tốc độ xử lý 
ƒ Thích ứng (adaptive maintenance): khoảng 18%; các thay đổi nhằm tác 
động lại những thay đổi trong môi tr−ờng mà sảnphẩm đang vận hành. 
Khách hàng phải chịu chi phí (external imposed) 
VD: thay đổi trình biên dịch, hệ điều hành hay phần cứng 
Huỳnh Xuân Hiệp - CNPM 
181
ƒ Các dạng khác (other types of maintenance): khoảng 4%; thuộc các dạng 
khác ngoài ba dạng kể trên 
Hình 15.1 Các khoảng thời gian cho mỗi dạng bảo trì 
Huỳnh Xuân Hiệp - CNPM 
182
15.3 Những đòi hỏi đối với các nhà lập trình bảo trì
(what is required of maintenance programmers)
ƒ Hình thành thuật ngữ nhà lập trình bảo trì (maintenance programmer - MP) 
ƒ Đây là khía cạnh khó khăn nhất, nhiều thách thức, của một sản phẩm 
phần mềm vì đụng chạm đến tất cả các giai đoạn trong tiến trình xây dựng 
phần mềm 
ƒ Nghịch lý hiện nay tại các công ty: 
‰ xem nhẹ công tác bảo trì 
‰ giao các công đoạn bảo trì cho các lập trình viên mới 
VD: Xem xét các khả năng xảy ra khi một báo cáo về lỗi sản phẩm không 
làm việc giống nh− trong h−ớng dẫn sử dụng đ−ợc chuyển đến cho một MP; 
các thông tin đ−ợc điền vào theo quan điểm của ng−ời sử dụng. 
Các lý giải có thể có: 
o không có lỗi, do ng−ời sử dụng hiểu không chính xác h−ớng dẫn sử 
dụng hoặc sử dụng sản phẩm không đúng cách 
o h−ớng dẫn sử dụng đ−ợc viết không chính xác 
o lỗi tại mã nguồn 
Huỳnh Xuân Hiệp - CNPM 
183
ƒ MP phải có kỹ năng lần vết (debugging skills) tốt để xác định chính xác vị 
trí lỗi 
ƒ Lỗi hồi qui (regression fault): sửa chữa lỗi có quan tâm đến các lỗi khác 
trong sản phẩm 
ƒ Chuẩn bị tài liệu chi tiết cho toàn bộ sản phẩm cũng nh− cho từng mô-đun 
riêng biệt sau khi sửa chữa xong 
ƒ Đ−ợc xem nh− là dịch vụ hậu mãi (after-sales service), giữ khách hàng 
bằng cách cung cấp những dịch vụ bảo trì tốt nhất 
ƒ Là chuẩn mực cho sự thành công của công ty phần mềm 
Huỳnh Xuân Hiệp - CNPM 
184
15.4 Quản lý bảo trì
(management of maintenance)
ƒ Xây dựng cơ chế cho phép có những thay đổi trên sản phẩm khi bảo trì 
ƒ Lãnh đạo nhóm SQA và lãnh đạo nhóm phát triển phần mềm phải độc lập 
với nhau 
ƒ Các báo cáo lỗi (fault reports) 
‰ 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 
ƒ ủy quyền thay đổi trên sản phẩm (authorizing changes to the product) 
‰ xác định lỗi, thay đổi mã nguồn, cố định mã nguồn 
‰ kiểm thử qui hồi (regression testing) trên toàn bộ sản phẩm 
‰ cập nhật các tài liệu để phản ánh các thay đổi 
‰ có thể cập nhật tài liệu về đặc tả cũng nh− thiết kế 
‰ tạo phiên bản mới 
‰ chuyển đến nhóm SQA để xác nhận lại (nh−ng không đ−ợc can thiệp 
vào công việc của các lập trình viên) 
Huỳnh Xuân Hiệp - CNPM 
185
ƒ Bảo đảm công tác bảo trì (ensuring maintainability) 
‰ việc bảo trì phải đ−ợc thực hiện nhiều lần 
‰ tạo nhiều phiên bản 
‰ có kế hoạch bảo trì trong suốt tiến trình phần mềm 
‰ ghi nhận cẩn thận các thông tin kỹ thuật 
‰ tài liệu phải đ−ợ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 
ƒ Vấn đề về sự lặp lại công tác bảo trì (problem of repeated maintenance) 
‰ khách hàng th−ờng xuyên thay đổi các yêu cầu 
‰ nên đ−a ra mô hình làm việc, khi có thay đổi thì khách hàng sẽ phải trả 
thêm chi phí phát triển 
Huỳnh Xuân Hiệp - CNPM 
186
15.5 Bảo trì phần mềm h−ớng đối t−ợng
(maintenance of object-oriented software)
ƒ Dễ dàng bảo trì các đối t−ợng 
‰ do các khái niệm độc lập nên dễ dàng xác định vị trí nhằm hiệu chỉnh 
hay nâng cao 
‰ các thay đổi chỉ tác dụng bên trong đối t−ợng nên giảm thiểu các lỗi 
hồi qui 
ƒ Khó khăn: 
‰ MP phải nghiên cứu toàn bộ các cây thừa kế 
‰ khi cài đặt trên ngôn ngữ lập trình h−ớng đối t−ợng: vấn đề đa hình và 
động 
‰ khi lần vết các thừa kế liên tục nhau khi có một lớp nào đó có một số 
thay đổi 
Huỳnh Xuân Hiệp - CNPM 
187
15.6 So sánh kỹ năng bảo trì và kỹ năng phát triển
(maintenance skills versus development skills)
Khả năng Kỹ năng bảo trì Kỹ năng phát triển 
Xác định nguyên nhân gây ra lỗi Hiệu chỉnh Kiểm thử tích hợp và kiểm thử 
phát triển 
Thực hiện hiệu quả các chức 
năng mà không có tài liệu thích 
hợp 
Hoàn thiện, thích ứng Đặc tả, thiết kế, cài đặt và tích 
hợp, kiểm thử 
Nắm vững các vấn đề liên quan 
trên các giai đoạn 
Đòi hỏi nh− nhau 
Huỳnh Xuân Hiệp - CNPM 
188
15.7 Kiểm thử giai đoạn bảo trì
(testing during the maintenance phase)
ƒ Khó khăn khi phải nắm vững toàn bộ sản phẩm 
ƒ Cách tiến hành: 
‰ sử dụng các tình huống kiểm thử (test cases) để đảm bảo sản phẩm 
vẫn còn vận hành tốt sau khi đã có 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 qui 
Huỳnh Xuân Hiệp - CNPM 
189
15.8 Đánh giá giai đoạn bảo trì
(metrics for the maintenance phase)
ƒ Sử dụng cách đánh giá cho các giai đoạn liên quan nh− trong quá trình 
phát triển 
ƒ 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 
VD: 13 báo cáo lỗi nghiêm trọng đã đ−ợc xử lý, 
 03 báo cáo lỗi nghiêm trọng ch−a đ−ợc xử lý. 

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 15 Giai đoạn bảo trì.pdf
Tài liệu liên quan