Monitoring compliance of a software system with its high-level design models
- 23 December 2002
- proceedings article
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 387-396
- https://doi.org/10.1109/icse.1996.493433
Abstract
As a complex software system evolves, its implementation tends to diverge 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-implementation congruence at various levels of abstraction: 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 /spl mu/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.Keywords
This publication has 15 references indexed in Scilit:
- A prototype system for static and dynamic program understandingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- μChoices: an object-oriented multimedia operating systemPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002
- Interactive visualization of design patterns can help in framework understandingPublished by Association for Computing Machinery (ACM) ,1995
- Software reflexion modelsPublished by Association for Computing Machinery (ACM) ,1995
- Reverse engineering to the architectural levelPublished by Association for Computing Machinery (ACM) ,1995
- Exploiting style in architectural design environmentsPublished by Association for Computing Machinery (ACM) ,1994
- Designing and implementingChoicesCommunications of the ACM, 1993
- Categories and Context in Scalable Execution VisualizationJournal of Parallel and Distributed Computing, 1993
- The C information abstraction systemIEEE Transactions on Software Engineering, 1990
- ANNA A Language for Annotating Ada ProgramsPublished by Springer Nature ,1987