The document discusses the differences between procedural-oriented programming (POP) and object-oriented programming (OOP), highlighting how OOP allows for better code reuse, data hiding, and easier updates. It provides real-world examples illustrating how adding or modifying features can be simpler in OOP through class inheritance and method updates. The document emphasizes that OOP helps create reliable, reusable, and extensible software systems by organizing code into classes and objects with defined characteristics, responsibilities, and relationships.
Procedure Oriented Programming
•It means “a set of procedures” which is a “set of
subroutines” or a “set of functions“.
• functions are called repeatedly in a program to execute
tasks performed by them. For example, a program may
involve collecting data from user (reading), performing
some kind of calculations on the collected data
(calculation), and finally displaying the result to the
user when requested (printing). All the 3 tasks of
reading, calculating and printing can be written in a
program with the help of 3 different functions which
performs these 3 different tasks.
3.
A Real-World Example
•Let's say that you are working for a vehicle parts
manufacturer that needs to update it's online inventory
system. Your boss tells you to program two similar but
separate forms for a website, one form that processes
information about cars and one that does the same for
trucks.
• For cars, we will need to record the following information:
Color, Engine Size, Transmission Type, Number of doors
• For trucks, the information will be similar, but slightly
different. We need:
Color, Engine Size, Transmission Type, Cab Size, Towing
Capacity
4.
Scenario 1
• Supposethat we suddenly need to add a bus
form, that records the following information:
Color, Engine Size, Transmission Type
Number of passengers
• Procedural: We need to recreate the entire form,
repeating the code for Color, Engine Size, and
Transmission Type.
• OOP: We simply extend the vehicle class with a
bus class and add the
method,numberOfPassengers.
5.
Scenario 2
• Insteadof storing color in a database like we
previously did, for some strange reason our client
wants the color emailed to him.
• Procedural: We change three different forms:
cars, trucks, and buses to email the color to the
client rather than storing it in the database.
• OOP: We change the color method in the vehicle
class and because the car, truck, and bus classes
all extend (or inherit from, to put it another way)
the vehicle class, they are automatically updated.
6.
Scenario 3
• Wewant to move from a generic car to specific
makes, for example: Nissan and Mazda.
• Procedural: We create a new form for each make,
repeating all of the code for generic car
information and adding the code specific to each
make.
• OOP: We extend the car class with a Nissan class
and a Mazda class and add methods for each set
of unique information for that car make.
7.
Scenario 4
• Wefound a bug in the transmission type area
of our form and need to fix it.
• Procedural: We open and update each form.
• OOP: We fix the transmission Type method in
the vehicle class and the change perpetuates
in every class that inherits from it.
8.
Procedural vs. Object-OrientedProgramming
POP OOP
In POP, program is divided into small parts
called functions.
In OOP, program is divided into parts
called objects.
POP does not have any proper way for
hiding data so it is less secure.
OOP provides Data Hiding so
provides more security.
Example of POP are : C, VB, FORTRAN,
Pascal.
Example of OOP are : C++, JAVA, VB.NET,
C#.NET.
9.
Procedural:
Top down design
Globaldata focused
Limited code reuse
Complex code
Object-Oriented:
Object focused design
Protected data
Code reuse
Complex design
VS.
Procedural vs. Object-Oriented Programming
10.
Object Oriented Methodologyis a certain
process through which software can be
developed. The goals of this methodology
are to achieve Software Systems that are
reliable, reusable, extensible; hence, more
useful in the long run. The methodology
achieves its goals by the help of a collection
of objects that communicate by exchanging
messages.
11.
Objects
Towards a higherlevel of abstraction
• Hence, every object has 3 important features
– 1. Characteristics (e.g. Name, Designation, Job description etc.)
– 2. Responsibilities (e.g. drive bus, fly plane etc.) – these are assigned
on the basis of the object’s characteristics – A manager object would
have different responsibilities than a developer, since their job
descriptions (a characteristic) would be different:
– 3. Relationships with other objects (explained in detail later) – in order
to send requests/messages to each other, objects need to have some
relationship/connection. E.g. A bus driver needs to have
access/connection to a bus in order to drive it.
12.
Classes
• Exercise: Whatclass/category do these objects
belong to?
– Pencils, erasers, pens, rulers, sharpeners?
– Bananas, apples, oranges, peaches, grapes?
– Alice, Bob, Mark, Fahd, Ali, Brian?
• Guideline: A class usually represents a noun
#12 Must follow the Required Content structure
Clear and concise purpose
Should fit into the overall training program
Determine level of training and adhere to it throughout
Beginner, Intermediate, Advanced
Introduce concepts in an easy to follow manner
Provide text and audio
Product trainings should include hands-on video examples
#13 Possible Answers to the Exercises:
Stencils
Fruits
People/Humans/Names