10
Dale Roberts Object Oriented Programming using Object Oriented Programming using Java Java - Introduction - Introduction Dale Roberts, Lecturer Computer Science, IUPUI E-mail: [email protected] Department of Computer and Information Science, School of Science, IUPUI

Object Oriented Programming using Java - Introduction

  • Upload
    garvey

  • View
    42

  • Download
    0

Embed Size (px)

DESCRIPTION

Department of Computer and Information Science, School of Science, IUPUI. Object Oriented Programming using Java - Introduction. Dale Roberts, Lecturer Computer Science, IUPUI E-mail: [email protected]. Software Orientation over Time. - PowerPoint PPT Presentation

Citation preview

Page 1: Object Oriented Programming using Java - Introduction

Dale Roberts

Object Oriented Programming using JavaObject Oriented Programming using Java

- Introduction- Introduction

Dale Roberts, LecturerComputer Science, IUPUIE-mail: [email protected]

Department of Computer and Information Science,School of Science, IUPUI

Page 2: Object Oriented Programming using Java - Introduction

Dale Roberts

Software Orientation over TimeSoftware Orientation over Time

1960’s, 1970’s – Process-Orientation – 1960’s, 1970’s – Process-Orientation – Process models – Data Flow Diagrams, Process models – Data Flow Diagrams,

Flow ChartsFlow Charts

1980’s – Data-Orientation – Data models – 1980’s – Data-Orientation – Data models – Entity-Relationship (ER) DiagramsEntity-Relationship (ER) Diagrams

1990’s – Object-Orientation – Object models 1990’s – Object-Orientation – Object models – Class Diagrams, Event Diagrams– Class Diagrams, Event Diagrams

2000’s – Unified Modeling Language – an 2000’s – Unified Modeling Language – an attempt to standardize all the models into a attempt to standardize all the models into a single standard. Synthesizing models is single standard. Synthesizing models is still maturing.still maturing.

Page 3: Object Oriented Programming using Java - Introduction

Dale Roberts

OverviewOverviewWhat are object-oriented (OO) methods?What are object-oriented (OO) methods?

OO methods provide a set of techniques for analyzing, OO methods provide a set of techniques for analyzing, decomposing, and modularizing software system architectures.decomposing, and modularizing software system architectures.In general, OO methods are characterized by structuring the In general, OO methods are characterized by structuring the system architecture around system architecture around objectsobjects (and classes of objects) (and classes of objects) rather than the rather than the actionsactions it performs. it performs.This contrasts object-oriented programming from procedural This contrasts object-oriented programming from procedural programming.programming.

What are the benefits of OO?What are the benefits of OO?OO enhances key software quality factos of a system and its OO enhances key software quality factos of a system and its constituent componentsconstituent components

What is the rationale for using OO?What is the rationale for using OO?In general, systems evolve and functionality changes, but In general, systems evolve and functionality changes, but objects and classes tend to remain more stable over time.objects and classes tend to remain more stable over time.

Page 4: Object Oriented Programming using Java - Introduction

Dale Roberts

Software Quality FactorsSoftware Quality Factors

Object-oriented techniques enhance key Object-oriented techniques enhance key external and internal software quality factorsexternal and internal software quality factors

1.1. External (visible to end-users)External (visible to end-users)a)a) CorrectnessCorrectness

b)b) Robustness and reliabilityRobustness and reliability

c)c) PerformancePerformance

2.2. Internal (visible to developers)Internal (visible to developers)ModularityModularity

a)a) Flexibility/ExtensibilityFlexibility/Extensibility

b)b) ReusabilityReusability

c)c) Compatibility (via standard/uniform interfaces)Compatibility (via standard/uniform interfaces)

Page 5: Object Oriented Programming using Java - Introduction

Dale Roberts

OOA, OOD and OOPOOA, OOD and OOP

Object-oriented methods may be applied to Object-oriented methods may be applied to different phases of the software development different phases of the software development life cycle.life cycle.

Analysis, Design, Implementation, etc.Analysis, Design, Implementation, etc.

