pyArchimate Architecture Diagramsο
This directory contains UML diagrams documenting the modularized architecture of pyArchimate following the 001-modularize-model feature specification.
Diagramsο
package.pumlο
Module Structure - Shows how pyArchimate is organized:
model.py,view.py,element.py,relationship.py- Core domain moduleshelpers/- Focused utility modules (diagram, properties, logging)readers/,writers/- External format adapterspyArchimate.py- Package entry point and public API shim
This diagram answers: βWhat modules exist and how do they connect?β
class.pumlο
Domain Model - Shows the core data structures:
Model- Root container for elements, relationships, views, and profiles.Element- Represents an ArchiMate element concept.Relationship- Represents a connection between concepts (Elements or other Relationships).View,Node,Connection- Diagram visualization structures inview.py.Profile- Tagging/specialization metadata for elements and relationships.
This diagram answers: βWhat classes and data structures does the domain use?β
Why Modularized?ο
After modularization, the codebase is better organized:
Clean module separation - Domain logic is decoupled from visualization and IO.
Explicit dependencies - Layers are enforced (e.g., core domain cannot import from readers/writers).
Facade pattern -
pyArchimate.pyprovides a stable interface for library consumers.Improved Maintainability - Clearer boundaries make the system easier to test and extend.
Renderingο
To render diagrams to PNG/SVG, install PlantUML and run:
plantuml docs/diagrams/package.puml
plantuml docs/diagrams/class.puml
Or use the online editor: https://www.plantuml.com/plantuml/uml/
Key Architectural Propertiesο
β
Clean module separation - Each module has a single responsibility
β
No circular imports - By design (module dependencies flow one direction)
β
Testable in isolation - Helpers and readers/writers can be tested independently
β
Backward compatible - Old import paths continue to work (via pyArchimate.py)
Last Updated: 2026-04-16
Status: Modularized Production Architecture