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