Technology to support system comprehension tends to reflect either a "bottom-up" or "top-down" approach. Bottom-up approaches attempt to derive system models from source code, while top-down approaches attempt to map "domain" concepts to concrete system artifacts. While both approaches have merit in theory, in practice the top-down approach has not yielded scalable, cost-effective technology. One problem with the top-down approach is that it is very expensive to develop domain models, and it is difficult to develop models that are sufficiently general to be applied to multiple systems (and hence amortize the development cost). This paper describes the Gadfly, an approach for developing narrowly-focused, reusable domain models that can be integrated and (re)used to aid in the process of top-down system comprehension.
Kurt C. Wallnau, Paul C. Clements, Edwin J. Morris