SlideShare a Scribd company logo
1 of 37
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
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
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

Similar to Same Patterns Different Architectures

Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...confluent
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...confluent
 
What Is PLM and Why Is It Important
What Is PLM and Why Is It ImportantWhat Is PLM and Why Is It Important
What Is PLM and Why Is It ImportantElizabeth Steiner
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30Roger Snook
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?iasaglobal
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Richard Green
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and RhapsodyMartin Owen
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachBen Stopford
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software ArchitectureKannan Durairaj
 
Process-Oriented Business Requirements
Process-Oriented Business RequirementsProcess-Oriented Business Requirements
Process-Oriented Business RequirementsDafna Levy
 
Analyzing Business Requirements in a Visible Enterprise
Analyzing Business Requirements in a Visible EnterpriseAnalyzing Business Requirements in a Visible Enterprise
Analyzing Business Requirements in a Visible EnterpriseDafna Levy
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...HostedbyConfluent
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectRandy Ynchausti
 
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...IBM Rational
 

Similar to Same Patterns Different Architectures (20)

Same Patterns, Different Architectures
Same Patterns, Different Architectures Same Patterns, Different Architectures
Same Patterns, Different Architectures
 
The Role of the Architect
The Role of the ArchitectThe Role of the Architect
The Role of the Architect
 
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
Building Information Systems using Event Modeling (Bobby Calderwood, Evident ...
 
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
Designing and Implementing Information Systems with Event Modeling, Bobby Cal...
 
What Is PLM and Why Is It Important
What Is PLM and Why Is It ImportantWhat Is PLM and Why Is It Important
What Is PLM and Why Is It Important
 
India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30India GRUC Agility Presentation 2015-6-30
India GRUC Agility Presentation 2015-6-30
 
Business analyst with project training
Business analyst with project trainingBusiness analyst with project training
Business analyst with project training
 
Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?Are You an Accidental or Intentional Architect?
Are You an Accidental or Intentional Architect?
 
Agile Architecture (MAE slides)
Agile Architecture (MAE slides)Agile Architecture (MAE slides)
Agile Architecture (MAE slides)
 
System Architect and Rhapsody
System Architect and RhapsodySystem Architect and Rhapsody
System Architect and Rhapsody
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
 
Modern Agile Software Architecture
Modern Agile Software ArchitectureModern Agile Software Architecture
Modern Agile Software Architecture
 
Process-Oriented Business Requirements
Process-Oriented Business RequirementsProcess-Oriented Business Requirements
Process-Oriented Business Requirements
 
Analyzing Business Requirements in a Visible Enterprise
Analyzing Business Requirements in a Visible EnterpriseAnalyzing Business Requirements in a Visible Enterprise
Analyzing Business Requirements in a Visible Enterprise
 
Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...Model-driven and low-code development for event-based systems | Bobby Calderw...
Model-driven and low-code development for event-based systems | Bobby Calderw...
 
Are You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software ArchitectAre You an Accidental or Intention Software Architect
Are You an Accidental or Intention Software Architect
 
Knowledge management
Knowledge managementKnowledge management
Knowledge management
 
Knowledge management
Knowledge managementKnowledge management
Knowledge management
 
Day1
Day1Day1
Day1
 
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...5.2.2013 2013   2013 - Software, System, & IT Architecture - Good Design is G...
5.2.2013 2013 2013 - Software, System, & IT Architecture - Good Design is G...
 

More from 99X Technology

How to develop an AppSec culture in your project
How to develop an AppSec culture in your project How to develop an AppSec culture in your project
How to develop an AppSec culture in your project 99X Technology
 
Starting Test Automation In Your Project - Webinar by 99X Technology
Starting Test Automation In Your Project - Webinar by 99X TechnologyStarting Test Automation In Your Project - Webinar by 99X Technology
Starting Test Automation In Your Project - Webinar by 99X Technology99X Technology
 
Webinar on Single Sign-On by 99X Technology
Webinar on Single Sign-On by 99X TechnologyWebinar on Single Sign-On by 99X Technology
Webinar on Single Sign-On by 99X Technology99X Technology
 
Become a Quality Enabler
Become a Quality EnablerBecome a Quality Enabler
Become a Quality Enabler99X Technology
 
Gearing Startups for Success through Product Engineering
Gearing Startups for Success through Product EngineeringGearing Startups for Success through Product Engineering
Gearing Startups for Success through Product Engineering99X Technology
 
Kick Starting Test Automation
Kick Starting Test AutomationKick Starting Test Automation
Kick Starting Test Automation99X Technology
 
The Story of Automation
The Story of AutomationThe Story of Automation
The Story of Automation99X Technology
 
Microservices without servers
Microservices without serversMicroservices without servers
Microservices without servers99X Technology
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker99X Technology
 
Cloud aware product engineering
Cloud aware product engineeringCloud aware product engineering
Cloud aware product engineering99X Technology
 
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...
Colombo Mobile Developer MeetUp - Building Scalable Cloud Connected Mobile Ap...99X Technology
 

More from 99X Technology (13)

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

Recently uploaded

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 

Same Patterns Different Architectures

  • 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
  • 22.
  • 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
  • 30.
  • 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