Presentation is loading. Please wait.

Presentation is loading. Please wait.

OBJECT BASICS (CH-2) SCE, KIIT University KIIT CSE/IT (OOSD)

Similar presentations


Presentation on theme: "OBJECT BASICS (CH-2) SCE, KIIT University KIIT CSE/IT (OOSD)"— Presentation transcript:

1 OBJECT BASICS (CH-2) SCE, KIIT University KIIT CSE/IT (OOSD)

2 Topics to be Discussed INTRODUCTION AN OBJECT ORIENTED PHILOSOPHY
OBJECTS CLASSES OBJECT RESPONDS TO MESSAGES OBJECT RELATIONSHIP AND ASSOCIATIONS CONSUMER-PRODUCER ASSOCIATION AGGREGATION AND OBJECT CONTAINMENT KIIT CSE/IT (OOSD)

3 INTRODUCTION What is an object ?
Ans: A car is an object; a real world entity , identifiably separate from its surroundings. Car has well defined attributes: Color Manufacturer Cost Owner KIIT CSE/IT (OOSD)

4 1. INTRODUCTION contd…. Car has well defined set of things we do with it(i.e methods) : Drive it Lock it Tow it Carry passenger What do object have to do with system development ? KIIT CSE/IT (OOSD)

5 1. INTRODUCTION contd…. Properties or attributes describe the state (data) of an object. Methods (procedures) defines its behavior. KIIT CSE/IT (OOSD)

6 2. AN OBJECT ORIENTED PHILOSOPHY
The difference comes among them are : The ease of description Reusability Extensibility Readability Computational efficiency Ability to maintain the description KIIT CSE/IT (OOSD)

7 2. AN OBJECT ORIENTED PHILOSOPHY contd….
It has been said that one should speak: English for business German for engineering Persian for poetry A similar quip can be made for programming languages. Traditional languages were more machine dependant KIIT CSE/IT (OOSD)

8 2. AN OBJECT ORIENTED PHILOSOPHY contd….
Fundamental characteristic of OOP is that it allows the base concepts of the language to be extended to include ideas and terms closer to those of its application. New data types can be defined in terms of existing data types. FUNDAMENTAL DIFFERENCE BETWEEN THE OBJECT ORIENTED SYSTEMS AND TRADITIONAL SYSTEMS ARE: KIIT CSE/IT (OOSD)

9 2. AN OBJECT ORIENTED PHILOSOPHY contd….
Traditional Systems: Most traditional development methodologies are either algorithm centric or data centric. In an algorithm centric methodology you can think of an algorithm that can accomplish the task, then build data structures for that algorithm to use. In a data centric methodology, you think how to structure the data, then build the algorithm around that structure. KIIT CSE/IT (OOSD)

10 2. AN OBJECT ORIENTED PHILOSOPHY contd….
In traditional approach a lot of code was written to do all the things that have to be done. The code is the plan, brick, and mortar for building a structure(Code Centric). Code is the active entity here. KIIT CSE/IT (OOSD)

11 2. AN OBJECT ORIENTED PHILOSOPHY contd….
Object-Oriented Systems: Here the algorithm and the data structures are packaged together as an object, which has a set of attributes or properties. The state of these attributes is reflected in the values stored in its data structures. Objects has a collection of methods or procedures Attributes and methods are equal and inseparable parts of the object KIIT CSE/IT (OOSD)

12 2. AN OBJECT ORIENTED PHILOSOPHY contd….
OOP languages bridge the semantic gap between the ideas of the application and those of the underlying machine & Objects represent the application data in a way that is not forced by hardware architecture. KIIT CSE/IT (OOSD)

13 3. OBJECTS The term object was first utilized in the Simula language.
The term object means a combination of data and logic that represent some real world entity. KIIT CSE/IT (OOSD)

14 3. OBJECTS contd…. The “data” part of this object would be:
Car’s name , color, number of doors, price etc The “logic” part of the object could be collection of program: Show mileage, change mileage, stop, go KIIT CSE/IT (OOSD)

15 What is an Object? Informally, an object represents an entity, either physical, conceptual, or software A more formal definition: An object is a concept, abstraction, or thing with sharp boundaries and meaning for an application An object is something that has: State Behavior Identity KIIT CSE/IT (OOSD)

16 3. OBJECTS contd…. When developing an object-oriented application, two basic questions always arise: What objects does the application need ? What functionality should those object have ? Programming in an object-oriented system consists of adding new kinds of objects to the system an defining how they behave. Eg: of objects: Windows, Spreadsheet, etc. KIIT CSE/IT (OOSD)

17 4. CLASSES Classes are used to distinguish one type of object from another. Eg: class eagle or class airplane, class car. As per O-O systems, a class is a set of objects that share a common structure and a common behavior; a single object is simply an instance of a class. A class is a specification of - structure (instance variables), - behavior (methods), - inheritance for objects. KIIT CSE/IT (OOSD)

18 What is a class? A class represents a template for several objects and describes how these objects are structured internally Objects of the same class have the same Objects of the same Class have the same definition both for their operations and their information structure Class is an Class is an implementation of objects An object is an instance of a class A class is an abstraction in that it: Emphasizes relevant characteristics Suppresses other characteristics KIIT CSE/IT (OOSD)

19 Class A class is comprised of three sections
The first section contains the class name The second section shows the structure (attributes) The third section shows the behavior (operations) A class is an abstract definition of an object It defines the structure and behavior of each object in the class It serves as a template for creating objects Objects are grouped into classes KIIT CSE/IT (OOSD)

20 5. OBJECT RESPONDS TO MESSAGES
Object capabilities are determined by the methods defined for it. Methods are conceptually equal to the function definitions used in procedural language. Objects perform operations in response to messages. Eg: When you press on the break pedal of a car, you send a stop message to the car object. KIIT CSE/IT (OOSD)

21 5. OBJECT RESPONDS TO MESSAGES contd….
Messages essentially are nonspecific function calls. A message is different from a subroutine call; how ? Since different objects can respond to the same message in different way. KIIT CSE/IT (OOSD)

22 Eg: Cars, motorcycles & bicycles will all respond to a stop message but differently.
KIIT CSE/IT (OOSD)

23 5. OBJECT RESPONDS TO MESSAGES contd….
NOTE: Messages makes no assumptions about the class of the receiver or the arguments; they are simply objects. It is the receiver’s responsibilities to respond to the message appropriately. This gives flexibility, as different objects can respond to the same message in different ways. This is known as polymorphism. It is the main difference between a message and a subroutine call. KIIT CSE/IT (OOSD)

24 Difference Between Message & Method
Vegetable Biriyani Instruction Way it is Prepared 1.Cook Rice 2.Wash All the vegetables. 3. Marinate the same with Yogurt & ginger-garlic paste for about an hour. 4Heat a fry-pan with Oil , add Onions etc 5.Cover & let it sit for a few minutes before serving. MESSAGE METHOD OBJECT KIIT CSE/IT (OOSD)

25 5. OBJECT RESPONDS TO MESSAGES contd….
In other words, message is the instruction and the method is the implementation. Objects respond to messages according to methods in its class. Brake Car Object ………………………………….…… * 7 ………………………………….…… 5 Object KIIT CSE/IT (OOSD)

26 5. OBJECT RESPONDS TO MESSAGES contd….
A message has a name, just like a method, such as cost, set cost, cooking time. An object understands a message when it can match the message to a method that has a same name as the message. A message differs from a function in that a function says “how to do something” and a message says “what to do”. KIIT CSE/IT (OOSD)

27 Encapsulation and Information Hiding
A concept of ‘Self-containing’ Information hiding – is the principle of concealing the data and procedures of an object ‘internal ’ structure is hidden from their surroundings Functionality and behaviour characterised by ‘interfacing’ operations Data Abstraction is a benefit of OO concept that incorporates encapsulation and polymorphism. KIIT CSE/IT (OOSD)

28 Some more O-O Concepts Class Hierarchy Single Inheritance
Multiple Inheritance Multilevel Inheritance Dynamic Inheritance: Allows objects to change and evolve over time. It refers to the ability to add, delete, or change parents from objects(or Classes) at run time. Eg: Window object changing to an icon and a Vice versa. Polymorphism KIIT CSE/IT (OOSD)

29 Polymorphism A concept in type theory
A common name may denote instances of different classes One type of operation can be implemented in different ways by different classes Overloading in modern OO language KIIT CSE/IT (OOSD)

30 Why Polymorphism? A very strong tool for allowing system designers to develop flexible systems Designer only need to specify what shall occur and not occur and not how it shall occur To add an object, the modification will only affect the new object, not those using it KIIT CSE/IT (OOSD)

31 Inheritance “If class B inherits class A, then both operations and the information structure described in class A will become part of class B” KIIT CSE/IT (OOSD)

32 Inheritance KIIT CSE/IT (OOSD)

33 Why Inheritance? Show similarities Reuse common descriptions
Software Reuse Easy modification of model by performing modification in one place Avoid redundancy , leading to smaller and more efficient model, easier to understand KIIT CSE/IT (OOSD)

34 6. OBJECT RELATIONSHIP AND ASSOCIATIONS
ASSOCIATIONS represents the relationships between objects and classes. Cardinality specifies how many instances may relate to a single instance of an associated class. Eg: one or many, one to many etc Multiplicity value (i.e the number of objects that participate in the association) Can fly Flown by PILOT AIRPLANES KIIT CSE/IT (OOSD)

35 What is Cardinality? Definition: Number of instances of each class involved in the dialogue is specified by cardinality. Common multiplicity values: Symbol Meaning 1 One and only one Zero or one M…N From M to N (natural integer) 0..* From zero to any positive integer 1..* From one to any positive integer Also thought can be given about navigability to every applicable relationship. KIIT CSE/IT (OOSD)

36 6. OBJECT RELATIONSHIP AND ASSOCIATIONS contd….
Notations associated in an association: Eg: KIIT CSE/IT (OOSD)

37 7. CONSUMER-PRODUCER ASSOCIATION
It is a special form of association also known as client-server association or use relationship. It is viewed as one-way interaction. Request for printing PrintServer Item PRODUCER provides service CONSUMER object requests service KIIT CSE/IT (OOSD)

38 Association and Link A link: For example:
An instance of an association Exists between two or more objects Dynamically created and destroyed as the run of a system proceeds For example: An employee joins an organization. Leaves that organization and joins a new organization etc.

39 Relationships Association Dependency Generalization Realization
Aggregation Composition Dependency Generalization Realization KIIT CSE/IT (OOSD)

40 ASSOCIATION These are the most general type of relationship:
It denotes a semantic connection between two classes It shows BI directional connection between two classes It is a weak coupling as associated classes remain somewhat independent of each other Example: KIIT CSE/IT (OOSD)

41 Association Relationship
Library Member Book 1 * borrowed by

42 3-ary Association Skill Person Competency level *

43 Aggregation Relationship
Represents whole-part relationship Represented by a diamond symbol at the composite end. Cannot be reflexive(i.e. recursive)‏ Not symmetric It can be transitive

44 Aggregation Relationship
Document Line 1 * Paragraph

45 Composition Relationship
Life of item is same as the order Order 1 * Item

46 Relationships: Composition
A form of aggregation with strong ownership and coincident lifetimes The parts cannot survive the whole/aggregate This is a strong form of aggregation It expresses the stronger coupling between the classes KIIT CSE/IT (OOSD)

47 Aggregation cont… An aggregate object contains other objects.
Aggregation limited to tree hierarchy: No circular inclusion relation.

48 Aggregation vs. Composition
Composite and components have the same life. Aggregation: Lifelines are different. Consider an order object: Aggregation: If order items can be changed or deleted after placing the order. Composition: Otherwise.

49 Composition versus Aggregation
Order Item 1 * Composition Aggregation

50 8. AGGREGATION AND OBJECT CONTAINMENT
Some objects may be composed of and may contain other objects. Since each object has an identity, one object can refer to other objects. This is known as AGGREGATION, where an attribute can be an object itself. Eg: A car object is an aggregation of engine, seat, wheels, and other objects. KIIT CSE/IT (OOSD)

51 8. AGGREGATION AND OBJECT CONTAINMENT contd….
Fig:A car object showing aggregation. Car Engine Seat Wheel KIIT CSE/IT (OOSD)

52 Relationships: Dependency
A relationship between two model elements where a change in one may cause a change in the other Non-structural, “using” relationship KIIT CSE/IT (OOSD)

53 Relationships: Generalization
A relationship among classes where one class shares the structure and/or behavior of one or more classes Defines a hierarchy of abstractions in which a subclass inherits from one or more superclasses Single inheritance Multiple inheritance Generalization is an “is-a-kind of” relationship KIIT CSE/IT (OOSD)

54 Relationships: Realization
One classifier serves as the contract that the other classifier agrees to carry out Found between: Interfaces and the classifiers that realize them KIIT CSE/IT (OOSD)

55 The Relationship Between Classes and Objects
A class is an abstract definition of an object It defines the structure and behavior of each object in the class It serves as a template for creating objects Objects are grouped into classes KIIT CSE/IT (OOSD)

56 Strengths of Object Orientation
A single paradigm Facilitates architectural and code reuse Models more closely reflect the real world More accurately describe corporate data and processes Decomposed based on natural partitioning Easier to understand and maintain Stability A small change in requirements does not mean massive changes in the system under development KIIT CSE/IT (OOSD)

57 CASE STUDY Do Self Study of A PAY ROLL PROGRAM of both Structured Approach and O-O Approach. KIIT CSE/IT (OOSD)


Download ppt "OBJECT BASICS (CH-2) SCE, KIIT University KIIT CSE/IT (OOSD)"

Similar presentations


Ads by Google