The editor is used for creating and editing source code files and text files.
A good editor should have the following features:
Some editors:
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:
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.
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:
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:
This tool automatically generates documentation from the source files. The documentation is generated from the source code and from the remarks.
Some documentation generators:
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 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:
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:
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:
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.
The linker is used after the compilation, for combining all the object (.OBJ) files to one executable (.EXE) or a library (.LIB / .DLL) file.
The debugger is used for finding runtime bugs.
The debugger has the following features:
Common debuggers:
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:
Common profilers:
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:
The Integrated Development Environment is a program that includes all the development tools:
Common IDE's:
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, reduces the file/directory size.
We can use this utility:
Common file compression tools:
Installation tool is used to manage the software installation process.
The installation tool has the following features:
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.
The installation process should take minimal time.
Small installation file size is achieved by file compression.
The installation should check for errors in the installation file and the installed software.
Common installation tools:
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:
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:
This can be a big advantage, it allows quick response time and can save long distance traveling.