SlideShare a Scribd company logo
Object-Oriented
Analysis and
Design
How do you write great
software every time?
Great software?
The software must do what the customer wants it to do
Ooad presentation
Make your code smart
Well-Designed
Well-Coded
Easy to mantain
Easy to reuse
Easy to extend
Great software satisfies
the customer and the
programmer
Programmers are satisfied when:
Their apps can be REUSED Their apps are FLEXIBLE
Customers are satisfied when:
Their apps WORK
Their apps KEEP
WORKING
Their apps can be
UPGRADED
Ok but… what shall the
software do?
Gathering requirements
Pay attention to what the system needs to
You can figure out how later
Requirement?
It’s a
specific thing
Your
system
has to do
to
work correctly
Usually a single
thing, and you
can test that
thing to make
sure you fullfilled
the requirement
The complete app
or project you are
working on
2 - so if you leave
out a requirement
or even if they
forget to mention
sth your system
isnt working
correctly
1 - The customer
decides when a
system works
correctly,
Your software has a
context
Develope
rs
viewpoint
(the
perfect
world)
Real
world
+ Analysis
=
Real world context
Textual analysis = nouns / verbsUse cases
Diagrams
Nothing ever stay the same
No matter how much you like your
Right now, it’s probably going to ch
Tomorrow…
Good design = flexible and resilien
Design principles
Techniques that can be applied for designing or writing code to
make that code more Mantainable, flexible or extensible
OCP
Open-closed princople
DRY
Don’t repeat yourself
SRP
Single responsibility
principle
Classes are open for extension
And closed for modification
Avoid duplicate code by abstracting
Things that are common
Every object in your project
should have a single responsabil
Open-closed principle
class Printer{
public final void print(Printable p){
…
}
}
class SquarePrinter extends Printer{
public void print(Square s){
…
}
}
OPEN = Extending functionality
ClOSED = NO OVERRIDES
Single responsibility principle
public class MobileCaller{
public void callMobile(MobileNo mobileNo){
...
}
}
public class ValidationService{
public static boolean validateMobileNumber(MobileNo mobileNo){
...
}
}
Responsibility #1: Call
Responsibility #2: validate number
DRY – Don’t repeat yourself
By Contract / Defensive programming
programming defensively
means you’re making sure the
client gets “safe” response, no
matter what the client
wants to have happen
Programming by contract
means you are working with a
client code to agree on how
you’ll handle problem situations
Defensive programming

More Related Content

PDF
Why programming is important
PPTX
CS519 - project idea presentation
PDF
Startup Roles — Engineering
PPT
Class 7 lecture notes
PPTX
Develop skills in functional and non functional testing
DOCX
Case study questionnaire
DOCX
Cis 170 ilab 2 of 7
PDF
Offshore tips sharing_2.0
Why programming is important
CS519 - project idea presentation
Startup Roles — Engineering
Class 7 lecture notes
Develop skills in functional and non functional testing
Case study questionnaire
Cis 170 ilab 2 of 7
Offshore tips sharing_2.0

What's hot (19)

PDF
Workshop on programming contest
PPTX
Session 3 : Competitive programming 1
PPTX
Competitive programming
PPT
An introduction to Competitive Programming
DOCX
Cis 170 i lab 2 of 7
PPTX
Tips for Sales in IT
PPT
Roadmap To Microsoft
PDF
Braam Letter of Recommendation
PPTX
Competitive Programming
PPS
Tog powerpoint slideshow
PPTX
How do i implement command design pattern in the java programming course with...
PPTX
Competitive Programming Guide
PPT
Outsourcing to Android App Developers
PDF
How to Make Each Round of Testing Count?
PPTX
Introduction to Competitive programming
PDF
Test Driven Development
PDF
Blue Prism Architect Training
PPTX
Technical writing helper
DOCX
Questions in software engineering
Workshop on programming contest
Session 3 : Competitive programming 1
Competitive programming
An introduction to Competitive Programming
Cis 170 i lab 2 of 7
Tips for Sales in IT
Roadmap To Microsoft
Braam Letter of Recommendation
Competitive Programming
Tog powerpoint slideshow
How do i implement command design pattern in the java programming course with...
Competitive Programming Guide
Outsourcing to Android App Developers
How to Make Each Round of Testing Count?
Introduction to Competitive programming
Test Driven Development
Blue Prism Architect Training
Technical writing helper
Questions in software engineering
Ad

Similar to Ooad presentation (20)

PPTX
Applied Programming and Design PrinciplesLecture 2.pptx
PDF
Are You a SOLID Coder?
PDF
S.O.L.I.D xp
PDF
Writing S.O.L.I.D Code
PPTX
Chapter 08
PPTX
Software Design
PPTX
Object Oriented Design SOLID Principles
PPTX
Clean code presentation
PPT
chapter 5 Objectdesign.ppt
PPT
OOSE Unit 4 PPT.ppt
PPT
The OO Design Principles
PDF
Clean code
PDF
Clean code-v2.2
PDF
Clean Code .Net Cheetsheets
PPTX
Software_Engineering_Presentation (1).pptx
PPT
Oose unit 4 ppt
PPTX
Clean Code (David Frame) - PHPBelfast Meetup 22/02/24
PPT
Design engineering
PPT
Design engineering
PPTX
Clean code
Applied Programming and Design PrinciplesLecture 2.pptx
Are You a SOLID Coder?
S.O.L.I.D xp
Writing S.O.L.I.D Code
Chapter 08
Software Design
Object Oriented Design SOLID Principles
Clean code presentation
chapter 5 Objectdesign.ppt
OOSE Unit 4 PPT.ppt
The OO Design Principles
Clean code
Clean code-v2.2
Clean Code .Net Cheetsheets
Software_Engineering_Presentation (1).pptx
Oose unit 4 ppt
Clean Code (David Frame) - PHPBelfast Meetup 22/02/24
Design engineering
Design engineering
Clean code
Ad

More from Joel Corrêa (8)

PDF
LXC outline
PDF
GraphQL
PDF
10 good reasons to invest your time in FP
PDF
Lift web framework
PDF
Real world Python+django
PDF
Zippers presentation
PPTX
Concurrent paradigms - Paralelism approaches
PDF
The pragmatic programmer
LXC outline
GraphQL
10 good reasons to invest your time in FP
Lift web framework
Real world Python+django
Zippers presentation
Concurrent paradigms - Paralelism approaches
The pragmatic programmer

Recently uploaded (20)

PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Approach and Philosophy of On baking technology
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPT
Teaching material agriculture food technology
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Empathic Computing: Creating Shared Understanding
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Cloud computing and distributed systems.
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
KodekX | Application Modernization Development
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Spectral efficient network and resource selection model in 5G networks
Review of recent advances in non-invasive hemoglobin estimation
Approach and Philosophy of On baking technology
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
“AI and Expert System Decision Support & Business Intelligence Systems”
20250228 LYD VKU AI Blended-Learning.pptx
Teaching material agriculture food technology
Unlocking AI with Model Context Protocol (MCP)
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Empathic Computing: Creating Shared Understanding
Per capita expenditure prediction using model stacking based on satellite ima...
Advanced methodologies resolving dimensionality complications for autism neur...
Cloud computing and distributed systems.
Understanding_Digital_Forensics_Presentation.pptx
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Network Security Unit 5.pdf for BCA BBA.
KodekX | Application Modernization Development
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

Ooad presentation