Tutorial de diagrama UML

17 min

Uma imagem vale mais que mil palavras. É por isso que a Unified Modeling Language (UML) foi criada para fornecer uma linguagem visual comum no complexo mundo do desenvolvimento de software que também fosse compreensível para usuários de negócios e qualquer pessoa que queira entender um sistema. Este guia aborda tudo o que você precisa saber sobre a UML. Mesmo que você tenha conhecido a UML em um treinamento formal e não a tenha usado muito desde então, ela continua sendo uma maneira prática de manter sistemas complexos compreensíveis — especialmente quando usada como documentação viva em vez de uma entrega única.

O que é UML?

A Unified Modeling Language (UML) foi criada para construir uma linguagem de modelagem visual comum, semântica e sintaticamente rica para a arquitetura, design e implementação de sistemas de software complexos, tanto estrutural quanto comportalmente.

Ela é análoga às plantas baixas usadas em outras áreas e consiste em diferentes tipos de diagramas. No geral, os diagramas UML descrevem o limite, a estrutura e o comportamento do sistema e dos objetos dentro dele. Ao escrever código, há milhares de linhas em um aplicativo e é difícil acompanhar os relacionamentos e as hierarquias dentro de um sistema de software. Os diagramas UML dividem esse sistema de software em componentes e subcomponentes.

Existem quatro categorias de modelos de resolução de problemas: linguagens imperativas, funcionais, declarativas e orientadas a objetos. Nas linguagens orientadas a objetos, os algoritmos são expressos definindo-se “objetos” e fazendo com que eles interajam entre si. Esses objetos são elementos a serem manipulados e existem no mundo real. Podem ser edifícios, widgets em uma área de trabalho ou seres humanos.

As linguagens orientadas a objetos dominam o mundo da programação porque modelam objetos do mundo real. A UML é uma combinação de várias notações orientadas a objetos: design orientado a objetos, técnica de modelagem de objetos e engenharia de software orientada a objetos.

A UML utiliza os pontos fortes dessas três abordagens para apresentar uma metodologia mais consistente e mais fácil de usar. A UML representa as melhores práticas para a criação e documentação de diferentes aspectos da modelagem de sistemas de software e de negócios. Como a UML é padronizada, ela pode ser aplicada em várias linguagens de programação e processos de desenvolvimento, tornando-se amplamente legível para a maioria dos desenvolvedores de software.

Na prática, a UML também é uma forma de documentação visual que pode reduzir o tempo gasto explicando um sistema repetidamente. Essa documentação pode ajudar engenheiros de várias maneiras, desde a integração de novos funcionários até o fornecimento de uma visão geral rápida do sistema para as partes interessadas, para que os desenvolvedores não percam tempo em reuniões.

A história e as origens da UML

Grady Booch, James Rumbaugh e Ivar Jacobson, também conhecidos como “Os Três Amigos” da engenharia de software, uniram forças para trazer clareza aos programadores criando novos padrões.

Os esforços desse grupo resultaram no lançamento dos documentos UML 0.9 e 0.91 em 1996. Logo ficou claro que várias organizações, incluindo Microsoft, Oracle e IBM, viam a UML como fundamental para o desenvolvimento de seus próprios negócios. Elas, junto com muitas outras pessoas e empresas, estabeleceram recursos que puderam desenvolver uma linguagem de modelagem completa. Os Três Amigos publicaram o The Unified Modeling Language User Guide em 1999 e uma atualização em 2005, que includes a UML 2.0.

 

O papel do Object Management Group (OMG) na UML

De acordo com o site deles, o Object Management Group® (OMG®) é um consórcio internacional de padrões de tecnologia, aberto a membros e sem fins lucrativos, fundado em 1989. Os padrões do OMG são impulsionados por fornecedores, usuários finais, instituições acadêmicas e agências governamentais. As Forças-Tarefa do OMG desenvolvem padrões de integração empresarial para uma ampla gama de tecnologias e uma variedade ainda maior de setores. Os padrões de modelagem do OMG, incluindo a UML e a Model Driven Architecture® (MDA®), permitem o design visual poderoso, a execução e a manutenção de software e outros processos.

O OMG supervisiona a definição e a manutenção das especificações da UML. Essa supervisão dá a engenheiros e programadores a capacidade de usar uma única linguagem para muitas finalidades durante todas as fases do ciclo de vida do software, para todos os tamanhos de sistema.

O OMG define o propósito da UML como:

  • Fornecer a arquitetos de sistema, engenheiros de software e desenvolvedores de software ferramentas para análise, design e implementação de sistemas baseados em software, bem como para a modelagem de negócios e processos semelhantes.

  • Avançar o estado do setor permitindo a interoperabilidade de ferramentas de modelagem visual de objetos. No entanto, para permitir a troca significativa de informações de modelo entre ferramentas, é necessário um acordo sobre semântica e notação.

A UML atende aos seguintes requisitos:

  • Estabelecer uma definição formal de um metamodelo comum baseado em Meta-Object Facility (MOF) que especifica a sintaxe abstrata da UML. A sintaxe abstrata define o conjunto de conceitos de modelagem da UML, seus atributos e seus relacionamentos, bem como las regras para combinar esses conceitos para construir modelos UML parciais ou completos.

  • Fornecer uma explicação detalhada da semântica de cada conceito de modelagem da UML. A semântica define, de maneira independente de tecnologia, como os conceitos da UML devem ser realizados por computadores.

  • Especificar os elementos de notação legíveis por humanos para representar os conceitos individuais de modelagem da UML, bem como as regras para combiná-los em uma variedade de tipos de diagramas diferentes correspondentes a diferentes aspectos dos sistemas modelados.

  • Definir maneiras pelas quais as ferramentas UML podem se tornar compatíveis com esta especificação. Isso é respaldado (em uma especificação separada) por uma especificação baseada em XML de formatos correspondentes de intercâmbio de modelos (XMI) que devem ser realizados por ferramentas compatíveis.

 

Tipos de diagramas UML

A UML usa elementos e os associa de diferentes maneiras para formar diagramas estáticos (que representam aspectos estruturais de um sistema) e diagramas comportamentais (que representam aspectos dinâmicos de um sistema). Para quem não está familiarizado, pode parecer que existe um número infinito de diagramas UML, mas, na verdade, os padrões da UML identificam 14 tipos de diagramas que são divididos em dois grupos, definidos abaixo.

Diagramas UML estruturais

  • Diagrama de classes: este é o diagrama UML mais comumente usado e a base principal de qualquer solução orientada a objetos. Ele mostra as classes dentro de um sistema, atributos e operações, e o relacionamento entre cada classe. As classes são agrupadas para criar diagramas de classes ao diagramar sistemas grandes. Uma classe é representada por um retângulo que contém três compartimentos empilhados verticalmente: o compartimento superior contém o nome da classe e é obrigatório, mas os dois compartimentos inferiores fornecem detalhes sobre os atributos da classe e as operações ou comportamentos da classe.

  • Diagrama de componentes: um diagrama de componentes é essencialmente uma versão mais especializada do diagrama de classes — as mesmas regras de notação se aplicam a ambos. Um diagrama de componentes divide um sistema complexo em componentes menores e visualiza o relacionamento entre eles.

  • Diagrama de estrutura composta: esses tipos de diagramas são essencialmente as plantas para a estrutura interna de um classificador. Eles também podem ser usados para mostrar o comportamento de uma colaboração ou as interações do classificador com seu ambiente por meio de portas. Eles podem descrever facilmente os componentes internos de qualquer hardware para entender mais detalhadamente o funcionamento interno.

  • Diagrama de implantação: esses diagramas são mais úteis para engenheiros de sistemas e normalmente mostram desempenho, escalabilidade, capacidade de manutenção e portabilidade. Quando os componentes de hardware são exibidos em relação uns aos outros, fica mais fácil acompanhar toda a sua malha de hardware e garantir que todos os elementos sejam considerados em uma implantação.

  • Diagrama de objetos: os diagramas de objetos mostram exemplos de estruturas de dados em um momento específico. Você pode usar um diagrama de classes para mostrar uma estrutura e, em seguida, usar diagramas de objetos como casos de teste para verificar a integridade do seu diagrama de classes. Ou você pode criar um diagrama de objetos para descobrir informações sobre elementos do modelo e seus links.

  • Diagrama de pacotes: os diagramas de pacotes são usados para mostrar as dependências entre diferentes pacotes em um sistema. Um pacote, representado como uma pasta de arquivos, organiza elementos do modelo, como casos de uso ou classes, em grupos. Existem dois tipos especiais de dependências definidas entre pacotes: importação de pacote e fusão de pacote.

  • Diagramas de perfil: os diagramas de perfil também fazem parte do padrão UML e são usados principalmente quando você precisa adaptar a UML para um domínio específico. Adicionados recentemente à UML 2.0, os diagramas de perfil são únicos e raramente usados em qualquer especificação. Um diagrama de perfil é melhor compreendido como um mecanismo de extensibilidade para personalizar modelos UML para domínios e plataformas específicos.

