SlideShare a Scribd company logo
Object Thinking
 
The Philosophy of Development formalism -vs- hermeneutics From Philosophy to Culture mentoring, metaphor & vocabulary From Culture to Practice object discovery & thinking
Formalism/Determinism (software engineering) uses traditional thinking -vs- Hermeneutics/Postmodernism (extreme programming) uses object thinking
The Object Thinking Manifesto Advocacy of  behavioralism Antagonistic towards  formalism Emphasis on  analysis  and  conceptualization Philosophy of  extreme programming Prefers the  autonomous  to the  autocratic
The Object Thinking Manifesto Better people write better code - not better tools
“ Let there be no doubt that object-oriented design is fundamentally different than traditional structured design approaches: it requires different ways of thinking about decomposition, and it produces software architectures that are largely outside the realm of the structured design culture.” Grady Booch, 1991
“ Let there be no doubt that object-oriented design is  fundamentally different   than traditional structured design approaches: it requires  different ways of thinking   about decomposition, and it produces software architectures that are largely outside the realm of the  structured design culture .” Grady Booch, 1991
Observing the Object Difference Traditional thinking Object thinking Data Structure operationX operationY operationZ
Anthropomorphization is the attribution of human characteristics to inanimate objects, animals, forces of nature, the unseen author of things, and others.
“…  if the diagram is an accurate depiction of an object, what is the difference between an object and a COBOL program?”
“ There is none.  A COBOL program encapsulates data and operations and allows communication among programs. Object development – using this model – will have a tough time being anything more than the creation of lots of tiny COBOL programs.”
Object Depictions Entity UML Customer ID# dob gender fname … getID# setID# getDOB# setDOB# … Customer id# dob gender fname lname mi honorific generational …
Object Depictions Object (Class-Responsibility-Collaboration) Customer ID self describe self indicate desires make decisions confirm information
Encapsulation via Properties public class  Customer { public string  Name { get   {   return  _name ;   } set { // validate here _name =  value ; } } private string  _name ; } Known as  information hiding Traditionally taught as a key precept of OO But many XP advocates say they should not be tested … why? Why do objects keep trying to change type? Is there a better way?
Self-Describing Objects public class  Customer :  Dictionary < Uri ,  Object > { } Provides a  property bucket Looks alien to traditional thinking Violates traditional encapsulation principles How is validation carried out?
Self-Evaluating Rules Evaluate self-describing objects at runtime Promote type re-use via  separation of concerns Embody data validation rules, business rules, or any other constraint
Demo Self-Describing Objects & Self-Evaluating Rules
So all my objects should be self-describing?
Having a hammer does not make everything a nail
Non-Self-Describing Objects Primitives bool, int, float, enum, etc. Some Standards html elements, xpath predicates, industry, etc. Self-Describing Objects tend to be actors
Issues Currently no standard supporting framework I am considering a CodePlex or SourceForge project Limited knowledge, few publications, no examples Just try googling for the key terms… Steep learning curve Hard to ‘unlearn’ traditional thinking Few practitioners or evangelists
Links http://del.icio.us/alan.dean/object-thinking http://thoughtpad.net/alan-dean Email [email_address] © MMVII

More Related Content

PPTX
Making Sense of Design Patterns
PPTX
Marek Rosa - Inventing General Artificial Intelligence: A Vision and Methodology
PPT
English Kitchen Vocabulary
PPTX
Daily English Vocabulary- In the Kitchen
PDF
The Basics: Body Parts
PPT
Adjectives powerpoint
PPTX
Adjectives final presentation by melita katrina marlyn
PPT
Adjectives 1
Making Sense of Design Patterns
Marek Rosa - Inventing General Artificial Intelligence: A Vision and Methodology
English Kitchen Vocabulary
Daily English Vocabulary- In the Kitchen
The Basics: Body Parts
Adjectives powerpoint
Adjectives final presentation by melita katrina marlyn
Adjectives 1

Similar to Object Thinking (20)

PPT
1. oop with c++ get 410 day 1
PPT
Opps approch of software development
PPTX
Introduction
DOCX
Ooad unit 1
PDF
Object-Oriented Programming in Java (Module 1)
DOCX
Unit1 jaava
PPT
C++(introduction)
PPTX
Ooad unit – 1 introduction
PDF
Object Modelling Technique " ooad "
PPTX
What is Object Orientation?
PPT
oomd-unit-i-cgpa.ppt
PPTX
Object Oriented, Design patterns and data modelling worshop
PPTX
TEST PPT
PPTX
Object model
PPTX
Object model
PPTX
Object model
PPTX
Object model
PPTX
Object model
PPTX
Object model
PPTX
Object model
1. oop with c++ get 410 day 1
Opps approch of software development
Introduction
Ooad unit 1
Object-Oriented Programming in Java (Module 1)
Unit1 jaava
C++(introduction)
Ooad unit – 1 introduction
Object Modelling Technique " ooad "
What is Object Orientation?
oomd-unit-i-cgpa.ppt
Object Oriented, Design patterns and data modelling worshop
TEST PPT
Object model
Object model
Object model
Object model
Object model
Object model
Object model
Ad

More from Alan Dean (8)

PDF
Cavity Data
PPTX
Test Driven Development (C#)
PPTX
Test Driven Development (Delphi)
PPTX
Azure, Cloud Computing & Services
PPT
Separating REST Facts from Fallacies
PDF
Future Direction For Agile
PPT
Introduction To ASP.NET MVC
PPT
Internationalisation And Globalisation
Cavity Data
Test Driven Development (C#)
Test Driven Development (Delphi)
Azure, Cloud Computing & Services
Separating REST Facts from Fallacies
Future Direction For Agile
Introduction To ASP.NET MVC
Internationalisation And Globalisation
Ad

Recently uploaded (20)

PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Big Data Technologies - Introduction.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation theory and applications.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Big Data Technologies - Introduction.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
20250228 LYD VKU AI Blended-Learning.pptx
Unlocking AI with Model Context Protocol (MCP)
Chapter 3 Spatial Domain Image Processing.pdf
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
MIND Revenue Release Quarter 2 2025 Press Release
Advanced methodologies resolving dimensionality complications for autism neur...
Understanding_Digital_Forensics_Presentation.pptx
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation theory and applications.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Mobile App Security Testing_ A Comprehensive Guide.pdf

Object Thinking

  • 2.  
  • 3. The Philosophy of Development formalism -vs- hermeneutics From Philosophy to Culture mentoring, metaphor & vocabulary From Culture to Practice object discovery & thinking
  • 4. Formalism/Determinism (software engineering) uses traditional thinking -vs- Hermeneutics/Postmodernism (extreme programming) uses object thinking
  • 5. The Object Thinking Manifesto Advocacy of behavioralism Antagonistic towards formalism Emphasis on analysis and conceptualization Philosophy of extreme programming Prefers the autonomous to the autocratic
  • 6. The Object Thinking Manifesto Better people write better code - not better tools
  • 7. “ Let there be no doubt that object-oriented design is fundamentally different than traditional structured design approaches: it requires different ways of thinking about decomposition, and it produces software architectures that are largely outside the realm of the structured design culture.” Grady Booch, 1991
  • 8. “ Let there be no doubt that object-oriented design is fundamentally different than traditional structured design approaches: it requires different ways of thinking about decomposition, and it produces software architectures that are largely outside the realm of the structured design culture .” Grady Booch, 1991
  • 9. Observing the Object Difference Traditional thinking Object thinking Data Structure operationX operationY operationZ
  • 10. Anthropomorphization is the attribution of human characteristics to inanimate objects, animals, forces of nature, the unseen author of things, and others.
  • 11. “… if the diagram is an accurate depiction of an object, what is the difference between an object and a COBOL program?”
  • 12. “ There is none. A COBOL program encapsulates data and operations and allows communication among programs. Object development – using this model – will have a tough time being anything more than the creation of lots of tiny COBOL programs.”
  • 13. Object Depictions Entity UML Customer ID# dob gender fname … getID# setID# getDOB# setDOB# … Customer id# dob gender fname lname mi honorific generational …
  • 14. Object Depictions Object (Class-Responsibility-Collaboration) Customer ID self describe self indicate desires make decisions confirm information
  • 15. Encapsulation via Properties public class Customer { public string Name { get { return _name ; } set { // validate here _name = value ; } } private string _name ; } Known as information hiding Traditionally taught as a key precept of OO But many XP advocates say they should not be tested … why? Why do objects keep trying to change type? Is there a better way?
  • 16. Self-Describing Objects public class Customer : Dictionary < Uri , Object > { } Provides a property bucket Looks alien to traditional thinking Violates traditional encapsulation principles How is validation carried out?
  • 17. Self-Evaluating Rules Evaluate self-describing objects at runtime Promote type re-use via separation of concerns Embody data validation rules, business rules, or any other constraint
  • 18. Demo Self-Describing Objects & Self-Evaluating Rules
  • 19. So all my objects should be self-describing?
  • 20. Having a hammer does not make everything a nail
  • 21. Non-Self-Describing Objects Primitives bool, int, float, enum, etc. Some Standards html elements, xpath predicates, industry, etc. Self-Describing Objects tend to be actors
  • 22. Issues Currently no standard supporting framework I am considering a CodePlex or SourceForge project Limited knowledge, few publications, no examples Just try googling for the key terms… Steep learning curve Hard to ‘unlearn’ traditional thinking Few practitioners or evangelists