1 / 10

Object Oriented Programming using Java - Introduction

Department of Computer and Information Science, School of Science, IUPUI. Object Oriented Programming using Java - Introduction. Dale Roberts, Lecturer Computer Science, IUPUI E-mail: droberts@cs.iupui.edu. Software Orientation over Time.

howie
Download Presentation

Object Oriented Programming using Java - Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Department of Computer and Information Science,School of Science, IUPUI Object Oriented Programming using Java- Introduction Dale Roberts, Lecturer Computer Science, IUPUI E-mail: droberts@cs.iupui.edu

  2. Software Orientation over Time 1960’s, 1970’s – Process-Orientation – Process models – Data Flow Diagrams, Flow Charts 1980’s – Data-Orientation – Data models – Entity-Relationship (ER) Diagrams 1990’s – Object-Orientation – Object models – Class Diagrams, Event Diagrams 2000’s – Unified Modeling Language – an attempt to standardize all the models into a single standard. Synthesizing models is still maturing.

  3. Overview • What are object-oriented (OO) methods? • OO methods provide a set of techniques for analyzing, decomposing, and modularizing software system architectures. • In general, OO methods are characterized by structuring the system architecture around objects (and classes of objects) rather than the actions it performs. • This contrasts object-oriented programming from procedural programming. • What are the benefits of OO? • OO enhances key software quality factos of a system and its constituent components • What is the rationale for using OO? • In general, systems evolve and functionality changes, but objects and classes tend to remain more stable over time.

  4. Software Quality Factors • Object-oriented techniques enhance key external and internal software quality factors • External (visible to end-users) • Correctness • Robustness and reliability • Performance • Internal (visible to developers) Modularity • Flexibility/Extensibility • Reusability • Compatibility (via standard/uniform interfaces)

  5. OOA, OOD and OOP • Object-oriented methods may be applied to different phases of the software development life cycle. • Analysis, Design, Implementation, etc. • OO analysis (OOA) is a process of discovery. • Where a development team models and understands the requirements of the system in terms of actors. • OO design (OOD) is a process of invention and adaptation • Where the development team created abstractions and mechanisms necessary to meet the system’s behavioral requirements determined during analysis.

  6. OOA, OOD and OOP (cont.) • OO programming (OOP) implements an OOD in a particular programming language. • The more consistent the OOD and OOP techniques, the easier the implementation • Because of the wide use of OOD and OOP terminology, it is useful to distinguish between the two. • OOD is relatively language independent. • OOP is language dependent and primarily concerned with software implementation details of OOD concepts (like class definitions, inheritance and polymorphism.)

  7. Basic Definitions • Object-Oriented Design • A method of decomposing software architectures based on the objects that every systems or subsystem manipulates. • Rather than the functionality that is meant to be delivered. • Object-Oriented Programming • The construction of software systems as structured collections of Abstract Data Type (ADT) implementations plus inheritance and dynamic binding (polymorphism).

  8. Object-Oriented Design Topics • Object-oriented design concepts include • Decomposition/Composition • Abstraction • Modularity • Information Hiding (Encapsulation) • Virtual Machine Hierarchies • Separating Policy and Mechanism • Subset Identification and Program Families • Reusability • Main purpose of these design concepts is to manage software system complexity by improving software quality factors.

  9. Object-Oriented Programming Topics • Object-oriented programming features include • Data abstraction, Information Hiding (Encapsulation) • Active (rather than passive) types • Genericity • Inheritance and dynamic binding (Polymorphism) • Assertions and exception handling • This courses focuses on how these OOP topics improve software quality • Correctness, reusability, extensibility, reliability, etc. • Advanced courses focus on OOD topics • Factoring, Class Diagrams, Use Cases, Design Patterns, etc.

  10. Acknowledgements • http://www.cs.wustl.edu/~schmidt/PDF/ood-overview4.pdf

More Related