SOFT3010: ObjectOriented Development - PowerPoint PPT Presentation

1 / 18
About This Presentation
Title:

SOFT3010: ObjectOriented Development

Description:

Two sweeping trends dominate the (short) history of Software ... Eiffel, C , Objective-C , CLOS and Object Pascal followed in the mid-eighties; Java in 1996 ... – PowerPoint PPT presentation

Number of Views:42
Avg rating:3.0/5.0
Slides: 19
Provided by: alanoca
Category:

less

Transcript and Presenter's Notes

Title: SOFT3010: ObjectOriented Development


1
SOFT3010 Object-Oriented Development
  • Alan OCallaghan
  • Object Engineering Migration group
  • aoc_at_dmu.ac.uk

2
Trends in Software Engineering
  • Two sweeping trends dominate the (short) history
    of Software Engineering
  • the shift in focus from programming-in-the-small
    to programming-in-the-large
  • the evolution of higher order programming
    languages
  • These changes in turn impact on software
    architecture, the development process, and
    development team organisation

3
The Generations of Programming Languages (1)
  • First Generation (1954-1958)
  • FORTRAN I Mathematical expressions
  • ALGOL 58 Mathematical expressions
  • Flowmatic Mathematical expressions
  • IPL V Mathematical expressions
  • Second Generation (1959-1961)
  • FORTRAN II Subroutines, separate compilation
  • ALGOL 60 Block structures, data types
  • COBOL Data description, file handling
  • Lisp List processing, pointers, etc.

4
The generation of Programming Languages (2)
  • Third Generation (1962-1970)
  • PL1 FORTRANALGOLCOBOL
  • ALGOL 68 ALGOL 60 rigour
  • Pascal Simple successor to ALGOL 60
  • Simula 67 Classes, data abstraction
  • The Generation Gap (1970-80)
  • Many new languages, only C endured
  • Fourth Generation
  • Progress Application Generator

5
The genesis of OO
  • Simula 67 was the first OO language
  • but was considered structured
  • Smalltalk 80 is the mother of modern OO languages
    and concepts
  • Byte articles in 1981 introduced OO to
    programmers
  • Eiffel, C, Objective-C , CLOS and Object
    Pascal followed in the mid-eighties Java in 1996

6
The Topology of First and Early Second Generation
Languages
Data
Subprograms
7
The Topology of Second and Early Third Generation
Languages
8
The Topology of Late Second and Early Third
Generation Languages
9
The Topology of Object-oriented Languages
10
Elements of the Object Model
  • Booch identifies four major elements of the
    Object Model
  • Abstraction
  • Encapsulation
  • Modularity
  • Hierarchy
  • And three minor elements
  • Typing concurrency persistence

11
Abstraction
  • An abstraction denotes the essential
    characteristics of an object that distinguish it
    from other kinds of objects and thus provide
    crisply defined conceptual boundaries, relative
    to the perspective of the viewer

12
Encapsulation
  • Encapsulation is the process of
    compartmentalizing the elements of an abstraction
    that constitutes its structure and behaviour
    encapsulation serves to separate the contractual
    interface of an abstraction and its
    implementation

13
Modularity
  • Modularity is the property of a system that has
    been decomposed into a set of cohesive and
    loosely coupled modules

14
Hierarchy
  • Hierarchy is the ranking or ordering of
    abstractions

15
Typing
  • Typing is the enforcement of the class of an
    object, such that objects of different types may
    not be interchanged, or at most, that may be
    interchanged in very restricted ways

16
Concurrency
  • Concurrency is the property that distinguishes
    an active object from one that is not active

17
Persistence
  • Persistence is the property of an object through
    which its existence transcends time (i.e. the
    object continues to exist after its creator
    ceases to exist) and/or space (ie.the objects
    location moves from the address space in which it
    was created).

18
Open Issues
  • What exactly are classes or objects?
  • How do you properly define the classes and
    objects that are relevant?
  • What is a suitable notation for expressing the
    design of an OO system?
  • What process can lead us to a well-structured OO
    system?
  • What are the management implications of using
    objects?
Write a Comment
User Comments (0)
About PowerShow.com