SlideShare ist ein Scribd-Unternehmen logo
1 von 25
B Y : I S A A C C A R T E R
Object-Oriented Analysis and
Design
WHAT HAVE I BEEN UP TOO?
• Started a Raspberry Pi Meetup for DC
• Currently working on a location
• Work at 5AM never ends
• Started up a book club here at 5AM
• Beginning to do development on Linux Mint
• You will learn a ton when you work on an open source
project
• I been doing some podcasting
DIFFERENT KIND OF JUG
• Not much code at all
• Going to be asking you guys a lot of questions.
• There is no right or wrong answer
• Provides us a chance to learn from each other.
• Which is why we are here
DESIGN PATTERNS AND ME
• I’ve reached that point where I think more about
the design of the project
• Many books written about OO programming and
design
• We are going to cover one tonight
Source of the talk
• Object-Oriented Analysis and Design With
Applications (3rd Edition)
HOW THE BOOK IS BROKEN DOWN
• Section 1 - Concepts
• Chapter 1: Complexity
• Chapter 2: The Object Model
• Chapter 3: Classes and Objects
• Chapter 4: Classification
• Section 2 - Method
• Chapter 5: Notation
• Chapter 6: Process
• Chapter 7: Pragmatics
• Section 3 - Applications
• Chapter 8 – 12
QUESTION?
• When you think about OOAD, what are some things
that come to mind?
Chapter 1: Complexity
• Software is inherently complex
• The complexity of software often exceeds the brain’s
capacity
• Our job as a software engineer is to create the
illusion of simplicity
• Complex systems can be viewed by focusing on
either things or processes
QUESTION?
• What does good code look like?
• I can tell you what bad code is in small chunks, but
as an entire project as a whole or a system….how
can you tell what’s good and what’s bad?
CHAPTER 2: THE OBJECT MODEL
• Encompasses the principles of OO programming
• Encapsulation, Abstraction, Modularity, Hierarchy, Typing,
Concurrency, and Persistence
• Modularity is the property of a system that has
decomposed into a set of cohesive and loosely
coupled modules
• Typing is the enforcement of the class of an object
QUESTION?
• Are getters/setters evil?
THINK ABOUT THIS…
Dog dog = new Dog();
Ball ball = dog.getBall();
V/S
Dog dog = new Dog();
dog.take(new Ball());
Ball ball = dog.give();
CHAPTER 3: CLASSES AND OBJECTS
• What is and What isn’t an object?
• Relationships are important among classes
• Multiplicity
• One-to-one, Many-to-many
• Inheritance
• Multiple Inheritance
• Role of Classes and Objects in Analysis and Design
• Identify the classes that form the vocab of the domain
• Create the structures for sets of objects to work together to
satisfy the requirements of the problem
QUESTION?
• Should every class have an interface?
CHAPTER 4: CLASSIFICATION
• How a class or object is named a fundamental issue
in OOAD
• This is how we discover what an object can do
QUESTION
• What’s some of issues that we run into when naming
an object or method?
• I constantly run into “writer’s block” when naming
something, how can I get around that problem?
CHAPTER 5: NOTATION
• UML Diagrams
• Broken down into two sections
• Structure Diagrams
• Behavior Diagrams
• Can also include Interaction Diagrams
• Many kinds of diagrams
• I have used…
• Package Diagram
• Use Case Diagram
• Sequence Diagram
• Activity Diagram
• Used them to help create a SAD for a project
QUESTION?
• Does anyone use UML diagrams in their daily work?
• Does anyone feel that UML diagrams are pointless?
CHAPTER 6: PROCESS
• Talked about how to create a solid development
process
• We have steps in place here at 5AM.
• Prior to development
• During development
• Post-development
CHAPTER 7: PRAGMATICS
• Planning
• We live and breath Scrum here at 5AM
• Tools
• Jenkins helps us create solid OO code
QUESTION
• What are some of the benefits of OO
development?
• What are some of the risks of OO development?
CHAPTERS 8 -12
• Each chapter sets the stage for a different scenario
and walks through the first 7 chapters on how to
implement each chapter
• Satellite-based Navigation system
• Traffic management system
• AI / Cryptanalysis system
• Weather monitoring station
• Vacation tracking system
IMHO OF THE BOOK
• Not really the best book over OOAD
• Five chapters dedicated to applying it, which made
them extremely hard to read
• Two chapters covering applying agile to OO
thinking
• I would still recommend reading it since there’s
nothing wrong with gaining more knowledge
SUMMARY
• Design, by nature, is a series of trade-offs
• Every choice has a good side and a bad side
• Make “informed” OO choices by the context of the
overall criteria, not because “of blind
programming”
SOURCES
• http://www.javaworld.com/article/2073723/core-
java/why-getter-and-setter-methods-are-
evil.html?page=2
• http://blog.shaunfinglas.co.uk/2015/04/getters-and-
setters-are-evil-redux.html
• http://www.amazon.com/Object-Oriented-
Analysis-Design-Applications-
3rd/dp/020189551X/ref=sr_1_2?s=books&ie=UTF8&qi
d=1434425605&sr=1-
2&keywords=object+oriented+analysis+and+design

