Soft Architect
Soft Architect
Software Architecture
Describes the fundamental concepts and properties of a system within the context of its environment,
relationships, and principles of design.
Types of Diagramming
Characteristics:
Easy to access and share.
Diagram core components and interactions.
Highlight critical system interactions and relationships.
Easy to identify potential flaws or areas for improvement.
Diagramming Basic
1. Flowchart: Most basic and simple tool to visualize the logic of an algorithm or program before
you start coding.
Flowchart Diagramming Convention
Connects components in a
Flow lines flowchart and indicates Database Represents databases
flow direction.
Represents information or
Input/Output Person Represents actors or users
data that is transmitted or
or a software system
received.
Represents checkpoints to
Decision evaluate conditions for
making decisions.
2. The C4 Model: A practical way to document software architecture into four levels:
Context (level 1): Shows what the system does, who uses it, and what other system it connects to.
Containers (level 2): Shows the main parts (like apps, databases, or services) and how they work
together.
Components (level 3): Break down each main part into smaller pieces, showing how the code
inside is organized.
Code (level 4): The most detailed level, which shows specific code elements like classes and
function.
Software Architecture Diagramming and Patterns
3. The 14 UML Diagrams: Unified Modeling Language (UML) is used to create diagrams for
documenting level 4 architectural elements.
Structured Behavioral
Show what objects are Show how those objects
within a modeled system. interact with each other.
1- Closed layer: Request must pass through 2- Open layer: Some layers are open to allow
each preceding layer, as shown below. direct access to layers below them when by
passing layers makes sense for certain requests.
Presentation Presentation
Manages user interface Component Component Component Component
and user input.
Business Business
Handles core business Component Component Component Component
logic.
Persistence Persistence
Manages data access. Component Component Component Component
Database Database
Stores and retrieves data.
Software Architecture Diagramming and Patterns
2. Client-Server Architecture: Multiple nodes or clients connected over a network or internet
connection who communicate with a central server.
Components
Service requesters
Client Client
Service requesters (aka clients) that
send requests.
Server
Independent components react to and process events without depending on each other.
Easy to update or change components without impacting others.
Event
Event
Queue
Event Mediator
Event Event
Channel Channel
Broker topology
It relies on brokers and event processors that handle tasks directly, creating a chain of events
that are processed sequentially. Broker topologies have two main types of components:
Brokers
Event processors
Software Architecture Diagramming and Patterns
4. Microkernel Architecture (Plug-In Architectures): Used to implement applications that can
be downloaded as a third-party product.
Plug-in Plug-in
component component
Core System
Plug-in Plug-in
component component
contains the minimum business logic Used to add more features to the soft-
needed to make the software system ware system’s functionality.
operational.
5. Microservices Architecture
Consists of groups of small, independent, self-contained services with small code bases.
User Interface
Includes data replication engine and an Manages requests, sessions, data replication,
asynchronous persistence store (optional) distributed request processing, and
for backup. process-unit deployment.
Processing Unit
In-Memory Data
Virtualized Middleware
Deployment Manager
VPC
Private subnet
Data Component
Client API
Example of a reference architecture describing how a solution uses machine learning to create
movie recommendations automatically and at scale.
2 3 4 6
- Azure Cosmos DB
3. Google Cloud Platform (GCP): A collection of cloud computing services and the third-largest
IaaS provider.
Example of a reference architecture for a simple, containerized application.
2. Route to service
Cloud Load Balancing Kubernetes Engine
1. Requests
Device
To learn more, feel free to take help from the following resources: