Sie sind auf Seite 1von 18


By Linda M. Northrop
Software Engineering Institute

SE682 Paper presentation

Student: Julian Hirjoi
Object-Oriented Development
 Historical Perspective
 Motivation
 Object-Oriented Model
 Object-Oriented Programming
 Concepts
 Languages
 Object-Oriented Software Engineering
 Life cycle
 OOA – Object Oriented Analysis
 OOD – Object Oriented Design
 Issues
 Future ???
 Questions
Object-Oriented Development
Historical Perspective
 Concepts like “objects” and “attributes of concepts” actually date back to
the early 1950s – in early works in Artificial Intelligence (Berard, 1993)

 Real legacy of object oriented movement began 1966 – Kristen Nygaard

and Ole-Johan Dahl created SIMULA, first language to provide
encapsulation at a more abstract level than subprograms; data abstraction
and classes were introduced to simulate a problem.

 1970s – Smalltalk – first true object oriented language

 1986 - Objective-C, C++, Self, Eiffel, Flavors
 1990s – ongoing investigation of object oriented domain analysis, testing,
metrics and management
Object Oriented Development
 ? Possible “SILVER BULLET”
Greater productivity, reliability, maintainability and manageability

 Object oriented development adds emphasis on direct mapping of concepts in the

problem domain to software units and their interfaces

 Vision of the world as objects – more natural, since is closer to the way humans

 Objects more stable than functions – software change usually is change in

required functionality, not change in the players (objects)

 OOD supports concurrency, hierarchy, and complexity present in many of today’s

software systems, also tends to reduce the risk of developing complex systems,
system integration being diffused throughout the life cycle
Object Oriented Development
Object Oriented Model
 Systems are viewed as cooperating objects that
encapsulate structure and behavior and which belong to
classes that are hierarchically constructed

 Is a conceptual framework with the following elements:

 Abstraction
 Encapsulation
 Modularity
 Hierarchy
 Typing
 Concurrence
 Persistence
 Reusability
 Extensibility
Object Oriented Development
Object Oriented Model
 Object orientation is the integration of procedural and data-driven approaches.

Structured languages Database languages

Structured analysis Data driven analysis Advances in programming

and design and design methodology


Object Oriented Development

Increasing scale, Advances in Advances in

complexity, diversity computer cognitive science
of systems architecture
Object Oriented Development
Object Oriented Model
 Abstraction progression:

 ADDRESS – machine languages

 NAME - assembly languages
 EXPRESSION – first generation languages (FORTRAN)
 CONTROL - second generation languages (COBOL)
 PROCEDURE AND FUNCTION – second and early third generation
languages – PASCAL
 MODULES AND DATA – late third generation languages – Modula2
 OBJECTS - object-based and object-oriented languages
Object Oriented Development
Object Oriented Model
 OOD has proven successful in many applications including, but not limited to:
 Air traffic control,
 Banking
 Business data processing
 Command and control systems
 Computer-aided design (CAD)
 Computer integrated manufacturing
 Databases
 Document preparation
 Expert systems
 Hypermedia
 Image recognition
 Mathematical analysis
 Robotics
 Space station software ....
Object Oriented Development
 OO languages are characterized by:
 Object creation facility
 Message passing capability
 Class capability
 Inheritance

Procedural Model Object-Oriented Model

IN Data
CODE Operation

Object Oriented Development
 Objects = entity that encapsulates state and behavior
 State = information needed to be stored in order to carry
out the behavior
 Object’s interface (protocol) = set of messages to which
the object will respond
Bark Sit
DOG Roll
Bark Sit


1 3 4 N
Dog2 Kill
Object Oriented Development

 Abstract class – multiple polymorphism



Object Oriented Development

 Object oriented languages – 4 big branches, all starting in some

way from Simula, their common ancestor
 1. Smalltalk based, ex. Smalltalk-80
 2. C-based, ex. Objective C, C++, Java
 3. LISP-based, ex. Flavors, XLISP, LOOPS
 4. Pascal-based, ex. Object Pascal, Turbo Pascal, Eiffel, Ada 95
 Also, there are object based languages, difference between
Object Oriented languages and Object Based being the lack of
inheritance capability
Object Oriented Software Engineering
Life cycle
 Most known – regular waterfall/structured life cycle, sequential process,
activities: Analysis -> Specification -> Design -> Implementation -> Testing ->
System Integration -> Maintenance

 Deficiencies: - assumption that all requirements are known at the beginning;

 cannot accommodate real iterations,
 also places no emphasis on reuse and
 has no unified model to integrate the phases

 OO approach – begins with a model of the problem and proceeds with

continuous object identification and elaboration.
 Inherently iterative and incremental
 Called Water Fountain Life Cycle, follows the same activities but at any time the
process may go back to a previous phase:
 Evolution: Analysis <-> Design <-> Code <-> Test <-> Integrate
Object Oriented Analysis and Design
 OOA – method of analysis that examines
requirements from the perspective of the classes and
objects found in the vocabulary of the problem domain

 Concepts used :
 Scenarios – sequence of actions that takes place in the
problem domain
 Framework – skeleton of an application

 Drawback of all OOA – universal lack of formality

Object Oriented Analysis and Design
 Design pattern – recurring design structure or solution that when
cataloged in a systematic way can be reused and can form the
basis of design communication

 Some of OOA and OOD techniques:

 Class diagrams, class category diagrams, class templates and object
diagrams (Booch, 1991) used to record design
 Class responsibility cards (CRC) – record class functionality and
collaborators (WirfsBrock, 1990)
 Object Model – static structure of the objects in a system => Object
 Dynamic Model – aspects of a system that change over time => State
 Functional Model – data value transformation within a system => Data
Flow diagram
 Multilayer (steps – ex. class, object layer) and multicomponent (problem
domain, task management, human interaction, …) techniques
 Use cases – basis for analysis model (Objectory)
Management issues
 New milestones have to be established
 Measurement approaches (metrics) have to change for OO approach
 Coupling between objects
 Class to class relations
 Number of classes
 Class size
 Inheritance depth
 Number of classes reused
 Resource allocation – smaller teams recommended
 Quality Assurance
 Tool Support – OOD environment needed along with the other
components (incremental compiler, class debugger, browser for class
 Estimates and risk issues
 Cost of current and future reuse
 Acquisition of appropriate tools,…
Object oriented development - FUTURE

 OOD - Still in development, has not yet reached

maturity, the full potential of objects has not been

 Object orientation may eventually be replaced or

absorbed into an approach that deals with a higher
level of abstraction

 Reference: Object Oriented Development, by Linda M. Northrop, Software Engineering

Institute, IEEE Computer Society Press, Calif. 1997
Object Oriented Development

 Questions ???