Page 58 -
P. 58

CHAPTER 2  THE PROCESS                                              29

               FIGURE 2.4
               The linear
               sequential
               model                     System/information
                                            engineering




                                       Analysis         Design           Code              Test









                              design and analysis. Information engineering encompasses requirements gathering
                              at the strategic business level and at the business area level.
                              Software requirements analysis. The requirements gathering process is intensi-
                              fied and focused specifically on software. To understand the nature of the program(s)
                              to be built, the software engineer ("analyst") must understand the information domain
                              (described in Chapter 11) for the software, as well as required function, behavior, per-
                              formance, and interface. Requirements for both the system and the software are doc-
                              umented and reviewed with the customer.
                              Design. Software design is actually a multistep process that focuses on four distinct
                              attributes of a program: data structure, software architecture, interface representa-
                              tions, and procedural (algorithmic) detail. The design process translates requirements
                              into a representation of the software that can be assessed for quality before coding
                              begins. Like requirements, the design is documented and becomes part of the soft-
                Although the linear
                model is often derided  ware configuration.
                as “old fashioned,” it  Code generation. The design must be translated into a machine-readable form.
                remains a reasonable  The code generation step performs this task. If design is performed in a detailed man-
                approach when  ner, code generation can be accomplished mechanistically.
                requirements are well
                understood.   Testing. Once code has been generated, program testing begins. The testing process
                              focuses on the logical internals of the software, ensuring that all statements have
                              been tested, and on the functional externals; that is, conducting tests to uncover
                              errors and ensure that defined input will produce actual results that agree with required
                              results.
                              Support. Software will undoubtedly undergo change after it is delivered to the cus-
                              tomer (a possible exception is embedded software). Change will occur because errors
                              have been encountered, because the software must be adapted to accommodate
                              changes in its external environment (e.g., a change required because of a new oper-
                              ating system or peripheral device), or because the customer requires functional or
                              performance enhancements. Software support/maintenance reapplies each of the
                              preceding phases to an existing program rather than a new one.
   53   54   55   56   57   58   59   60   61   62   63