SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Introduction to “Software Design Sutra”
A Step-by-Step approach to Good Software Design
Architecture Actual Code
Which is better?
4
S o f t w a r e D e s i g n S u t r a
Z E R O
Good Design makes Future
Changes Easier
5
• B. Tech Mechanical Engineering [1985] from IIT Madras
• Shoper [2011] – Enterprise Retail – Product Owner in Tally (Prod. Mgr. + Engg.
Mgr. + Lead Architect + Test Mgr. + L3 Support Manager)
• Hamsa [2004] – Mail Management – Launched (acquired)
• Plasma [2003] – Enterprise Task Management – ditto
• GoGet [2001] – Customer Management – ditto
• Papyrus [1995] – A Document Manager – Launched
• Konan The Kontroller [1992] – An ERP before people were excited about
ERP’s – Never Launched
Who the heck is this balding guy talking to us?
Wait!
6
Let’s Look at Code
A simple assignment
• Create a system that records attendance of an employee.
• When employee enters the office, his face gets scanned automatically.
• When employee exits the office, his face gets scanned automatically.
• Time spent in office has to be more than 7 hours for an employee to
be considered present. If at least 4 hours it is considered half day
• For people who are above grade 3 there is no minimum requirement
of number of hours to be spent.
• For people who are above grade 5 there is no attendance tracking at
all.
• For people from sales department the first scan and the last scan has
to be more than 7 hours (no minimum time spent in office) and 4
hours for half day.
S o f t w a r e D e s i g n S u t r a
O N E
Create Abstractions by Writing
Sentences and Write Code that
reflects the sentences
Sentences
• Update attendance information for employees for working days
• Get Employee Information
• Get Working dates
• Update attendance Information
• Get Scan Information for the date and update Employee Attendance
• Get Scan Information
• Update Employee Attendance
• Calculate attendance based on employee type
• Update attendance information for employees for working days
• Get Employee Information
• Get Working dates
• Update attendance Information
Write Code that reflects the sentences
• Get Scan Information for the date and update Employee Attendance
• Get Scan Information
• Update Employee Attendance
• Calculate attendance based on employee type
Write Code that reflects the sentences
The sooner you start
to code, the longer the
program will take.
Roy Carlson
S o f t w a r e D e s i g n S u t r a
T W O
Gather control flow decisions
based on the requirements into
TRANSLATORS
S o f t w a r e D e s i g n S u t r a
T H R E E
Gather control flow decisions
based on the solution into
COORDINATORS
S o f t w a r e D e s i g n S u t r a
F O U R
Gather processing /
transormation / calculation into
SERVICE PROVIDERS
S o f t w a r e D e s i g n S u t r a
F I V E
Prefer
Referentially Transparent (RT)
over Referentially Opaque (RO)
S o f t w a r e D e s i g n S u t r a
S I X
Seperate RT and RO -
TRANSLATORS,
COORDINATORS, SERVICE
PROVIDERS
S o f t w a r e D e s i g n S u t r a
S E V E N
Use INPUT INTERFACERS to
retrieve information from
external systems
S o f t w a r e D e s i g n S u t r a
E I G H T
Use DATA HOLDERS to pass
information between parts of the
system
S o f t w a r e D e s i g n S u t r a
N I N E
Use STATE HOLDERS that only
interact with TRANSLATORS to
eliminate globals
S o f t w a r e D e s i g n S u t r a
T E N
Use ITERATORS to walk over
items in a collection
S o f t w a r e D e s i g n S u t r a
E L E V E N
All Units Do One and Only One
Thing OOOT
S o f t w a r e D e s i g n S u t r a
T W E L V E
Every Entity must be True To its
NAME
Recommended Reading
Object Design
by Rebecca Wirfs-Brock and Alan McKean
DesignPatterns Explained
by Alan Shalloway and James R. Trott
The Pragmatic Programmer
by Andrew Hunt and David Thomas
Did you find that interesting, may I
request for some assistance in return?
I need
help
with a
survey
36
Mail to: gk@sameeksha.biz
Subject: Survey
Thanks Prowareness and
Anand for this opportunity

Contenu connexe

Tendances

Fundamental Concepts of DevOps
Fundamental Concepts of DevOpsFundamental Concepts of DevOps
Fundamental Concepts of DevOps
Kiril Serebnik
 

Tendances (20)

Demystifying DevOps
Demystifying DevOpsDemystifying DevOps
Demystifying DevOps
 
DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management Talk
 
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014London Atlassian User Group - February 2014
London Atlassian User Group - February 2014
 
DevOps: Hype or Hope
DevOps: Hype or HopeDevOps: Hype or Hope
DevOps: Hype or Hope
 
DevOps Patterns - Team Topologies
DevOps Patterns -  Team TopologiesDevOps Patterns -  Team Topologies
DevOps Patterns - Team Topologies
 
The DevOps First Amendment
The DevOps First AmendmentThe DevOps First Amendment
The DevOps First Amendment
 
