Software Engineering  Variables The data literacy test    Count 1.0 if you know what the concept means. Count 0.5 if you believe you know what the.

Download Report

Transcript Software Engineering  Variables The data literacy test    Count 1.0 if you know what the concept means. Count 0.5 if you believe you know what the.

Software Engineering

Variables
The data literacy test



Count 1.0 if you know what the
concept means.
Count 0.5 if you believe you know
what the concept means, but you
are not sure.
Add the points and check your
score.
The data literacy test
abstract data type
heap
retroactive synapse
array
index
referential integrity
bitmap
integer
stack
boolean variable
linked list
string
B-tree
named constant
structured variable
character variable
literal
tree
container class
local variable
double precision
lookup table
elongated stream
member data
enumerated type
pointer
floating point
private
typedef
union
value chain
variant
The data literacy test

0-14: beginner. You should not be attending this
course.

15-19: intermediate. How would you consider
attending more basic courses?

20-24: expert. Welcome to this course.

25-29: genius. You should be teaching this
course.

30-32: fraud. You could not even identify some
meaningless names that were included in the
list...
Variable initialisation




Initialise each variable as it is declared
(re)Initialise each variable close to
where it is first used
Ideally, declare and initialise each
variable close to where it is first used
Use final (Java), const (C++), etc.
whenever possible, so that
programming variables behave similar
to mathematical variables
Variable initialisation




Pay special attention to counters and
accumulators
Initialise a class's member data in its
constructor
Check the need for reinitialisation
Check input parameters for validity
Scoping


Localise (i.e. put as close as possible)
references to variables
Minimise average variable span (span:
distance between consecutive
references of a variable, in lines):
a = 0;
b = 0;
c = 0;
a = b + c;
span(a) = 2
span(b) = 1
span(c) = 0
Scoping



Minimise “life span” of each variable
(life span: total number of lines
between first and last reference to a
variable)
Initialise variables in a loop
immediately before the loop
Do not assign a value to a variable
until just before the value is used
Scoping



Group related statements with respect
to variable referencing
Break groups of related statements
into separate routines
Larger scopes make program easier to
write; smaller scopes make program
easier to read
Using variables



Use each variable for one purpose
only
Avoid hidden meanings (e.g. “Age
means age of a person, except when it
values -1, in which case it denotes that
the person's age is unknown”)
Make sure that all declared variables
are used
Naming variables



Names should be expressive and selfcontained
Names should refer to the problem
rather than the solution (e.g.
EmployeeData is better than InputRec)
Names should not be too long nor too
short (between 8 and 20 characters is
fine)
Naming variables

Use conventions for variable names
related to specific data types:




Loop indices: recordCount, teamIndex
Status variables: characterType, recalcNeed
Temporary variables: avoid them; if you need
them, avoid names like temp or x
Boolean variables: done, error, found,
success, ok; avoid negative names like
notFound
Naming variables
USE
CONVENTIONS
Naming variables

Abbreviations:





Do not abbreviate by removing one character
from a word
Abbreviate consistently
Create names that you can pronounce
Avoid combinations that result in misreading
or mispronunciation
Document short names with translation tables
in the code
Naming variables

Names to avoid:







Avoid misleading names or abbreviations
Avoid names with similar meanings
Avoid variables with different meanings and
similar names
Avoid names that sound similar
Avoid numerals in names, as in file1 and file2
Avoid misspelled words in names
Do not differentiate variables solely by
capitalisation
Naming variables

Names to avoid:




Avoid multiple natural languages
Avoid the names of standard types, variables
and routines
Avoid names containing hard-to-read
characters, e.g. Hard2Read and HardZRead
Do not use names that are totally unrelated to
what the variables represent