SlideShare a Scribd company logo
Object Oriented Concepts An overview and refresher for technology professionals
Goals Give you talking points so you may: Continue this discussion at your own organizations Debate how I organized things and come up with a “better” way This is just a starting point!
Agenda Perspectives Objects and approaches Object Oriented concepts Encapsulation Abstraction Inheritance Polymorphism Surprises!
A non-techie person! For analysts… Understanding OO Concepts can give you a “common language” to better communicate with your alien developers For managers … Planning at the object level allow for faster development (no more waterfall) Reduced risks (big scary things are history--- now you get lots of little scary things, more milestones, faster and more frequent deliverables, etc.)
Perspectives
Perspective All data processing involves: Input Processing Output Nothing more, nothing less That’s why its called DATA processing and INFORMATION technology
Another perspective… “ Divide and conquer” Put another (more applicable) way… Divide larger problems into smaller problems so they are more manageable
Why divide? Too much information! Too complicated for a  Thursday evening!
Sounds simple enough… Input, output, processing--- check! Divide and conquer--- check! No big scary database diagrams--- check! Then why is analysis for software development projects so hard?
Sounds simple … The business has needs “ We need specific implementation and a stable deliverable from this project in 2 weeks.” The techies have needs “ on what object model?!” …and these needs often conflict with one another
Sounds simple … Conflict with one another? The business wants and needs software so it can compete, grow, and profit Side note:  profit is good .  Without profit there is no business, no job, no conversation The technical folks want: To  create  software that fills a need Use technology and techniques that make it easy/possible to be built Not make a program that is a nightmare to maintain
Why are we here? The business and the technical folks want the same thing but use different words By learning a “common language” and a “common thought process” the business and technical teams will be more productive and a lot less stressed
Objects and Approaches
What is an object? An object is grouping of data and procedures that form a  single  business concept.  Think “Employee”, “Invoice”, “Mentos” Encapsulates state and behavior A building block Something that can  stand on its own  or be part of other objects
What is an object? Objects are typically the  nouns  of a business problem Attributes/data that  describe  the object are  adjectives Procedures/methods that act on the object are  verbs
What is an object? Think of it as a complete program that “talks” to other programs: Controlled ways to use it Controlled ways to access its data Mask complexity! Promotes reusability!
Why objects? The alternative is data-process analysis End-to-end, “this is what I need” Script-type code Not terrible for small, short lived applications Problems What if the process changes (it never does, right?) Code written this way often becomes a “script”, where you often have to understand EVERYTHING before you can change ANYTHING. Horrible for large scale, interconnected applications
Object oriented concepts Rooted in the idea of breaking large business problems into smaller, more manageable ones Object oriented technology is a method for modeling and building systems, especially complex systems Object analysis uses an iterative approach
Object oriented concepts Integrates data and process Models  behavior   Hides complexity Highly reusable components Highly modular Faster to develop Simpler to extend Easier to maintain Effective traceability, testability
quiz! Dividing business problems into smaller, more manageable tasks is a form of object oriented analysis? True False It is often desired that a single object contain knowledge and responsibility for multiple business concepts.  True False
Fundamental object concepts Encapsulation  Abstraction Inheritance Polymorphism
Encapsulation Slicing and dicing of business concepts into smaller, more manageable pieces
Encapsulation Packaging  related  data and procedures together Or, holds the  responsibility  for describing (adjectives) and operating against (verbs) a single business concept (noun) Does not need to be a 1:1 ratio of database tables to objects Promotes information hiding
Encapsulation Information hiding? When viewed from the “outside”, visibility is limited to: What the object can do (verbs) What the object knows (adjectives) The “how” details and complexity is purely internal Controls access to data!
Encapsulation Scope control Does an object describe too much? Should it be broken into multiple objects? Does an object describe too little? Is a single business concept/operation broken across multiple objects? There is such a thing as going too far! Academic world vs. real world “ Purist” view vs. reality
Encapsulation For example: Mentos Adjectives Sugar Glucose syrup Hydrogenated coconut oil Gelatin Dextrin Natural flavor Corn starch Gum arabic Methods React
Encapsulation For example: Diet Coke Adjectives Carbonated water  Caramel Color  Aspartame  Phosphoric acid  Potassium benzoate (to protect taste)  Natural flavors  Citric acid  Caffeine  Methods React
Encapsulation Objects may reference other objects It is perfectly acceptable that a top level object has responsibility broad business concept (a master), that references one or more subordinate objects of smaller scope (details). A bottle object may contain a liquid of type Diet Pepsi
Encapsulation Pop Quiz! Concealing all data is the idea behind “information hiding” True False An object has the responsibility for describing and operating against a single business concept True False
Abstraction When you don’t care about any specific business concept
Abstraction Purely organizational Independent of implementation The “what”, not the “how” Emphasis is on standardization (and agreement) of functionality between objects Think common behaviors Input Processing Output
Abstraction For example: Mix two objects in a container and observe the results It is desired to use the same verb ( “react” ) to perform this operation Different objects may implement this very differently This is now a common  behavior  across all objects, regardless of how or where the data is obtained We don’t care what happens next (okay, yes we do),, simply that it is done using a “react” method
Abstraction Taking it a step further into development: We know similar classes load data via a “get” method Classes may need to accomplish this differently (some from the database, others from XML, still others from web services) We don’t care; it is known that this “get” method will load the data Known as an “interface” in .NET
Abstraction An “interface contract” is an agreement between services (or developers) that a method will take certain parameters and return certain results The details of “how” is done later Developers can work concurrently on both services, “coding to the interface”!
Service developer’s “stub” object(s) c lass  Mentos : IReactiveSubstance { public string ReactiveSubstance() { return  "Caffine"; } public void React() { throw new  NotImplementedException(); } } Interface Contract public interface  IReactiveSubstance { string ReactiveSubstance(); void React(); } c lass  DietPepsi : IReactiveSubstance { public string ReactiveSubstance() { return  "Natural Flavors"; } public void React() { throw new  NotImplementedException(); } }
class  Bottle { private  IReactiveSubstance _Liquid; private  IReactiveSubstance _ObjectThatDoesntBelongHere; public Bottle( IReactiveSubstance liquid, IReactiveSubstance candy) { _Liquid = liquid; _ObjectThatDoesntBelongHere = candy; } public string Combine() { _Liquid.React(); _ObjectThatDoesntBelongHere.React(); return _Liquid.ReactiveSubstance()  + _ObjectThatDoesntBelongHere.ReactiveSubstance(); } } Consumer developer’s code implementing and manipulating a n d   m a n i p u l a t i n g   both objects
Abstraction The point is, any object that “implements” the IInterface interface must implement the React() method. Disciplined development More importantly; if we know/design how objects will communicate with one another, they can be developed at the same time!
Abstraction Quiz! Abstraction is more about writing queries and code than describing how objects will communicate with one another? True False An “interface contract” is an agreement of what method signatures will be used to read data or invoke functionality. True False
Inheritance Associating common behaviors to like objects
Inheritance Groups of objects that logically have behaviors in common Broken down into generalization (ancestor) and specialization (descendant)
Inheritance Behaviors: React ReactiveSubstance Behaviors: React ReactiveSubstance Behaviors: React ReactiveSubstance Common behaviors: React ReactiveSubstance
Polymorphism Modifying ancestor behavior, one method at a time
Polymorphism Used in conjunction with Inheritance Uses an ancestor’s method (signature) and alters behavior Called “Overriding” Can use some or none of the ancestor’s behavior, or control when the ancestor’s behavior is called.
Polymorphism Implement  React & ReactiveSubstance differently Behaviors: React ReactiveSubstance
Inheritance and Polymorphism Pop Quiz! Inheritance is consolidating common functionality in an “ancestor” class that “descendant” classes get “for free”. True False Polymorphism is all about extending or replacing ancestor functionality in a descendant class. True False
Review
Basic object concepts Encapsulation Division of information, information hiding, controlling access  Abstraction Specifying what needs to be communicated, leaving the details for later Inheritance Organizing like concepts into a hierarchy Polymorphism Modifying inherited behaviors
Questions???
Ad

