1 CMIS301 O-O Thinking Understanding O-O Programming by T Budd.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Systems Analysis and Design 8th Edition
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Classes & Objects Computer Science I Last updated 9/30/10.
Object-Oriented Analysis and Design
2-1 © Prentice Hall, 2007 Chapter 2: Introduction to Object Orientation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
CS-2135 Object Oriented Programming
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Object Oriented System Development with VB .NET
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
Object-Oriented Thinking Chapter 1, Object-Oriented Programming in Java, Timothy Budd, 1998 ICS102 Semester
Systems Analysis & Design Sixth Edition Systems Analysis & Design Sixth Edition Toolkit Part 5.
Object-oriented Programming Concepts
Vrije Universiteit amsterdamPostacademische Cursus Informatie Technologie Themes and Variations abstraction -- the object metaphor modeling -- understanding.
WEL COME PRAVEEN M JIGAJINNI PGT (Computer Science) MCA, MSc[IT], MTech[IT],MPhil (Comp.Sci), PGDCA, ADCA, Dc. Sc. & Engg.
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 Concepts. Movement toward Objects Instead of data-oriented or process-oriented Analysis, many firms are now moving to object-oriented.
Introduction to Object-oriented Programming Introduction to Object-oriented Programming CMPS 2143.
CSCI-383 Object-Oriented Programming & Design Lecture 15.
BACS 287 Basics of Object-Oriented Programming 1.
 Computer Science 1MD3 Introduction to Programming Michael Liut Ming Quan Fu Brandon.
Object Oriented Programming
CPT 140 Programming Constructs1 OBJECT ORIENTED TECHNOLOGY Terminology and Basic Concepts.
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.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
BCS 2143 Introduction to Object Oriented and Software Development.
Object Oriented Concepts & Principles Ingrid Kirschning & Gerardo Ayala.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Chapter 1: Introduction to Systems Analysis and Design
CHAPTER ONE Problem Solving and the Object- Oriented Paradigm.
Object Oriented Programming with JAVA Arash N. Kia AlZahra University Definitions – Part 1.
Unified Modeling Language, Version 2.0
Introduction To System Analysis and Design
Programming in Java Unit 3. Learning outcome:  LO2:Be able to design Java solutions  LO3:Be able to implement Java solutions Assessment criteria: 
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Object-Oriented (Real World Case) Object-Oriented Analysis CIM2566 Bavy LI.
Object Oriented Programming Principles Lecturer: Kalamullah Ramli Electrical Engineering Dept. University of Indonesia Session-3.
CSCI-383 Object-Oriented Programming & Design Lecture 3.
1 OBJECT-ORIENTED THINKING Ziya Karakaya Atılım University Tel: (312) / 5345 Faks: (312) E-posta:
Systems Analysis & Design 7 th Edition Chapter 5.
Systems Analysis and Design 8 th Edition Chapter 6 Object Modeling.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Design Model Lecture p6 T120B pavasario sem.
Object-Oriented Programming with Java Lecture 1: Introduction Autumn, 2007.
ITEC 3220A Using and Designing Database Systems Instructor: Gordon Turpin Course Website: Office: CSEB3020.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
Chapter 1: OO Thinking Not just learn Java, but also understand why it is the way it is Learn the OO worldview.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Chapter 5:Design Patterns. 2 What are design pattern?  Schematic description of design solution to recurring problems in software design and,  Reusable.
CSCI 383 Object-Oriented Programming & Design Lecture 3 Martin van Bommel.
CMSC 345 Fall 2000 OO Design. Characteristics of OOD Objects are abstractions of real-world or system entities and manage themselves Objects are independent.
Object- oriented Design Principles
Basic Characteristics of Object-Oriented Systems
Sadegh Aliakbary Sharif University of Technology Fall 2010.
CHAPTER 6 OBJECT ANALYSIS.
CSCI 383 Object-Oriented Programming & Design Lecture 15 Martin van Bommel.
Object Oriented Systems Design
The Movement To Objects
CMPE 135: Object-Oriented Analysis and Design October 24 Class Meeting
Object-Oriented Metrics
Chapter 1: Object-Oriented Thinking
Object oriented analysis and design
CMPE 135 Object-Oriented Analysis and Design March 21 Class Meeting
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

1 CMIS301 O-O Thinking Understanding O-O Programming by T Budd

Introduction: “Programing is fun, but developing quality software is HARD” In between the ‘nice’ ideas, the requirements or VISION, and a working software product, there is much more than programming. 2

