TIẾN HÓA PHẦN MỀMchỉnh sửa để những sửa lỗi được tìm thấy trong khi vận hành, để thích ứng nó với một nền tảng mới và nâng cao hiệu suất của nó hoặc các đặc tính phi chức năng khác.. C
Trang 1TIẾN HÓA PHẦN MỀM
chỉnh sửa để những sửa lỗi được tìm thấy trong khi vận hành, để thích ứng nó với một nền tảng
mới và nâng cao hiệu suất của nó hoặc các đặc
tính phi chức năng khác.
Đề cập tới cái gì?
Trang 2TIẾN HÓA PHẦN MỀM
1 Chương trình tiến hóa Dynamics
2 Bảo trì phần mềm
3 Quá trình tiến hóa
4 Tiến hoá hệ thống Legacy
Trang 3Hình 21.1 Mô hình xoắn ốc về sự hình thành và phát triển
Chương trình tiến hóa Dynamics
Trang 4Chương Trình Tiến Hóa Dynamics
– Nghiên cứu về thay đổi hệ thống (Lehman và Belady)
– Nghiên cứu tầm quan trọng của thông tin
phản hồi trong quá trình tiến hoá (Jihman,
1996; Lehman, và cộng sự, 1998).
Đề xuất một bộ luật (Luật của Jihrnan) liên quan đến thay đổi hệ thống.
Trang 5Chương Trình Tiến Hóa Dynamics
Sự thay đổi Một chương trình được sử dụng trong một môi trường
thực tế nhất thiết phải thay đổi hoặc trở nên không khả thi trong môi trường đó
Độ phức tạp Là một sự thay đổi chương rình phát triển, cấu trúc của
chương trình sẽ trở nên phức tạp hơn Nguồn lực bổ sung giúp đơn giản hóa cấu trúc
Chương trình tiến hóa Đó là một quá trình tự điều tiết Thuộc tính hệ thống như
kích thước, thời gian giữa các phiên bản và số lượng các lỗi được báo cáo là khoảng bất biến đối với mỗi bản phát
hành của hệ thống
Quá trình tổ chức Trong suốt cuộc đời của môt chương trình, tốc độ phát
triển là khoảng liên tục và độc lập của cấc nguồn tài nguyên dành cho việc phát triển hệ thống
Quá trình bảo dưỡng Trong suốt quãng đời của một hệ thống, sự thay đổi trong
mỗi chương trình là không đổi
Trang 6Bảo Trì Phần Mềm
– Bảo trì phần mềm là quá trình chung của việc thay đổi một hệ thống sau khi nó đã được chuyển giao
– Bảo trì để sửa chữa lỗi phần mềm
– Bảo trì để thích ứng phần mềm với một môi trường
vận hành khác nhau:
– Bảo trì để thêm vào hoặc sửa đổi các chức năng
của hệ thống
Trang 7• Chi phí bảo trì:
Chi phí bảo trì như là một phần của chi phí phát triển biến đổi từ một trong những miền ứng dụng khác nhau.
Hình 21.3 Phân phối nỗ lực bảo trì.
Bảo Trì Phần Mềm
Trang 8Sự tách biệt giữa phát triển và bảo trì->chi phí bảo trì cao?
– Ổn định đội ngũ:
• Sau khi hệ thống đã được chuyển giao, nhóm phát triển bị chia nhỏ và mọi người làm việc trên những dự án mới.
– Trách nhiệm với hợp đồng
• Hợp đồng để duy trì một hệ thống thường là tách biệt với hợp đồng phát triển hệ thống.
– Kỹ năng của nhân viên:
• Nhân viên bảo trì thường tương đối thiếu kinh nghiệm và xa lạ với miền ứng dụng.
• Các nhân viên bảo trì có thể không có nhiều kinh nghiệm phát triển các ngôn ngữ và phải học các ngôn ngữ
– Tuổi và cấu trúc chương trình
• chúng có xu hướng bị xuống cấp bởi sự thay đổi -> khó khăn để hiểu và chỉnh sửa
Trang 9Bảo Trì Phần Mềm
• Dự đoán bảo trì
Hình 21.5 minh họa các dự đoán và các câu hỏi liên quan.
Trang 10Quy Trình Tiến Hóa
– Tổng số yêu cầu tiến hóa sửa chữa
– Thời gian trung bình để phân tích tác động
– Thời gian trung bình để thực hiện một yêu cầu
thay đổi
– Số yêu cầu thay đổi dư
Trang 11Quy Trình Tiến Hóa
• Các hoạt động của quy trình tiến hóa phần mềm:
– Phân tích thay đổi
• Đánh giá xem có bap nhiêu hệ thống chịu ảnh hưởng khi thay đổi hệ thống.
• Chi phí cho sự thay đổi hệ thống là bao nhiêu?
• Đề xuất những thay đổi hệ thống.
– Lập kế hoạch
• Xem xét các đề xuất thay đổi (sửa lỗi, tương thích và chức năng mới) lựa chọn đề xuất để phát triển.
• Lập kế hoạch để thực thi với đề xuất đã chọn
– Thực thi và phát hành một hệ thống
• Thực hiện thay đổi ở phiên bản tiếp theo của hệ thống.
Trang 12Quy Trình Tiến Hóa
Thực hiện thay đổi
Trang 13Quy Trình Tiến Hóa
Quy trình sửa đổi khẩn cấp
Kỹ thuật chuyển tiếp và tái kỹ nghệ
Trang 14Quy Trình Tiến Hóa
• Lợi thế của tái kĩ nghệ hệ thống
– Giảm bớt rủi ro
• Sự chậm trễ trong việc giới thiệu các phần mềm sẽ bị phát sinh thêm chi phí
– Giảm chi phí
• Chi phí tái kĩ nghệ ít hơn đáng kể so với chi phí phát triển phần mềm mới
• Các hoạt động trong quá trình tái kĩ nghệ
– Chương trình dịch mã nguồn
• Biến đổi ngôn ngữ lập trình thành một ngôn ngữ khác
– Đảo ngược kỹ thuật
• Phân tích và sửa đổi cấu trúc và chức năng chương trình-> giúp nó dẽ đọc dẽ hiểu hơn
– Tính modun hóa của chương trình
• Nhóm các chương trình liên quan lại với nhau-> loại bỏ dư thừa
– Thiết kế lại dữ liệu
• Xử lý dữ liệu để dữ liệu phản ánh sự thay đổi của chương trình
Trang 15Tiến Hoá Hệ Thống Legacy
Hệ thống đánh giá Legacy
Trang 16Tiến Hoá Hệ Thống Legacy
trường.
– Nhà cung cấp ổn địn
– Tỷ lệ thất bại
– Tuổi
– Hiệu suất
– Yêu cầu hỗ trợ
– Chi phí bảo trì
– Khả năng cộng tác
Trang 17Tiến Hoá Hệ Thống Legacy
– Dễ hiểu
– Tài liệu
– Dữ liệu
– Hiệu suất
– Ngôn ngữ lập trình
– Cấu hình quản lí
– Dữ liệu thử nghiệm
– Kỹ năng nhân viên
Trang 18Key Points
Trang 19• Phạm Văn Hải
THÀNH VIÊN NHÓM