SlideShare a Scribd company logo
Effective Architecting
Best Practices & Guidelines for Software Architects
Case Study: Patterns
and Styles in Compilers
Overarching Style
Lexical Analyzer
Parser
(Syntax & Semantic Analysis)
Optimizer
Code generator
Pipe-and-filter
style
Compiler Driver
Facade
pattern
Representing grammar
Interpreter
pattern
Generating code
Source: “Design Patterns: Elements of Reusable Object-Oriented Software”, Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Addison-Wesley,1994
Visitor pattern
source: https://github.com/cer/event-sourcing-examples/wiki/i/applicationarchitecture.png
Apply relevant patterns and styles
for effective architecting
“Cities grow, cities evolve, cities
have parts that simply die while other
parts flourish; each city has to be
renewed in order to meet the needs of its
populace… Software-intensive systems
are like that. They grow, they evolve,
sometimes they wither away, and
sometimes they flourish…”
Grady Booch in the foreword for “Refactoring for Software Design Smells: Managing Technical Debt”, Girish Suryanarayana, Ganesh Samarthyam, Tushar Sharma, Morgan Kaufmann/Elsevier, 2014.
CodeCity tool
Effective Architecting: Best Practices for Software Architects
Code Query Language (NDepend, Architect, …)
Look at the world differently for
creative design solutions
Who coined the
term “code
smell”?
Hint: He also
originated the
terms TDD and XP
Kent Beck
Who coined the
acronym “SOLID”?
(as in SOLID
principles)
Hint: He is the
author of the book
“Working effectively
with legacy code”
Michael
Feathers
S
Single Responsibility
Principle
Every object should have a single responsibility and
that should be encapsulated by the class
O Open Closed Principle
Software should be open for extension, but closed for
modification
L
Liskov’s Substitution
Principle
Any subclass should always be usable instead of its
parent class
I
Interface Segregation
Principle
Many client specific interfaces are better than one
general purpose interface
D
Dependency Inversion
Principle
Abstractions should not depend upon details. Details
should depend upon abstractions
Who coined the
term “technical
debt”?
Hint: He is the
creator of “wiki”
Ward
Cunningham
When,	due	to	constraints,	I	design	
quickly	and	dirty,	my	project	is	
loaded	with	technical	debt
Number	of	Accessed	Variables	
Cyclomatic	Complexity
Newly	Added	Service	
Percentage	of	Newly	Added	Service
Infusion
www.intooitus.com/products/infusion
Violates Single
Responsibility
Principle (SRP)
Effective Architecting: Best Practices for Software Architects
Published	in	Journal	of	Object	Technology	(Vol.	12,	No.	2,	2013)	
  S	G	Ganesh,	Tushar	Sharma,	Girish	Suryanarayana.		Towards	a	Principle-based	
Classifica4on	of	Structural	Design	Smells.		In	Journal	of	Object	Technology,	vol.	
12,	no.	2,	2013,	pages	1:1–29.doi:10.5381/jot.2013.12.2.a1	
  URL:	hLp://www.jot.fm/issues/issue_2013_06/arPcle1.pdf	(open	access)
Effective Architecting: Best Practices for Software Architects
Effective Architecting: Best Practices for Software Architects
"This is a good book about ‘Design Smells’ – actually
a great book – nicely organized - clearly written with
plenty of examples and a fair sprinkling of
anecdotes."
- Will Tracz (Principal Research Scientist & Fellow,
Lockheed Martin)
(review in ACM SIGSOFT Software Engineering
Notes)
Believe in your ideas:
how small or “insignificant” it may
appear to be!
Steve Jobs is viewed as an excellent
speaker, business person, and leader. But
not much as an architect.
He is an excellent architect.
Why?
Effective Architecting: Best Practices for Software Architects
In the movie Steve Jobs, he gives an example of
a music composer. The composer directs the
people and focuses on the orchestra.
That is the case with a software architect as well.
Effective Architecting: Best Practices for Software Architects
As an architect, be a problem
solver & technology leader
What is the key to grow big and succeed?
Effective Architecting: Best Practices for Software Architects
Other
organizations
Your
organization
Gradually expand your circle of influence
Your
departmentYour team
The
world
Some ways to
expand your
circle of influence
Give talks
(conference,
workshop…)
Write articles,
books, white
papers, …
Organize
meet-ups,
training
programs, …
Contribute
to process,
quality, and cost-
saving
initiatives
Meetups
• Software Architecture:
http://www.meetup.com/SoftwareArchitectsBangalore/
• Container Developers:
http://www.meetup.com/Container-Developers-Meetup-Bangalore/
• Software Craftsmanship:
http://www.meetup.com/Software-Craftsmanship-Bangalore-Meetup/
• Core Java:
http://www.meetup.com/Core-Java-Meetup-Bangalore/
• Technical Writers:
http://www.meetup.com/Technical-Writers-Meetup-Bangalore/
• JavaScript:
http://www.meetup.com/JavaScript-Meetup-Bangalore/
Influence is leadership - expand
your influence!
Register here: https://www.townscript.com/e/designpattern
SOLID Principles and Design Patterns Bootcamp
Location: Bangalore
11 JUN 2016: 10:00AM - 6:00 PM
email sgganesh@gmail.com
website www.designsmells.com
twitter @GSamarthyam
linkedin bit.ly/sgganesh
slideshare slideshare.net/sgganesh

More Related Content

PDF
Introduction to SOLID Principles
PDF
Software Architecture: Principles, Patterns and Practices
PPTX
SOLID Principles part 1
PPTX
Solid Principles Of Design (Design Series 01)
PDF
Java Design Patterns Tutorial | Edureka
PPTX
Towards a UML and IFML mapping to GraphQL
PPTX
The secret life of rules in Software Engineering
PDF
Future Trends on Software and Systems Modeling
Introduction to SOLID Principles
Software Architecture: Principles, Patterns and Practices
SOLID Principles part 1
Solid Principles Of Design (Design Series 01)
Java Design Patterns Tutorial | Edureka
Towards a UML and IFML mapping to GraphQL
The secret life of rules in Software Engineering
Future Trends on Software and Systems Modeling

What's hot (13)

PPT
Structural patterns
PPTX
Basics of Software Architecture for .NET Developers
PDF
Architecture in an Agile World
PDF
Solid principles, Design Patterns, and Domain Driven Design
PDF
Modern Software Architecure Bootcamp - 2nd July 2016 - Bangalore
DOCX
Java Design Pattern Interview Questions
PPTX
SOLID Principles of Refactoring Presentation - Inland Empire User Group
PDF
Domain Driven Design
PDF
UIE Virtual Seminar - From PDFs to HTML Prototyping
PPTX
A UML profile for OData Web APIs
PDF
Solid principles of oo design
PPT
The Smells Of Bad Design
PPTX
Design Pattern lecture 2
Structural patterns
Basics of Software Architecture for .NET Developers
Architecture in an Agile World
Solid principles, Design Patterns, and Domain Driven Design
Modern Software Architecure Bootcamp - 2nd July 2016 - Bangalore
Java Design Pattern Interview Questions
SOLID Principles of Refactoring Presentation - Inland Empire User Group
Domain Driven Design
UIE Virtual Seminar - From PDFs to HTML Prototyping
A UML profile for OData Web APIs
Solid principles of oo design
The Smells Of Bad Design
Design Pattern lecture 2
Ad

Viewers also liked (20)

PDF
VMworld 2013: Architecting VMware Horizon Workspace for Scale and Performance
PPTX
Magazine Cover and Film Poster Feedback
PPTX
Question 3
PPTX
Juego modificado e.f.
DOCX
Reflexion del curso conocimiento de la entidad
PDF
FACE at-a-glance 2014
PDF
coal rods extruder machine
PDF
PPTX
aplikom_UNSRI_2_vidya fertika sari
PDF
DDB-chic-Pink-Paper
PDF
Trident Resourcing Ltd
PDF
Glomacs Supervisory Skills Certificate
PDF
Analysis of Households income Generation in Fadama IIIBeneficiary Communities...
PDF
Data Center Planning for Maximum Uptime: Production and Disaster Recovery Sites
PDF
Shin-Etsu supervisory training
PPT
Al andalus belen-parte i
PDF
Small Capacity Biomass Firewood Pellet Production Line For Making Fuel Pellet
PPTX
AWS Cloud Disaster Recovery Plan Checklist - Are you ready?
PDF
Disaster Recovery Solutions
PPTX
2. El Cubismo
VMworld 2013: Architecting VMware Horizon Workspace for Scale and Performance
Magazine Cover and Film Poster Feedback
Question 3
Juego modificado e.f.
Reflexion del curso conocimiento de la entidad
FACE at-a-glance 2014
coal rods extruder machine
aplikom_UNSRI_2_vidya fertika sari
DDB-chic-Pink-Paper
Trident Resourcing Ltd
Glomacs Supervisory Skills Certificate
Analysis of Households income Generation in Fadama IIIBeneficiary Communities...
Data Center Planning for Maximum Uptime: Production and Disaster Recovery Sites
Shin-Etsu supervisory training
Al andalus belen-parte i
Small Capacity Biomass Firewood Pellet Production Line For Making Fuel Pellet
AWS Cloud Disaster Recovery Plan Checklist - Are you ready?
Disaster Recovery Solutions
2. El Cubismo
Ad

Similar to Effective Architecting: Best Practices for Software Architects (20)

PDF
Refactoring guided by design principles driven by technical debt
PPT
03 basic concepts
PDF
Achieving Design Agility by Refactoring Design Smells
PPT
Anti Patterns Siddhesh Lecture1 Of3
PDF
10 Hinweise für Architekten
PDF
Joseph Yoder : Being Agile about Architecture
PDF
Ten Advices for Architects
KEY
Frayed Edges - Architecture In Practice
PPT
Love your architecture - Alexander von Zitzewitz
PPT
02 architectures in_context
PPT
Importance of Software architecture
ODP
Pay off Technical Debt by Good Code
PDF
Clean architecturebookreport
PDF
01 Introduction to SDA 2.pdf software architecture
PDF
Florian Stefan. Reducing technical debt in software architecture
PDF
Reducing Technical Debt in Software Architecture
PDF
Design Smell Descriptions - Summary Sheet
PDF
Architecture Business Cycle 2.pdf Software
DOCX
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
PDF
Software archiecture lecture03
Refactoring guided by design principles driven by technical debt
03 basic concepts
Achieving Design Agility by Refactoring Design Smells
Anti Patterns Siddhesh Lecture1 Of3
10 Hinweise für Architekten
Joseph Yoder : Being Agile about Architecture
Ten Advices for Architects
Frayed Edges - Architecture In Practice
Love your architecture - Alexander von Zitzewitz
02 architectures in_context
Importance of Software architecture
Pay off Technical Debt by Good Code
Clean architecturebookreport
01 Introduction to SDA 2.pdf software architecture
Florian Stefan. Reducing technical debt in software architecture
Reducing Technical Debt in Software Architecture
Design Smell Descriptions - Summary Sheet
Architecture Business Cycle 2.pdf Software
76 May 2007Vol. 50, No. 5 COMMUNICATIONS OF THE ACM COMMUNIC.docx
Software archiecture lecture03

More from Ganesh Samarthyam (20)

PDF
Wonders of the Sea
PDF
Animals - for kids
PDF
Applying Refactoring Tools in Practice
PDF
CFP - 1st Workshop on “AI Meets Blockchain”
PDF
Great Coding Skills Aren't Enough
PDF
College Project - Java Disassembler - Description
PDF
Coding Guidelines - Crafting Clean Code
PDF
Design Patterns - Compiler Case Study - Hands-on Examples
PDF
Bangalore Container Conference 2017 - Brief Presentation
PDF
Bangalore Container Conference 2017 - Poster
PDF
Software Design in Practice (with Java examples)
PDF
OO Design and Design Patterns in C++
PDF
Bangalore Container Conference 2017 - Sponsorship Deck
PDF
Let's Go: Introduction to Google's Go Programming Language
PPT
Google's Go Programming Language - Introduction
PDF
Java Generics - Quiz Questions
PDF
Java Generics - by Example
PDF
Software Architecture - Quiz Questions
PDF
Docker by Example - Quiz
PDF
Core Java: Best practices and bytecodes quiz
Wonders of the Sea
Animals - for kids
Applying Refactoring Tools in Practice
CFP - 1st Workshop on “AI Meets Blockchain”
Great Coding Skills Aren't Enough
College Project - Java Disassembler - Description
Coding Guidelines - Crafting Clean Code
Design Patterns - Compiler Case Study - Hands-on Examples
Bangalore Container Conference 2017 - Brief Presentation
Bangalore Container Conference 2017 - Poster
Software Design in Practice (with Java examples)
OO Design and Design Patterns in C++
Bangalore Container Conference 2017 - Sponsorship Deck
Let's Go: Introduction to Google's Go Programming Language
Google's Go Programming Language - Introduction
Java Generics - Quiz Questions
Java Generics - by Example
Software Architecture - Quiz Questions
Docker by Example - Quiz
Core Java: Best practices and bytecodes quiz

Recently uploaded (20)

PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
System and Network Administration Chapter 2
PPTX
Introduction to Artificial Intelligence
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
L1 - Introduction to python Backend.pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Which alternative to Crystal Reports is best for small or large businesses.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
System and Network Administration Chapter 2
Introduction to Artificial Intelligence
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
wealthsignaloriginal-com-DS-text-... (1).pdf
top salesforce developer skills in 2025.pdf
Wondershare Filmora 15 Crack With Activation Key [2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
L1 - Introduction to python Backend.pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
CHAPTER 2 - PM Management and IT Context
VVF-Customer-Presentation2025-Ver1.9.pptx
PTS Company Brochure 2025 (1).pdf.......
Navsoft: AI-Powered Business Solutions & Custom Software Development
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Odoo POS Development Services by CandidRoot Solutions
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool

Effective Architecting: Best Practices for Software Architects