Skip to main content

Examples 7: ArchiMate flow relationship between elements in layers

Diagram



Code

@startuml
!include <archimate/Archimate>
<style>
element {
    HorizontalAlignment: left;
    MinimumWidth: 180;
    Padding: 20;
}
note {
    BackgroundColor: #FFFFCC;
    RoundCorner: 5;
    MaximumWidth: 250;
}
</style>

title "ArchiMate 3.2 Valid Flow Relationships"
left to right direction
' Business Layer Flow Relationships
rectangle "Business Layer Flows" {
    Business_Process(bp1, "Order Process")
    Business_Process(bp2, "Payment Process")
    Rel_Flow(bp1, bp2, "Order data")
    note on link
        Flow between Business Processes
    end note
   
    Business_Function(bf1, "Sales Function")
    Business_Function(bf2, "Delivery Function")
    Rel_Flow(bf1, bf2, "Sales information")
    note on link
        Flow between Business Functions
    end note
   
    Business_Process(bp3, "Customer Registration")
    Business_Function(bf3, "Customer Management")
    Rel_Flow(bp3, bf3, "Customer data")
    note on link
        Flow between Business Process and Function
    end note
   
    Business_Interaction(bi1, "Customer Interaction")
    Business_Process(bp4, "Feedback Processing")
    Rel_Flow(bi1, bp4, "Customer feedback")
    note on link
        Flow between Business Interaction and Process
    end note
   
    Business_Event(be1, "Order Placed")
    Business_Process(bp5, "Order Fulfillment")
    Rel_Flow(be1, bp5, "Order details")
    note on link
        Flow between Business Event and Process
    end note
   
    Business_Service(bs1, "Return Service")
    Business_Process(bp6, "Return Processing")
    Rel_Flow(bs1, bp6, "Return information")
    note on link
        Flow between Business Service and Process
    end note
}

' Application Layer Flow Relationships
rectangle "Application Layer Flows" {
    Application_Process(ap1, "Data Processing")
    Application_Process(ap2, "Data Validation")
    Rel_Flow(ap1, ap2, "Processed data")
    note on link
        Flow between Application Processes
    end note
   
    Application_Function(af1, "Calculation Function")
    Application_Function(af2, "Reporting Function")
    Rel_Flow(af1, af2, "Calculation results")
    note on link
        Flow between Application Functions
    end note
   
    Application_Process(ap3, "User Authentication")
    Application_Function(af3, "Access Control")
    Rel_Flow(ap3, af3, "Authentication status")
    note on link
        Flow between Application Process and Function
    end note
   
    Application_Interaction(ai1, "System Interaction")
    Application_Process(ap4, "Response Processing")
    Rel_Flow(ai1, ap4, "System response")
    note on link
        Flow between Application Interaction and Process
    end note
   
    Application_Event(ae1, "Data Updated")
    Application_Process(ap5, "Notification Handling")
    Rel_Flow(ae1, ap5, "Update notification")
    note on link
        Flow between Application Event and Process
    end note
   
    Application_Service(as1, "Search Service")
    Application_Function(af4, "Index Management")
    Rel_Flow(as1, af4, "Search queries")
    note on link
        Flow between Application Service and Function
    end note
}

' Technology Layer Flow Relationships
rectangle "Technology Layer Flows" {
    Technology_Process(tp1, "Backup Process")
    Technology_Process(tp2, "Archive Process")
    Rel_Flow(tp1, tp2, "Backup data")
    note on link
        Flow between Technology Processes
    end note
   
    Technology_Function(tf1, "Network Monitoring")
    Technology_Function(tf2, "Alert Management")
    Rel_Flow(tf1, tf2, "Network alerts")
    note on link
        Flow between Technology Functions
    end note
   
    Technology_Process(tp3, "Data Transmission")
    Technology_Function(tf3, "Data Encryption")
    Rel_Flow(tp3, tf3, "Transmitted data")
    note on link
        Flow between Technology Process and Function
    end note
   
    Technology_Interaction(ti1, "Server Cluster Interaction")
    Technology_Process(tp4, "Load Balancing")
    Rel_Flow(ti1, tp4, "Server load information")
    note on link
        Flow between Technology Interaction and Process
    end note
   
    Technology_Event(te1, "Hardware Failure")
    Technology_Process(tp5, "Failover Process")
    Rel_Flow(te1, tp5, "Failure notification")
    note on link
        Flow between Technology Event and Process
    end note
   
    Technology_Service(ts1, "Storage Service")
    Technology_Function(tf4, "Disk Management")
    Rel_Flow(ts1, tf4, "Storage requests")
    note on link
        Flow between Technology Service and Function
    end note
}

' Cross-Layer Flow Relationships
rectangle "Cross-Layer Flows" {
    Business_Process(bp7, "Order Management")
    Application_Process(ap6, "Order Processing")
    Rel_Flow(bp7, ap6, "Order information")
    note on link
        Flow between Business and Application Processes
    end note
   
    Application_Function(af5, "System Monitoring")
    Technology_Function(tf5, "Resource Management")
    Rel_Flow(af5, tf5, "System metrics")
    note on link
        Flow between Application and Technology Functions
    end note
   
    Business_Event(be2, "Customer Request")
    Application_Process(ap7, "Request Handling")
    Rel_Flow(be2, ap7, "Request details")
    note on link
        Flow between Business Event and Application Process
    end note
   
    Application_Event(ae2, "Security Alert")
    Technology_Process(tp6, "Security Response")
    Rel_Flow(ae2, tp6, "Alert information")
    note on link
        Flow between Application Event and Technology Process
    end note
}

@enduml

Comments

Popular posts from this blog

Example 1: ArchiMate relationship in PlantUML code to demonstrate 15 relationship types

 Following section presents 15 types of relationships in ArchiMate and PlantUML to generate the diagram. Since this code is generated by GEN-AI it may require precision on aspects other than PlantUML syntax: Diagram Plant UML Code:  @startuml '!includeurl https://raw.githubusercontent.com/plantuml-stdlib/Archimate-PlantUML/master/Archimate.puml ' Another way of including Archimate Library (above is commented for following) !include <archimate/Archimate> !theme archimate-standard from https://raw.githubusercontent.com/plantuml-stdlib/Archimate-PlantUML/master/themes title ArchiMate Relationships Overview <style> element{     HorizontalAlignment: left;     MinimumWidth : 180;     Padding: 25; } </style> left to right direction rectangle Other {     Business_Role(Role_SeniorManager, "Senior Manager")     Business_Role(Role_Manager, "Manager") } rectangle Dynamic {     Business_Event(Event_CustomerReques...

Mastering Trade-Off Analysis in System Architecture: A Strategic Guide for Architects

 In system architecture and design, balancing conflicting system qualities is both an art and a science. Trade-off analysis is a strategic evaluation process that enables architects to make informed decisions that align with business goals and technical constraints. By prioritizing essential system attributes while acknowledging inevitable compromises, architects can craft resilient and efficient solutions. This enhanced guide provides actionable insights and recommendations for architects aiming to master trade-off analysis for impactful architectural decisions. 1. Understanding Trade-Off Analysis Trade-off analysis involves identifying and evaluating the conflicting requirements and design decisions within a system. Architects must balance critical aspects like performance, scalability, cost, security, and maintainability. Since no system can be optimized for every quality simultaneously, prioritization based on project goals is essential. Actionable Insights: Define key quality ...

Virtual environments in python

 Creating virtual environments is essential for isolating dependencies and ensuring consistency across different projects. Here are the main methods and tools available, along with their pros, cons, and recommendations : 1. venv (Built-in Python Virtual Environment) Overview: venv is a lightweight virtual environment module included in Python (since Python 3.3). It allows you to create isolated environments without additional dependencies. How to Use: python -m venv myenv source myenv/bin/activate # On macOS/Linux myenv\Scripts\activate # On Windows Pros: ✅ Built-in – No need to install anything extra. ✅ Lightweight – Minimal overhead compared to other tools. ✅ Works across all platforms . ✅ Good for simple projects . Cons: ❌ No dependency management – You still need pip and requirements.txt . ❌ Not as feature-rich as other tools . ❌ No package isolation per project directory (requires manual activation). Recommendation: Use venv if you need a simple, lightweight solut...