© Wolfgang Pelz 2001-04Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Advertisements

1 OBJECT-ORIENTED CONCEPTS. 2 What is an object?  An object is a software entity that mirrors the real world in some way.  A software object in OOP.
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.
Unified Modeling Language
Classes & Objects Computer Science I Last updated 9/30/10.
Object-Oriented Analysis and Design
Chapter 1 Object-Oriented System Development
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
Object Oriented System Development with VB .NET
OOP in Java Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Basic OOP Concepts and Terms
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
Developed by Reneta Barneva, SUNY Fredonia Component Level Design.
OOP in Java Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra,
Object-oriented design CS 345 September 20,2002. Unavoidable Complexity Many software systems are very complex: –Many developers –Ongoing lifespan –Large.
1 Object-Oriented Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn.
Introduction To System Analysis and design
OO Analysis and Design CMPS OOA/OOD Cursory explanation of OOP emphasizes ▫ Syntax  classes, inheritance, message passing, virtual, static Most.
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 2: Modelling.
BCS 2143 Introduction to Object Oriented and Software Development.
OBJECT ORIENTED PROGRAMMING CONCEPTS ISC 560. Object-oriented Concepts  Objects – things names with nouns  Classes – classifications (groups) of similar.
The Software Development Life Cycle: An Overview Presented by Maxwell Drew and Dan Kaiser Southwest State University Computer Science Program.
CS6359 Introduction to OO An Introduction to Object-oriented Analysis and Design.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1. Information System 2.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
OOP Class Lawrence D’Antonio Lecture 3 An Overview of C++
IT 21103/41103 System Analysis & Design. Chapter 05 Object Modeling.
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Chapter 12 Support for Object oriented Programming.
1/26 On-demand Learning Series Software Engineering of Web Application - Object-Oriented Development & UML Hunan University, Software School.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
CSC 131 Fall 2006 Lecture # 6 Object-Oriented Concepts.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
ISBN Object-Oriented Programming Chapter Chapter
1 Unified Modeling Language, Version 2.0 Chapter 2.
OOP Review CS 124.
Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey A.
Inheritance and Class Hierarchies Chapter 3. Chapter 3: Inheritance and Class Hierarchies2 Chapter Objectives To understand inheritance and how it facilitates.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
04 - OOD Intro.CSC4071 Software Design ‘Requirements’ defines –The goals the system needs to satisfy. ‘Specification’ defines –The externally-observable.
PowerPoint Presentation for Dennis, Wixom, & Tegarden Systems Analysis and Design with UML, 5th Edition Copyright © 2015 John Wiley & Sons, Inc. All rights.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
COP 4331 – OOD&P Lecture 7 Object Concepts. What is an Object Programming language definition: An instance of a class Design perspective is different.
Lecture 2 Intro. To Software Engineering and Object-Oriented Programming (2/2)
Basic Characteristics of Object-Oriented Systems
1 Design Object Oriented Solutions Object Oriented Analysis & Design Lecturer: Mr. Mohammed Elhajj
Slide 1 Unified Modeling Language, Version 2.0 Object-Oriented SAD.
2-1 © Prentice Hall, 2004 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their.
The Movement To Objects
Systems Analysis and Design With UML 2
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Types of Programming Languages
SNSCT_CSE_PROGRAMMING PARADIGM_CS206
Basic OOP Concepts and Terms
Chapter 22 Object-Oriented Systems Analysis and Design and UML
Presentation transcript:

© Wolfgang Pelz Introduction Object-Oriented Methods: Analysis, Design & Programming Dr. Wolfgang Pelz Dr. Yingcai Xiao The University of Akron

© Wolfgang Pelz Introduction 2 Outline OOA OOD: UML OOP: C++

© Wolfgang Pelz Introduction 3 OOA - OOD - OOP Henderson Analysis Design Implementation Coad/Nicola “Baseball Model”

© Wolfgang Pelz Introduction 4 Outline Software Development Models Object-Oriented Concepts Introduction to C UML

© Wolfgang Pelz Introduction 5 UML Bibliography The Unified Modeling Language User Guide Booch et al, Addison-Wesley UML Toolkit Hans-Erik Eriksson et al, Wiley UML in a Nutshell Sinan Si Alhir, O’Reilly

© Wolfgang Pelz Introduction 6 General Bibliography Design Patterns Erich Gamma et al, Addison-Wesley Applying UML and Patterns Craig Larman, Prentice-Hall The Practice of Programming Brian Kernighan et al, Addison-Wesley

