Sie sind auf Seite 1von 18

Object-Oriented

Development
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


 LOGO
 LISP
 1986 - Objective-C, C++, Self, Eiffel, Flavors
 1990s – ongoing investigation of object oriented domain analysis, testing,
metrics and management
Object Oriented Development
Motivation
 ? 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
think

 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
programming

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
Concepts
 OO languages are characterized by:
 Object creation facility
 Message passing capability
 Class capability
 Inheritance

Procedural Model Object-Oriented Model

Arguments
IN Data
structures
Interface
CODE Operation
s

Results
OUT
Object Oriented Development
Concepts
 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
DOG
Bark Sit
DOG Roll
Bark Sit
Roll

Dog Dog Dog DOBERMA


1 3 4 N
Dog2 Kill
Object Oriented Development
Concepts

 Abstract class – multiple polymorphism

UNMEMBE
R
speak

JAPANESE
FRENCHMA speak
N
speak

AMERICAN
speak ENGLISHMAN
speak
Object Oriented Development
Languages

 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
diagram
 Dynamic Model – aspects of a system that change over time => State
diagram
 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
libraries)
 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
realized

 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 ???