Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 (Pr...
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 ...
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 sent...
Sentences
• Update attendance information for employees for working days
• Get Employee Information
• Get Working dates
• ...
• Update attendance information for employees for working days
• Get Employee Information
• Get Working dates
• Update att...
• Get Scan Information for the date and update Employee Attendance
• Get Scan Information
• Update Employee Attendance
• C...
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 Ja...
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
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Introduction to Software Design Sutra
Upcoming SlideShare
Loading in …5
×

Introduction to Software Design Sutra

1,041 views

Published on

A Step by Step Approach to good Software Design

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Introduction to Software Design Sutra

  1. 1. Introduction to “Software Design Sutra” A Step-by-Step approach to Good Software Design
  2. 2. Architecture Actual Code
  3. 3. Which is better?
  4. 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. 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. 6. 6 Let’s Look at Code
  7. 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. 8. 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
  9. 9. 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
  10. 10. • Update attendance information for employees for working days • Get Employee Information • Get Working dates • Update attendance Information Write Code that reflects the sentences
  11. 11. • 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
  12. 12. The sooner you start to code, the longer the program will take. Roy Carlson
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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)
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. Did you find that interesting, may I request for some assistance in return?
  26. 26. I need help with a survey
  27. 27. 36 Mail to: gk@sameeksha.biz Subject: Survey Thanks Prowareness and Anand for this opportunity

×