Object Oriented Development

Published on June 2017 | Categories: Documents | Downloads: 24 | Comments: 0 | Views: 236
of 18
Download PDF   Embed   Report



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 Life cycle OOA – Object Oriented Analysis OOD – Object Oriented Design

Object-Oriented Software Engineering
  

  

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 and design

Data driven analysis and design

Advances in programming methodology

Object-oriented programming

Object Oriented Development

Increasing scale, complexity, diversity of systems

Advances in computer architecture

Advances in cognitive science

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 Interface CODE

Data structures 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 Roll DOG Bark Sit Roll

Dog 1 Dog2

Dog 3

Dog 4


Object Oriented Development Concepts

Abstract class – multiple polymorphism


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

Sponsor Documents

Or use your account on DocShare.tips


Forgot your password?

Or register your new account on DocShare.tips


Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in