Working on...

your queries, use contact form

17 Aug 2020

Steps of Program Development: Software development cycle

 Before proceeding to programming, first understand the steps of programming. Programming may be in any language but must need some basic things to be considered.

 

Steps of Program Development:

  1. Defining the problem
  2. Algorithm: Sequence of operation or program 
  3. Flow chart: Geographical representation of operation or program 
  4. Check list initialization: like required registers, flags, SFR’s, Ports, variables, constants etc.
  5. Selecting instructions properly
  6. Converting the algorithm in actual program

Program is nothing but sequence of instruction which is arranged in proper manner. Following are some steps involved in software development i.e. software development cycle.

        1.      Write codes i.e. instructions

        2.      Translate written codes into suitable language

        3.      Debug the codes i.e. look for errors using emulators

        4.      Linking programs together

        5.      Load final code into microcontroller (Burn the program into microcontroller)

 

 OR

 

1.      Write codes i.e. instructions: Generally assembly language (Low level language) or C-language (High level language) is used to write the codes/ instructions for microcontroller. To write codes, editors are used. By considering difference between assembly language and C-language, one can decide his/her choice. Editor programs such as MS dox, notepad are used to write codes in ASCII text format. The written codes must be saved with extension .asm (for assembly language) or .c (for C-language). Thus output of editor program is .asm or .c file.

2.      Translate written codes into suitable language: Assembler is used to convert codes written in assembly language into machine codes. On the other hand compiler is used for the same when codes are written in C-language. Assembler/compiler produces .obj files (Object files) and .lst files (List files). List file lists all operational codes addresses and errors that are detected assembler/compiler.

3.      Debug the codes i.e. look for errors using emulators: Debugger is the tool used to debug the codes. Most of the compilers/assemblers include debugger which allows the user to test and debug program. Debugger provides facility of breakpoints as well as single step testing.

4.      Linking programs together: Generally large programs are divided into small modules for ease of testing and debugging. The function of linker is to combine all object files into one program. The output of linker program is .abs file (absolute file) which is input for next stage.

5.      Load final code into microcontroller (Burn the program into microcontroller):  Object hex programs are used to convert absolute files into final executable file i.e. hex files that are ready to burn into ROM of microcontroller. There are so may OTP (one time programmer) and flash programming tools like flash magic, which are used to load/burn program into microcontroller.

 

Software and hardware tools used in software development:

Following is the list of different hardware and software development tools followed by brief explanation.

        1.      Editor

        2.      Assembler

        3.      Compiler

        4.      Interpreter

        5.      Linker

        6.      Locator

        7.      Loader

        8.      Library

        9.      Debugger

        10.  Simulator

        11.  Emulator

        12.  IDE

 

Editor: Editor Program is used to create and modify the source program written in low level language (assembly language) or high level language (c-language). Editor program comes with commands to change, delete or insert lines or characters. Notepad, MS docs, MSDOS are some examples of editor.

 

Assembler: Assembler is a program used to translate low level language (Assembly) programs into machine language.

Self assembler is type of assembler which runs on the microcontroller for which it produces output. In other words, codes generated by self assembler are used for that particular microcontroller.

Cross assemblers are the assemblers that create codes for different microcontrollers. Macro assembler is the assembler which provide facility to use macro (macro is the sequence of codes or instruction to which name is assigned)

 Compiler: Compiler is a program used to translate high level language (c-language) programs into machine language. Compiler program provides facility to check all kinds of limits, ranges, errors. Self compiler is type of compiler which runs on the microcontroller for which it produces output. In other words, codes generated by self compiler are used for that particular microcontroller. Cross compilers are the compilers that create codes for different microcontrollers.

 Interpreter: Interpreter is a program used to translate high level language (c-language) programs into machine language like compiler does. Basic difference between compiler and interpreter is compiler converts entire code into machine language at a time, where interpreter converts codes into machine language step by step or statement-wise.

 Linker: Large programs are difficult to test and debug hence it can be splitted into small programs called as modules. These modules are easy to test and debug. After testing and debugging, linker is used to combine these modules to form a large program. All object files created by modules are combine/linked together using linker program.

 Locator: Locator program is used to assign specific memory address to machine language codes that are to be loaded into memory.

 Loader: Loader program used to load object files into memory

 Library: Library program is used to manage, organize and revision of reusable modules.

 Debugger: Debugger program is used to debug the codes. Most of the compilers/assemblers include debugger which allows the user to test and debug program. Debugger provides facility of breakpoints as well as single step testing.

 Simulator: Simulator program is used to simulate the behavior of hardware system. Simulator defines a processor and different versions of target system along with status of memory, simulated ports and peripherals.

 Emulator: Emulator is hardware tool which duplicates the function original system by using different methods so that it will acts like original system. In other words emulator is prototype of original system which maintains look and feel of original system.

 IDE (Integrated Development Environment): IDE is application software which consists of project manager, editor, assembler, compiler, linker, locator, debugger, simulator, logic analyzer etc. IDE supports for defining the processor and its different versions. It supports user definable assembler and multi user environment.

 

No comments:

Post a Comment