Presentation is loading. Please wait.

Presentation is loading. Please wait.

Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.

Similar presentations


Presentation on theme: "Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department."— Presentation transcript:

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

2 Dale Roberts 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 Dale Roberts 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 Dale Roberts Software Quality Factors Object-oriented techniques enhance key external and internal software quality factors 1. External (visible to end-users) a) Correctness b) Robustness and reliability c) Performance 2. Internal (visible to developers) Modularity a) Flexibility/Extensibility b) Reusability c) Compatibility (via standard/uniform interfaces)

5 Dale Roberts 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 Dale Roberts 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 Dale Roberts 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 Dale Roberts Object-Oriented Design Topics Object-oriented design concepts include Decomposition/CompositionAbstractionModularity 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 Dale Roberts 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 Dale Roberts Acknowledgements http://www.cs.wustl.edu/~schmidt/PDF/ood-overview4.pdf


Download ppt "Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department."

Similar presentations


Ads by Google