Các cơng cụ bảo trì có thể được phân lại theo các chức năng sau: + Thiết kế ngược với các cơng cụ đặc trưng.
+ Các cơng cụ phân tích và cấu trúc lại mã. + Các công cụ kiến tạo lại hệ thống trực tuyến.
Cáccôngcụthiếtkếngược:Các công cụ thiết kế ngược tiến hành tạo lại các phân tích ban
đầu trên cơ sở các chương trình đã tồn tại. Các cơng cụ này cũng có thể phân ra loại tĩnh và động.
Một cơng cụ thiết kế ngược dùng mã nguồn như đầu vào và phân tích lấy ra kiến trúc chương trình, cấu trúc điều khiển, luồng logic, cấu trúc dữ liệu, luồng dữ liệu. Các công cụ thiết kế phụ thuộc (Dependency analysis tools) tiến hành phần lớn các chức năng trên, ngồi ra nó cịn xây dựng sơ đồ graphic biểu diễn sự phụ thuộc chỉ sự liên kết giữa các cấu trúc dữ liệu, khối chương trình, và các đặc tính khác của chương trình.
Các công cụ thiết kế ngược quan sát phần mềm khi nó chạy và sử dụng các thơng tin nhận được để xây dựng mơ hình dáng điệu của chương trình. Mặc dù chúng ít được dùng nhưng cần thiết cho việc bảo trì các chương trình thời gian thực hoặc được nhúng trong hệ thống khác.
Cáccơngcụthiếtkế:Các cơng cụ thiết kế lại có thể chia làm hai nhóm: cơng cụ cấu trúc
lại mã, cơng cụ thiết kế lại dữ liệu.
Các công cụ cấu trúc mã lại nhận mã nguồn phi cấu trúc như là đầu vào, tạo thiết kế ngược, sau đó cấu trúc lại mã mới. Mặc dù các cơng cụ như vậy có thể hữu ích, chúng chỉ tập trung trong việc thiết kế thủ tục của chương trình.
Các cơng cụ thiết kế lại dữ liệu làm việc tại cực kia của thiết kế. Các công cụ như vậy truy nhập định nghĩa dữ liệu hoặc cơ sở dữ liệu được mơ tả trong ngơn ngữ lập trình hoặc ngơn ngữ mơ tả cơ sở dữ liệu. Sau đó nó chuyển sang dạng biểu diễn graphic có thể phân tích được bởi kỹ sư phần mềm.
Tương tác với các công cụ thiết kế lại, kỹ sư phần mềm có thể thay đổi cấu trúc của cơ sở dữ liệu, chuẩn hố dữ liệu, sau đó tự động sinh mã mới. Các cơng cụ có thể sử dụng hệ chuyên gia.