Diagramas UML comportamentais

  • Diagramas de atividades: os diagramas de atividades são usados como uma alternativa aos diagramas de máquina de estados. Os diagramas de atividades visualizam as etapas executadas em um caso de uso — as atividades podem ser sequenciais, ramificadas ou concorrentes. Esse tipo de diagrama UML é usado para mostrar o comportamento dinâmico de um sistema, mas também pode ser útil na modelagem de processos de negócios.

  • Diagrama de comunicação: os diagramas de comunicação, que costumavam ser chamados de diagramas de colaboração, mostram como os objetos se relacionam entre si. Eles modelam a maneira como os objetos se associam e se conectam por meio de mensagens dentro do design arquitetônico de um sistema. Eles também podem mostrar cenários alternativos dentro de casos de uso ou operações que exigem a colaboração de diferentes objetos e interações.

  • Diagrama de visão geral de interação: este diagrama fornece uma visão geral do fluxo de controle entre os nós de interação. Eles incluem nós iniciais, nós finais de fluxo, nós finais de atividade, nós de decisão, nós de fusão, nós de bifurcação e nós de junção.

  • Diagrama de sequência: um diagrama de sequência, às vezes chamado de diagrama de eventos ou cenário de eventos, mostra la ordem em que os objetos interagem. Dessa forma, você pode representar visualmente cenários simples de tempo de execução.

  • Diagrama de estados: os diagramas de estados, simplificando, representam estados e transições. Um estado refere-se às diferentes combinações de informações que um objeto pode conter, e esse diagrama UML pode visualizar todos os estados possíveis e a maneira como o objeto faz a transição de um estado para o próximo.

  • Diagrama de tempo: frequentemente descrito como um diagrama de sequência invertido, um diagrama de tempo mostra como os objetos interagem entre si em um determinado período de tempo. Use esses diagramas para ver quanto tempo leva cada etapa de um processo e encontrar áreas de melhoria.

  • Diagrama de caso de uso: os diagramas de caso de uso modelam como os usuários, exibidos como figuras de palito chamadas de "atores", interagem com o sistema. Esse tipo de diagrama UML deve ser uma visão geral de alto nível dos relacionamentos entre atores e sistemas, por isso pode ser uma ótima ferramenta para explicar seu sistema a um público não técnico.

 

Glossário de termos UML

