Sie sind auf Seite 1von 6

Designing Satellite Data Processing Software Systems using Object-

Oriented Technology
Amit Gupta, Nitant Dubey, Devakanth Naidu, P Neethinathan,
T P Srinivasan, B Gopala Krishna, R Nandakumar and P K Srivastava
ISRO, Space Applications Centre, Ahmedabad - 380 015
{amit, nitant, devakanth, neethi, tps, bgk, pradeep}
Keywords: image data processing software, object-oriented technology, software engineering

Abstract 1. Introduction

Use of high-resolution space-borne imagery in Use of high-resolution satellite imagery in cartography is

cartography is becoming increasingly popular. Space- becoming increasingly popular as a consequence of
borne imagery must be pre-processed for rectifying launching advanced remote-sensing satellites with
radiometric and geometric distortions using sophisticated progressively higher resolutions such as Cartosat series
mathematical models. These models must be applied in of remote sensing satellites to be launched in near future.
the form of software. The software for satellite data Keeping the objective of digital cartography using high-
processing is inherently complex and needs to be reused resolution space-borne imagery in mind, our heavy
across the different satellite missions. Moreover, the dependence on the advanced, high quality, reliable &
software components should be pluggable in commercial reusable computer hardware & software is
software packages so as to enable the development and unquestionable. Computer hardware industry has
use of effective cartographic applications. constantly demonstrated its capability to yield highly
sophisticated products at lower costs & thus has made
This paper highlights the relationship of cartography and the use of computers affordable to a general mass.
object-oriented software engineering. More importantly,
this paper presents a methodology framework for To make effective use of computers for satisfying the
designing satellite data processing software systems needs of highly advanced technologies like Digital
using object-oriented technology based on our practical Cartography using satellite imagery along with other
experience. Additionally, an introduction to various information, an equal demand on the sophistication of
fundamental object-oriented concepts has also been software is absolutely essential.
included for better understanding of proposed 1.1 Relationship between Cartography and Software
methodology framework. Engineering: It is obvious that when a technology such
as Cartography or GIS adds value to the better living style
of general mass, the demand for more software solutions
1. Introduction is exponentially high. Thus, it becomes mandatory to
1.1 Relationship between Cartography and Software design technological systems that can provide high
Engineering quality solutions at progressively lower costs & turn-
1.2 Rationale for adopting Object-Oriented around times.
2. Object-Oriented Concepts One way to satisfy such needs of Cartography is the use
2.1 Objects of high-resolution space-borne imagery from advanced
2.2 Attributes & Operations remote-sensing satellites. Future remote-sensing satellites
2.3 Class (such as Cartosat series) dedicated for cartographic
2.4 Data Abstraction applications will provide rapid and repetitive images of
2.5 Message Passing the earth, thus strengthening the practical use of
2.6 Encapsulation Cartography towards contribution to country’s
2.7 Inheritance development.
2.8 Polymorphism It is clearly evident that satellite imagery is inevitably
2.9 Unified Modeling language (UML) prone to radiometric & geometric distortions at raw level.
3. Proposed Methodology Framework for Designing Consequently, there is a need to evolve mathematical
Satellite Data Processing Software models for correction processing before the imagery is
3.1 Guidelines for Software Modeling disseminated for its end-use in mapping. Furthermore,
4. A Report on Practical Experience with usage of there is a stringent need for uninterrupted R & Ds for
Object-Oriented Technology continuously improving these mathematical models to
5. Conclusions yield progressively better solutions. These mathematical
6. Acknowledgments models, in turn, have to be applied in the form of
7. Bibliography computer softwares. Moreover, software so made, need
to be reused in conjunction with commercial-of-the shelf

Indian Cartographer, 2002 DAPI-09 49

