software maintenance

Download Report

Transcript software maintenance

Nhóm 24
Nội dung
Software Maintenance là gì ?
 Tại sao chúng ta cần bảo trì phần mềm ?
 Khi nào thì nên thực hiện việc bảo trì ?
 Ai liên quan đến việc bảo trì phần mềm?
 Phương pháp bảo trì phần mềm.
 Tools hỗ trợ.

Software Maintenance là gì ?
Maintenance là giai đoạn cuối cùng của
software life cycle.
 Maintenance nâng cấp các tính năng của
phần mềm, làm cho phần mềm hoạt động
an toàn hơn.


Software Maintenance là sự thay đổi
của một sản phẩm phần mềm nhằm sửa
lỗi, cải thiện hiệu suất hoặc những thuộc
tính khác hoặc nhằm giúp phần mềm
thích ứng với các môi trường mới.
Phân loại
Corrective Maintenance.
 Adaptive Maintenance.
 Perfective Maintenance.
 Preventive Maintenance.

Corrective Maintenance

Nhiệm vụ :
 Sửa chữa các lỗi hay các khuyết điểm được
tìm thấy.

Một số khuyết điểm thường gặp :
 Lỗi thiết kế
 Lỗi logic
 Lỗi Coding
 Một số khuyết điểm cũng có thể xảy ra ở lỗi
xử lý dữ liệu và lỗi hoạt động của hệ thống.
Adaptive Maintenance
Nhiệm vụ : Giúp cho phần mềm tương
thích với môi trường hoạt động bị thay
đổi.
 Việc có cần thiết để thực hiện Adaptive
Maintenance hay không có thể được
xác định bằng các kiểm soát hoạt động
và thay đổi của môi trường.

Perfective Maintenance
Nhiệm vụ: Chủ yếu là thảo luận với
khách hàng để kiểm tra những yêu cầu
người dùng mới.
 Quan tâm đến việc cải tiến chức năng
và các hoạt động để tăng hiệu suất của
hệ thống hoặc tăng cường giao diện
người dùng.

Preventive Maintenance
Nhiệm vụ: Quan tâm tới các hoạt động
nhằm tăng cường khả năng có thể bảo
trì của hệ thống.
 Để giảm bớt sự phức tạp, và làm cho
các lần bảo trì sau đó dễ hơn.

Chi phí bảo trì
Ngày càng tăng.
 Cao hơn nhiều so với chi phí phát triển
phần mềm.

Chi phí bảo trì
Activity
Estimate
(persondays)
Estimate
(persondays)
Activity
1. Understand the problem and identify
the functions that must be modified or
added.
2-5
6. Compile and integrate into
baseline
2-3
2. Design the changes
1-4
7. Test functionality of changes
2-4
3. Perform impact analysis
1-4
8. Perform regression testing
2-4
4. Implement changes in source code
1-4
9. Release new baseline and
report results
1
5. Change SRS, SDD, STP,
configuration status
2-6
TOTAL
14 - 35
Khi nào cần bảo trì phần mềm ?
Bảo trì định kì.
 Bảo trì khi gặp sự cố.
 Khi đối tác thay đổi các yêu cầu phần
mềm.

Ai thực hiện việc bảo trì ?
Tại sao cần bảo trì phần mềm ?
Sửa các khuyết điểm (defect) của phần
mềm.
 Làm tăng chất lượng phần mềm.
 Xác định độ tin cậy đối với phần mềm.
 Đảm bảo hệ thống vận hành với hiệu
suất cao nhất.
 Xác định trách nhiệm của bộ phận gây
ra lỗi, hư hỏng phần mềm (phát triển,
vận hành,…)

Phương pháp bảo trì phần mềm

Quy trình bảo trì phần mềm
 Những mô hình bảo trì
 Những hoạt động trong bảo trì

Những kỉ thuật dùng trong bảo trì phần
mềm
Quy trình bảo trì phần mềm
Quy trình bảo trì phần mềm(tt)
Thay đổi yêu cầu
Là những yêu cầu cho những thay đổi trên
hệ thống bởi người dùng, khách hàng hay
phát sinh từ nhu cầu quản lý.
 Tất cả những yêu cầu cần được phân tích
cẩn thận trước khi thực hiện và công việc
này được xem là một phần quan trọng
trong quy trình bảo trì phần mềm.
 Các yêu cầu cần thực thi gấp:

 Sửa lỗi sai
 Thay đổi môi trường làm việc mới cho hệ thống
Quy trình bảo trì phần mềm(tt)
Thực thi thay đổi
Phê duyệt
những thay
đổi
Phân tích
yêu cầu
Cập nhật
yêu cầu
mới
Phát triển
phần mềm
Mô hình quy trình bảo trì phần mềm
IEEE1219-98
ISO/IEC 14764-00
Những hoạt động trong bảo trì phần
mềm

Hoạt động đặc thù:
 Transition
 Modification Request acceptance/rejection
 Modification Request and Problem Report
Help Desk
 Service Level Agreements

Hoạt động hổ trợ




Đào tạo người dùng
Đảm bảo chất lượng
Kiểm toán
…
Những kĩ thuật trong bảo trì phầm mềm
Program Comprehension
 Reverse engineering
 Re-engineering

Program Comprehension
Lập trình viên dành thời gian thích đáng
cho việc đọc và hiểu được chương trình
để có thể thực thi những thay đổi lên
chương trình.
 Sử dụng các công cụ “code browser”
 Tài liệu đặc tả rõ ràng và súc tích có thể
giúp rất nhiều cho việc hiểu chương trình.

Reverse engineering
Re-engineering
Là sự xem xét và thay đổi phần mềm để
tái thiết nó trong dạng mới.
 Bao gồm cả những thực thi kế tiếp với
định dạng mới.
 Liên quan đến việc hệ thống “Legacy”
hiện có và làm nó dễ bảo trì hơn.

Mô hình Re-enegineering trong
phần mềm
Tool : Resharper

Giới thiệu :
 Là một add-in dành cho Visual Studio ( hỗ
trợ VS2005, VS2008, VS2010)
 Là một tool thương mại (commercial)
Tool : Resharper

Chức năng chính :
 Phân tích chất lượng code C#, XAML, XML,




ASP.NET, ASP.NET MVC.
Tái cấu trúc mã nguồn.
Phát hiện lỗi và những đoạn code có khả
năng gây lỗi.
Unit Test
Navigate (Tìm kiểm, đi đến những điểm xác
định trong mã nguồn)
Navigator
Inspection
Refactoring
Unit Test
Code Cleanup