Object-Oriented Development

advertisement
Object-Oriented
Development
By Linda M. Northrop
vol. 1, chapter 5, pp. 291-300
Presented by: Gleyner Garden
EEL6883
Software Engineering II
Introduction


The paper was written in 1994 and provides an
overview of object-oriented methodologies
Describes the history of object-oriented methods,
models of object-oriented design, and concepts of
object-oriented programming
Most of you probably already knew most of this stuff as
you were reading… but when this paper was written, a
lot of these ideas were new to a lot of people…
Historical Perspective




Was initially thought of as a “research curiosity”
Object-oriented programming is today what
structured programming was in the 1970’s
The Object and object attribute idea first
conceived in the 1950’s for A.I.
The real movement began in 1966 with the
introduction of the Simula language
Historical Perspective

Palo Alto Research Center (PARC) developed
Smalltalk in the early 1970’s


Led other languages to support object-oriented
programming


Smalltalk is considered the first truly object-oriented
language
examples: Objective-C, C++, Self, Eiffel, and Flavors
1980 Booch pioneered the concept of objectoriented design (OOD)
Motivation

Benefits are Greater:
Productivity
 Reliability
 Maintainability
 Manageability

Motivation




Direct mapping of concepts in the problem
domain to software units and their interfaces
Viewing the world as objects is more natural
since it is closer to the way humans think
Objects are more stable than functions…
Supports information hiding, data abstraction,
and encapsulation
Motivation

Easily modified, extended, and maintained…

if your product was designed correctly
Object-Oriented Model



A “new” way of thinking about what it means to
compute and how information can be structured
Systems are viewed as cooperating objects that
encapsulate structure and behavior in a
hierarchical construction
Functionality achieved by messages passing
between objects
Object-Oriented Model

Object-oriented model can be viewed as the framework
containing:









Abstraction
Encapsulation
Modularity
Hierarchy
Typing
Concurrence
Persistence
Reusability
Extensibility
Object-Oriented Model

The integration of
procedural and datadriven approaches
Object Oriented Programming

Concepts:
Programs are organized into cooperating collections
of objects
 Object: entity that encapsulates state and behavior.
An instance of a class
 Interface or protocol: set of messages to which it
will respond
 Response can be a message or routine, or delegation
of the message to another object

Object Oriented Programming
Languages

4 Branches of object-oriented languages, with
Simula being the common ancestor:
Smalltalk-based
 C-based



LISP-based


Objective-C, C++, Java
Flavors, XLISP, LOOPS, CLOS
PASCAL-based

Object Pascal, Turbo Pascal, Eiffel, Ada 95
Languages

Object-based languages:
Alphard:
 CLU
 Euclid
 Gypsy
 Mesa
 Ada

Want to learn more about these languages (history,
where their names came from, etc)? click here:
Life Cycle

If it is accepted that object-oriented is more
than object-oriented coding, then a whole new
approach, including life cycle, must be adopted
(Booch, 1994)
Life Cycle



Waterfall consists of a
sequential process,
primarily in one
direction
Does not
accommodate real
iteration
Criticized for placing
no emphasis on reuse
and having no
unifying model to
integrate the phases
Life Cycle


Water fountain life
cycle describes the
inherent iterative and
incremental qualities
of object-oriented
development
Prototyping and
feedback loops are
standard
Object-Oriented Analysis



Examines requirements from the perspective of
the classes and objects found in the vocabulary
of the problem domain
Yields black-box objects that are derived from
the problem domain
Scenarios can be used to determine necessary
object behavior
Analysis example


Problem: Drawing shapes
Scenarios:
Draw a point
 Draw a line
 Draw a circle
 Draw a square
 Draw a rectangle
 Draw a polygon

Object-Oriented Design





Object focus shifts to the solution domain
Objects, their semantics, and relationships are
identified
Implementation and iteration occur
Jacobsen says “when details of the
implementation begin to show, it’s OOD”
In my practice: OOA is preliminary design, and
OOD is detailed design
Management Issues


Object-oriented development requires a
commitment to change processes, resources, and
organizational structure.
LOC measurements are less valuable, # of
classes reused, inheritance depth, number of
class-to-class relationships, object coupling, total
# of classes, and class sizes are more valuable
and meaningful
Management Issues




Booch suggests smaller development teams, and
cultivation of reuse experts
Reward reuse, not LOC: build libraries and
application frameworks
QA: review and testing activities still essential,
but timing and definition are different
Tools: everything described exists in visual
studio
Object-Oriented Transition




Levels of absorption before assimilation into a
software development organization occurs
Training is essential
Pilot projects are recommended
Combining structured and object-oriented
approached not recommended
Object-Oriented Transition

Total object-oriented approach recommended
for the following reasons:
Traceability improvement
 Reduction in significant integration problems
 Improved conceptual integrity of process and
product
 Less need for objectification and deobjectification
 Maximization of the benefits of object-orientation

The Future

The future is now… object-oriented
development is pretty standard
Class libraries and application frameworks (exist)
 Transparent information access across applications
and environments (exists)
 Movement will gain popularity (did)

Conclusion

This paper was pretty cutting-edge when it was
first published
Questions? Comments?

Feel free to speak up!
Download