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:
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:
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:
- Compile the program with profiling flag enabled.
- Run the program to generate the profiling data.
- Generate the profiling report.
- 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:
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)