More Related Content

What's hot (20)

Oops ppt
Oops pptOops ppt
Oops ppt
abhayjuneja
 
Advance oops concepts
Advance oops conceptsAdvance oops concepts
Advance oops concepts
Sangharsh agarwal
 
Need of object oriented programming
Need of object oriented programmingNeed of object oriented programming
Need of object oriented programming
Amar Jukuntla
 
Introduction to oops concepts
Introduction to oops conceptsIntroduction to oops concepts
Introduction to oops concepts
Nilesh Dalvi
 
Oop concept
Oop conceptOop concept
Oop concept
Waseem Mehmood
 
Oops concept in c++ unit 3 -topic 4
Oops concept in c++ unit 3 -topic 4Oops concept in c++ unit 3 -topic 4
Oops concept in c++ unit 3 -topic 4
MOHIT TOMAR
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languages
ppd1961
 
Introduction to oop
Introduction to oop Introduction to oop
Introduction to oop
Kumar
 
Unit 1 OOSE
Unit 1 OOSE Unit 1 OOSE
Unit 1 OOSE
ChhayaShelake
 
1 unit (oops)
1 unit (oops)1 unit (oops)
1 unit (oops)
Jay Patel
 
Object Oriented Programming Lecture Notes
Object Oriented Programming Lecture NotesObject Oriented Programming Lecture Notes
Object Oriented Programming Lecture Notes
FellowBuddy.com
 
SKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPTSKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPT
Skillwise Group
 
Oops
OopsOops
Oops
Maheswarikrishnasamy
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
baabtra.com - No. 1 supplier of quality freshers
 
Oops and c fundamentals
Oops and c fundamentals Oops and c fundamentals
Oops and c fundamentals
umesh patil
 
Object-Oriented Programming Concepts
Object-Oriented Programming ConceptsObject-Oriented Programming Concepts
Object-Oriented Programming Concepts
Kwangshin Oh
 
OOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOPOOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOP
Mudasir Qazi
 
principle of oop’s in cpp
principle of oop’s in cppprinciple of oop’s in cpp
principle of oop’s in cpp
gourav kottawar
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
Amit Soni (CTFL)
 
Introduction to oop
Introduction to oopIntroduction to oop
Introduction to oop
colleges
 
Need of object oriented programming
Need of object oriented programmingNeed of object oriented programming
Need of object oriented programming
Amar Jukuntla
 
Introduction to oops concepts
Introduction to oops conceptsIntroduction to oops concepts
Introduction to oops concepts
Nilesh Dalvi
 
Oops concept in c++ unit 3 -topic 4
Oops concept in c++ unit 3 -topic 4Oops concept in c++ unit 3 -topic 4
Oops concept in c++ unit 3 -topic 4
MOHIT TOMAR
 
Concepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming LanguagesConcepts In Object Oriented Programming Languages
Concepts In Object Oriented Programming Languages
ppd1961
 
Introduction to oop
Introduction to oop Introduction to oop
Introduction to oop
Kumar
 
1 unit (oops)
1 unit (oops)1 unit (oops)
1 unit (oops)
Jay Patel
 
Object Oriented Programming Lecture Notes
Object Oriented Programming Lecture NotesObject Oriented Programming Lecture Notes
Object Oriented Programming Lecture Notes
FellowBuddy.com
 
SKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPTSKILLWISE - OOPS CONCEPT
SKILLWISE - OOPS CONCEPT
Skillwise Group
 
Oops and c fundamentals
Oops and c fundamentals Oops and c fundamentals
Oops and c fundamentals
umesh patil
 
Object-Oriented Programming Concepts
Object-Oriented Programming ConceptsObject-Oriented Programming Concepts
Object-Oriented Programming Concepts
Kwangshin Oh
 
OOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOPOOP - Benefits and advantages of OOP
OOP - Benefits and advantages of OOP
Mudasir Qazi
 
principle of oop’s in cpp
principle of oop’s in cppprinciple of oop’s in cpp
principle of oop’s in cpp
gourav kottawar
 
Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
Amit Soni (CTFL)
 
Introduction to oop
Introduction to oopIntroduction to oop
Introduction to oop
colleges
 

Viewers also liked (20)

Object Oriented Technologies
Object Oriented TechnologiesObject Oriented Technologies
Object Oriented Technologies
Tushar B Kute
 
Labsheet2
Labsheet2Labsheet2
Labsheet2
rohassanie
 
SSRP Self Learning Guide Maths Class 10 - In Hindi
SSRP Self Learning Guide Maths Class 10 - In HindiSSRP Self Learning Guide Maths Class 10 - In Hindi
SSRP Self Learning Guide Maths Class 10 - In Hindi
kusumafoundation
 
Unit i
Unit iUnit i
Unit i
vijay gupta
 
Labsheet_3
Labsheet_3Labsheet_3
Labsheet_3
rohassanie
 
