SlideShare a Scribd company logo
1 of 44
Soheil Karami
ABSTRACTION
AND
COST
CHANGE
Cost
An amount that has to be paid or
spent to buy or obtain something.
—Structured Design
“The goal of software design is to minimize
the cost of software and maximize the
value”
Cost
in software development
Cost Of Software
cost(change)
cost(software) ~=
—Manny Lehman
“E-Type program is software that
isn't ever done and changes, and
needs to change constantly. This
is because of it's specification and
requirements change constantly.”
Cost Of Software
cost(change)
cost(software) ~=
cost(change) ~= cost(big changes)
cost(big change)
Coupling
The degree of interdependence between software
modules; a measure of how closely connected two
routines or modules are; the strength of the
relationships between modules.
Cost Of Software
cost(change)
cost(software) ~=
cost(change) ~= cost(big changes)
cost(big change) ~= coupling
— Coupling
“Don't throw us away“
Abstraction
Abstraction, in the common natural language sense,
means to focus on the general and put aside the
specific. we abstract by emphasizing what is common
and deemphasizing details.
The Gang of 4 recommended that we design to interfaces,
which is another way of saying that relationships between
entities should be established at the abstract level.
—Some one
“Abstractions have run time,
compile time and human
costs“
—Sandi Metz
“Duplication is cheaper than
the wrong abstraction”
—Manny Lehman
“E-Type program is software that
isn't ever done and changes, and
needs to change constantly. This
is because of it's specification and
requirements change constantly.”
Chess
Eight Queens Puzzle
Lehman's laws
S-Programs E-Programs
Real-world activity
P-Programs
S P E
How do we use abstractions
safely?
A way can help you to find a
good Abstraction
Commonality
Variability
Analysis
Commonality Variability Analysis
a strong way to determine how a set of family members
might abstractly be considered the same, and then went
on to suggest that variability analysis could be performed
within the context of a given abstraction to determine how
they were different.
Commonality Analysis
Commonality analysis is the search for common elements
that helps us understand how family members are the
same.
Finding the domain is the first
step of
CVA
Variability Analysis
Variability analysis expresses what is not common
between a family members.
—Soheil Karami
“A Bounded Context and
Subdomain are indeed a form of
abstraction”
—James Coplien
“Grouping by commonality naturally leads to chunks
that are independent of each other because each
chunk has low commonality with the elements in
other chunks”
CVA
Supports Abstraction
01
02 Reduces Coupling
03 Reduces Maintenance Cost
Sales Inventory
Delivery
Accounting Payment
KetabKade
Inventory
Inventory
Inventory
Others
Sales
Sales
Book
AudioBook
Item
Book
AudioBook
Show PDF files
Sales Inventory
Delivery
Accounting Payment
KetabKade
Inventory
Inventory
Inventory
Others
Delivery
Epub PDF
Content
Variability
Positive
01
02 Negative
—Soheil Karami
“Don't use your implementation as an
abstraction“
Delivery
Content
PDF
epub
Showable
PDF
epub
Playable
Audio
List<T>
Variability
Changeable Parts
V
Commonality
Stable Parts
C
Strategy Design Pattern
Your last favor
Summary
The cost is our concern.
01
02 Wrong abstraction makes our life difficult.
03 Do CVA continually.
THANKS!

More Related Content

Similar to انتزاع و هزینه - انتزاع و تاثیرات آن در توسعه و نگهداری نرم‌افزار

Bloom plseminar-sp15
Bloom plseminar-sp15Bloom plseminar-sp15
Bloom plseminar-sp15
Joe Hellerstein
 
Data Samples & Data AnalysesNYU SCPSDataba
Data Samples & Data AnalysesNYU  SCPSDatabaData Samples & Data AnalysesNYU  SCPSDataba
Data Samples & Data AnalysesNYU SCPSDataba
OllieShoresna
 
Architecture and organization (Abstractions II version)
Architecture and organization (Abstractions II version)Architecture and organization (Abstractions II version)
Architecture and organization (Abstractions II version)
Kevin Goldsmith
 
Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...
Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...
Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...
ssuser65fa31
 

