“object-orientation” – what is it all about? gill harrison, innovation north
TRANSCRIPT
““Object-orientation” – Object-orientation” – what is it all about?what is it all about?
Gill Harrison, Innovation North
Aims and Objectives this Aims and Objectives this weekweek
To appreciate
• what is meant by “object-orientation’
• how it arose
• why it is a useful approach
What is Object-What is Object-Orientation?Orientation?
• A method of writing programs and developing software that is “oriented” (or orientated or directed) towards the use of objects
What are objects?What are objects?
A software object is something which holds both data
Stock CodeDescriptionNumber in StockUnit cost
Stock object
What are objects?What are objects?
A software object is something which holds both data
and the program instructions (organised into “methods”) for processing that data
Stock CodeDescriptionNumber in StockUnit cost
Stock object
What are objects?What are objects?
A software object is something which holds both data
and the program instructions (organised into “methods”) for processing that data
Stock CodeDescriptionNumber in StockUnit cost
Stock object
What are objects?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 CodeDescriptionNumber in StockUnit cost
Method to change the Number in Stock
Method to calculate value
How is a system built?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?How is a system built?
Stock CodeDescriptionNumber in StockUnit 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?How is a system built?
Stock CodeDescriptionNumber in StockUnit 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?How is a system built?
Stock CodeDescriptionNumber in StockUnit 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 1000an object
dealing with goods received
Stock object
If you’re interested (this is If you’re interested (this is Java)...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 If you have met programs before..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?
EncapsulationEncapsulation
Stock CodeDescriptionNumber in StockUnit 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”.
EncapsulationEncapsulation
Stock CodeDescriptionNumber in StockUnit 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”.
EncapsulationEncapsulation
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 historyA 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 historyA 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 Object-oriented Programming languageslanguages
• Simula - a simulation language
• Smalltalk - the first pure O-O language
• Eiffel
• C++ (C with objects)
• Java
Features of object-Features of object-orientationorientation
• 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 EntitiesObjects and Entities
OBJECTS ENTITIES
class is like entity type
instance is like occurrence
attribute is like attribute?
method has no equivalent -
Objects and EntitiesObjects and Entities
Objects seem like entities, with processing added in.
But ERDs show entities and DFDs show processing.
Evolution of Systems Evolution of Systems Analysis and Design Analysis and Design
methodsmethods
• Methods using Structure Charts and Data Flow Diagrams
• ..... plus Entity Relationship Diagrams
• Object-Oriented Analysis and Design Methods
Relative maturityRelative maturity
Mature Immature
O-O Programming Languages
O-O DatabasesO-O Analysis and Design
Object-Oriented Analysis Object-Oriented Analysis and Design Methodsand 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 Object-Oriented Analysis and Design Methodsand 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?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?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?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?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?