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

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
UML an overview.
Department of Computer Engineering Faculty of Engineering, Prince of Songkla University 1 5 – Abstract Data Types.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Object-Oriented Software Development CS 3331 Fall 2009.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Chapter 22 Object-Oriented Systems Analysis and Design and UML Systems Analysis and Design Kendall and Kendall Fifth Edition.
1 CIS601: Object-Oriented Programming in C++ Note: CIS 601 notes were originally developed by H. Zhu for NJIT DL Program. The notes were subsequently revised.
Chapter 1 Object-Oriented System Development
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Lecturer: Dr. AJ Bieszczad Chapter 66-1 Object-Oriented analysis and design Special nature of OO development Use cases Design with UML OO system design.
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
Chapter 1 Principles of Programming and Software Engineering.
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Themes and Variations abstraction -- the object metaphor modeling -- understanding.
Visual Basic Introduction IDS 306 from Shelly, Cashman & Repede Microsoft Visual Basic 5: Complete Concepts and Techniques.
Object Oriented Databases - Overview
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
System Analysis & Design
Introduction To System Analysis and design
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Introduction to Object-oriented programming and software development Lecture 1.
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Robust Design Strategies I Gruia-Catalin Roman and Christopher Gill Washington University in St. Louis.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
By: DiGitAll UML an overview. Topics covered in this Session 1. Introducing UML. 2. What constitutes the UML. 3. Concepts of UML.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
Slide 1 Systems Analysis and Design With UML 2.0 An Object-Oriented Approach, Second Edition Chapter 2: Introduction to Object-Oriented Systems Analysis.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Midterm Study Guide COP 4331 and EEL4884 OO Processes for Software Development © Dr. David A. Workman School of EE and Computer Science University of Central.
9-Dec Dec-15  INTRODUCTION.  FEATURES OF OOP.  ORGANIZATION OF DATA & FUNCTION IN OOP.  OOP’S DESIGN.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Unified Modeling Language, Version 2.0 Chapter 2.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
Chapter 2 Principles of Programming and Software Engineering.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
Basic Characteristics of Object-Oriented Systems
Chapter 12: Support for Object- Oriented Programming Lecture # 18.
Final Exam Study Guide COP 4331 and EEL4884 OO Processes for Software Development © Dr. David A. Workman School of EE and Computer Science University of.
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
Principles of Programming & Software Engineering
Object-Oriented Analysis and Design
Systems Analysis and Design With UML 2
Principles of Programming and Software Engineering
OOP What is problem? Solution? OOP
Lecture 2 of Computer Science II
Object-Orientated Programming
Object oriented analysis and design
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and Information Science, School of Science, IUPUI

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.

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.

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)

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.

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.)

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).

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.

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.

Dale Roberts Acknowledgements