Page 315 -
P. 315

286           PART THREE  CONVENTIONAL METHODS FOR SOFTWARE ENGINEERING


                            in the wait state until (1) an internal clock indicates that some time interval
                            has passed, (2) an external event (e.g., a mouse movement) causes an inter-
                            rupt, or (3) an external system signals the software to act in some manner. A
                            behavioral model creates a representation of the states of the software and
                            the events that cause a software to change state.
                          Models created during requirements analysis serve a number of important
                       roles:

                         •  The model aids the analyst in understanding the information, function, and
         ?  How do we       behavior of a system, thereby making the requirements analysis task easier
            use the
         models we create   and more systematic.
         during
         requirements    •  The model becomes the focal point for review and, therefore, the key to a
         analysis?          determination of completeness, consistency, and accuracy of the specifica-
                            tions.
                         •  The model becomes the foundation for design, providing the designer with
                            an essential representation of software that can be "mapped" into an imple-
                            mentation context.
                          The analysis methods that are discussed in Chapters 12 and 21 are actually mod-
                       eling methods. Although the modeling method that is used is often a matter of per-
                       sonal (or organizational) preference, the modeling activity is fundamental to good
                       analysis work.

                       11.3.3  Partitioning

                       Problems are often too large and complex to be understood as a whole. For this rea-
                       son, we tend to partition (divide) such problems into parts that can be easily under-
                       stood and establish interfaces between the parts so that overall function can be
         Partitioning is a  accomplished. The fourth operational analysis principle suggests that the informa-
         process that results in
         the elaboration of  tion, functional, and behavioral domains of software can be partitioned.
         data, function, or  In essence, partitioning decomposes a problem into its constituent parts. Concep-
         behavior. It may be  tually, we establish a hierarchical representation of function or information and then
         performed horizontally  partition the uppermost element by (1) exposing increasing detail by moving verti-
         or vertically.
                       cally in the hierarchy or (2) functionally decomposing the problem by moving hori-
                       zontally in the hierarchy. To illustrate these partitioning approaches, let us reconsider
                       the SafeHome security system described in Section 11.2.2. The software allocation
                       for SafeHome (derived as a consequence of system engineering and FAST activities)
                       can be stated in the following paragraphs:
                       SafeHome software enables the homeowner to configure the security system when it is
                       installed, monitors all sensors connected to the security system, and interacts with the
                       homeowner through a keypad and function keys contained in the SafeHome control panel
                       shown in Figure 11.2.
   310   311   312   313   314   315   316   317   318   319   320