refactoring là một loạt các biến đổi đúng đắn bảo quản, nhưng refactoring có thể dẫn trong mã tổng quát hơn so với bản gốc
vì vậy chúng tôi không thể chỉ khẳng định rằng một T chuyển đổi refactoring về chương trình P có tính chất tương tự R trước và sau khi tái cấu trúc, nhưng các thuộc tính R 'của chương trình P refactored' nên có ít nhất tương đương với R
given program P implies R
refactoring transformation T(P) produces P'
where (P' implies R') and (R' is equivalent to or subsumes R')
chúng ta cũng có thể khẳng định rằng các đầu vào và đầu ra vẫn như cũ hoặc tương đương
nhưng để làm theo ví dụ của bạn, có lẽ chúng ta muốn định nghĩa một phép chuyển đổi cấu trúc lại T như một P-I 4, I, O, R trong đó P là chương trình gốc, tôi là đầu vào và/hoặc điều kiện tiên quyết, O là kết quả đầu ra và/hoặc postcondition, và R là chương trình biến đổi, sau đó khẳng định (sử dụng logic thời gian?) Mà
P:I -> O
nắm giữ trước khi chuyển đổi
T(P) -> R
xác định chuyển đổi, và
R:I -> O
nắm giữ sau khi chuyển đổi
toán mang tính biểu tượng của tôi là Rusty, nhưng đó là một hướng đi chung
điều này sẽ làm luận án một bậc thầy ngon, BTW
Nguồn
2008-11-19 06:20:18
mở cửa trở lại và bỏ phiếu tán - đây là một câu hỏi tuyệt vời –
gì trên trái đất về tấn công là điều này? Một câu hỏi rất hay. – tvanfosson
Biến đổi có thể lặp lại bao gồm các điều kiện tiên quyết của riêng chúng, do đó, nó có vẻ dư thừa trong đặc tính này. –