Class Notes (1,100,000)
CA (620,000)
Western (60,000)
SOFTENG (10)
Lecture 9

Software Engineering 4453A/B Lecture Notes - Lecture 9: Test Automation, Source Code, Build Automation


Department
Software Engineering
Course Code
SOFTENG 4453A/B
Professor
Abdelnasser Hassan Ouda
Lecture
9

Page:
of 3
Unit 3
System Building
process of creating a complete, executable system by compiling and linking the
system components, system libraries, configuration files, etc
building tools and version management tools must communicate
build process involves checking out component versions from repository managed
by version management system
configuration description used to identify a baseline is also used by the system
building tool
Build Platforms
development system (includes development tools)
developers check out code from version management system into private
workspace before making changes
build server, sued to build definitive executable versions of the system
developers check in code to version management system before its build
system build may rely on external libraries that are not included in the VMS
target environment
platform on which system executes
34
Development, Build, and Target Platforms
35
System Building
Build Systems Functionality
Build script generation
version management system integration
minimal re-compilation
executable system creation
test automation
reporting
document generation
Minimizing Recompilation
tools to support the system building are usually designed to minimize amount of
compilation that is required
done by checking if a compiled version of a component is available
if yes, then no need to recompile
unique signature identifies each source and object code version and is changed
when source code is edited
by comparing signatures on source and object code files, possible to decide if the
source code was used to generate object code component
File Identification
1. Modification Timestamps
signature on source code file is time and date when file was modified
if source code file of a component has been modified after related object code
file, then system assumes that recompilation to create a new object code file is
necessary
2. Source Code Checksums
signature on source code file is a checksum calculated from data in file
checksum function calculates a unique number using source text as input
if you change source code (even by 1 character) this will generate a different
checksum
can be confident that source code files with different checksums are actually
different
Timestamps vs. Checksums
Timestamps
Checksums
source code and object files are linked by name
rather than an explicit source file signature
not usually possible to build different versions
into same directory at same time
recompiling a component does not overwrite
object code like timestamp
generates a new object code file and tags it with
the source code signature
parallel compilation is possible and different
versions of component may be compiled at the
same time
Comp.java and Comp.class have modification
signatures of 17:03:05:02:14:2009 and
16:34:25:02:12:2009
means java code was modified at 3 minutes and
5 seconds past 5 on the 14th of Feb 2009
compiled version modified at 34 minutes and 25
seconds past 4 on the 12th of Feb 2009
here, system would automatically recompile
Comp.java since compiled version does not
include changes made to source code since Feb
12th.