Introduction to devops 2016
Introduction to devops 2016Introduction to devops 2016
Introduction to devops 2016
 
DevOps 2016 summit
DevOps 2016 summitDevOps 2016 summit
DevOps 2016 summit
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core Concepts
 
Fundamental Concepts of DevOps
Fundamental Concepts of DevOpsFundamental Concepts of DevOps
Fundamental Concepts of DevOps
 
Devops
DevopsDevops
Devops
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
LCNUG 2015 - what's new for agile teams in TFS 2015
LCNUG 2015 -  what's new for agile teams in TFS 2015LCNUG 2015 -  what's new for agile teams in TFS 2015
LCNUG 2015 - what's new for agile teams in TFS 2015
 
TAD DevOps presentation 2013
TAD DevOps presentation 2013TAD DevOps presentation 2013
TAD DevOps presentation 2013
 
Embrace chatops, stop installing deployment software - Laracon EU 2016
Embrace chatops, stop installing deployment software - Laracon EU 2016Embrace chatops, stop installing deployment software - Laracon EU 2016
Embrace chatops, stop installing deployment software - Laracon EU 2016
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeploy
 
Cloud Academy Webinar: Recipe for DevOps Success: Capital One Style
Cloud Academy Webinar: Recipe for DevOps Success: Capital One StyleCloud Academy Webinar: Recipe for DevOps Success: Capital One Style
Cloud Academy Webinar: Recipe for DevOps Success: Capital One Style
 
Mark Andersen DFW DevOps Days 2017
Mark Andersen DFW DevOps Days 2017Mark Andersen DFW DevOps Days 2017
Mark Andersen DFW DevOps Days 2017
 
Charlie de Courcy (Rackspace) - Deploying applications through ChatOps
Charlie de Courcy (Rackspace) - Deploying applications through ChatOpsCharlie de Courcy (Rackspace) - Deploying applications through ChatOps
Charlie de Courcy (Rackspace) - Deploying applications through ChatOps
 

Similaire à Introduction to Software Design Sutra

Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...
Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...
Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...
Lucidworks
 
SharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindSharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mind
Chris Johnson
 
From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
Ronald Ashri
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
Ronald Ashri
 

Similaire à Introduction to Software Design Sutra (20)

Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...
Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...
Search Accuracy Metrics and Predictive Analytics - A Big Data Use Case: Prese...
 
5 Steps to Getting Organizational Buy-In for Your Enterprise Software Project
5 Steps to Getting Organizational Buy-In for Your Enterprise Software Project5 Steps to Getting Organizational Buy-In for Your Enterprise Software Project
5 Steps to Getting Organizational Buy-In for Your Enterprise Software Project
 
[2020] week07 a tps - ver01
[2020] week07 a   tps - ver01[2020] week07 a   tps - ver01
[2020] week07 a tps - ver01
 
[2020] week06 b enterprise systems - ver01
[2020] week06 b   enterprise systems - ver01[2020] week06 b   enterprise systems - ver01
[2020] week06 b enterprise systems - ver01
 
SharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mindSharePoint Saturday Redmond - Building solutions with the future in mind
SharePoint Saturday Redmond - Building solutions with the future in mind
 
HDI Capital Area Meeting Slides August, 19 2016
HDI Capital Area Meeting Slides August, 19 2016HDI Capital Area Meeting Slides August, 19 2016
HDI Capital Area Meeting Slides August, 19 2016
 
Company and Product Profile - Talentnow RecruitX
Company and Product Profile - Talentnow RecruitXCompany and Product Profile - Talentnow RecruitX
Company and Product Profile - Talentnow RecruitX
 
What it Means to be a Next-Generation Managed Service Provider
What it Means to be a Next-Generation Managed Service ProviderWhat it Means to be a Next-Generation Managed Service Provider
What it Means to be a Next-Generation Managed Service Provider
 
Data Modelling at Scale
Data Modelling at ScaleData Modelling at Scale
Data Modelling at Scale
 
Document Control in FDA Regulated Environments - When and how to automate
Document Control in FDA Regulated Environments - When and how to automateDocument Control in FDA Regulated Environments - When and how to automate
Document Control in FDA Regulated Environments - When and how to automate
 
Atlassian collaboration state of the union - Matt Hodges
Atlassian collaboration state of the union - Matt HodgesAtlassian collaboration state of the union - Matt Hodges
Atlassian collaboration state of the union - Matt Hodges
 
SAP ERP: Introduction
SAP ERP: IntroductionSAP ERP: Introduction
SAP ERP: Introduction
 
Creating Modern Metadata Systems with New Relic, Dow Jones [FutureStack16]
Creating Modern Metadata Systems with New Relic, Dow Jones [FutureStack16]Creating Modern Metadata Systems with New Relic, Dow Jones [FutureStack16]
Creating Modern Metadata Systems with New Relic, Dow Jones [FutureStack16]
 
Deployments in one click!
Deployments in one click!Deployments in one click!
Deployments in one click!
 
