C4Sharp : diagramação de modelos C4 através da linguagem C#

Yan Justino
Yan Justino
3 min readApr 1, 2021

--

A modelagem é uma etapa importante do processo de software. O Design, uma de suas atividades, nos permite enxergar estruturas de software através de artefatos visuais [1]. Diagramas de arquitetura, por exemplo, são boas ferramentas de suporte à comunicação. Eles auxiliam todos na compreensão do software em desenvolvimento, o que pode trazer uma maior eficiência à equipe. Existem várias ferramentas e técnicas de diagramação [2]. Trataremos aqui da C4 model, no contexto de apresentação da ferramenta C4Sharp: uma biblioteca para diagramação em código através do suporte da linguagem C# e C4-PlantUML.

C4 Model

Apresentação da abordagem

O modelo C4 foi criado pelo arquiteto de software Simon Brown entre 2006 e 2011; influenciado pela Unified Modeling Language (UML) e pelo modelo de visão arquitetônica 4 + 1.

É uma abordagem para diagramar arquiteturas de software, com base em abstrações que, segundo seus criadores, refletem como os arquitetos e desenvolvedores pensam e criam software.

Esse modelo estipula estruturas estáticas de um sistema de software em termos de contêineres, componentes e código, além das pessoas e contextos nos quais elas fazem uso do sistema.

Figura 1. Hierarquia dos diagrams C4 Model

Como ilustra a Figura 1, a visualização dessa hierarquia de abstrações se dá pela criação de um conjunto de diagramas — de Contexto, Contêiner, Componente e (opcionalmente) Código (por exemplo, classe UML).

Com isso, C4 Model oferece uma forma de construir e apresentar diagramas de arquitetura de software em diferentes níveis de detalhe para diferentes tipos de público. Isso colabora com uma possível melhora no fluxo de comunicação entre equipes diferentes, bem como com novos desenvolvedores que precisam de uma imersão rápida ao projeto de software.

C4Sharp

Apresentação da biblioteca

Com a recente popularidade do C4 model, um conjunto de novas ferramentas também surgiu para facilitar a criação e adoção da abordagem. Vários projetos, como Structurizr, oferecem diversos recursos (pagos e gratuitos) para equipes explorarem as possibilidades da diagramação C4 model.

C4Sharp também é uma ferramenta para diagramação de modelos C4 em código-fonte. Está disponível como biblioteca .net e funciona como um superconjunto do C4-PlantUML, por meio do qual os desenvolvedores podem criar, compartilhar e consumir diagramas de modelo C4 como código C #.

Foi desenvolvida com objetivo de fornecer um ambiente local de geração dos diagramas e arquivo PUML, e também uma DSL mais amigável e focada para desenvolvedores .net que utilizam a linguagem C#. Vejam os exemplos abaixo no Código 1.

Exemplo

Código 1. Exemplo de diagramação de Contexto

A primeira parte do Código 1, exemplifica como gerar um diagrama de contexto utilizando a classe ContextDiagram, informando suas estruturas (Structures) e respectivas relações (Relationships). Já a segunda parte do código, exemplifica como criamos estruturas estáticas utilizadas no nosso diagrama. A execução desse código gera o diagrama ilustrado na Figura 2.

Figura 2. Diagrama de Contexto

Conclusão

Este artigo foi uma breve apresentação da ferramenta C4Sharp: uma biblioteca para diagramação de modelos C4 em código, através do suporte da linguagem C# e C4-PlantUML.

Quer conhecer mais sobre o projeto C4Sharp e colaborar com seu crescimento? Acesse o repositório abaixo e veja como contribuir.

Referências

Material de apoio para a escrita desse post

  1. Gomaa, H. (2011). Introduction. In Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures (pp. 3–13). Cambridge: Cambridge University Press. doi:10.1017/CBO9780511779183.003
  2. Omg.org. 2021. Modeling Category — Specifications associated. [online] Available at: <https://www.omg.org/spec/category/modeling> [Accessed 1 April 2021].

--

--

Yan Justino
Yan Justino

MSc. Software Engineering — MCP | MCSA | MCSD | OCA