3.1 Software Tools

Editor

The editor is used for creating and editing source code files and text files.

A good editor should have the following features:

  • Menus, toolbars and accelerator keys.
  • Find in  files text search.
  • Bookmarks.
  • Easy indentation.
  • Macro recorder.
  • Reload last workspace on startup.
  • File compare tool.
  • Syntax highlighting.

 

Some editors:

File comparison tool

The file comparison tool is used for finding the differences between 2 selected files or folders. The advanced tools can perform three-way comparison.

Using this tool you can perform:

  • Versions comparison:

    This can be very useful when you have 2 versions, an old version and a new version, and you want to find out what were the changes that were done to the new version.

  • Versions merge:

    When 2 developers finished developing 2 branches that were created from the same base version, one should compare his branch to the base version and insert his changes to the other branch.

 

Some file compare tools:

  • FC/COMP - windows command line comparison.
  • diff - UNIX/Linux command line comparison.
  • WinDiff - free graphical comparison tool from Microsoft.
  • Araxis Merge - powerful three-way comparison tool.

File/text search tool

This tool is used to find files and text during development.

The tool is usually integrated in the operating system and in the editor.

 

Some common file/text search tools:

  • DIR - windows command line file search.
  • FIND/FINDSTR - windows command line text string search.
  • ls - UNIX/Linux command line file search.
  • grep - UNIX/Linux command line text string search.
  • Windows explorer.
  • Google Desktop

Documentation generator

This tool automatically generates documentation from the source files. The documentation is generated from the source code and from the remarks.

 

Some documentation generators:

Version control tool

The version control tool is used for managing source code versions. The version are kept in a common database, that is shared by all the clients.

 

Some source code control tools:

  • TortoiseSVN
  • RCS

Modeling tool

Modeling tool is a computer aided software engineering (CASE) tool that is used for graphical software design.

The graphical design is usually a unified modeling language (UML) diagram.

The tool can generate class definition source code from the model.

 

Common modeling tools:

Bug tracking system

The bug tracking tool is used to register software bugs and tasks. The data is kept in a shared database, that all team members have access. The programmer enters the tracking tool the description and status of the issue. The status specifies the stage of the issue: pending / implementation / test / done.

 

Common bug tracking tools:

Make tool

The make tool is used for building projects according to the make file definitions.

The make file includes the project building dependencies.

 

makefile

# Makefile example:

 

# Link when test1.o or test2.o change

test: main.o test.o

    gcc -o test main.o test.o

 

# Compile main.o when main.c or main.h change

main.o: main.c main.h

    gcc -c main.c

 

# Compile test.o when test.c or test.h change

test.o: test.c test.h

    gcc -c test.c

 

Some make tools:

Compiler

The compiler is used for translating high level source code files to machine language object files.

When compiling C file, the result will be an object (OBJ) file.

Linker

The linker is used after the compilation, for combining all the object (.OBJ) files to one executable (.EXE) or a library (.LIB / .DLL) file.

Debugger

The debugger is used for finding runtime bugs.

The debugger has the following features:

  • Breakpoints
  • Step by step execution
  • Variables values watch
  • Functions call stack
  • Memory browsing
  • Registers values watch
  • Trace buffer

 

Common debuggers:

  • GDB - UNIX debugger.

Profiler

The profiler is used for program performance analysis. You can use it to find runtime bottlenecks. The profiler generates a report that show the execution time of each program function.

There are 4 steps to profile a program:

  1. Compile the program with profiling flag enabled.
  2. Run the program to generate the profiling data.
  3. Generate the profiling report.
  4. Detect bottlenecks and take action to resolve them.

Common profilers:

Memory leak detection tool

This tool lets you find memory leaks. A memory leak is created when a memory is allocated but  not freed by the software. This often happens when we allocate memory using new or malloc(), but neglect to release the allocated memory with delete or free(). During program execution, when memory is not freed, the free memory gradually shrinks and the application is uses swapped memory from the hard disk. This significantly slows down the execution. This problem is common when programming with C/C++, but not when programming with Java/C#, which have built in automatic garbage collection.

Common memory leak detection tools:

Integrated development environment (IDE)

The Integrated Development Environment is a program that includes all the development tools:

  • Editor
  • Make tool
  • Compiler
  • Linker
  • Debugger
  • Profiler

 

Common IDE's:

Simulation tool

Simulation tool is used before application development, for algorithm development.

The simulation tool is usually a scripting language, that can be used for fast algorithm development. Using the simulation tool may save a lot of development time, since the simulation is done on a higher level of abstraction then the simulation.

 

Common simulation tools:

File compression tool

File compression tool, reduces the file/directory size.

We can use this utility:

  • Backup source code and binary files versions.
  • Create smaller product release and installation file.
  • Compress files to save disk space.
  • Compress files before sending via internet.

 

Common file compression tools:

Installation tool

Installation tool is used to manage the software installation process.

The installation tool has the following features:

  • Ease of use:

    The installer has a wizard like user interface (GUI).

    It also has a progress bar, to notify the user that the installation process is still going on.

  • Fast installation:

    The installation process should take minimal time.

  • Small installation file size:

    Small installation file size is achieved by file compression.

  • Reliable installation:

    The installation should check for errors in the installation file and the installed software.

 

 

Common installation tools:

  • Windows Installer / Microsoft
  • InstallShield / Acresso

FTP tool

FTP (File Transfer Protocol) software tool is used to transfer files from/to remote computers via the internet. This tool can transfer very large files, that can't be transferred by email.

 

Common FTP tools:

Remote Control Tool

The remote access and control tool allows you to connect to other computer over the network or over phone line, and control it like you were sitting in front of the computer.
This tool can be used for accessing the customer's computer for:

  • Debugging
  • Maintenance
  • Version update
  • Version configuration

This can be a big advantage, it allows quick response time and can save long distance traveling.

Packet Sniffer (protocol analyzer)

 

 

Write how to improve this page

PROGRAMMING TIPS
RAPID TABLES