Category : [Programing Paradigm :: Procedural Programing]
StructuredProgramingcan be seen as a sub-discipline of Procedural
Programing, a major programing paradigm. Where the logic of a program
is a structure composed of similar sub-structures in a limited number
of ways. This reduces understanding a program to understanding each
structure on its own, and in relation to that containing it.
To make the programs efficient both in time and in memory space, it is typical to use Goto statements to build complicated procedures even though being blamed to be spaghetti programs.And the Structured Programing Paradigm is most famous to remove (in gradual way) the use of GoTo statements from programs.
To eliminate Goto statements, all stress was laid on use of only three basic control constructs, including Sequencing, Selection, and (Pre-condition) Loop.
> Sequencing : a sequence of statements executed in a predefined order
> Selection :one set of all sets of instructions is executed at certain condition
> Loop : its repetition of certain set of instructions till a condition is survived
The programming method was backed up with the philosophy of 'Step-wise Refinement', with which programmers were encouraged to design/code program modules step by step in a top-down style.
Structured Programming encourages or guarantees the tree structure in the hierarchy of procedural blocks in each program module. Procedural calls of subroutines and functions are the methods for allowing the overlap of procedural flows. Thus we may say division into software modules is the strategy to keep the simplicity inside the modules and to reserve flexible and interchangeable usage of modules.
One of the core points of Structured Programming has been found 'Avoiding from Skewed Nesting' in the construction of software, especially inside the modules. In the physical fields of technology this may suggest to avoid from skewed nesting in the construction of technical systems in the sense of space, functionality, etc. For instance it may suggest that subsystems should not occupy spaces in skewed overlapping manners and that subsystems should not carry functions in skewed overlapping ways.
It is remarkable that Structured Programming proposed in the abstract level a guiding principle similar to the ones in Axiomatic Design in much earlier time, that
* Good design achieves independence between different functional requirements, and
* Good design achieves the functional requirements with minimal complexity.