© Wolfgang Pelz Introduction 7 C++ References “C++ for Java Programmers” Mark Allen Weiss, Pearson / Prentice Hall “C++: How to Program", Deitel & Deitel, Prentice Hall "C++ Primer” Stanley Lippman, Addison-Wesley "The C++ Programming Language" Bjarne Stroustrup, Addison-Wesley "The Annotated C++ Reference Manual“ Bjarne Stroustrup and Margareth Ellis, Addison Wesley

© Wolfgang Pelz Introduction 8 The Spiral Software Cycle Traditional

© Wolfgang Pelz Introduction 9 The Spiral Software Cycle Object-Oriented

© Wolfgang Pelz Introduction 10 The Large Picture Hardware Engineering: automated mass production of standard components. Software Engineering: treat software development as an engineering process. CASE : Computer-Aided Software Engineering CASE Tools: Automation of Software Development The fundamental software component is an object. An important goal of OO is code reuse.

© Wolfgang Pelz Introduction 11 The Large Picture Design Reuse => Computer Science The study of the theoretical foundations of information and computation and their implementation and application in computer systems.information computation computer systems ( Computer Science =Data+ Data Manipulation Programming =Data Structures+ Algorithms Code Reuse of algorithms and data structures. Design Patterns

© Wolfgang Pelz Introduction 12 Objects concepts, concrete or abstract, with meaning derived from the problem domain “the real world” promote an understanding of the problem domain provide a basis for implementation encapsulation of state (data values) and behavior (operations)

© Wolfgang Pelz Introduction 13 Objects (cont.) Exhibit behavior by invoking a method in response to a message instances of classes an object-oriented program is a collection of autonomous interacting and collaborating objects

© Wolfgang Pelz Introduction 14 Classes objects sharing common characteristics dictate the behavior of the object contain –state: attributes, fields, variables, data member –behavior: functions, methods, function member access specifiers instantiation abstract versus concrete

© Wolfgang Pelz Introduction 15 3 Pillars of Object-Orientation encapsulation inheritance polymorphism

© Wolfgang Pelz Introduction 16 Encapsulation combination of state and behavior implementation details are hidden internally internal mechanisms can change while public interfaces remain stable state may be retrieved using public methods behavior consists of methods activated by receipt of messages

© Wolfgang Pelz Introduction 17 Inheritance organization of classes into a hierarchical inheritance tree data and behavior associated with classes higher in the tree are accessible to those classes lower in the tree terminology –ancestor/descendant –superclass/subclass –generalization/specialization

© Wolfgang Pelz Introduction 18 Single Inheritance classes/objects inherit from only one parent no ambiguity due to name clashes examples: Java, Smalltalk

© Wolfgang Pelz Introduction 19 Multiple Inheritance classes/objects may have more than one parent ambiguity (name clashes) can occur allows abstract classes to be more specific in characteristics (kitchen sink problem) examples: C++, Eiffel

© Wolfgang Pelz Introduction 20 Inheritance Diagram

© Wolfgang Pelz Introduction 21 Another Inheritance Diagram

© Wolfgang Pelz Introduction 22 Inheritance for Teaching Assistant birthday library privileges

© Wolfgang Pelz Introduction 23 Polymorphism polymorphism: many forms localizes responsibility for behavior object automatically uses correct implementation for a method many objects can respond to the same message minimizes interface parameter passing

© Wolfgang Pelz Introduction 24 Polymorphism determination of method is done at: –run-time: dynamic binding, late binding –compile-time: static binding, early binding treat many types (all derived from the same type) as if they were all one type single piece of interface works on all these types

© Wolfgang Pelz Introduction 25 Polymorphism Example

© Wolfgang Pelz Introduction 26 3 Pillars of Object-Orientation Encapsulation Combine data structures and algorithm together and insulate internal code and data from their interface. Easily to be reused. Inheritance Reuse the code of the parents as is. Polymorphism Objects of similar type have the same interface. Easily to be reused.

© Wolfgang Pelz Introduction 27 Relationships is-a: code reuse through inheritance –instances of a subclass must be more specialized forms of the superclass –instances of a subclass can be used where quantities of the superclass are expected has-a: code reuse through inclusion –component or contains –instances of a class possess fields of a given type

© Wolfgang Pelz Introduction 28 OOA: Objects & Methods write description of problem domain nouns are candidates for objects verbs are candidates for methods designs are implementation-language independent UML can be used to depict the designs