Page 189 -
P. 189

172   Chapter 6   Architectural design



                                                      Lexical      Syntax      Semantic
                                                      Analyzer    Analyzer     Analyzer





                                          Pretty-           Abstract     Grammar
                                          Printer          Syntax Tree  Definition         Optimizer


                                                            Symbol       Output             Code
                                           Editor            Table      Definition         Generator
                  Figure 6.20 A
                  repository architecture
                  for a language                                  Repository
                  processing system





                    KEY POINTS



                        A software architecture is a description of how a software system is organized. Properties of a
                         system such as performance, security, and availability are influenced by the architecture used.

                        Architectural design decisions include decisions on the type of application, the distribution of
                         the system, the architectural styles to be used, and the ways in which the architecture should be
                         documented and evaluated.

                        Architectures may be documented from several different perspectives or views. Possible views
                         include a conceptual view, a logical view, a process view, a development view, and a physical view.
                        Architectural patterns are a means of reusing knowledge about generic system architectures.
                         They describe the architecture, explain when it may be used, and discuss its advantages and
                         disadvantages.
                        Commonly used architectural patterns include Model-View-Controller, Layered Architecture,
                         Repository, Client–server, and Pipe and Filter.

                        Generic models of application systems architectures help us understand the operation of
                         applications, compare applications of the same type, validate application system designs, and
                         assess large-scale components for reuse.

                        Transaction processing systems are interactive systems that allow information in a database to
                         be remotely accessed and modified by a number of users. Information systems and resource
                         management systems are examples of transaction processing systems.
                        Language processing systems are used to translate texts from one language into another and
                         to carry out the instructions specified in the input language. They include a translator and an
                         abstract machine that executes the generated language.
   184   185   186   187   188   189   190   191   192   193   194