Kể từ khi chúng tôi xử lý điều chỉnh khả năng tiếp cận như một toàn cầu
vấn đề hạn chế, phương pháp tiếp cận của chúng tôi đôi khi có thể kết thúc
cho thấy một số lượng lớn các thay đổi cho nhiều khác nhau
phần của chương trình. Nó có thể nghi ngờ liệu một
cấu trúc lại đòi hỏi những thay đổi sâu rộng như vậy để
đi qua thực sự là giá trị thực hiện. Tuy nhiên, chúng tôi
tin rằng điều này là không phải cho các công cụ refactoring để quyết định.
Thay vào đó, vấn đề này là có thể xử lý tốt nhất trong người sử dụng
giao diện bằng cách cung cấp một bản xem trước của những thay đổi được đề xuất để
các lập trình viên, những người vẫn có thể chọn để bỏ
refactoring nếu nó là quá xâm lấn.
Ngay cả với một bản xem trước như vậy, nó vẫn có thể không rõ ràng để các
userwhya thay đổi nhất định là cần thiết. Chúng tôi để lại nó cho tương lai
công việc để đưa ra giải thích cho những thay đổi được đề xuất.
8RELATEDWORK
Gần hai thập kỷ sau khi ra đời của kỷ luật như
đánh dấu bằng các luận đề của Griswold [26] và Opdyke [27],
refactoring vẫn là một vấn đề khó khăn. Điều này được chứng minh bằng một
cơ thể phát triển đều đặn của văn học về đề tài này, vẫn còn
đối phó với các vấn đề cơ bản giống như lễ khai mạc
công trình: làm thế nào để xây dựng công cụ sắp xếp được như đáng tin
cậy. Như các công cụ lập trình khác như trình biên dịch và gỡ rối
bắt đầu với công việc của Opdyke [27] và Roberts [28],
hầu hết các nghiên cứu trước đó đã sắp xếp dựa vào tiền và
postconditions để đảm bảo rằng hành vi của chương trình được bảo tồn. Tuy nhiên, các thông biện minh rằng một tập hợp các
điều kiện là đủ để đảm bảo bảo quản hành vi là
rất khó khăn. Do đó, nhiều tác giả đã làm việc cho
một ngữ nghĩa chính xác của các đối tượng ngôn ngữ, trong đó
chương trình sẽ được tái cấu trúc được viết và sau đó chính thức
chứng minh rằng một refactoring cho luôn giữ chương trình
ngữ nghĩa. Ví dụ, Borba et al. [29] sử dụng một tiên đề
đang được dịch, vui lòng đợi..
