Page 194 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 194

Principles of Software Engineering



                   Notes
                                                  Figure 9.11: Control Flow Graph with Complexity 28













































                                 One essential ingredient in  any testing  methodology is to limit the program logic  during
                                 development so the program can be understood, and the amount of testing required verifying
                                 the logic is not overwhelming. A developer who, ignorant of the implications of complexity,
                                 expects to verify a module such as that of with a handful of tests is heading for disaster. The
                                 size of the module in size of several of the previous graphs exceeded 60 lines, for example the
                                 module in. In practice, large programs often have low complexity and small programs often have
                                 high complexity. Therefore, the common practice of attempting to limit complexity by controlling
                                 only how many lines a module will occupy is entirely inadequate. Limiting complexity directly
                                 is a better alternative. (See Figure 9.8 and Figure 9.9)
                                                It is difficult to define or measure software qualities and quantities and to
                                                determine a valid and concurrent measurement metric.

                                 9.2 Data Binding


                                 We  have  seen  that  coupling  and  cohesion  are  significant  concepts  for  evaluating  a  design.
                                 However, to be really effective, metrics are wanted to “measure” the coupling between modules
                                 or the cohesion of a module. During system design, we tried to quantify coupling based on
                                 information flow between modules. Now that the logic of modules is also available, we can come
                                 up with metrics that also consider the logic. One metric that attempts to capture the module-level
                                 concept of coupling is data binding. Data bindings are events that capture the data interaction
                                 across portions of a software system. In other words, data bindings try to specify how strongly




        188                               LOVELY PROFESSIONAL UNIVERSITY
   189   190   191   192   193   194   195   196   197   198   199