Page 159 - DCAP308_OBJECT_ORIENTED_ANALYSIS_AND_DESIGN
P. 159

Unit 12: System Design




               Two objects are inherently concurrent if they can receive events at the same time without  Notes
               interacting. If events are unsynchronized, you cannot fold the objects onto a single thread
               of control.
               You must allocate each concurrent subsystem to a hardware unit, either a general-purpose
               processor or specialized functional unit.

               The system designer must identify global resources and determine mechanisms for
               controlling access to them. There are several kinds of global resources: Physical system,
               Space, Logical names, Access to shared data.
               It is best to choose a single control style for the whole system. There are two kinds of
               control flows in a software system: External control and internal control.

               Although most of the system design concerns steady-state behavior system designer must
               consider boundary conditions as well and address issues like initialization, termination
               and failure.
               The system designer must set priorities that will be used to guide trade-offs for the rest of
               the design. For example system can be made faster using extra memory.

          12.4 Keywords


          Deployment diagram:  A deployment diagram shows how the systems will be physically
          distributed on the hardware.
          External control: External control concerns the flow of externally visible events among the
          objects in the system.
          Initialization: It refers to initialization of constant data, parameters, global variables, tasks,
          guardian objects, and classes as per their hierarchy.
          Internal control: Internal control refers to the flow of control within a process.
          Layers: Layers define an abstract world and work like a client of services for layers below and as
          a supplier of services for layers above it.
          Partitions: Partitions vertically divide a system into several independent or weakly subsystems,
          each providing one kind of service.
          Pattern: A pattern is a proven solution to general problem.
          Subsystem: A subsystem is a package of classes, associations, operations, events and constraints
          that are interrelated and have a reasonably well defined interface to the rest of the system.
          12.5 Review Questions


          1.   Describe the concept of system design.
          2.   Make distinction between frameworks based reuse and pattern based reuse.
          3.   Explain how to organize the decomposition of systems into subsystems.
          4.   Discuss the concept of identifying concurrency with example.

          5.   What should system designer do in order to provide allocation to each component? Discuss.
          6.   Analyze and discuss the use of several kinds of global resources.
          7.   Illustrate the concept of choosing software control strategy.





                                           LOVELY PROFESSIONAL UNIVERSITY                                   153
   154   155   156   157   158   159   160   161   162   163   164