Introduction - Imperative and Object-Oriented Languages
Introduction - Imperative and Object-Oriented LanguagesIntroduction - Imperative and Object-Oriented Languages
Introduction - Imperative and Object-Oriented Languages
Guido Wachsmuth
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
Haris Bin Zahid
 
Cbse class 10 hindi course b model answers by candidates 2015
Cbse class 10 hindi course b model answers by candidates 2015Cbse class 10 hindi course b model answers by candidates 2015
Cbse class 10 hindi course b model answers by candidates 2015
Saurabh Singh Negi
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Language
dheva B
 
Labsheet1stud
Labsheet1studLabsheet1stud
Labsheet1stud
rohassanie
 
Basics of c++
Basics of c++Basics of c++
Basics of c++
Madhavendra Dutt
 
हिन्दी व्याकरण
हिन्दी व्याकरणहिन्दी व्याकरण
हिन्दी व्याकरण
Chintan Patel
 
Chapter3: fundamental programming
Chapter3: fundamental programmingChapter3: fundamental programming
Chapter3: fundamental programming
Ngeam Soly
 
OOPs concept and implementation
OOPs concept and implementationOOPs concept and implementation
OOPs concept and implementation
Sandeep Kumar P K
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
Ajay Chimmani
 
कारक
कारककारक
कारक
guddijangir
 
02a fundamental c++ types, arithmetic
02a   fundamental c++ types, arithmetic 02a   fundamental c++ types, arithmetic
02a fundamental c++ types, arithmetic
Manzoor ALam
 
Vakya parichay
Vakya parichayVakya parichay
Vakya parichay
sonia -
 
कारक(karak)
कारक(karak)कारक(karak)
कारक(karak)
Ishwari Dipika
 
Oops abap fundamental
Oops abap fundamentalOops abap fundamental
Oops abap fundamental
biswajit2015
 
Object Oriented Technologies
Object Oriented TechnologiesObject Oriented Technologies
Object Oriented Technologies
Tushar B Kute
 
SSRP Self Learning Guide Maths Class 10 - In Hindi
SSRP Self Learning Guide Maths Class 10 - In HindiSSRP Self Learning Guide Maths Class 10 - In Hindi
SSRP Self Learning Guide Maths Class 10 - In Hindi
kusumafoundation
 
Introduction - Imperative and Object-Oriented Languages
Introduction - Imperative and Object-Oriented LanguagesIntroduction - Imperative and Object-Oriented Languages
Introduction - Imperative and Object-Oriented Languages
Guido Wachsmuth
 
Object Oriented Programming
Object Oriented ProgrammingObject Oriented Programming
Object Oriented Programming
Haris Bin Zahid
 
Cbse class 10 hindi course b model answers by candidates 2015
Cbse class 10 hindi course b model answers by candidates 2015Cbse class 10 hindi course b model answers by candidates 2015
Cbse class 10 hindi course b model answers by candidates 2015
Saurabh Singh Negi
 
Object Oriented Language
Object Oriented LanguageObject Oriented Language
Object Oriented Language
dheva B
 
हिन्दी व्याकरण
हिन्दी व्याकरणहिन्दी व्याकरण
हिन्दी व्याकरण
Chintan Patel
 
Chapter3: fundamental programming
Chapter3: fundamental programmingChapter3: fundamental programming
Chapter3: fundamental programming
Ngeam Soly
 
OOPs concept and implementation
OOPs concept and implementationOOPs concept and implementation
OOPs concept and implementation
Sandeep Kumar P K
 
4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT4 pillars of OOPS CONCEPT
4 pillars of OOPS CONCEPT
Ajay Chimmani
 
02a fundamental c++ types, arithmetic
02a   fundamental c++ types, arithmetic 02a   fundamental c++ types, arithmetic
02a fundamental c++ types, arithmetic
Manzoor ALam
 
Vakya parichay
Vakya parichayVakya parichay
Vakya parichay
sonia -
 
Oops abap fundamental
Oops abap fundamentalOops abap fundamental
Oops abap fundamental
biswajit2015
 
Ad

Similar to Oops Concepts (20)

Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
Antonio Terreno
 
Semantic intelligence
Semantic intelligenceSemantic intelligence
Semantic intelligence
Stephen Lahanas
 
Building The Agile Database
Building The Agile DatabaseBuilding The Agile Database
Building The Agile Database
elliando dias
 
Writing Quality Code
Writing Quality CodeWriting Quality Code
Writing Quality Code
indikaMaligaspe
 