Weitere ähnliche Inhalte

Was ist angesagt?

Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignHaitham El-Ghareeb
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overviewrmk_rrj
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and DesignAnirban Majumdar
 
Lecture 4-oop class diagram
Lecture 4-oop class diagramLecture 4-oop class diagram
Lecture 4-oop class diagramktuonlinenotes
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)Manoj Reddy
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
CS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT ICS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT Ipkaviya
 
Importance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningImportance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningABHISHEK KUMAR
 
Object Oriented Analysis & Design
Object Oriented Analysis & DesignObject Oriented Analysis & Design
Object Oriented Analysis & Designvishykn
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbolsKumar
 

Was ist angesagt? (20)

Ooad
OoadOoad
Ooad
 
Object oriented analysis and design unit- iv
Object oriented analysis and design unit- ivObject oriented analysis and design unit- iv
Object oriented analysis and design unit- iv
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Ooad overview
Ooad overviewOoad overview
Ooad overview
 
CS8592-OOAD Lecture Notes Unit-5
CS8592-OOAD Lecture Notes Unit-5 CS8592-OOAD Lecture Notes Unit-5
CS8592-OOAD Lecture Notes Unit-5
 
Ooad ch 1_2
Ooad ch 1_2Ooad ch 1_2
Ooad ch 1_2
 
Object oriented analysis & Design- Overview
Object oriented analysis & Design- OverviewObject oriented analysis & Design- Overview
Object oriented analysis & Design- Overview
 
Object Oriented Analysis and Design
Object Oriented Analysis and DesignObject Oriented Analysis and Design
Object Oriented Analysis and Design
 
Object oriented analysis and design unit- i
Object oriented analysis and design unit- iObject oriented analysis and design unit- i
Object oriented analysis and design unit- i
 
Oomd unit1
Oomd unit1Oomd unit1
Oomd unit1
 
OOAD chapter 1
OOAD chapter 1 OOAD chapter 1
OOAD chapter 1
 
modeling concepts
modeling conceptsmodeling concepts
modeling concepts
 
Lecture 4-oop class diagram
Lecture 4-oop class diagramLecture 4-oop class diagram
Lecture 4-oop class diagram
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
Ooad
OoadOoad
Ooad
 
CS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT ICS8592 Object Oriented Analysis & Design - UNIT I
CS8592 Object Oriented Analysis & Design - UNIT I
 
Importance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML DesigningImportance & Principles of Modeling from UML Designing
Importance & Principles of Modeling from UML Designing
 
Object Oriented Analysis & Design
Object Oriented Analysis & DesignObject Oriented Analysis & Design
Object Oriented Analysis & Design
 
UML diagrams and symbols
UML diagrams and symbolsUML diagrams and symbols
UML diagrams and symbols
 

Andere mochten auch

Tugas2 0317 [lingga eka pradipta]-[1411501073]
Tugas2 0317 [lingga eka pradipta]-[1411501073]Tugas2 0317 [lingga eka pradipta]-[1411501073]
Tugas2 0317 [lingga eka pradipta]-[1411501073]LinggaDipta
 
Presentasi pertemuan 1 (rpl)
Presentasi pertemuan 1 (rpl)Presentasi pertemuan 1 (rpl)
Presentasi pertemuan 1 (rpl)Nm Aditya Danger
 
