An Example from Software Design and Development

As our first example of a software design application of Taguchi Methods, we will consider a software program improvement project for the Indian government. It was created by B. Kanchana and published as his doctoral dissertation at the Indian Institute of Science at Bangalore.5 Most software design projects start with an existing program rather than a blank sheet of paper (or a blank programming screen these days), so our example exhibits little loss of generality as a typical software design project. This Indian Defense Ministry project was to redesign the man-machine interface display (MMID) subsystem of the Airborne Surveillance Platform (ASP) system, which was programmed in the C language. The quality goal was to reduce the number of errors per module in the system shown in hierarchical form in Figure 4. This subsystem employs a user interface device to provide access protocol, equipment control, and operations oversight, and it displays the air surveillance situation on a color display.

Figure 4 Architecture of the MMID Subsystem

image

Each engagement of the system lasts five or six hours and involves thousands of data words scanned every few seconds. Figure 5 shows part of the cause-and-effect diagram for typical design faults in the project’s requirements, specification, and design phases. The two major modules of MMID, Receive_plot_data() and Command_proc_task(), are shown in Figure 6. Receive_plot_data() displays plot data in screen coordinates, and Command_proc_task() handles azimuth display, range ring display, and maximum range detection. The first factor is the number of requirements per module. The second is the cyclomatic complexity of each module. The third is coupling modes between modules, data coupling (call by value), stamp coupling (call by name), control coupling (method invocation), common data coupling (global data reference), and content coupling (remote method invocation), in increasing complexity. These parameters or control factors are listed together with their possible levels in Table 4.

Figure 5 A Typical Cause-and-Effect Diagram for Design Faults

image

Figure 6 Major Modules of the MMID Subsystem

image

Table 4 Control Factors and Their Levels

image

A factorial experiment to consider all possible factor level combinations of these would require 18 experiments because A is at three levels, B is at three levels, and C is at two levels, and 3 × 3 × 2 = 18. Taguchi has tabulated a series of orthogonal arrays for use in such experiments. L9 (for a nine-row Latin square) is the appropriate array for this data set, as shown in Table 5.

Table 5 Taguchi’s L9 Orthogonal Array

image

For each experiment, a number of modules are tested for errors, as shown in Table 6. Kanchana computed the SNR as

S/N(θ) = –10 log10 [Σ (yi2/n)], i = 1, n

in which θ = (θ1, θ2, …, θk) is the vector of control parameters, and y = (y1, y2, …, yk) is the vector of performance statistics. You repeat each observation n times at each selected combination of design parameter sets in the orthogonal array. The best setting of the design parameters is the one that maximizes the SNR—in this case, the type 2 experiment. In other words, it’s the case in which cyclomatic complexity is maintained at level 2, coupling is kept at level 2, and the number of requirements per module is kept at level 1.

Table 6 Experimental Results

image

To verify these results, Kanchana examined the error-prone module Set_mission_time() and discovered that it had a cyclomatic complexity of 18, two requirements per module, and employed common coupling. To improve MMID quality, this module was split into six smaller modules. After coding, they were tested to discover only one error in one of them rather than the six in the first version. Likewise, Security_clearance() was examined to discover a cyclomatic complexity of 12 and common coupling but only level 1 requirements. It was split into five modules, none of which showed any errors upon testing. The conclusion in Kanchana’s dissertation and in a later presentation6 was that the optimal design parameters for MMID are one requirement per module, coupling by data passing whenever possible, and limiting cyclomatic complexity to less than 10.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.224.60.220