(COTS) software components for the ultimate objective of • Can the users and / or domain-experts be
mapping. involved during the development to validate the
software and highlight any defects early in the
It would not be difficult to appreciate that the software is
development life cycle?
the back-bone of scientific R & Ds relating to the choice of
suitable mathematical photogrammetric models required • Can the software be reused significantly across
for geometric correction of satellite imagery and for the projects to avoid duplication of efforts?
generating data products of cartographic quality. It turns
The answer to all the above-mentioned questions is
out that the software has to be developed systematically
no in the context of procedure-oriented software
rather than haphazardly. That is where the object-oriented
development approach. One major reason is its
software engineering comes into focus.
emphasis on functions rather than data (or con-
Thus, it becomes clear that Software Engineering has an cepts).
equal role to play in conjunction with other disciplines
The object-oriented approach to software develop-
such as Physics, Mathematics and Image Processing. If
ment resolves many problems that are encountered
not given due consideration to Software Engineering, it
in conventional approach. The O-O approach stems
may result in severe problems even if the state-of-the-art
from the need to create systems that are not only
mathematical models are in place.
easy to develop and maintain but also easy to
1.2 Rationale for adopting Object-Oriented extend.
Technology: The operational satellite data products
We know that concepts are much more stable than
generation software for its end-use in cartographic
functions. The object-oriented (O-O) technology
mapping requires fulfillment of the following objectives:
exploits this fact fruitfully. The object-oriented
1. High Quality & Reliability approach advocates the principle that “objects are
2. Short development & maintenance times responsible for their own actions” as opposed to
3. Reusability across the different satellite missions procedure-oriented approach that emphasizes
4. Extensibility for incorporating new requirements “perform actions on data”.
(such as new and improved mathematical
The salient features of the promising O-O technology
for designing remarkable scientific software systems
5. Inter-operability with commercial software
can be summarized as follows:
packages such as ERDAS-Imagine, thus
requiring Component-based software architec- 1. Real world modeling i.e. software objects /
tures. components directly models their real-world
counterparts. In other words, there is a one-to-
The software industry’s general experience as well as our
one relationship between real-world physical /
own experience concerning satellite data products
abstract concept and software unit.
software confirms that use of object-oriented technology
results in smooth fulfillment of the above-mentioned 2. Primary focus is on data rather than functions
objectives. This is made possible due to real-world while decomposing a complex software system
modeling philosophy employed by object-oriented into simpler objects (building blocks or units)
3. Suitable for evolutionary development process
One may argue that traditional procedure-oriented model, i. e. Object-oriented software is devel-
software development approach could be used for oped in an iterative and incremental manner.
developing software systematically. It was true during
4. Incorporation of changes and new requirements
1970-80s while conventional approach demonstrated
is easy and efficient resulting in maintainability
significant advantages over haphazard way of developing
5. Involvement of software engineers, domain-
In the modern era, the procedure-oriented approach is
experts, managers and end-users throughout
subject to the following concerns:
the software development life cycle enabling the
• Can user requirements be easily translated into quality to be built at the source itself.
6. High profiles of reusability leading to the
• Can the software be extended easily to include development of reliable software systems at
new features? lower costs andrapid turn-around times.
• Requirements change rapidly as a consequence
of various reasons including technological
2. Object-Oriented Concepts
advances. Can this approach incorporate Object-Oriented approach to software development
changes without much rework & side effects? handles the increased complexity of the software by
incorporating the best of structured programming

50 DAPI-09 Indian Cartographer, 2002

features along-with powerful object-oriented concepts. “object” interchangeably as the distinction is not
Using this new paradigm, it is possible to model systems significant for our further discussion.
in terms that match human thinking and language.
2.4 Data Abstraction: Abstraction refers to the act of
Before proposing a methodology for designing satellite representing essential features without including
data processing software systems, it is worthwhile to extraneous features such as background details or
review the meaning of important object-oriented explanations. Classes use the concept of data abstraction
concepts. and are defined as a list of abstract attributes and
functions to operate on these attributes. A class may not
2.1 Objects: We all live in a world of objects (entities) that
contain details such as how and when the values for its
communicate and collaborate to accomplish certain
attributes were gathered.
goals. Some examples of entities are instances of
Cartographer, Scientist, Engineer, Computer, Map, Image, 2.5 Message Passing: Objects communicate with one-
Imaging Sensor, Tree, River, Road, DEM etc. From Object- another by sending and receiving information much the
Oriented Programming (OOP) point of view, objects are same way as people pass messages to one-another. The
the software representation of real-world entities that are concept of message passing makes it easier to talk about
required for the operation of a system. An object may also building systems that directly model or simulate their real-
represent abstract concepts such as instances of vector, world counterparts.
matrix, time and file etc.
A message for an object is a request for execution of a
An object-oriented software solution analyses the function and, therefore, will invoke a function (operation)
problem in terms of objects, their behavior (i.e. services in the receiving object that generates the desired result.
or operations offered), and the nature of communication Message passing involves specifying the name of the
among these objects. Program objects should be chosen object, the name of the function, and the information to
such that they match closely with the real-world objects. be passed to the function.
2.2 Attributes & Operations: Real-world objects can be The following three OO (Object-Oriented) concepts make
described in terms of their characteristics and behavior. the OO approach distinct from classical approaches of
To capture the features of real-world entities; software software development.
objects are defined in terms of their attributes (i.e.
2.6 Encapsulation: The wrapping up of data and
characteristics) and operations (i.e. behavior) that operate
functions into a single unit (called class) is known as
on these attributes. For example, an object
encapsulation. Encapsulation doesn’t allow the data to be
‘AhmedabadImage’ can have attributes such as
accessed by the outside world. Only those functions,
no_of_rows, no_of_columns, no_of_gray_levels and two-
which are wrapped in the class, can access the data.
dimensional array of gray values etc. and operations
These functions provide the interface between the
such as ReadFromFile(), WriteToFile(),
object’s data and the user of the object. This insulation of
ComputeHistogram(), Enhance(),
the data from direct access by the program is called data
ComputeFastFourierTransform() etc.. Operations are also
hiding, a desirable property of a good software.
referred to as ‘functions’, ‘services’, or ‘methods’.
2.7 Inheritance: It is not unusual in Object-Oriented
2.3 Class: Objects that are similar to one-another in terms
Programming (OOP) that one class can have attributes
of their attributes and functions (i.e. operations) can be
and operations that may also be common to some other
grouped in a class. From OOP point of view, a class
class. To avoid redefinition of these attributes and
defines the attributes and functions that apply to all the
operations, OO approach offers a mechanism called
objects of that class. For example, a class ‘satellite’
inheritance, a process by which objects of one class
defines all the attributes and operations that are common
acquire the properties of objects of some other class.
to its objects (such as “IRS-1C”, “IRS-1D”, “Cartosat-1”
etc.) In fact, inheritance is a common phenomenon of the real-
world. A child inherits physical and intellectual
Another example of a class is ‘C/C++’ language data
characteristics of his / her parents. In the same way, a
type int. The data type ‘int’ is a class of integers.
class at a lower level in the hierarchy inherits attributes
Consider the following example:
and operations from the class (or classes) at an upper
int m, n; level (or levels). In other words, a class at a particular
level contains its own characteristics in addition to some
Here ‘int’ is a class and m & n are objects of ‘int’ class.
other characteristics from other class (or classes).
From programming point of view, a class serves as a
Inheritance promotes the idea of reusability.
‘user-defined’ data type, which contains data and
functions that manipulate data in a single unit of code. 2.8 Polymorphism: Polymorphism means the ability to
Objects can be defined by declaring them as variables of take more than one form. It means an operation may
this class. exhibit different behavior in different instances. The
behavior depends upon the type of object(s) used in the
Please note that we will use the terms “class” and

Indian Cartographer, 2002 DAPI-09 51

operation. For example, consider the operation of We will discuss the guidelines for object-oriented software
addition. For two numbers, the operation will generate a modeling and design in the following section.
sum. If the operands are strings, the operation would
3.1 Guidelines for software modeling: We have found
produce a third string by concatenation. This is
that a mix of top-down and bottom-up approaches is of
something similar to a particular word having more than
high utility in software modeling of the system. The
one meaning depending on the context.
object-oriented software can be modeled and designed in
2.9 Unified Modeling Language (UML): The UML is a the following two major steps:
standard modeling language for software- a language for
1. SYSTEM ANALYSIS & DESIGN: It deals with the
visualizing, specifying, constructing and documenting the
overall understanding of the system objectives,
artifacts of a software-intensive system. Basically, the UML
detailed requirements analysis and specifications
enables the developers to visualize their work products in
and decomposition into simpler, highly independent
standardized blue-prints or diagrams. Consequently, it
subsystems / components using top-down
becomes easier to communicate across different teams,
thus making software-outsourcing task more practical.
The UML diagrams describe the system from different 2. COMPONENT ANALYSIS & DESIGN: Application of
viewpoints. These include use-case diagram, package the fundamental concepts of OO approach to yield a
diagram, class diagram, collaboration diagram, sequence set of objects that collaborately implement the
diagram, state transition diagram, activity diagram etc. component under consideration using bottom-up
3. Proposed Methodology Framework for
3.1.1 Steps in System Analysis and Design: The
Designing Satellite Data Processing Software
following steps are taken for decomposing a system into
In the context of scientific software systems, we propose subsystems and modeling these subsystems using
to treat this revolutionary software technology as concept- various kinds of modeling diagrams.
oriented software development approach. This essentially Defining the problem: A clear, complete, concise,
means that software is analyzed and designed in such a
precise, and grammatically correct statement for the
way that it can be thought of as an integrated system of
system to be developed must be provided as a starting
independent entities technically known as objects (or
point for analysis and design. This problem statement is
classes). These objects (or components at higher level of
very crucial for the successful development of a system.
abstraction) model real-world concepts (generally
appearing as nouns in the literature pertaining to the The problem statement must clearly state the objectives
problem domain). and background to aid understanding of the objectives. It
should also bring out the essence of the procedure if the
In our practice of OO technology we have found the
system (or subsystem / component) realizes any scientific
following set of major activities fruitful in designing
algorithm. Moreover, known constraints and assumptions
effective scientific software:
should also be recorded in the problem statement.
• PHYSICAL MODELING: Understanding and Requirements analysis & specifications: Based
describing the phenomenon and underlying
on the problem statement formulated in previous step,
concepts. This generally requires grasping the
detailed requirements (such as, functional requirements,
physics behind the phenomenon using usual
interface requirements, performance requirements etc.)
scientific methods.
and constraints are captured and documented. This step
• MATHEMATICAL MODELING: Deriving math- concentrates on what of the problem. Please note that
ematical representation of the phenomenon requirements should be modeled using a use-case
under consideration. This may involve testing the diagram, which describes the various ways in which the
alternative mathematical solutions using stan- system is used by the external entities attached to it. Each
dard tools (such as IDL) or software prototypes use-case in the use-case diagram identifies a thread of
built using the available library of software usage for the proposed system. Each use-case is
components / classes. associated with a detailed description of events that are
undertaken as part of the use-case. Such a description is
• SOFTWARE MODELING: Mapping the concepts
often called a scenario. Furthermore, data flow diagrams
found in physical and mathematical modeling to may also be used to aid the understanding of the
corresponding software objects. This requires problem.
that the software engineer clearly understands
the physical and mathematical models. The Decomposition into subsystems / components:
software engineer needs to consult domain- Based on the careful analysis of requirements laid down
experts throughout the software development in the previous step, the system is decomposed into a set
process for ensuring the correctness of analysis- of highly independent subsystems (or components)
and-design decisions. which collectively define the overall system. The package
diagram must be used to visualize the decomposition.

52 DAPI-09 Indian Cartographer, 2002 Modeling each subsystem / component: The Object-oriented design: Object-Oriented Design
previous three steps are repeated until we reach a level is an extension of Object-Oriented Analysis. Design is
where the components can be regarded as elementary concerned with the creation of data structures (for
enough so that those can be realized using objects / attributes) and algorithms (for operations) for each class.
classes. If the component realizes a scientific algorithm It is also important to construct structured hierarchies of
that is procedural in nature, activity diagram may be used classes and to identify abstract classes, which contain
to visualize the activity flow. most general attributes, and operations that can be
inherited by other classes. The following design steps can
3.1.2 Steps in component analysis & design using OO be followed to extend the class model prepared during
concepts: Usually, there is no sharp distinction between OOA steps.
object-oriented analysis and design. Nevertheless, based
on the nature of activities, we can categorize them in the • Revising class model developed in analysis
following manner. stage: The final solution may require some
additional classes besides of those found in analysis Object-Oriented Analysis: Object-Oriented stage, such as GUI classes, mathematical classes
Analysis (OOA) provides us with a simple, yet powerful, (e.g. matrix, vector), data management classes (such
mechanism for identifying objects / classes, the building as file) etc. For this reason, classes found in analysis
blocks of OO software. The following object-oriented stage must be reviewed for determining whether they
analysis steps are basically concerned with the can be implemented (or they require restructuring)
decomposition of a component into classes / objects and and for identifying new auxiliary classes.
establishment of a class model of the component.
• Optimizing class hierarchies: During OOA, we
• Identification of classes: One way to identify examined the inheritance relationships. We must re-
classes / objects is to look at the key concepts examine them and create class hierarchies so that
involved in the problem domain. These key concepts we can reuse as much data and/or functions that
(when occurring as nouns) are good indicators of have been designed already. Organization of class
classes. An analyst then determines exactly which hierarchies involves identification of common
classes so identified are useful for the solution. One attributes and functions among a group of related
criterion for choosing these concepts as classes is classes and then combining them to form a new
that the concept should have significant structure (in class. This new class would serve as the super class
terms of attributes) and behavior. and other classes as subordinate classes, which
inherit features from the super class. The new class
• Identification of attributes and operations: Once
may or may not have the meaning of an object by
we have identified classes, it is the time to identify
itself. If the class is purely created to combine the
the attributes and operations of these classes.
common features, it is then called an abstract class.
• Establishing relationships among classes: Here This process may be repeated until we are sure that
we establish relationships among different classes no new class can be formed. The most general
identified so far. These relationships are visualized classes remains at the top of the class hierarchy. All
using class diagram The following three kinds of lower level classes are specialization of higher-level
relationships are identified among classes: classes in the hierarchy.

a) Association: If a class collaborates with another • Extract reusable classes from class repository: As
class to perform some function, there exists an we already discussed, O-O technology promotes the
association between them. Association may be of strategy of reusability. For this reason, a class
two types: one-to-one and one-to-many. repository (or library) must be planned and
maintained for reuse across projects. In this step, we
b) Aggregation: An aggregation relationship is a examine the class repository in the light of class
whole-part relationship among classes. It means that model developed in the previous steps and extract
a class may be composed of other smaller classes. classes to maximize the reuse.
c) Inheritance: An inheritance relationship is a • Design of classes: Design of classes involves
generalization-specialization relationship among specifying data structures for attributes and
classes. algorithms for operations. This step also provides
• Modeling the class dynamics: To further aid the specifications for some additional operations such
understanding of the component, other UML as data access functions, class constructor and
diagrams can be used to visualize the dynamic destructor functions, and error-handling functions
behavior of the classes. For instance, use-case etc. for each class. Please note that if a class is
scenarios developed during System Analysis and already contained in some class repository, it should
Design phase may be visualized using Collaboration be reused. If the class contained in the class
and Sequence diagrams. State-transition diagram repository is not exactly same as the class required
may be used to model the dynamics of individual by the application, it can be tailored to suit the
classes. application using inheritance.

