O que é linguagem de modelagem unificada e para que serve?

O que é linguagem de modelagem unificada e para que serve?

Em qualquer atividade profissional, ter um guia bem definido, com uma linguagem comum, ilustrado e de fácil compreensão para todos os profissionais, pode ser a vantagem competitiva que a empresa procura. Mas não só isso, pode ser também uma forma de auxiliar todos os envolvidos através da organização. Com organização todos podem unir forças para um objetivo comum.  

Na programação não é diferente. Quanto mais organizadas estiverem as etapas de trabalho, maiores as chances de ter um ótimo código como produto final. Antes de começar a programar, é necessário saber quais os requisitos (pedidos) do cliente, documentar como as tarefas serão feitas e, nesse sentido, a linguagem de modelagem unificada é uma importante ferramenta gráfica e lógica para organizar o passo a passo do desenvolvimento. A linguagem de modelagem unificada aparece em forma de diagramas que demonstram objetivo e finalidade do software como veremos a seguir. Boa leitura! 

O que é a linguagem de modelagem unificada (UML)?

É uma linguagem padrão usada para desenhar a estrutura de projeto de software. A sigla UML significa Unified Modeling Language, que traduzida para o português é exatamente igual ao título deste blog post: Linguagem de Modelagem Unificada. 

A UML é uma forma de representação gráfica do projeto. Através dela é possível gerar visualizações, construções e especificações de cenários, além da documentação do que foi executado. A UML, portanto, resulta em um diagrama que pode ser dividido em dois tipos, como veremos a seguir.

A principal função da linguagem de modelagem unificada é auxiliar as equipes a enxergarem como a operação deve ser executada e evitar problemas de comunicação entre a equipe. 

Antes da UML 1.0

Para se tornar unificada, a linguagem se modificou e evoluiu ao longo dos anos. Ela foi desenvolvida pela Rational Machine, criada especificamente para padronizar o passo a passo da engenharia de software, pela primeira vez, na década de 90.  

No final da década de 90, a UML foi adotada como linguagem padrão da Object Management Group (OMG), um consórcio de padrões da indústria de computadores. Depois foi aprovada pela International Organization for Standardization (ISO) como um padrão. Desde então, tem atualizações constantes que asseguram a manutenção da qualidade das diretrizes e formas de representação. 

A Rational evoluiu e contratou James Rumbaugh (modelagem orientada a objetos), Grady Booch (método) e Ivar Jacobson (OOSE - Engenharia de Software Orientada a Objetos) que foram cruciais no desenvolvimento da linguagem

UML 1.x

A UML 1.x teve liderança dos três profissionais que tinham como missão complementar a especificação da UML para propor a padronização à OGM. Outras empresas como Microsoft, IBM, HP e DEC tinham interesse nessa padronização também. 

O trabalho teve início em 1996 e um ano depois a UML 1.x se tornou UML 1.1, versão utilizada pela OGM. Em meio a tantas pesquisas e testes, a UML passou por diversas alterações e as versões foram evoluindo

Notação de cardinalidade

UML 2

Um consórcio ampliado seguiu revisando a versão anterior, até que a 2.0 substitui a 1.5, em 2005.  Ela é aprimorada constantemente, sempre pensando em aperfeiçoar a usabilidade, implementação e adaptação de forma simples. Essa versão tem mais integração entre diagramas de estrutura e de comportamento.  Também aumentou o número de diagramas de 9 para 13. 

Para que servem os diagramas UML?

Para organizar e apresentar um desenho da estrutura de um software. Com eles, programadores, gestores, clientes, usuários, todos saem ganhando. Já imaginou criar e manter softwares complexos sem ter um passo comum, uma forma comum de demonstrar um caminho ideal para o desenvolvimento do projeto. Seria difícil, não? 

Os UML servem para evitar problemas de entendimento entre os participantes do projeto sejam eles desenvolvedores ou clientes e também para evitar erros na hora de levantar os requisitos do projeto. 

Quem se beneficia dos diagramas UML?

Os diagramas UML beneficiam arquitetos de sistemas, engenheiros e desenvolvedores de software, a indústria e os clientes. Desenvolvedores terão um desenho estrutura do que o programa deve fazer, quais elementos devem constar e como ele deve seguir. Gestores saberão como o trabalho será desenvolvido e poderá administrar e clientes terão uma visão clara de como o projeto será desenvolvido.

Quais os tipos de UML?

Existem dois tipos de UML: estruturais e comportamento. Os diagramas estruturais são os elementos constantes no software, divididos em sete tipos. Já os comportamentais que também são cinco desenham como o sistema irá operar. 

Diagramas estruturais

São desenhos que determinam a estrutura de uma determinada ação. Ao desmembrar os tipos de diagramas estruturais, esse conceito fica mais claro. 

Diagramas de classe

Imagine um sistema de cobrança por peso de caminhão. Em um mesmo trabalho estarão as classes: pesagem, sistema de pesagem, informações (data, categoria, quantia, por exemplo) e pagamento. 

Esse exemplo segue um modelo muito utilizado nos diagramas de classe, dividido em três partes. Entretanto, dentro das classes podem estar outras classes e é justamente aí que está o grande uso. Dentro de operações muito grandes, os diagramas de classe determinam prioridades e caminhos a serem seguidos. 

