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