{"id":12155,"date":"2026-05-19T14:24:52","date_gmt":"2026-05-19T06:24:52","guid":{"rendered":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/"},"modified":"2026-05-19T14:24:52","modified_gmt":"2026-05-19T06:24:52","slug":"comprehensive-guide-to-uml-diagrams-2","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/","title":{"rendered":"Guia Completo sobre Diagramas UML"},"content":{"rendered":"<h2><strong><span>Introdu\u00e7\u00e3o<\/span><\/strong><\/h2>\n<div><span>A Linguagem de Modelagem Unificada (UML) tornou-se o padr\u00e3o de fato para visualizar, especificar e documentar sistemas de software em diversas ind\u00fastrias. No cerne, a UML n\u00e3o \u00e9 um m\u00e9todo de desenvolvimento r\u00edgido, mas uma linguagem visual flex\u00edvel projetada para fechar a lacuna entre requisitos abstratos e implementa\u00e7\u00e3o concreta. A UML 2.0 formaliza esse prop\u00f3sito organizando seus tipos de diagramas em duas categorias complementares: <\/span><strong><span>diagramas estruturais<\/span><\/strong><span>, que capturam a arquitetura est\u00e1tica e as rela\u00e7\u00f5es f\u00edsicas de um sistema, e <\/span><strong><span>diagramas comportamentais<\/span><\/strong><span>, que modelam como os componentes interagem, mudam de estado e executam l\u00f3gica ao longo do tempo. Inspirado nos princ\u00edpios fundamentais apresentados em <\/span><em><span>UML 2.0 em uma Embalagem<\/span><\/em><span> (O\u2019Reilly), este guia oferece uma vis\u00e3o abrangente de cada tipo principal de diagrama UML, seus conceitos centrais, regras de nota\u00e7\u00e3o e casos pr\u00e1ticos de uso. Seja voc\u00ea arquitetando sistemas orientados a objetos, mapeando topologias de implanta\u00e7\u00e3o ou modelando fluxos de trabalho empresariais complexos, entender quando e como aplicar cada diagrama o habilitar\u00e1 a comunicar solu\u00e7\u00f5es t\u00e9cnicas com clareza, precis\u00e3o e prop\u00f3sito compartilhado.<\/span><\/div>\n<hr\/>\n<h2>Vis\u00e3o Geral<\/h2>\n<p>A UML 2.0 organiza os diagramas em <strong>duas categorias principais<\/strong>:<\/p>\n<table>\n<thead>\n<tr>\n<th>Categoria<\/th>\n<th>Prop\u00f3sito<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Diagramas Estruturais<\/strong><\/td>\n<td>Capturam a organiza\u00e7\u00e3o f\u00edsica dos elementos \u2014 como os objetos se relacionam entre si<\/td>\n<\/tr>\n<tr>\n<td><strong>Diagramas Comportamentais<\/strong><\/td>\n<td>Focam em como os elementos interagem, mudam de estado e processam comportamentos ao longo do tempo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<blockquote>\n<p>\ud83d\udca1\u00a0<strong>Princ\u00edpio Fundamental<\/strong>: Um modelo UML consiste em um ou mais diagramas. Cada diagrama representa uma determinada\u00a0<em>vis\u00e3o<\/em>\u00a0ou\u00a0<em>interesse<\/em>\u00a0no sistema sendo modelado. Elementos individuais frequentemente aparecem em m\u00faltiplos diagramas.<\/p>\n<\/blockquote>\n<hr\/>\n<h2>\ud83d\udd37 Diagramas Estruturais<\/h2>\n<p>Diagramas estruturais modelam a arquitetura est\u00e1tica do seu sistema \u2014 o \u201co qu\u00ea\u201d em vez do \u201ccomo\u201d.<\/p>\n<h3>1. Diagramas de Classes<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Classes de modelo, interfaces e suas rela\u00e7\u00f5es est\u00e1ticas.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Classes com atributos e opera\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>Interfaces e rela\u00e7\u00f5es de realiza\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Associa\u00e7\u00f5es, agrega\u00e7\u00f5es, composi\u00e7\u00f5es e generaliza\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>Modificadores de visibilidade (<code data-backticks=\"1\">+<\/code>,\u00a0<code data-backticks=\"1\">-<\/code>,\u00a0<code data-backticks=\"1\">#<\/code>,\u00a0<code data-backticks=\"1\">~<\/code>)<\/p>\n<\/li>\n<li>\n<p>Especifica\u00e7\u00f5es de multiplicidade (<code data-backticks=\"1\">1<\/code>,\u00a0<code data-backticks=\"1\">0..*<\/code>,\u00a0<code data-backticks=\"1\">1..5<\/code>)<\/p>\n<\/li>\n<\/ul>\n<p><strong>Exemplo de Uso<\/strong>:<strong>Quando usar<\/strong>:<\/p>\n<h2>Estere\u00f3tipos e Tipos de Classe<\/h2>\n<p>O diagrama utiliza estere\u00f3tipos (indicados por texto dentro de colchetes angulares, como\u00a0<code data-backticks=\"1\">&lt;&lt;entidade&gt;&gt;<\/code>) para categorizar o papel de cada classe:<\/p>\n<ul>\n<li>\n<p><strong>Classes de Fronteira (<code data-backticks=\"1\">&lt;&lt;fronteira&gt;&gt;<\/code>):<\/strong>\u00a0Essas lidam com a intera\u00e7\u00e3o entre o sistema e seus atores (usu\u00e1rios ou sistemas externos).<\/p>\n<\/li>\n<li>\n<p><em>Exemplos:<\/em>\u00a0<code data-backticks=\"1\">ConsoleWindow<\/code>\u00a0e\u00a0<code data-backticks=\"1\">CaixaDeDi\u00e1logo<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Classes de Controle (<code data-backticks=\"1\">&lt;&lt;controle&gt;&gt;<\/code>):<\/strong>\u00a0Essas gerenciam a coordena\u00e7\u00e3o, transa\u00e7\u00f5es e fluxo de l\u00f3gica de neg\u00f3cios do aplicativo.<\/p>\n<\/li>\n<li>\n<p><em>Exemplos:<\/em>\u00a0<code data-backticks=\"1\">ContextoDeDesenho<\/code>\u00a0e\u00a0<code data-backticks=\"1\">ControladorDeDados<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Classes de Entidade (<code data-backticks=\"1\">&lt;&lt;entidade&gt;&gt;<\/code>):<\/strong>\u00a0Essas representam os dados principais ou informa\u00e7\u00f5es persistentes que o sistema rastreia.<\/p>\n<\/li>\n<li>\n<p><em>Exemplos:<\/em>\u00a0<code data-backticks=\"1\">Quadro<\/code>,\u00a0<code data-backticks=\"1\">Janela<\/code>,\u00a0<code data-backticks=\"1\">Evento<\/code>,\u00a0<code data-backticks=\"1\">Forma<\/code>,\u00a0<code data-backticks=\"1\">C\u00edrculo<\/code>,\u00a0<code data-backticks=\"1\">Ret\u00e2ngulo<\/code>,\u00a0<code data-backticks=\"1\">Pol\u00edgono<\/code>, e\u00a0<code data-backticks=\"1\">Ponto<\/code>.<\/p>\n<\/li>\n<li>\n<p><strong>Classe Abstrata:<\/strong>\u00a0O\u00a0<code data-backticks=\"1\">Forma<\/code>\u00a0a classe representa um conceito abstrato. Serve como um modelo base para formas espec\u00edficas e n\u00e3o pode ser instanciada diretamente por si s\u00f3.<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>Anatomia de uma Classe<\/h2>\n<p>Uma caixa de classe UML padr\u00e3o \u00e9 dividida em compartimentos. Olhando para a\u00a0<strong><code data-backticks=\"1\">C\u00edrculo<\/code><\/strong>\u00a0classe como exemplo:<\/p>\n<ul>\n<li>\n<p><strong>Nome da Classe:<\/strong>\u00a0Localizado no compartimento superior (<code data-backticks=\"1\">C\u00edrculo<\/code>).<\/p>\n<\/li>\n<li>\n<p><strong>Atributos:<\/strong>\u00a0Localizado no compartimento central, representando os campos de dados.<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">-raio : float<\/code>\u00a0(O sinal de menos\u00a0<code data-backticks=\"1\">-<\/code>\u00a0indica um atributo privado).<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">-centro : int sem sinal<\/code><\/p>\n<\/li>\n<li>\n<p><strong>Opera\u00e7\u00f5es (M\u00e9todos):<\/strong>\u00a0Localizado no compartimento inferior, representando os comportamentos ou fun\u00e7\u00f5es.<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">+area(raio : float) : double<\/code>\u00a0(O sinal de mais\u00a0<code data-backticks=\"1\">+<\/code>\u00a0indica um m\u00e9todo p\u00fablico).<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">+circun()<\/code>,\u00a0<code data-backticks=\"1\">+setCentro()<\/code>, e\u00a0<code data-backticks=\"1\">+setRaio()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>Rela\u00e7\u00f5es e Links<\/h2>\n<p>As linhas e setas que conectam as classes definem como elas interagem e dependem umas das outras:<\/p>\n<h3>Generaliza\u00e7\u00e3o (Heran\u00e7a)<\/h3>\n<p>Representado por uma linha s\u00f3lida com uma\u00a0<strong>seta vazia<\/strong>\u00a0apontando para a classe pai. Isso indica uma rela\u00e7\u00e3o \u201c\u00e9-um\u201d onde uma classe filha herda atributos e comportamentos de uma classe pai.<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">Janela<\/code>\u00a0herda de\u00a0<code data-backticks=\"1\">Quadro<\/code>.<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">JanelaConsole<\/code>\u00a0e\u00a0<code data-backticks=\"1\">CaixaDialogo<\/code>\u00a0herdam de\u00a0<code data-backticks=\"1\">Janela<\/code>.<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">C\u00edrculo<\/code>,\u00a0<code data-backticks=\"1\">Ret\u00e2ngulo<\/code>, e\u00a0<code data-backticks=\"1\">Pol\u00edgono<\/code>\u00a0herdam da classe abstrata\u00a0<code data-backticks=\"1\">Forma<\/code>\u00a0(por exemplo, um C\u00edrculo\u00a0<em>\u00e9 uma<\/em>\u00a0Forma).<\/p>\n<\/li>\n<\/ul>\n<h3>Agrega\u00e7\u00e3o<\/h3>\n<p>Representado por uma linha s\u00f3lida com um\u00a0<strong>losango vazio<\/strong>\u00a0na extremidade do cont\u00eainer. Isso indica uma rela\u00e7\u00e3o \u201ctem-um\u201d solta ou de todo-parte, onde a crian\u00e7a pode existir independentemente do pai.<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">Janela<\/code>\u00a0agrega\u00a0<code data-backticks=\"1\">Forma<\/code>\u00a0(multiplicidade\u00a0<code data-backticks=\"1\">1<\/code>\u00a0a\u00a0<code data-backticks=\"1\">*<\/code>). Um\u00a0<code data-backticks=\"1\">Janela<\/code>\u00a0pode conter m\u00faltiplas (<code data-backticks=\"1\">*<\/code>) formas, mas se a janela for fechada, as formas ainda podem existir conceitualmente na mem\u00f3ria ou em outro contexto.<\/p>\n<\/li>\n<\/ul>\n<h3>Composi\u00e7\u00e3o<\/h3>\n<p>Representado por uma linha s\u00f3lida com um\u00a0<strong>losango preenchido (preto)<\/strong>\u00a0na extremidade do cont\u00eainer. Isso indica uma rela\u00e7\u00e3o \u201ctem-um\u201d forte com uma vida \u00fatil coincidente \u2014 se o cont\u00eainer for destru\u00eddo, as partes tamb\u00e9m ser\u00e3o destru\u00eddas.<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">C\u00edrculo<\/code>\u00a0\u00e9 composto por\u00a0<code data-backticks=\"1\">Ponto<\/code>\u00a0objetos (multiplicidade\u00a0<code data-backticks=\"1\">1<\/code>\u00a0para\u00a0<code data-backticks=\"1\">*<\/code>). Um c\u00edrculo n\u00e3o pode existir sem seu centro ou pontos na fronteira; destruir o c\u00edrculo destr\u00f3i essas refer\u00eancias espec\u00edficas a pontos.<\/p>\n<\/li>\n<\/ul>\n<h3>Depend\u00eancia<\/h3>\n<p>Representado por um\u00a0<strong>seta tracejada<\/strong>. Mostra que uma classe depende de outra, ou seja, uma altera\u00e7\u00e3o na classe-alvo pode afetar a classe de origem.<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">Janela<\/code>\u00a0tem uma depend\u00eancia sobre\u00a0<code data-backticks=\"1\">Evento<\/code>\u00a0(indicado pela seta tracejada apontando para\u00a0<code data-backticks=\"1\">Evento<\/code>). A janela depende de gatilhos de evento para executar opera\u00e7\u00f5es como\u00a0<code data-backticks=\"1\">handleEvent()<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h3>Associa\u00e7\u00e3o<\/h3>\n<p>Representado por uma linha simples e cont\u00ednua. Indica uma rela\u00e7\u00e3o estrutural em que objetos de uma classe est\u00e3o conectados a objetos de outra.<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">Caixa de Di\u00e1logo<\/code>\u00a0est\u00e1 associado a\u00a0<code data-backticks=\"1\">ControladorDeDados<\/code>, ou seja, eles se comunicam entre si para trocar informa\u00e7\u00f5es ou coordenar comportamentos.<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>Elementos de Documenta\u00e7\u00e3o<\/h2>\n<ul>\n<li>\n<p class=\"\"><strong>Nota:<\/strong>\u00a0O diagrama apresenta uma caixa de nota com canto dobrado conectado por uma linha tracejada \u00e0\u00a0<code data-backticks=\"1\">Janela<\/code>\u00a0classe. Fornece contexto leg\u00edvel por humanos:\u00a0<em>\u201cA janela principal do aplicativo.\u201d<\/em><\/p>\n<\/li>\n<\/ul>\n<p><img alt=\"What is Class Diagram?\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png\"\/><\/p>\n<ul>\n<li>\n<p>Projetando arquitetura de software orientada a objetos<\/p>\n<\/li>\n<li>\n<p>Documentando modelos de dom\u00ednio<\/p>\n<\/li>\n<li>\n<p>Gerando esqueletos de c\u00f3digo<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>2. Diagramas de Componentes<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Mostrar a organiza\u00e7\u00e3o e as depend\u00eancias das unidades de implementa\u00e7\u00e3o.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Componentes (estereotipados como\u00a0<code data-backticks=\"1\">\u00abcomponente\u00bb<\/code>)<\/p>\n<\/li>\n<li>\n<p>Interfaces fornecidas\/necess\u00e1rias (nota\u00e7\u00e3o de bola e soquete)<\/p>\n<\/li>\n<li>\n<p>Conectores de montagem e rela\u00e7\u00f5es de depend\u00eancia<\/p>\n<\/li>\n<li>\n<p>Artifatos (sa\u00eddas compiladas: JARs, DLLs, execut\u00e1veis)<\/p>\n<\/li>\n<\/ul>\n<p><strong>Uso Exemplo<\/strong>:<strong>Quando usar<\/strong>:<\/p>\n<h2 data-path-to-node=\"1\">Componentes e Fronteiras Modulares<\/h2>\n<p data-path-to-node=\"2\">No centro do diagrama est\u00e1 o conceito de um componente, uma unidade aut\u00f4noma e modular de um sistema que encapsula seus conte\u00fados e manifesta seu comportamento por meio de interfaces claras. A grande borda externa representa o <b data-index-in-node=\"237\" data-path-to-node=\"2\">Terminal<\/b> componente, que atua como um subsistema ou cont\u00eainer. Dentro desse cont\u00eainer residem componentes internos menores e especializados \u2014 nomeadamente <b data-index-in-node=\"374\" data-path-to-node=\"2\">Inspe\u00e7\u00e3o de Seguran\u00e7a<\/b>, <b data-index-in-node=\"392\" data-path-to-node=\"2\">Equipe<\/b>, <b data-index-in-node=\"399\" data-path-to-node=\"2\">Defeito<\/b>, e <b data-index-in-node=\"411\" data-path-to-node=\"2\">Mapa<\/b>. Cada uma dessas unidades internas representa uma pe\u00e7a modular de software ou l\u00f3gica de gerenciamento de dados trabalhando juntas para cumprir as responsabilidades do Terminal.<\/p>\n<h2 data-path-to-node=\"3\">Interfaces como Contratos<\/h2>\n<p data-path-to-node=\"4\">Componentes n\u00e3o exp\u00f5em diretamente sua l\u00f3gica interna; ao inv\u00e9s disso, interagem por meio de interfaces bem definidas que atuam como contratos arquitet\u00f4nicos.<\/p>\n<ul data-path-to-node=\"5\">\n<li>\n<p data-path-to-node=\"5,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"5,0,0\">Interfaces Fornecidas:<\/b> Representadas por um s\u00edmbolo de \u201cguloseima\u201d ou c\u00edrculo, essas indicam os servi\u00e7os, dados ou opera\u00e7\u00f5es que um componente implementa e oferece ao seu ambiente. Por exemplo, o componente Terminal externo exp\u00f5e interfaces fornecidas externas como <b data-index-in-node=\"259\" data-path-to-node=\"5,0,0\">Estado<\/b>, <b data-index-in-node=\"266\" data-path-to-node=\"5,0,0\">Detalhes<\/b>, e <b data-index-in-node=\"279\" data-path-to-node=\"5,0,0\">Item de Inspe\u00e7\u00e3o<\/b>, indicando o que os clientes externos podem solicitar dele.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"5,1,0\">Interfaces Requeridas:<\/b> Representadas por um s\u00edmbolo de \u201csoquete\u201d ou semic\u00edrculo, essas especificam os servi\u00e7os ou dados que um componente precisa de outra entidade para funcionar corretamente. No lado direito do diagrama, o componente Terminal exp\u00f5e explicitamente interfaces requeridas para <b data-index-in-node=\"270\" data-path-to-node=\"5,1,0\">Conta<\/b> e <b data-index-in-node=\"282\" data-path-to-node=\"5,1,0\">ID de Inspe\u00e7\u00e3o<\/b>, mostrando suas depend\u00eancias com subsistemas externos.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"6\">Portas e Fia\u00e7\u00e3o Interna<\/h2>\n<p data-path-to-node=\"7\">Para gerenciar o fluxo de dados e controle, preservando a encapsula\u00e7\u00e3o, o sistema utiliza portas e rela\u00e7\u00f5es de delega\u00e7\u00e3o.<\/p>\n<ul data-path-to-node=\"8\">\n<li>\n<p data-path-to-node=\"8,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"8,0,0\">Portas:<\/b> Os pequenos quadrados localizados na borda dos componentes representam portas. Elas atuam como pontos de intera\u00e7\u00e3o distintos pelos quais a estrutura interna do componente se conecta com o mundo exterior. As portas permitem que um componente isole sua fia\u00e7\u00e3o interna do ambiente externo, significando que componentes internos podem ser substitu\u00eddos ou modificados sem alterar como o componente pai aparece para o exterior.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"8,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"8,1,0\">Delega\u00e7\u00e3o e Montagem:<\/b> Dentro do Terminal, linhas conectam essas interfaces para formar a montagem estrutural. Uma interface fornecida na porta externa delega solicita\u00e7\u00f5es recebidas diretamente para a interface fornecida de um componente interno (como visto com os caminhos de <b data-index-in-node=\"250\" data-path-to-node=\"8,1,0\">Estado<\/b> e <b data-index-in-node=\"260\" data-path-to-node=\"8,1,0\">Detalhes<\/b> que levam para <b data-index-in-node=\"287\" data-path-to-node=\"8,1,0\">Inspe\u00e7\u00e3o de Seguran\u00e7a<\/b>). Por outro lado, os componentes internos conectam suas interfaces de soquete requeridas diretamente \u00e0s interfaces de guloseima fornecidas de componentes vizinhos. Por exemplo, o componente <b data-index-in-node=\"467\" data-path-to-node=\"8,1,0\">Inspe\u00e7\u00e3o de Seguran\u00e7a<\/b> depende da interface <b data-index-in-node=\"508\" data-path-to-node=\"8,1,0\">Inspetor<\/b> fornecida por <b data-index-in-node=\"540\" data-path-to-node=\"8,1,0\">Equipe<\/b>, a <b data-index-in-node=\"551\" data-path-to-node=\"8,1,0\">Detalhes do defeito<\/b> interface fornecida por <b data-index-in-node=\"588\" data-path-to-node=\"8,1,0\">Defeito<\/b>, e a <b data-index-in-node=\"604\" data-path-to-node=\"8,1,0\">Localiza\u00e7\u00e3o<\/b> interface fornecida por <b data-index-in-node=\"635\" data-path-to-node=\"8,1,0\">Mapa<\/b>, criando um ecossistema interno bem coordenado, mas fracamente acoplado.<\/p>\n<\/li>\n<\/ul>\n<p><img alt=\"What is Component Diagram?\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/02-component-diagram-overview.png\"\/><\/p>\n<ul>\n<li>\n<p>Planejamento da arquitetura modular do sistema<\/p>\n<\/li>\n<li>\n<p>Gerenciamento das depend\u00eancias de compila\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Documenta\u00e7\u00e3o de bibliotecas de componentes reutiliz\u00e1veis<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>3. Diagramas de Estrutura Composta<em>(Adicionado na UML 2.0)<br \/>\n<\/em><\/h3>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Partes (propriedades com rela\u00e7\u00f5es parte-todo)<\/p>\n<\/li>\n<li>\n<p>Portas (pontos de intera\u00e7\u00e3o com interfaces fornecidas\/obrigat\u00f3rias)<\/p>\n<\/li>\n<li>\n<p>Conectores (links em tempo de execu\u00e7\u00e3o entre partes)<\/p>\n<\/li>\n<li>\n<p>Ocorr\u00eancias de colabora\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p><strong>Exemplo de Uso<\/strong>: Modelando um\u00a0<code data-backticks=\"1\">Carro<\/code>:<\/p>\n<h2 data-path-to-node=\"1\">Classificador Encapsulador (Classe)<\/h2>\n<p data-path-to-node=\"2\">O ret\u00e2ngulo externo representa o classificador contido, neste caso, o <b data-index-in-node=\"76\" data-path-to-node=\"2\">Carro<\/b> classe. Em um diagrama de estrutura composta, essa fronteira atua como um cont\u00eainer que encapsula a configura\u00e7\u00e3o em tempo de execu\u00e7\u00e3o interna do sistema. Define o contexto em que inst\u00e2ncias individuais cooperam para alcan\u00e7ar um prop\u00f3sito comportamental mais amplo, escondendo a complexidade de como um \u201cCarro\u201d funciona internamente de entidades externas.<\/p>\n<h2 data-path-to-node=\"3\">Partes (Estrutura Interna)<\/h2>\n<p data-path-to-node=\"4\">Os ret\u00e2ngulos internos dentro da fronteira do Car representam <b data-index-in-node=\"58\" data-path-to-node=\"4\">Partes<\/b>. Uma parte explica um papel desempenhado por um conjunto de inst\u00e2ncias durante a execu\u00e7\u00e3o do classificador contido. Ao inv\u00e9s de mostrar uma rela\u00e7\u00e3o est\u00e1tica em tempo de compila\u00e7\u00e3o (como um diagrama de classes padr\u00e3o), essas partes indicam inst\u00e2ncias em tempo de execu\u00e7\u00e3o preenchendo slots arquitet\u00f4nicos espec\u00edficos:<\/p>\n<ul data-path-to-node=\"5\">\n<li>\n<p data-path-to-node=\"5,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"5,0,0\"><code data-index-in-node=\"0\" data-path-to-node=\"5,0,0\">-t : Transmiss\u00e3o<\/code><\/b>: Uma inst\u00e2ncia desempenhando o papel do sistema de transmiss\u00e3o.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"5,1,0\"><code data-index-in-node=\"0\" data-path-to-node=\"5,1,0\">-e : Motor<\/code><\/b>: Uma inst\u00e2ncia desempenhando o papel da fonte de energia do motor.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"5,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"5,2,0\"><code data-index-in-node=\"0\" data-path-to-node=\"5,2,0\">-s : Sistema de Dire\u00e7\u00e3o<\/code><\/b>: Uma inst\u00e2ncia desempenhando o papel do mecanismo de dire\u00e7\u00e3o.<\/p>\n<\/li>\n<\/ul>\n<p data-path-to-node=\"6\">A nota\u00e7\u00e3o de dois pontos indica que esses s\u00e3o pap\u00e9is estruturais tipificados por suas respectivas classes, definindo exatamente quais componentes devem existir dentro de um Car operacional.<\/p>\n<h2 data-path-to-node=\"7\">Portas e Fronteiras<\/h2>\n<p data-path-to-node=\"8\">Os pequenos quadrados embutidos na fronteira do classificador externo e nas fronteiras das partes internas representam <b data-index-in-node=\"108\" data-path-to-node=\"8\">Portas<\/b>. As portas s\u00e3o pontos de intera\u00e7\u00e3o distintos que desacoplam a estrutura interna de um classificador do seu ambiente externo.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\">Portas externas na fronteira do Car\u2014como <b data-index-in-node=\"43\" data-path-to-node=\"9,0,0\"><code data-index-in-node=\"43\" data-path-to-node=\"9,0,0\">: Roda<\/code><\/b>, <b data-index-in-node=\"52\" data-path-to-node=\"9,0,0\"><code data-index-in-node=\"52\" data-path-to-node=\"9,0,0\">: Alavanca de Gasolina<\/code><\/b>, e <b data-index-in-node=\"69\" data-path-to-node=\"9,0,0\"><code data-index-in-node=\"69\" data-path-to-node=\"9,0,0\">: Volante<\/code><\/b>\u2014exibem como o Car interage com o mundo exterior ou ambiente f\u00edsico sem expor <i data-index-in-node=\"178\" data-path-to-node=\"9,0,0\">quais<\/i>partes internas est\u00e3o lidando com essas intera\u00e7\u00f5es.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\">As portas nas partes internas (como as portas nos blocos de Transmiss\u00e3o ou Motor) regem como esses sub-sistemas se comunicam entre si ou com a fronteira pai.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"10\">Conectores e Fia\u00e7\u00e3o Interna<\/h2>\n<p data-path-to-node=\"11\">As linhas s\u00f3lidas que conectam as portas representam <b data-index-in-node=\"53\" data-path-to-node=\"11\">Conectores<\/b>. Os conectores definem os caminhos de comunica\u00e7\u00e3o entre partes ou entre uma parte e uma porta externa em tempo de execu\u00e7\u00e3o.<\/p>\n<ul data-path-to-node=\"12\">\n<li>\n<p data-path-to-node=\"12,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"12,0,0\">Conectores de Delega\u00e7\u00e3o:<\/b> Conecta uma porta externa do container diretamente a uma porta interna de uma parte. Por exemplo, a porta externa <b data-index-in-node=\"125\" data-path-to-node=\"12,0,0\"><code data-index-in-node=\"125\" data-path-to-node=\"12,0,0\">: Roda<\/code><\/b> porta rota diretamente para o <b data-index-in-node=\"163\" data-path-to-node=\"12,0,0\">Transmiss\u00e3o<\/b>, e o externo <b data-index-in-node=\"194\" data-path-to-node=\"12,0,0\"><code data-index-in-node=\"194\" data-path-to-node=\"12,0,0\">: Volante<\/code><\/b> rota diretamente para o <b data-index-in-node=\"233\" data-path-to-node=\"12,0,0\">Sistema de Dire\u00e7\u00e3o<\/b>. Isso garante que os est\u00edmulos externos sejam delegados de forma cont\u00ednua para o ator interno correto.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"12,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"12,1,0\">Conectores de Montagem:<\/b> Liga partes internas para permitir colabora\u00e7\u00e3o. O conector entre o <b data-index-in-node=\"100\" data-path-to-node=\"12,1,0\">Transmiss\u00e3o<\/b> e o <b data-index-in-node=\"121\" data-path-to-node=\"12,1,0\">Motor<\/b> mostra que essas duas fun\u00e7\u00f5es de tempo de execu\u00e7\u00e3o distintas trocam diretamente sinais, dados ou for\u00e7a mec\u00e2nica para que o carro funcione como um todo unificado.<\/p>\n<\/li>\n<\/ul>\n<p id=\"RfTJiln\"><img alt=\"\" class=\"alignnone size-full wp-image-18820\" decoding=\"async\" height=\"227\" loading=\"lazy\" sizes=\"auto, (max-width: 574px) 100vw, 574px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c014d248a2.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c014d248a2.png 574w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c014d248a2-300x119.png 300w\" width=\"574\"\/><\/p>\n<p><strong>Quando usar<\/strong>:<\/p>\n<ul>\n<li>\n<p>Documentar padr\u00f5es de design<\/p>\n<\/li>\n<li>\n<p>Modelar colabora\u00e7\u00f5es internas complexas<\/p>\n<\/li>\n<li>\n<p>Ponte entre o design de classes e a implementa\u00e7\u00e3o de componentes<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>4. Diagramas de Implanta\u00e7\u00e3o<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Mapear artefatos de software para ambientes de execu\u00e7\u00e3o de hardware.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>N\u00f3s (dispositivos, ambientes de execu\u00e7\u00e3o)<\/p>\n<\/li>\n<li>\n<p>Artefatos (unidades implant\u00e1veis)<\/p>\n<\/li>\n<li>\n<p>Caminhos de comunica\u00e7\u00e3o entre n\u00f3s<\/p>\n<\/li>\n<li>\n<p>Especifica\u00e7\u00f5es de implanta\u00e7\u00e3o (detalhes de configura\u00e7\u00e3o)<\/p>\n<\/li>\n<\/ul>\n<h2><strong>Uso Exemplo<\/strong>:<strong>Quando usar<\/strong>:<\/h2>\n<h3 data-path-to-node=\"1\">N\u00f3s e Infraestrutura F\u00edsica<\/h3>\n<p data-path-to-node=\"2\">Diferentemente dos diagramas de design l\u00f3gico que modelam o layout do c\u00f3digo ou estruturas de classes, um diagrama de implanta\u00e7\u00e3o foca na topografia de hardware. Os principais blocos de constru\u00e7\u00e3o s\u00e3o<b data-index-in-node=\"164\" data-path-to-node=\"2\">N\u00f3s<\/b>, que s\u00e3o representados visualmente como cubos tridimensionais. Os n\u00f3s ilustram recursos computacionais f\u00edsicos ou ambientes de execu\u00e7\u00e3o onde os elementos de software realmente funcionam:<\/p>\n<ul data-path-to-node=\"3\">\n<li>\n<p data-path-to-node=\"3,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"0\" data-path-to-node=\"3,0,0\">&lt;&lt;processador&gt;&gt;<\/code> N\u00f3s:<\/b> Cubos estereotipados com<code data-index-in-node=\"44\" data-path-to-node=\"3,0,0\">&lt;&lt;processador&gt;&gt;<\/code> (como<b data-index-in-node=\"67\" data-path-to-node=\"3,0,0\">Servidor de Cache<\/b>, <b data-index-in-node=\"83\" data-path-to-node=\"3,0,0\">Servidor Principal<\/b>, e gen\u00e9ricos<b data-index-in-node=\"111\" data-path-to-node=\"3,0,0\">Servidor<\/b> blocos) representam n\u00f3s com capacidade computacional, mem\u00f3ria e poder de processamento capazes de executar bin\u00e1rios de software.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,1,0\"><code data-index-in-node=\"0\" data-path-to-node=\"3,1,0\">&lt;&lt;rede&gt;&gt;<\/code> N\u00f3s:<\/b> O cubo alongado rotulado como<b data-index-in-node=\"46\" data-path-to-node=\"3,1,0\">Rede Local<\/b> representa um caminho de comunica\u00e7\u00e3o ou infraestrutura de roteamento, e n\u00e3o um computador individual. Indica a estrutura f\u00edsica que permite que processadores conectados troquem fluxos de pacotes de dados.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,2,0\">N\u00f3s de Dispositivos:<\/b> N\u00f3s n\u00e3o estereotipados como<b data-index-in-node=\"39\" data-path-to-node=\"3,2,0\">Internet<\/b> e<b data-index-in-node=\"52\" data-path-to-node=\"3,2,0\">Banco de Modems<\/b> representam componentes de hardware de fronteira ou infraestrutura f\u00edsica externa necess\u00e1ria para rotear tr\u00e1fego externo para o ambiente central do sistema.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"4\">Associa\u00e7\u00f5es e Rotas de Comunica\u00e7\u00e3o<\/h2>\n<p data-path-to-node=\"5\">As linhas s\u00f3lidas que conectam os cubos tridimensionais representam<b data-index-in-node=\"65\" data-path-to-node=\"5\">Associa\u00e7\u00f5es<\/b>. Em um diagrama de implanta\u00e7\u00e3o, essas associa\u00e7\u00f5es mapeiam os caminhos de comunica\u00e7\u00e3o f\u00edsica, links de rede ou conex\u00f5es de hardware entre n\u00f3s.<\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\">A linha entre <b data-index-in-node=\"17\" data-path-to-node=\"6,0,0\">Internet<\/b> e <b data-index-in-node=\"30\" data-path-to-node=\"6,0,0\">Banco de Modems<\/b>ilustra o ponto de entrada de dados p\u00fablicos externos na pilha de hardware.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\">A associa\u00e7\u00e3o que se estende do <b data-index-in-node=\"35\" data-path-to-node=\"6,1,0\">Banco de Modems<\/b> para baixo at\u00e9 o <b data-index-in-node=\"60\" data-path-to-node=\"6,1,0\">Servidor de Cache<\/b>mapeia o roteamento f\u00edsico do tr\u00e1fego entrante at\u00e9 a camada de cache de borda.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,2,0\">Associa\u00e7\u00f5es que conectam os <b data-index-in-node=\"25\" data-path-to-node=\"6,2,0\">Servidores de Cache<\/b> e o <b data-index-in-node=\"60\" data-path-to-node=\"6,2,0\">Servidor Prim\u00e1rio<\/b> cluster ao <b data-index-in-node=\"90\" data-path-to-node=\"6,2,0\">Rede Local<\/b>estabelecem como os componentes internos se comunicam por meio de uma infraestrutura compartilhada de barramento local de alta velocidade ou comutador de rede.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"7\">Empilhamento Topol\u00f3gico e Redund\u00e2ncia<\/h2>\n<p data-path-to-node=\"8\">A disposi\u00e7\u00e3o dos n\u00f3s no diagrama mostra explicitamente a topologia de implanta\u00e7\u00e3o e as escolhas de design arquitet\u00f4nico para alta disponibilidade e distribui\u00e7\u00e3o de carga.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,0,0\">Camada de Cache de Borda:<\/b> Posicionados diretamente abaixo do hardware do modem de entrada est\u00e3o dois n\u00f3s distintos e paralelos <b data-index-in-node=\"104\" data-path-to-node=\"9,0,0\">Servidor de Cache<\/b>n\u00f3s. Essa configura\u00e7\u00e3o demonstra visualmente uma camada de borda redundante projetada para distribuir a carga de tr\u00e1fego entrante e armazenar em cache ativos antes que as requisi\u00e7\u00f5es alcancem a infraestrutura profunda.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,1,0\">Granja de Servidores Internos:<\/b> Posicionado na parte inferior da pilha, conectado por meio do <b data-index-in-node=\"79\" data-path-to-node=\"9,1,0\">Rede Local<\/b>, \u00e9 um cluster de servidores principais. A diferencia\u00e7\u00e3o entre o <b data-index-in-node=\"156\" data-path-to-node=\"9,1,0\">Servidor Prim\u00e1rio<\/b> e o gen\u00e9rico adjacente <b data-index-in-node=\"196\" data-path-to-node=\"9,1,0\">Servidor<\/b> os n\u00f3s mapeiam visualmente uma arquitetura mestre-r\u00e9plica ou prim\u00e1ria-secund\u00e1ria, garantindo que a persist\u00eancia de dados e as cargas de trabalho intensivas de computa\u00e7\u00e3o sejam coordenadas com seguran\u00e7a no ambiente interno do centro de dados.<\/p>\n<\/li>\n<\/ul>\n<h2><img alt=\"What is Deployment Diagram?\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/02-deployment-diagram-notations.png\"\/><\/h2>\n<p><strong>Prop\u00f3sito<\/strong>: Modelar a estrutura interna de classificadores e padr\u00f5es complexos.<\/p>\n<ul>\n<li>\n<p>Planejamento da infraestrutura do sistema<\/p>\n<\/li>\n<li>\n<p>Documenta\u00e7\u00e3o de arquiteturas distribu\u00eddas<\/p>\n<\/li>\n<li>\n<p>Especificar estrat\u00e9gias de failover e redund\u00e2ncia<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>5. Diagramas de Pacotes<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Organizar e gerenciar namespaces por meio de agrupamento l\u00f3gico.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Pacotes (ret\u00e2ngulos com abas)<\/p>\n<\/li>\n<li>\n<p>Relacionamentos de importa\u00e7\u00e3o\/acesso (<code data-backticks=\"1\">\u00abimportar\u00bb<\/code>,\u00a0<code data-backticks=\"1\">\u00abacesso\u00bb<\/code>)<\/p>\n<\/li>\n<li>\n<p>Relacionamentos de fus\u00e3o (<code data-backticks=\"1\">\u00abfundir\u00bb<\/code>)<\/p>\n<\/li>\n<li>\n<p>Visibilidade (<code data-backticks=\"1\">+<\/code>\u00a0p\u00fablico,\u00a0<code data-backticks=\"1\">-<\/code>\u00a0privado)<\/p>\n<\/li>\n<\/ul>\n<h1><strong>Exemplo de Uso<\/strong>:<\/h1>\n<h2 data-path-to-node=\"1\">Limites de Subsistema e Pacote<\/h2>\n<p data-path-to-node=\"2\">O diagrama depende fortemente da nota\u00e7\u00e3o de &#8220;pasta&#8221; para representar agrupamentos l\u00f3gicos de elementos de design.<\/p>\n<ul data-path-to-node=\"3\">\n<li>\n<p data-path-to-node=\"3,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,0,0\">Subsistema:<\/b> A grande pasta externa estereotipada como <b data-index-in-node=\"49\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"49\" data-path-to-node=\"3,0,0\">&lt;&lt;subsystem&gt;&gt; Gest\u00e3o de Pedidos<\/code><\/b> representa uma unidade comportamental principal e encapsulada do sistema f\u00edsico. Atua como um cont\u00eainer de alto n\u00edvel que agrupa componentes e pacotes relacionados necess\u00e1rios para executar a gest\u00e3o de pedidos.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,1,0\">Pacote:<\/b> As pastas menores dentro e fora do subsistema (tais como <b data-index-in-node=\"71\" data-path-to-node=\"3,1,0\">UI<\/b>, <b data-index-in-node=\"75\" data-path-to-node=\"3,1,0\">Processamento de Pedidos<\/b>, e <b data-index-in-node=\"97\" data-path-to-node=\"3,1,0\">GUIManager<\/b>) s\u00e3o pacotes padr\u00e3o. S\u00e3o usados para organizar elementos em grupos gerenci\u00e1veis, estabelecer namespaces e definir limites de visibilidade dentro da arquitetura.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"4\">Depend\u00eancias e Camadas<\/h2>\n<p data-path-to-node=\"5\">Setas tracejadas indicam <b data-index-in-node=\"27\" data-path-to-node=\"5\">Depend\u00eancias<\/b>, estabelecendo que uma mudan\u00e7a em um pacote (o destino) pode afetar o funcionamento do pacote de origem (a fonte).<\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,0,0\">Depend\u00eancias Internas:<\/b> Dentro do subsistema de Gest\u00e3o de Pedidos, uma clara camada arquitet\u00f4nica de cima para baixo \u00e9 vis\u00edvel. O <b data-index-in-node=\"110\" data-path-to-node=\"6,0,0\">UI<\/b> pacote depende do <b data-index-in-node=\"132\" data-path-to-node=\"6,0,0\">Processamento de Pedidos<\/b>, que por sua vez depende do <b data-index-in-node=\"179\" data-path-to-node=\"6,0,0\">Calculadora de Pre\u00e7os<\/b> e <b data-index-in-node=\"200\" data-path-to-node=\"6,0,0\">Armazenamento Externo<\/b>. Isso representa um fluxo arquitet\u00f4nico em que elementos de apresenta\u00e7\u00e3o de n\u00edvel superior dependem de camadas de l\u00f3gica de neg\u00f3cios central e de acesso a dados.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,1,0\">Depend\u00eancia de Pacote Externo:<\/b> Os pacotes tamb\u00e9m podem depender de elementos fora de seus limites imediatos de subsistema. Por exemplo, o <b data-index-in-node=\"131\" data-path-to-node=\"6,1,0\">UI<\/b> pacote tem uma depend\u00eancia com o externo <b data-index-in-node=\"175\" data-path-to-node=\"6,1,0\">GUIManager<\/b>. Da mesma forma, o <b data-index-in-node=\"202\" data-path-to-node=\"6,1,0\">Armazenamento Aleat\u00f3rio<\/b> e <b data-index-in-node=\"221\" data-path-to-node=\"6,1,0\">Armazenamento de Fluxo<\/b> pacotes na parte inferior cruzam a fronteira do subsistema para depender de estruturas de dados externas, destacando como o subsistema se integra em um ecossistema de software maior.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"7\">Abstra\u00e7\u00e3o e Heran\u00e7a (Generaliza\u00e7\u00e3o)<\/h2>\n<p data-path-to-node=\"8\">O diagrama utiliza estilos especializados e setas de relacionamento para demonstrar padr\u00f5es de design abstratos aplicados \u00e0 arquitetura modular.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,0,0\">Pacotes Abstratos vs. Concretos:<\/b> Pacotes que cont\u00eam elementos abstratos ou definem uma estrutura semelhante a uma interface s\u00e3o representados com nomes em it\u00e1lico (como <b data-index-in-node=\"157\" data-path-to-node=\"9,0,0\"><i data-index-in-node=\"157\" data-path-to-node=\"9,0,0\">Armazenamento Externo<\/i><\/b> e <b data-index-in-node=\"178\" data-path-to-node=\"9,0,0\"><i data-index-in-node=\"178\" data-path-to-node=\"9,0,0\">Gerenciamento de Armazenamento<\/i><\/b>). Por outro lado, pacotes que cont\u00eam implementa\u00e7\u00f5es de c\u00f3digo operacional, como <b data-index-in-node=\"269\" data-path-to-node=\"9,0,0\">Reposit\u00f3rio<\/b> e <b data-index-in-node=\"284\" data-path-to-node=\"9,0,0\">Armazenamento de Arquivo<\/b>, usam texto padr\u00e3o para indicar que s\u00e3o pacotes concretos.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,1,0\">Generaliza\u00e7\u00e3o:<\/b> Representado por uma linha s\u00f3lida com um tri\u00e2ngulo aberto e oco apontando para o pacote pai. Isso indica uma rela\u00e7\u00e3o de heran\u00e7a ou implementa\u00e7\u00e3o. Dentro do subsistema, <b data-index-in-node=\"190\" data-path-to-node=\"9,1,0\">Armazenamento Aleat\u00f3rio<\/b> e <b data-index-in-node=\"209\" data-path-to-node=\"9,1,0\">Armazenamento de Fluxo<\/b> especializam ou implementam a interface abstrata <b data-index-in-node=\"261\" data-path-to-node=\"9,1,0\"><i data-index-in-node=\"261\" data-path-to-node=\"9,1,0\">Armazenamento Externo<\/i><\/b> interface. Fora do subsistema, o <b data-index-in-node=\"325\" data-path-to-node=\"9,1,0\">Reposit\u00f3rio<\/b> e <b data-index-in-node=\"340\" data-path-to-node=\"9,1,0\">Armazenamento de Arquivo<\/b> pacotes generalizam-se para o n\u00edvel abstrato <b data-index-in-node=\"393\" data-path-to-node=\"9,1,0\"><i data-index-in-node=\"393\" data-path-to-node=\"9,1,0\">GerenciamentoDeArmazenamento<\/i><\/b> pacote, mostrando como o comportamento polim\u00f3rfico e a classifica\u00e7\u00e3o estrutural podem ser modelados no n\u00edvel do pacote. <\/p>\n<p><img alt=\"What is Package Diagram?\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/08-package-diagram-order-subsystem.png\"\/><\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><strong>Quando usar<\/strong>:<\/p>\n<\/li>\n<li>\n<p>Gerenciamento de grandes bases de c\u00f3digo<\/p>\n<\/li>\n<li>\n<p>Defini\u00e7\u00e3o de limites de m\u00f3dulos<\/p>\n<\/li>\n<li>\n<p>Controle de depend\u00eancias de compila\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>6. Diagramas de Objetos<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Mostrar instant\u00e2neos de inst\u00e2ncias e seus links em um momento espec\u00edfico.<\/p>\n<p><strong>Elementos principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Objetos (nomes sublinhados:\u00a0<code data-backticks=\"1\">meuCarro:Carro<\/code>)<\/p>\n<\/li>\n<li>\n<p>Liga\u00e7\u00f5es entre inst\u00e2ncias de objetos<\/p>\n<\/li>\n<li>\n<p>Valores de atributos em tempo de execu\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p><strong>Exemplo de uso<\/strong>:<\/p>\n<h2 data-path-to-node=\"1\">Objetos e inst\u00e2ncias concretas<\/h2>\n<p data-path-to-node=\"2\">Diferentemente dos diagramas de classe, que mostram configura\u00e7\u00f5es abstratas e de n\u00edvel de projeto, um diagrama de objetos captura inst\u00e2ncias reais que vivem na mem\u00f3ria. Os objetos s\u00e3o representados por ret\u00e2ngulos, e seus nomes s\u00e3o sempre sublinhados para indicar instancia\u00e7\u00e3o.<\/p>\n<ul data-path-to-node=\"3\">\n<li>\n<p data-path-to-node=\"3,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,0,0\">Objetos nomeados:<\/b> Esses seguem a sintaxe <code data-index-in-node=\"39\" data-path-to-node=\"3,0,0\">nomeInst\u00e2ncia : NomeClasse<\/code>. Por exemplo, <b data-index-in-node=\"78\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"78\" data-path-to-node=\"3,0,0\">c : Empresa<\/code><\/b> representa uma inst\u00e2ncia espec\u00edfica de empresa chamada \u201cc\u201d, e <b data-index-in-node=\"144\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"144\" data-path-to-node=\"3,0,0\">p : Pessoa<\/code><\/b> representa uma inst\u00e2ncia espec\u00edfica de indiv\u00edduo chamada \u201cp\u201d.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,1,0\">Objetos An\u00f4nimos:<\/b> Quando o identificador espec\u00edfico da inst\u00e2ncia \u00e9 omitido ou irrelevante para o cen\u00e1rio, apenas o nome da classe \u00e9 fornecido, precedido por dois pontos (por exemplo, <b data-index-in-node=\"159\" data-path-to-node=\"3,1,0\"><code data-index-in-node=\"159\" data-path-to-node=\"3,1,0\">: Informa\u00e7\u00f5es de Contato<\/code><\/b>). Isso especifica que uma inst\u00e2ncia concreta de informa\u00e7\u00f5es de contato existe e est\u00e1 associada \u00e0 estrutura, mas n\u00e3o precisa de um nome de vari\u00e1vel exclusivo neste contexto.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"4\">Estado e Valores de Atributos<\/h2>\n<p data-path-to-node=\"5\">O compartimento inferior de um ret\u00e2ngulo de objeto cont\u00e9m seu estado espec\u00edfico, definido por valores expl\u00edcitos atribu\u00eddos aos seus atributos naquele momento. Em vez de apenas listar tipos de dados, essas entradas usam o formato <code data-index-in-node=\"209\" data-path-to-node=\"5\">atributo = valor<\/code> de atribui\u00e7\u00e3o para refletir a realidade:<\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\">A inst\u00e2ncia do departamento <code data-index-in-node=\"24\" data-path-to-node=\"6,0,0\">d1<\/code> possui o valor do atributo <code data-index-in-node=\"53\" data-path-to-node=\"6,0,0\">nome = Vendas<\/code>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\">Outra inst\u00e2ncia distinta de departamento <code data-index-in-node=\"37\" data-path-to-node=\"6,1,0\">d2<\/code> possui o valor <code data-index-in-node=\"56\" data-path-to-node=\"6,1,0\">nome = P&amp;D<\/code>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,2,0\">A inst\u00e2ncia da pessoa <code data-index-in-node=\"20\" data-path-to-node=\"6,2,0\">p<\/code> possui um conjunto completo de dados de estado, mapeando um perfil espec\u00edfico: <code data-index-in-node=\"89\" data-path-to-node=\"6,2,0\">nome = Derek<\/code>, <code data-index-in-node=\"103\" data-path-to-node=\"6,2,0\">IDFuncion\u00e1rio = D-12821<\/code>, e <code data-index-in-node=\"129\" data-path-to-node=\"6,2,0\">cargo = Gerente<\/code>.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"7\">Links e Relacionamentos<\/h2>\n<p data-path-to-node=\"8\">As linhas s\u00f3lidas que conectam os objetos representam <b data-index-in-node=\"49\" data-path-to-node=\"8\">Links<\/b>. Uma liga\u00e7\u00e3o \u00e9 uma inst\u00e2ncia concreta de uma associa\u00e7\u00e3o definida entre classes. Se um diagrama de classes afirma que Empresas t\u00eam Departamentos, o diagrama de objetos demonstra as conex\u00f5es reais em tempo de execu\u00e7\u00e3o entre eles.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\">A inst\u00e2ncia da empresa <code data-index-in-node=\"21\" data-path-to-node=\"9,0,0\">c<\/code> est\u00e1 ativamente ligada \u00e0s inst\u00e2ncias de departamento <code data-index-in-node=\"66\" data-path-to-node=\"9,0,0\">d1<\/code> (Vendas) e <code data-index-in-node=\"81\" data-path-to-node=\"9,0,0\">d2<\/code> (Pesquisa e Desenvolvimento).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\">O diagrama tamb\u00e9m demonstra a conex\u00e3o hier\u00e1rquica de inst\u00e2ncias, onde <code data-index-in-node=\"63\" data-path-to-node=\"9,1,0\">d1 : Departamento<\/code> (Vendas) est\u00e1 ligada a uma inst\u00e2ncia de sub-departamento tamb\u00e9m tipificada como Departamento (<code data-index-in-node=\"157\" data-path-to-node=\"9,1,0\">nome = Vendas EUA<\/code>).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,2,0\">Finalmente, a inst\u00e2ncia de pessoa <code data-index-in-node=\"29\" data-path-to-node=\"9,2,0\">p<\/code> (Derek) est\u00e1 ligada \u00e0 inst\u00e2ncia do departamento de Vendas EUA, ao mesmo tempo em que mant\u00e9m uma liga\u00e7\u00e3o com uma inst\u00e2ncia an\u00f4nima <code data-index-in-node=\"142\" data-path-to-node=\"9,2,0\">: Informa\u00e7\u00f5es de Contato<\/code> contendo seu endere\u00e7o f\u00edsico.<\/p>\n<\/li>\n<\/ul>\n<p id=\"dJfuSkC\"><img alt=\"\" class=\"alignnone size-full wp-image-18813\" decoding=\"async\" height=\"320\" loading=\"lazy\" sizes=\"auto, (max-width: 642px) 100vw, 642px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfdd12817a.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfdd12817a.png 642w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfdd12817a-300x150.png 300w\" width=\"642\"\/><\/p>\n<p data-path-to-node=\"9,2,0\"><strong>Quando usar<\/strong>:<\/p>\n<ul>\n<li>\n<p>Validando projetos de diagramas de classes<\/p>\n<\/li>\n<li>\n<p>Depurando rela\u00e7\u00f5es complexas entre objetos<\/p>\n<\/li>\n<li>\n<p>Demonstrando estados de tempo de execu\u00e7\u00e3o de exemplo<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>\ud83d\udd36 Diagramas Comportamentais<\/h2>\n<p>Diagramas comportamentais modelam aspectos din\u00e2micos \u2014 como o sistema se comporta ao longo do tempo.<\/p>\n<h3>7. Diagramas de Atividades<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Modelar fluxos de trabalho, processos de neg\u00f3cios e l\u00f3gica algor\u00edtmica.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>A\u00e7\u00f5es (ret\u00e2ngulos arredondados)<\/p>\n<\/li>\n<li>\n<p>N\u00f3s de controle: inicial, decis\u00e3o, fus\u00e3o, ramifica\u00e7\u00e3o, jun\u00e7\u00e3o, final<\/p>\n<\/li>\n<li>\n<p>N\u00f3s de objeto e pin\u00e7as<\/p>\n<\/li>\n<li>\n<p>Parti\u00e7\u00f5es (cursos de nata\u00e7\u00e3o) para atribui\u00e7\u00e3o de responsabilidades<\/p>\n<\/li>\n<li>\n<p>Tratadores de exce\u00e7\u00f5es e regi\u00f5es interromp\u00edveis<\/p>\n<\/li>\n<\/ul>\n<p><strong>Exemplo de Uso<\/strong>: Fluxo de trabalho de processamento de pedidos<\/p>\n<h2 data-path-to-node=\"1\">Organiza\u00e7\u00e3o Estrutural (Cursos de Nata\u00e7\u00e3o e Parti\u00e7\u00f5es)<\/h2>\n<p data-path-to-node=\"2\">O diagrama \u00e9 organizado verticalmente em grandes colunas conhecidas indistintamente como<b data-index-in-node=\"80\" data-path-to-node=\"2\">Cursos de nata\u00e7\u00e3o<\/b> ou <b data-index-in-node=\"93\" data-path-to-node=\"2\">Parti\u00e7\u00f5es<\/b>. Essas fronteiras categorizam as responsabilidades pelas a\u00e7\u00f5es contidas neles, mapeando etapas para pap\u00e9is ou unidades de neg\u00f3cios espec\u00edficos:<\/p>\n<ul data-path-to-node=\"3\">\n<li>\n<p data-path-to-node=\"3,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,0,0\">Interface de Vendas ao Cliente:<\/b> Possui o ciclo de vida voltado para o cliente, gerenciando a inicializa\u00e7\u00e3o do cliente, roteamento alternativo e a apresenta\u00e7\u00e3o final.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,1,0\">Propriet\u00e1rio da Proposta:<\/b> Gerencia o planejamento central, a an\u00e1lise operacional e a compila\u00e7\u00e3o das estruturas de dados formais da proposta.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,2,0\">Propriet\u00e1rio do Or\u00e7amento:<\/b> Foca exclusivamente na avalia\u00e7\u00e3o financeira e na prepara\u00e7\u00e3o das m\u00e9tricas espec\u00edficas do or\u00e7amento.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"4\">Fluxo de Controle e Estados de A\u00e7\u00e3o<\/h2>\n<p data-path-to-node=\"5\">A execu\u00e7\u00e3o procedural passo a passo \u00e9 direcionada por n\u00f3s de controle e caminhos direcionados.<\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,0,0\">N\u00f3 Inicial:<\/b> Representado pelo c\u00edrculo preto s\u00f3lido no topo, isso indica o ponto de in\u00edcio de todo o fluxo de trabalho da atividade.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,1,0\">A\u00e7\u00e3o:<\/b> Os ret\u00e2ngulos arredondados (por exemplo, <b data-index-in-node=\"38\" data-path-to-node=\"6,1,0\">Iniciar Contato<\/b>, <b data-index-in-node=\"58\" data-path-to-node=\"6,1,0\">Buscar Alternativa<\/b>, e <b data-index-in-node=\"82\" data-path-to-node=\"6,1,0\">Compilar Informa\u00e7\u00f5es Adicionais<\/b>) representam etapas ou tarefas \u00fanicas e n\u00e3o decompon\u00edveis dentro da sequ\u00eancia de execu\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,2,0\">Fluxo de Controle:<\/b> As setas s\u00f3lidas que conectam os elementos determinam a progress\u00e3o sequencial do fluxo de trabalho, indicando exatamente qual a\u00e7\u00e3o deve ser conclu\u00edda antes que a pr\u00f3xima comece.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,3,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,3,0\">N\u00f3 Final de Atividade:<\/b> O s\u00edmbolo de alvo (um c\u00edrculo s\u00f3lido dentro de um anel oco) na parte inferior marca o ponto absoluto de t\u00e9rmino da execu\u00e7\u00e3o de todo o processo.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"7\">Roteamento e L\u00f3gica com Guardas (N\u00f3s de Decis\u00e3o)<\/h2>\n<p data-path-to-node=\"8\">S\u00edmbolos em forma de losango representam<b data-index-in-node=\"33\" data-path-to-node=\"8\">N\u00f3s de Decis\u00e3o<\/b>, que modelam ramifica\u00e7\u00f5es condicionais no fluxo de trabalho.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\">Os caminhos de controle de entrada s\u00e3o divididos em m\u00faltiplos caminhos de sa\u00edda mutuamente exclusivos com base em entradas espec\u00edficas.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\">As condi\u00e7\u00f5es que determinam qual caminho seguir s\u00e3o cercadas por colchetes, conhecidas como condi\u00e7\u00f5es de guarda (como<b data-index-in-node=\"114\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"114\" data-path-to-node=\"9,1,0\">[aceito]<\/code><\/b>, <b data-index-in-node=\"126\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"126\" data-path-to-node=\"9,1,0\">[rejeitado]<\/code><\/b>, e<b data-index-in-node=\"142\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"142\" data-path-to-node=\"9,1,0\">[juntar com outro fornecedor ou alterar requisitos]<\/code><\/b>). O processo avalia essas condi\u00e7\u00f5es em tempo de execu\u00e7\u00e3o para direcionar a execu\u00e7\u00e3o pelo caminho funcional apropriado.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"10\">Processamento Paralelo (N\u00f3s de Fork e Join)<\/h2>\n<p data-path-to-node=\"11\">As barras pretas s\u00f3lidas no diagrama atuam como pontos de sincroniza\u00e7\u00e3o para gerenciar fluxos de execu\u00e7\u00e3o concorrentes ou paralelos.<\/p>\n<ul data-path-to-node=\"12\">\n<li>\n<p data-path-to-node=\"12,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"12,0,0\">N\u00f3 Fork (rotulado como N\u00f3 de Fluxo na seta do diagrama):<\/b> Um \u00fanico fluxo de controle de entrada entra na barra e se divide em m\u00faltas threads de execu\u00e7\u00e3o independentes e concorrentes. Aqui, ap\u00f3s criar um plano de projeto, o processo se divide para permitir que o Propriet\u00e1rio da Proposta execute an\u00e1lise e planejamento de entrega, enquanto o Propriet\u00e1rio da Cota\u00e7\u00e3o simultaneamente trata a prepara\u00e7\u00e3o da cota\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"12,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"12,1,0\">N\u00f3 Join:<\/b> Uma barra de sincroniza\u00e7\u00e3o que combina m\u00faltiplos caminhos concorrentes de volta em um \u00fanico fluxo de controle. O processo n\u00e3o pode passar pelo N\u00f3 Join at\u00e9 que<i data-index-in-node=\"153\" data-path-to-node=\"12,1,0\">todos<\/i> os fluxos paralelos de entrada tenham alcan\u00e7ado com sucesso a barra, garantindo que a compila\u00e7\u00e3o da cota\u00e7\u00e3o e o rascunho da proposta estejam totalmente finalizados antes de prosseguir para compilar o pacote final.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"13\">Integra\u00e7\u00e3o de Dados (N\u00f3s de Objeto)<\/h2>\n<p data-path-to-node=\"14\">Ret\u00e2ngulos padr\u00e3o indicam<b data-index-in-node=\"28\" data-path-to-node=\"14\">N\u00f3s de Objeto<\/b>, que introduzem fluxo de dados no diagrama de atividade orientado a controle.<\/p>\n<ul data-path-to-node=\"15\">\n<li>\n<p data-path-to-node=\"15,0,0\">N\u00f3s de objeto representam inst\u00e2ncias de dados espec\u00edficos ou artefatos f\u00edsicos produzidos ou consumidos por a\u00e7\u00f5es, usando o<code data-index-in-node=\"115\" data-path-to-node=\"15,0,0\">nomeDaInst\u00e2ncia : NomeDaClasse<\/code> conven\u00e7\u00e3o (por exemplo, <b data-index-in-node=\"158\" data-path-to-node=\"15,0,0\"><code data-index-in-node=\"158\" data-path-to-node=\"15,0,0\">umaProposta : Proposta<\/code><\/b> e <b data-index-in-node=\"183\" data-path-to-node=\"15,0,0\"><code data-index-in-node=\"183\" data-path-to-node=\"15,0,0\">umPlano : Plano de Entrega do Projeto<\/code><\/b>).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"15,1,0\">Explicitamente marcado <b data-index-in-node=\"18\" data-path-to-node=\"15,1,0\"><code data-index-in-node=\"18\" data-path-to-node=\"15,1,0\">criar<\/code><\/b> as setas mostram exatamente quando uma a\u00e7\u00e3o instancia ou atualiza uma estrutura de dados, demonstrando como os dados fluem de tarefa para tarefa junto com a execu\u00e7\u00e3o operacional.<\/p>\n<\/li>\n<\/ul>\n<p><img alt=\"Activity Diagram, UML Diagrams Example: Relationships between Activates and Business Entities - Visual Paradigm Community Circle\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/Activity-Diagram-Relationships-between-Activates-and-Business-Entities.png\"\/><\/p>\n<p><strong>Quando usar<\/strong>:<\/p>\n<ul>\n<li>\n<p>Documenta\u00e7\u00e3o de processos de neg\u00f3cios<\/p>\n<\/li>\n<li>\n<p>Modelagem de realiza\u00e7\u00f5es de casos de uso<\/p>\n<\/li>\n<li>\n<p>Especifica\u00e7\u00e3o de algoritmos complexos<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>8. Diagramas de M\u00e1quina de Estados (Statecharts)<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Modelar o ciclo de vida e o comportamento dependente de estado de objetos.<\/p>\n<p><strong>Elementos principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Estados (ret\u00e2ngulos arredondados com atividades de entrada\/sa\u00edda\/fazer)<\/p>\n<\/li>\n<li>\n<p>Transi\u00e7\u00f5es (disparador[guarda]\/efeito)<\/p>\n<\/li>\n<li>\n<p>Pseudostados: inicial, escolha, divis\u00e3o, jun\u00e7\u00e3o, hist\u00f3rico, terminar<\/p>\n<\/li>\n<li>\n<p>Estados compostos e regi\u00f5es ortogonais<\/p>\n<\/li>\n<\/ul>\n<p><strong>Exemplo de uso<\/strong>: configura\u00e7\u00e3o de telefonia<\/p>\n<h2 data-path-to-node=\"1\">Estados e condi\u00e7\u00f5es do sistema<\/h2>\n<p data-path-to-node=\"2\">O diagrama captura o comportamento de um sistema\u2014especificamente uma configura\u00e7\u00e3o de telefonia\u2014mapeando suas diversas situa\u00e7\u00f5es ou condi\u00e7\u00f5es discretas.<\/p>\n<ul data-path-to-node=\"3\">\n<li>\n<p data-path-to-node=\"3,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,0,0\">Estados:<\/b> Os ret\u00e2ngulos arredondados representam estados (por exemplo, <b data-index-in-node=\"55\" data-path-to-node=\"3,0,0\">Inativo<\/b>, <b data-index-in-node=\"61\" data-path-to-node=\"3,0,0\">Tom de Discagem<\/b>, <b data-index-in-node=\"71\" data-path-to-node=\"3,0,0\">Discando<\/b>, <b data-index-in-node=\"80\" data-path-to-node=\"3,0,0\">Conectando<\/b>, e <b data-index-in-node=\"96\" data-path-to-node=\"3,0,0\">Conectado<\/b>). Um estado representa um per\u00edodo no ciclo de vida de um objeto durante o qual ele satisfaz alguma condi\u00e7\u00e3o, executa uma atividade ou aguarda um evento.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,1,0\">Estado Pseudo Inicial:<\/b> O c\u00edrculo s\u00f3lido preto na extremidade esquerda representa o ponto de partida da m\u00e1quina de estados. \u00c9 um estado pseudo e n\u00e3o um estado verdadeiro, servindo meramente como um ponteiro para o estado ativo padr\u00e3o quando o objeto \u00e9 instanciado (<b data-index-in-node=\"249\" data-path-to-node=\"3,1,0\">Inativo<\/b>).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,2,0\">Estado Final:<\/b> O s\u00edmbolo de alvo na extremidade direita representa a termina\u00e7\u00e3o da execu\u00e7\u00e3o da m\u00e1quina de estados, indicando que o objeto completou seu ciclo de vida.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"4\">Transi\u00e7\u00f5es e Roteamento Impulsionado por Eventos<\/h2>\n<p data-path-to-node=\"5\">As linhas direcionadas que conectam os estados s\u00e3o <b data-index-in-node=\"45\" data-path-to-node=\"5\">Transi\u00e7\u00f5es<\/b>, que representam o movimento de um estado para outro como resposta a um gatilho espec\u00edfico.<\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,0,0\">Transi\u00e7\u00f5es Padr\u00e3o:<\/b> Acionadas por eventos espec\u00edficos, como uma a\u00e7\u00e3o do usu\u00e1rio ou resposta do sistema, indicados ao longo das linhas. Por exemplo, mover-se de <b data-index-in-node=\"142\" data-path-to-node=\"6,0,0\">Inativo<\/b> para <b data-index-in-node=\"150\" data-path-to-node=\"6,0,0\">Tom de Discagem<\/b> ocorre quando o evento <b data-index-in-node=\"175\" data-path-to-node=\"6,0,0\"><code data-index-in-node=\"175\" data-path-to-node=\"6,0,0\">onHook<\/code><\/b> \u00e9 acionado, e mover-se de <b data-index-in-node=\"218\" data-path-to-node=\"6,0,0\">Tom de Discagem<\/b> para <b data-index-in-node=\"230\" data-path-to-node=\"6,0,0\">Discando<\/b> acontece quando um <b data-index-in-node=\"253\" data-path-to-node=\"6,0,0\"><code data-index-in-node=\"253\" data-path-to-node=\"6,0,0\">d\u00edgito(n)<\/code><\/b> evento \u00e9 recebido.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,1,0\">Transi\u00e7\u00f5es pr\u00f3prias:<\/b> Uma seta de transi\u00e7\u00e3o que sai de um estado e retorna diretamente para o mesmo estado (como visto no <b data-index-in-node=\"119\" data-path-to-node=\"6,1,0\">Discando<\/b> estado com o <b data-index-in-node=\"142\" data-path-to-node=\"6,1,0\"><code data-index-in-node=\"142\" data-path-to-node=\"6,1,0\">d\u00edgito(n)<\/code><\/b> gatilho). Isso indica que o evento \u00e9 processado e atualiza o contexto de estado interno (por exemplo, gravar um d\u00edgito rec\u00e9m-discado) sem fazer com que o objeto saia ou mude seu estado operacional geral.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"7\">Caminhos Alternativos e Tratamento de Erros<\/h2>\n<p data-path-to-node=\"8\">M\u00e1quinas de estado se destacam ao mostrar a l\u00f3gica de comportamento e o ramifica\u00e7\u00e3o de erros com base em condi\u00e7\u00f5es vari\u00e1veis durante a execu\u00e7\u00e3o.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,0,0\">Caminho de Execu\u00e7\u00e3o Bem-Sucedido:<\/b> A pipeline horizontal central mapeia o caminho \u00f3timo: <b data-index-in-node=\"86\" data-path-to-node=\"9,0,0\">Ocioso<\/b> <span class=\"math-inline\" data-index-in-node=\"91\" data-math=\"rightarrow\">$rightarrow$<\/span> <b data-index-in-node=\"103\" data-path-to-node=\"9,0,0\">Tom de Discagem<\/b> <span class=\"math-inline\" data-index-in-node=\"112\" data-math=\"rightarrow\">$rightarrow$<\/span> <b data-index-in-node=\"124\" data-path-to-node=\"9,0,0\">Discando<\/b> <span class=\"math-inline\" data-index-in-node=\"132\" data-math=\"rightarrow\">$rightarrow$<\/span> <b data-index-in-node=\"144\" data-path-to-node=\"9,0,0\">Conectando<\/b> <span class=\"math-inline\" data-index-in-node=\"155\" data-math=\"rightarrow\">$rightarrow$<\/span> <b data-index-in-node=\"167\" data-path-to-node=\"9,0,0\">Toque<\/b> <span class=\"math-inline\" data-index-in-node=\"175\" data-math=\"rightarrow\">$rightarrow$<\/span> <b data-index-in-node=\"187\" data-path-to-node=\"9,0,0\">Conectado<\/b> <span class=\"math-inline\" data-index-in-node=\"197\" data-math=\"rightarrow\">$rightarrow$<\/span> <b data-index-in-node=\"209\" data-path-to-node=\"9,0,0\">Desconectado<\/b>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,1,0\">Estados de Tratamento de Exce\u00e7\u00f5es e Erros:<\/b> O sistema leva em conta falhas ou atrasos ramificando-se para estados dedicados de tratamento. Se um n\u00famero estiver ocupado durante a conex\u00e3o, o sistema dispara o <b data-index-in-node=\"188\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"188\" data-path-to-node=\"9,1,0\">n\u00fameroOcupado<\/code><\/b> transi\u00e7\u00e3o para entrar no <b data-index-in-node=\"223\" data-path-to-node=\"9,1,0\">Sinal de Ocupado<\/b> estado. Se um usu\u00e1rio pausar por muito tempo durante a discagem, um <b data-index-in-node=\"282\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"282\" data-path-to-node=\"9,1,0\">tempo limite<\/code><\/b> evento transfere o sistema para um <b data-index-in-node=\"321\" data-path-to-node=\"9,1,0\">Aviso<\/b> ou <b data-index-in-node=\"332\" data-path-to-node=\"9,1,0\">Tempo Limite<\/b> estado. Se uma sequ\u00eancia incorreta for detectada, um <b data-index-in-node=\"388\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"388\" data-path-to-node=\"9,1,0\">n\u00famero inv\u00e1lido<\/code><\/b> gatilho redireciona o sistema para um <b data-index-in-node=\"433\" data-path-to-node=\"9,1,0\">Mensagem Gravada<\/b> estado, garantindo que o sistema manipule com seguran\u00e7a todos os casos extremos do mundo real.<\/p>\n<\/li>\n<\/ul>\n<p><img alt=\"State Diagram - A Quick Tutorial - Visual Paradigm Blog\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/State-Machine-Diagram-Phone.png\"\/><\/p>\n<p>\u00a0<\/p>\n<p><strong>Quando usar<\/strong>:<\/p>\n<ul>\n<li>\n<p>Modelagem de sistemas embarcados ou implementa\u00e7\u00f5es de protocolos<\/p>\n<\/li>\n<li>\n<p>Especifica\u00e7\u00e3o da gest\u00e3o de estados da interface do usu\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Documenta\u00e7\u00e3o das regras do ciclo de vida do objeto<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>9. Diagramas de Intera\u00e7\u00e3o<\/h3>\n<p>Quatro tipos de diagramas enfatizam aspectos diferentes da colabora\u00e7\u00e3o entre objetos:<\/p>\n<h4>a) Diagramas de Sequ\u00eancia<em>(Mais Comum)<\/em><\/h4>\n<p><strong>Prop\u00f3sito<\/strong>: Mostrar trocas de mensagens ordenadas no tempo entre linhas de vida.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Linhas de vida (linhas tracejadas verticais)<\/p>\n<\/li>\n<li>\n<p>Mensagens (setas s\u00f3lidas\/tracejadas com r\u00f3tulos)<\/p>\n<\/li>\n<li>\n<p>Ocorr\u00eancias de execu\u00e7\u00e3o (barras de ativa\u00e7\u00e3o)<\/p>\n<\/li>\n<li>\n<p>Fragmentos combinados: <code data-backticks=\"1\">alt<\/code>,\u00a0<code data-backticks=\"1\">opt<\/code>,\u00a0<code data-backticks=\"1\">loop<\/code>,\u00a0<code data-backticks=\"1\">par<\/code>,\u00a0<code data-backticks=\"1\">break<\/code><\/p>\n<\/li>\n<\/ul>\n<p><strong>Uso Exemplo<\/strong>:<\/p>\n<h2 data-path-to-node=\"1\">Linhas de Vida e Contextos de Execu\u00e7\u00e3o<\/h2>\n<p data-path-to-node=\"2\">O diagrama \u00e9 lido da esquerda para a direita para estabelecer os participantes, e de cima para baixo para indicar a passagem do tempo.<\/p>\n<ul data-path-to-node=\"3\">\n<li>\n<p data-path-to-node=\"3,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,0,0\">Linhas de Vida:<\/b> As caixas no topo conectadas a linhas verticais tracejadas representam linhas de vida. Elas modelam participantes individuais na intera\u00e7\u00e3o, seguindo o padr\u00e3o <code data-index-in-node=\"156\" data-path-to-node=\"3,0,0\">nomeInst\u00e2ncia : NomeClasse<\/code> conven\u00e7\u00e3o (por exemplo, <b data-index-in-node=\"199\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"199\" data-path-to-node=\"3,0,0\">janela : UI<\/code><\/b>, <b data-index-in-node=\"212\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"212\" data-path-to-node=\"3,0,0\">aCadeia : CadeiaHot\u00e9is<\/code><\/b>, e <b data-index-in-node=\"237\" data-path-to-node=\"3,0,0\"><code data-index-in-node=\"237\" data-path-to-node=\"3,0,0\">aHotel : Hotel<\/code><\/b>). A linha tracejada rastreia a exist\u00eancia desse participante ao longo da sequ\u00eancia.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,1,0\">Barras de Ativa\u00e7\u00e3o:<\/b> Os ret\u00e2ngulos verticais finos e coloridos apoiados sobre as linhas de vida indicam uma <b data-index-in-node=\"99\" data-path-to-node=\"3,1,0\">Ativa\u00e7\u00e3o<\/b> (ou ocorr\u00eancia de execu\u00e7\u00e3o). Essas barras mostram exatamente quando um objeto est\u00e1 ativamente executando uma opera\u00e7\u00e3o ou aguardando a conclus\u00e3o de uma chamada aninhada.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"3,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"3,2,0\">Parado:<\/b> O grande s\u00edmbolo \u201cX\u201d na parte inferior do <code data-index-in-node=\"51\" data-path-to-node=\"3,2,0\">janela : UI<\/code> a linha de vida indica destrui\u00e7\u00e3o ou t\u00e9rmino, mostrando que o ciclo de vida deste participante espec\u00edfico terminou e seus recursos foram liberados.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"4\">Tipos de Mensagem e Comunica\u00e7\u00e3o<\/h2>\n<p data-path-to-node=\"5\">A comunica\u00e7\u00e3o entre participantes \u00e9 modelada por meio de setas horizontais que representam mensagens, ordenadas sequencialmente usando um sistema de numera\u00e7\u00e3o hier\u00e1rquico (por exemplo, 1, 1.1, 1.1.1).<\/p>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,0,0\">Mensagens S\u00edncronas:<\/b> Linhas cont\u00ednuas com pontas de seta s\u00f3lidas (como <b data-index-in-node=\"62\" data-path-to-node=\"6,0,0\"><code data-index-in-node=\"62\" data-path-to-node=\"6,0,0\">1: fazerReserva<\/code><\/b> e <b data-index-in-node=\"85\" data-path-to-node=\"6,0,0\"><code data-index-in-node=\"85\" data-path-to-node=\"6,0,0\">1.1: fazerReserva<\/code><\/b>) indicam chamadas s\u00edncronas. O remetente bloqueia a execu\u00e7\u00e3o e aguarda que o objeto receptor conclua seu processamento.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,1,0\">Mensagens Auto-Referenciais:<\/b> Um loop de mensagem que come\u00e7a e termina na mesma barra de ativa\u00e7\u00e3o (como <b data-index-in-node=\"87\" data-path-to-node=\"6,1,0\"><code data-index-in-node=\"87\" data-path-to-node=\"6,1,0\">1.1.1: dispon\u00edvel(idQuarto, data): \u00e9Quarto<\/code><\/b> executado por <code data-index-in-node=\"138\" data-path-to-node=\"6,1,0\">aHotel<\/code>) representa uma <b data-index-in-node=\"159\" data-path-to-node=\"6,1,0\">Mensagem Auto-Referencial<\/b>. Isso indica uma execu\u00e7\u00e3o de m\u00e9todo interna em que um objeto chama uma de suas pr\u00f3prias opera\u00e7\u00f5es.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,2,0\"><b data-index-in-node=\"0\" data-path-to-node=\"6,2,0\">Mensagens de Cria\u00e7\u00e3o:<\/b> Uma linha tracejada com uma ponta de seta aberta apontando diretamente para uma caixa de objeto (como a mensagem <b data-index-in-node=\"106\" data-path-to-node=\"6,2,0\"><code data-index-in-node=\"106\" data-path-to-node=\"6,2,0\">1.1.2:<\/code><\/b> apontando para <b data-index-in-node=\"125\" data-path-to-node=\"6,2,0\"><code data-index-in-node=\"125\" data-path-to-node=\"6,2,0\">aReserva : Reserva<\/code><\/b>) representa a cria\u00e7\u00e3o de um objeto. Isso mostra que a <code data-index-in-node=\"201\" data-path-to-node=\"6,2,0\">aHotel<\/code> inst\u00e2ncia inst\u00e2ncia dinamicamente o <code data-index-in-node=\"246\" data-path-to-node=\"6,2,0\">aReserva<\/code> objeto exatamente nesse momento na sequ\u00eancia de tempo de execu\u00e7\u00e3o.<\/p>\n<\/li>\n<\/ul>\n<h2 data-path-to-node=\"7\">Fragmentos Combinados e Fluxo de Controle<\/h2>\n<p data-path-to-node=\"8\">Grandes caixas retangulares que envolvem se\u00e7\u00f5es da sequ\u00eancia s\u00e3o <b data-index-in-node=\"65\" data-path-to-node=\"8\">Fragmentos Combinados<\/b>, que usam operadores de intera\u00e7\u00e3o para gerenciar l\u00f3gica complexa, ramifica\u00e7\u00e3o e itera\u00e7\u00e3o.<\/p>\n<ul data-path-to-node=\"9\">\n<li>\n<p data-path-to-node=\"9,0,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,0,0\">Fragmento de Loop:<\/b> A caixa externa rotulada como <b data-index-in-node=\"37\" data-path-to-node=\"9,0,0\"><code data-index-in-node=\"37\" data-path-to-node=\"9,0,0\">loop<\/code><\/b> com a condi\u00e7\u00e3o de guarda <b data-index-in-node=\"67\" data-path-to-node=\"9,0,0\"><code data-index-in-node=\"67\" data-path-to-node=\"9,0,0\">[cada dia]<\/code><\/b> representa itera\u00e7\u00e3o. Todas as intera\u00e7\u00f5es contidas nesta caixa ser\u00e3o repetidas continuamente para cada dia especificado no pedido de reserva.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"9,1,0\"><b data-index-in-node=\"0\" data-path-to-node=\"9,1,0\">Fragmento Combinado Alternativo (Alt):<\/b> Embutido dentro do loop est\u00e1 um <b data-index-in-node=\"68\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"68\" data-path-to-node=\"9,1,0\">alt<\/code><\/b> fragmento (anotado como \u201cSe\u201d na seta do diagrama), que trata a ramifica\u00e7\u00e3o condicional. Ele avalia a condi\u00e7\u00e3o de guarda <b data-index-in-node=\"195\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"195\" data-path-to-node=\"9,1,0\">[isRoom = true]<\/code><\/b>. Se a condi\u00e7\u00e3o for atendida, a sequ\u00eancia executa o caminho espec\u00edfico dentro desse bloco \u2014 criando a inst\u00e2ncia <code data-index-in-node=\"308\" data-path-to-node=\"9,1,0\">aReservation<\/code> e, em seguida, disparando a mensagem <b data-index-in-node=\"366\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"366\" data-path-to-node=\"9,1,0\">2:<\/code><\/b> para instanciar <b data-index-in-node=\"384\" data-path-to-node=\"9,1,0\"><code data-index-in-node=\"384\" data-path-to-node=\"9,1,0\">aNotice : Confirma\u00e7\u00e3o<\/code><\/b>. Se a condi\u00e7\u00e3o fosse falsa, um caminho alternativo (ou nenhuma a\u00e7\u00e3o) seria tomado.<\/p>\n<p id=\"dbSjLVX\"><img alt=\"\" class=\"alignnone size-full wp-image-18812\" decoding=\"async\" height=\"528\" loading=\"lazy\" sizes=\"auto, (max-width: 1010px) 100vw, 1010px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfc7e45ebb.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfc7e45ebb.png 1010w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfc7e45ebb-300x157.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0bfc7e45ebb-768x401.png 768w\" width=\"1010\"\/><\/p>\n<\/li>\n<\/ul>\n<h4>b) Diagramas de Comunica\u00e7\u00e3o<\/h4>\n<p><strong>Prop\u00f3sito<\/strong>: Enfatizam as rela\u00e7\u00f5es entre objetos em vez do tempo de mensagens.<\/p>\n<p><img alt=\"What is Communication Diagram?\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/03-communication-diagram-example-hotel-reservation.png\"\/><\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Objetos como n\u00f3s<\/p>\n<\/li>\n<li>\n<p>Liga\u00e7\u00f5es com mensagens numeradas e direcionadas<\/p>\n<\/li>\n<li>\n<p>Foco em \u201cquem fala com quem\u201d<\/p>\n<\/li>\n<\/ul>\n<h4>c) Diagramas de Vis\u00e3o Geral de Intera\u00e7\u00e3o<\/h4>\n<p><strong>Prop\u00f3sito<\/strong>: Fluxo de controle de alto n\u00edvel usando nota\u00e7\u00e3o de diagrama de atividade.<\/p>\n<p><img alt=\"Interaction Overview Diagram Example\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/02-interaction-overview-diagram-example.png\"\/><\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Ocorr\u00eancias de intera\u00e7\u00e3o como n\u00f3s de atividade<\/p>\n<\/li>\n<li>\n<p>Decis\u00e3o\/jun\u00e7\u00e3o para ramifica\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Divis\u00e3o\/jun\u00e7\u00e3o para paralelismo<\/p>\n<\/li>\n<\/ul>\n<h4>d) Diagramas de Temporiza\u00e7\u00e3o<\/h4>\n<p><strong>Prop\u00f3sito<\/strong>: Modelar restri\u00e7\u00f5es de tempo precisas (sistemas em tempo real).<\/p>\n<p><img alt=\"What is Timing Diagram?\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/02-timing-diagram-example.png\"\/><\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Linhas de tempo de estado para cada linha de vida<\/p>\n<\/li>\n<li>\n<p>Escalas de tempo e restri\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>Setas de mensagem com marcadores de dura\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p><strong>Quando usar intera\u00e7\u00f5es<\/strong>:<\/p>\n<ul>\n<li>\n<p>Especificando realiza\u00e7\u00f5es de casos de uso<\/p>\n<\/li>\n<li>\n<p>Depura\u00e7\u00e3o de fluxos de mensagens complexos<\/p>\n<\/li>\n<li>\n<p>Documenta\u00e7\u00e3o de padr\u00f5es de uso da API<\/p>\n<\/li>\n<li>\n<p>Modelagem do tempo de protocolos em tempo real<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h3>10. Diagramas de Casos de Uso<\/h3>\n<p><strong>Prop\u00f3sito<\/strong>: Capturar requisitos funcionais da perspectiva de um ator externo.<\/p>\n<p><strong>Elementos Principais<\/strong>:<\/p>\n<ul>\n<li>\n<p>Casos de uso (ovals ou ret\u00e2ngulos de classificador)<\/p>\n<\/li>\n<li>\n<p>Atores (figuras de palito ou classificadores)<\/p>\n<\/li>\n<li>\n<p>Associa\u00e7\u00f5es (ator \u2194 caso de uso)<\/p>\n<\/li>\n<li>\n<p>Relacionamentos:\u00a0<code data-backticks=\"1\">\u00abincluir\u00bb<\/code>,\u00a0<code data-backticks=\"1\">\u00abestender\u00bb<\/code>, generaliza\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Caixa de limite do sistema<\/p>\n<\/li>\n<\/ul>\n<p><strong>Exemplo de Uso<\/strong>: Sistema de Caixa Eletr\u00f4nico<\/p>\n<p><img alt=\"A Comprehensive Guide to Use Case Modeling - Visual Paradigm Guides\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/Use-Case-Diagram-Website-_-Structuring-use-cases-with-extend-and-include-use-case-1.png\"\/><\/p>\n<p><strong>Quando usar<\/strong>:<\/p>\n<ul>\n<li>\n<p>Elicita\u00e7\u00e3o de requisitos com partes interessadas<\/p>\n<\/li>\n<li>\n<p>Defini\u00e7\u00e3o do escopo e limites do sistema<\/p>\n<\/li>\n<li>\n<p>Planejamento de cen\u00e1rios de teste<\/p>\n<\/li>\n<\/ul>\n<hr\/>\n<h2>\ud83c\udfaf Escolhendo o Diagrama Correto: Guia de Decis\u00e3o<\/h2>\n<table>\n<thead>\n<tr>\n<th>Objetivo<\/th>\n<th>Diagrama(s) Recomendado(s)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Design da estrutura de classe<\/td>\n<td>Classe, Objeto, Pacote<\/td>\n<\/tr>\n<tr>\n<td>Modelar intera\u00e7\u00f5es em tempo de execu\u00e7\u00e3o<\/td>\n<td>Sequ\u00eancia, Comunica\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td>Documentar fluxos de trabalho do neg\u00f3cio<\/td>\n<td>Atividade, Caso de Uso<\/td>\n<\/tr>\n<tr>\n<td>Especificar o ciclo de vida do objeto<\/td>\n<td>M\u00e1quina de Estados<\/td>\n<\/tr>\n<tr>\n<td>Planejar implanta\u00e7\u00e3o do sistema<\/td>\n<td>Implanta\u00e7\u00e3o, Componente<\/td>\n<\/tr>\n<tr>\n<td>Modelar padr\u00f5es internos complexos<\/td>\n<td>Estrutura Composta<\/td>\n<\/tr>\n<tr>\n<td>Capturar restri\u00e7\u00f5es em tempo real<\/td>\n<td>Diagrama de Tempo<\/td>\n<\/tr>\n<tr>\n<td>Definir requisitos<\/td>\n<td>Caso de Uso, Atividade<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr\/>\n<h2>\ud83d\udd11 Princ\u00edpios Chave de Modelagem<\/h2>\n<ol>\n<li>\n<p><strong>Comece simples<\/strong>: Comece com o tipo de diagrama que melhor corresponde ao seu objetivo imediato.<\/p>\n<\/li>\n<li>\n<p><strong>Itere<\/strong>: Aperfei\u00e7oe os modelos \u00e0 medida que o entendimento aprofunda-se\u2014nenhum diagrama \u00e9 \u201cdefinitivo\u201d na primeira vers\u00e3o.<\/p>\n<\/li>\n<li>\n<p><strong>O p\u00fablico importa<\/strong>: Ajuste o n\u00edvel de detalhe de acordo com o leitor (desenvolvedores versus interessados).<\/p>\n<\/li>\n<li>\n<p><strong>Combine perspectivas<\/strong>: Use m\u00faltiplos diagramas para contar uma hist\u00f3ria completa (por exemplo, Caso de Uso \u2192 Sequ\u00eancia \u2192 Classe).<\/p>\n<\/li>\n<li>\n<p><strong>Estenda com cuidado<\/strong>: Use estere\u00f3tipos, valores com marcadores e perfis para necessidades espec\u00edficas do dom\u00ednio\u2014mas documente as conven\u00e7\u00f5es.<\/p>\n<\/li>\n<li>\n<p><strong>Mantenha-o leg\u00edvel<\/strong>: Omita detalhes irrelevantes; use notas para contexto complementar.<\/p>\n<\/li>\n<\/ol>\n<blockquote>\n<p>\ud83d\udccc\u00a0<strong>Lembre-se<\/strong>:\u00a0<em>\u201cUML \u00e9 uma linguagem, n\u00e3o um m\u00e9todo.\u201d<\/em> Oferece nota\u00e7\u00e3o\u2014n\u00e3o processo. Escolha diagramas que esclare\u00e7am a comunica\u00e7\u00e3o, n\u00e3o aqueles que apenas preencham caixas.<\/p>\n<\/blockquote>\n<h3><strong><span>Conclus\u00e3o<\/span><\/strong><\/h3>\n<div><span>Dominar o UML \u00e9 menos sobre memorizar cada regra sint\u00e1tica e mais sobre aprender a contar uma hist\u00f3ria clara e com prop\u00f3sito sobre o seu sistema. Como demonstra este guia, cada tipo de diagrama UML oferece uma perspectiva distinta: diagramas de classe e pacote revelam a arquitetura est\u00e1tica, diagramas de sequ\u00eancia e m\u00e1quina de estados exp\u00f5em o comportamento din\u00e2mico, enquanto diagramas de implanta\u00e7\u00e3o e estrutura composta conectam o design \u00e0 execu\u00e7\u00e3o. O verdadeiro poder do UML reside em sua adaptabilidade\u2014escala desde esbo\u00e7os em quadros brancos at\u00e9 modelos execut\u00e1veis gerados por ferramentas, e adapta-se \u00e0s necessidades de desenvolvedores, arquitetos e interessados empresariais. Lembre-se de que um modelo eficaz \u00e9 iterativo, orientado ao p\u00fablico e intencionalmente seletivo. Comece com o diagrama mais simples que transmita sua inten\u00e7\u00e3o, aperfei\u00e7oe-o \u00e0 medida que o entendimento aprofunda-se e combine m\u00faltiplas perspectivas quando um \u00fanico diagrama n\u00e3o for suficiente. O UML \u00e9 uma linguagem de comunica\u00e7\u00e3o, n\u00e3o uma lista de verifica\u00e7\u00e3o para conformidade; use-o para esclarecer ambiguidades, n\u00e3o para cri\u00e1-las. Ao aplicar esses princ\u00edpios com cuidado, voc\u00ea transformar\u00e1 conceitos abstratos em plantas a\u00e7\u00f5es que alinham equipes, aceleram o desenvolvimento e mant\u00eam seus sistemas resilientes \u00e0 medida que evoluem.<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o A Linguagem de Modelagem Unificada (UML) tornou-se o padr\u00e3o de fato para visualizar, especificar e documentar sistemas de software<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-12155","post","type-post","status-publish","format-standard","hentry","category-unified-modeling-language"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Guia Completo sobre Diagramas UML - Cibermediano<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guia Completo sobre Diagramas UML - Cibermediano\" \/>\n<meta property=\"og:description\" content=\"Introdu\u00e7\u00e3o A Linguagem de Modelagem Unificada (UML) tornou-se o padr\u00e3o de fato para visualizar, especificar e documentar sistemas de software\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Cibermediano\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-19T06:24:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"Guia Completo sobre Diagramas UML\",\"datePublished\":\"2026-05-19T06:24:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\"},\"wordCount\":6001,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png\",\"articleSection\":[\"Unified Modeling Language\"],\"inLanguage\":\"pt-PT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\",\"name\":\"Guia Completo sobre Diagramas UML - Cibermediano\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png\",\"datePublished\":\"2026-05-19T06:24:52+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Guia Completo sobre Diagramas UML\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/\",\"name\":\"Cibermediano\",\"description\":\"Aprendendo uma coisa nova todos os dias\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.cybermedian.com\/pt\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Guia Completo sobre Diagramas UML - Cibermediano","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/","og_locale":"pt_PT","og_type":"article","og_title":"Guia Completo sobre Diagramas UML - Cibermediano","og_description":"Introdu\u00e7\u00e3o A Linguagem de Modelagem Unificada (UML) tornou-se o padr\u00e3o de fato para visualizar, especificar e documentar sistemas de software","og_url":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/","og_site_name":"Cibermediano","article_published_time":"2026-05-19T06:24:52+00:00","og_image":[{"url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png","type":"","width":"","height":""}],"author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"curtis","Tempo estimado de leitura":"23 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"Guia Completo sobre Diagramas UML","datePublished":"2026-05-19T06:24:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/"},"wordCount":6001,"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png","articleSection":["Unified Modeling Language"],"inLanguage":"pt-PT"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/","url":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/","name":"Guia Completo sobre Diagramas UML - Cibermediano","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png","datePublished":"2026-05-19T06:24:52+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#primaryimage","url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png","contentUrl":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-uml-class-diagram-example.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pt\/comprehensive-guide-to-uml-diagrams-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Guia Completo sobre Diagramas UML"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/pt\/#website","url":"https:\/\/www.cybermedian.com\/pt\/","name":"Cibermediano","description":"Aprendendo uma coisa nova todos os dias","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d","name":"curtis","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.cybermedian.com\/pt\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/12155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/comments?post=12155"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/12155\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media?parent=12155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/categories?post=12155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/tags?post=12155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}