Software Design: Transform Analysis
Transform Analysis
· Convert the DFD into a first-cut structure chart
The central transform is the portion of DFD that contains the
essential functions of the system and is independent of the particular
implementation of the input and output. One way of identifying central
transform (Page-Jones, 1988) is to identify the Centre of the DFD by pruning
off its afferent and efferent branches. Afferent stream is traced from outside
of the DFD to a flow point inside, just before the input is being transformed
into some form of output (For example, a format or validation process only
refines the input – does not transform it). Similarly, an efferent stream is a
flow point from where output is formatted for better presentation. The
processes between afferent and efferent stream represent the central transform
(marked within dotted lines above). In the above example, P1 is an input
process, and P6 & P7 are output processes. Central transform processes are
P2, P3, P4 & P5 - which transform the given input into some form of output.
First-cut Structure
Chart
To produce first-cut (first draft) structure chart, first we
have to establish a boss module. A boss module can be one of the central
transform processes. Ideally, such process has to be more of a coordinating
process (encompassing the essence of transformation). In case we fail to find a
boss module within, a dummy coordinating module is created
In the above illustration, we have a dummy boss module ―Produce
Payroll‖ – which is named in a way that it indicates what the program is about.
Having established the boss module, the afferent stream processes are moved to
left most side of the next level of structure chart; the efferent stream
process on the right most side and the central transform processes in the
middle. Here, we moved a module to get valid timesheet (afferent process) to
the left side (indicated in yellow). The two central transform processes are
move in the middle (indicated in orange). By grouping the other two central
transform processes with the respective efferent processes, we have created two
modules (in blue) – essentially to print results, on the right side.The main
advantage of hierarchical (functional) arrangement of module is that it leads
to flexibility in the software. For instance, if ―Calculate Deduction‖ module
is to select deduction rates from multiple rates, the module can be split into
two in the next level – one to get the selection and another to calculate. Even
after this change, the ―Calculate Deduction‖ module would return the same
value.
· Refine the Structure
Chart
Expand the structure chart further by using the different levels
of DFD. Factor down till you reach to modules that correspond to processes that
access source / sink or data stores. Once this is ready, other features of the
software like error handling, security, etc. has to be added. A module name
should not be used for two different modules. If the same module is to be used
in more than one place, it will be demoted down such that ―fan in‖ can be done
from the higher levels. Ideally, the name should sum up the activities done by
the module and its sub-ordinates.
· Verify Structure Chart
vis-à-vis with DFD
Because of the orientation towards the end-product, the
software, the finer details of how data gets originated and stored (as appeared
in DFD) is not explicit in Structure Chart. Hence DFD may still be needed along
with Structure Chart to understand the data flow while creating low-level
design.
· check the list of properties for transform flow characteristics
· be aware that this is a guideline only
complete ===> mark position