Software design inconsistency can be hard to trace manually. Computer assistance in detecting and resolving inconsistency issues can help improve the quality of sophisticated software designs. Existing solutions include design guidance, critiquing system and static consistency checking. Related research includes inconsistency management of requirements such as goal conflict resolution, viewpoints, and overlaps. However, none of these approaches integrate their solutions into the design process effectively.; This thesis describes a rule-based (or production system) solution to the aforementioned problem. We characterize classes of inconsistency that occur in software design. We define a production system language and rules specific to software designs modeled in UML. We demonstrate our solution on a design exemplar. Using this approach, we are able to detect inconsistencies, notify the users, recommend resolutions, and automatically fix the inconsistency during the design process. However, the expressiveness of production language is limited due to the informality of UML.
展开▼