Software Implementation - Software Engineering

What are the different methods of programming in software implementation?

The software implementation is associated with the following programming models.

Structured Programming

The codes leads to enlarge the software size as the codes multiply thus making it a difficult task to connect with the program flow. It becomes very hard for the program to be shared or modifies, as the files, programs, procedures and the manner in which the program is constructed is not remembered. This drawback of coding is overcome by structured programming. Some of the structures such as subroutines and loops are used by the developers. These subroutines and loops facilitate in improving the efficiency and the coding time is decreased and also the coding is organized.

The coding of a particular programming is described by structured programming. There are three basic concepts upon which the concept of structured programming revolve. They are -

  • Top-down analysis – The most important part of any program is problem solving. Problem can be easily solved only when the problem is understood. The problem is divided into several parts. Each sub-problem is solved individually and hence the problem solving is simplified.
  • Modular Programming – Programming can also be done by simplifying the code into groups of instructions. These groups of instructions are known as modules or sub-programs. Modular programming is done by following the Top-down analysis. As the jump method makes it difficult to locate the program. Structured programming always prefer modular format that Jumps.
  • Structured Coding – Under this concept, the modules are broken down further thus simplifying the execution. The flow of the program is controlled as control structure is chosen by structured programming. The coding instructions are enabled to organize by structured coding.

Functional Programming

It is a programming that uses mathematical functions. When a particular argument is received by a mathematical function, result produced by that function will be the same. In some of the procedural languages, procedures take over the control on the flow of the program. There is a possibility of the state of the program getting changed in the process of shifting the control flow from one procedure to another.

When a particular argument is received by the procedural programming, result produced by that program will be different as the state of the program keeps on changing. This calls for taking more consideration about some of the aspects of programming such as sequence of the program and the timing of the code.

Mathematical functions are used by functional programming and which enable to produce the result without considering the state of the program. This enables to forecast the program behaviour.

There are different concepts upon which the concept of functional programming revolves. They are

  • First class and High-order functions – Some other function can be accepted as an argument or the result may be produced on some other function by these High-order functions.
  • Pure functions – These functions are not considered to be destructive as the memory, Input or Output is not influenced by these functions. They can be easily deleted, if not required and hence the program is not hampered.
  • Recursion – The program code is repeated by the function as the function calls itself. The repetition of the program code stops when some pre-defined conditions match. The repetition of the code results in development of loops. Here the input and the output are based on functional programming.
  • Strict evaluation – The argument of the function is evaluated either by strict evaluation or non-strict evaluation. Before a function is called, the expression is evaluated by strict evaluation. Unless required the expression is not evaluated by non-strict evaluation.
  • λ-calculus – λ-calculus is chosen by the function programming. Only when they occur, they are evaluated.

Examples of the function programming are - Common Lisp, Scala, Haskell, Erlang and F#

Programming style

The code is written in accordance with some of the predefined coding rules. Programming style refers to the set of such coding rules. For the program, the program code may be written by on developer and the program is worked on by other developer. Thus making it a big confusion. This confusion is avoided by setting and following some standard programming styles to write the program code.

Relevant function and variable names are included by the programming style for a particular task. This facilitates in letting the indentation to be well-placed, at the reader convenience the code can be commented and the presentation of the code. Thus the program code is easily understood. Here solving of the errors can be made easy. It also simplifies the documentation of the program code and updation.

Coding Guidelines

Different organization has different language of coding and different styles for coding.

Each of the organization coding guidelines has to consider some of the coding elements in general, such as -

  • Naming conventions – Defines the way in which the functions, variables, constants and variables need to be named.
  • Indenting – Indenting is the space that is left blank at the beginning of line, 2-8 whitespace or single tab is used for indenting.
  • Whitespace - It is generally omitted at the end of line.
  • Operators – The different operators – assignment. Mathematical and logical are defined. For example, space should be there before and after the assignment operator ‘=’ as in “x = 2”.
  • Control Structures – Some of the clauses such as if-then-else, case-switch, while-until are to be written by following some set of rules which are defined by Control Structures.
  • Line length and wrapping – The length of the line in terms of number of characters is defined. For the long sentences the lines should be wrapped as per the specified rules of wrapping.
  • Functions – The declaration and the calling of the function is defined in two ways – with parameters and without parameters.
  • Variables – The definitions and the declarations of different variables are mentioned.
  • Comments – The functioning of the code is described as comments. The predefined comments help in creating documentations and the associated descriptions.

How the documentation of the Software is done?

A software document is considered as a repository of information related to the complete process of the software. The information about the usage of the product is also provided by the software documentation. Well-structured and well-organized software documentation involves maintenance of certain documents. They are -

Requirement documentation

As the name implies, all the functional and non-functional requirements and the description of the desired software are documented in requirement documentation. Since this includes the collection of requirements, it is considered as an important tool for the complete team of developers, designers and testers.

This document is prepared on the basis of previous data of the running software, which is running at the Client; It is also based on the research, questionnaires submitted by the clients and by interviewing the clients. The software management team stores and maintains this document and is stored in either spreadsheet or word processing document.

It is the basic foundation to develop any software. Verification and validation of the software is also done on the basis of this document. Requirement documentation also facilitates in preparing the test-cases.

Software Design documentation

The necessary information that is required for developing the software is provided by this software design documentation. The document provide information related to High-level software architecture, Software design, Data flow diagrams, and Database design

The software implementation is mainly based on this document. All the relevant and important information regarding coding and implementation is provided. Though not provide the details of exactly how the program is coded.

Technical documentation

The information about the code is documented by technical documentation, which can only be prepared by the developers. The code is written along with some additional information such as the code objective, writer of the code, the usage of the code, resources required by the code etc.

When the same code is worked on by different programmers, this documentation enables the programmers to better understand and interact with each other. The ability of re-usability of the code is improved by this documentation.

Technical documentation can be prepared by using different available tools and some of such tools are made available with the programming language. For example java comes with JavaDoc tool, which facilitate in developing the technical documentation of the code.

User documentation

The explanation about the working of the software and best usage of the software for obtaining the desired results is provided by User documentation. User documentation varies from other three types of documentation in the aspect that they are more information oriented for software development, while user documents provides explanation.

The guidelines related to how to install a software, user-guidelines, methods for uninstallation, information about the license updation is provided by these user documentation.

What are the different challenges faced by Software Implementation?

The implementation of the software is not left without the challenges for the developers. Some of the major challenges are -

  • Code-reuse – The code that is earlier created and meant for some other software is preferred to be re-used by the management in order to reduce the cost of the end product. This leave the programmers with bunch of issues as they will be in a dilemma on how much of the code need to be re-used and it is troublesome to do the compatibility checks for the code for re-using.
  • Version Management – For all the new software, the version of the software and the configuration of the software has to be documented and maintained by the developers. This should me made easily available and handy whenever required.
  • Target-Host – The software program need to be designed with respect to the host machines at the end of the user. Sometimes it may be feasible to do so but at some instances, it becomes very difficult and challenging to design the software with respect to the host machines.

All rights reserved © 2020 Wisdom IT Services India Pvt. Ltd Protection Status

Software Engineering Topics