Lecture 07 Software Tools and Environments Notes PDF
Lecture 07 Software Tools and Environments Notes PDF
Programming environments
Simply stated, a programming environment is the collection of tools used in software
development. It is a system which supports a activities in writing programs, such as editing,
compiling, linking and debugging.
The usefulness of a programming environment for programmers largely depends on the type
of software system being developed and the programming language applied.
In the following section we will look at two distinct types of programming environments:
Command-line and Integrated Development Environments:
A. Command-line Environments
A command-line environment is a collection of commands that can be typed in to edit files,
compile source code, and run programs. The command-line programming environment
enjoys the greatest degree of configurability as one can access any options that are available
in the program unlike the IDE counterpart.
However, this control comes with an ease-of-use penalty and one has to put in a lot of effort
to learn and practice.
Use of the command-line can be simplified when one makes use of scripts and batch files.
The commonest example of this is Unix programming.
Tools allow repetitive, well-defined actions to be automated, thus reducing the cognitive load
on the software engineer. They provide automated or semi-automated support for the process
and the methods. The engineer is then free to concentrate on the creative aspects of the
process. Tools are often designed to support particular methods, reducing any administrative
load associated with applying the method manually. Like methods, they are intended to make
development more systematic, and they vary in scope from supporting individual tasks to
encompassing the complete life cycle.
Software Engineering tools can be classified according to the different phases in a software
process:
Case classification helps us understand the different types of CASE tools and their support
for process activities from different perspectives:
Functional perspective: Tools are classified according to their specific function
(See Table1)
Process perspective: Tools are classified according to process activities that are supported
(See Figure 1)
Integration perspective: Tools are classified according to their organisation into integrated
units
Testing tools
Debugging tools
Language-processing
tools
Prototyping tools
Configuration
management tools
Documentation tools
Editing tools
Planning tools