OO analysis (OOA) is a process of OO analysis (OOA) is a process of discoverydiscovery..Where a development team models and understands the Where a development team models and understands the requirements of the system in terms of actors.requirements of the system in terms of actors.

OO design (OOD) is a process of OO design (OOD) is a process of inventioninvention and and adaptationadaptation

Where the development team created abstractions and Where the development team created abstractions and mechanisms necessary to meet the system’s behavioral mechanisms necessary to meet the system’s behavioral requirements determined during analysis.requirements determined during analysis.

Page 6: Object Oriented Programming using Java - Introduction

Dale Roberts

OOA, OOD and OOP (cont.)OOA, OOD and OOP (cont.)

OO programming (OOP) implements an OOD in OO programming (OOP) implements an OOD in a particular programming language.a particular programming language.

The more consistent the OOD and OOP techniques, the The more consistent the OOD and OOP techniques, the easier the implementationeasier the implementation

Because of the wide use of OOD and OOP Because of the wide use of OOD and OOP terminology, it is useful to distinguish between terminology, it is useful to distinguish between the two.the two.

OOD is relatively language independent.OOD is relatively language independent.

OOP is language dependent and primarily concerned with OOP is language dependent and primarily concerned with software implementation details of OOD concepts (like software implementation details of OOD concepts (like class definitions, inheritance and polymorphism.)class definitions, inheritance and polymorphism.)

Page 7: Object Oriented Programming using Java - Introduction

Dale Roberts

Basic DefinitionsBasic Definitions

Object-Oriented DesignObject-Oriented DesignA method of decomposing software architectures based A method of decomposing software architectures based on the on the objectsobjects that every systems or subsystem that every systems or subsystem manipulates.manipulates.

Rather than the Rather than the functionalityfunctionality that is meant to be delivered. that is meant to be delivered.

Object-Oriented ProgrammingObject-Oriented ProgrammingThe construction of software systems as structured The construction of software systems as structured collections of collections of Abstract Data Type Abstract Data Type (ADT) implementations (ADT) implementations plus plus inheritanceinheritance and and dynamic bindingdynamic binding (polymorphism). (polymorphism).

Page 8: Object Oriented Programming using Java - Introduction

Dale Roberts

Object-Oriented Design TopicsObject-Oriented Design Topics

Object-oriented design concepts includeObject-oriented design concepts includeDecomposition/CompositionDecomposition/Composition

AbstractionAbstractionModularityModularity

Information Hiding (Encapsulation)Information Hiding (Encapsulation)

Virtual Machine HierarchiesVirtual Machine Hierarchies

Separating Policy and MechanismSeparating Policy and Mechanism

Subset Identification and Program FamiliesSubset Identification and Program Families

ReusabilityReusability

Main purpose of these design concepts is to Main purpose of these design concepts is to manage software system complexity by manage software system complexity by improving software quality factors.improving software quality factors.

Page 9: Object Oriented Programming using Java - Introduction

Dale Roberts

Object-Oriented Programming TopicsObject-Oriented Programming Topics

Object-oriented programming features includeObject-oriented programming features includeData abstraction, Information Hiding (Encapsulation)Data abstraction, Information Hiding (Encapsulation)

Active (rather than passive) typesActive (rather than passive) types

GenericityGenericity

Inheritance and dynamic binding (Polymorphism)Inheritance and dynamic binding (Polymorphism)

Assertions and exception handlingAssertions and exception handling

This courses focuses on how these OOP topics This courses focuses on how these OOP topics improve software qualityimprove software quality

Correctness, reusability, extensibility, reliability, etc.Correctness, reusability, extensibility, reliability, etc.

Advanced courses focus on OOD topicsAdvanced courses focus on OOD topicsFactoring, Class Diagrams, Use Cases, Design Patterns, Factoring, Class Diagrams, Use Cases, Design Patterns, etc.etc.

Page 10: Object Oriented Programming using Java - Introduction

Dale Roberts

AcknowledgementsAcknowledgementshttp://www.cs.wustl.edu/~schmidt/PDF/ood-overview4.pdf