This paper illustrates the application of use case maps to understanding object-oriented frameworks, using as examples two frameworks, HotDraw and ACE. It is probably the clearest explanation so far, in the smallest space, of the way use case maps can be applied to understanding object-oriented programs.
This is a book chapter.
Abstract
Object-oriented frameworks provide a powerful construction technique for software, but understanding the behaviour of applications constructed from them is well known to be difficult, for a number of reasons. 1) The first class representation of the framework in code centers around construction; system structure and behaviour are only visible in a second class way, in widely scattered details. 2) The system view we seek is not a concrete thing, but an abstraction. 3) The use of design patterns, a common practice in frameworks, may obscure the system view by making intercomponent interactions more indirect than they would otherwise be. 4) The use of combinations of design patterns obscures the system view because pattern combination is not yet a well defined subject. 5) Both the system view we seek and design patterns are abstractions, so gaining system understanding requires combining multiple abstractions, for frameworks that make serious use of design patterns. 6) Although framework class organizations are fixed, systems constructed from framework are self modifying while they are running, and self modifying software is notoriously difficult to understand. 7) Specific applications are visible only in framework customization details. This paper illustrates by example how a general technique called “use case maps”—invented by the author for describing complex systems of any kind—can help to alleviate these difficulties. To indicate the range of applicability, the examples are drawn from frameworks in very different application domains: HotDraw for GUIs and ACE for communications. The objective is to raise the visibility in the framework community of the UCM approach to alleviating the above problems, not to “prove” UCMs solve them or to provide a cookbook for solving them.
--
Gunter Mussbacher - 13 Oct 2005
Discussion
- Please feel free to discuss this article directly on this page. Constructive comments are welcomed! Please sign your TWiki name.