Familiarize-se com o vocabulário da UML com esta lista extraída do documento UML 2.4.1, destinada a ajudar os não membros do OMG a entender os termos comumente usados.

  • Conformidade com a sintaxe abstrata: os usuários podem mover modelos entre diferentes ferramentas, mesmo que usem notações diferentes.

  • Common Warehouse Metamodel (CWM): interfaces padrão usadas para permitir o intercâmbio de metadados de warehouse e business intelligence entre ferramentas de warehouse, plataformas de warehouse e repositórios de metadados de warehouse em ambientes heterogêneos distribuídos.

  • Conformidade com a sintaxe concreta: os usuários podem continuar a usar uma notação com a qual estão familiarizados em diferentes ferramentas.

  • Core (Núcleo): no contexto da UML, o núcleo geralmente se refere ao "pacote principal", que é um metamodelo completo projetado especialmente para alta reutilização.

  • Unidade de linguagem: consiste em uma coleção de conceitos de modelagem fortemente acoplados que fornecem aos usuários o poder de representar aspectos do sistema em estudo de acordo com um paradigma ou formalismo específico.

  • Nível 0 (L0): nível de conformidade inferior para a infraestrutura UML, uma única unidade de linguagem que permite a modelagem dos tipos de estruturas baseadas em classes encontradas nas linguagens de programação orientadas a objetos mais populares.

  • Meta Object Facility (MOF): uma especificação de modelagem do OMG que fornece a base para definições de metamodelos na família de linguagens MDA do OMG.

  • Metamodelo: define a linguagem e os processos a partir dos quais um modelo é formado.

  • Constructos de Metamodelo (LM): segundo nível de conformidade na infraestrutura UML, uma unidade de linguagem extra para estruturas baseadas em classes mais avançadas usadas para construir metamodelos (usando CMOF), como a própria UML. A UML possui apenas dois níveis de conformidade.

  • Model Driven Architecture (MDA): uma abordagem e um plano para alcançar um conjunto coeso de especificações de tecnologia direcionadas por modelos.

  • Object Constraint Language (OCL): uma linguagem declarativa para descrever regras que se aplicam à Unified Modeling Language. A OCL complementa a UML fornecendo termos e símbolos de fluxograma que são mais precisos do que a linguagem natural, mas menos difíceis de dominar do que a matemática.

  • Object Management Group (OMG): um consórcio sem fins lucrativos de especificações do setor de informática cujos membros definem e mantêm a especificação da UML.

  • UML 1: primeira versão da Unified Modeling Language.

  • Unified Modeling Language (UML): uma linguagem visual para especificar, construir e documentar os artefatos de sistemas.

  • XMI: uma especificação baseada em XML de formatos correspondentes de intercâmbio de modelos.

 

Conceitos de modelagem especificados pela UML

O desenvolvimento de sistemas concentra-se em três modelos gerais de sistema diferentes:

  • Funcional: são os diagramas de caso de uso, que descrevem a funcionalidade do sistema do ponto de vista do usuário.
  • Objeto: são os diagramas de classes, que descrevem a estrutura do sistema em termos de objetos, atributos, associações e operações.
  • Dinâmico: diagramas de interação, diagramas de máquina de estados e diagramas de atividades são usados para descrever o comportamento interno do sistema.

Esses modelos de sistema são visualizados por meio de dois tipos diferentes de diagramas: estruturais e comportamentais.

 

Conceitos orientados a objetos na UML

Os objetos na UML são entidades do mundo real que existem ao nosso redor. No desenvolvimento de software, os objetos podem ser usados para descrever, ou modelar, o sistema que está sendo criado em termos relevantes para o domínio. Os objetos também permitem a decomposição de sistemas complexos em componentes compreensíveis que permitem que uma parte seja construída por vez.

Aqui estão alguns conceitos fundamentais de um mundo orientado a objetos:

  • Objetos: representam uma entidade e o bloco de construção básico
  • Classe: planta de um objeto.
  • Abstração: comportamento de uma entidade do mundo real
  • Encapsulamento: mecanismo de agrupar os dados e ocultá-los do mundo externo
  • Herança: mecanismo de criar novas classes a partir de uma existente
  • Polimorfismo: define o mecanismo para existir em diferentes formas

Em equipes modernas — especialmente aquelas que praticam Agile — esses conceitos orientados a objetos costumam ser mais fáceis de comunicar quando os diagramas são tratados como “documentação principal” e aktualizados juntamente com o código, em vez de serem criados uma única vez e deixados de lado.

 

Por que as equipes ainda usam diagramas UML (especialmente no Agile)

