The course concerned ‘Program Design and Implementation’ at my workplace provided me with keen ideas on the various design strategies and the methods for implementing them. The knowledge that I acquired from the lessons helped me to develop good designing and programming skills.
I’ve been working in the Program Design and Implementation field for a long period. It provided me with exposure to the phases of testing and exploitation in the field of designing. The programming paradigms used in my work were procedural, functional and object-oriented. This resulted in developing efficient programs. The object structures were built using the class diagrams which were constant diagrams used to define the overall organization of the program. It shows the various modules of a program and their inter-relationship in the program execution.
The following paragraphs describe the information that I absorbed through the studies on the area of Program Design and Implementation.
A program is a collection of instructions to be executed in order to meet a particular task. Program specification is an assertion on the tasks to be carried out by the program, with a complete brief on the inputs given, processes occurring and the outputs obtained at the end of the execution. The program is always considered as a collection of discrete tasks to be accomplished to reach the end result. The program specification is of great importance because this makes the programmer eligible to do the programming more accurately and efficiently due to the more specific representation of the tasks to be accomplished.
The algorithmic paradigms are universal method of defining answers to the problems in hand. The algorithmic design is widely used in programming because it simplifies the complexity of developing programs. The conversion of the algorithms to the data structures and control programs can be done easily in most of the high level languages used nowadays. The outputs can be verified easily in the algorithmic analysis. There are many numbers of algorithm design techniques like Divide and Conquer, Dynamic Programming, Greedy Method and Backtracking & Search Techniques. The minimal spanning tree and the integer knapsack problematic approaches can be met easily in the algorithmic designing.
Data design should be done with the exact information on the inputs, processes and outputs of the task to be accomplished through the program execution. Designing of data requires recognizing the data, naming and categorizing them as various data types and the methods of storage to be used. The features of data used and the phases through which the data has to evolve are to be determined and analyzed in the data designing mechanism. The definition, identification and integration of data are done in this phase of design.
The languages used to write the computer programs are called programming languages. The programming languages can be categorized into three levels: machine level language, low level language, high level language.
The machine level language programs are written using the binary digits 1s and 0s. This is the lowest level of computer programming language, but is easily understood by the machine. The other languages are either low level or high level languages.
The low level languages are very much closer to the machine level language. The machine codes and the low level languages are different for different processors; so the programs written in those languages cannot be used as a common program code for different machines. The processor specific opcodes are used in low level programming languages.
The high level language consists of codes written in human languages. Each code will be equal to many numbers of machine codes in the case of high level languages while for low level languages a single code represents a single machine code.
Another method of categorizing of languages is as: Absolute Machine Code, Assembly Language, Compiler Language and Interpreter Language. As the name indicates, absolute machine code is written in the most basic binary language using 1s and 0s. Assembly language is a symbolic translation of machine code which can be easily understood by the user but not by the machine. An assembler program is used to convert the assembly level program to absolute machine code. Compiler language is a high level language which is converted to the absolute machine code using the software called compiler. The machine code is generated after compilation and the generated code is run to obtain the results. The interpreter language is also a high level language which is directly run without converting the code to absolute machine codes. In this language programming, each statement is run one by one thereby consuming more time in running the program.
The programs written in machine level or binary language are very easily understood by the machine and can have least execution error. This programming is very much useful for the programming at the machine design level which should be accurate up to the maximum limit.
Programming languages consist of notations that are used for specifying, analyzing and organizing computations. They make the machines easy to use. The syntax of programming languages is represented using tokens or terminals. Programming language syntax is specified using regular expressions and context free grammars.
Many procedures of editing, compiling, linking, etc are needed to produce an executable program. The linking process combines two or more object programs to an executable program. It is done by a program called linker. Compiling is done by a compiler which translates the source program into object program.
Program testing is done to find the errors in the program. Testing does not ensure correctness of the program. It only helps in finding errors so that it can be corrected. A tested program will be better than an untested one, because in a tested program the number of errors will be comparatively less. Testing is used in verification and validation. Program testing requires giving some data as input to check if the outcome is correct. The programmers have the responsibility to test their own program codes. After the completion of this module testing, it is given to the integration team to integrate the modules and build software and thus the system as a whole is tested.
Design of Test Data
The inputs that are made to test the system are called test data. At times test data can be automatically generated.
Program Testing Methods
There are different methods by which a program is tested. Two of the most important of these are the black box testing and the white box testing. Black box testing is also called functional testing. Here the test is derived from the program. In this, the input is given to the system and its corresponding output is examined. If the output is not similar to the predicted output, there is some error. White box testing is also called structural testing. This testing is commonly applied to small program units. Here, the code is analyzed and it can be used to find how many test cases are needed. Path testing is another method of program testing which tests the entire execution path through a program.
“Program documentation includes hard-copy or electronic manuals that enable users, program developers, and operators to interact successful with a program.” (What is Program Documentation, para.2). These manuals help in running a program. It helps to understand what the program does and how to execute it. Internal documentation and external documentation are the two types of program documentation. Internal program documentation is the common type, but external documentation is easier to write.
Programming paradigms is a new way of thinking about programs. Some examples for this are lisp, prolog etc. The four main programming paradigms are imperative programming, functional programming, logic programming and object oriented programming. Imperative programming languages are action oriented, that is, the computation is viewed as a series of actions and it is mainly used in scientific programming. The concept of functional programming emerged with a programming language called LISP. It uses the evaluation of expressions in programming. Object oriented programming uses the concept of objects and classes. It classifies objects into classes and subclasses. Logic programming is developed to support natural language processing. It can create a program which helps the computer in logical reasoning.
The course on ‘Program design and implementation’ leads to a state capable of handling the programming domain with ease and expertise. The approach to the implementation of various design factors is recognized in depth and accuracy.
. Blurt it: Ask it, Answer it, Blurt it. 2009. Web.