Abstract
As a complex software system evolves, its implementation tends to deverge from
the intended or documented design models. Such undesirable deviation makes the
system hard to understand, modify, and maintain. This paper presents a hybrid
computer-assisted approach for confirming that the implementation of a system
maintains its expected design models and rules. Our approach closely integrates
logic-based static analysis and dynamic visualization, providing multiple code
views and perspectives. We show that the hybrid technique helps determine design
implementations congruence at various levels of abstarction: concrete rules like
coding guidelines, architectural models like design patterns or connectors, and
subjective design principles like low coupling and high cohesion. The utility
of our approach has been demonstrated in the development of Choices, a new
multimedia operating system which inherits many design decisions and guidelines
learned from experience in the construction and maintenance of its predecessor,
Choices.