1. Trang chủ
  2. » Luận Văn - Báo Cáo

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ơ)

18 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Các kỹ thuật và công cụ bảo trì
Trường học Đại học Cần Thơ
Chuyên ngành Công nghệ phần mềm
Thể loại Bài giảng
Thành phố Cần Thơ
Định dạng
Số trang 18
Dung lượng 1,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

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Ì Bộ môn Công nghệ phần mềm, Khoa CNTT & TT, Đại học Cần Thơ 2 Nội dung  Sự hiểu biết về chương trình  Kỹ thuật đảo ngược  Kỹ

Trang 1

BẢO TRÌ PHẦN MỀM

PHẦN IV – CÁC KỸ THUẬT

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ơ

2

Nội dung

 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ì

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

 Yêu cầu kiến thức đối với 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 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 trình là có thể thực hiện thành công các thay đổi được yêu cầu

 Điều này đòi hỏi phải có kiến thức về những điểm đặc trưng của một hệ thống phần mềm :

Trang 2

Mục đích của việc hiểu chương trình

 Lĩnh vực vấn đề

đề con nhìn riêng là cần thiết để giúp nhân sự bảo trì

trong việc:

hợp để thực hiện sự thay đổi một cách hiệu quả

thể là: tài liệu về hệ thống, người sử dụng cuối và mã

nguồn của chương trình

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

6

Mục đích của việc hiểu chương trình

 Ảnh hưởng của sự thực hiệ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 được hiệu quả mong muốn hay không.

 Tại mức trừu tượng cao, nhân sự bảo trì cần biết những kết quả

mà chương trình sẽ tạo ra cho một kết xuất đầu vào xác định mà không cần biết những đơn vị chương trình nào góp phần đưa ra 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à những đơn vị chương trình riêng lẻ sẽ tạo ra.

 Để đạt được những hiểu biết này một cách dễ dàng, nhân sự bảo trì cần có kiến thức về dòng dữ liệu, dòng điều khiển và các mô hình giải thuật.

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

Mục đích của việc hiểu chương trình

 Quan hệ nhân – quả

Trong các chương trình lớn và phức tạp, kiến thức

về quan hệ này là quan trọng vì nó:

thành phần của sản phẩm phần mềm tương tác với

nhau trong suốt sự thực hiện

đổi và bất cứ hiệu ứng truyền nào có thể xuất hiện từ

sự thay đổi

suốt chương trình

Mục đích của việc hiểu chương trình

 Quan hệ sản phẩm – môi trường

từ bên ngoài tác động lên sản phẩm

thức mà các thay đổi trong môi trường tác động đến sản phẩm nói chung và các chương trình cơ bản nói riêng

Trang 3

Mục đích của việc hiểu chương trình

 Các điểm đặc trưng hỗ trợ việc ra quyết định

tạp hay tính có thể bảo trì) có thể giúp nhân sự bảo trì

trong các quy trình ra quyết định về kỹ thuật và quản

dụng để xác định những thành phần nào của hệ thống

cần nhiều tài nguyên hơn cho kiểm thử

như một bộ đo chất lượng của hệ thống

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

10

Yêu cầu kiến thức đối với bảo trì viên

 Các thành viên trong độ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 của đội bảo trì không nhất thiết phải hiểu mọi mặt của hệ thống đang được bảo trì, tùy thuộc vào vị trí công việc mà họ phải có kiến thức về một số mặt của hệ thống.

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

Yêu cầu kiến thức đối với

bảo trì viên

 Người quản lý

các quyết định đúng Mức độ hiểu biết cần có sẽ tùy

thuộc vào quyết định được ra

 Phân tích viên

phẩm – môi trường

Yêu cầu kiến thức đối với bảo trì viên

 Nhà thiết kế

hệ nhân - quả

 Lập trình viên

thống tại các mức trừu tượng khác nhau, quan hệ nhân

- quả và quan hệ sản phẩm – môi trường

