“Object-orientation” – what is it all about? Gill Harrison, Innovation North.

Slides:



Advertisements
Similar presentations
Introduction to Object Orientation System Analysis and Design
Advertisements

Lecture 6: Software Design (Part I)
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley STARTING OUT WITH Python Python First Edition by Tony Gaddis Chapter 9 Classes.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
Introduction to Object Oriented Programming Java.
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)
1 Chapter 1 Object-Oriented Programming. 2 OO programming and design Object-oriented programming and design can be contrasted with alternative programming.
Object-Oriented Databases v OO systems associated with – graphical user interface (GUI) – powerful modeling techniques – advanced data management capabilities.
Object Oriented System Development with VB .NET
Lecture 11: Chapter 22 Topics –Object Oriented Modeling –UML –Use case.
Basic OOP Concepts and Terms
Introduction to Java, OO and IDEs ICW Lecture 2 Errol Thompson Room 134.
IMS5024 Week 3 Semester 2, IMS 5024 Object orientation (1)
IMS5024 Week 61 IMS 5024 Object orientation (1). IMS5024 Week 62 Content Individual assignment date Group assignment What is object orientation? n Place.
Itntroduction to UML, page 1 Introduction to UML.
C++ fundamentals.
Object-Oriented Development By Linda M. Northrop vol. 1, chapter 5, pp Presented by: Gleyner Garden EEL6883 Software Engineering II.
1 INTRODUCTION TO OOP Objective: Know the difference between functional programming and OOP Know basic terminology in OOP Know the importance of OOP Know.
BACS 287 Basics of Object-Oriented Programming 1.
Object Oriented Software Development
Copyright © 2002, Systems and Computer Engineering, Carleton University Intro.ppt * Object-Oriented Software Development Unit 1 Course.
Lecture Outline 11 The Development of Information Systems Chapter 8 page 390+
CMIS 470 Structured Systems Design
Slide 12.1 © The McGraw-Hill Companies, CS 4310: Software Engineering Lecture 7 Systems Analysis Object-Oriented Design.
Introduction to Object-oriented programming and software development Lecture 1.
© 2008 Dr. Paul Walcott – The University of the West Indies: Cave Hill CampusDr. Paul Walcott COMP6325 Advanced Web Technologies Dr. Paul Walcott The University.
BCS 2143 Introduction to Object Oriented and Software Development.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
CSCI-383 Object-Oriented Programming & Design Lecture 9.
Starting Out With Java 5 (Control Structures to Objects) Chapter 6 By Tony Gaddis Copyright © 2005 Pearson Addison-Wesley. All rights reserved.
© 2005 course technology1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard Podeswa.
Java Classes Using Java Classes Introduction to UML.
Unified Modeling Language, Version 2.0
What Is Object-Orientation?
Chapter 6: Structured Vs. Object Oriented Analysis and Design.
Introduction To System Analysis and Design
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
Object-Oriented Analysis and Design NGSSC Object-Oriented Scientific Programming, June 2012.
1 Object-Oriented Systems Development Bahrami © Irwin/ McGraw-Hill Chapter 2: Object Basics Object-Oriented Systems Development Using the Unified Modeling.
Systems Analysis and Design in a Changing World, 3rd Edition
IT 21103/41103 System Analysis & Design. Chapter 05 Object Modeling.
SNPL1 Woochang Lim What (Variable) + How (Function) = Object Objects are the physical and conceptual things we find in the universe around us. Object-Oriented.
Object-Oriented Design Simple Program Design Third Edition A Step-by-Step Approach 11.
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.
Object-Oriented Paradigm and UML1 Introduction to the Object- Oriented Paradigm.
Unified Modeling Language. Object Oriented Methods ► What are object-oriented (OO) methods?  OO methods provide a set of techniques for analyzing, decomposing,
Dale Roberts Object Oriented Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department.
CS 3050 Object-Oriented Analysis and Design. Objectives What is “Object-Oriented?” Object-Oriented Approach Vs. Structured Approach How Has the Object-Oriented.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
Week 04 Object Oriented Analysis and Designing. What is a model? A model is quicker and easier to build A model can be used in simulations, to learn more.
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.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
Programming Paradigms Different paradigms Procedural paradigm, e.g. Pascal Basic Functional paradigm, e.g. Lisp Declarative paradigm, e.g. Prolog Object-Oriented.
Object-Oriented Systems. Goals Object-Oriented Methodologies – The Rumbaugh et al. OMT – The Booch methodology – Jacobson's methodologies.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
OOPS CONCEPT.  OOPS  Benefits of OOPs  OOPs Principles  Class  Object Objectives.
Copyright © 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design Second Edition by Tony Gaddis.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Basic Characteristics of Object-Oriented Systems
UML. Model An abstract representation of a system. Types of model 1.Use case model 2.Domain model 3.Analysis object model 4.Implementation model 5.Test.
Sadegh Aliakbary Sharif University of Technology Fall 2010.
SWE 214 (071) Introduction to UML Slide 1 Introduction to UML.
The Development of Information Systems Chapter 8 page 348+
Basic OOP Concepts and Terms
Software Design Methodologies and Testing
Presentation transcript:

“Object-orientation” – what is it all about? Gill Harrison, Innovation North