Os diagramas de classes são os mais usados em UML, pois determinam as “coisas” e tem uma lista enorme de possibilidades de uso.

Diagramas de estrutura composta

São usados para determinar o que acontece dentro de uma classe. 

Diagramas de objetos

São muito semelhantes aos diagramas de classe, mas utilizam objetos reais, ações reais. Por exemplo, em um pedido de um cliente que compra material de construção. Esse cliente tem um cadastro com número, nome e telefone. 

Ele faz pedidos em grandes quantidades, muitas vezes separados. Neste em específico ele precisa de três itens diferentes com quantidades diferentes: cimento (100), canos de PVC (90) e cal (80). 

O diagrama está dividido entre os dados cadastrais e os pedidos. Na prática, o sistema prevê a atuação desses cenários e orienta quais passos seguir. 

Esse é um exemplo prático, mas pode ser usado com qualquer objeto real, portanto, os diagramas de objetos aparecem e podem ser escritos de inúmeras formas diferentes. 

Diagrama de sequência

É um diagrama comportamental, mas está aqui porque determina o comportamento de mais de um diagrama de objeto, respeitando onde uma deve iniciar e a outra parar, ou seja, ela determina também a relação entre os objetos. 

Um bom exemplo visual para o diagrama de sequência seria uma prova de atletismo de revezamento em que um corredor passa o bastão para o outro, porém, esse segundo já precisa estar acelerando, com o diagrama funcionando assim também, mas em gráficos. 

Diagramas de componentes

Geralmente usados para sistemas complexos como os sistemas de software. Podemos pensar em um sistema que integra pedido, produto, cliente e conta, para ilustrar. Esses componentes do sistema se comunicam através de interfaces e são desenhados de forma que cada passo seja direcionado a outro componente.

Diagramas de implementação ou instalação

Podem ser usados, por exemplo, para mapear instalações padrões em computadores diferentes. Imagine um departamento com 50 funcionários em que diferentes áreas atuam em conjunto, cada uma tem suas particularidades, mas usam programas em comum como e-mail, banco de imagens, entre outras opções. Os diagramas podem determinar o passo a passo para fazer isso, didaticamente falando. Muito mais fácil para quem vai fazer a implementação. 

Diagramas de pacotes

Muito utilizados para organizar complexos diagramas de classes. O diagrama de pacotes tem a capacidade de organizar ainda mais os diagramas de classe em pacotes mais simples e fáceis de ver. 

Diagrama de perfil

Foi incluído na versão 2.0, o último diagrama a ser acrescentado na lista. Vamos pensar em um perfil de audiência, ou seja, quem está vendo uma série de vídeos produzidos, por exemplo. Em um ambiente competitivo e cada vez mais especializado, é importante saber com que está se comunicando. 

Neste contexto, o diagrama seria ideal para determinar idade, localização, nacionalidade, língua, interesses, entre outros atributos. Analisando dessa forma, um exemplo prático de diagrama de perfil seria a interface do Google Analytics, porém, ela pode servir para qualquer negócio.   

Diagrama comportamental

Esses diagramas trabalham em conjunto aos diagramas de estrutura, porém, com a função de determinar quais ações devem ser tomadas, por quem e em qual momento. 

Diagrama de caso de uso

Determinam pessoas, ações e atividades de um processo e como elas se convertem. Em um sistema de biblioteca, por exemplo, teríamos dois atores: bibliotecário e leitor. O leitor pode pedir para fazer parte do cadastro da biblioteca, relatar um problema, procurar um livro e emprestar um livro, que terá que devolver depois. 

Já o bibliotecário pode incluir ou cancelar um membro no sistema, resolver e documentar problemas com livros, receber devoluções ou renovar. Ainda é responsável por novas aquisições e atualização do acervo. Assim o uso e atribuição de cada um fica mapeado. 

Esse é um exemplo simples, mas os diagramas de uso podem ser bastante complexos, prevendo a atuação de cada uma das pessoas, que os teóricos gostam de chamar também de atores. 

Diagrama de colaboração

Eles também são conhecidos como diagramas de comunicação e tem esse foco da mensagem entre os objetos  e como pode colaborar para que os processos aconteçam naturalmente.

Diagrama de transição de estados

Seguem a cronologia de atividade também, demonstrando a ação, porém, ela tem suas variáveis. Em um jogo, por exemplo, se joga até vencer e então o jogo acaba, caso contrário, ainda que pareça que ele terminou (game over) é possível recomeçar até que se vença. É possível determinar esse ciclo e a ele pode se dar o nome de diagrama de transição de estados que analisa variáveis enquanto executa as tarefas. 

Diagrama de atividade

Simbolizam o passo a passo de uma ação. Um exemplo seria o uso de um cartão de crédito, cujos passos são: inserir cartão, inserir senha, senha aprovada/Reprovada. 

Conclusão

A UML é uma ferramenta importante na construção de processos e padronização de modelagem. Ela está em desenvolvimento há mais de duas décadas e meia, sempre evoluindo e apresentando soluções de organização.

Com ela é possível que todos os profissionais, clientes e usuários de um sistema vejam, de forma simples e entendível, o cronograma de atividades, o passo a passo para que uma ação aconteça.  

Se você gostou desse conteúdo e gostaria de entrar na área de programação, eu recomendo que você faça a sua inscrição na próxima turma da Kenzie Academy Brasil.