36
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

Slide Các kỹ thuật bảo trì phần mềm

Embed Size (px)

Citation preview

Bảo Trì Phần MềmGiáo viên hướng dẫn Vũ Hương Giang

Nhóm sinh viên thực hiệnNguyễn Hoàng LinhNguyễn Hữu VụPhạm Văn HùngĐoàn Thành Lâm

I. Giới thiệu về bảo trì phần mềm1. Định nghĩa bảo trì2. Các hình thái bảo trì3. Trình tự bảo trì

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 đó.

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

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

Sơ đồ bảo trì

II. Các mô hình bảo trì

1. Mô hình Quick - Fix2. Mô hình lặp nâng cao3. Mô hình hướng tái sử dụng4. Mô hình Boehm5. Kỹ thuật đảo ngược

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.

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.

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.

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.

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 ….

5. Kỹ thuật đảo ngược

• Các mức độ kỹ thuật đảo ngược

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.

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.

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ự

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ácChỉnh sửa cho phù hợp

III.Những khó khăn và những vấn đề trong bảo trì hiện nay1. Những khó khăn trong bảo trì 2. Những vấn đề trong bảo trì hiện

nay

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.

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.

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.

IV.Các công cụ bảo trì phần mềm1. Khái niệm2. 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

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.

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.

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)

4. Những sản phẩm thương mại

• Bugzilla

• HP Quality Center

• IBM Rational Quality Manager

• Micro Focus SilkPerformer

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.

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.

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 .

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 .

V. CÁC KỊCH BẢN BẢO TRÌ TRONG QUÁ TRÌNH PHÁT TRIỂN PHẦN MỀM1. Phát triển lặp đi lặp lại2. Hướng thành phần

1. Phát triển lặp đi lặp lại

•Khái niệm

•RUP

•SCRUM

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á trnh 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.

RUP

• 4 Giai đoạn của RUPGiai đoạn mở đầuGiai đ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ảoGiai đoạn chuyển đổi

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

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