1. Bảo Trì Phần Mềm
Giáo viên hướng dẫn
Vũ Hương Giang
Nhóm sinh viên thực hiện
Nguyễn Hoàng Linh
Nguyễn Hữu Vụ
Phạm Văn Hùng
Đoàn Thành Lâm
2. I. Giới thiệu về bảo trì phần
mềm
1. Định nghĩa bảo trì
2. Các hình thái bảo trì
3. Trình tự bảo trì
3. 1. Định nghĩa bảo trì
• Bảo trì là công việc tu sửa, thay đổi phần mềm đã
được phát triển (Chương trình, dữ liệu, các loại tư
liệu đặc tả…)theo những lý do nào đó.
4. 2. Các hình thái bảo trì
Tu chỉnh
Thích hợp
Cải tiến
Phòng ngừa
5. 3. Trình tự bảo trì
Quy trình bảo trì là gì?
Đó là trong quá trình trong vòng đời của phần mềm,
cũng tuân theo các pha phân tích, thiết kế, phát triển,
và kiểm thử từ khi phát sinh vấn đề cho đến khi giải
quyết xong.
Thao tác bảo trì gồm 2 loại:
Tu chỉnh cái đã có
Thêm cái mới
7. II. Các mô hình bảo trì
1. Mô hình Quick - Fix
2. Mô hình lặp nâng cao
3. Mô hình hướng tái sử dụng
4. Mô hình Boehm
5. Kỹ thuật đảo ngược
8. 1. Mô hình Quick - Fix
• Là một giải pháp đặc biệt khi nào có lỗi thì cố gắng
sửa nó nhanh nhất có thể, do ràng buộc về thời gian
nên mô hình này không quá tập trung vào ảnh hưởng
lâu dài của việc sửa lỗi.
• Ưu điểm là có thể tiết kiệm thời gian, chi phí cho
việc bảo trì, có thể tự giải quyết được các vấn đề liên
quan đến hệ thống.
9. 2. Mô hình lặp nâng cao
• Mô hình này bao gồm 3 giai đoạn :
Phân tích hệ thống
Phân loại các thay đổi được đề xuất.
Thay đổi các đề xuất đó.
• Mô hình lặp nâng cao sẽ đánh giá những sự thay đổi trong
suốt thời gian sống của phần mềm để thực hiện vòng lặp.
• Mô hình này sẽ không đạt hiệu quả cao khi các tài liệu đi
kèm không thực sự đầy đủ. Mô hình này mặc định coi luôn
tồn tại một bộ đầy đủ các tài liệu đi kèm của hệ thống.
10. 3. Mô hình hướng tái sử dụng
• Hệ thống chứa các thành phần có thể tái sử dụng được có thể
tùy chỉnh hệ thống để phù hợp với những yêu cầu mới, tích
hợp các thành phần đó vào hệ thống mới
• Mô hình này gồm 4 bước.
Xác định các phần trong hệ thống cũ và chỉ ra các phần có thể tái sử
dụng.
Hiểu rõ về các phần trong hệ thống.
Phần chỉnh sửa các phần trong hệ thống cũ để phù hợp với các yêu
cầu mới.
Tích hợp các phần đã được chỉnh sửa vào trong hệ thống mới.
11. 4. Mô hình Boehm
• Mô hình Boelm dựa trên mô hình và các nguyên tắc kinh
tế, quá trình bảo trì phần mềm được biểu thị như là một
vòng tròn khép kín. Việc sử dụng mô hình kinh tế giúp
chúng ta hiểu các vấn đề gặp phải và cải thiện chương
trình khi bảo trì.
• Trong giai đoạn này tập các thay đổi sẽ được quyết định
bởi việc áp dụng các chiến lược cụ thể và việc ước tính
chi phí, lợi nhuận đối với tập các thay đổi. các thay đổi
chỉnh sửa này đều có chi phí dự trù cho riêng nó để quyết
định phạm vi và loại tài nguyên mà phải chi tiêu vào.
12. 5. Kỹ thuật đảo ngược
• Mục đích của kĩ thuật này là tạo thuận lợi thay đổi bằng
cách cho phép hiểu được hệ thống phần mềm làm gì, làm
thế nào cấu trúc của nó ra sao.
• Các mục tiêu của mục đích này là phục hồi dữ liệu đã mất
thuận tiên luân chuyển giữa các nền tảng khác nhau, phát
triển và cung cấp tài liệu mới lấy ra các thành phần tái sử
dụng, giảm các nỗ lực bảo trì phần mềm, xử lý các vấn đề
phức tạp, phát hiện ra các ảnh hưởng ….
13. 5. Kỹ thuật đảo ngược
• Các mức độ kỹ thuật đảo ngược
14. 5. Kỹ thuật đảo ngược
• Redocumentation
Là tái tạo lại 1 biểu diễn tương đương trong một mức độ trừu
tượng có liên quan .
Tạo các cách nhìn khác nhau về hệ thống để mà nâng cao khả
năng hiểu biết. phát triển tài liệu hiện có. Tài liệu nên được tạo
ra trong quá trình phát triển hệ thống và chỉnh sửa chúng mỗi khi
hệ thống có thay đổi. tạo tài liệu cho chương trình được điều
chỉnh mới.
15. 5. Kỹ thuật đảo ngược
• Design recovery
Đòi việc xác nhận trích rút các trừu tượng mức độ cao hơn, có ý
nghĩa mà không thể trực tiếp lấy được từ việc kiểm tra mã
nguồn. Điều này có thể đạt được từ việc kết hợp mã nguồn, các
tài liệu thiết kế tồn tại, kinh nghiệm cá nhân, sự hiểu biết về vấn
đề, lĩnh vực ứng dụng. thiết kế được phục hồi có thể không cần
thiết với bản thiết kế ban đầu có thể sau đó sử dụng cho phát
triển hệ thống, hay nói cách khác là nền tảng cho việc chỉnh sửa
hệ thống trong tương lai. Việc thiết kế này có thể được sử dụng
để phát triển tương tự nhưng không đồng nhất các ứng dụng.
16. 5. Kỹ thuật đảo ngược
• Specification recovery
Thông qua cách này ta có thể lây được thông tin đặc tả yêu cầu
về hệ thống
Các đặc tả về hệ thống có thể được sử dụng để hỗ trợ bảo trì
phần mềm mà không nhất thiết truy nhập vào mã nguồn
Các đặc tả này hỗ trợ cho hiểu biết về kiến thức để tác động đến
việc thay đổi hệ thống.
Nếu các đặc tả này mà phù hợp có thể sử dụng để phát triển, bảo
trì các hệ thống tương tự.việc sử dụng các đặc tả đôi lúc có lợi
hơn là việc sử dụng mã nguồn tương tự
17. 5. Kỹ thuật đảo ngược
• Tác dụng của kỹ thuật Reverse Engineering
Kết quả khi ứng dụng kĩ thuật đảo ngược này hữu dụng đối với ứng
dụng và tái sử dụng phần mềm từ những bản thiết kế và mã nguồn đã
có trước đó.
Việc sử dụng các công cụ kĩ thuật đảo ngược cung cấp tài liệu cho
việc hiểu hệ thống. thời gian dành cho hiểu được tổng thể phần mềm
là rất lớn, công cụ kĩ thuật đảo ngược sẽ giới hạn phạn vi và từ đó ta
có thể giảm được giá thành cho việc bảo trì phần mềm.
Kĩ thuật Reverse Engineering mang lại lợi ích cho các hoạt đôngh
bảo trì phần mềm theo các cách sau:
Chỉnh sửa chính xác
Chỉnh sửa cho phù hợp
18. III.Những khó khăn và những
vấn đề trong bảo trì hiện nay
1. Những khó khăn trong bảo trì
2. Những vấn đề trong bảo trì hiện nay
19. 1. Những khó khăn trong bảo trì
• Thường khó hay không thể nào theo dõi được sự tiến hóa của
phần mềm qua nhiều phiên bản hay lần phát hành.
• Khó hay không thể nào theo dõi được tiến trình qua đó tạo ra
phần mềm.
• Tài liệu không có hoặc có nhưng rất tồi.
• Phần lớn các phần mềm đều không thiết kế cho sự thay đổi.
Chửng nào mà phương pháp thiết kế còn chưa phù hợp với sự
thay đổi thông qua các khái niệm như phụ thuộc hàm, lớp sự
vật, thì việc thay đổi đối với phần mềm vẫn còn khó khăn và
sinh lỗi.
20. 2. Những vấn đề trong bảo trì hiện
nay
• Phương pháp cải tiến thao tác bảo trì:
Sáng kiến trong quy trình phát triển phần mềm.
Chuẩn hóa mọi khâu trong phát triển phần mềm.
Người bảo trì chủ chốt tham gia vào giai đoạn phân tích và
thiết kế.
Thiết kế để dễ bảo trì.
Sáng kiến trong quy trình bảo trì phần mềm.
Sử dụng các công cụ hỗ trợ phát triển phần mềm.
Chuẩn hóa thao tác bảo trì và thiết bị môi trường bảo trì.
Lưu lại những thông tin lịch sử bảo trì.
Dự án nên cử một người chủ chốt của mình làm công việc
bảo trì sau khi dự án kết thúc giai đoạn phát triển.
21. 2. Những vấn đề trong bảo trì hiện
nay
Phát triển những kỹ thuật mới cho bảo trì.
Công cụ phần mềm hỗ trợ bảo trì.
Cơ sở dữ liệu cho bảo trì.
Quản lý tài liệu, quản lý dữ liệu, quản lý chương trình nguồn,
quản lý dữ liệu thử, quản lý sử bảo trì.
Trạm bảo trì tính năng cao trong hệ thống mạng lưới bảo trì với
máy chủ thông minh.
22. IV.Các công cụ bảo trì phần
mềm
1. Khái niệm
2. Các tiêu chuẩn lựa chọn công cụ
3. Phân loại công cụ
4. Những sản phẩm thương mại
23. 1. Khái niệm
• Công cụ bảo trì phần mềm là 1 sản phẩm trợ giúp cho
người bảo trì phầm mềm trong việc thực hiện nhiệm vụ .
Việc sử dụng các công cụ cho việc bảo trì phần mềm làm
cho các nhiệm vụ trở nên đơn giản hơn , đồng thời làm
tăng hiệu quả và năng suất.
24. 2. Tiêu chuẩn lựa chọn công cụ
• Khả năng đáp ứng.
• Tính năng.
• Chi phí và lợi ích.
• Nền tảng.
• Ngôn ngữ chương trình.
• Tính dễ sử dụng.
• Kiến trúc mở.
• Sự ổn định của nhà cung cấp.
25. 3. Phân loại công cụ
• Về nguyên tắc, ta có thể phân biệt giữa các lớp của các công cụ
bảo trì phần mềm, thường là dựa trên các nhiệm vụ mà công cụ hỗ
trợ.
• Tuy nhiên, trong thực tế thì khó có thể phân biệt được, chủ yếu là
do tính chất đa dạng và mối liên hệ giữa các hoạt động bảo trì phần
mềm.
• Các loại nhiệm vụ mà công cụ này sẽ được thảo luận là:
Chương trình hiểu biết và kỹ thuật đảo ngược (Program
understanding and reverse engineering).
Kiểm tra (Testing).
Quản lý cấu hình (Configuration management).
Tài liệu và đo lường (Documentation and measurement)
26. 4. Những sản phẩm thương mại
• Bugzilla
• HP Quality Center
• IBM Rational Quality Manager
• Micro Focus SilkPerformer
27. Bugzilla
• Chương trình được hàng nghìn công ty sử dụng giống như một “
hệ thống dò tìm khuyết điểm “ .
• Chương trình theo dõi những lỗi phát sinh trong một sản phẩm
phần mềm cho phép cá nhân hoặc một nhóm người phát triển có
thể liên lạc và giải quyết các vấn đề .
• Bugzilla cho phép các kỹ sư phần mềm quản lý việc đảm bảo
chất lượng sản phẩm , tìm lỗi , và đưa ra các đường dẫn khắc
phục lỗi để xem xét lại .
• Chương trình này miễn phí về mặt kỹ thuật , mặc dù họ có tính
phí cho các vấn đề hỗ trợ rộng hơn .
• Bugzilla là một chương trình an toàn có khả năng quét và sửa
chữa việc không nhất quán cơ sở dữ liệu.
28. HP Quality Center
• Ứng dụng này dựa trên nền Web giúp cho các kỹ sư phần mềm
đưa các chương trình của họ thông qua các ringer bằng việc
kiểm tra chúng cùng với các lỗi khác nhau .
• HP Quality Center có khả năng lập kế hoạch và chiến lược test ,
phân tích kết quả và quản lý các vấn đề và khuyết điểm của
phần mềm .
• Có 3 phiên bản của chương trình , nổi bật nhất trong cả 3 phiên
bản đó là khả năng giải quyết hàng trăm ứng dụng cùng một lúc
với một đội ngũ quản lý được có mặt trên toàn thế giới.
29. IBM Rational Quality Manager
• IBM Rational Quality Manager cũng giống như HP Quality Center
ở chỗ nó thực hiện việc kiểm tra bằng cách sử dụng một ứng dụng
dựa trên nền tảng Internet
• Chương trình cho phép người dùng tủy chỉnh những thông tin
được trình bày thông qua bảng điều khiển tùy chỉnh , nó còn cho
phép người dùng lên lịch cho các bài test phần mềm cùng với rất
nhiều các thành viên của họ .
• Những bài test này có thể được tự động hoặc được làm 1 cách thủ
công nếu có một phân vùng cụ thể của phần mềm nơi mà các kỹ
sư mong muốn được tiếp cận gần hơn .
• Việc mô tả chương trình sẽ chỉ ra nó sẽ đẩy nhanh tiến độ của dự
án và đảm bảo rằng các ứng dụng đáp ứng được các mục tiêu của
công ty .
30. Micro Focus SilkPerformer
• Micro Focus SilkPerformer là một chương trình có thể được sử
dụng bởi các công ty tầm cỡ doanh nghiệp để phát triển các ứng
dụng phần mềm thông qua thử nghiệm rộng rãi.
• Các trang Micro Focus chỉ ra rằng chương trình có thể đẩy
nhanh phân tích các vấn đề bằng các tìm chúng trong các chu
trình phát triển một cách nhanh chóng .
• SilkPerformer hỗ trợ đầy đủ cho các ứng dụng Web 2.0 và chu
trình test hiệu quả , đồng thời tạo ra các test .
• Chương trình thực hiện các bài test - có thể được thể xem trên
nhiều môi trường trong khả năng để nhanh chóng xác định nếu
có điều kiện nào đó gây ra hỏng hóc .
31. V. CÁC KỊCH BẢN BẢO TRÌ
TRONG QUÁ TRÌNH PHÁT
TRIỂN PHẦN MỀM
1. Phát triển lặp đi lặp lại
2. Hướng thành phần
32. 1. Phát triển lặp đi lặp lại
• Khái niệm
• RUP
• SCRUM
33. Khái niệm
• Phát triển lặp đi lặp lại là một phương pháp phát triển phần
mềm mà quá trình xử lý được tách ra trong những phần lặp
nhỏ. Một sự lặp lại được thực hiện cho mỗi đặc điểm mới
được thêm vào sản phẩm. Khi bắt đầu mỗi lần lặp, có sự gặp
nhau giữa các bước được thực hiện trong suốt quá tŕnh lặp.
Trong các lần gặp nhau này, người phát triển và khách hàng
cần trao đổi các yêu cầu sử dụng, các bước kế hoạch đươc
thực hiện, và ước lượng giá thành.
34. RUP
• 4 Giai đoạn của RUP
Giai đoạn mở đầu
Giai đoạn chuẩn bị cho dự án ( triển khai thiết kế , bổ
sung hoàn thiện và kiểm tra bản thảo )
Giai đoạn xây dựng bản thảo
Giai đoạn chuyển đổi
35. SCRUM
• Khái niệm : một quy trình phát triển phần mềm theo mô hình
linh hoạt (agile). Công nghệ Agile cung cấp rất nhiều phương
pháp luận, quy trình và các thực nghiệm để cho việc phát triển
phần mềm trở nên nhanh chóng và dễ dàng.
• Scrum chia dự án thành các vòng lặp phát triển gọi là các
sprint. Mỗi sprint thường mất 2- 4 tuần (30 ngày) để hoàn
thành. Nó rất phù hợp cho những dự án có nhiều sự thay đổi và
yêu cầu tốc độ cao.
• Các thành phần của SCRUM :
Product Owner
Scrum Master
Đội làm việc ở Scrum
36. 2. Hướng thành phần
• Những hoạt động bảo trì chính ở CBSD ( Component -
Based Software Development )
Gắn kết hóa và gói hóa
May đo hóa
Phát hiện lỗi và cô lập
Cập nhật cấu hình thành phần
Theo dõi và kiểm tra các hành vi hệ thống
Kiểm thử các thành phần