Indian Cartographer, 2002 DAPI-09 53

• Design of the driver class / program: This involves field of Cartography. Owing to real-world modeling
specification for a driver class / program, which philosophy, object-oriented software systems are capable
makes use of various classes designed so far to of satisfying the objectives of maintainability, reliability,
implement the component. extensibility, reusability and inter-operability. Furthermore,
object-oriented technology also helps in stimulating
4. A Report on Practical Experience with usage scientific R & Ds essential for continuously improving the
of Object-Oriented Technology methods of exploiting high-resolution space-borne
imagery in various cartographic application areas.
We have witnessed the fruitful application of object-
oriented approach by means of tremendous reduction in It is also deduced that the scientific software needs to be
development and maintenance times of data products developed in three major phases: physical modeling,
software. We have also demonstrated the revolutionary mathematical modeling and software modeling. Physical
reuse benefits of this approach by developing new modeling refers to understanding the phenomenon and
photogrammetric R&D software tools by means of underlying concepts. Mathematical modeling is
reusing OO software library generated as a result of data concerned with describing the physical model using
products software development. mathematical formulae. Software modeling translated the
physical and mathematical models into practical
First, a software library (class repository) for geometric solutions.
precision processing of IRS-1C/1D image data was
Software modeling requires a mix of top-down and
developed using object-oriented approach. The same
bottom-up approaches to software development.
library was reused and tuned for geometric correction
Software modeling is done in two sub-phases viz. (i)
and precision processing of high resolution data provided
System Analysis-and-design using top down approach
by contemporary satellite with step-and-stare imaging
and (ii) Component Analysis-and-Design using bottom-up
technology. The amount of reuse has been around 80-90
percent. Then the library could be easily extended to
support new features. The reuse of already tested
software components has helped in ensuring the
6. Acknowledgements
correctness and reliability of data products generation We express our sincere gratitude to Dr. K. L. Majumder,
software. Group Director, SIPG for allowing pioneering efforts for
applying object-oriented technology to the development
The reusable library of photogrammetric software
and maintenance of operational satellite data products
components / classes has also enabled rapid, cheaper
generation software. We are highly thankful to Dr. Arvind
and reliable development of data analysis tools such as
Kumar Singh, Shri Kannan V. Iyer, Shri Y. P. Rana, Smt.
(i) overlap-analysis between multiple strip images of high
Medha S. Alurkar, Smt. Sunanda P. Trivedi, Shri Jagjeet
resolution satellite, (ii) in-flight calibration and (iii) satellite
Singh Nain, Shri Sanjay Singh, Smt. Deepa
foot-print analysis. These tools have helped a lot in
Padmanabhan, and Dr. B. Kartikeyan for their
providing feedback for improving the mapping accuracy
encouragement and positive attitude towards object-
of satellite imagery. In addition, the photogrammetric
oriented technology.
software library has also been used as plug-and-play
component by commercial image-processing software
vendors such as ERDAS and PCI-Geomatics for
7. Bibliography
processing IRS-1C/1D data. [1] Balagurusamy, E., 1995, Object-Oriented
Programming with C++, Tata McGraw-Hill, India
Moreover, a bonus advantage resulting from the
adoption of O-O technology is that it encourages better [2] Booch, Grady, 1994, Object Oriented Analysis and
understanding of phenomenon, concepts and Design with Applications, Reading, MA, Addison-
mathematical models by requiring focus on concepts Wesley
rather than procedures. Consequently, it may contribute
[3] Coad, Peter and Edward Yourdon, 1990, Object
to better quality of scientific R & Ds in a team mode.
Oriented Analysis, Prentice Hall, Englewood Cliffs,
The OO library developed so far is expected to be highly N.J.
reused and extended during the development of software [4] Pressman, Roger S., 1997, Software Engineering: A
for Cartosat standard data products and value-added Practitioner’s Approach, McGraw-Hill, New York
data products / services leading to the generation and
use of cartographic mapping applications. [5] Rumbaugh, James, et al, 1997, Object-Oriented
Modeling and Design, Prentice-Hall of India, New
5. Conclusions Delhi
[6] Rumbaugh, James, Ivar Jacobson and Grady
Based on our discussion, it turns out that object-oriented
Booch, 1998, Unified Modeling Language Reference
software engineering has a crucial role to play in the
Manual, Addison-Wesley, Reading, MA
design and development of complex satellite data
processing software systems required for effective [7] Sigfried, Stefan, 1996, Understanding Object-Oriented
utilization of high-resolution space-borne imagery in the Software Engineering, IEEE Press, New York

54 DAPI-09 Indian Cartographer, 2002