Page 166 -
P. 166

Chapter 6   Architectural design  149



                                                    Vision
                                                    System



                                                    Object
                                                 Identification         Arm           Gripper
                                                    System            Controller     Controller




                                                               Packaging
                                                               Selection
                                                                System





                                                                Packing
                     Figure 6.1 The                             System                 Conveyor
                     architecture of a packing                                         Controller
                     robot control system


                                         Software architecture is important because it affects the performance, robustness,
                                       distributability, and maintainability of a system (Bosch, 2000). As Bosch discusses,
                                       individual components implement the functional system requirements. The non-
                                       functional requirements depend on the system architecture—the way in which these
                                       components are organized and communicate. In many systems, non-functional
                                       requirements are also influenced by individual components, but there is no doubt
                                       that the architecture of the system is the dominant influence.
                                         Bass et al. (2003) discuss three advantages of explicitly designing and document-
                                       ing software architecture:


                                       1.  Stakeholder communication The architecture is a high-level presentation of the sys-
                                          tem that may be used as a focus for discussion by a range of different stakeholders.
                                       2.  System analysis Making the system architecture explicit at an early stage in the
                                          system development requires some analysis. Architectural design decisions
                                          have a profound effect on whether or not the system can meet critical require-
                                          ments such as performance, reliability, and maintainability.
                                       3.  Large-scale reuse A model of a system architecture is a compact, manageable
                                          description of how a system is organized and how the components interoperate.
                                          The system architecture is often the same for systems with similar requirements
                                          and so can support large-scale software reuse. As I explain in Chapter 16, it may
                                          be possible to develop product-line architectures where the same architecture is
                                          reused across a range of related systems.
   161   162   163   164   165   166   167   168   169   170   171