This Course: Analysis and design, defining HOW to solve the problem, WHAT to program, CAPTURING the design (UML) in ways that are easy to COMMUNICATE, to review, to implement, and to evolve is what lies at the core of this course. 3

4 Questions: Why O-O Approach? What are the best practices in System Development Methodologies?

5 Objectives: Paradigm Agents and Communities Messages and Methods Responsibilities Classes and Instances Class hierarchy and Inheritance

6 Paradigm: “Paradigm” means example or model A paradigm sentence will help you remember how to conjugate a verb in a foreign language. Model helps one to understand how the world operates – Newtonian model of physics explains why apples fall to the ground

7 Applied to MIS/CS: A paradigm explains how the elements that go into making a computer program are organized and how they interact with one another: – We focus on the object-oriented worldview Let’s consider the following real-world situation and then see if we can model it with computer techniques, especially object oriented techniques:

8 Sending flowers: I wish to send flowers to a friend, Sally, living in a faraway city: – Because of the distance, I cannot carry them to Sally myself! – I go to Flora, the local florist, tell her the variety and quantity I wish to send, as well as Sally’s address – I know the flowers will be delivered!!

9 Agents and Communities: How did I solve my problem? – I found an appropriate agent (Flora) and pass a message with my request – Its Flora’s responsibility to satisfy my request – Flora, apply some method – algorithms or set of operations- to execute the request – I don’t know the particulars of this method, and is hidden from me

10 Flora’s Method/Messages: Flora send a message (slightly different than mine): – To another florist in my friend’s city – This florist send messages to: Flower wholesaler to obtain the flowers – Send a message to flower growers – Who has teams of gardeners Subordinate to make the floral arrangement To a delivery person to deliver the flowers

11 Summary: An object oriented program is structured as a community of interacting agents, called objects Each object has a role to play: they provide a service, or perform an action, that is used by the members of the community The action is activated by the transmission of a message to an agent or object responsible for the action.

12 Information hiding: This has to do with message passing: – The client sending the request need not know the actual means by which the request will be honored – This leads to encapsulation and objects become autonomous units: high level of cohesion. – This principle support the development of reusable components

13 Responsibilities: The behavior of the object is described in terms of responsibilities or protocol My request for action indicates only the desired outcome: flowers to my friend Flora is free to pursue any technique that will achieve the desired result: I cannot interfere! Independence between objects. A critical factor in solving complex problems: Low coupling

14 Classes and Instances: If I go to another flower shop, and meet the florist, say Rihanna, I have a good idea how she will respond to my request. After all, she is also a florist! It fits my assumptions in general about florists. This category (or type) of florists will follow a general pattern, of which Flora and Rihanna are instances: Flora and Rihanna represent the category or class of florist

15 Summary: All objects are instances of a class. The method invoked by an object in response to a message is determined by the class of the receiver. All objects of a given class use the same method in response to similar messages.

18 Class Hierarchies - Inheritance: Flora is a Florist As a florist, she will like any other shop, asked for money for the transaction, like grocers, stationers and other shopkeepers: a florist “is a” shopkeeper. One way to think about how I organized my knowledge of Flora is in terms of a hierarchy of categories.

19 Inheritance: Flora is a florist, and a florist is a specialized Shopkeeper. Shopkeeper “is again a” Human!! The principle that knowledge of a more GENERAL category is also applicable to a more SPECIFIC category is called inheritance Florist will inherit attributes of the class shopkeeper

20 Summary: Classes can be organized into a hierarchical inheritance structure, much like a tree. A child class or subclass will inherit attributes from a parent class higher in the tree. An abstract class is a class (such as Human) for which there are no direct instances; it is used to create subclasses. See next slide

21 Class Hierarchy: Human Shopkeeper Artist Dentist Florist Potter Flora Ntombi Kenneth

Course Goals and Outlines: Provide an Introduction to Object-Oriented Analysis and Design – Concepts – Terminology – Techniques Expose you to the UML Language Show how to apply basic OOAD techniques to a software engineering process. 22

This course will NOT: Make you an expert in OOAD Provide instruction on all aspects of UML Provide a software engineering process Turn you into a system architect Address O-O programming 23

Vision… Ours is a world where people don’t know what they want and are willing to go through hell to get it…. Don Marquis 24

Prescribed book: Introduction to Systems Analysis and Design – An Agile, Iterative Approach – 6 th Edition Satzinger, Jackson, Burd 25