Bài giảng Bảo trì phần mềm - Phần 4: Các kỹ thuật và công cụ bảo trì (ĐH Cần Thơ)
lượt xem 12
download
Bài giảng "Bảo trì phần mềm - Phần 4: Các kỹ thuật và công cụ bảo trì" cung cấp cho người học các kiến thức: Sự hiểu biết về chương trình, kỹ thuật đảo ngược, kỹ thuật tái kiến tạo, các công cụ bảo trì. Mời các bạn cùng tham khảo nội dung chi tiết.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Bảo trì phần mềm - Phần 4: Các kỹ thuật và công cụ bảo trì (ĐH Cần Thơ)
- Nội dung Sự hiểu biết về chương trình BẢO TRÌ PHẦN MỀM Kỹ thuật đảo ngược Kỹ thuật tái kiến tạo PHẦN IV – CÁC KỸ THUẬT Các công cụ bảo trì VÀ CÔNG CỤ BẢO TRÌ Bộ môn Công nghệ phần mềm, Khoa CNTT & TT, Đại học Cần Thơ 1 2 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Sự hiểu biết về chương trình Mục đích của việc hiểu chương trình Mục đích của việc hiểu chương trình Mục đích cuối cùng của việc đọc và hiểu chương Yêu cầu kiến thức đối với bảo trì viên trình là có thể thực hiện thành công các thay đổi được yêu cầu. Các hoạt động liên quan đến việc hiểu chương Điều này đòi hỏi phải có kiến thức về những điểm trình đặc trưng của một hệ thống phần mềm: Các chiến lược để hiểu chương trình Lĩnh vực vấn đề Các yếu tố ảnh hưởng đến việc hiểu chương trình Ảnh hưởng của sự thực hiện Quan hệ nhân - quả Quan hệ sản phẩm - môi trường Các điểm đặc trưng hỗ trợ việc ra quyết định 3 4 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 1
- Mục đích của việc hiểu chương trình Mục đích của việc hiểu chương trình Lĩnh vực vấn đề Ảnh hưởng của sự thực hiện Kiến thức về lĩnh vực vấn đề nhìn chung và về các vấn Kiến thức về ảnh hưởng của sự thực hiện hỗ trợ nhân sự bảo trì trong việc quyết định xem sự thay đổi được thực hiện có đạt đề con nhìn riêng là cần thiết để giúp nhân sự bảo trì được hiệu quả mong muốn hay không. trong việc: Tại mức trừu tượng cao, nhân sự bảo trì cần biết những kết quả Lựa chọn các giải thuật, phương pháp và công cụ phù mà chương trình sẽ tạo ra cho một kết xuất đầu vào xác định mà hợp để thực hiện sự thay đổi một cách hiệu quả. không cần biết những đơn vị chương trình nào góp phần đưa ra Ước lượng nguồn tài nguyên cần cho hoạt động bảo trì. kết quả toàn diện đó hay cách thức có được kết quả đó. Tại mức trừu tượng thấp, nhân sự bảo trì cần biết các kết quả mà Nguồn cung cấp thông tin để hiểu phạm vi vấn đề có những đơn vị chương trình riêng lẻ sẽ tạo ra. thể là: tài liệu về hệ thống, người sử dụng cuối và mã Để đạt được những hiểu biết này một cách dễ dàng, nhân sự bảo nguồn của chương trình. trì cần có kiến thức về dòng dữ liệu, dòng điều khiển và các mô 5 hình giải thuật. 6 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Mục đích của việc hiểu chương trình Mục đích của việc hiểu chương trình Quan hệ nhân – quả Quan hệ sản phẩm – môi trường Trong các chương trình lớn và phức tạp, kiến thức Sản phẩm là hệ thống phần mềm. về quan hệ này là quan trọng vì nó: Môi trường là toàn bộ các điều kiện và các ảnh hưởng Cho phép nhân sự bảo trì diễn giải về cách thức mà các từ bên ngoài tác động lên sản phẩm. thành phần của sản phẩm phần mềm tương tác với Kiến thức này có thể được sử dụng để dự đoán cách nhau trong suốt sự thực hiện. thức mà các thay đổi trong môi trường tác động đến Cho phép lập trình viên dự đoán phạm vi của sự thay sản phẩm nói chung và các chương trình cơ bản nói đổi và bất cứ hiệu ứng truyền nào có thể xuất hiện từ sự thay đổi. riêng. Có thể được sử dụng để theo vết dòng thông tin xuyên suốt chương trình. 7 8 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 2
- Yêu cầu kiến thức đối với Mục đích của việc hiểu chương trình bảo trì viên Các điểm đặc trưng hỗ trợ việc ra quyết định Các thành viên trong đội bảo trì gồm người quản Các thuộc tính của sản phẩm phần mềm (như độ phức lý, phân tích viên, thiết kế viên, lập trình viên. tạp hay tính có thể bảo trì) có thể giúp nhân sự bảo trì Mọi thành viên của đội bảo trì không nhất thiết trong các quy trình ra quyết định về kỹ thuật và quản phải hiểu mọi mặt của hệ thống đang được bảo trì, lý. tùy thuộc vào vị trí công việc mà họ phải có kiến Các phép đo độ phức tạp của hệ thống có thể được sử dụng để xác định những thành phần nào của hệ thống thức về một số mặt của hệ thống. cần nhiều tài nguyên hơn cho kiểm thử. Tính có thể bảo trì của hệ thống có thể được sử dụng như một bộ đo chất lượng của hệ thống. 9 10 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Yêu cầu kiến thức đối với Yêu cầu kiến thức đối với bảo trì viên bảo trì viên Người quản lý Nhà thiết kế Cần phải có kiến thức hỗ trợ ra quyết định nhằm đưa ra Cần có kiến thức về ảnh hưởng của sự thực hiện, quan các quyết định đúng. Mức độ hiểu biết cần có sẽ tùy hệ nhân - quả. thuộc vào quyết định được ra. Lập trình viên Phân tích viên Cần có kiến thức về ảnh hưởng của sự thực hiện của hệ Cần có kiến thức về phạm vi vấn đề, về quan hệ sản thống tại các mức trừu tượng khác nhau, quan hệ nhân phẩm – môi trường. - quả và quan hệ sản phẩm – môi trường. 11 12 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 3
- Yêu cầu kiến thức đối với Các hoạt động liên quan đến việc bảo trì viên hiểu chương trình Về nguyên tắc, ta có thể phân loại các vai trò của Đọc tài liệu về nhân sự bảo trì nhưng trong thực tế sự phân chia chương trình này không rõ ràng. Việc xác định vai trò của nhân sự bảo trì sẽ phụ Đọc thuộc vào những yếu tố như sự tổ chức của công mã nguồn việc bảo trì và vào quy mô của nhóm bảo trì. Chạy chương trình 13 14 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các hoạt động liên quan đến việc Các hoạt động liên quan đến việc hiểu chương trình hiểu chương trình Đọc tài liệu về chương trình để có sự hiểu biết Chạy chương trình để tìm hiểu hành vi động của tổng quan về hệ thống chương trình Đọc, nghiên cứu kỹ các nguồn thông tin khác nhau Có thể bộc lộ một số điểm đặc trưng của hệ thống mà (như tài liệu về hệ thống). bảo trì viên khó có thể biết nếu chỉ đọc tài liệu và mã Đọc mã nguồn để có được cái nhìn tổng thể và nguồn. cục bộ về chương trình Tổng thể: sự hiểu biết mức cao về hệ thống, phạm vi ảnh hưởng của sự thay đổi lên các phần của hệ thống. Cục bộ: sự hiểu biết về một phần cụ thể của hệ thống. 15 16 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 4
- Các chiến lược để hiểu chương trình Các chiến lược để hiểu chương trình Mô hình từ trên xuống (Top-down model) Mô hình từ dưới lên (Bottom – up model) Bắt đầu từ việc hiểu các chi tiết mức cao của chương Bảo trì viên nhận dạng thành công các mẫu (pattern) trình, chẳng hạn như nó làm cái gì và khi nào nó thực trong chương trình. hiện. Những mẫu này được “bó” lại thành những cấu trúc Sau đó dần dần tiến tới việc hiểu các chi tiết mức thấp mức cao có ý nghĩa hơn. chẳng hạn như các kiểu dữ liệu, các dòng dữ liệu và Các cấu trúc mức cao sau đó được “bó” lại với nhau điều khiển, các mô hình thuật toán theo cách từ trên thành những cấu trúc lớn hơn. xuống. Lặp đi lặp lại bước trên theo kiểu từ dưới lên cho đến khi toàn bộ chương trình được hiểu. 17 18 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các chiến lược để hiểu chương trình Các chiến lược để hiểu chương trình Mô hình cơ hội (Opportunistic model) Các cụm thứ tự cao Thực tế, quy trình để hiểu một chương trình thường Các cấu trúc ngữ nghĩa mức cao (thủ tục, hiếm khi được tổ chức một cách rành mạch như các mô hàm, module) hình từ trên xuống hay từ dưới lên. Bảo trì viên có khuynh hướng nắm lấy lợi thế của bất Các cấu trúc ngữ nghĩa Chiều hiểu cứ manh mối nào mà họ tình cờ gặp (theo cách cơ hội). mức thấp (câu lệnh) chương trình Bảo trì viên thực hiện cả hai chiến lược từ trên xuống và từ dưới lên, mặc dù không đồng bộ. Các cụm thứ tự mức thấp 19 20 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 5
- Yếu tố Thành phần Lưu ý Tri thức Vấn đề Ứng dụng Phụ thuộc vào: Kiến thức đã có, tài liệu hệ thống, thảo luận Kỹ thuật đảo ngược (Reverse lĩnh vực Hệ thống Cách mà nó liên quan với ứng dụng Engineering) CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN VIỆC HIỂU CHƯƠNG TRÌNH Các yếu Sự phân rã Sự phân cấp và module Các vấn Tính module Liên kết thấp, gắn kết cao Định nghĩa tố ảnh đề thực Sự che dấu hiện / thông tin Mục đích của kỹ thuật đảo ngược hưởng Thực tiễn lập trình Giải thuật Độ phức tạp đến việc Lập trình/ Đặt tên danh biểu Định nghĩa và tuân theo các Các mức của kỹ thuật đảo ngược chuẩn nội bộ hiểu Bên ngoài Nên: cập nhật khi hệ thống Các điều kiện để thực hiện kỹ thuật đảo ngược Tài liệu thay đổi, chính xác và súc Nội bộ tích, tuân theo chuẩn chương Sự tượng Nên: phù hợp, ngắn gọn, rõ Sự trình trình bày / tổ chức trưng Thuật ngữ ràng và thống nhất; chương trình Sự sắp đặt Công cụ phân Tiết lộ các đặc điểm cấu trúc tích tĩnh của chương trình Công cụ Công cụ phân Tiết lộ các hành vi động của 21 22 hỗ trợ tích động chương trình Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Định nghĩa Mục đích của kỹ thuật đảo ngược Kỹ thuật đảo ngược là quy trình phân tích một hệ Kỹ thuật đảo ngược tạo điều kiện thuận lợi cho sự thống chủ thể để: thay đổi bằng cách cho phép hệ thống phần mềm Nhận dạng các thành phần của hệ thống và các mối được hiểu dưới dạng nó làm gì, nó làm như thế quan hệ giữa chúng. nào và biểu diễn kiến trúc của nó. Tạo ra các biểu diễn của hệ thống ở một dạng khác Kỹ thuật đảo ngược có thể bắt đầu từ đặc tả các hay ở các mức trừu tượng cao hơn. yêu cầu hay từ thiết kế kiến trúc và chi tiết hay từ mã nguồn. Điểm bắt đầu phổ biến nhất của kỹ thuật đảo ngược là mã nguồn của chương trình. 23 24 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 6
- Mục đích của kỹ thuật đảo ngược Mục đích của kỹ thuật đảo ngược Phục hồi thông tin bị mất Phục hồi thông tin bị mất, cải tiến hay cung cấp tài liệu Theo thời gian, hệ thống phải trải qua một chuỗi các thay Tạo điều kiện thuận lợi cho sự di dời giữa các nền đổi. Cải tiến hay cung cấp tài liệu Do áp lực quản lý và các ràng buộc về thời gian, tài liệu Cung cấp những cái nhìn khác về hệ thống (đặc tả, thiết kế) có thể không được cập nhật hay thậm chí không có => Mã lệnh trở thành nguồn thông tin duy nhất Rút trích thành phần có thể tái sử dụng của hệ thống Đối phó với độ phức tạp Các công cụ của kỹ thuật đảo ngược cho phép thông tin (đặc tả, thiết kế) này được phục hồi. Phát hiện hiệu ứng lề Giảm thiểu công sức bảo trì 25 26 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Mục đích của kỹ thuật đảo ngược Mục đích của kỹ thuật đảo ngược Tạo điều kiện thuận lợi cho sự di dời giữa các nền Cung cấp những cái nhìn khác về hệ thống Để nắm bắt lợi thế của một nền phần mềm hay phần Các công cụ đảo ngược có thể được sử dụng để cứng mới, sự kết hợp giữa kỹ thuật đảo ngược và kỹ cung cấp những tài liệu khác (như các lưu đồ: dòng thuật chuyển tiếp có thể được sử dụng. dữ liệu, dòng điều khiển, quan hệ thực) thể nhằm Các công cụ của kỹ thuật đảo ngược được sử dụng để bổ sung cho tài liệu hiện có. có các đặc tả và thiết kế. => cung cấp những cái nhìn khác về hệ thống Kỹ thuật chuyển tiếp sau đó được áp dụng lên đặc tả theo các chuẩn của nền mới. 27 28 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 7
- Mục đích của kỹ thuật đảo ngược Mục đích của kỹ thuật đảo ngược Rút trích thành phần có thể tái sử dụng Đối phó với độ phức tạp Việc tái sử dụng các thành phần có có thể làm gia tăng Một trong các vấn đề chính của các hệ thống kế thừa là hiệu suất và cải thiện chất lượng sản phẩm. độ phức tạp gia tăng khi chúng tiến hóa. Sự thành công của việc tái sử dụng các thành phần phụ Khi thực hiện sự thay đổi, độ phức tạp phải được xử lý thuộc phần nào vào tính sẵn có của các thành phần đó. bằng cách rút ra thông tin liên quan tới sự thay đổi và Các phương pháp và công cụ đảo ngược tạo cơ hội để bỏ qua cái không liên quan. truy xuất và trích ra các thành phần chương trình. 29 30 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Mục đích của kỹ thuật đảo ngược Mục đích của kỹ thuật đảo ngược Phát hiện hiệu ứng lề Giảm thiểu công sức bảo trì Trong trường hợp bảo trì viên thiếu cái nhìn toàn cục Việc hiểu chương trình chiếm một tỷ lệ lớn trong toàn về hệ thống, các hiệu ứng gợn sóng (hiệu ứng lề không bộ thời gian cần để tạo ra sự thay đổi do thiếu các tài mong muốn được tạo ra và các hiện tượng lạ bị bỏ qua) liệu phù hợp hay kiến thức về phạm vi không đủ. là kết quả phổ biến của sự thay đổi. Kỹ thuật đảo ngược cung cấp biện pháp để lấy được Các công cụ của kỹ thuật đảo ngược giúp làm rõ kiến thông tin đang mất => giảm công sức bảo trì. trúc tổng thể của hệ thống => việc dự đoán tác động của thay đổi và việc phát hiện các vấn đề về dòng dữ liệu và luận lý trở nên dễ hơn. 31 32 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 8
- Các mức của kỹ thuật đảo ngược Các mức của kỹ thuật đảo ngược Mức trừu tượng Các giai đoạn Dẫn chứng lại tài liệu (Redocumentation) Dẫn chứng lại tài liệu là sự tái tạo lại một biểu diễn Cao Đặc tả Dẫn chứng lại tài liệu tương đương về mặt ngữ nghĩa ở cùng một mức trừu Trung bình Phục hồi đặc tả tượng. Kỹ Dẫn chứng lại thuật Mục đích của dẫn chứng lại tài liệu: Thiết kế đảo tài liệu ngược Tạo ra những cái nhìn khác về hệ thống nhằm gia tăng sự Trung bình Phục hồi thiết kế hiểu biết. Thấp Thực thi Dẫn chứng lại Cải tiến tài liệu hiện có. tài liệu Sinh ra tài liệu cho chương trình được sửa đổi gần đây => tạo điều kiện thuận lợi cho công việc bảo trì hệ thống trong tương lai (bảo trì dự phòng). 33 34 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các mức của kỹ thuật đảo ngược Các mức của kỹ thuật đảo ngược Phục hồi thiết kế (Design recovery) Phục hồi đặc tả (Specification recovery) Phục hồi thiết kế cần nhận dạng và trích dẫn sự trừu tượng Phục hồi đặc tả liên quan đến việc nhận dạng, trừu tượng hóa và hóa mức cao hơn và có ý nghĩa dựa trên những gì thu được mô tả các mức trừu tượng cao hơn và có ý nghĩa dựa trên thiết kế trực tiếp từ sự kiểm tra mã nguồn. hay mã nguồn của hệ thống. Thiết kế được khôi phục – không nhất thiết là thiết kế gốc – Đặc tả được khôi phục bằng kỹ thuật đảo ngược có thể được sử dụng để: có thể được sử dụng để: Hỗ trợ cho hoạt động bảo trì phần mềm mà không cần truy Tái phát triển hệ thống. xuất vào mã nguồn. Phát triển các ứng dụng tương tự nhưng không giống hệt. Hỗ trợ bảo trì viên đạt được mức hiểu biết phù hợp để thực hiện sự thay đổi trên hệ thống phần mềm. Phát triển hay bảo trì của các hệ thống phần mềm tương tự. 35 36 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 9
- Các điều kiện để thực hiện kỹ thuật Các điều kiện để thực hiện kỹ thuật đảo ngược đảo ngược Điều kiện để thực hiện kỹ thuật đảo ngược Điều kiện để thực hiện kỹ thuật đảo ngược Liên quan đến sản phẩm / môi trường Liên quan đến sản phẩm / môi trường Liên quan đến quy trình bảo trì Thiết kế / đặc tả thiếu hay không hoàn chỉnh. Tài liệu thiếu, không chính xác, lạc hậu. Liên quan về phương diện thương mại Độ phức tạp của chương trình gia tăng. Mã nguồn có cấu trúc kém. Cần chuyển chương trình sang ngôn ngữ lập trình khác. Cần tạo các sản phẩm tương thích. Cần di dời sang nền phần cứng hay phần mềm khác. 37 38 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các điều kiện để thực hiện kỹ thuật đảo ngược Lưu ý Điều kiện để thực hiện kỹ thuật đảo ngược Trong trường hợp mã nguồn của một số chương trình (của hệ thống phần mềm đang được bảo trì) bị mất, bảo trì Liên quan đến quy trình bảo trì viên phải dùng đến các mã máy của chúng => công cụ: Giảm năng suất. disassembler và decompiler. Cần thay đổi hiệu chỉnh liên tục. Để sử dụng kỹ thuật và công cụ đảo ngược hiệu quả, bảo Các lỗi tồn đọng gia tăng. trì viên cần có sự hiểu biết về phần mềm cấp thấp và lập Liên quan về phương diện thương mại trình cấp thấp. Cần kéo dài thời gian sống kinh tế của hệ thống. Hợp ngữ Cần tạo ra sản phẩm tương tự nhưng không giống hệt. Trình biên dịch Máy ảo và bytecode 39 Hệ điều hành 40 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 10
- Kỹ thuật tái kiến tạo (Reengineering) Mục đích của kỹ thuật tái kiến tạo Tái kiến tạo (hệ thống) để đạt các chuẩn hiện tại và nhận được Mục đích của kỹ thuật tái kiến tạo sự hỗ trợ của các công nghệ mới hơn. Các bước trong kỹ thuật tái kiến tạo Khai thác công nghệ mới như các chuẩn hay thư viên mới. Di dời hệ thống sang một hệ nền mới. Một số loại tái kiến tạo Không bắt buộc hệ thống phải nguyên khối, các thành phần của nó có thể được dễ dàng đưa ra thị trường một cách riêng Điều kiện sử dụng kỹ thuật tái kiến tạo biệt hoặc kết hợp theo nhiều cách khác nhau. Trích xuất các thiết kế và sử dụng chúng để cài đặt mới. Cải thiện hiệu suất. … 41 42 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các bước trong kỹ thuật tái kiến tạo Các bước trong kỹ thuật tái kiến tạo Kỹ thuật đảo ngược (Reverse Engineering) Kỹ thuật đảo ngược Kỹ thuật tái cấu trúc (Restructuring) Không thay đổi hệ thống Kỹ thuật chuyển tiếp (Forward Engineering) Giúp hiểu hệ thống và cung cấp cách nhìn khác về hệ Phân tích thống Mô hình Cải tiến, Cấu trúc lại, Được sử dụng khi nền tảng công nghệ của hệ thống Mô hình được tái xây kiến trúc mức cao Mở rộng dựng được cải tiến phần mềm (ngôn ngữ, công cụ, máy móc, hệ điều Hiểu, hành) là lỗi thời. Rút trích, Tạo ra, Trừu tượng Tinh chỉnh Chi tiết về kỹ thuật đảo ngược đã được trình bày trong phần trước. Hệ thống Hệ thống phần mềm cũ phần mềm mới 43 44 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 11
- Các bước trong kỹ thuật tái kiến tạo Các bước trong kỹ thuật tái kiến tạo Kỹ thuật chuyển tiếp Kỹ thuật tái cấu trúc Là ngược lại của kỹ thuật đảo ngược. Chuyển đổi các biểu diễn trừu tượng (là kết quả của kỹ Tương tự như phương pháp phát triển phần mềm truyền thuật đảo ngược) sang các biểu diễn khác ở cùng một thống – tiến hành từ các yêu cầu tới thực thi chi tiết thông mức trừu tượng. qua thiết kế. Kỹ thuật tái cấu trúc bao gồm: Tái cấu trúc lại mã nguồn hoặc lược đồ cơ sở dữ liệu mà không thay đổi hành vi bên ngoài nhưng cải tiến được cấu trúc bên trong của nó. Phát hiện các đoạn mã trùng lặp và các đoạn mã chết để loại bỏ chúng. 45 46 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Một số loại tái kiến tạo Một số loại tái kiến tạo Kỹ thuật tái kiến tạo được sử dụng trong: Tái kiến tạo hệ thống thông tin Tái kiến tạo hệ thống thông tin Kỹ thuật tái kiến tạo thông tin bao gồm: Tái kiến tạo cơ sở dữ liệu Tái kiến tạo theo hướng đối tượng Tái kiến tạo hệ chuyên gia Tái kiến tạo giao diện 47 48 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 12
- Một số loại tái kiến tạo Một số loại tái kiến tạo Tái kiến tạo cơ sở dữ liệu Tái kiến tạo giao diện người dùng Dịch lược đồ: dịch trực tiếp và dịch gián tiếp. Phải sử dụng kỹ thuật đảo ngược để trừu tượng hóa mô Chuyển đổi dữ liệu: chuyển đổi vật lý, chuyển đổi logic, và hình khái niệm giao diện người dùng. chương trình cầu nối. Sau đó sử dụng kỹ thuật chuyển tiếp để tái cài đặt các Chuyển đổi chương trình: viết lại, dùng chương trình cầu nối, cạnh tranh, dịch ngược, và cùng tồn tại. giao diện người dùng bằng một công nghệ khác. Tái kiến tạo hệ chuyên gia Dựa trên hệ thống hiện tại: cải tiến các hệ cơ sở dữ liệu hiện tại, cải tiến các hệ chuyên gia hiện tại, kết nối chủ - tớ giữa hệ chuyên gia và hệ cơ sở dữ liệu, và kết nối ngang hàng cho hệ chuyên gia và hệ cơ sở dữ liệu. Sử dụng một hệ thống quản lý cơ sở tri thức mới: liên quan đến việc tìm kiếm một mô hình mới để biểu diễn tri thức. 49 50 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Một số loại tái kiến tạo Một số loại tái kiến tạo Mô hình tái kiến tạo giao diện người dùng theo Mô hình tái kiến tạo giao diện người dùng theo phương pháp phương pháp của Merlo MORPH Phát hiện: một phân tích tĩnh được tiến hành để xác định và Hiểu giao diện ban đầu và dữ liệu mà nó di chuyển trích xuất các mô hình thực hiện giao diện người dùng từ giữa giao diện và phần còn lại của ứng dụng mã nguồn. Tổ chức lại hành vi (của giao diện hiện tại) thành một Biểu diễn: xây dựng mô hình trừu tượng phân cấp, trong đó chuỗi có ý nghĩa trong ngữ cảnh của giao diện mới. các mô hình lập trình giao diện người dùng được xác định Thực hiện những cải tiến nhằm tạo ra chế độ tương tác là các nút lá; các thuộc tính hay nhiệm vụ tương tác khái hiệu quả hơn. niệm mức cao hơn được trừu tượng hóa từ các mô hình cấp thấp hơn. Xây dựng và tích hợp giao diện mới. Chuyển đổi: xác định một tập các quy tắc để chuyển mô hình trừu tượng thành một thực hiện cụ thể với công nghệ giao diện xác định. 51 52 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 13
- Một số loại tái kiến tạo Tái kiến tạo công trình Tái kiến tạo theo hướng đối tượng Tái kiến tạo theo hướng đối tượng Công nghệ phần mềm hướng đối tượng trở thành mô hình Kỹ thuật tái kiến tạo theo hướng đối tượng thực hiện những phát triển lựa chọn của nhiều tổ chức phần mềm. công việc: Đảo ngược phần mềm hiện tại để tạo ra các mô hình dữ liệu, Hiện tại, có khá nhiều các ứng dụng được phát triển bằng cách sử dụng các phương pháp truyền thống => các ứng hành vi và chức năng phù hợp. dụng đó phải được tái kiến tạo để chúng có thể dễ dàng Tạo các use – case nếu hệ thống được tái kiến tạo mở rộng được tích hợp với các hệ thống hướng đối tượng lớn. chức năng hay hành vi của ứng dụng ban đầu. Trong tái kiến tạo hướng đối tượng, những kỹ thuật được sử Sử dụng các mô hình dữ liệu được tạo ra trong suốt quá trình dụng là: tái cấu trúc trong ngữ cảnh hướng đối tượng đảo ngược cùng với mô hình lớp – trách nhiệm – cộng tác (refactoring) và các mẫu tái kiến tạo (reengineering (Class – Responsibility – Collaborator) nhằm thiết lập cơ sở patterns). cho định nghĩa lớp. Bắt đầu thực hiện các hệ thống con theo được định nghĩa và 53 54 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ thiết kế hướng đối tượng. Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Điều kiện để sử dụng kỹ thuật tái kiến tạo Công cụ bảo trì Các dấu hiệu cảnh báo dẫn đến nhu cầu sử dụng kỹ thuật tái kiến tạo: Tiêu chuẩn để chọn công cụ bảo trì Tài liệu lỗi thời hoặc không có Thiếu kiểm thử Các loại công cụ bảo trì Người phát triển không còn làm việc Tài liệu và mã chương trình hiện tại không đồng bộ Hiểu biết hạn chế về hệ thống Tốn nhiều thời gian thực hiện những thay đổi đơn giản Cần sửa lỗi định kỳ Khó phân tách thành nhiều phát hành cho các nhóm khách hàng khác nhau Mã lệnh bị trùng lặp 55 56 Mã lệnh rối, dài, không hiệu quả Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 14
- Tiêu chuẩn để chọn công cụ bảo trì Các loại công cụ bảo trì Một số yếu tố cần được xem xét khi lựa chọn công cụ bảo Về nguyên tắc, ta có thể phân loại công cụ bảo trì trì phần mềm: phần mềm dựa trên công việc mà chúng hỗ trợ. Khả năng Những công việc giúp phân loại công cụ bảo trì: Các điểm đặc trưng Hiểu chương trình, kỹ thuật đảo ngược Quan hệ vốn - lãi Kiểm thử Nền tảng Quản lý cấu hình Ngôn ngữ lập trình Lập tài liệu và đo lường Tính dễ sử dụng Tính mở của kiến trúc Trong thực tế, ta khó có được sự phân loại tốt vì trạng thái tự nhiên đa dạng hóa và có liên quan Sự ổn định của nhà cung cấp với nhau của các hoạt động bảo trì phần mềm. Văn hóa của tổ chức 57 58 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các loại công cụ bảo trì Một số các công cụ dùng để hiểu chương trình và đảo Ví dụ: ngược: Công cụ Bộ cắt lát chương trình dùng để Bộ phân tích tĩnh hiểu Bộ phân tích động Bộ phân tích dòng dữ liệu chương Bộ tham khảo chéo trình Bộ phân tích sự phụ thuộc Công cụ chuyển đổi Công cụ dịch ngược 59 60 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 15
- Ví dụ: Công cụ dùng để hiểu chương trình Ví dụ: Công cụ dùng để hiểu chương trình 61 62 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Ví dụ: Công cụ dùng cho đảo ngược 63 Ví dụ: Công cụ dùng cho đảo ngược Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 64 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 16
- Các loại công cụ bảo trì Các công cụ hỗ trợ kiểm thử: Bộ mô phỏng Bộ sinh trường hợp kiểm thử Bộ sinh các đường kiểm thử Ví dụ: Công cụ dùng cho đảo ngược Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 65 66 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Ví dụ: Công cụ hỗ trợ kiểm thử Tên công cụ Đặc điểm Hệ điều hành - Một chương trình mạnh và trực quan cho phép tạo ra một loạt (gần như vô hạn) dữ liệu kiểm thử thực tế và lưu trong tập tin ASCII hoặc lưu trực tiếp trong các hệ Ví dụ: quản trị cơ dở dữ liệu như Oracle, Sybase, SQL Window từ 95 trở Datatect - Server, và Informix. Tạo ra hơn 2 tỷ tên riêng, tên doanh nghiệp, địa chỉ lên Công cụ đường phố, thành phố, tiểu bang, số điện thoại, … - Có thể sử dụng kiểu dữ liệu có sẵn của Datatech hoặc tự tạo ra các kiểu dữ liệu riêng. hỗ trợ Allpairs - Xây dựng một tập các trường hợp kiểm thử nhỏ có thể chấp nhận mà vẫn đảm bảo tính bao phủ. kiểm thử - Dùng để kiểm thử chức năng và cho phép thực hiện (Datatect) kiểm thử hồi qui một cách tự động. - Hỗ trợ sẵn một số loại chương trình thông dụng như: Window từ XP trở QuickTest Pro ứng dụng Windows chuẩn/Win32, ứng dụng web theo lên chuẩn HTML, XML, Visual Basic, ActiveX. - Một số loại chương trình khác (.NET, Java, …) đòi hỏi phải cài đặt thêm thành phần bổ sung. 67 68 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 17
- Tên công cụ Đặc điểm Các loại công cụ bảo trì Google Code cho phép quản lý dự án từ xa; cập nhật dự án; tạo các thành viên của dự án; phân quyền các thành viên; ghi lại lịch sử hoạt động một cách Google Code + chi tiết; phục hồi lại phiên bản của những thay đổi trước đó. Tortoise SVN TortoiseSVN là hệ thống quản lý phiên bản phía client và chỉ hỗ trợ trên môi Những công cụ quản lý cấu hình điển hình: trường Windows. Nó được dùng để quản lý sự thay đổi giữa các phiên bản, mã nguồn và sự sửa đổi của các chương trình. Hệ thống kiểm soát mã nguồn (Source Code Control Ví dụ: VisualSVN Server cho phép quản lý dự án từ xa, cập nhật dự án (có thể thông qua trình duyệt web), tạo các thành viên của dự án, phân quyền các System – SCCS) Công VisualSVN Server thành viên, ghi lại lịch sử hoạt động một cách chi tiết, phục hồi lại phiên bản của những thay đổi trước đó. Hệ thống kiểm soát phiên bản (Revision Control cụ + Tortoise SVN TortoiseSVN là hệ thống quản lý phiên bản phía client và chỉ hỗ trợ trên môi trường Windows. Nó được dùng để quản lý sự thay đổi giữa các phiên bản, System - RSC) kiểm mã nguồn và sự sửa đổi của các chương trình. Tích hợp hệ thống kiểm soát phiên bản Subversion (SVN) với nền tảng soát Eclipse. Sử dụng các Subversive plug-in, ta có thể làm việc trực tiếp với các dự án phiên được lưu trữ trong kho Subversion từ Eclipse workbench. Eclipse Công cụ này bản Subversive - -Được sử dụng như SVN client với đầy đủ tính năng: cập nhật, đưa dữ liệu Subversion (SVN) lên, hợp nhất các thay đổi, làm việc với các thuộc tính SVN, xem lịch sử thay Team Provider đổi và thực hiện các hoạt động khác với SVN một cách trực tiếp từ môi trường Eclipse. -Bổ sung một số tính năng cho một SVN client chuẩn: hiển thị nội dung kho SVN theo nhóm cấu trúc logic của cụm, nhánh và thẻ và hiển thị những thay 69 đổi trên một đồ thị phiên bản trực quan. 70 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Các loại công cụ bảo trì Công cụ hỗ trợ lập tài liệu Ví dụ: Công cụ dựa trên siêu văn bản Bộ sinh lưu đồ điều khiển và dòng dữ liệu Hết Bộ lưu vết các yêu cầu Công cụ CASE 71 72 Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ 18
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Bảo trì phần mềm - Phần 2: Quy trình bảo trì (ĐH Cần Thơ)
9 p | 255 | 42
-
Bài giảng Phát triển vận hành và bảo trì phần mềm - Chương 4
74 p | 179 | 32
-
Bài giảng Phát triển vận hành và bảo trì phần mềm - Chương 1
41 p | 165 | 28
-
Bài giảng Phát triển vận hành và bảo trì phần mềm - Chương 3
52 p | 159 | 28
-
Bài giảng Bảo trì phần mềm - Phần 3: Các vấn đề then chốt trong bảo trì phần mềm (ĐH Cần Thơ)
18 p | 115 | 16
-
Bài giảng Công nghệ phần mềm: Bài 4 - TS. Lê Nguyễn Tuấn Thành
93 p | 83 | 15
-
Bài giảng Bảo trì phần mềm - Phần 1: Giới thiệu tổng quan về bảo trì phần mềm (ĐH Cần Thơ)
12 p | 111 | 14
-
Bài giảng Phát triển vận hành và bảo trì phần mềm - Chương 2
139 p | 102 | 13
-
Bài giảng Công nghệ phần mềm: Chương 7 - Nguyễn Thị Cẩm Hương
12 p | 104 | 11
-
Bài giảng Phát triển vận hành và bảo trì phần mềm - Chương 5
12 p | 101 | 11
-
Bài giảng Công nghệ phần mềm - Phần 5: Kiểm thử và bảo trì
27 p | 84 | 8
-
Bài giảng Công nghệ phần mềm ứng dụng: Bài 5 - ThS. Thạc Bình Cường
29 p | 38 | 8
-
Bài giảng Bảo trì phần mềm - Phần mở đầu (ĐH Cần Thơ)
3 p | 92 | 7
-
Bài giảng Công nghệ phần mềm - Phần 5: Kiểm thử và bảo trì
27 p | 85 | 6
-
Bài giảng Công nghệ phần mềm: Phần 2 - ĐH Phạm Văn Đồng
57 p | 54 | 5
-
Bài giảng Công nghệ phần mềm: Chương 7 - Trần Anh Dũng
12 p | 57 | 5
-
Bài giảng Công nghệ phần mềm: Chương 6 - Hoàng Thị Hà
10 p | 24 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn