SlideShare a Scribd company logo
1 of 36
Download to read offline
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

More Related Content

What's hot

DevOps Picc12 Management Talk
DevOps Picc12 Management TalkDevOps Picc12 Management Talk
DevOps Picc12 Management TalkMichael Rembetsy
 
London Atlassian User Group - February 2014
London Atlassian User Group - February 2014London Atlassian User Group - February 2014
London Atlassian User Group - February 2014Steve Smith
 
DevOps Patterns - Team Topologies
DevOps Patterns -  Team TopologiesDevOps Patterns -  Team Topologies
DevOps Patterns - Team TopologiesMatthew Skelton
 
The DevOps First Amendment
The DevOps First AmendmentThe DevOps First Amendment
The DevOps First AmendmentFawzy Manaa
 
Introduction to devops 2016
Introduction to devops 2016Introduction to devops 2016
Introduction to devops 2016gjdevos
 
DevOps 2016 summit
DevOps 2016 summitDevOps 2016 summit
DevOps 2016 summitChihyang Li
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsJulien Pivotto
 
DevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsDevOps - Understanding Core Concepts
DevOps - Understanding Core ConceptsNitin Bhide
 
Fundamental Concepts of DevOps
Fundamental Concepts of DevOpsFundamental Concepts of DevOps
Fundamental Concepts of DevOpsKiril Serebnik
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Liran Levy
 
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 2015Angela Dugan
 
TAD DevOps presentation 2013
TAD DevOps presentation 2013TAD DevOps presentation 2013
TAD DevOps presentation 2013Erno Aapa
 
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 2016Geshan Manandhar
 
Continuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployContinuous Delivery with TFS msbuild msdeploy
Continuous Delivery with TFS msbuild msdeployPeter Gfader
 
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 StyleMark Andersen
 
Mark Andersen DFW DevOps Days 2017
Mark Andersen DFW DevOps Days 2017Mark Andersen DFW DevOps Days 2017
Mark Andersen DFW DevOps Days 2017Mark Andersen
 
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 ChatOpsOutlyer
 

What's hot (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
 

Similar to 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
 
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 ProjectJeff Carr
 
[2020] week06 b enterprise systems - ver01
[2020] week06 b   enterprise systems - ver01[2020] week06 b   enterprise systems - ver01
[2020] week06 b enterprise systems - ver01Anisah Herdiyanti
 
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 mindChris Johnson
 
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 2016hdicapitalarea
 
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 ProviderDatadog
 
Data Modelling at Scale
Data Modelling at ScaleData Modelling at Scale
Data Modelling at ScaleDavid Simons
 
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 automateJeff Thomas
 
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 HodgesAmbientia
 
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]New Relic
 
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 WorkspaceXeniT Solutions nv
 
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 dotsRonald 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 DotsRonald Ashri
 
Thavron maturing to consumption based models
Thavron maturing to consumption based modelsThavron maturing to consumption based models
Thavron maturing to consumption based modelsThavron Solutions
 

Similar to 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
 

Recently uploaded

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
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 WorkerThousandEyes
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 

Recently uploaded (20)

Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

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