O que é UML?
Linguagem de Modelagem Unificada é uma notação gráfica padrão aberta para desenvolvimento de sistemas proposta pelo Object Management Group. A notação baseia-se no trabalho de Booch, Rumbaugh e Jacobson. UML é uma linguagem de modelagem para expressar e projetar documentos, especialmente útil para modelagem orientada a objetos. A linguagem pode ser usada desde o projeto inicial geral até o projeto detalhado específico em todo o ciclo de vida do desenvolvimento de software. A definição de UML é definida da seguinte forma:
- Linguagem de Modelagem Unificada ( UML ) é uma linguagem gráfica para modelagem e desenvolvimento de sistemas de software. Os diagramas UML tornam-se um produto comum utilizado pelos desenvolvedores para discutir todas as fases do desenvolvimento de software, desde a análise de requisitos, design e implementação. O objetivo aqui é modelar o sistema de software antes de construí-lo.
- Citação: “A Linguagem de Modelagem Unificada (UML) é uma família de notações gráficas, sustentada por um único meta-modelo, que ajuda na descrição e no design de sistemas de software, especialmente sistemas de software construídos usando o estilo orientado a objetos (OO).” [Martin Fowler – UML Distilled] pg 1.
Por que UML?
À medida que as arquiteturas de software crescem em tamanho e complexidade, aumenta a necessidade de modelos de software. UML é a linguagem de modelagem dominante na indústria de software. Atualmente é um padrão de fato adotado pelo Object Management Group, o maior consórcio de software do mundo. É difícil encontrar um projeto de software com mais de 10 desenvolvedores que não use UML de alguma forma para especificar sua arquitetura.
Aqui estão alguns outros fatos sobre o uso de UML no nosso processo de desenvolvimento de software:
- O software está se tornando cada vez mais complexo: uma versão bastante antiga do Windows XP tem mais de 40 milhões de linhas de código.
- Um único programador não consegue gerenciar essa quantidade de código por completo.
- O código não é facilmente compreensível por desenvolvedores que não o escreveram.
- Precisamos de representações mais simples para sistemas complexos: a modelagem é um meio de lidar com a complexidade.
O que é um modelo?
- Um modelo é uma abstração da coisa real, deixando de lado os detalhes.
- “A coleção de todos os elementos que descrevem seu sistema, incluindo suas conexões mútuas, constitui seu modelo.” (Russ e Hamilton 12).
quando usamos UML para criar modelos de um sistema em desenvolvimento antes de codificar o software, eles representam o problema de forma simplificada. Eles fornecem uma estrutura para a resolução de problemas. Eles ajudam a compreender como se pode proceder com o problema em questão. Também permitem experimentar várias soluções. Como os modelos são criados antes do desenvolvimento real do sistema, podemos entender diferentes possibilidades, problemas, opções, etc. Isso também leva à redução dos custos de desenvolvimento. Como o tempo não será desperdiçado em tentativas e erros, o produto estará pronto em menos tempo. Modelos também ajudam a gerenciar a complexidade do problema, permitindo planejar o desenvolvimento e a alocação de recursos como máquinas, programadores e testadores de forma mais fácil.
O que UML NÃO É?
- UML não é uma notação, mas sim uma linguagem.
- UML não pertence a ninguém. É aberto para ser usado por qualquer pessoa que deseje usá-lo. Não é proprietário.
- UML não é um processo nem um método.
- UML incentiva o uso de técnicas orientadas a objetos e ciclos de vida iterativos de desenvolvimento de software.
- UML não é difícil. É amplo, mas não é necessário conhecê-lo por completo. Além disso, não há necessidade de usar ou entender cada pequeno aspecto dele.
- UML não é demorado. Se usado corretamente, o uso de UML reduz os custos de desenvolvimento. Ao mesmo tempo, oferece a vantagem de compreensão e comunicação mais fáceis, produtividade aumentada e melhor qualidade.
- UML não é limitado. É flexível o suficiente para permitir novos vocabulários (conceitos, palavras e termos), propriedades (informações adicionais sobre as palavras) e semânticas (regras da linguagem) que são necessários para um domínio específico.
Objetivo do UML
- Uma linguagem de modelagem visual e não uma linguagem de programação visual. Embora algumas ferramentas de modelagem tenham geradores de código e algumas possam realizar a engenharia reversa de modelos a partir de código.
- É destinado a criar diagramas que possam apoiar o processo de desenvolvimento de software, no entanto, UML NÃO é um processo ou método de desenvolvimento de software. Portanto, UML é independente de processo.
- Uma linguagem padrão para criar plantas de software.
- Uma ferramenta de comunicação.
- Uma linguagem para documentar requisitos, arquitetura, testes, planejamento de projetos, etc…
- É destinado a sistemas de software, mas pode modelar outros sistemas.
- É destinado a apoiar o processo de desenvolvimento orientado a objetos.
- Pode capturar tanto estruturas estáticas quanto comportamentos dinâmicos de um sistema.
- Diagramas UML podem ajudar os interessados a compreender, discutir e concordar com os requisitos.
- Diagramas UML podem ajudar a abstrair processos complexos até um nível mais fácil de entender.
- Diagramas UML ajudam a facilitar a resolução de problemas.
O que uma linguagem de modelagem oferece?
- Elementos de Modelo: Conceitos e Semântica
- Notação: Representação Visual dos Elementos de Modelo
- Diretrizes: Dicas e Sugestões para o Uso de Elementos na Notação
Breve História
Na década de 80, quando começamos a modelar, havia muitas metodologias diferentes. E cada metodologia tinha sua própria notação. O problema era que, se pessoas diferentes usavam notações diferentes, em algum momento alguém precisava fazer uma tradução. Muitas vezes, um símbolo significava uma coisa em uma notação e algo totalmente diferente em outra notação. Em 1991, todos começaram a lançar livros. Grady Booch lançou sua primeira edição. Ivar Jacobson lançou a sua, e Jim Rumbaugh lançou a sua metodologia OMT. Cada livro tinha suas forças, bem como suas fraquezas. OMT era realmente forte na análise, mas fraco no design. A metodologia Booch era mais forte no design e mais fraca na análise. E o Objectory de Ivar Jacobson era muito bom em experiência do usuário, algo que nem Booch nem OMT realmente consideravam naquela época. Booch e Jacobson uniram os dois métodos em 1994 e, em seguida, Rumbaugh juntou-se em 1995. A UML 1.1 foi publicada em 1997 pela OMG, incluindo contribuições de outros, por exemplo, Yourden. A UML v2.x é a versão mais atual.
Datas de Lançamento
- 1995 – UML 0.8
- 1996 – UML 0.9 – Três Amigos
- 1997 – OMG assume o controle.
- 1997 – OMG UML 1.1
- 1998 – OMG UML 1.2
- 1999 – OMG UML 1.3
- 2001 – OMG UML 1.4
- 2003 – OMG UML 1.5
- 2003 – OMG UML 2.0 – Adotada
- 2005 – OMG UML 2.0 – Final
- 2006 – OMG UML 2.1
- UML2.1.2(11/04/07) – Versão atual até 27/05/08
A motivação da unificação de métodos pelos “três Amegos”
- Fato de os métodos individuais evoluírem uns em direção aos outros de forma independente
- Unificação de semântica e notação para trazer estabilidade ao mercado de design OO
- Expectativa de que a unificação melhoraria os métodos individuais anteriores
Parceiros UML
- Corporação Rational Software
- IBM
- Hewlett-Packard
- I-Logix
- ICON Computing
- Intellicorp
- MCI Systemhouse
- Microsoft
- ObjecTime
- Oracle
- Platinum Technology
- Taskon
- Texas Instruments/Sterling Software
- Unisys
Entrada de notação UML para diferentes métodos antes da unificação
O UML representa a unificação das notações Booch, OMT e Objectory, bem como das melhores ideias de diversos outros metodologistas, conforme mostrado na figura abaixo. Ao unificar as notações utilizadas por esses métodos orientados a objetos, a Linguagem de Modelagem Unificada fornece a base para um padrão de fato no domínio da análise e do design orientados a objetos, fundamentado em uma ampla base de experiência do usuário.
O papel da notação
A notação desempenha um papel importante em qualquer modelo: é a cola que mantém o processo unido. A notação tem três funções:
- Serve como a linguagem para comunicar decisões que não são óbvias ou não podem ser inferidas diretamente do código.
- Oferece semântica suficientemente rica para capturar todas as decisões estratégicas e táticas importantes.
- Oferece uma forma suficientemente concreta para que os humanos possam raciocinar e que as ferramentas possam manipular.
A Linguagem de Modelagem Unificada (UML) fornece uma notação muito robusta, que evolui da análise para o design. Certos elementos da notação (por exemplo, classes, associações, agregações, herança) são introduzidos durante a análise. Outros elementos da notação (por exemplo, indicadores de implementação de contenção e propriedades) são introduzidos durante o design.
Benefícios do UML
O UML pode ser aplicado a diversosdomínios de aplicação (por exemplo, bancário, finanças, internet, aeroespacial, saúde, etc.) Pode ser usado com todos os principais objetos e componentes métodos de desenvolvimento de software e para diversos plataformas de implementação.
- Você sabe exatamente o que está recebendo
- Você terá custos de desenvolvimento menores
- Seu software se comportará como você espera. Menos surpresas
- As decisões corretas são tomadas antes de você receber código mal escrito. Custos totais menores
- Podemos desenvolver sistemas mais eficientes em memória e processamento
- Os custos de manutenção do sistema serão menores. Menos reaprendizado ocorre
- Trabalhar com um novo desenvolvedor será mais fácil.
- A comunicação com programadores e contratistas externos será mais eficiente.
Visões UML 4 + 1
O UML consiste nas seguintes quatro visões do sistema em desenvolvimento (veja a Fig. 3) [Eriksson & Penker, 1998; Kruchten, 2000]:
- Visão de caso de uso: mostra a funcionalidade do sistema conforme percebida por atores externos; é descrita em diagramas de casos de uso e ocasionalmente em diagramas de atividades.
- Visão lógica: mostra como essa funcionalidade é projetada dentro do sistema, em termos da estrutura estática e do comportamento dinâmico do sistema; é descrita em diagramas de classes e objetos (modelo estático) e diagramas de transição de estado, sequência, colaboração e atividades (modelo dinâmico)
- Visão de componente: mostra a organização dos componentes de software; é descrita em diagramas de componentes.
- Visão de implantação: mostra a configuração física (implantação) dos nós de processamento em tempo de execução dentro de computadores e dispositivos e os componentes, processos e objetos que neles residem; é descrita em diagramas de implantação.
- Visão de processo: mostra o aspecto concorrente do sistema em tempo de execução, como tarefas, threads, processos e interações e aborda problemas de comunicação e sincronização desses threads; é descrita em diagramas dinâmicos (diagramas de transição de estado, sequência, colaboração e atividades) e diagramas de implementação (diagramas de componentes e de implantação).

Cada sistema consiste no estático e o dinâmico modelo. O modelo estático é representado nos diagramas de classes e objetos. No entanto, revela pouco sobre o comportamento do sistema. O comportamento do sistema é capturado graficamente usando cenários (ou seja, diagramas de casos de uso), diagramas de sequência, diagramas de transição de estado e diagramas de atividades. Esses constituem o modelo dinâmico do sistema. O comportamento do sistema é o comportamento total de todos os objetos pertencentes ao sistema.
Se quisermos mapear as cinco visualizações acima para as fases do ciclo de vida iterativo da Figura 3, poderíamos dizer o seguinte:
- Análise Orientada a Objetos (OOA), que desenvolve um modelo dos requisitos dos usuários a partir da perspectiva do usuário, mapeia-se para a visualização de caso de uso.
- Projeto Orientado a Objetos (OOD) adiciona detalhes e decisões de projeto (da perspectiva do desenvolvedor) à análise e mapeia-se para a visualização lógica.
- Finalmente, a Implementação ou Programação Orientada a Objetos (OOP) mapeia-se para as visualizações de processo, implantação e componente.
Diagramas UML 2
O UML possui vários tipos diferentes de diagramas que podem ser usados para descrever um modelo a partir de diferentes pontos de vista. Existem duas categorias amplas de diagramas, que são novamente divididas em subcategorias:
- Diagramas Estruturais – Odiagramas estruturaisrepresentam o aspecto estático do sistema. Esses aspectos estáticos representam aquelas partes de um diagrama que formam a estrutura principal e, portanto, estáveis. Essas partes estáticas são representadas por classes, interfaces, objetos, componentes e nós.
- Diagramas Comportamentais – Qualquer sistema pode ter dois aspectos, estático e dinâmico. Portanto, um modelo é considerado completo quando ambos os aspectos são abrangidos plenamente.
Os diagramas comportamentais capturam basicamente o aspecto dinâmico de um sistema. O aspecto dinâmico pode ser descrito ainda mais como as partes que mudam/movem-se em um sistema.

