SlideShare a Scribd company logo
uri@wibbitz.com
Software Architecture
X
• What is software architecture & why we need it
• Characteristics of a software system
• Review 4 common software architecture patterns

and understand their characteristics
Content
X
The description of a software system structure,
components and their relations.
A phase in software development:

Requirements —> Architecture —> Implementation
What is software architecture?
X
• Understand how the system will behave - each structure
has different qualities. (Agility, Scalability etc.)
• Serves as a blue print for developing the software and for
the project itself
• Enables reuse of software structure
Why architecture?
X
• No clear definition of roles, responsibilities and relationships for code
components
• Hard to decide where to add required functionality
• Usually tightly coupled and hard to change code
• Hard to characterize the code
No architecture means
X
Architecture characteristics
X
Overall agility
• The ability to respond quickly to a constantly changing environment
Architecture characteristics
X
Ease of deployment
• How easy it is to deploy the application - small change requires
deploy of the whole application
Architecture characteristics
X
Testability
• How easy it is to test the system
Architecture characteristics
X
Performance
• Efficiency of the system, usually in term of performance speed
Architecture characteristics
X
Scalability
• The ability of the system to handle growth
Architecture characteristics
X
Ease of development
• How easy it is to develop the system, considering complexity and
level of coupling.
Architecture characteristics
X
Architecture patterns
X
• Code components are organized in layers each with specific role
• Number of layers is not defined

A common use is a 3 layered structure with
• Presentation - User interface and browser comm. logic
• Business logic - some times divided to additional persistence
layer
• Database
Pattern: Layered Architecture (n-tier)
X
X
• Customer data request
• Customer data includes orders
data
• Delegate in the presentation
layer knows which module in
the business layer to use for
each request (and it’s contract)
Layered arch. example
X
Pattern Analysis - Layered arch.
Overall agility low
Ease of deployment low
Testability high
Performance low
Scalability low
Ease of development high
X
• Distributed asynchronous pattern - highly scalable
• Made out of decoupled, single purpose event processing components
that asynchronously receive, process and publish events.
Pattern: Event-Driven Architecture
X
X
• Example: Insurance system
• Event: an insured person moves
• Event processing stream:
• Customer event-processor: Change customer address and publish event
(customer address changed)
• Quote event-processor: Recalculate insurance rates and publish event
(recalc quote event)
• Claims event-processor: Updates an outstanding insurance claim and
publish event
Continues until no more events are published for that particular initiating event.
Event-Driven arch. example
X
Pattern Analysis - Event-Driven arch.
Overall agility high
Ease of deployment high
Testability low
Performance high
Scalability high
Ease of development low
X
• AKA plug-in architecture
• Natural pattern for implementing product-based applications
(downloaded in versions)
• Pattern allows to add additional application features as plug-ins to
the core application.
Microkernel Architecture
X
X
Pattern Analysis - Microkernel arch.
Overall agility high
Ease of deployment high
Testability high
Performance high
Scalability low
Ease of development low
X
• This is a distributed architecture pattern consists of (small) services
• Microservices main characteristics:
• Small and focused - doing one business function
• Loosely coupled - operates independently of one another
• Language Neutral
Pattern: Microservices Architecture
X
• This is a distributed architecture - all components are fully decoupled
and accessed by some sort of remote protocol like HTTP(REST)
• Consists of service components
• Independently deployable
• Usually handles specific business use case
• Granularity issue - Service component can consist of one module
or a portion of the application
Pattern: Microservices Architecture
X
X
X
X
• Setting service component granularity level is a challenge
• Need to orchestrate calls - too fine
• Making inner calls - too fine
• Too coarse means missing pattern advantages
Microservices - granularity level
X
Pattern Analysis - Microservices arch.
Overall agility high
Ease of deployment high
Testability high
Performance low
Scalability high
Ease of development high
X
Pattern Analysis
Layered Event-D Microkernel Microservices
Overall agility low high high high
Ease of deployment low high high high
Testability high low high high
Performance low high high low
Scalability low high low high
Ease of development high low low high
Thank You!

More Related Content

PPT
Software architecture
PDF
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
PPTX
PhD defense: David Ameller
PPTX
Software architecture and software design
PPTX
Architectural styles and patterns
PPT
Lecture 19 design concepts
PPTX
Design Concept software engineering
PPTX
Architectural styles and patterns
Software architecture
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
PhD defense: David Ameller
Software architecture and software design
Architectural styles and patterns
Lecture 19 design concepts
Design Concept software engineering
Architectural styles and patterns

What's hot (20)

PPTX
Software Architecture Patterns
PPTX
Design process and concepts
PPTX
Unit v -Construction and Evaluation
PPT
Architectural Design
PDF
Design and Implementation in Software Engineering
PPTX
Layered architecture style
PPTX
Software Architecture
PPTX
Data Designs (Software Engg.)
PDF
Design concepts and design principles
PPT
Unit 3 3 architectural design
PPT
Object oriented sad-5 part i
PPT
Software Architecture
PPTX
Architectural design of software
PPTX
Software engineering 17 architectural design
PDF
Architectural Design
PDF
Software Designing - Software Engineering
PPTX
PPTX
PPTX
Software Design and Modularity
PPTX
Documenting software architecture
Software Architecture Patterns
Design process and concepts
Unit v -Construction and Evaluation
Architectural Design
Design and Implementation in Software Engineering
Layered architecture style
Software Architecture
Data Designs (Software Engg.)
Design concepts and design principles
Unit 3 3 architectural design
Object oriented sad-5 part i
Software Architecture
Architectural design of software
Software engineering 17 architectural design
Architectural Design
Software Designing - Software Engineering
Software Design and Modularity
Documenting software architecture
Ad

Similar to Software architecture (20)

PPTX
Software Engineering Architectural Design
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
PPTX
Architecture patterns overview
PPTX
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
PPT
Software_Archi-1.ppt
ODP
Software Patterns
PPTX
L02 Architecture
PPTX
6- Architecture design complete (1).pptx
PPT
Lecture-7.ppt
PDF
Introduction to SOFTWARE ARCHITECTURE
PDF
Lecture07_1_AAẨchitectureDesignforst.pdf
PPTX
Software architecture in practice
PPT
Chapter1
DOCX
Software architecture Unit 1 notes
PDF
Explicit architecture
PDF
Software Design Quality Management: Software Architecture
PDF
Software architecture-patterns
PPTX
Software architecture styles families_research_gssi_nov2013
PDF
software-architecture-patterns
PDF
Software arquitectura patron diseño
Software Engineering Architectural Design
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Architecture patterns overview
Mykhailo Hryhorash: Архітектура IT-рішень (Частина 1) (UA)
Software_Archi-1.ppt
Software Patterns
L02 Architecture
6- Architecture design complete (1).pptx
Lecture-7.ppt
Introduction to SOFTWARE ARCHITECTURE
Lecture07_1_AAẨchitectureDesignforst.pdf
Software architecture in practice
Chapter1
Software architecture Unit 1 notes
Explicit architecture
Software Design Quality Management: Software Architecture
Software architecture-patterns
Software architecture styles families_research_gssi_nov2013
software-architecture-patterns
Software arquitectura patron diseño
Ad

Recently uploaded (20)

PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PPTX
ai tools demonstartion for schools and inter college
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
top salesforce developer skills in 2025.pdf
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Transform Your Business with a Software ERP System
PDF
Nekopoi APK 2025 free lastest update
PDF
Softaken Excel to vCard Converter Software.pdf
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
history of c programming in notes for students .pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
medical staffing services at VALiNTRY
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
2025 Textile ERP Trends: SAP, Odoo & Oracle
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
ai tools demonstartion for schools and inter college
Odoo Companies in India – Driving Business Transformation.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
top salesforce developer skills in 2025.pdf
Odoo POS Development Services by CandidRoot Solutions
Transform Your Business with a Software ERP System
Nekopoi APK 2025 free lastest update
Softaken Excel to vCard Converter Software.pdf
ManageIQ - Sprint 268 Review - Slide Deck
How Creative Agencies Leverage Project Management Software.pdf
PTS Company Brochure 2025 (1).pdf.......
Wondershare Filmora 15 Crack With Activation Key [2025
history of c programming in notes for students .pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Adobe Illustrator 28.6 Crack My Vision of Vector Design
medical staffing services at VALiNTRY

Software architecture

  • 2. X • What is software architecture & why we need it • Characteristics of a software system • Review 4 common software architecture patterns
 and understand their characteristics Content
  • 3. X The description of a software system structure, components and their relations. A phase in software development:
 Requirements —> Architecture —> Implementation What is software architecture?
  • 4. X • Understand how the system will behave - each structure has different qualities. (Agility, Scalability etc.) • Serves as a blue print for developing the software and for the project itself • Enables reuse of software structure Why architecture?
  • 5. X • No clear definition of roles, responsibilities and relationships for code components • Hard to decide where to add required functionality • Usually tightly coupled and hard to change code • Hard to characterize the code No architecture means
  • 7. X Overall agility • The ability to respond quickly to a constantly changing environment Architecture characteristics
  • 8. X Ease of deployment • How easy it is to deploy the application - small change requires deploy of the whole application Architecture characteristics
  • 9. X Testability • How easy it is to test the system Architecture characteristics
  • 10. X Performance • Efficiency of the system, usually in term of performance speed Architecture characteristics
  • 11. X Scalability • The ability of the system to handle growth Architecture characteristics
  • 12. X Ease of development • How easy it is to develop the system, considering complexity and level of coupling. Architecture characteristics
  • 14. X • Code components are organized in layers each with specific role • Number of layers is not defined
 A common use is a 3 layered structure with • Presentation - User interface and browser comm. logic • Business logic - some times divided to additional persistence layer • Database Pattern: Layered Architecture (n-tier)
  • 15. X
  • 16. X • Customer data request • Customer data includes orders data • Delegate in the presentation layer knows which module in the business layer to use for each request (and it’s contract) Layered arch. example
  • 17. X Pattern Analysis - Layered arch. Overall agility low Ease of deployment low Testability high Performance low Scalability low Ease of development high
  • 18. X • Distributed asynchronous pattern - highly scalable • Made out of decoupled, single purpose event processing components that asynchronously receive, process and publish events. Pattern: Event-Driven Architecture
  • 19. X
  • 20. X • Example: Insurance system • Event: an insured person moves • Event processing stream: • Customer event-processor: Change customer address and publish event (customer address changed) • Quote event-processor: Recalculate insurance rates and publish event (recalc quote event) • Claims event-processor: Updates an outstanding insurance claim and publish event Continues until no more events are published for that particular initiating event. Event-Driven arch. example
  • 21. X Pattern Analysis - Event-Driven arch. Overall agility high Ease of deployment high Testability low Performance high Scalability high Ease of development low
  • 22. X • AKA plug-in architecture • Natural pattern for implementing product-based applications (downloaded in versions) • Pattern allows to add additional application features as plug-ins to the core application. Microkernel Architecture
  • 23. X
  • 24. X Pattern Analysis - Microkernel arch. Overall agility high Ease of deployment high Testability high Performance high Scalability low Ease of development low
  • 25. X • This is a distributed architecture pattern consists of (small) services • Microservices main characteristics: • Small and focused - doing one business function • Loosely coupled - operates independently of one another • Language Neutral Pattern: Microservices Architecture
  • 26. X • This is a distributed architecture - all components are fully decoupled and accessed by some sort of remote protocol like HTTP(REST) • Consists of service components • Independently deployable • Usually handles specific business use case • Granularity issue - Service component can consist of one module or a portion of the application Pattern: Microservices Architecture
  • 27. X
  • 28. X
  • 29. X
  • 30. X • Setting service component granularity level is a challenge • Need to orchestrate calls - too fine • Making inner calls - too fine • Too coarse means missing pattern advantages Microservices - granularity level
  • 31. X Pattern Analysis - Microservices arch. Overall agility high Ease of deployment high Testability high Performance low Scalability high Ease of development high
  • 32. X Pattern Analysis Layered Event-D Microkernel Microservices Overall agility low high high high Ease of deployment low high high high Testability high low high high Performance low high high low Scalability low high low high Ease of development high low low high