Se você teve algum tipo de treinamento formal em código, provavelmente foi apresentado aos diagramas UML na escola. Mas quanto você os usou depois disso? Como os diagramas UML levam algum tempo para serem criados e ficam desatualizados rapidamente em um ambiente Agile, muitos desenvolvedores de software se esqueceram deles.

Essa preocupação é válida: diagramas que não evoluem com o projeto perdem o valor rapidamente. Mas, quando mantida atualizada, a UML pode acelerar o desenvolvimento e esclarecer a comunicação. Embora muitos engenheiros temam diagramas, eles são úteis em um ambiente de desenvolvimento Agile. Eles mantêm o desenvolvimento produtivo e focado. Em vez de pensar neles apenas como algo "bom de se ter", trate seus diagramas UML como aspectos centrais da documentação.

Os diagramas UML podem ajudar las equipes de engenharia a:

  • Integrar novos membros da equipe ou desenvolvedores que estão mudando de equipe rapidamente.

  • Navegar pelo código-fonte.

  • Planejar novos recursos antes que qualquer programação ocorra.

  • Comunicar-se com públicos técnicos e não técnicos com mais facilidade.

No entanto, diagramas que não evoluem com o projeto são inúteis, por isso é necessário ter diagramas em constante evolução. Uma maneira de as equipes reduzirem a carga de manutenção é gerando diagramas a partir de entradas mais leves (por exemplo, definições baseadas em texto) para que a documentação permaneça elástica à medida que o sistema muda. O Lucidchart pode gerar diagramas de sequência UML a partir de marcação de texto, o que torna a diagramação automática e elástica.

Como criar um diagrama UML

Os diagramas UML seguem um conjunto específico de regras e formas, e você pode gastar um tempo significativo aprendendo a criar corretamente cada tipo. Felizmente, facilitamos as coisas para você com tutoriais simples, começando com diagramas de classes, que guiam você pelo processo passo a passo.

Independentemente das ferramentas, o fluxo de trabalho prático é consistente: escolha o tipo de diagrama que corresponde à sua dúvida (estrutura vs. comportamento), modele apenas o que você precisa para o público atual e revisite o diagrama à medida que o código e os requisitos mudam. Esteja você mapeando a arquitetura estática de um novo sistema de software ou visualizando interações dinâmicas de usuários, siga estas etapas para criar um modelo eficaz:

1. Defina seu objetivo

Determine exatamente o que você precisa visualizar. Pergunte a si mesmo se precisa mapear a estrutura estática de um sistema (estrutural) ou mostrar como os componentes interagem e mudam ao longo do tempo (comportamental).

2. Escolha o tipo de diagrama correto

Com base nos requisitos do seu sistema, selecione o diagrama UML apropriado. For exemplo, use um diagrama de classes para a estrutura de um sistema orientado a objetos, um diagrama de sequência para interações ordenadas por tempo ou um diagrama de caso de uso para ilustrar a funcionalidade do usuário. (Dica: começar com um dos modelos UML prontos do Lucidchart é a maneira mais rápida de começar.)

3. Ative as bibliotecas de formas UML

Como a UML usa um vocabulário visual estrito, você precisa dos símbolos corretos. No Lucidchart, clique em "Mais formas" na parte inferior do menu à esquerda, pesquise por "UML" e marque as caixas das bibliotecas de formas específicas de que precisa (por exemplo, classe UML, estado UML, sequência UML).

4. Adicione e defina suas formas

Arraste e solte entidades, objetos, nós ou atores na sua tela. Organize-os de forma lógica e clique duas vezes dentro das formas para adicionar texto personalizado, atributos específicos e operações aos seus objetos.

5. Conecte seus componentes

Estabeleça relacionamentos entre suas entidades desenhando linhas entre elas. Personalize as extremidades das linhas (pontas de seta, losangos etc.) para refletir com precisão os relacionamentos específicos da UML, como herança, composição, dependências ou associações básicas.

6. Revise e colabore

