1 / 53

“Object-orientation” – what is it all about?

“Object-orientation” – what is it all about?. Gill Harrison, Innovation North. Aims and Objectives this week. To appreciate what is meant by “object-orientation’ how it arose why it is a useful approach. What is Object-Orientation?.

jatin
Download Presentation

“Object-orientation” – what is it all about?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. “Object-orientation” – what is it all about? Gill Harrison, Innovation North

  2. Aims and Objectives this week To appreciate • what is meant by “object-orientation’ • how it arose • why it is a useful approach

  3. What is Object-Orientation? • A method of writing programs and developing software that is “oriented” (or orientated or directed) towards the use of objects

  4. What are objects? A software object is

  5. What are objects? A software object issomething which holds both

  6. What are objects? A software object is something which holds bothdata

  7. What are objects? A software object is something which holds bothdata

  8. What are objects? Stock object A software object is something which holds bothdata Stock CodeDescriptionNumber in StockUnit cost

  9. What are objects? Stock object A software object is something which holds bothdataand the program instructions (organised into “methods”) for processing that data Stock CodeDescriptionNumber in StockUnit cost

  10. What are objects? Stock object A software object is something which holds bothdataand the program instructions (organised into“methods”)for processing that data Stock CodeDescriptionNumber in StockUnit cost

  11. What are objects? Stock object A software object is something which holds bothdataand the program instructions (organised into“methods”)for processing that data Stock CodeDescriptionNumber in StockUnit costMethod to change the Number in StockMethod to calculate value

  12. How is a system built? One object can send a “message” to another asking it to perform one of its methods on its data

  13. How is a system built? One object can send a “message” to another asking it to perform one of its methods on its data Stock object Stock CodeDescriptionNumber in StockUnit costMethod to change the Number in StockMethod to calculate value

  14. How is a system built? One object can send a “message” to another asking it to perform one of its methods on its data Stock object Stock CodeDescriptionNumber in StockUnit costMethod to change the Number in StockMethod to calculate value an object dealing with goods received

  15. How is a system built? One object can send a “message” to another asking it to perform one of its methods on its data Stock object Stock CodeDescriptionNumber in StockUnit costMethod to change the Number in StockMethod to calculate value increase your number in stock by 1000 an object dealing with goods received

  16. If you’re interested (this is 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 } } data methods

  17. If you have met programs 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?

  18. Encapsulation The details of data and methods are shielded from outside view or interference. This is called “encapsulation”. Stock CodeDescriptionNumber in StockUnit costMethod to change the Number in StockMethod to calculate value

  19. Encapsulation The details of data and methods are shielded from outside view or interference. This is called“encapsulation”. Stock CodeDescriptionNumber in StockUnit costMethod to change the Number in StockMethod to calculate value

  20. Encapsulation The details of data and methods are shielded from outside view or interference. This is called“encapsulation”. Just send me messages and I’ll send replies

  21. A 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

  22. A 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

  23. Object-oriented Programming languages • Simula - a simulation language • Smalltalk - the first pure O-O language • Eiffel • C++ (C with objects) • Java

  24. Features of object-orientation • 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

  25. Objects and Entities OBJECTS ENTITIES class is like entity type instance is like occurrence attribute is like attribute? method has no equivalent -

  26. Objects and Entities Objects seem like entities, with processing added in. But ERDs show entities and DFDs show processing.

  27. Looking at DFDs and ERDs

  28. It is almost as though an entity...

  29. absorbs bits of processing

  30. absorbs bits of processing

  31. absorbs bits of processing

  32. absorbs bits of processing

  33. absorbs bits of processing

  34. absorbs bits of processing

  35. absorbs bits of processing

  36. absorbs bits of processing

  37. absorbs bits of processing

  38. absorbs bits of processing

  39. absorbs bits of processing

  40. absorbs bits of processing

  41. absorbs bits of processing

  42. absorbs bits of processing

  43. absorbs bits of processing

  44. absorbs bits of processing Hey, I’m an object!

  45. Evolution of Systems Analysis and Design methods • Methods using Structure Charts and Data Flow Diagrams • ..... plus Entity Relationship Diagrams • Object-Oriented Analysis and Design Methods

  46. Relative maturity Mature Immature O-O Programming Languages O-O Databases O-O Analysis and Design

  47. Object-Oriented Analysis and 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

  48. Object-Oriented Analysis and 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)

  49. 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

  50. 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

More Related