How to Scale Information Dissemination to the Virtual Digital Workspace
How to Scale Information Dissemination to the Virtual Digital WorkspaceHow to Scale Information Dissemination to the Virtual Digital Workspace
How to Scale Information Dissemination to the Virtual Digital Workspace
 
Metrics for aglie teams
Metrics for aglie teamsMetrics for aglie teams
Metrics for aglie teams
 
From Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dotsFrom Content Strategy to Drupal Site Building - Connecting the dots
From Content Strategy to Drupal Site Building - Connecting the dots
 
From Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the DotsFrom Content Strategy to Drupal Site Building - Connecting the Dots
From Content Strategy to Drupal Site Building - Connecting the Dots
 
Single Sign On Considerations
Single Sign On ConsiderationsSingle Sign On Considerations
Single Sign On Considerations
 
Thavron maturing to consumption based models
Thavron maturing to consumption based modelsThavron maturing to consumption based models
Thavron maturing to consumption based models
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Introduction to Software Design Sutra

  • 1. Introduction to “Software Design Sutra” A Step-by-Step approach to Good Software Design
  • 4. 4 S o f t w a r e D e s i g n S u t r a Z E R O Good Design makes Future Changes Easier
  • 5. 5 • B. Tech Mechanical Engineering [1985] from IIT Madras • Shoper [2011] – Enterprise Retail – Product Owner in Tally (Prod. Mgr. + Engg. Mgr. + Lead Architect + Test Mgr. + L3 Support Manager) • Hamsa [2004] – Mail Management – Launched (acquired) • Plasma [2003] – Enterprise Task Management – ditto • GoGet [2001] – Customer Management – ditto • Papyrus [1995] – A Document Manager – Launched • Konan The Kontroller [1992] – An ERP before people were excited about ERP’s – Never Launched Who the heck is this balding guy talking to us? Wait!
  • 7. A simple assignment • Create a system that records attendance of an employee. • When employee enters the office, his face gets scanned automatically. • When employee exits the office, his face gets scanned automatically. • Time spent in office has to be more than 7 hours for an employee to be considered present. If at least 4 hours it is considered half day • For people who are above grade 3 there is no minimum requirement of number of hours to be spent. • For people who are above grade 5 there is no attendance tracking at all. • For people from sales department the first scan and the last scan has to be more than 7 hours (no minimum time spent in office) and 4 hours for half day.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. S o f t w a r e D e s i g n S u t r a O N E Create Abstractions by Writing Sentences and Write Code that reflects the sentences
  • 15. Sentences • Update attendance information for employees for working days • Get Employee Information • Get Working dates • Update attendance Information • Get Scan Information for the date and update Employee Attendance • Get Scan Information • Update Employee Attendance • Calculate attendance based on employee type
  • 16. • Update attendance information for employees for working days • Get Employee Information • Get Working dates • Update attendance Information Write Code that reflects the sentences
  • 17. • Get Scan Information for the date and update Employee Attendance • Get Scan Information • Update Employee Attendance • Calculate attendance based on employee type Write Code that reflects the sentences
  • 18. The sooner you start to code, the longer the program will take. Roy Carlson
  • 19. S o f t w a r e D e s i g n S u t r a T W O Gather control flow decisions based on the requirements into TRANSLATORS
  • 20.
  • 21. S o f t w a r e D e s i g n S u t r a T H R E E Gather control flow decisions based on the solution into COORDINATORS
  • 22.
  • 23. S o f t w a r e D e s i g n S u t r a F O U R Gather processing / transormation / calculation into SERVICE PROVIDERS
  • 24.
  • 25. S o f t w a r e D e s i g n S u t r a F I V E Prefer Referentially Transparent (RT) over Referentially Opaque (RO)
  • 26. S o f t w a r e D e s i g n S u t r a S I X Seperate RT and RO - TRANSLATORS, COORDINATORS, SERVICE PROVIDERS
  • 27. S o f t w a r e D e s i g n S u t r a S E V E N Use INPUT INTERFACERS to retrieve information from external systems
  • 28. S o f t w a r e D e s i g n S u t r a E I G H T Use DATA HOLDERS to pass information between parts of the system
  • 29. S o f t w a r e D e s i g n S u t r a N I N E Use STATE HOLDERS that only interact with TRANSLATORS to eliminate globals
  • 30. S o f t w a r e D e s i g n S u t r a T E N Use ITERATORS to walk over items in a collection
  • 31. S o f t w a r e D e s i g n S u t r a E L E V E N All Units Do One and Only One Thing OOOT
  • 32. S o f t w a r e D e s i g n S u t r a T W E L V E Every Entity must be True To its NAME
  • 33. Recommended Reading Object Design by Rebecca Wirfs-Brock and Alan McKean DesignPatterns Explained by Alan Shalloway and James R. Trott The Pragmatic Programmer by Andrew Hunt and David Thomas
  • 34. Did you find that interesting, may I request for some assistance in return?
  • 36. 36 Mail to: gk@sameeksha.biz Subject: Survey Thanks Prowareness and Anand for this opportunity