Principles of Object Oriented Systems: Software Engineering Department
Principles of Object Oriented Systems: Software Engineering Department
systems
Execution
Testing
Maintenance
Notes on software design
Three aspects of software design:
Reliability : The software follows the all
specifications and operate well in both normall
as well as abnormal conditions.
Extendability: Can be compatible with some
changes of specifications and database.
Reusability: Modules can be reused in other
applications.
Testing
Quality of a database system is measured based on
corectness and reliablity.
Goals of testing:
Detect errors in periods of modelling and execution.
Determine if the system satisfies the user needs?.
Maintenance
Practically it is not possible to carry a complete testing
for a large database system. Further, some errors might
happen during later use.
Tasks:
Repair corruptions during the usage.
Implement change sof systems responding to the new
requirements.
Implement schames to improve effectiveness and user
interface.
Object Oriented Systems
The term object-oriented seems to be the buzzword of
the 1980s and 1990s.
Everybody is using it, but with such a wide range of
different meanings that no one seems to know exactly
what the other is saying.
It appears in several disciplines, including programming
languages, databases and knowledge bases, artificial
intelligence and computer systems in general.
Object-Orientation - What Does
it Mean?
Object-orientation can be seen as a kind of technique of
organizing a system in terms of objects.
type,
inheritance,
abstraction,
concurrency, and
persistence
Object and Abstraction
The dimensions object and abstraction reflect the basic
principle of encapsulation, which can be found in
conventional languages like Modula-2 or Ada.
An abstraction denotes the essential characteristics of an
object that distinguish it from all other kinds of objects
and thus provide crisply defined conceptual boundaries,
relative to the perspective of the viewer.
Object and Abstraction
Entity abstraction An object that represents a useful
model of a problem domain or solution domain entity
Action abstraction An object that provides a generalized
set of operations, all of which perform the same kind of
function
Virtual machine abstraction An object that groups
operations that are all used by some superior level of
control, or operations that all use some junior-level set
of operations
Coincidental abstraction An object that packages a set
of operations that have no relation to each other
Example: defining a class
Class Fruit{
int grams;
int cals_per_gram;
int total_calories() {
return(grams*cals_per_gram);
}
Inheritance
Inheritance is the more innovative part of the approach,
because it is not provided by these conventional
programming languages.
It is a tool for (automatically) broadcasting definitions
of attributes and methods from already defined pieces
of data and operations to pieces developed separately
and thus supports reusability.
Inheritance Example
Class C is a subclass of class B (its
superclass) if its declaration has the form
class C extends B {
…
}
Modeling power:
Inheritance of both variables and methods is a very powerful tool for data
modeling.