
Given constraints and preferences, the system will perform constraint propagation to filter out inconsistent domain values. Then using predefined preferences, the decision maker will make decisions continuously until consistent solution(s) is(are) found with "Backtracking" and "Consistency Check".
Their primary objective is design automation. Therefore the system should be tightly integrated to maximize efficiency. However, tight integration makes the system not very useful for incremental revision support under dynamic constraints and preferences because the system does not generate the rejection inconsistent reasons but are necessary for backtracking.