SlideShare a Scribd company logo
Same Patterns Different
Architectures
Samudra Kanankearachchi
Software Architect
Confused me staring at my code
S.O.L.I.D Principles
GOF Patterns
OOP Design Principle
Architectural Patterns
Key Objectives
• Business Requirement to design pattern , How do
we implement ?
• Do I really need to know All
– design patterns ?
– Architectural Patterns ?
• Understand Pattern Relationships and how they
have evolved.
• What is OOP ?
• What is a Design Patterns ?
• What is Software Architecture ?
Still I cannot imagine why I wrote
software like this
Why fail to understand Product
Architecture ?
1. Business Architecture (Goals Objectives)
2. Business Design (Branding / Sales …)
3. Profit Making Business
1. System /Technical Architecture
2. Technical Design
3. Technical Implementation (Code)
1. Usability Architecture
2. Usability Design
3. Useful software Product
Lack of collaboration
between User/
Business/ Engineering
Strategy
Profits
Goals
Marketing & Branding
Customer Acquisition
Requirements
System, Architectural
1. Technical Architecture
2. System Design
3. Code (Implementation)
Focus for this session
Example Business Case
Architecture Vs Design
Architectural
• Is all banks has good telephone & Internet coverage ?
Majority , Yes they have fairly good internet.
• User capacity ?
Average 100 to 2000 customers a bank.
• How branches are located in the country?
Around 10 – 15 branches in each district,
• Each district has a head office
Country head offices are located in Colombo.
• Users Connectivity Modes
Web /Mobile/Desktop client ..
• How Does bank connect with Third Party like SLT/ CEB/ Coop-City
Get the billing Data at periodical intervals (No real time requirement)
Filling the Blank - Design
• BOTTOM UP :
Code > Design > Architecture , Business Use
cases(Architecturally Significant)
• TOP Down :
Architecture/Business Use cases > Design >
Code
• Combination of both (More
convenient and practical)
Architectural
Functional
BridgetheDesignGap
Perceived
Understanding
(Can differ from
person to person)
General design
Guidelines which are
paradigm Specific
Solutions to
recurrent designs
(Very Context
Specific)
1. S.O.L.I.D Design Principles
2. OOP Design Principles
(Abstraction
, Encapsulation
, Inheritance
, Polymorphism …)
1. GOF Design Patterns
2. GRASP Design Patterns
3. SOA Patterns …
4. Security Patterns
Values: How I perceive OOP when I
was a student
Principles: OOP Principles
• Abstraction
• Encapsulation
• Inheritance
• Polymorphism
Inheritance (IS – A)Association
Realize/Implementation Dependency
Aggregation (Has – A)
Composition (Has – A)
Patterns: Solutions to recurrent design
issues(Based on principles)
{Other Principles …}
Assembling Patterns
1. GOF Patterns
2.GRASP Patterns
…
Knowing patterns is good enough ?
• No , You have to have a way to apply ?
• Where do we start ?
• How do I do it ?
Pattern applying process
Minimal Viable First release
• Proof of Concepts for: Architecturally
significant use cases (Scenarios)
• Thin functional Slice : To cover end to end
integration of application layer in a functional
scenario. Functional Significant use case
12345
1. Client
2. Service Layer
3. Back office
Implementation
/Layering
4. Service Integration
Layer
5. Scheduled Third
Party Services
Synchronization
Discuss About What is Architecturally
Significant
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
User Stories
• As a Banking user
– Register new Customer
– Unregister Customer
– Modify Customer details
– Enable Customer Services (SLT, CEB , Coop-City …)
– Balance Inquiry
Realization of Functionally Significant
User Story
Interaction Diagrams
Responsibilities - CRC
Responsibility
Driven Designing1
2
3
GRASP (General Responsibility
Assignment Software Patterns )
Guide line for assigning responsibilities
Controller
Bundle UI Event
with Use cases
System Use case for CRB
This system use case run on a scheduler
High Cohesion /Low Coupling
• Epics -> Stories
• Refactor -> Complex Objects
• Refactor APIs into Segregated APIS
• Introduce Workflows into Aggregate APIs into
Process , User Stories
• Introduce mediators to minimize coupling
between objects
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
Layering Application
Common
DB
Framework
Common
Service
Helpers
Unit Tests
Modules
Customer
Customer DAL
Customer Service
Payment
Payment DAL
Payment Service
Admin
Admin DAL
Admin Service
Modules
Customer API
Customer API
Proxy
Payment API
Payment API
Proxy
Admin API
Admin API
Proxy
Desktop Client Web Client Mobile Client
Customer Service
Contracts/Operation Contracts
Customer Service Implementation
Top level View of Customer Module
1
2
3
1 Customer module Data Access
Layer
Commands : Data Access Logic
DTO : Data Transfer Objects
Facades : Data Access Abstractions
to simplify Data access Operations
2 Customer Service Interface and
Implementations
Service Implementation: Service
logic implementation
Service Interface: Service and
Operation Contracts
3 Customer module Unit Tests
Unit tests for Customer module.
Customer Service Low Level Design
User of GOF Patterns in GRASP Process
• Creational Patterns
• Behavioral Patterns
• Structural Patterns
Object Creation
1) Avoid Multiple new Statements
(Singleton Patterns)
2) Hide the creation details from
business logic
3) Create Product families

More Related Content

PPT
Tech Talk - Enterprise Architect - 02
PDF
End-to-end Model-driven Development of Applications with Eclipse using the ...
PPTX
Know your Ride!
PDF
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
PPTX
004_studentsharepointcamp_enterprise application_demo
PPTX
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
PPTX
005_studentsharepointcamp_planyourfuturewithsharepoint
PPTX
Social Physics in a Corporate Environment
Tech Talk - Enterprise Architect - 02
End-to-end Model-driven Development of Applications with Eclipse using the ...
Know your Ride!
Enterprise Integration Architectural Challenges in Large Enterprises - Colomb...
004_studentsharepointcamp_enterprise application_demo
003_studentsharepointcamp_outoftheboxfeaturesofsharepoint_demo
005_studentsharepointcamp_planyourfuturewithsharepoint
Social Physics in a Corporate Environment

Similar to Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03 (20)

PPTX
Same Patterns, Different Architectures
PPT
Designingapplswithnet
PDF
Introduction to Object Oriented Design
PPTX
.NET Architecture for Enterprises
ODP
Software Patterns
PPT
5 Design Patterns Explained
PPTX
Architecture Principles CodeStock
PDF
Unified Modeling Language (UML), Object-Oriented Programming Concepts & Desig...
PPTX
Architecture and design
PDF
Software Patterns
PDF
Microservices Design Patterns
PPTX
Architecting Microservices in .Net
PDF
Cse 6007 fall2012
PPTX
note2_DesignPatterns (1).pptx
PDF
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
PPTX
Software Engineering Primer
PPTX
The Clean Architecture
PDF
IRJET- Software Architecture and Software Design
PDF
Software architecture, Patterns for Scale
Same Patterns, Different Architectures
Designingapplswithnet
Introduction to Object Oriented Design
.NET Architecture for Enterprises
Software Patterns
5 Design Patterns Explained
Architecture Principles CodeStock
Unified Modeling Language (UML), Object-Oriented Programming Concepts & Desig...
Architecture and design
Software Patterns
Microservices Design Patterns
Architecting Microservices in .Net
Cse 6007 fall2012
note2_DesignPatterns (1).pptx
iSAQB gathering 2021 keynote - Architectural patterns for rapid, reliable, fr...
Software Engineering Primer
The Clean Architecture
IRJET- Software Architecture and Software Design
Software architecture, Patterns for Scale
Ad

More from 99X Technology (13)

PPTX
How to develop an AppSec culture in your project
PPTX
Starting Test Automation In Your Project - Webinar by 99X Technology
PPTX
Webinar on Single Sign-On by 99X Technology
PPTX
Become a Quality Enabler
PPTX
Gearing Startups for Success through Product Engineering
PPTX
Kick Starting Test Automation
PPTX
The Adra Story
PPTX
The Story of Automation
PPTX
Microservices without servers
PPTX
An Introduction to Docker
PPTX
Microservices
PPTX
Cloud aware product engineering
PPT
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
How to develop an AppSec culture in your project
Starting Test Automation In Your Project - Webinar by 99X Technology
Webinar on Single Sign-On by 99X Technology
Become a Quality Enabler
Gearing Startups for Success through Product Engineering
Kick Starting Test Automation
The Adra Story
The Story of Automation
Microservices without servers
An Introduction to Docker
Microservices
Cloud aware product engineering
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Ad

Recently uploaded (20)

PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Encapsulation theory and applications.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Spectroscopy.pptx food analysis technology
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Assigned Numbers - 2025 - Bluetooth® Document
Network Security Unit 5.pdf for BCA BBA.
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
“AI and Expert System Decision Support & Business Intelligence Systems”
Encapsulation theory and applications.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
sap open course for s4hana steps from ECC to s4
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The AUB Centre for AI in Media Proposal.docx

Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03

  • 1. Same Patterns Different Architectures Samudra Kanankearachchi Software Architect
  • 2. Confused me staring at my code S.O.L.I.D Principles GOF Patterns OOP Design Principle Architectural Patterns
  • 3. Key Objectives • Business Requirement to design pattern , How do we implement ? • Do I really need to know All – design patterns ? – Architectural Patterns ? • Understand Pattern Relationships and how they have evolved.
  • 4. • What is OOP ? • What is a Design Patterns ? • What is Software Architecture ?
  • 5. Still I cannot imagine why I wrote software like this
  • 6. Why fail to understand Product Architecture ? 1. Business Architecture (Goals Objectives) 2. Business Design (Branding / Sales …) 3. Profit Making Business 1. System /Technical Architecture 2. Technical Design 3. Technical Implementation (Code) 1. Usability Architecture 2. Usability Design 3. Useful software Product Lack of collaboration between User/ Business/ Engineering
  • 7. Strategy Profits Goals Marketing & Branding Customer Acquisition Requirements System, Architectural
  • 8. 1. Technical Architecture 2. System Design 3. Code (Implementation) Focus for this session
  • 11. Architectural • Is all banks has good telephone & Internet coverage ? Majority , Yes they have fairly good internet. • User capacity ? Average 100 to 2000 customers a bank. • How branches are located in the country? Around 10 – 15 branches in each district, • Each district has a head office Country head offices are located in Colombo. • Users Connectivity Modes Web /Mobile/Desktop client .. • How Does bank connect with Third Party like SLT/ CEB/ Coop-City Get the billing Data at periodical intervals (No real time requirement)
  • 12. Filling the Blank - Design • BOTTOM UP : Code > Design > Architecture , Business Use cases(Architecturally Significant) • TOP Down : Architecture/Business Use cases > Design > Code • Combination of both (More convenient and practical) Architectural Functional BridgetheDesignGap
  • 13. Perceived Understanding (Can differ from person to person) General design Guidelines which are paradigm Specific Solutions to recurrent designs (Very Context Specific) 1. S.O.L.I.D Design Principles 2. OOP Design Principles (Abstraction , Encapsulation , Inheritance , Polymorphism …) 1. GOF Design Patterns 2. GRASP Design Patterns 3. SOA Patterns … 4. Security Patterns
  • 14. Values: How I perceive OOP when I was a student
  • 15. Principles: OOP Principles • Abstraction • Encapsulation • Inheritance • Polymorphism
  • 16. Inheritance (IS – A)Association Realize/Implementation Dependency Aggregation (Has – A) Composition (Has – A)
  • 17. Patterns: Solutions to recurrent design issues(Based on principles) {Other Principles …} Assembling Patterns 1. GOF Patterns 2.GRASP Patterns …
  • 18. Knowing patterns is good enough ? • No , You have to have a way to apply ? • Where do we start ? • How do I do it ?
  • 20. Minimal Viable First release • Proof of Concepts for: Architecturally significant use cases (Scenarios) • Thin functional Slice : To cover end to end integration of application layer in a functional scenario. Functional Significant use case
  • 21. 12345 1. Client 2. Service Layer 3. Back office Implementation /Layering 4. Service Integration Layer 5. Scheduled Third Party Services Synchronization Discuss About What is Architecturally Significant
  • 23. User Stories • As a Banking user – Register new Customer – Unregister Customer – Modify Customer details – Enable Customer Services (SLT, CEB , Coop-City …) – Balance Inquiry
  • 24. Realization of Functionally Significant User Story
  • 25. Interaction Diagrams Responsibilities - CRC Responsibility Driven Designing1 2 3
  • 26. GRASP (General Responsibility Assignment Software Patterns ) Guide line for assigning responsibilities
  • 28. System Use case for CRB This system use case run on a scheduler
  • 29. High Cohesion /Low Coupling • Epics -> Stories • Refactor -> Complex Objects • Refactor APIs into Segregated APIS • Introduce Workflows into Aggregate APIs into Process , User Stories • Introduce mediators to minimize coupling between objects
  • 31. Layering Application Common DB Framework Common Service Helpers Unit Tests Modules Customer Customer DAL Customer Service Payment Payment DAL Payment Service Admin Admin DAL Admin Service Modules Customer API Customer API Proxy Payment API Payment API Proxy Admin API Admin API Proxy Desktop Client Web Client Mobile Client
  • 34. Top level View of Customer Module 1 2 3 1 Customer module Data Access Layer Commands : Data Access Logic DTO : Data Transfer Objects Facades : Data Access Abstractions to simplify Data access Operations 2 Customer Service Interface and Implementations Service Implementation: Service logic implementation Service Interface: Service and Operation Contracts 3 Customer module Unit Tests Unit tests for Customer module.
  • 35. Customer Service Low Level Design
  • 36. User of GOF Patterns in GRASP Process • Creational Patterns • Behavioral Patterns • Structural Patterns
  • 37. Object Creation 1) Avoid Multiple new Statements (Singleton Patterns) 2) Hide the creation details from business logic 3) Create Product families