Software Implementation
Software Implementation
Software Implementation
Jong Franco
Structured Programming
• In the process of coding, the lines of code keep multiplying, thus, size
of the software increases. Gradually, it becomes next to impossible to
remember the flow of program. If one forgets how software and its
underlying programs, files, procedures are constructed it then
becomes very difficult to share, debug and modify the program. The
solution to this is structured programming. It encourages the
developer to use subroutines and loops instead of using simple jumps
in the code, thereby bringing clarity in the code and improving its
efficiency Structured programming also helps programmer to reduce
coding time and organize code properly.
Structured programming uses three main
concepts:
• Top-down analysis - A software is always made to perform some rational work. This
rational work is known as problem in the software parlance. Thus it is very important
that we understand how to solve the problem. Under top-down analysis, the problem is
broken down into small pieces where each one has some significance. Each problem is
individually solved and steps are clearly stated about how to solve the problem.
• Modular Programming - While programming, the code is broken down into smaller group
of instructions. These groups are known as modules, subprograms or subroutines.
Modular programming based on the understanding of top-down analysis. It discourages
jumps using ‘goto’ statements in the program, which often makes the program flow non-
traceable. Jumps are prohibited and modular format is encouraged in structured
programming.
• Structured Coding - In reference with top-down analysis, structured coding sub-divides
the modules into further smaller units of code in the order of their execution. Structured
programming uses control structure, which controls the flow of the program, whereas
structured coding uses control structure to organize its instructions in definable patterns.
Functional Programming
There are some challenges faced by the development team while implementing the
software. Some of them are mentioned below:
• Code-reuse - Programming interfaces of present-day languages are very
sophisticated and are equipped huge library functions. Still, to bring the cost
down of end product, the organization management prefers to re-use the code,
which was created earlier for some other software. There are huge issues faced
by programmers for compatibility checks and deciding how much code to re-use.
• Version Management - Every time a new software is issued to the customer,
developers have to maintain version and configuration related documentation.
This documentation needs to be highly accurate and available on time.
• Target-Host - The software program, which is being developed in the
organization, needs to be designed for host machines at the customers end. But
at times, it is impossible to design a software that works on the target machines.
End