Aims and Objectives this week To appreciate what is meant by “object-orientation’ how it arose why it is a useful approach

What is Object-Orientation? A method of writing programs and developing software that is “oriented” (or orientated or directed) towards the use of objects

What are objects? A software object is

What are objects? A software object is something which holds both

What are objects? A software object is something which holds both data

What are objects? A software object is something which holds both data

What are objects? A software object is something which holds both data Stock Code Description Number in Stock Unit cost Stock object

What are objects? A software object is something which holds both data and the program instructions (organised into “methods”) for processing that data Stock Code Description Number in Stock Unit cost Stock object

What are objects? A software object is something which holds both data and the program instructions (organised into “methods”) for processing that data Stock Code Description Number in Stock Unit cost Stock object

What are objects? A software object is something which holds both data and the program instructions (organised into “methods”) for processing that data Stock object Stock Code Description Number in Stock Unit cost Method to change the Number in Stock Method to calculate value

How is a system built? One object can send a “message” to another asking it to perform one of its methods on its data

How is a system built? Stock Code Description Number in Stock Unit cost Method to change the Number in Stock Method to calculate value One object can send a “message” to another asking it to perform one of its methods on its data Stock object

How is a system built? Stock Code Description Number in Stock Unit cost Method to change the Number in Stock Method to calculate value One object can send a “message” to another asking it to perform one of its methods on its data an object dealing with goods received Stock object

How is a system built? Stock Code Description Number in Stock Unit cost Method to change the Number in Stock Method to calculate value One object can send a “message” to another asking it to perform one of its methods on its data increase your number in stock by 1000 an object dealing with goods received Stock object

If you’re interested (this is Java)... public class Stock { private String stockCode, description; private int numberInStock, unitCost; public void changeNumberInStock( ) { some lines of program code here } public float calculateValue() { lines of code } methods data

If you have met programs before.. You will realise that programs generally have variables to hold data procedures and functions, which seem to be like methods calls to these procedures and functions, which seem like messages So what’s new about objects?

Encapsulation Stock Code Description Number in Stock Unit cost Method to change the Number in Stock Method to calculate value The details of data and methods are shielded from outside view or interference. This is called “encapsulation”.

Encapsulation Stock Code Description Number in Stock Unit cost Method to change the Number in Stock Method to calculate value The details of data and methods are shielded from outside view or interference. This is called “encapsulation”.

Encapsulation Just send me messages and I’ll send replies The details of data and methods are shielded from outside view or interference. This is called “encapsulation”.

A bit of history Objects arose via programming languages rather than via Analysis and Design In the 1960s, the first language to use objects was Simula, a simulation language. A vehicle or a lift could be modelled more easily this way

A bit of history in the 1970s, an important research team at Xerox Palo Alto Research Centre (Xerox PARC) produced –ideas about Graphical User Interfaces (GUIs) and –Smalltalk - the first pure O-O language Programs with GUIs are “event-driven” - these are much easier to write if you use software objects

Object-oriented Programming languages Simula - a simulation language Smalltalk - the first pure O-O language Eiffel C++ (C with objects) Java

Features of object-orientation We define a general class of objects we are interested in, e.g. students, customers, orders A specific individual of the class is called an object, or an instance We define attributes of the class, which will have particular values for each instance We define methods for the class, which any instance will be able to carry out in response to a message

Objects and Entities OBJECTSENTITIES classis likeentity type instanceis like occurrence attribute is like attribute? methodhas no equivalent -

Objects and Entities Objects seem like entities, with processing added in. But ERDs show entities and DFDs show processing.

Looking at DFDs and ERDs

It is almost as though an entity...

absorbs bits of processing

Hey, I’m an object!

Evolution of Systems Analysis and Design methods Methods using Structure Charts and Data Flow Diagrams..... plus Entity Relationship Diagrams Object-Oriented Analysis and Design Methods

Relative maturity Mature Immature O-O Programming Languages O-O Databases O-O Analysis and Design

Object-Oriented Analysis and Design Methods Lots, often associated with the name of a person: Rumbaugh - Object Modeling Technique (OMT) Jacobsen - Object Oriented Software Engineering (OOSE) Booch Coad and Yourdon Wirfs-Brock Schlaer and Mellor

Object-Oriented Analysis and Design Methods Lots, often associated with the name of a person: Rumbaugh - Object Modeling Technique (OMT) Jacobsen - Object Oriented Software Engineering (OOSE) Booch Coad and Yourdon Wirfs-Brock Schlaer and Mellor have combined to create Unified Modeling Language (UML)

What use is it? Stock balance now held as –balance at stock-taking –total number received since then –total number issued since then Without objects - detailed changes to every program that deals with stock With objects - just change stock methods: other objects send the same messages as before

What use is it? Resilience to change - data is stable, processing is not Small changes are localised Far better chance of reusing objects than of reusing separate data and processes Standard classes (e.g. for GUI features like buttons, list boxes) make software development faster and easier

What use is it? These factors should give rise to faster development of software software than is more reliable and error-free software that is easier to change to meet new requirements

Achieved objectives? A software object holds: data (like an entity in an ERD) / processing (like a process in a DFD) / both? The hiding of the internal workings of an object is called Objects communicate by passing Why has Object-Orientation arisen?