According to Kelly-Bootle, a word processor is “a text editor with 200 unused features” [1]. Constantine states a premise at the outset of this paper:
Great graphics and sound ergonomics are wasted if a system is not really useful and usable…real usability…requires an architecture for the user interface and underlying functionality that fits with…the intent of users. Without insight into these essentials, developers [produce] software that fails to support users despite a veritable panoply of interface widgets and warts, dread symptoms of that modern software disease, creeping featuritis.
The “essential use case modeling” approach is not a specific interface design technique, but a process to be used within design approaches based on users’ needs, in order to extend and qualify user-centered approaches. About half the paper is devoted to an example that provides clarity and motivation.
Essential use case modeling is developed from two ideas. Essential modeling is concerned with the overall effect of a system, emphasizing the users’ work and objectives, rather than the means of achieving that effect. Use cases deal with what a system can do, that is, its essence as seen by a user on the outside. “SendingEmail” is an example of a use case. Individual use cases can have relationships: affinity (similarity), classification (subsets), extension (potentially reusable optional behaviors), and dependence. Since people use software in different capacities, the user role model is introduced to define specific circumstances. All this is coalesced and annotated in the use context model, which is the stage preceding the user interface architecture. It differs from the architecture in excluding appearance and details of components.