Glossary |
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
K
|
L
|
M
|
|
N
|
O
|
P
|
Q
|
R
|
S
|
T
|
U
|
V
|
W
|
X
|
Y
|
Z
|
absolute positioning
When placing components into
containers
in a graphical user
interface using absolute positioning, component positions
are specified as co-ordinates within the container.
Contrast with use of a layout
manager for the same task. |
abstraction
Abstraction is the process of describing some system in a way
that highlights relevant properties and suppresses irrelevant
details. |
abstract class definition
A class definition that cannot be
instantiated. |
abstract data type
A specification of a type by giving only
the operations that may be applied to values of that type
(and, often, some properties of those operations). The term
means much the same as interface but
is used particularly when specifying
data structures. |
abstract method
A method definition that specifies
the method interface but gives
no method implementation
(i.e. there is a header but no body). |
accessor
Same as getter. |
actual argument
Same as actual parameter. |
actual parameter
A value given to a method during
method invocation to initialise
its formal parameters.
Contrast with
formal parameter. Note that actual parameters are sometimes
called actual arguments or just actuals. |
ADT
An acronym for abstract data type. |
analysis
In the simplified software development methodology described in this
course, analysis is the process of identifying a problem, exploring
it and specifying requirements of a
solution. |
anonymous class
A local class that has no name.
|
argument
The word 'argument' used without the word 'actual' or
'formal' before it probably refers to an
actual argument, although, depending on context, it can refer
to a formal argument. |
black-box testing
Testing a program or part of a program
using test data that
has been chosen by consideration of the desired functionality
of that program, with no regard to how the program is implemented. |
block
A sequence of zero, one or more statements enclosed within
{ and }. |
call-by-reference
Method invocattion is
call-by-reference if formal
parameters are initialised
with a copy of the
actual parameters included in the
message that invokes the method. |
call-by-value
Method invocattion is
call-by-value if formal
parameters are initialised
with a copy of the address in
memory of the
actual parameters included in the
message that invokes the method. |
casting
Changing a value from one type to another type. |
class
(1) A category of objects.
(2) The set of objects that belong to a category.
(3) The word 'class' is often used where the phrase
class definition would be more
appropriate. This abbreviation is so common that many people would
define 'class' to mean the same as class definition. |
class definition
A specification (usualy in some programming language such as Java)
of the behaviour of a class of
objects. The definition will certainly specify the
objects' interface and will specify
implementations of some or all of the behaviours in the interface. |
class hierarchy
A collection of classes organised by
generalisation relationships. |
class method
A named unit of behaviour of a class. |
class variable
A variable
that is created on a per- class basis,
rather than on a per-instance basis.
Contrast with instance variable. |
client
An object or class
that requests a service (i.e. sends a message
to invoke some behaviour) from another object or class. |
coding
The process of translating from a detailed design to statements in
a programming language. |
cohesion
The cohesion of a group of program elements (e.g. statements
in a method or methods and
variable declarations in a
class definition) is the degree
to which the elements in the group are directed at a
single purpose. |
compile-time error
An error in a program that is discovered by the compiler.
Such errors will typically be syntax errors (where the program
deviates from the grammatical rules of the language) or certain
semantic errors that
are checked for by the compiler (e.g.
mismatched types in a
statically-typed language). |
component
(1) In the context of graphical
user interfaces, a component is an object
within the interface. It will usually have some visual apperance,
and it will usually be something with which the user can interact
(e.g. using the mouse).
(2) In software engineering in general, components are
replaceable units within
an implementation of a system (e.g. run-time
objects), implementing certain
interfaces. |
constant
See named constant. |
constructor
A special routine within a class
definition that, on creation of an instance
of that class, initialises the
state of
the instance. |
container
(1) In the context of graphical user
interfaces, a container is a component
in which other components may be placed (e.g. a window is a
container since menu bars, buttons, etc. may be added to it).
(2) An object
is a container if it contains, and gives access to,
other objects. In this sense, the word means pretty much the same
as data structure. |
control
In the context of graphical
user interfaces, this word is used to mean the
same as component. |
controller
See Model-View-Controller. |
coupling
Coupling is the degree to which groups within a program
(e.g. methods or
class definitions) depend on each
other. |
data abstraction
The process of organising access to a program's data (e.g. arranging
variable declarations and
methods for accessing data into
class definitions). |
data structure
An organised aggregate of data items. |
debugging
The process of identifying a program error and the circumstances in
which the error occurs, locating the source(s) of the error in the
program and fixing the error. |
declaration
See variable declaration. |
delegation-based event model
One of the polices by which a program could determine which
handler in which listener
to invoke in response to an
event in an event-driven
program. In this policy, the program includes statements
in which one or more listener objects (containing
suitably named methods that can act as
handlers) are registered with the objects
that may be the source of events. At run-time, these are
the objects to whom event response is delegated. |
design
In the simplified software development methodology described in this
course, design is the process of formulating and describing alternative
solutions to a problem, comparing them, choosing between them on
the basis of how well they meet the
requirements, and elaborating the detail in
the descriptions of the chosen one(s) to the point where they are
ready for implementation.
|
direct subclass
Same as immediate subclass. |
direct superclass
Same as immediate superclass. |
dynamic method binding
Method binding is dynamic if it is not done
until run-time.
Contrast with static method
binding. |
dynamically-scoped
A programming language is dynamically-scoped if the
scope of identifiers
can only be determined by considering program execution.
Contrast with statically-scoped. |
dynamically-typed
In dynamically-typed programming languages, the
type of every
variable and expression may not be
known (from the program text) at
compile-time, and may be known only at run-time.
Hence, checking for certain
type violations can only be done at run-time.
Contrast with statically-typed. |
empty string
A sequence of characters whose length is zero, i.e. there are
no characters in the string. |
encapsulation
In this course, encapsulation refers to a way of organising a program
such that implentations are hidden
behind interfaces.
This is done not for security or privacy, but to reduce dependencies
between parts of a program. |
equivalence partitioning
In testing a program, choosing test data
that is representative of whole collections of other data,
usually because it is impractical to exhaustively test the
program on all possible test data. |
event
An occurrence. (Events are objects
hence they must be identifiable
occurrences of interest.) |
event-dispatch loop
In an event-driven program, the
event-dispatch loop is responsible for taking
events that have been generated in turn
and invoking appropriate
handler methods to respond to the
events. (Typically, the programmer does not code up the
event-dispatch loop: it is part of the operating system or some other
piece of systems software.)
|
event-driven
A program is event-driven if method
invocation may happen in response to
events.
|
formal argument
Same as formal parameter. |
formal parameter
A variable declared in the header of a method
whose initial value is
obtained during method invocation
(using the actual parameter).
Contrast with
actual parameter. Note that formal parameters are sometimes
called formal arguments or just formals. |
functional requirements
The functionality we desire of a problem solution. |
garbage collection
The process of removing from memory any objects
to which there are no longer any references. |
generalisation
The relationship that holds between a more specific
class and a more general class.
(The inverse of specialisation.) |
generalisation hierarchy
Same as class hierarchy. |
getter
A method that does not alter the
state of an
object or class;
it only returns information about the object or class state. |
generic data structure
A data structure which can contain
data items of an arbitrary type. |
glass-box testing
Testing a program or part of a program
using test data that
has been chosen by consideration of the implementation
of that program, i.e. the way the data is stored and the
flow of control among statements of the program.
|
graphical user interface
An end-user interface to a program that presents information
using windows, menus, buttons, textfields, etc., and with which
the user interacts using a mouse or other pointing devices in
addition to the keyboard. |
GUI
Pronounced gooey; an acronym for
graphical user interface. |
handler
A method within a listener
object
that will be invoked
in response to events in an
event-driven program. |
heavyweight component
A component in a graphical user interface is heavyweight if it is rendered in its own
native window (i.e. a window that is provided by the platform's
operating system/window manager). |
helper method
A method which gets invoked by some other
method within the same class
definition and whose sole purpose is to help the other method
carry out some computation. |
identifier
The name of something in a program. E.g. in Java, the name of a
variable, method,
class, interface
or package. |
identifier scope
See scope. |
immediate subclass
A class that is the child of another class in a
generalisation relationship. |
immediate superclass
A class that is the parent of another class in a
generalisation relationship. |
immutable
An immutable object is one that, after creation,
is 'read-only'; it cannot be changed; none of its
methods changes it. |
implementation
(1) In the simplified software development methodology described in this
course, implementation is the process of constucting an actual artifact
from a design. In software development, this includes at least
the steps of coding, testing
and debugging.
(2) A class definition is split
into an interface and an implementation
(the 'what' and the 'how'). The implementation defines how
the services offered in the interface are implemented. |
information hiding
In this course, information hiding refers to
encpasulation of a program's data. |
inheritance
The mechanism by which class definitions
for subclasses
incorporate instance variables and
instance methods from
class definitions for superclasses. |
inheritance-based event model
One of the polices by which a program could determine which
handler in which listener
to invoke in response to an
event in an event-driven
program. In this policy, handlers/listeners are sought by
climbing up the class hierarchy
until a superclass with a suitably
named method that can act as the
handler is found. |
initialisation
See variable initialisation. |
inner class definition
A class definition that is declared
within another class definition. |
inspection
Inspection is the process of manually reading program
documentation and code with a view to detecting errors.
Inspection processes in industry are done with varying degrees
of formality and sometimes the word 'inspection' is reserved for
the more ceremony-heavy instances of this practice.
|
instance
An object of some class. |
instance method
A named unit of behaviour of an object. |
instance variable
A variable
that is part of every instance
of a class. |
instantiation
The creation of new instances from
class definitions. |
interface
(1) The services an object or
class provides to its
clients.
(2) The Java language provides a construction for
defining interfaces, and the word 'interface' or the phrase
'Java interface' would be used to refer to these language
constructs. In this sense, the word refers to a type
that is defined by supplying, in an
interface definition, a set
of instance method
signatures (method headers with no bodies),
these being the operations that constitute the interface and
that define the type.
(3) The word 'interface' also refers to a program's end-user
interface, i.e. the way it presents information to the user and
receives data from the user; these days, this interface would
most typically be a graphical user
interface. |
interface definition
A specification (usualy in some programming language such as Java)
of the interface of a class of
objects. |
invocation
See method invocation. |
layout manager
When placing components into
containers
in a graphical user
interface, an object called
a layout manager may be associated with the container and
will implement a policy for deciding how the components are
positioned and sized within the container. |
lexically-scoped
Same as statically-scoped. |
lifetime
The lifetime of a variable is the period
of the execution of the program between allocating memory
for the variable and releasing that memory. |
lightweight component
A component in a graphical user interface is lightweight if it is not rendered in its own
native window (i.e. a window that is provided by the platform's
operating system/window manager), but is instead 'painted' onto
a heavyweight component. |
listener
An object to which has been assigned the task of
responding to events in an
event-driven program. |
local class
A class whose
definition has
block
scope. (Local
class definitions are
examples of inner class
definitions). |
local variable
A variable with block
scope. |
logic error
An error in a program that is not manifested as a
compile-time error or a
run-time error, but as a failure
of the program to meet its requirements.
Most typically, the actual output will not match the required
output. |
look-and-feel
The look-and-feel of a graphical
user interface (or a component
within such an interface) concerns the way it is presented to
the user (e.g. its visual appearance) and the way the user
interacts with it (e.g. whether the user moves the cursor
over it using the mouse, clicks, double-clicks, or whatever). |
magic number
A number that is hard-coded into the statements of a program.
One might similarly refer to 'magic strings' and
'magic chars'. |
maintenance
Any software development that a program undergoes after it
has been released to users. Maintenance might be corrective
(bug fixing), adaptive (porting), perfective (extending)
or preventative (refactoring). |
message
A request sent from a client to an
object or class, requesting
a service (i.e. invoking some behaviour from the target). |
method
A named unit of behaviour. (Methods correspond to procedures
or functions in other languages.) See also
instance method and
class method. |
method binding
Determining which method is being
invoked by a particular
message. |
method invocation
Causing a method to be executed.
This is a general term that covers
two possibilities: in some cases, an event
will invoke a method; in other cases, a method will be
invoked as a response to a message from a
client. The latter
case is sometimes also known as calling the method
(which is a usage that comes from non-object-oriented languages
where one talks of calling a procedure or function). |
model
An artifact that represents a part of a world at some level of
abstraction that can be used to explain or predict features of the world
that is being modeled. |
Model-View
See Model-View-Controller. |
Model-View-Controller
An architecture for programs that have
graphical user interfaces. The architecture separates those
parts of the program that handle the application data (the model)
from those that present that data to users (e.g. graphically,
on the screen) (the views) and from those parts that
respond to changes made to the data (e.g. by the user manipulating
the data presented on the screen) (the controllers).
The architecture defines the ways
these parts of the program communicate. The parts of the architecture
have high cohesion and they are connected
in such a way as to give low coupling. |
mutator
Same as setter. |
MVC
An acronym for
Model-View-Controller. |
named constant
A variable whose value cannot be changed by
the program after
initialisation. |
native look-and-feel
A graphical user interface
to some program running on some computer platform
has native look-and-feel if the
look-and-feel of the program's interface is the same as that of
the operating system or windows manager that is presently running
on that platform. (The phrase usually also implies that if
the program is ported to some other platform, the look-and-feel
of its interface will then match that of the new platform.)
Contrast with pluggable
look-and-feel. |
non-functional requirements
The qualities we desire of a problem solution other than those
concerning its functionality, e.g. its robustness, its efficiency,
its security, its extensibility, its maintainability, its
portability, etc. |
object
In an executing object-oriented program, an object is a representation,
in memory, of an identifiable thing of interest. |
overloading
Overloading occurs when an identifier
or operator has more than one definition within a single
scope. In Java, certain operators are overloaded.
But the most common forms of overloading in Java occur when
there are several methods with the same name
or several constructors
within a single class definition. |
overriding
Overriding occurs when a method definition
in the class definition of a
subclass redefines a method that
would otherwise be inherited
from a superclass definition.
The overriding method must have the same
identifier and
signature (including return type)
as the method in the superclass definition. |
package
A named collection of
class definitions. Typically,
packages are used to
group together related class definitions within large programs. |
parameter
The word 'parameter' used without the word 'actual' or
'formal' before it probably refers to a
formal parameter, although, depending on context, it can refer
to an actual parameter. |
pass-by-reference
Same as call-by-reference. |
pass-by-value
Same as call-by-value. |
pluggable look-and-feel
A graphical user interface
to some program running on some computer platform
has pluggable look-and-feel if the
look-and-feel of the program's interface can be easily
changed to some other look-and-feel.
(The phrase usually also implies that the look-and-feel can be
chnaged dynamically, at run-time.)
Contrast with native
look-and-feel. |
polymorphism
The ability of a variable to hold values of
more than one type. |
primitive type
The fundamental, built-in types within the
Java programming language, whose values have direct machine
representations. |
procedural abstraction
The process of organising a program's computation (e.g. arranging
the statement into methods). |
random testing
Testing a program or part of a program
using test data that
has been chosen at random. |
reference
A pointer to an object. |
reference type
In Java, these are types whose values are
ultimately
constructed from primitive types
either through class definitions,
interface definitions or
the use of arrays. |
regression testing
Re-testing a program. Regression testing
is needed following changes made to
a program to discover whether parts
that were working are no longer working. |
requirements
The behaviour and other qualities we desire of a problem solution.
See functional requirements
and non-functional requirements.
|
reuse
Using pre-existing artifacts to construct a new artifact. |
RGB
An acronym for Red-Green-Blue, referring to one way of specifying
colours, i.e. by their amounts of red, green and blue light. |
run-time error
An error in a program that causes execution of the program to
be terminated. These are caused by misuses of the language that
the compiler
cannot detect and so are detected only when the program is run.
They might include sending messages to
null , dividing integers by zero, trying to access
non-existent elements of an array, etc.
|
scope
The scope of an identifier is the
portion of the program over which the identifier is known. |
setter
A method that (only) alters the
state
of an object
or class. |
signature
The number, types and order of the
formal parameters of a
method.
A signature may also specify a return type. |
specialisation
The relationship that holds between a more general
class and a more specific class.
(The inverse of generalisation.) |
state
The state of an object is given by
the contents of its instance
variables. |
static method
Same as class method. |
static method binding
Method binding is static if it is done
before run-time, e.g. by the compiler.
Contrast with dynamic method
binding. |
static variable
Same as class variable. |
statically-scoped
A programming language is statically-scoped if the
scope of identifiers
can be determined from the text of the program, without executing it.
Contrast with dynamically-scoped. |
statically-typed
In statically-typed programming languages, the
type of every variable
and expression is known (from the program text) at
compile-time. Hence, checking for
type violations can be done at compile-time.
Contrast with dynamically-typed
and do not confuse with strongly-typed. |
strongly-typed
In a strongly-typed programming language, every
variable must have a type,
and the system guarantees that it will use this to restrict the
values a variable can hold, the operators that may be applied to
values and the messages that can be sent to
objects.
Contrast with weakly-typed and do
not confuse with statically-typed. |
subclass
A class that is the descendant of another
class in a sequence of one or more
generalisation relationships.
In certain contexts, the word subclass will be used where
immediate subclass might be
more accurate. |
superclass
A class that is the ancestor of another class
in a sequence of one or more
generalisation relationships.
In certain contexts, the word superclass will be used where
immediate superclass might be
more accurate. |
symbolic constant
Same as named constant. |
testing
The process of revealing that an artifact fails to satisfy
a set of requirements.
In the case of programs, this is done by executing the program
on different items of data, the test suite. |
test-driver
Program code whose sole purpose is to test parts of a
program. |
test-suite
The collection of test data used for testing
a program. |
type
The type of a variable or other expression
is the set of values that may be stored in the variable or
that the expression may evaluate to and the operations that
can be applied to these values. |
type error
Same as type violation. |
type mismatch
Same as type violation. |
type violation
Any attempt to store a value of one type
in a variable of an
incorrect type or to apply operators to values or variables
whose types do not support those operators or to send
messages to objects
that do not support the requested methods
is a type violation. |
variable
A named storage location. |
variable declaration
Introducing a variable into a program. |
variable initialisation
Assigning an initial value to a variable. |
view
See Model-View-Controller. |
visibility
The degree to which something in a program (e.g. a
variable, method,
class, interface,
or package) may be seen from other
parts of the program. |
walkthrough
Same as inspection. |
weakly-typed
A weakly-typed programming language is one that is not
strongly-typed: either
variables do not have associated
types or type restrictions are not
rigorously enforced. |
widget
Supposedly short for 'window gadget', this refers to
components in a
graphical user interface. |
wrapper
In Java, a wrapper class definition
allows you to turn primitive values into objects. |