Page 297 -
P. 297

280   Chapter 10   Sociotechnical systems










                                                                             Requirements
                                                  Domain and Problem         Elicitation and
                                                    Understanding
                                                                               Analysis


                                                          Start

                                                     Review and               Architectural
                                                     Assessment                 Design





                  Figure 10.8                      System Requirements and
                  Requirements and                  Design Documentation
                  design spiral

                                    designs and requirements may be accepted or rejected. The process ends when a
                                    review decides that the requirements and high-level design are sufficiently detailed
                                    for subsystems to be specified and designed.
                                       In the subsystem engineering phase, the hardware and software components of
                                    the system are implemented. For some types of system, such as spacecraft, all hard-
                                    ware and software components may be designed and built during the development
                                    process. However, in most systems, some components are commercial off-the-shelf
                                    (COTS) systems. It is usually much cheaper to buy existing products than to develop
                                    special-purpose components.
                                       Subsystems are usually developed in parallel. When problems that cut across sub-
                                    system boundaries are encountered, a system modification request must be made.
                                    Where systems involve extensive hardware engineering, making modifications after
                                    manufacturing has started is usually very expensive. Often ‘work-arounds’ that com-
                                    pensate for the problem must be found. These ‘work-arounds’ usually involve soft-
                                    ware changes because of the software’s inherent flexibility.
                                       During systems integration, you take the independently developed subsystems
                                    and put them together to make up a complete system. This integration can be done
                                    using a ‘big-bang’ approach, where all the subsystems are integrated at the same
                                    time. However, for technical and managerial reasons, an incremental integration
                                    process where subsystems are integrated one at a time is the best approach:

                                    1.  It is usually impossible to schedule the development of the subsystems so that
                                        they are all finished at the same time.
                                    2.  Incremental integration reduces the cost of error location. If many subsystems
                                        are simultaneously integrated, an error that arises during testing may be in any of
   292   293   294   295   296   297   298   299   300   301   302