No more Three Tier - A path to a better code for Cloud and Azure
No more Three Tier - A path to a better code for Cloud and AzureNo more Three Tier - A path to a better code for Cloud and Azure
No more Three Tier - A path to a better code for Cloud and Azure
Marco Parenzan
 
DITA: Managing It All
DITA: Managing It AllDITA: Managing It All
DITA: Managing It All
Scott Abel
 
Patterns of Assigning Responsibilities
Patterns of Assigning ResponsibilitiesPatterns of Assigning Responsibilities
Patterns of Assigning Responsibilities
guest2a92cd9
 
User Experience as an Organizational Development Tool
User Experience as an Organizational Development ToolUser Experience as an Organizational Development Tool
User Experience as an Organizational Development Tool
Donovan Chandler
 
Make compliance fulfillment count double
Make compliance fulfillment count doubleMake compliance fulfillment count double
Make compliance fulfillment count double
Dirk Ortloff
 
Requirements analysis 2011
Requirements analysis 2011Requirements analysis 2011
Requirements analysis 2011
bernddu
 
Mr bi amrp
Mr bi amrpMr bi amrp
Mr bi amrp
renjan131
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Ryan Riley
 
The search engine index
The search engine indexThe search engine index
The search engine index
CJ Jenkins
 
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRSSeminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Mizanur Sarker
 
Best Practice Information Architecture
Best Practice Information ArchitectureBest Practice Information Architecture
Best Practice Information Architecture
Patrick Kennedy
 
Language First Protocol from QSi
Language First Protocol from QSiLanguage First Protocol from QSi
Language First Protocol from QSi
John O'Gorman
 
Structured writing presentation to London Content Strategy Meetup
Structured writing presentation to London Content Strategy MeetupStructured writing presentation to London Content Strategy Meetup
Structured writing presentation to London Content Strategy Meetup
Ellis Pratt
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and Data
Cory Foy
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
yassin elhadedy
 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOA
Alberto Brandolini
 
Importance Of Being Driven
Importance Of Being DrivenImportance Of Being Driven
Importance Of Being Driven
Antonio Terreno
 
Building The Agile Database
Building The Agile DatabaseBuilding The Agile Database
Building The Agile Database
elliando dias
 
No more Three Tier - A path to a better code for Cloud and Azure
No more Three Tier - A path to a better code for Cloud and AzureNo more Three Tier - A path to a better code for Cloud and Azure
No more Three Tier - A path to a better code for Cloud and Azure
Marco Parenzan
 
DITA: Managing It All
DITA: Managing It AllDITA: Managing It All
DITA: Managing It All
Scott Abel
 
Patterns of Assigning Responsibilities
Patterns of Assigning ResponsibilitiesPatterns of Assigning Responsibilities
Patterns of Assigning Responsibilities
guest2a92cd9
 
User Experience as an Organizational Development Tool
User Experience as an Organizational Development ToolUser Experience as an Organizational Development Tool
User Experience as an Organizational Development Tool
Donovan Chandler
 
Make compliance fulfillment count double
Make compliance fulfillment count doubleMake compliance fulfillment count double
Make compliance fulfillment count double
Dirk Ortloff
 
Requirements analysis 2011
Requirements analysis 2011Requirements analysis 2011
Requirements analysis 2011
bernddu
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Ryan Riley
 
The search engine index
The search engine indexThe search engine index
The search engine index
CJ Jenkins
 
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRSSeminar - Scalable Enterprise Application Development Using DDD and CQRS
Seminar - Scalable Enterprise Application Development Using DDD and CQRS
Mizanur Sarker
 
Best Practice Information Architecture
Best Practice Information ArchitectureBest Practice Information Architecture
Best Practice Information Architecture
Patrick Kennedy
 
Language First Protocol from QSi
Language First Protocol from QSiLanguage First Protocol from QSi
Language First Protocol from QSi
John O'Gorman
 
Structured writing presentation to London Content Strategy Meetup
Structured writing presentation to London Content Strategy MeetupStructured writing presentation to London Content Strategy Meetup
Structured writing presentation to London Content Strategy Meetup
Ellis Pratt
 
Getting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and DataGetting Unstuck: Working with Legacy Code and Data
Getting Unstuck: Working with Legacy Code and Data
Cory Foy
 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOA
Alberto Brandolini
 
Ad

