How
can
we
create
reusable
software
with
the
help
of
abstraction
and
inheritance
in
the
JavaTM
programming
language?
This
session
provides
insight
for
programmers
using
Java
technology
and
explains
the
great
open
close
principle
(Bertrand
Meyer)
and
Liskov
Substitution
principle
with
sample
code,
as
well
as
illustrates
the
ideas
clearly
within
the
presentation.
Well-designed
code
can
be
extended
without
modification,
and
we
can
avoid
the
problems
of
metamorphosis
and
combination
explosions
in
inheritance
by
writing
code
in
the
correct
way.
The
presentation
provides
good
examples
for
future
Java
programmers,
who
want
to
leverage
on
powerful
principles
to
get
most
of
the
benefits
like
scalability,
modularity,
efficiency
and
reusability.
Writing
a
Java
class
using
the
online
API
is
not
a
great
deal,
but
delivering
a
complex
solution
with
more
than
say
1000
such
classes
in
such
a
way
that
most
of
the
classes
are
reusable,
the
system
is
extensible
and
is
backward
compatible
-
that
is
not
so
easy.
This
session
is
built
in
such
a
way
as
to
provide
those
fundamental
knowledge
in
refactoring,
designing
reusable
components,
programming
to
interfaces,
design
patterns
and
some
tips
and
tricks
so
that
you
can
immediately
go
back
and
apply
to
your
systems
if
you
have
not
done
so
yet.
The
session
would
be
suiting
to
those
future
Java
programmers
to
get
equipped
with
the
latest
trends
and
principles
in
designing
and
architecting
efficient
Object
Oriented
Systems.
Tutorial
Structure
Objects
from
first
principles
-
The
first
class
objects
-
Collaboration
is
OO
System
-
Illustration
-
Metaclasses
and
MOP
Abstraction
-
Interface
Inheritance
-
Implementation
Inheritance
-
Inheritance
is
Delegation
-
Illustration
Reusability
-
Bertrand
Mayer's
Open
Close
Principle
-
Illustartion
-
Liskov's
Substitution
Principle
-
Illustration
-
Dynamic
Binding
-
The
great
benefit
-
Mayer's
Assertion
Re-declaration
Rule
-
When
to
Introduce
States
in
OO
Systems?
Principles
for
good
design
-
Metamorphosis
:
Static-Dynamic
Segregation
-
Combination
Explosion
-
Dependency
Inversion
Principles
Reusable
ideas
-
patterns
-
Introduction
-
A
Drawing
Tool
-
How
we
use
patterns
-
Illustration
Evolving
Technologies
-
Design
By
Contract
-
Aspect
Oriented
Programming
Practical
-
Coding
Time!
-
Creating
a
menu
based
calculator
program
illustrating
some
of
the
things
you
learned
above
-
we
will
n,do
it
now
Background
Knowledge
The
participants
are
expected
to
know
at
least
one
object
oriented
language,
say
C++
or
Java.
The
session
is
aimed
at
intermediate
to
advanced
Java
programmers
who
would
like
to
write
code
effectively
by
concentrating
on
high
level
principles
of
the
object
oriented
system.
Theoretically
oriented
researchers
can
get
benefit
from
the
lecture
in
order
to
put
in
practice
the
above
principles
in
their
design/architecture.
Information
About
the
Speaker
Address:
Ravi
Shankar.
N,
Senior
Software
Engineer,
Crimson
Logic
Pte
Ltd,
31,
The
Crimson,
Science
Park
2,
Singapore
117
611
Telephone:
(65)
98630563
Email:
rshankarn@acm.org
Bio
Data
Ravi
Shankar
is
a
Senior
Software
Engineer
at
CrimsonLogic
Pte
Ltd,
specializing
in
designing
and
architecting
advanced
Java
applications
in
the
broad
areas
of
J2SE,
J2EE
and
J2ME,
in
particular
in
enterprise
mission
critical
applications.
From
his
last
11
years
of
excellent
track
record
as
a
Software
Engineer,
Trainer,
Senior
Consultant
and
Senior
Software
Engineer
in
Hyderabad
(first
seven
years)
and
Singapore
(later
four
years),
Ravi
has
a
vast
expertise
to
bring
in
implementing
and
delivering
high
quality
systems.
In
addition,
he
had
taught
numerous
students,
who
range
from
undergraduates
to
project
leads
and
has
established
himself
as
a
highly-regarded
trainer
and
developer
famed
for
his
caliber
and
efficiency.
Ravi
is
a
frequent
speaker
for
both
local
and
national
seminars
and
conferences
where
his
presentations
have
benefits
many
IT
professionals.
In
particular,
he
participated
and
presented
a
paper
on
"Blending
Mathematics
and
Computer
Science"
at
ISTAM-99
(Indian
Society
for
Theoretical
and
Mechanical
Sciences)
as
well
as
other
topics
on
"Implementation
of
Visual
Media
in
Teaching"
and
"Expert
Systems
and
Artificial
Intelligence".
He
has
also
authored
several
tutorials
on
C,
C++,
Oracle
and
Java
and
has
been
a
regular
columnist
in
their
local
newspapers.
Ravi
was
a
selected
speaker
in
International
Java
ONE
conference
in
Japan
in
September
2002,
where
he
had
presented
two
papers
on
"Thoughts
on
Inheritance"
and
"Exploring
Extreme
Programming".
As
software
design
and
implementation
goes
beyond
just
classroom
knowledge
and
books,
Ravi's
industrial
experiences
and
know-how
will
undoubtedly
be
the
key
differentiator
as
a
preferred
architect.
As
an
early
adopter
of
Java
and
J2EE
since
their
inception
and
with
his
skillful
delivery
and
interpersonal
skills
the
valued
customer
can
expect
to
have
feature
rich
reusable
and
maintainable
solutions
which
will
be
equipped
for
the
latest
trends
and
challenges
in
software
development.
Ravi
is
an
ACM
(
Association
of
Computing
Machinery)
Professional
Member
and
he
is
technical
committee
member
for
OASIS's
Framework
for
Web
Services
Implementation.
|