UML: A linguagem de modelagem unificada para sistemas de software

UML: A linguagem de modelagem unificada para sistemas de software


Fala pessoal, como vão?

Muito provavelmente você que estudou ou estuda uma graduação de TI ou trabalha na área, teve que desenhar alguns diagramas, certo?

A modelagem de sistemas de software é uma atividade essencial no desenvolvimento de qualquer sistema complexo. Ela permite que os desenvolvedores visualizem e entendam os componentes e relacionamentos de um sistema antes de começar a codificação.

Este artigo fornece uma introdução à UML. Ele discute os conceitos básicos da UML, os diferentes tipos de diagramas UML e como eles podem ser usados.

O artigo é destinado a desenvolvedores de software, gerentes de projetos de software e outros profissionais que trabalham com sistemas de software. Ele é escrito em um tom claro e conciso, e fornece exemplos e ilustrações para ajudar os leitores a entender os conceitos apresentados.

Então vamos abordar um pouco sobre Linguagem de Modelagem Unificada, mais conhecida como UML.

Venha comigo então.


O que citarei nesse artigo?

  1. Conceito
  2. Objetivos
  3. Tipos de diagramas
  4. Onde pode ser utilizada?
  5. Vantagens
  6. Melhores práticas para criar diagramas UML
  7. Quais softwares podem criar UML?
  8. Conclusão
  9. Hashtags
  10. Fontes


1. Conceito

A UML (do inglês Unified Modeling Language, em português Linguagem de Modelagem Unificada) é uma linguagem-padrão para a elaboração da estrutura de projetos de software. Ela poderá ser empregada para a visualização, a especificação, a construção e a documentação de artefatos que façam uso de sistemas complexos de software. Em outras palavras, na área de Engenharia de Software, a UML é uma linguagem de modelagem que permite representar um sistema de forma padronizada (com intuito de facilitar a compreensão pré-implementação). A UML é adequada para a modelagem de sistemas, cuja abrangência poderá incluir desde sistemas de informação corporativos a serem distribuídos a aplicações baseadas na Web e até sistemas complexos embutidos de tempo real. É uma linguagem muito expressiva, abrangendo todas as visões necessárias ao desenvolvimento e implantação desses sistemas.

A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre os objetos (e em certos casos a identificação dos processos).

Basicamente, a UML permite que desenvolvedores visualizem os produtos de seus trabalhos em diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados, isto é, semântica. É uma notação independente de processos, embora o RUP (Rational Unified Process) tenha sido especificamente desenvolvido utilizando a UML.

É importante distinguir entre um modelo UML e um diagrama (ou conjunto de diagramas) de UML. O último é uma representação gráfica da informação do primeiro, mas o primeiro pode existir independentemente. O XMI (XML Metadata Interchange) na sua versão corrente disponibiliza troca de modelos mas não de diagramas.


2. Objetivos

Os objetivos da UML são:

  • especificação,
  • documentação,
  • estruturação para sub-visualização e
  • maior visualização lógica do desenvolvimento completo de um sistema de informação.


3. Tipos de diagramas

Então, quais são os diferentes tipos de diagramas UML? Existem duas categorias principais:

  • diagramas de estrutura e
  • diagramas comportamentais.

Os diagramas de estrutura mostram as coisas no sistema modelado. Em um termo mais técnico, eles mostram diferentes objetos em um sistema.

Os diagramas comportamentais mostram o que deve acontecer num sistema. Eles descrevem como os objetos interagem uns com os outros para criar um sistema funcional.

Tipos de diagramas de UML


Diagrama de Classes

Os diagramas de classes são o principal componente de qualquer solução orientada a objetos onde mostra as classes em um sistema, atributos e operações de cada classe e a relação entre cada classe.

Na maioria das ferramentas de modelagem, uma classe tem três partes. Nome no topo, atributos no meio e operações ou métodos no fundo. Num sistema grande com muitas classes relacionadas, as classes são agrupadas para criar diagramas de classes. Diferentes relações entre as classes são mostradas por diferentes tipos de setas.

Abaixo está uma imagem de um diagrama de classes.

Diagrama de classes


Diagrama de componentes

