| Software
Engineering
Introduction
Object Oriented
Programming
Real-Time Systems
Evolutionary Development
|
Object-Oriented Programming
In meeting our goals, object-oriented methodologies
are employed in conformance with current standard software engineering
practice. Object-oriented design has better support for building
in modularity within applications than the early generation structured
design paradigm. It has improved support for reuse which promotes
faster software development and higher quality software. Finally,
object oriented software tends to be more adaptable and scaleable.
The object-oriented design
paradigm first attempts to identify objects in the problem domain.
For example, one can think of a microburst as an object. The microburst
object has attributes such as location, size, intensity and so forth.
The novel idea of object-oriented design is to hide the underlying
data representation of these attributes. One might then ask, if
the internal data representation of the attributes is hidden how
can the user of this object find out anything about the microburst?
Object-oriented design solves this problem by having the microburst
object provide functions to present information about the object.
Thus, the microburst object would have a "display size" function,
a "display location" function and a "display intensity" function.
Why would one want to hide the internal data representation? The
rationale behind this is that the data representation of an object
is subject to change. Sensing devices become more accurate so the
resolution of the data increases. Storage requirements thus change
and so do data representations. The general attributes of the underlying
objects, however, are less subject to change. In the case of a microburst,
it will always have a location, a size and an intensity.
With regard to object-oriented languages,
we primarily use C++ to build the underlying system components which
are time-critical such as scientific algorithms, data ingest and
numerical data processing components. Java is used when creating
graphical applets available for web
viewing. We also employ object-oriented scripting languages
such as Python
and Perl for text
processing, building web pages, system administration, system monitoring
and as glue languages to glue systems together. Our philosophy in
employing these different programming languages is to utilize the
best tool for the job at hand.
<< Previous
Next >>
|