Page 245 -
P. 245

216           PART TWO  MANAGING SOFTWARE PROJECTS


                       •  Each mnemonic must be a single character
                       •  Each mnemonic must be in ASCII
                       These rules are invariant across locales, and can be used to verify that a menu is constructed
                       correctly in the target locale.
                          There were several possibilities for how to mistake-proof the menu mnemonics:
                       Prevention device. We could write a program to generate mnemonics automatically, given
                       a list of the labels in each menu. This approach would prevent mistakes, but the problem
                       of choosing a good mnemonic is difficult and the effort required to write the program would
                       not be justified by the benefit gained.
                       Prevention device. We could write a program that would prevent the localizer from choos-
                       ing mnemonics that did not meet the criteria. This approach would also prevent mistakes,
                       but the benefit gained would be minimal; incorrect mnemonics are easy enough to detect
                       and correct after they occur.
                       Detection device. We could provide a program to verify that the chosen menu labels and
                       mnemonics meet the criteria above. Our localizers could run the programs on their trans-
                       lated message catalogs before sending the catalogs to us. This approach would provide
                       very quick feedback on mistakes, and it is likely as a future step.
                       Detection device. We could write a program to verify the menu labels and mnemonics,
                       and run the program on message catalogs after they are returned to us by the localizers.
                       This approach is the path we are currently taking. It is not as efficient as some of the above
                       methods, and it can require communication back and forth with the localizers, but the
                       detected errors are still easy to correct at this point.
                       Several small poka-yoke scripts were used as poka-yoke devices to validate the structural
                       aspects of the menus. A small poka-yoke script would read the table, retrieve the mnemon-
                       ics and labels from the message catalog, and compare the retrieved strings against the
                       established criteria noted above.
                          The poka-yoke scripts were small (roughly 100 lines), easy to write (some were written
                       in under an hour) and easy to run. We ran our poka-yoke scripts against 16 applications in
                       the default English locale plus 11 foreign locales. Each locale contained 100 menus, for a
                       total of 1200 menus. The poka-yoke devices found 311 mistakes in menus and mnemon-
                       ics. Few of the problems we uncovered were earth-shattering, but in total they would have
                       amounted to a large annoyance in testing and running our localized applications.
                          This example depicts a poka-yoke device that has been integrated into software
                       engineering testing activity. The poka-yoke technique can be applied at the design,
                       code, and testing levels and provides an effective quality assurance filter.


                8.10   THE ISO 9000 QUALITY STANDARDS                 6

                       A quality assurance system may be defined as the organizational structure, responsi-
                       bilities, procedures, processes, and resources for implementing quality management


                       6  This section, written by Michael Stovsky, has been adapted from “Fundamentals of ISO 9000” and
                          “ISO 9001 Standard,” workbooks developed for Essential Software Engineering, a video curriculum
                          developed by R. S. Pressman & Associates, Inc. Reprinted with permission.
   240   241   242   243   244   245   246   247   248   249   250