Ferramentas UML
Embora seja temerário fazer generalizações, podemos observar que o processo de desenvolvimento de um software não é trivial, embora não seja difícil, é altamente complexo. E não há nada de errado com isso, pois o processo criativo é multifacetado. Por exemplo, o projeto de arquitetura de software é uma construção tecnológica e cultural, cujas bases foram surgindo como uma abstração para gerenciar um âmbito complexo e criar mecanismos de comunicação entre entidades. A circunstância não implica nem de longe, porém, que o projeto de arquitetura de software deve envolver apenas fatores relacionados a codificação e seus relacionamentos (estruturas); mas descrever como os elementos de um sistema se relacionam e trabalham juntos para atender aos requisitos do projeto de software. Na verdade, caberia pensar além e perguntar o que há entre ideação e codificação, ideia e produto. Nesse sentido, almejando elaborar um juízo crítico sobre as principais dimensões da arquitetura e o design de software, crê-se possível, nesta aula, proceder uma reflexão sobre ferramentas para modelagem orientada a objetos.
Portanto, nesta aula, continuaremos nosso diálogo sobre programas de diagramação comumente usados na indústria em desenvolvimento de software. Além disso, vamos relembrar o propósito da existência da UML, conceitos de modelagem dentro da UML e objetivos da arquitetura e design de software.
Vamos lá?!
O processo de desenvolvimento de software moderno abrange a documentação, programação, teste, projeto, manutenção e um conjunto de atividades parcialmente ordenadas focadas no ciclo de vida de um produto de software. Portanto, do ponto de vista do processo de desenvolvimento, umas das principais dificuldades da esfera criativa é, sem dúvida, gerenciar o ciclo de vida de um sistema de informação. De fato, no âmbito da indústria 4.0, os desenvolvedores de software se deparam com a tarefa de reorientar os processos de produção; mas, infelizmente, para reorientar ou transformar tal projeto em um ciclo organizado, muitas vezes, devemos reescrever tudo do zero.
Como assim? Na maioria dos projetos de software, o ciclo do produto acontece quase da mesma maneira: ideias e planos. Novamente, não há nada de errado com planos. No entanto, lembre-se: existem muitas etapas entre ideação e codificação. Você tem uma ideia interessante de produto? Não basta apenas validar as ideias através de um protótipo, é necessário compreender os principais componentes do produto, suas estruturas e como eles interagem entre si. Na prática, significa que, conscientemente ou não, cada uma das decisões da etapa criativa pode ter um impacto significativo no desempenho e sucesso geral do produto de software. Teoricamente, trata-se de ponto relevante, já que o desenvolvedor deve:
Silva e Videira (2001, p. 237) comentam que “os diagramas de arquitetura (ou diagramas de implementação) descrevem aspectos da fase de implementação e instalação de um sistema de software, designadamente a estrutura e dependências de código fonte e de módulos executáveis tal como a sua respectiva instalação nas diferentes plataformas computacionais subjacentes”. Podemos observar que a UML, como sabemos, é uma linguagem de modelagem que serve como meio de comunicação em um projeto; consiste em um conjunto integrado de soluções projetadas para auxiliar os desenvolvedores a construir e visualizar artefatos de sistemas, expressar o design de projetos de software, validar a arquitetura do projeto, e assim por diante.
Na modelagem de processos e arquitetura de projetos, via de regra, existem três modelos principais: Objeto, Funcional e Dinâmico. Para descrever esses modelos na produção de um software, dois tipos de diagramas são usados: estruturais e comportamentais. E quais são os programas de diagramação comumente usados?
Existem muitas ferramentas de modelagem UML, mas vamos focar em três: Dia (Gnome), ArgoUml e Umbrello. As ferramentas supracitadas foram escolhidas pois são gratuitas e estão disponíveis para download nos sites dos desenvolvedores. A seguir uma descrição de cada ferramenta será fornecida.
Dia Diagram Editor (Gnome)
Dia é uma ferramenta de criação de diagramas baseado no projeto GTK (uma aplicação multiplataforma para criar interfaces gráficas de usuário) para GNU/Linux, MacOS X, Unix e Windows, e é lançado sob a licença GPL. O editor de diagramas é uma ferramenta versátil, embora seja uma solução inspirada no Microsoft Visio (uma aplicação para projetar uma grande variedade de diagramas). De acordo com o site da desenvolvedora, o Dia " pode ser usado para desenhar muitos tipos diferentes de diagramas. Atualmente, possui objetos especiais para ajudar a desenhar diagramas de relacionamento de entidade, diagramas UML, fluxogramas, diagramas de rede e muitos outros diagramas. Também é possível adicionar suporte para novas formas escrevendo arquivos XML simples, usando um subconjunto de SVG para desenhar a forma” (DIA, 2020, documento online).
Visite a página de download para obter sua cópia do Dia Diagram Editor: https://wiki.gnome.org/Apps/Dia/Download. (acesso em 30/09/2022)

ArgoUML
O ArgoUML é uma solução inovadora e flexível que permite aos desenvolvedores projetarem o design, a documentação e até mesmo o projeto estrutural de software orientados a objetos. De acordo com o site da ferramenta, é a principal ferramenta de modelagem UML de código aberto e inclui suporte para todos os diagramas UML 1.4 padrão. Ele roda em qualquer plataforma Java e está disponível em dez idiomas" (ARGOUML, 2022, documento online). Principais características do ArgoUML: