oo concepts and class modeling

58
Object Oriented Concepts and Class Modeling Preeti Mishra Course Instructor

Upload: preeti-mishra

Post on 26-Jan-2017

304 views

Category:

Engineering


0 download

TRANSCRIPT

Object Oriented Concepts and

Class Modeling

Preeti MishraCourse Instructor

Motivation• You got a gun

• You were the proud owner of the nice gun!

• You used it:

• You claimed you know how to use a gun!

Object• Any real world entity: chair, fan, student, cow• Object has crisp boundaries• You can physically or logically perceive an object • Object has:

• State ( values of attributes)• Behavior( method response)• Identity( address+name)

Taking about the dogAttributes(these will be common to all dogs)

State( talking about dog obove)

Breed LabradorOwner Mr. crazyBatch_no 420_IMVaccinated NoHobbies Musicbadhabbits smoking

• Behavior: • gets_vaccination• Runs• Listensongs….

• Identity: • Batch_no ( it is unique for all dogs)

Task:• Think of an object• Give its state- • Now deduce the attributes from

this state• Talk of the identity

AbstractionObject Oriented

Concepts:

What we learned• People tend to see the same thing in

different manner• Why So??

– Due to various perspectives, interests• Technically we will refer this syndrome

as Abstraction

What is..• An abstraction focuses on the outside view of an object

andseparates an object’s behaviour from its implementation

• a simplified description, or specification, of a system that emphasizes some of the system's details or properties while suppressing others.

• A good abstraction is one that emphasizes details that are significant to the reader or user and suppresses details that are, at least for the moment, immaterial or diversionary“

• Nearly all programming languages designed since 1980 support data abstraction

Thus• “An abstraction denotes the essential characteristics of

an object that distinguish it from all other kinds of objects and thus provide crisply defined conceptual boundaries,

relative to the perspective of the viewer”-Grady Booch

Realized in programming by..• Abstract data types/ classes• Abstract keyword• Class…

Encapsulation

Need??• Large programs have two special needs:

– Some means of organization, other than simply division into subprograms

– Some means of partial compilation (compilation units that are smaller than the whole program)

Hence encapsulation• “Encapsulation is a mechanism used to hide the data,

internal structure, and implementation details of an object.

• All interaction with the object is through a public interface of operations.”

• Abstraction and encapsulation are complementary concepts: abstraction focuses upon the observable behaviour of an object, whereas encapsulation focuses upon the implementation that gives rise to this behaviour.

• For abstraction to work, implementations must be encapsulated"

Defined as..• “Encapsulation is the process of

compartmentalizing the elements of an abstraction that constitute its structure and behaviour; encapsulation serves to separate the contractual interface of an abstraction and its implementation.”

– Grady Booch

Encapsulation is achieved through• Encapsulation is most often achieved through

information hiding, which is the process of hiding all the secrets of anobject that do not contribute to its essential characteristics; typically, the structure of an object is hidden, as well as the ,implementation of its methods.

In programming• Encapsulation Abstraction= Class • For eg: think of a person as student• From this perspective think of his

description/properties• Now compartmentalize these properties into:

– attributes + behavior– Make attributes as : member variables/ data members– Make behavior: member functions/ methods– Name the entity as some noun : Student (because its

meaningful according to the perspective)

And we have..Class Student{int roll_no, marks;String Name, branch, year;int get_Attendence()int check_percentage()}

Modularity

Modularity

Thus • The act of partitioning a program into individual

components can reduce its complexity to some degree. .

• Although partitioning a program is helpful for this reason, a more powerful justification for partitioning a program is that it creates a number of well defined, documented boundaries within the program.

Why Modularity??• modularization consists of dividing a program into

modules which can be compiled separately, but which have connections with other modules.

• The overall goal of the decomposition into modules is the reduction of software cost by allowing modules to be designed and revised independently. .

Defined as..• Modularity is the property of a system that has been

decomposed into a set of cohesive and loosely coupled modules

Heirarcy

What is the need• A set of abstractions often forms a hierarchy, and by

identifying these hierarchies in our ,design, we greatly simplify our understanding of the problem

Defined as..• Hierarchy is a

ranking or ordering of abstractions.

• Is-a relation• Kind-of

Polymorphism

We learned• Generally, the ability to appear in many forms.• The same invocation can produce “many

forms” of results• The same method name and signature can

cause different actions to occur, – depending on the type of object on which

the method is invoked• Promotes extensibility• New objects types can respond to existing

method calls

• Polymorphism exists when the features of inheritance and dynamic binding interact. It is

perhaps the most powerful feature of object-oriented programming languages

Defined as..• In object-oriented programming, polymorphism

refers to a programming language's ability to process objects differently depending on their data type or class. More specifically, it is the ability to redefine methods for derived classes.

Object•State•Behavior/ operations•Identity•Roles-responsibility•Life span

What is an Object?• From the perspective of

human cognition, an object is any of the following:– A tangible and/or visible

thing– Something that may be

apprehended intellectually– Something toward which

thought or action is directed– something that exists in time

and space.

Defined as• An object has state, behaviour, and identity; the

structure and behaviour of similar objects are defined in their common class; the terms instance and object are interchangeable.

Object: StateProperty(attribute)

Current value(State)

Amount of money $45No to slots 20No of empty slots 5No of filled slots 10Price per slot …

State: defined as• The state of an object encompasses all of the

(usually static) properties of the object plus the current (usually dynamic) values of each of these properties.

Behavior• the behaviour of an

object represents its outwardly visible and testable activity

• behaviour also notes that the state of an object affects its behaviour as well.

Behavior : defined as• Behaviour is how an object acts and reacts, in

terms of its state changes and message passing.

• Thus:– The state of an object represents the cumulative

results of its behaviour

Operations: means to show behaviour(Operation/methods/memberfunctions)• An operation denotes a service that a class offers to its clients. • In practice, we have found that a client typically performs five

kinds of operations upon an object:– Modifier :An operation that alters the state of an object– Selector :An operation that accesses the state of an object, but does

not alter the state– Iterator :An operation that permits all parts of an object to be accessed

in some well-defined order– Constructor: An operation that creates an object and/or initializes its

state– Destructor An operation that frees the state of an object and/or

destroys the object itself

Task to do• For a Stack data

structure identify :• State: properties and

current values• Behavior• Operations of different

categories

Identity

Identity: defined as• “Identity is that property of an object which

distinguishes it from all other objects "

Roles and Responsibilities• all of the methods and free subprograms associated

with a particular object comprise its protocol.

Roles• object's allowable behaviour, and so comprises the entire

static and dynamic view of the object. • For most nontrivial abstractions, it is useful to divide this

larger protocol into logical groupings of behavior.• These collections, which thus partition the behavior space• of an object, denote the roles that an object can play. • a role is a mask that an object wears , and so defines a

contract between an abstraction and its clients

Responsibility• The responsibilities of an object to "include two key

items: – the knowledge an object maintains and – the actions an object can perform.

• Responsibilities are meant to convey a sense of the purpose of an object and its place in the system.

• The responsibilities of an object are all the services it provides for all of the contracts it supports"

Object : Life Span• Object Life Span :The lifetime of an object extends from

the time it is first created (and thus first consumes space) until that space is reclaimed .

• To explicitly create an object, we must either declare it or allocate it.

• Object destruction may vary …• Persistent objects have slightly different semantics

regarding destruction