PlantUML

“PlantUML é usado para desenhar diagramas UML, usando uma descrição de texto simples e legível. Tenha cuidado, pois isso não impede que você desenhe diagramas inconsistentes (como ter duas classes herdando uma da outra, por exemplo). Portanto, é mais uma ferramenta de desenho do que de modelagem.” - PlantUML.org

Diagramas

C4 Model

O C4 Model é uma técnica de notação gráfica enxuta para modelar a arquitetura de sistemas de software. Ele é baseado em uma decomposição estrutural (uma estrutura de árvore hierárquica) de um sistema em contêineres e componentes e depende de técnicas de modelagem existentes, como Unified Modeling Language (UML) ou diagramas de entidade-relacionamento (ERDs) para a decomposição mais detalhada dos blocos de construção arquitetônicos.

Código fonte
@startuml
   skinparam dpi 300
   !include <C4/C4_Container>

   AddElementTag("v1.0", $borderColor="#d73027")
   AddElementTag("v1.1", $fontColor="#d73027")
   AddElementTag("backup", $fontColor="orange")

   AddRelTag("backup", $textColor="orange", $lineColor="orange", $lineStyle = DashedLine())

   Person(user, "Customer", "People that need products")
   Person(admin, "Administrator", "People that administrates the products via the new v1.1 components", $tags="v1.1")
   Container(spa, "SPA", "angular", "The main interface that the customer interacts with via v1.0", $tags="v1.0")
   Container(spaAdmin, "Admin SPA", "angular", "The administrator interface that the customer interacts with via new v1.1", $tags="v1.1")
   Container(api, "API", "java", "Handles all business logic (incl. new v1.1 extensions)", $tags="v1.0+v1.1")
   ContainerDb(db, "Database", "Microsoft SQL", "Holds product, order and invoice information")
   Container(archive, "Archive", "Audit logging", "Stores 5 years", $tags="backup")

   Rel(user, spa, "Uses", "https")
   Rel(spa, api, "Uses", "https")
   Rel_R(api, db, "Reads/Writes")
   Rel(admin, spaAdmin, "Uses", "https")
   Rel(spaAdmin, api, "Uses", "https")
   Rel_L(api, archive, "Writes", "messages", $tags="backup")

   SHOW_LEGEND()
@enduml
Diagrama