Trang 4

Yêu cầu kiến thức đối với

bảo trì viên

 Về nguyên tắc, ta có thể phân loại các vai trò của

nhân sự bảo trì nhưng trong thực tế sự phân chia

này không rõ ràng.

 Việc xác định vai trò của nhân sự bảo trì sẽ phụ

thuộc vào những yếu tố như sự tổ chức của công

việc bảo trì và vào quy mô của nhóm bảo trì

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

14

Các hoạt động liên quan đến việc hiểu chương trình

Đọc tài liệu về chương trình

Đọc

mã nguồn

Chạy chương trình

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 tài liệu về chương trình để có sự hiểu biết

tổng quan về hệ thống

(như tài liệu về hệ thống)

 Đọc mã nguồn để có được cái nhìn tổng thể và

cục bộ về chương trình

ảnh hưởng của sự thay đổi lên các phần của hệ thống

Các hoạt động liên quan đến việc hiểu chương trình

 Chạy chương trình để tìm hiểu hành vi động của chương trình

bảo trì viên khó có thể biết nếu chỉ đọc tài liệu và mã nguồn

Trang 5

Các chiến lược để hiểu chương trình

 Mô hình từ trên xuống (Top-down model)

trình, chẳng hạn như nó làm cái gì và khi nào nó thực

hiện

chẳng hạn như các kiểu dữ liệu, các dòng dữ liệu và

điều khiển, các mô hình thuật toán theo cách từ trên

xuống

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

18

Các chiến lược để hiểu chương trình

 Mô hình từ dưới lên (Bottom – up model)

trong chương trình

mức cao có ý nghĩa hơn

thành những cấu trúc lớn hơn

khi toàn bộ chương trình được hiểu

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 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)

Các cụm thứ tự mức thấp

Chiều 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)

hiếm khi được tổ chức một cách rành mạch như các mô hình từ trên xuống hay từ dưới lên

cứ manh mối nào mà họ tình cờ gặp (theo cách cơ hội)

và từ dưới lên, mặc dù không đồng bộ

Trang 6

Các yếu

tố ảnh

hưởng

đến việc

hiểu

chương

trình

Tri thức lĩnh vực

Tài liệu

Các vấn

đề thực hiện / Thực tiễn lập trình

Sự trình bày / tổ chức chương trình

Công cụ

hỗ trợ

Vấn đề Ứng dụng

Sự phân rã

Tính module

Sự che dấu thông tin

Lập trình/ Đặt tên danh biểu Giải thuật

Bên ngoài

Hệ thống

Nội bộ

Sự tượng trưng Thuật ngữ

Sự sắp đặt

Công cụ phân tích tĩnh

Công cụ phân tích động

Phụ thuộc vào: Kiến thức đã

có, tài liệu hệ thống, thảo luận Cách mà nó liên quan với ứng dụng

Sự phân cấp và module

Liên kết thấp, gắn kết cao

Độ phức tạp

Định nghĩa và tuân theo các chuẩn nội bộ

Nên: cập nhật khi hệ thống thay đổi, chính xác và súc tích, tuân theo chuẩn

Nên: phù hợp, ngắn gọn, rõ ràng và thống nhất;

Tiết lộ các đặc điểm cấu trúc của chương trình

Tiết lộ các hành vi động của chương trình

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

22

Kỹ thuật đảo ngược (Reverse Engineering)

 Định nghĩa

 Mục đích của kỹ thuật đảo ngược

 Các mức của kỹ thuật đảo ngược

 Các điều kiện để thực hiện kỹ thuật đảo ngược

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

Định nghĩa

 Kỹ thuật đảo ngược là quy trình phân tích một hệ

thống chủ thể để:

 Nhận dạng các thành phần của hệ thống và các mối

quan hệ giữa chúng

 Tạo ra các biểu diễn của hệ thống ở một dạng khác

hay ở các mức trừu tượng cao hơn

Mục đích của kỹ thuật đảo ngược

 Kỹ thuật đảo ngược tạo điều kiện thuận lợi cho sự thay đổi bằng cách cho phép hệ thống phần mềm được hiểu dưới dạng nó làm gì, nó làm như thế nào và biểu diễn kiến trúc của nó.

 Kỹ thuật đảo ngược có thể bắt đầu từ đặc tả các 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.

Trang 7

Mục đích của kỹ thuật đảo ngược

 Phục hồi thông tin bị mất

 Tạo điều kiện thuận lợi cho sự di dời giữa các nền

 Cải tiến hay cung cấp tài liệu

 Cung cấp những cái nhìn khác về hệ thống

 Rút trích thành phần có thể tái sử dụng

 Đối phó với độ phức tạp

 Phát hiện hiệu ứng lề

 Giảm thiểu công sức bảo trì

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

26

Mục đích của kỹ thuật đảo ngược

 Phục hồi thông tin bị mất, cải tiến hay cung cấp tài liệu

đổi

(đặ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 của hệ thống

(đặc tả, thiết kế) này được phục hồi

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

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

cứng mới, sự kết hợp giữa kỹ thuật đảo ngược và kỹ

thuật chuyển tiếp có thể được sử dụng

có các đặc tả và thiết kế

theo các chuẩn của nền mới

Mục đích của kỹ thuật đảo ngược

 Cung cấp những cái nhìn khác về hệ thống

 Các công cụ đảo ngược có thể được sử dụng để cung cấp những tài liệu khác (như các lưu đồ: dòng

dữ liệu, dòng điều khiển, quan hệ thực) thể nhằm

bổ sung cho tài liệu hiện có

=> cung cấp những cái nhìn khác về hệ thống

Trang 8

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

hiệu suất và cải thiện chất lượng sản phẩm

thuộc phần nào vào tính sẵn có của các thành phần đó

truy xuất và trích ra các thành phần chương trình

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

30

Mục đích của kỹ thuật đảo ngược

 Đối phó với độ phức tạp

độ phức tạp gia tăng khi chúng tiến hóa

bằng cách rút ra thông tin liên quan tới sự thay đổi và

bỏ qua cái không liên quan

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

Mục đích của kỹ thuật đảo ngược

 Phát hiện hiệu ứng lề

về hệ thống, các hiệu ứng gợn sóng (hiệu ứng lề không

mong muốn được tạo ra và các hiện tượng lạ bị bỏ qua)

là kết quả phổ biến của sự thay đổi

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

Mục đích của kỹ thuật đảo ngược

 Giảm thiểu công sức bảo trì

bộ thời gian cần để tạo ra sự thay đổi do thiếu các tài liệu phù hợp hay kiến thức về phạm vi không đủ

thông tin đang mất => giảm công sức bảo trì

Trang 9

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

Mức trừu tượng Các giai đoạn

Đặc tả

Thiết kế

Thực thi

Cao

Trung bình

Thấp

Trung bình

Phục hồi đặc tả

Phục hồi thiết kế

Dẫn chứng lại tài liệu

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

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

34

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

 Dẫn chứng lại tài liệu (Redocumentation)

tương đương về mặt ngữ nghĩa ở cùng một mức trừu tượng

hiểu biết

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)

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

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

 Phục hồi thiết kế (Design recovery)

hóa mức cao hơn và có ý nghĩa dựa trên những gì thu được

trực tiếp từ sự kiểm tra mã nguồn

có thể được sử dụng để:

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

 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 và

mô tả các mức trừu tượng cao hơn và có ý nghĩa dựa trên thiết kế hay mã nguồn của hệ thống.

 Đặc tả được khôi phục bằng kỹ thuật đảo ngược 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 xuất vào mã nguồn

 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ự.

Trang 10

Cá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 quy trình bảo trì

 Liên quan về phương diện thương mại

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

38

Cá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

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

 Điều kiện để thực hiện kỹ thuật đảo ngược

 Liên quan đến quy trình bảo trì

 Liên quan về phương diện thương mại

Lưu ý

hệ thống phần mềm đang được bảo trì) bị mất, bảo trì viên phải dùng đến các mã máy của chúng => công cụ:

disassembler và decompiler

trì viên cần có sự hiểu biết về phần mềm cấp thấp và lập trình cấp thấp

Hệ điều hành

Trang 11

Kỹ thuật tái kiến tạo (Reengineering)

Mục đích của kỹ thuật tái kiến tạo

Các bước trong 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

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

42

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

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

của nó có thể được dễ dàng đưa ra thị trường một cách riêng biệt hoặc kết hợp theo nhiều cách khác nhau

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

Phân tích

Mô hình kiến trúc mức cao

Hệ thống

Mô hình được tái xây dựng được cải tiến

Hệ thống

Hiểu, Rút trích, Trừu tượng

Tạo ra, Tinh chỉnh

Cải tiến, Cấu trúc lại,

Mở rộng

Các bước trong kỹ thuật tái kiến tạo

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

thống

phần mềm (ngôn ngữ, công cụ, máy móc, hệ điều hành) là lỗi thời

phần trước

Trang 12

Các bước trong kỹ thuật tái kiến tạo

 Kỹ thuật tái cấu trúc

thuật đảo ngược) sang các biểu diễn khác ở cùng một

mức trừu tượng

 Kỹ thuật tái cấu trúc bao gồm:

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ó

để loại bỏ chúng

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

46

Các bước trong kỹ thuật tái kiến tạo

 Kỹ thuật chuyển tiếp

thống – tiến hành từ các yêu cầu tới thực thi chi tiết thông qua thiết kế

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

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 theo hướng đối tượng

 Tái kiến tạo giao diện

Một số loại tái kiến tạo

 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:

Trang 13

Một số loại tái kiến tạo

chương trình cầu nối

nối, cạnh tranh, dịch ngược, và cùng tồn tại

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

đến việc tìm kiếm một mô hình mới để biểu diễn tri thức

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

50

Một số loại tái kiến tạo

 Tái kiến tạo giao diện người dùng

hình khái niệm giao diện người dùng

giao diện người dùng bằng một công nghệ khác

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

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 của Merlo

giữa giao diện và phần còn lại của ứng dụng

chuỗi có ý nghĩa trong ngữ cảnh của giao diện mới

hiệu quả hơn

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 MORPH

trích xuất các mô hình thực hiện giao diện người dùng từ

mã nguồn

các mô hình lập trình giao diện người dùng được xác định

là các nút lá; các thuộc tính hay nhiệm vụ tương tác khái 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

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

Trang 14

Một số loại tái kiến tạo

 Tái kiến tạo theo hướng đối tượng

phát triển lựa chọn của nhiều tổ chức phần mềm

cách sử dụng các phương pháp truyền thống => các ứng

dụng đó phải được tái kiến tạo để chúng có thể dễ dàng

được tích hợp với các hệ thống hướng đối tượng lớn

dụng là: tái cấu trúc trong ngữ cảnh hướng đối tượng

(refactoring) và các mẫu tái kiến tạo (reengineering

patterns)

Bộ môn CNPM, Khoa CNTT & TT, ĐH Cần Thơ

54

Tái kiến tạo công trình

 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 hiện những công việc:

hành vi và chức năng phù hợp

chức năng hay hành vi của ứng dụng ban đầu

đảo ngược cùng với mô hình lớp – trách nhiệm – cộng tác (Class – Responsibility – Collaborator) nhằm thiết lập cơ sở cho định nghĩa lớp

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á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 hoặc 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 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

Công cụ bảo trì

 Tiêu chuẩn để chọn công cụ bảo trì

 Các loại công cụ bảo trì

Ngày đăng: 15/10/2023, 02:45

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm