Imported from David-Li0406/meta-skill-evloving (
skill-flow/data/skills-refined-autoskill-36k/skillsmp/merged-e3fc16a5d91dc62b-business-layer-modeling/SKILL.md). Install upstream withnpx skills add David-Li0406/meta-skill-evloving --skill merged-e3fc16a5d91dc62b-business-layer-modeling. Copyright stays with the author.
Business Layer Skill
Layer Number: 02
Specification: Metadata Model Spec v0.7.0
Purpose: Represents business services, processes, actors, and objects that define the organization's operational structure and capabilities.
Layer Overview
The Business Layer captures the operational structure of the organization:
- WHO - Business actors, roles, and collaborations
- WHAT - Business services and products
- HOW - Business processes, functions, and interactions
- INFORMATION - Business objects and their representations
This layer uses ArchiMate 3.2 Business Layer standard without custom extensions, with optional extensions for BPMN integration, SLA tracking, and security controls.
Entity Types
| Entity Type | Description | Key Attributes |
|---|---|---|
| BusinessActor | Organizational entity capable of performing behavior | Examples: Customer, Employee, Partner, Supplier |
| BusinessRole | Responsibility for performing specific behavior | Examples: Sales Representative, Account Manager, System Administrator |
| BusinessCollaboration | Aggregate of business roles working together | Examples: Sales Team, Customer Service Department, Project Team |
| BusinessInterface | Point of access where business service is available | Examples: Customer Portal, Phone Support, Email Support |
| BusinessProcess | Sequence of business behaviors achieving a result | Can include BPMN references, security controls, KPI targets |
| BusinessFunction | Collection of business behavior based on criteria | Examples: Marketing, Sales, Customer Service, Finance |
| BusinessInteraction | Unit of collective behavior by collaboration | Examples: Sales Meeting, Contract Negotiation, Customer Onboarding |
| BusinessEvent | Something that happens and influences behavior | Types: time-driven, state-change, external |
| BusinessService | Service that fulfills a business need | Includes SLA properties, motivation links, APM monitoring |
| BusinessObject | Concept used within business domain | Examples: Order, Invoice, Customer, Product, Contract |
| Contract | Formal specification of agreement | Examples: SLA, Terms of Service, Purchase Agreement |
| Representation | Perceptible form of business object | Formats: document, report, form, message, dashboard |
| Product | Coherent collection of services with a value | Aggregates services and contracts, delivers value to customers |
Intra-Layer Relationships
Structural Relationships
| Source Type | Predicate | Target Type | Example |
|---|---|---|---|
| Product | composes | BusinessService | "E-commerce Platform" composes "Payment Service" |
| BusinessCollaboration | composes | BusinessRole | "Sales Team" composes "Sales Representative" role |
| BusinessProcess | composes | BusinessProcess | "Order Fulfillment" composes "Pick", "Pack", "Ship" sub-processes |
| BusinessFunction | composes | BusinessProcess | "Sales Function" composes "Lead Generation Process" |
| Product | aggregates | BusinessService | Product bundles multiple services |
| Product | aggregates | Contract | Product includes SLA contracts |
| BusinessCollaboration | aggregates | BusinessRole | Collaboration includes multiple roles |
| BusinessActor | assigned-to | BusinessRole | "John Smith" assigned to "Sales Rep" |
| BusinessActor | assigned-to | BusinessProcess | Actor directly performs process |
| BusinessRole | assigned-to | BusinessProcess | Role responsible for process execution |
| BusinessRole | assigned-to | BusinessFunction | Role performs function |
| BusinessCollaboration | assigned-to | BusinessInteraction | Collaboration performs interaction |
| BusinessProcess | realizes | BusinessService | "Order Processing" realizes "Order Management Service" |
| BusinessFunction | realizes | BusinessService | "Customer Support Function" realizes "Support Service" |
| BusinessInteraction | realizes | BusinessService | "Contract Negotiation" realizes "Contracting Service" |
| Representation | realizes | BusinessObject | "Invoice PDF" realizes "Invoice" concept |
| BusinessObject | specializes | BusinessObject | "RetailCustomer" specializes "Customer" |
| BusinessRole | specializes | BusinessRole | "Senior Sales Rep" specializes "Sales Rep" |
| Contract | specializes | Contract | "Premium SLA" specializes "Standard SLA" |
Behavioral Relationships
| Source Type | Predicate | Target Type | Example |
|---|---|---|---|
| BusinessEvent | triggers | BusinessProcess | "Order Received" triggers "Order Fulfillment Process" |
| BusinessEvent | triggers | BusinessFunction | "Monthly Close" triggers "Financial Reporting Function" |
| BusinessEvent | triggers | BusinessInteraction | "Customer Complaint" triggers "Issue Resolution Interaction" |
| BusinessProcess | triggers | BusinessEvent | "Payment Complete" triggers "Order Confirmed Event" |
| BusinessInteraction | triggers | BusinessProcess | "Sales Meeting" triggers "Proposal Generation Process" |
| BusinessProcess | flows-to | BusinessProcess | "Credit Check" flows to "Order Approval" |
| BusinessInteraction | flows-to | BusinessProcess | "Negotiation" flows to "Contract Signing" |
| BusinessService | serves | BusinessActor | "Customer Portal" serves "Customer" |
| BusinessService | serves | BusinessRole | "Reporting Service" serves "Manager" role |
| BusinessService | serves | BusinessProcess | "Authentication Service" serves "Login Process" |
| BusinessInterface | serves | BusinessActor | "Mobile App" serves "Customer" |
| BusinessInterface | serves | BusinessRole | "Admin Console" serves "Administrator" role |
| BusinessProcess | accesses | BusinessObject | "Order Process" accesses "Order" object |
| BusinessFunction | accesses | BusinessObject | "Billing Function" accesses "Invoice" object |
| BusinessInteraction | accesses | BusinessObject | "Contract Review" accesses "Contract" object |
| Contract | associated-with | BusinessService | SLA contract associated with service delivery |
| BusinessObject | associated-with | BusinessProcess | "Customer" associated with "Onboarding Process" |
Cross-Layer References
Outgoing References (Business → Lower Layers)
| Target Layer | Reference Type | Example |
|---|---|---|
| Layer 1 (Motivation) | BusinessService delivers Value | "Payment Service" delivers "Revenue Generation" value |
| Layer 1 (Motivation) | BusinessService supports Goal | Service achieves business goals |
| Layer 1 (Motivation) | BusinessService governed by Principle | Follows business principles |
| Layer 1 (Motivation) | BusinessActor is Stakeholder | Actor maps to stakeholder in motivation layer |
| Layer 1 (Motivation) | BusinessProcess achieves Goal | Process realizes business goals |
| Layer 1 (Motivation) | Contract drives Constraint | SLA contract defines constraints |
| Layer 4 (Application) | BusinessService realized by ApplicationService | "Order Service" realized by "OrderManagementAPI" |
| Layer 4 (Application) | BusinessProcess automated by ApplicationProcess | Process workflow automated by application |
| Layer 4 (Application) | BusinessObject represented in DataObject | "Customer" business concept maps to customer data object |
| Layer 4 (Application) | BusinessEvent triggers ApplicationEvent | Business event generates application event |
| Layer 3 (Security) | BusinessProcess protected by SecurityControl | Process has authentication/authorization |
| Layer 3 (Security) | BusinessCollaboration maps to SecurityActor | Team maps to security roles |
| Layer 6 (API) | BusinessInterface maps to API Operation | Portal interface maps to REST endpoints |
| Layer 7 (Data Model) | BusinessObject → JSON Schema | Business object defined as schema |
| Layer 11 (APM) | BusinessProcess tracked by BusinessMetric | Process performance measured |
| Layer 11 (APM) | BusinessService defines KPI Target | SLA targets for monitoring |
Incoming References (Lower Layers → Business)
Lower layers (Application, Technology, API, etc.) reference Business layer elements to show:
- Realization: Application services realize business services
- Support: Technology supports business operations
- Traceability: APIs map to business interfaces
Codebase Detection Patterns
Pattern 1: Service Layer Classes
# FastAPI Business Service
@app.post("/api/orders")
async def create_order(order_data: OrderRequest):
"""Creates a new customer order (Business Service: Order Management)"""
pass
Maps to:
- BusinessService: "Order Management Service"
- BusinessProcess: "Create Order Process"
- BusinessObject: "Order"
- BusinessInterface: "API Interface"
Pattern 2: Domain Models
from dataclasses import dataclass
@dataclass
class Customer:
"""Customer business object"""
customer_id: str
name: str
email: str
status: str # active, inactive, suspended
Maps to:
- BusinessObject: "Customer"
- Potential BusinessProcess: "Customer Management"
Pattern 3: Event Definitions
// Domain events
export enum BusinessEvents {
ORDER_CREATED = "order.created",
ORDER_FULFILLED = "order.fulfilled",
PAYMENT_RECEIVED = "payment.received",
}
Maps to:
- BusinessEvent entities (order.created, order.fulfilled, payment.received)
Pattern 4: BPMN Process References
# Process definition with BPMN reference
class OrderFulfillmentProcess:
"""
Order fulfillment business process
BPMN: processes/order-fulfillment.bpmn
KPI: 95% orders fulfilled within 24 hours
"""
def execute(self, order_id: str):
pass
Maps to:
- BusinessProcess: "Order Fulfillment"
- Properties:
bpmn-file,kpi-target
Pattern 5: Role-Based Authorization
from enum import Enum
class BusinessRole(Enum):
SALES_REP = "sales_representative"
ACCOUNT_MANAGER = "account_manager"
CUSTOMER_SERVICE = "customer_service"
ADMIN = "administrator"
@require_role(BusinessRole.SALES_REP)
def create_opportunity(data):
pass
Maps to:
- BusinessRole entities (SalesRepresentative, AccountManager, etc.)
Pattern 6: SLA Configuration
# Service SLA definitions
services:
order_processing:
sla:
availability: 99.9%
response_time: 500ms
throughput: 1000 req/sec
business_hours: "24/7"
Maps to:
- BusinessService with SLA properties
- Contract entity for formal SLA
Modeling Workflow
Step 1: Identify Business Actors and Roles
# Add business actors
dr add business actor "Customer" \
--description "End user purchasing products"
dr add business actor "Sales Team" \
--description "Internal sales organization"
# Add business roles
dr add business role "Sales Representative" \
--description "Responsible for customer acquisition"
dr add business role "Account Manager" \
--description "Manages existing customer relationships"
Step 2: Define Business Services
# Core business service
dr add business service "Order Management Service" \
--properties sla-availability=99.9%,sla-response-time=500ms \
--description "Manages customer order lifecycle"
# Link to motivation layer
dr relationship add "business/service/order-management" \
supports "motivation/goal/improve-order-efficiency"
Step 3: Model Business Processes
# Main process
dr add business process "Order Fulfillment Process" \
--properties bpmn-file=processes/order-fulfillment.bpmn \
--description "End-to-end order fulfillment from creation to delivery"
# Sub-processes
dr add business process "Pick Items Process" \
--description "Pick items from warehouse inventory"
dr add business process "Pack Order Process" \
--description "Pack picked items for shipment"
# Composition relationships
dr relationship add "business/process/order-fulfillment" \
composes "business/process/pick-items"
dr relationship add "business/process/order-fulfillment" \
composes "business/process/pack-order"
# Process flows
dr relationship add "business/process/pick-items" \
flows-to "business/process/pack-order"
Step 4: Define Business Objects
# Core business objects
dr add business object "Order" \
--description "Customer purchase order"
dr add business object "Customer" \
--description "Individual or organization purchasing products"
dr add business object "Product" \
--description "Item available for purchase"
# Process access to objects
dr relationship add "business/process/order-fulfillment" \
accesses "business/object/order"
Step 5: Model Business Events
# Events that trigger processes
dr add business event "Order Received" \
--properties type=state-change,topic=orders.received \
--description "New order submitted by customer"
dr add business event "Payment Confirmed" \
--properties type=state-change,topic=payments.confirmed \
--description "Payment successfully processed"
# Event triggering
dr relationship add "business/event/order-received" \
triggers "business/process/order-fulfillment"
Step 6: Establish Cross-Layer Relationships
# Link to application layer
dr relationship add "business/service/order-management" \
realized-by "application/service/order-api"
# Link to motivation layer
dr relationship add "business/service/order-management" \
delivers "motivation/value/customer-satisfaction"
# Link to data layer
dr relationship add "business/object/order" \
defined-by "data-model/schema/order.schema.json"
Step 7: Validate
dr validate --layer business
dr validate --validate-relationships
Common Modeling Scenarios
Scenario 1: E-commerce Order Management
Product: "E-commerce Platform"
├── composes → BusinessService: "Order Service"
│ ├── realizes ← BusinessProcess: "Order Fulfillment"
│ │ ├── triggers ← BusinessEvent: "Order Received"
│ │ ├── accesses → BusinessObject: "Order"
│ │ └── assigned-to → BusinessRole: "Order Processor"
│ └── realized-by → ApplicationService: "OrderManagementAPI"
├── composes → BusinessService: "Payment Service"
│ └── realizes ← BusinessProcess: "Payment Processing"
└── aggregates → Contract: "E-commerce SLA"
Scenario 2: Customer Support System
BusinessFunction: "Customer Support"
├── composes → BusinessProcess: "Ticket Resolution"
│ ├── triggers ← BusinessEvent: "Support Request Received"
│ ├── assigned-to → BusinessRole: "Support Agent"
│ ├── accesses → BusinessObject: "Support Ticket"
│ └── flows-to → BusinessProcess: "Follow-up Communication"
├── realizes → BusinessService: "Support Service"
│ ├── serves → BusinessActor: "Customer"
│ └── properties: sla-response-time=2h, sla-resolution-time=24h
└── tracked-by → BusinessMetric: "First