Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

SOftware Construction Tools PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

Construction

Tools
FACULTY HANDLED: PROF.KRITHIKA L B
Software Construction Tools
 These tools are used to produce and translate program
representation (for instance, source code) which is sufficiently
detailed and explicit to enable machine execution

.
Example
This web tool is mainly a central code repository
Google
which includes developer resources such as APIs or
Code
coding toolkits.
Development Environments
 A development environment, or integrated development
environment (IDE), provides comprehensive facilities to
programmers for software construction by integrating a set of
development tools.
 The choices of development environments can affect the
efficiency and quality of software construction.
 In additional to basic code editing functions, modern IDEs often
offer other features like compilation and error detection from
within the editor, integration with source code control,
build/test/debugging tools, compressed or outline views of
programs, automated code transforms.
 Eg: Eclipse, Net Beans
GUI Builders
 A GUI (Graphical User Interface) builder is a software
development tool that enables the developer to create and
maintain GUIs in a WYSIWYG (what you see is what you get)
mode.
 A GUI builder usually includes a visual editor for the developer
to design forms and windows and manage the layout of the
widgets by dragging, dropping, and parameter setting.
 Some GUI builders can automatically generate the source
code corresponding to the visual GUI design.
 GUI builder tools usually provide code generation assistants,
which automate the most repetitive tasks required for event
handling. The supporting code connects widgets with the
outgoing and incoming events that trigger the functions
providing the application logic.
GUI-example
Unit Testing Tools
 Unit testing verifies the functioning of software modules in isolation from
other software elements that are separately testable (for example, classes,
routines, components).
 Unit testing is often automated. Developers can use unit testing tools and
frameworks to extend and create automated testing environment.
 With unit testing tools and frameworks, the developer can code criteria into
the test to verify the unit’s correctness under various data sets.
 Each individual test is implemented as an object, and a test runner runs all of
the tests. During the test execution, those failed test cases will be
automatically flagged and reported.
Unit testing -examples
Profiling, Performance Analysis and Slicing Tools
 Performance analysis tools are usually used to support code tuning.
 The most common performance analysis tools are profiling tools.
 An execution profiling tool monitors the code while it runs and records
how many times each statement is executed or how much time the
program spends on each statement or execution path.
 Profiling the code while it is running gives insight into how the program
works, where the hot spots are and where the developers should
focus the code tuning efforts.
 Program slicing involves computation of the set of program statements
(i.e., the program slice) that may affect the values of specified
variables at some point of interest, which is referred to as a slicing
criterion.
 Program slicing can be used for locating the source of errors, program
understanding, and optimization analysis.
 Program slicing tools compute program slices for various programming
languages using static or dynamic analysis methods. This standard
defines a series of software development processes, including
software construction process, software integration process, and
software reuse process.
Static vs. Dynamic slicing
 Consider a small piece of a program unit, in which
there is an iteration block containing an if-else
block.
 There are a few statements in both the if and else
blocks that have an effect on a variable.
 In the case of static slicing, since the whole
program unit is looked at irrespective of a particular
execution of the program, the affected statements
in both blocks would be included in the slice.
 But, in the case of dynamic slicing we consider a
particular execution of the program, wherein the if
block gets executed and the affected statements in
the else block do not get executed. So, that is why
in this particular execution case, the dynamic slice
would contain only the statements in the if block.
Profiling
 Program analysis tools are extremely important for understanding
program behaviour.
 Computer architects need such tools to evaluate how well programs
will perform on new architectures.
 Software writers need tools to analyse their programs and identify
critical sections of code.
 Compiler writers often use such tools to find out how well their instruction
scheduling or branch prediction algorithm is performing...

The output of a profiler may be:


/* ------------ source------------------------- count */
0001 IF X = "A" 0055
0002 THEN DO
0003 ADD 1 to XCOUNT 0032
0004 ELSE
0005 IF X = "B" 0055
Profiling

You might also like