Document Type


Lead Author Type

CIS Masters Student


Dr. Paul Jorgensen,

Embargo Period



In a discussion of the creation and evolution of the statechart, David Harel, the creator of the model, talks about his primary goals for making a good model. He emphasizes that a good model should be clear, precise, visualizable, and executable. A clear model is one that can be easily understood by someone unfamiliar with the system being modeled. A precise model shows the entirety of the system under consideration, without including extraneous information. A visualizable model is one that can be interpreted by a user using primarily visual information, meaning some words must exist for thing like labels, but the majority of the information contained in the model is expressed through symbols that are easily understandable. An executable model is one that can be developed and then applied to help users understand or even create the system that is modeled.

These ideas are indeed very important to the usefulness of a model, as a model that is lacking in one or more of these areas could be difficult to understand, use, or both. Today, however, there are dozens of different models that aim to show different aspects of systems, and many of these models may not have been designed with the same goals that Harel outlines.

This paper aims to examine the complexity of various software models, including UML models and other commonly used models. I will look at each model and attempt to determine areas of the model that are particularly hard to understand, or areas where ambiguity is possible within the model. I will discuss the implications that model complexity has on a persons ability to learn the model and to recall it at a later date. I will also discuss ways to improve a persons ability to remember the aspects of a model when they are an infrequent user or when they have not encountered that model in a long time.