Um diagrama de componentes mostra a relação estrutural dos componentes de um sistema de software. Estes são utilizados principalmente quando se trabalha com sistemas complexos com muitos componentes. Os componentes se comunicam uns com os outros usando interfaces. As interfaces são ligadas através de conectores. A imagem abaixo mostra um diagrama de componentes.

Modelo de diagrama de componentes


Diagrama de Implantação

Um diagrama de implantação mostra o hardware do seu sistema e o software nesse hardware. Os diagramas de implantação são úteis quando a sua solução de software é implantada em várias máquinas, tendo cada uma delas uma configuração única. Abaixo está um exemplo de diagrama de implantação.

Diagrama de implantação


Diagrama de objetos

Os diagramas de objetos, às vezes chamados de diagramas de instância, são muito semelhantes aos diagramas de classes. Como os diagramas de classes, eles também mostram a relação entre objetos, mas usam exemplos do mundo real. Eles mostram como será um sistema em um determinado momento. Como há dados disponíveis nos objetos, eles são usados para explicar relações complexas entre objetos.

Diagrama de objetos.


Diagrama do pacote

Como o nome sugere, um diagrama de pacotes mostra as dependências entre os diferentes pacotes de um sistema.

Diagrama do pacote.


Diagrama de Perfil

O diagrama de perfil é um novo tipo de diagrama introduzido no UML 2. Este é um tipo de diagrama que é muito raramente utilizado em qualquer especificação.

Diagrama de Perfil.


Diagrama de Estrutura Composta

Os diagramas de estrutura compostos são usados para mostrar a estrutura interna de uma classe.

Diagrama de Estrutura Composta.


Use o diagrama de caso

Como o tipo de diagrama mais conhecido dos tipos de UML comportamentais, diagramas de caso de uso dão uma visão gráfica dos atores envolvidos em um sistema, diferentes funções necessárias para esses atores e como essas diferentes funções interagem. É um ótimo ponto de partida para qualquer discussão de projeto porque você pode identificar facilmente os principais atores envolvidos e os principais processos do sistema. Você pode criar diagramas de caso de uso usando alguma ferramenta e/ou começar imediatamente usando alguns modelos de caso de uso.

Diagrama de caso.


Diagrama de atividades

Os diagramas de atividade representam fluxos de trabalho de uma forma gráfica. Podem ser utilizados para descrever o fluxo de trabalho empresarial ou o fluxo de trabalho operacional de qualquer componente de um sistema. Às vezes, diagramas de atividade são usados como uma alternativa aos diagramas de máquina do Estado.

Diagrama de atividades


Diagrama da Máquina do Estado

Os diagramas das máquinas de estado são semelhantes aos diagramas de atividade, embora as notações e o uso mudem um pouco. Por vezes são também conhecidos como diagramas de estados ou diagramas de gráfico de estados. Estes são muito úteis para descrever o comportamento de objetos que agem de forma diferente de acordo com o estado em que se encontram no momento. O diagrama da máquina de estado abaixo mostra os estados e ações básicas.

Diagrama de Estado da Máquina em UML, por vezes referido como diagrama de Estado ou diagrama de gráfico de Estado.


Diagrama de Sequência

Os diagramas de sequência em UML mostram como os objetos interagem uns com os outros e a ordem em que essas interações ocorrem. É importante notar que eles mostram as interações para um determinado cenário. Os processos são representados verticalmente e as interações são mostradas como setas.

Diagrama de Sequência.


Diagrama de Comunicação

Em UML 1 foram chamados de diagramas de colaboração. Os diagramas de comunicação são semelhantes aos diagramas de sequência, mas o foco está nas mensagens passadas entre objetos. A mesma informação pode ser representada usando um diagrama de sequência e diferentes objetos.

Diagrama de Comunicação.


Diagrama de visão geral da interação

Os diagramas de síntese das interações são muito semelhantes aos diagramas de atividades. Enquanto os diagramas de atividade mostram uma sequência de processos, os diagramas de visão geral de interação mostram uma sequência de diagramas de interação. São um conjunto de diagramas de interação e a ordem em que acontecem.

Diagrama de visão geral da interação.


