Oop in Java
Oop in Java
Design
AA software
software product
product isis an
an entity
entity
comprised
comprised of of one
one or or more
more programs,
programs, data,
data,
and
and supporting
supporting materials
materials andand services
services that
that
satisfies
satisfies client
client needs
needs andand desires
desires either
either as
as
an
an independent
independent artifact
artifact or
or as
as essential
essential
ingredient
ingredient in in some
some other
other artifact.
artifact.
Software
Software design
design isis the
the activity
activity of
of
specifying
specifying the
the mature
mature and
and composition
composition ofof
software
software products
products that
that satisfy
satisfy client
client needs
needs
and
and desire,
desire, subject
subject to
to constraints.
constraints.
Abstraction
Abstraction isis suppressing
suppressing or or ignoring
ignoring
some
some properties
properties ofof objects,
objects, events,
events, or
or
situations
situations in
in favor
favor of
of others.
others.
Problem simplification
• Abstracting allows us to focus on the most
important aspects of a problem in (partially)
solving it.
Structuring problem solving
• Top-down strategy: Solve an abstract version of
the problem, then add details (refinement)
• Bottom-up strategy: Solve parts of a problem and
connect them for a complete solution
Target Model
AA static
static model
model represents
represents aspects
aspects of
of
programs
programs that
that do
do not
not change
change during
during program
program
execution.
execution.
AA dynamic
dynamic model
model represents
represents what
what happens
happens
during
during program
program execution.
execution.
Software
Software product
product design
design isis the
the
activity
activity of
of specifying
specifying software
software product
product
features,
features, capabilities,
capabilities, and
and interfaces
interfaces toto
satisfy
satisfy client
client needs
needs and
and desires.
desires.
Software
Software engineering
engineering design
design isis the
the activity
activity of
of
specifying
specifying programs
programs and
and sub-systems,
sub-systems, and and their
their
constituent
constituent parts
parts and
and workings,
workings, toto meet
meet software
software
product
product specifications.
specifications.
Requirements
Product Design
Specification
Design
Engineering Design
Implementation
Testing
Design Features
and Capabilities
Solution: Features
Product and Capabilities
Design
Solution:
Design Interactions
Interactions
Solution: SRS
Create High-Level
Design Solution: High-
Level Design
Engineering
Design Create Low-Level Solution: Low-
Design Level Design
Solution: Design
Document
Write Code
Solution: Code
AA software
software design
design method
method isis an
an orderly
orderly
procedure
procedure for
for generating
generating aa precise
precise and
and
complete
complete software
software design
design solution
solution that
that
meets
meets clients
clients needs
needs and
and constraints.
constraints.