Diagramas Estruturais
- Diagrama de Classes – diagrama da estrutura estática das classes e interfaces do sistema e suas relações ou associações (incluindo herança, agregação e associação), incluindo as operações e atributos das classes. Os modos de apresentação são: Associação, Herança, Dependência. Este é um diagrama muito comum no UML.
- Diagrama de Objetos – é um diagrama da estrutura estática de um sistema em um momento ou situação específica (instantâneo), ilustrando uma relação em um sistema.
- Diagrama de Componentes – é um diagrama que descreve a organização e as dependências dos componentes dentro do sistema.
- Diagrama de Estrutura Composta – é um diagrama que explora instâncias em tempo de execução de instâncias interconectadas colaborando por meio de links de comunicação.
- Diagrama de Pacotes – é um diagrama que representa como um sistema é dividido em agrupamentos lógicos e quais dependências podem existir entre esses agrupamentos.
- Diagrama de Implantação – é um diagrama que descreve como unidades físicas distribuíveis (componentes de software implantáveis, aplicações, servidores, aplicações, hardware etc.) compõem a arquitetura do sistema distribuído.
Diagramas Comportamentais
- Diagrama de Caso de Uso – diagrama dos casos de uso (funções/serviços de software) e do papel dos atores (usuários – tanto humanos quanto sistemas). Este diagrama é do ponto de vista do usuário.
- Diagrama de Atividade – é um diagrama da natureza dinâmica de um sistema ao modelar o fluxo de controle de atividade para atividade. Diagrama como um sistema (por exemplo: objeto/classe) responde a um evento interno. (observação: eventos externos são descritos por um Diagrama de Estado). Para modelagem de processos de negócios, você pode usar este diagrama para modelar a lógica de um caso de uso ou regra de negócio.
- Diagrama de Estado (também conhecido como Diagrama de Estado, Diagrama de Máquina de Estados) – é um diagrama de como um sistema (por exemplo: objeto/classe) responde a um evento externo. (observação: eventos internos são descritos por um Diagrama de Atividade).
Diagramas de Tipo de Interação– interações das partes organizacionais do modelo.
- Diagrama de Sequência – é um diagrama da interação e fluxo de mensagens entre objetos e a ordem temporal relativa das mensagens
- Diagrama de Comunicação(também conhecido como Diagramas de Colaboração do UML1) – é um diagrama de como sistemas colaboram entre si para realizar uma tarefa e os relacionamentos que devem existir entre os sistemas. O diagrama de colaboração é o resultado de tomar o diagrama de sequência e descrever sua interação com o Diagrama de Classe. Em resumo, este diagrama mostra o fluxo de mensagens entre objetos e as associações básicas (relacionamentos) entre classes
- Diagrama de Tempo – é um diagrama que explora os comportamentos de um ou mais objetos ao longo de um período de tempo determinado.
- Diagrama de Visão Geral de Interação – é um diagrama da interação e controle de fluxo entre os diagramas de interação (diagrama de sequência, diagrama de comunicação, diagrama de tempo, diagrama de visão geral de interação).
Perfil UML
O Perfil UML não é exatamente um diagrama, mas um perfil para descrever extensões e subconjuntos do UML. Subconjuntos são descritos usando a Linguagem de Restrição de Objetos (OCL). Extensões são criadas definindo estereótipos, que são tags que podem decorar qualquer elemento do modelo. Por exemplo, podemos marcar uma classe como “persistente” e usar essa tag para identificar uma classe cujas instâncias são armazenadas após o tempo de vida da execução do sistema. De forma informal – e isso é ideologicamente incorreto – um perfil é qualquer conjunto de extensões e subconjuntos do UML, independentemente de serem escritos usando esses mecanismos ou não. Formalmente, um perfil é a definição de OCL e estereótipos que descrevem as regras, que no UML 2, são capturadas em um pacote.
Diagramas Relacionados para Desenvolvimento de Software
Entre as diferenças entre metodologias de OOAD e a evolução dos padrões UML, os nomes dos diagramas e suas funções podem evoluir ao longo do tempo. Aqui estão alguns exemplos de diagramas e/ou produtos de trabalho que podem ou não fazer parte do UML1 ou UML2, mas que poderiam ser usados em metodologias de OOAD:
- Diagrama de Contexto do Sistema
- Diagrama de Relacionamento de Entidades (semelhante ao Diagrama de Classe) com ERD conceitual, lógico e físico
- Análise de Robustez
Conclusão
Tivemos uma visão geral sobre as origens e definição do UML para fornecer uma compreensão simplificada do que ele é e do que o UML pode nos oferecer. Também examinamos como podemos se beneficiar do seu uso em nosso próximo projeto de desenvolvimento e exploramos brevemente as visões arquitetônicas e modelos e o tipo de diagramas disponíveis no UML 2. O UML não é um processo, mas uma notação visual padrão aberta para o desenvolvimento de sistemas intensivos em software. Os componentes necessários para um projeto bem-sucedido exigem três aspectos: uma notação, um processo e uma ferramenta:
Apenas Notação – você pode aprender uma notação (por exemplo, UML), mas se você não souber como usá-la (processo), você provavelmente falhará.
Processo Apenas – Você pode ter um ótimo processo, mas se você não puder comunicar o processo (notação), você provavelmente falhará. E por fim
Sem Suporte de Ferramenta – se você não puder documentar efetivamente os artefatos do seu trabalho (ferramenta), você provavelmente acabará perdendo muito tempo e, eventualmente, falhará.
Ferramenta Automatizada de UML
Visual Paradigm é uma ferramenta automatizada que garante que você terá sucesso em seus projetos de software com:
- Edição de sintaxe fácil para minimizar a necessidade de memorização de notação
- Suporte a processos e conjunto de ferramentas de desenvolvimento de software ágil e mais populares
- Automatizado para simplificar qualquer tamanho de projeto e relatório de produto e artefato em tempo real
Recursos de UML
- Guia Completo sobre os 14 Tipos de Diagramas UML – Cybermedian
- Este guia fornece uma visão geral dos 14 tipos de diagramas UML suportados pela edição comunitária do Visual Paradigm. Explica como os diagramas UML ajudam na visualização de sistemas intensivos em software e descreve a funcionalidade fornecida por cada tipo de diagrama. O guia também destaca a versatilidade do Visual Paradigm ao suportar diversos diagramas UML para diferentes necessidades de modelagem11.
- Aprenda modelagem UML com as melhores ferramentas gratuitas de UML (tanto online quanto freeware para desktop) – Cybermedian
- Este artigo discute os benefícios de usar o Visual Paradigm para modelagem UML, enfatizando seu suporte ao mais recente padrão UML 2.x e sua ampla variedade de tipos de diagramas. Também menciona as capacidades de integração da ferramenta com plataformas de desenvolvimento populares e sua adoção generalizada na academia e na indústria12.
- Aprendendo por Exemplo: Diagramas de Máquina de Estados UML – Cybermedian
- Este recurso se concentra nos Diagramas de Máquina de Estados UML e recomenda o Visual Paradigm como uma ferramenta ideal para criar esses diagramas. Oferece uma análise aprofundada sobre como os Diagramas de Máquina de Estados podem modelar o comportamento dinâmico de sistemas e destaca a integração do Visual Paradigm com ferramentas e plataformas de desenvolvimento13.
- Diagramas UML: Um Guia Completo – Cybermedian
- Este guia completo explica a importância dos diagramas UML no desenvolvimento de software e como o Visual Paradigm suporta diversos tipos de diagramas UML. Ele aborda diagramas estruturais, comportamentais e de interação, fornecendo insights sobre como o Visual Paradigm pode ser usado para criar modelos UML eficazes14.
- FERRAMENTA ONLINE GRATUITA DE DIAGRAMAS UML – Cybermedian
- Este artigo apresenta o Visual Paradigm Online (VP Online) Edição Express, uma ferramenta online gratuita para criar diagramas UML. Destaca a facilidade de uso da ferramenta, a ausência de limitações e a compatibilidade com vários navegadores da web, tornando-a uma opção acessível para a criação de diagramas UML pessoais e não comerciais15.
- Compreendendo Diagramas de Tempo UML: Um Guia Completo – Cybermedian
- Este guia explica os Diagramas de Tempo UML e sua importância em sistemas em tempo real. Discute como o Visual Paradigm pode ser usado para criar esses diagramas, focando na representação visual das restrições de tempo e duração dentro de um sistema16.
- O Guia Completo sobre Diagramas UML 2.5 – Cybermedian
- Este guia fornece uma visão geral dos diagramas UML 2.5 e destaca o Visual Paradigm como uma escolha principal para modelagem abrangente. Discute a versatilidade da ferramenta, sua interface amigável e suas poderosas capacidades de geração de código, tornando-a adequada para profissionais de diversas áreas17.
- Um Guia Completo sobre Diagrama de Classes UML – Cybermedian
- Este guia se concentra nos Diagramas de Classes UML e em como o Visual Paradigm apoia sua criação. Discute a adoção generalizada da ferramenta na academia e seu uso no design e análise de sistemas e bancos de dados. O guia também menciona a disponibilidade de exemplos e modelos para início rápido na modelagem UML18.
- Tutorial de Diagrama de Pacotes UML Usando o Visual Paradigm – Cybermedian
- Este tutorial passo a passo explica como criar um Diagrama de Pacotes UML usando o Visual Paradigm. Explica a importância dos diagramas de pacotes na organização de sistemas grandes e fornece um guia passo a passo para sua criação usando o Visual Paradigm19.
- O Guia Completo sobre Modelagem Visual para Desenvolvimento Ágil de Software – Cybermedian
- Este guia discute o papel das ferramentas UML no desenvolvimento ágil de software e destaca o Visual Paradigm como uma escolha popular. Explica como o Visual Paradigm oferece uma interface amigável e recursos como validação, geração de código e engenharia reversa para aprimorar o processo de modelagem20.