Diagrama de tempo

Os diagramas de tempo são muito semelhantes aos diagramas de sequência. Eles representam o comportamento dos objetos em um determinado período de tempo. Se for apenas um objeto, o diagrama é simples. Mas, se houver mais de um objeto envolvido, um diagrama de tempo é usado para mostrar interações entre objetos durante esse período de tempo.

Diagrama de tempo.


4. Onde pode ser utilizada?

A UML se destina principalmente a sistemas complexos de softwares. Tem sido empregada de maneira efetiva em domínios como os seguintes:

  • Sistemas de informações corporativos;
  • Serviços bancários e financeiros;
  • Telecomunicações;
  • Transportes;
  • Defesa/Espaço Aéreo;
  • Vendas de Varejo;
  • Eletrônica médica;
  • Serviços distribuídos.


5. Vantagens

Os diagramas UML são incrivelmente benéficos para qualquer equipe de desenvolvimento de software. Aqui estão algumas das principais vantagens do uso de um diagrama UML:


Facilita a compreensão de ideias e sistemas

Os diagramas UML tornam ideias abstratas e sistemas de software complexos mais fáceis de entender através da visualização. Isto é benéfico tanto para os desenvolvedores de software que estão envolvidos diretamente na criação de sistemas, como também para a comunicação com outros membros e líderes da equipe que participam da concepção do mesmo.

Eles podem usar a modelagem UML, por exemplo, para explicar como o sistema funciona para pessoas que não possuem conhecimento técnico no assunto.


Transforma códigos complexos em um diagrama visual

A construção de um software muitas vezes requer milhares de linhas de código complexas, com relacionamentos e hierarquias dentro delas. A interpretação deste código pode ser difícil e demorada. O uso de UML simplifica este processo transformando os ambientes de codificação em diagramas visuais fáceis de entender.


Mantém todos alinhados

O método UML funciona com diferentes linguagens de programação e processos de desenvolvimento. É uma maneira padronizada de visualizar o projeto de um sistema. O uso desta linguagem universal melhora a comunicação e o entendimento entre diferentes equipes de TI (do backend ao frontend).

Se alguém da equipe questionar como um sistema funciona, o diagrama visual pode funcionar como um ponto de referência. Isto alinha os membros da equipe sobre o progresso e as prioridades das tarefas dentro do processo de desenvolvimento do software.


Permite ter o panorama geral de um sistema

Durante o processo de desenvolvimento de software, é importante entender e lembrar o que você está tentando construir. Os desenvolvedores podem ficar atolados ao escrever centenas de códigos em massa, cada um em seu computador. Isto pode fazê-los perder-se no processo em vez de ver o projeto como um todo.

Um diagrama UML ajuda a criar uma visão geral e abrangente do sistema como um todo. Isto ajuda os desenvolvedores a permanecerem focados no objetivo final.


Ajuda outros colaboradores a entender os processos e as funcionalidades do software

Os desenvolvedores são os únicos que podem realmente compreender as funcionalidades, relacionamentos e hierarquias dentro de uma biblioteca de códigos. Mas outras pessoas da mesma organização também podem desempenhar um papel importante no projeto.

Os Product Owners, gerentes e líderes geralmente não conseguem decifrar a linguagem de programação usada para construir um software. Um diagrama UML ajuda todos fora da equipe de desenvolvimento a entender o processo de programação e como o sistema deve funcionar.


Usar uma notação comum significa que qualquer programador pode entendê-la

Nem todos os programadores entendem e se especializam no mesmo tipo de código e linguagens de programação. Há centenas de maneiras diferentes de desenvolver a mesma biblioteca de códigos. Um diagrama UML garante que programadores com diferentes habilidades e eficiências possam trabalhar juntos.


6. Melhores práticas para criar diagramas UML

Como tudo na vida, sempre existem boas práticas ao adotar uma nova metodologia, por isso aqui vão dicas ao criar diagramas UML.


Comece com um modelo

Pode ser difícil criar um diagrama UML completo do zero, ainda mais se for a primeira vez que você faz isso. Usando modelos de diagramas prontos e editáveis, você pode economizar bastante tempo e garantir que não lhe faltem componentes importantes no diagrama. Também pode te dar um excelente ponto de partida no qual você pode se basear. Com o tempo, você pode adaptar o modelo para atender às suas necessidades e exigências específicas.


Tenha claro seu objetivo ao criar um diagrama UML

Um diagrama UML serve um propósito específico - e é por isso que existem tantos tipos diferentes. Você deve sentar-se com sua equipe de desenvolvimento e entender porque estão criando um diagrama UML. Isto te ajudará a escolher o tipo de diagrama mais adequado, o que, por sua vez, te ajudará a obter os melhores resultados possíveis.


Compartilhe e colabore com sua equipe

O objetivo principal de um diagrama UML é aumentar a compreensão de uma equipe através da visualização. No entanto, a visualização não é a única maneira de melhorar a compreensão.

Compartilhe também seus diagramas UML com sua equipe para promover a colaboração e garantir que todos estejam na mesma página. Isto dá a chance deles contribuirem, aumentando alinhamento e aprimorando a comunicação em equipe.


7. Quais softwares podem criar UML?

De forma resumida, temos alguns softwares para a criação de UML como o Microsoft Visio que vem no pacote Office, Paradigma Visual (desktop e online), StarUML, Diagramas.net e muitos outros.


8. Conclusão

Viu que a UML há diversos diagramas e que apesar de ser voltado mais pra analista de sistemas e engenheiro de software, o desenvovledor deve saber de UML. O desenvovledor tem que saber documentar o projeto que será feito.

Ou você acha que é só sentar e criar código?

É sério, se você pensou ou pensa nisso, é melhor rever urgentemente os seus conceitos ou trocar de área profissional.

Não, não estou expulsando nem desmotivando ninguém.

A frustração é a pior coisa que tem num profissional que pensa que é uma coisa e, na verdade, é totalmente diferente.

A segunda pior coisa é o dinheiro e tempo gasto jogado no lixo.

Se assim mesmo você quer continuar, então vá em frente mas lembre-se que você que deve mudar o seu modo de ver o TI se realmente quer prosseguir na carreira.

Já disse em vários artigos e não canso de repetir: hoje as empresas não querem um profissional que chega, senta e cria códigos loucamente. Quer profissionais que resolvam problemas e que se enturmem, na gíria popular. Procura muito por profissionais que se comuniquem bem, são proativos, tenha empatia e que gosta de trabalhar em equipe, independe da distância (100 metros ou 100Km). Para dizer que não invento, basta procurar nas oportunidade. Te garanto que de 10 oportunidades, 9 são como descritos acima.

Como disse no prefácio, UML é uma disciplina que se estuda na graduação. A maioria dos diagramas que citei aqui, não são apresentados na graduação. Porém, digo que não se baseia em um único artigo. Sempre pesquisa por mais de um artigo que destrincha o assunto.

Se você fez, faz ou pensa em fazer, em algum momento da vida, a UML será apresentado a você ou já foi apresentado. E as empresas exigem que saiba UML. Várias, mas várias oportunidades exigem, como até eliminação, se você tem experiência ou conhecimento de UML. Ou não.

Nos concursos públicos, é de praxe que esse assunto UML irá cair na prova. Vários, mas vários concursos sendo voltado para TI ou não mas que exige o TI, o assunto UML está lá no edital. Então estude bastante para passar que tudo dará certo.




9. Hashtags

  • #uml
  • #modelagemdesoftware
  • #engenhariadesoftware
  • #diagramas
  • #comunicação
  • #clareza
  • #compreensão
  • #sistemas
  • #complexidade


10. Fontes

creately, Wikipédia, miro e cibermediano.

Carine Fraga

Desenvolvedora Back-end | C# | .NET Core | ASP.NET Core

10 m

Muito bom! UML traz mais compreensão sobre um projeto principalmente para pessoas que não tem conhecimento sobre o domínio do projeto.

Kauan Paixão

Representante de envios no Mercado Livre | Cybersecurity

10 m

Artigo incrível!

Entre para ver ou adicionar um comentário

Outros artigos de Luciano Rocha

Outras pessoas também visualizaram

Conferir tópicos