Object Orientation Concepts, Terminology and a Story. © Allan C. Milne School of Engineering, Computing & Applied Mathematics University of Abertay v12.7.17.

Slides:



Advertisements
Similar presentations
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.
Advertisements

Computer Science Dept. Fall 2003 Object models Object models describe the system in terms of object classes An object class is an abstraction over a set.
OOP - Object Oriented Programming Object Oriented Programming is an approach to programming that was developed to make large programs easier to manage.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Introduction To System Analysis and Design
1 SWE Introduction to Software Engineering Lecture 13 – System Modeling.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
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)
Fall 2007ACS-1805 Ron McFadyen1 Programming Concepts Chapter 4 introduces more advanced OO programming techniques. Construction of a programs usually requires:
7M701 1 Software Engineering Systems Models Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 7 (some items)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
OBJECT ORIENTED ANALYSIS & DESIGN Vassilka Kirova Department of Computer & Information Science NJIT.
7M701 1 Class Diagram advanced concepts. 7M701 2 Characteristics of Object Oriented Design (OOD) objectData and operations (functions) are combined 
Object-Oriented Databases
©Ian Sommerville 2006Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
7M822 Software Engineering: System Models 14 September 2009.
Sharif University of Technology Session # 7.  Contents  Systems Analysis and Design  Planning the approach  Asking questions and collecting data 
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
Approaches to System Development Chapter 3. Methodologies, Models, Tools and Techniques A system development methodology –provides guidelines to follow.
CPT 140 Programming Constructs1 OBJECT ORIENTED TECHNOLOGY Terminology and Basic Concepts.
Introduction To System Analysis and design
Object Oriented Software Development
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.
11 1 Object oriented DB (not in book) Database Systems: Design, Implementation, & Management, 6 th Edition, Rob & Coronel Learning objectives: What.
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.
1 A Student Guide to Object- Orientated Systems Chapter 4 Objects and Classes: the basic concepts.
OBJECT AND CLASES: THE BASIC CONCEPTS Pertemuan 8 Matakuliah: Konsep object-oriented Tahun: 2009.
Sadegh Aliakbary Sharif University of Technology Fall 2011.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Introduction to Objects Adapted from “TEN STEPS TO OBJECT-SPEAK” a CPT Tech Talk by Joy Starks September 17, 1999.
Object Oriented Programming with JAVA Arash N. Kia AlZahra University Definitions – Part 1.
Introduction To System Analysis and Design
Charles Babbage Invented the first computer (depending on what you consider a computer to be). On two occasions I have been asked by members.
11 Chapter 11 Object-Oriented Databases Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 Object-oriented and Structured System Models.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
ITEC 3220A Using and Designing Database Systems Instructor: Gordon Turpin Course Website: Office: CSEB3020.
Learners Support Publications Object Oriented Programming.
OBJECT ORIENTED AND FUNCTION ORIENTED DESIGN 1 Chapter 6.
1 CMIS301 O-O Thinking Understanding O-O Programming by T Budd.
Basic Concepts of Object Orientation Object-Oriented Analysis CIM2566 Bavy LI.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Salman Marvasti Sharif University of Technology Winter 2015.
OOP (Object Oriented Programming) Lecture 1. Why a new paradigm is needed? Complexity Five attributes of complex systems –Frequently, complexity takes.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Basic Characteristics of Object-Oriented Systems
Sadegh Aliakbary Sharif University of Technology Fall 2010.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Object-oriented and Structured System Models
Object-Oriented Analysis and Design
Object Oriented Concepts -I
Lecture 2 of Computer Science II
INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING (OOP) & CONCEPTS
Abstract descriptions of systems whose requirements are being analysed
System models October 5, 2005.
ITEC 3220A Using and Designing Database Systems
Presentation transcript:

Object Orientation Concepts, Terminology and a Story. © Allan C. Milne School of Engineering, Computing & Applied Mathematics University of Abertay v

Why Object-Orientation ? ► It is, in some sense, a natural way of talking about systems. ► The concepts can be applied both  to describe the “real world”, and  to implement computer software representations of that world. ► Do not confuse these two uses of OO; they can be applied independently.

Some Technical Advantages. ► OO encapsulates both data and functionality. ► OO distinguishes between internal operation and external application. ► OO forms a base technology for reusable components.

An Object Has … … a unique identity. … an existence that can be described in terms of … … what it is (state) … what it does(behaviour)

Some Observations. ► Individual objects may have many features in common with other objects. ► Objects must normally interact in order to be useful. ► Objects appear both in the “real world” and in our programming space.

Classification. ► Objects that exhibit similar characteristics (i.e. the same kinds of state & behaviour) can be considered to all belong to the same class. ► This classification is arbitrary and depends on the system requirements and the experiences of the observer. ► The unique identity of an object is defined by its individual existence.

Classes & Objects. ► A class describes the kind of state and behaviour an object of that class will exhibit. ► A class defines the type of objects. ► Objects exist as individual entities. ► An object is considered to be an instance of a particular class.

A Clock Class. My alarm clock Big Ben The office clock Class Clock ObjectsObjects

Abstraction. ► Identifying objects as belonging to the same class reflects the level of abstraction (generality) within the system. ► The level of abstraction is determined by the level of detail in the criteria used for identifying objects as belonging to a class. ► Thus objects may be classified at different levels of detail.

Inheritance. ► If objects are classified at different levels of detail we can put their classes into a classification hierarchy. ► The most abstract class is at the top and the most detailed class at the bottom. ► Inheritance means that a class contains all the characteristics of the class above it in the hierarchy.

A Class Hierarchy.

Message Passing. ► Interaction between objects is accomplished through message passing. ► Passing a message to an object is a request for it to exhibit some part of its behaviour. ► There are 2 general types of messages  command messages(do this...)  query messages(what is...)

Methods & Message Passing. ► Methods define the type of behaviour that an object can exhibit. ► A message can thus be defined in terms of  the identity of the target object for the message,  the method which exhibits the desired message processing behaviour, and  any additional information (parameters) required by the method. ► The methods of an object define the set of messages that can be sent to the object.

So What Is Object Orientation? ► It is a technique for “thinking about” the architecture and operation of systems. ► It is a way of modeling a system in terms of the objects which make it up. ► It allows us to classify together objects with similar characteristics.

Object Orientation … … allows us to abstract the model using classes & class hierarchies. … identifies the relationships & interactions between objects. … provides a model that can be used directly in a software implementation.

A Story Through Quotes. Following are some quotes that tell a story … think about what the quotes mean; how they are linked together; and what the story they are telling is.

"A C program is like a fast dance on a newly waxed dance floor by people carrying razors." Waldi Ravens

"I invented the term 'Object-Oriented', and I can tell you I did not have C++ in mind.“ Alan Kay (inventor of SmallTalk)

"The great thing about Object Oriented code is that it can make small, simple problems look like large, complex ones." Anon

“Assumption is the mother of all screw- ups." Anon

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." Brian W. Kernighan

“Never increase, beyond what is necessary, the number of entities required to explain anything" William of Ockham ( )

"the more dogmatic you are about applying a design method, the fewer real-life world problems you will solve" P.J. Plauger (1993)

"Beware of bugs in the above code; I have only proved it correct, not tried it." Donald E. Knuth

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question." Charles Babbage