lifecycle_roadmap View
The lifecycle_roadmap view visualizes architectural evolution across time. It projects entities that declare lifecycle phases (Plan, Build, Run, Retire) onto a multi-phase Gantt timeline, organized by architectural layer and tracking entity migrations.
Visual Projection
Lifecycle Roadmap View showing phased timeline Gantt chart with layer grouping and migrates_to links
Purpose & Target Audience
- Target Audience: Enterprise Architects, Portfolio Managers, Program Directors, Transformation Leads.
- Primary Use Cases:
- Visualizing multi-year architecture roadmaps and legacy modernization timelines.
- Tracking concurrent and sequential lifecycle phases (
Plan->Build->Run->Retire). - Mapping decommissioning and replacement milestones via
migrates_torelationships. - Exporting roadmap schedules to CSV for executive reporting and PMO alignment.
Supported Entity Types & Semantics
| Entity Type | Description |
|---|---|
system, app, capability, infrastructure, etc. | Any architectural entity with declared lifecycle phases. |
Lifecycle Phases Syntax
Entities define ordered or overlapping lifecycle phases with start and optional end dates:
system PaymentsCore "Core Payments Engine" {
lifecycle {
phase Plan start "2023-01-01" end "2023-06-30"
phase Build start "2023-05-01" end "2024-01-15"
phase Run start "2024-01-15" end "2026-12-31"
phase Retire start "2026-12-31"
}
}
- When phases overlap, the roadmap automatically assigns vertical sub-tracks within the entity row.
- The only permitted relationship verb in
lifecycle_roadmapviews ismigrates_to. Other verbs emit compiler warningNEA2013. - View closure depth is
None(intrinsic scope: only matched entities and explicitmigrates_tolinks are rendered).
Example View Declaration
views {
lifecycle_roadmap payments_modernization_roadmap "Payments Modernization Roadmap" {
description "Multi-year transition from legacy mainframe to cloud payments core"
include PaymentsCore
include PaymentsCloud
include_verb migrates_to
}
}
Styling Phase Bars (phase.<value>)
Roadmap timeline bars can be styled using dotted selectors prefixed by the authoring keyword phase:
Authored in .ea | Selector | Target Element |
|---|---|---|
phase Plan start "..." | phase.Plan | All Plan phase bars |
phase Build start "..." | phase.Build | All Build phase bars |
phase Run start "..." | phase.Run | All Run phase bars |
phase Retire start "..." | phase.Retire | All Retire phase bars |
Applicable Properties
Phase bar style rules support visual bar presentation:
fill: Bar background fill color (e.g.fill "#06b6d4").css_class: External CSS class name for pattern/striping cues.custom_css: Inline SVG/HTML CSS declarations.label { ... }: Label text styling (includingvisible,color,font_size,font_weight).
Disallowed Properties
Phase bars reject shape, icon, arrow, and curve_type with a hard compiler error.
Scoping and Cascade Order
- Theme Preset Defaults: Applied automatically for all four standard lifecycle phases (
Plan,Build,Run,Retire). - Workspace
styles {}Block: Global overrides affecting everylifecycle_roadmapin the workspace. - In-View
styles {}Block: Overrides scoped strictly to the declaring view. style *Isolation: Wildcard rules (style *) never match or recolor phase bars.
Conditional Styling with where
Predicates evaluate against the owning entity (app, system, capability):
views {
lifecycle_roadmap payments_modernization_roadmap "Payments Modernization Roadmap" {
include system
# Highlight Retire phases for high-criticality systems
style phase.Retire where criticality == "High" {
fill "#dc2626"
css_class "retire-critical"
}
# Custom styling for platform-owned Run phases
style phase.Run where owner == "Platform Team" {
fill "#059669"
}
}
}
- Open-Ended Cap: When a phase has no
enddate, its open-ended arrow cap automatically inherits the bar's resolved style. - Dynamic Legend: The view legend reflects resolved colors after cascade resolution and omits phases absent from the view.