Similar to انتزاع و هزینه - انتزاع و تاثیرات آن در توسعه و نگهداری نرم‌افزار (20)

Bloom plseminar-sp15
Bloom plseminar-sp15Bloom plseminar-sp15
Bloom plseminar-sp15
 
Voice search lessons
Voice search lessonsVoice search lessons
Voice search lessons
 
Demo day
Demo dayDemo day
Demo day
 
Into the domain
Into the domainInto the domain
Into the domain
 
CASE tools and their effects on software quality
CASE tools and their effects on software qualityCASE tools and their effects on software quality
CASE tools and their effects on software quality
 
Marvin_Capstone
Marvin_CapstoneMarvin_Capstone
Marvin_Capstone
 
Data Samples & Data AnalysesNYU SCPSDataba
Data Samples & Data AnalysesNYU  SCPSDatabaData Samples & Data AnalysesNYU  SCPSDataba
Data Samples & Data AnalysesNYU SCPSDataba
 
All the cool kids....
All the cool kids....All the cool kids....
All the cool kids....
 
Poster2
Poster2Poster2
Poster2
 
Semantic Perspectives for Contemporary Question Answering Systems
Semantic Perspectives for Contemporary Question Answering SystemsSemantic Perspectives for Contemporary Question Answering Systems
Semantic Perspectives for Contemporary Question Answering Systems
 
Using construction grammar in conversational systems
Using construction grammar in conversational systemsUsing construction grammar in conversational systems
Using construction grammar in conversational systems
 
021114+sotfware+analysis,+a+roadmap.ppt
021114+sotfware+analysis,+a+roadmap.ppt021114+sotfware+analysis,+a+roadmap.ppt
021114+sotfware+analysis,+a+roadmap.ppt
 
DevOps Paradox: Going Faster Brings Higher Quality, Lower Costs, & Better Out...
DevOps Paradox: Going Faster Brings Higher Quality, Lower Costs, & Better Out...DevOps Paradox: Going Faster Brings Higher Quality, Lower Costs, & Better Out...
DevOps Paradox: Going Faster Brings Higher Quality, Lower Costs, & Better Out...
 
System Dynamics (Sd) &amp; Agent Based Modelling
System Dynamics (Sd) &amp; Agent Based ModellingSystem Dynamics (Sd) &amp; Agent Based Modelling
System Dynamics (Sd) &amp; Agent Based Modelling
 
introduction to machine learning and nlp
introduction to machine learning and nlpintroduction to machine learning and nlp
introduction to machine learning and nlp
 
New seven management tools
New seven management toolsNew seven management tools
New seven management tools
 
Architecture and organization (Abstractions II version)
Architecture and organization (Abstractions II version)Architecture and organization (Abstractions II version)
Architecture and organization (Abstractions II version)
 
13285737.ppt
13285737.ppt13285737.ppt
13285737.ppt
 
Patterns of Evolutionary Architecture
Patterns of Evolutionary ArchitecturePatterns of Evolutionary Architecture
Patterns of Evolutionary Architecture
 
Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...
Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...
Part 1.2 Understanding the relevance of your search with Elasticsearch and Ki...
 

Recently uploaded

JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
Max Lee
 

Recently uploaded (20)

A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
Tree in the Forest - Managing Details in BDD Scenarios (live2test 2024)
 
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdfImplementing KPIs and Right Metrics for Agile Delivery Teams.pdf
Implementing KPIs and Right Metrics for Agile Delivery Teams.pdf
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Designing for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web ServicesDesigning for Privacy in Amazon Web Services
Designing for Privacy in Amazon Web Services
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Breaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdfBreaking the Code : A Guide to WhatsApp Business API.pdf
Breaking the Code : A Guide to WhatsApp Business API.pdf
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 

انتزاع و هزینه - انتزاع و تاثیرات آن در توسعه و نگهداری نرم‌افزار