Page 136 -
P. 136

Chapter 5   System modeling  119


                                       System modeling is the process of developing abstract models of a system, with each
                                       model presenting a different view or perspective of that system. System modeling
                                       has generally come to mean representing the system using some kind of graphical
                                       notation, which is now almost always based on notations in the Unified Modeling
                                       Language (UML). However, it is also possible to develop formal (mathematical)
                                       models of a system, usually as a detailed system specification. I cover graphical
                                       modeling using the UML in this chapter and formal modeling in Chapter 12.
                                         Models are used during the requirements engineering process to help derive the
                                       requirements for a system, during the design process to describe the system to engi-
                                       neers implementing the system and after implementation to document the system’s
                                       structure and operation. You may develop models of both the existing system and the
                                       system to be developed:


                                       1.  Models of the existing system are used during requirements engineering. They
                                          help clarify what the existing system does and can be used as a basis for dis-
                                          cussing its strengths and weaknesses. These then lead to requirements for the
                                          new system.
                                       2.  Models of the new system are used during requirements engineering to help
                                          explain the proposed requirements to other system stakeholders. Engineers use
                                          these models to discuss design proposals and to document the system for imple-
                                          mentation. In a model-driven engineering process, it is possible to generate a
                                          complete or partial system implementation from the system model.


                                         The most important aspect of a system model is that it leaves out detail. A 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 informa-
                                       tion 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 abstrac-
                                       tion 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 main-
                                       tain all the information as it is presented in English.
                                         You may develop different models to represent the system from different perspec-
                                       tives. For example:


                                       1.  An external perspective, where you model the context or environment of the system.

                                       2.  An interaction perspective where you model the interactions between a system
                                          and its environment or between the components of a system.
                                       3.  A structural perspective, where you model the organization of a system or the
                                          structure of the data that is processed by the system.
                                       4.  A behavioral perspective, where you model the dynamic behavior of the system
                                          and how it responds to events.
   131   132   133   134   135   136   137   138   139   140   141