OOAD AND UML-TRAINING WORKSHOP
OOAD AND UML-TRAINING WORKSHOPOOAD AND UML-TRAINING WORKSHOP
OOAD AND UML-TRAINING WORKSHOPAmit Midha
 
manajemen Proyek perangkat Lunak
manajemen Proyek perangkat Lunakmanajemen Proyek perangkat Lunak
manajemen Proyek perangkat LunakAwank Miclww
 
03 ooad uml-03
03 ooad uml-0303 ooad uml-03
03 ooad uml-03Niit Care
 
Protype model (rekayasa perangkat lunak)
Protype model (rekayasa perangkat lunak)Protype model (rekayasa perangkat lunak)
Protype model (rekayasa perangkat lunak)priyadiajabae
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternNishith Shukla
 
Eco-nomics, The hidden costs of consumption
Eco-nomics, The hidden costs of consumptionEco-nomics, The hidden costs of consumption
Eco-nomics, The hidden costs of consumptionJosh Beatty
 
Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.Velocity Partners
 
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersWhat Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersHubSpot
 
The Search for Meaning in B2B Marketing
The Search for Meaning in B2B MarketingThe Search for Meaning in B2B Marketing
The Search for Meaning in B2B MarketingVelocity Partners
 

Andere mochten auch (18)

Tugas2 0317 [lingga eka pradipta]-[1411501073]
Tugas2 0317 [lingga eka pradipta]-[1411501073]Tugas2 0317 [lingga eka pradipta]-[1411501073]
Tugas2 0317 [lingga eka pradipta]-[1411501073]
 
Presentasi pertemuan 1 (rpl)
Presentasi pertemuan 1 (rpl)Presentasi pertemuan 1 (rpl)
Presentasi pertemuan 1 (rpl)
 
OOAD AND UML-TRAINING WORKSHOP
OOAD AND UML-TRAINING WORKSHOPOOAD AND UML-TRAINING WORKSHOP
OOAD AND UML-TRAINING WORKSHOP
 
Ragam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat LunakRagam Model Proses Perangkat Lunak
Ragam Model Proses Perangkat Lunak
 
manajemen Proyek perangkat Lunak
manajemen Proyek perangkat Lunakmanajemen Proyek perangkat Lunak
manajemen Proyek perangkat Lunak
 
Manajemen Sumber Daya IT
Manajemen Sumber Daya ITManajemen Sumber Daya IT
Manajemen Sumber Daya IT
 
Rpl presentasi
Rpl presentasiRpl presentasi
Rpl presentasi
 
Konsep Rekayasa Perangakat Lunak
Konsep Rekayasa Perangakat LunakKonsep Rekayasa Perangakat Lunak
Konsep Rekayasa Perangakat Lunak
 
03 ooad uml-03
03 ooad uml-0303 ooad uml-03
03 ooad uml-03
 
Protype model (rekayasa perangkat lunak)
Protype model (rekayasa perangkat lunak)Protype model (rekayasa perangkat lunak)
Protype model (rekayasa perangkat lunak)
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design Pattern
 
2015 Travel Trends
2015 Travel Trends 2015 Travel Trends
2015 Travel Trends
 
Eco-nomics, The hidden costs of consumption
Eco-nomics, The hidden costs of consumptionEco-nomics, The hidden costs of consumption
Eco-nomics, The hidden costs of consumption
 
You Suck At PowerPoint! by @jessedee
You Suck At PowerPoint! by @jessedeeYou Suck At PowerPoint! by @jessedee
You Suck At PowerPoint! by @jessedee
 
Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.Crap. The Content Marketing Deluge.
Crap. The Content Marketing Deluge.
 
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersWhat Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
 
How Google Works
How Google WorksHow Google Works
How Google Works
 
The Search for Meaning in B2B Marketing
The Search for Meaning in B2B MarketingThe Search for Meaning in B2B Marketing
The Search for Meaning in B2B Marketing
 

Ähnlich wie OO design slide

Clean code presentation
Clean code presentationClean code presentation
Clean code presentationBhavin Gandhi
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.pptNelsonYanes6
 
Experiences and Creative Process (Semih Energin Technology Stream)
Experiences and Creative Process (Semih Energin Technology Stream)Experiences and Creative Process (Semih Energin Technology Stream)
Experiences and Creative Process (Semih Energin Technology Stream)IT Arena
 
CPP16 - Object Design
CPP16 - Object DesignCPP16 - Object Design
CPP16 - Object DesignMichael Heron
 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In BetweenEoin Woods
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Derek Jacoby
 
20230608_creating_magical_moments_ddd_europe.pdf
20230608_creating_magical_moments_ddd_europe.pdf20230608_creating_magical_moments_ddd_europe.pdf
20230608_creating_magical_moments_ddd_europe.pdfMartin Günther
 
2CPP01 - Intro to Module
2CPP01 - Intro to Module2CPP01 - Intro to Module
2CPP01 - Intro to ModuleMichael Heron
 
Real life forms to adf
Real life forms to adfReal life forms to adf
Real life forms to adfLuc Bors
 
Workplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing ConferenceWorkplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing ConferenceCengage Learning
 

Ähnlich wie OO design slide (20)

Objectify Your Code
Objectify Your CodeObjectify Your Code
Objectify Your Code
 
Clean code presentation
Clean code presentationClean code presentation
Clean code presentation
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
 
CEN6016-Chapter1.ppt
CEN6016-Chapter1.pptCEN6016-Chapter1.ppt
CEN6016-Chapter1.ppt
 
Experiences and Creative Process (Semih Energin Technology Stream)
Experiences and Creative Process (Semih Energin Technology Stream)Experiences and Creative Process (Semih Energin Technology Stream)
Experiences and Creative Process (Semih Energin Technology Stream)
 
CPP16 - Object Design
CPP16 - Object DesignCPP16 - Object Design
CPP16 - Object Design
 
5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt5-CEN6016-Chapter1.ppt
5-CEN6016-Chapter1.ppt
 
Models, Sketches and Everything In Between
Models, Sketches and Everything In BetweenModels, Sketches and Everything In Between
Models, Sketches and Everything In Between
 
Untangling - fall2017 - week 7
Untangling - fall2017 - week 7Untangling - fall2017 - week 7
Untangling - fall2017 - week 7
 
How To Write a Testable Code
How To Write a Testable CodeHow To Write a Testable Code
How To Write a Testable Code
 
20230608_creating_magical_moments_ddd_europe.pdf
20230608_creating_magical_moments_ddd_europe.pdf20230608_creating_magical_moments_ddd_europe.pdf
20230608_creating_magical_moments_ddd_europe.pdf
 
2CPP01 - Intro to Module
2CPP01 - Intro to Module2CPP01 - Intro to Module
2CPP01 - Intro to Module
 
Software development fundamentals
Software development fundamentalsSoftware development fundamentals
Software development fundamentals
 
It's XP, Stupid
It's XP, StupidIt's XP, Stupid
It's XP, Stupid
 
Clean Code Talk (draft)
Clean Code Talk (draft)Clean Code Talk (draft)
Clean Code Talk (draft)
 
Real life forms to adf
Real life forms to adfReal life forms to adf
Real life forms to adf
 
Real life forms to adf
Real life forms to adfReal life forms to adf
Real life forms to adf
 
Autonomous Frontend Team
Autonomous Frontend TeamAutonomous Frontend Team
Autonomous Frontend Team
 
Workplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing ConferenceWorkplace Simulated Courses - Course Technology Computing Conference
Workplace Simulated Courses - Course Technology Computing Conference
 
2CPP19 - Summation
2CPP19 - Summation2CPP19 - Summation
2CPP19 - Summation
 

Kürzlich hochgeladen

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 