Recently uploaded (20)

Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Massive Power Outage Hits Spain, Portugal, and France: Causes, Impact, and On...
Aqusag Technologies
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveDesigning Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep Dive
ScyllaDB
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx2025-05-Q4-2024-Investor-Presentation.pptx
2025-05-Q4-2024-Investor-Presentation.pptx
Samuele Fogagnolo
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 

Oops Concepts

  • 1. Object Oriented Concepts An overview and refresher for technology professionals
  • 2. Goals Give you talking points so you may: Continue this discussion at your own organizations Debate how I organized things and come up with a “better” way This is just a starting point!
  • 3. Agenda Perspectives Objects and approaches Object Oriented concepts Encapsulation Abstraction Inheritance Polymorphism Surprises!
  • 4. A non-techie person! For analysts… Understanding OO Concepts can give you a “common language” to better communicate with your alien developers For managers … Planning at the object level allow for faster development (no more waterfall) Reduced risks (big scary things are history--- now you get lots of little scary things, more milestones, faster and more frequent deliverables, etc.)
  • 6. Perspective All data processing involves: Input Processing Output Nothing more, nothing less That’s why its called DATA processing and INFORMATION technology
  • 7. Another perspective… “ Divide and conquer” Put another (more applicable) way… Divide larger problems into smaller problems so they are more manageable
  • 8. Why divide? Too much information! Too complicated for a Thursday evening!
  • 9. Sounds simple enough… Input, output, processing--- check! Divide and conquer--- check! No big scary database diagrams--- check! Then why is analysis for software development projects so hard?
  • 10. Sounds simple … The business has needs “ We need specific implementation and a stable deliverable from this project in 2 weeks.” The techies have needs “ on what object model?!” …and these needs often conflict with one another
  • 11. Sounds simple … Conflict with one another? The business wants and needs software so it can compete, grow, and profit Side note: profit is good . Without profit there is no business, no job, no conversation The technical folks want: To create software that fills a need Use technology and techniques that make it easy/possible to be built Not make a program that is a nightmare to maintain
  • 12. Why are we here? The business and the technical folks want the same thing but use different words By learning a “common language” and a “common thought process” the business and technical teams will be more productive and a lot less stressed
  • 14. What is an object? An object is grouping of data and procedures that form a single business concept. Think “Employee”, “Invoice”, “Mentos” Encapsulates state and behavior A building block Something that can stand on its own or be part of other objects
  • 15. What is an object? Objects are typically the nouns of a business problem Attributes/data that describe the object are adjectives Procedures/methods that act on the object are verbs
  • 16. What is an object? Think of it as a complete program that “talks” to other programs: Controlled ways to use it Controlled ways to access its data Mask complexity! Promotes reusability!
  • 17. Why objects? The alternative is data-process analysis End-to-end, “this is what I need” Script-type code Not terrible for small, short lived applications Problems What if the process changes (it never does, right?) Code written this way often becomes a “script”, where you often have to understand EVERYTHING before you can change ANYTHING. Horrible for large scale, interconnected applications
  • 18. Object oriented concepts Rooted in the idea of breaking large business problems into smaller, more manageable ones Object oriented technology is a method for modeling and building systems, especially complex systems Object analysis uses an iterative approach
  • 19. Object oriented concepts Integrates data and process Models behavior Hides complexity Highly reusable components Highly modular Faster to develop Simpler to extend Easier to maintain Effective traceability, testability
  • 20. quiz! Dividing business problems into smaller, more manageable tasks is a form of object oriented analysis? True False It is often desired that a single object contain knowledge and responsibility for multiple business concepts. True False
  • 21. Fundamental object concepts Encapsulation Abstraction Inheritance Polymorphism
  • 22. Encapsulation Slicing and dicing of business concepts into smaller, more manageable pieces
  • 23. Encapsulation Packaging related data and procedures together Or, holds the responsibility for describing (adjectives) and operating against (verbs) a single business concept (noun) Does not need to be a 1:1 ratio of database tables to objects Promotes information hiding
  • 24. Encapsulation Information hiding? When viewed from the “outside”, visibility is limited to: What the object can do (verbs) What the object knows (adjectives) The “how” details and complexity is purely internal Controls access to data!
  • 25. Encapsulation Scope control Does an object describe too much? Should it be broken into multiple objects? Does an object describe too little? Is a single business concept/operation broken across multiple objects? There is such a thing as going too far! Academic world vs. real world “ Purist” view vs. reality
  • 26. Encapsulation For example: Mentos Adjectives Sugar Glucose syrup Hydrogenated coconut oil Gelatin Dextrin Natural flavor Corn starch Gum arabic Methods React
  • 27. Encapsulation For example: Diet Coke Adjectives Carbonated water Caramel Color Aspartame Phosphoric acid Potassium benzoate (to protect taste) Natural flavors Citric acid Caffeine Methods React
  • 28. Encapsulation Objects may reference other objects It is perfectly acceptable that a top level object has responsibility broad business concept (a master), that references one or more subordinate objects of smaller scope (details). A bottle object may contain a liquid of type Diet Pepsi
  • 29. Encapsulation Pop Quiz! Concealing all data is the idea behind “information hiding” True False An object has the responsibility for describing and operating against a single business concept True False
  • 30. Abstraction When you don’t care about any specific business concept
  • 31. Abstraction Purely organizational Independent of implementation The “what”, not the “how” Emphasis is on standardization (and agreement) of functionality between objects Think common behaviors Input Processing Output
  • 32. Abstraction For example: Mix two objects in a container and observe the results It is desired to use the same verb ( “react” ) to perform this operation Different objects may implement this very differently This is now a common behavior across all objects, regardless of how or where the data is obtained We don’t care what happens next (okay, yes we do),, simply that it is done using a “react” method
  • 33. Abstraction Taking it a step further into development: We know similar classes load data via a “get” method Classes may need to accomplish this differently (some from the database, others from XML, still others from web services) We don’t care; it is known that this “get” method will load the data Known as an “interface” in .NET
  • 34. Abstraction An “interface contract” is an agreement between services (or developers) that a method will take certain parameters and return certain results The details of “how” is done later Developers can work concurrently on both services, “coding to the interface”!
  • 35. Service developer’s “stub” object(s) c lass Mentos : IReactiveSubstance { public string ReactiveSubstance() { return "Caffine"; } public void React() { throw new NotImplementedException(); } } Interface Contract public interface IReactiveSubstance { string ReactiveSubstance(); void React(); } c lass DietPepsi : IReactiveSubstance { public string ReactiveSubstance() { return "Natural Flavors"; } public void React() { throw new NotImplementedException(); } }
  • 36. class Bottle { private IReactiveSubstance _Liquid; private IReactiveSubstance _ObjectThatDoesntBelongHere; public Bottle( IReactiveSubstance liquid, IReactiveSubstance candy) { _Liquid = liquid; _ObjectThatDoesntBelongHere = candy; } public string Combine() { _Liquid.React(); _ObjectThatDoesntBelongHere.React(); return _Liquid.ReactiveSubstance() + _ObjectThatDoesntBelongHere.ReactiveSubstance(); } } Consumer developer’s code implementing and manipulating a n d m a n i p u l a t i n g both objects
  • 37. Abstraction The point is, any object that “implements” the IInterface interface must implement the React() method. Disciplined development More importantly; if we know/design how objects will communicate with one another, they can be developed at the same time!
  • 38. Abstraction Quiz! Abstraction is more about writing queries and code than describing how objects will communicate with one another? True False An “interface contract” is an agreement of what method signatures will be used to read data or invoke functionality. True False
  • 39. Inheritance Associating common behaviors to like objects
  • 40. Inheritance Groups of objects that logically have behaviors in common Broken down into generalization (ancestor) and specialization (descendant)
  • 41. Inheritance Behaviors: React ReactiveSubstance Behaviors: React ReactiveSubstance Behaviors: React ReactiveSubstance Common behaviors: React ReactiveSubstance
  • 42. Polymorphism Modifying ancestor behavior, one method at a time
  • 43. Polymorphism Used in conjunction with Inheritance Uses an ancestor’s method (signature) and alters behavior Called “Overriding” Can use some or none of the ancestor’s behavior, or control when the ancestor’s behavior is called.
  • 44. Polymorphism Implement React & ReactiveSubstance differently Behaviors: React ReactiveSubstance
  • 45. Inheritance and Polymorphism Pop Quiz! Inheritance is consolidating common functionality in an “ancestor” class that “descendant” classes get “for free”. True False Polymorphism is all about extending or replacing ancestor functionality in a descendant class. True False
  • 47. Basic object concepts Encapsulation Division of information, information hiding, controlling access Abstraction Specifying what needs to be communicated, leaving the details for later Inheritance Organizing like concepts into a hierarchy Polymorphism Modifying inherited behaviors