DEFINITION
Software tool is system programs.
Interface a program with the entity generating is
input data. Or
Interface the result of a program with the entity
consuming them Or
Less obvious but vital role is played by programs
that help in developing and using other
programs.
in simple we can say that software through we
make other programs .
EX:
Show a schematic of a software tool.
Originator
Software tools Consumer
s
Raw Program
or data
Transformed
Program or
data
Explanation:
A file rewriting utility organizes the data in a file
in a format suitable for processing by a program.
The file rewriting utility is a software tool
according to our definition.
There are two kinds of software tools:
Software tools for program development
User interface
Software tools for program development:
The fundamental steps in program development
are:
1) Program design ,coding & documentation
2)Preparation of program in machine readable
form
3)Program translation linking & loading
4)Program testing and debugging
5)Performance tuning
6)Reformating the data.
1).Program design &coding:
Two categories of tools used in program design &
coding are:
1)Program generators
2)Programming environments.
Program generators generator program and it
performs a set of functions described in a specification.
it also that what functions a program should perform
rather then how the functions should be implemented.
A programming environment supports program coding
by incorporating of the programming lang. syntax and
semantics in the language editor.
2).Program entry and editing
These are text editors more sophisticated
programs with text editor as front ends. Editor in
two modes one is command mode and second is
that data mode.
In such editor edit are command and data like
mix up edit.
In the data mode the user keys in the text to be
added to the file Failure to recognize the current
mode of the editor can lead to mix up of command
& data.
3). Program testing and debugging
In selection of testing data for the program, analysis
of test results to detect errors and debugging.
Ex . localization and removal of errors.
Software tools to assist the programmer in these
steps come in the following forms.
1. Test data generators help the user in selecting
test data for his program. It use through user get help
and done thoroughly tested.
2. Automated test drivers help in regression
testing.
Þ These are given as inputs to the test driver. The
driver subject one at time organizes execution of
the program on the data.
Þ Fig of process
Sets of test data
Test driver
-------------------------------
----
Programs
under test
Continue…
Continue…
3. Debug monitors help in obtaining information for
localization of errors. It show the local error for
solving.
4. Source code control systems help to keep track of
modification in the source code. It men’s that it show the
location of change for solving error.
Debug information:-
=> Such information's Can be produced statically by
analyzing the source program or dynamically during
program execution.
4).Enhancement of program performance
Program performance depends on two factors
- efficiency of the algorithm
- efficiency of its coding.
Þ An optimizing compiler can improve efficiency of the
code but it can’t improve efficiency of the algorithm.
It is better to focus on only those sections of a program
which consume a considerable amount of execution
time.
Þ A profile monitor is software tools that collection
information Regarding the execution behavior of a
program. Ex:- computer graphics, computer performance.
5) Program documentation
Most programming project suffer from lack of up-to-
date documentation.
Automatic documentation tools are motivated by
the desire to overcome this deficiency.
These tools work on the source program to
produce different forms of documentation.
e.g. Flow charts, IO specifications showing files
and their records, etc.
6) Design of Software Tools
Program preprocessing and Instrumentation.
1) Program preprocessing :- Program preprocessing
techniques are used to support static analysis of programs.
2) Instrumentation:- Program instrumentation
implies insertion of statements in a program.
Continue…
Program preprocessing and Instrumentation :-
The instrument program is translated using a standard
translator.
During execution, the inserted statements perform a set
of desired functions.
Continue…
Profile and debug monitors typically use this technique.
In a profile monitor, an inserted statement updates a
counter indicating the number of times a statement is
executed, whereas in debug monitors an inserted
statement indicates that execution has reached a
specific point in the source program.
Program interpretation and Program generation.
Interpreter
Generated
Program
Results
Results
Data
Data
Program
Generator
Task
Specification
Task
Specification
Figure shows the schematic of software tools using the
techniques of interpretation & Program generation.
Program interpretation & Program generation.
Use of interpreters in software tools is motivated by the same reasons
that motivate the use of interpreters in program development.
Most requirement met by software tools are ad hoc, it is useful to
eliminate the translation phase.
However, interpreter based tools suffer from poor efficiency and poor
probability, since an interpreter based tool is only as portable as the
interpreter it uses.
A generated program is more efficient and can be made portable.
Debug monitors
Debug monitors provides the following facilities
for dynamic debugging:
1)Setting breakpoints in the program
2)Initiating a debug conversation when control
reaches a breakpoint
3)Displaying values of variables
4)Assigning new values to variables
5)Testing user defined assertions & predicates
involving program variables.