Kürzlich hochgeladen (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 

OO design slide

  • 1. B Y : I S A A C C A R T E R Object-Oriented Analysis and Design
  • 2. WHAT HAVE I BEEN UP TOO? • Started a Raspberry Pi Meetup for DC • Currently working on a location • Work at 5AM never ends • Started up a book club here at 5AM • Beginning to do development on Linux Mint • You will learn a ton when you work on an open source project • I been doing some podcasting
  • 3. DIFFERENT KIND OF JUG • Not much code at all • Going to be asking you guys a lot of questions. • There is no right or wrong answer • Provides us a chance to learn from each other. • Which is why we are here
  • 4. DESIGN PATTERNS AND ME • I’ve reached that point where I think more about the design of the project • Many books written about OO programming and design • We are going to cover one tonight
  • 5. Source of the talk • Object-Oriented Analysis and Design With Applications (3rd Edition)
  • 6. HOW THE BOOK IS BROKEN DOWN • Section 1 - Concepts • Chapter 1: Complexity • Chapter 2: The Object Model • Chapter 3: Classes and Objects • Chapter 4: Classification • Section 2 - Method • Chapter 5: Notation • Chapter 6: Process • Chapter 7: Pragmatics • Section 3 - Applications • Chapter 8 – 12
  • 7. QUESTION? • When you think about OOAD, what are some things that come to mind?
  • 8. Chapter 1: Complexity • Software is inherently complex • The complexity of software often exceeds the brain’s capacity • Our job as a software engineer is to create the illusion of simplicity • Complex systems can be viewed by focusing on either things or processes
  • 9. QUESTION? • What does good code look like? • I can tell you what bad code is in small chunks, but as an entire project as a whole or a system….how can you tell what’s good and what’s bad?
  • 10. CHAPTER 2: THE OBJECT MODEL • Encompasses the principles of OO programming • Encapsulation, Abstraction, Modularity, Hierarchy, Typing, Concurrency, and Persistence • Modularity is the property of a system that has decomposed into a set of cohesive and loosely coupled modules • Typing is the enforcement of the class of an object
  • 12. THINK ABOUT THIS… Dog dog = new Dog(); Ball ball = dog.getBall(); V/S Dog dog = new Dog(); dog.take(new Ball()); Ball ball = dog.give();
  • 13. CHAPTER 3: CLASSES AND OBJECTS • What is and What isn’t an object? • Relationships are important among classes • Multiplicity • One-to-one, Many-to-many • Inheritance • Multiple Inheritance • Role of Classes and Objects in Analysis and Design • Identify the classes that form the vocab of the domain • Create the structures for sets of objects to work together to satisfy the requirements of the problem
  • 14. QUESTION? • Should every class have an interface?
  • 15. CHAPTER 4: CLASSIFICATION • How a class or object is named a fundamental issue in OOAD • This is how we discover what an object can do
  • 16. QUESTION • What’s some of issues that we run into when naming an object or method? • I constantly run into “writer’s block” when naming something, how can I get around that problem?
  • 17. CHAPTER 5: NOTATION • UML Diagrams • Broken down into two sections • Structure Diagrams • Behavior Diagrams • Can also include Interaction Diagrams • Many kinds of diagrams • I have used… • Package Diagram • Use Case Diagram • Sequence Diagram • Activity Diagram • Used them to help create a SAD for a project
  • 18. QUESTION? • Does anyone use UML diagrams in their daily work? • Does anyone feel that UML diagrams are pointless?
  • 19. CHAPTER 6: PROCESS • Talked about how to create a solid development process • We have steps in place here at 5AM. • Prior to development • During development • Post-development
  • 20. CHAPTER 7: PRAGMATICS • Planning • We live and breath Scrum here at 5AM • Tools • Jenkins helps us create solid OO code
  • 21. QUESTION • What are some of the benefits of OO development? • What are some of the risks of OO development?
  • 22. CHAPTERS 8 -12 • Each chapter sets the stage for a different scenario and walks through the first 7 chapters on how to implement each chapter • Satellite-based Navigation system • Traffic management system • AI / Cryptanalysis system • Weather monitoring station • Vacation tracking system
  • 23. IMHO OF THE BOOK • Not really the best book over OOAD • Five chapters dedicated to applying it, which made them extremely hard to read • Two chapters covering applying agile to OO thinking • I would still recommend reading it since there’s nothing wrong with gaining more knowledge
  • 24. SUMMARY • Design, by nature, is a series of trade-offs • Every choice has a good side and a bad side • Make “informed” OO choices by the context of the overall criteria, not because “of blind programming”
  • 25. SOURCES • http://www.javaworld.com/article/2073723/core- java/why-getter-and-setter-methods-are- evil.html?page=2 • http://blog.shaunfinglas.co.uk/2015/04/getters-and- setters-are-evil-redux.html • http://www.amazon.com/Object-Oriented- Analysis-Design-Applications- 3rd/dp/020189551X/ref=sr_1_2?s=books&ie=UTF8&qi d=1434425605&sr=1- 2&keywords=object+oriented+analysis+and+design