Page 156 - DCAP308_OBJECT_ORIENTED_ANALYSIS_AND_DESIGN
P. 156

Object Oriented Analysis and Design




                    Notes              Initialization: It refers to initialization of constant data, parameters, global variables,
                                       tasks, guardian objects, and classes as per their hierarchy. Initialization of a system
                                       containing concurrent tasks must be done in a manner so that tasks can be started without
                                       prolonged delays. There is quite possibility that one object has been initialized at an early
                                       stage and the other object on which it is dependent is not initialized even after considerable
                                       time. This may lead to halting of system tasks.

                                       Termination: Termination requires that objects must release the reserved resources. In
                                       case of concurrent system, a task must intimate other tasks about its termination.
                                       Failure: Failure is the unplanned termination of the system, which can occur due to system
                                       fault or due to user errors or due to exhaustion of system resources, or from external
                                       breakdown or bugs from external system. The good design must not affect remaining
                                       environment in case of any failure and must provide mechanism for recording details of
                                       system activities and error logs.

                                   12.2.9 Setting Trade-off Priorities

                                   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.
                                   Design trade-offs involve not only the software itself but also the process of developing it.
                                   System designer must determine the relative importance of the various criteria as a guide to
                                   making design trade-offs. Design trade-offs affect entire character of the system. Setting
                                   trade-offs priorities is at best vague. We cannot even give a full list of design criteria that might
                                   be subject to trade-offs.

                                   Summary of the setting trade-off-priorities
                                       Establish priorities for choosing between incompatible goals
                                       Implement minimal functionality initially and embellish as appropriate
                                       Isolate decision points for later evaluation

                                       Trade efficiency for simplicity, reliability.

                                   12.2.10 Common Architectural Styles

                                   Several prototypical architectural styles are common in existing systems. Each of these is well
                                   suited to a certain kind of system. Some of the styles are as follows:

                                   Batch Transformation

                                   A data transformation executed once on an entire input set. It performs sequential computations.
                                   The application receives the inputs and the goal is to compute an answer; there is no ongoing
                                   interaction with the outside world. The steps are as follows:

                                   1.  Break the overall transformation into stages, with each stage performing one part of the
                                       transformation.
                                   2.  Prepare class models for the input, output and between each pair of successive stages. Each
                                       state knows only about the models on either side of it.
                                   3.  Expand each stage in turn until the operations are straight forward to implement.
                                   4.  Restructure the final pipeline for optimization.



          150                               LOVELY PROFESSIONAL UNIVERSITY
   151   152   153   154   155   156   157   158   159   160   161