Overview About System Models
User requirements should be written in natural language because they have to be understood by people who are not technical experts. However, more detailed system requirements may be expressed in a more technical way. One widely used technique is to document the system specification as a set of system models. These models are graphical representations that describe business processes, the problem to be solved, and the system that is to be developed. Because of the graphical representations used. models are often more understandable than detailed natural language descriptions of the system requirements. They are also an important bridge between the analysis and design processes.
You can use models in the analysis process to develop an understanding of the existing system that is to be replaced or improved or to specify the new system that is required. You may develop different models to represent the system from different perspectives. For example:
An external perspective, where the context or environment of the system is modeled
A behavioral perspective, where the behavior of the system is modeled
A structural perspective, where the architecture of the system or the structure of the data processed by the system is modeled
I cover these three perspectives in this chapter and also discuss object modeling, which combines, to some extent, behavioral and structural modeling. The most important aspect of a system model is that it leaves out detail. A system model is an abstraction of the system being studied rather than an alternative representation of that system. Ideally, a representation of a system should maintain all the information about the entity being represented. An abstraction deliberately simplifies and picks out the most salient characteristics. For example, in the very unlikely event of this book being serialized in a newspaper, the presentation there would be an abstraction of the book's key points. If it were translated from English into Italian, this would be an alternative representation. The translator's intention would be to maintain all the information as it is presented in English.
Different types of system models are based on different approaches to abstraction. A data-flow model (for example) concentrates on the flow of data and the functional transformations on that data. It leaves out details of the data structures. By contrast, a model of data entities and their relationships documents the system data structures rather than its functionality.
Examples of the types of system models that you might create during the analysis process are:
A Data flow model shows how the data is processed at different stages in the system.
An aggregation model shows how the entities in the system are composed of the other entities.
An architectural model Architectural models show the principal subsystems that make up a system.
A classification model diagram shows how entities have common characteristics.
A stimulus-response model A stimulus-response model, or state diagram, shows how the system reacts to internal and external events.
All these types of models are covered in this chapter. Wherever possible, I use notations from the Unified Modeling Language (UML), which has become a standard modeling language for object-oriented modeling (Booch, et al., 1999; Rumbaugh, et al., 1999a). Where UML does not include appropriate notations, I use simple intuitive notations for model description. A new version of UML (UML 2. 0) is under development but was not available when I wrote this chapter. However, I understand that the UML notation that I have used here is likely to be compatible with UML 2. 0.
0 Comments