A UML foi projetada para servir como uma linguagem compartilhada entre desenvolvedores, engenheiros e partes interessadas do negócio. Assim que o diagrama for esboçado, use os recursos de colaboração em tempo real do Lucidchart para convidar sua equipe para revisar a arquitetura, deixar comentários e finalizar a planta baixa.

Torne-se um evangelista da UML

Às vezes, não basta apenas você estar a bordo do trem da diagramação UML. Afinal, como desenvolvedor de software, você geralmente trabalha em equipe, e é importante trazer todos os outros para a jornada.

Se a sua equipe estiver relutante em integrar diagramas UML ao processo de desenvolvimento, proponha usá-los em apenas um projeto para começar. Assim que a sua equipe vir o grande benefício que os diagramas UML trazem para a documentação, eles estarão mais dispostos a começar a torná-los uma etapa necessária.

Além disso, com o Lucidchart, os diagramas UML não são uma tarefa árdua: são um ativo.

 

Tudo o que você precisa para criar um diagrama

Crie um diagrama polido e profissional gratuitamente com o Lucidchart. Não importa o que você tenha em mente, temos as ferramentas necessárias para construí-lo. Crie uma conta e comece a diagramar hoje mesmo.

Inscreva-se gratuitamente

Modelos e exemplos de diagramas UML

Inspire-se e documente suas ideias com mais rapidez com modelos personalizáveis gratuitos.

Diagrama de sequência da Web

Preços:

Conta paga

Diagrama de sequência da Web, Preços: Conta paga

Diagrama de atividades com raias

Preços:

Gratuito

Diagrama de atividades com raias, Preços: Gratuito

Diagrama de classes com notação UML

Preços:

Conta paga

Diagrama de classes com notação UML, Preços: Conta paga

Diagrama de máquina de estados UML

Preços:

Conta paga

Diagrama de máquina de estados UML, Preços: Conta paga

Perguntas frequentes

A UML, ou Unified Modeling Language (Linguagem de Modelagem Unificada), é uma linguagem de modelagem visual padronizada criada para ajudar desenvolvedores e usuários de negócios a visualizar, criar e documentar sistemas de software complexos. Ela foi desenvolvida para fornecer uma linguagem visual comum que seja compreensível para as diversas partes interessadas.

Não, a UML pode ser aplicada além do desenvolvimento de software para modelar processos de negócios e outros sistemas que não sejam de software. Ela oferece suporte a linguagens de programação procedurais e orientadas a objetos.

A UML inclui 14 tipos de diagramas, divididos em diagramas estruturais, que representam os aspectos estáticos de um sistema, e diagramas comportamentais, que capturam interações dinâmicas.

O principal objetivo da UML é fornecer a arquitetos de sistema e desenvolvedores de software ferramentas para análise, design e implementação de sistemas de software, facilitando uma comunicação clara entre partes interessadas técnicas e não técnicas.

A UML beneficia engenheiros de software, analistas de negócios, arquitetos de sistema e outras partes interessadas ao fornecer vários diagramas que os ajudam a entender diferentes aspectos de um sistema antes do início do desenvolvimento.

Diagramas estruturais, como diagramas de classes, representam os elementos estáticos e os relacionamentos dentro de um sistema, enquanto diagramas comportamentais, como diagramas de sequência e de atividades, ilustram interações dinâmicas e a comunicação de objetos ao longo do tempo.

Sim, a UML inclui mecanismos de extensão que permitem aos usuários personalizar modelos para domínios e plataformas específicos, adaptando a estrutura principal da UML conforme necessário.

Embora a UML inclua uma variedade de diagramas e notações, muitos acham mais fácil começar com modelos e tutoriais passo a passo em vez de aprender todas as regras de notação com antecedência.

Exemplos comuns de diagramas UML incluem diagramas de classes, que representam a estrutura de um sistema, e diagramas de caso de uso, que ilustram como os usuários interagem com o sistema.

Tudo o que você precisa para criar um diagrama UML

Além de nossa ferramenta on-line de diagramas UML, o Lucidchart oferece recursos de suporte e treinamento para ajudar você a explorar qualquer tipo de diagrama.

Crie um diagrama