{"id":12316,"date":"2026-09-28T16:14:55","date_gmt":"2026-09-28T08:14:55","guid":{"rendered":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/"},"modified":"2026-10-07T18:49:42","modified_gmt":"2026-10-07T10:49:42","slug":"minimum-effective-uml-a-practical-guide-to-modeling-software-systems","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/","title":{"rendered":"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software"},"content":{"rendered":"<p>O UML \u00e9 mais \u00fatil quando melhora a comunica\u00e7\u00e3o e a tomada de decis\u00e3o \u2014 n\u00e3o quando se torna um exerc\u00edcio de documenta\u00e7\u00e3o. Uma equipe raramente precisa de todos os tipos de diagramas UML. Na maioria dos projetos, sete tipos de diagramas fornecem uma base s\u00f3lida:<\/p>\n<p><img alt=\"Infogr\u00e1fico ilustrando sete tipos essenciais de diagramas UML: Caso de Uso, Atividade, Sequ\u00eancia, Classe, Componente, Implanta\u00e7\u00e3o e M\u00e1quina de Estados.\" class=\"alignnone size-full wp-image-21215\" decoding=\"async\" height=\"941\" loading=\"lazy\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png 1672w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d-300x169.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d-1024x576.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d-768x432.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d-1536x864.png 1536w\" width=\"1672\"\/><\/p>\n<ol>\n<li>\n<p>Diagramas de casos de uso<\/p>\n<\/li>\n<li>\n<p>Diagramas de atividade<\/p>\n<\/li>\n<li>\n<p>Diagramas de sequ\u00eancia<\/p>\n<\/li>\n<li>\n<p>Diagramas de classe<\/p>\n<\/li>\n<li>\n<p>Diagramas de componente<\/p>\n<\/li>\n<li>\n<p>Diagramas de implanta\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Diagramas de m\u00e1quina de estados<\/p>\n<\/li>\n<\/ol>\n<p>Juntos, esses diagramas descrevem o sistema a partir de perspectivas complementares:<\/p>\n<p><img alt=\"Sete tipos de diagramas UML ilustrando perspectivas de sistemas de software: objetivos, comportamento, intera\u00e7\u00e3o, estrutura, arquitetura, opera\u00e7\u00f5es e ciclo de vida.\" class=\"alignnone size-full wp-image-21217\" decoding=\"async\" height=\"941\" loading=\"lazy\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba168046439.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba168046439.png 1672w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba168046439-300x169.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba168046439-1024x576.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba168046439-768x432.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba168046439-1536x864.png 1536w\" width=\"1672\"\/><\/p>\n<ul>\n<li>\n<p><strong>Objetivos:<\/strong> O que os usu\u00e1rios e sistemas externos precisam<\/p>\n<\/li>\n<li>\n<p><strong>Comportamento:<\/strong> Como o trabalho flui pelo sistema<\/p>\n<\/li>\n<li>\n<p><strong>Intera\u00e7\u00e3o:<\/strong> Como objetos e servi\u00e7os colaboram<\/p>\n<\/li>\n<li>\n<p><strong>Estrutura:<\/strong> Quais entidades e relacionamentos existem<\/p>\n<\/li>\n<li>\n<p><strong>Arquitetura:<\/strong> Como as partes principais do software s\u00e3o organizadas<\/p>\n<\/li>\n<li>\n<p><strong>Opera\u00e7\u00f5es:<\/strong> Onde o sistema \u00e9 executado<\/p>\n<\/li>\n<li>\n<p><strong>Ciclo de vida:<\/strong> Como os objetos importantes mudam ao longo do tempo<\/p>\n<\/li>\n<\/ul>\n<p>O objetivo n\u00e3o \u00e9 criar um diagrama para cada preocupa\u00e7\u00e3o poss\u00edvel. O objetivo \u00e9 criar o conjunto menor e coerente de modelos que responda \u00e0s perguntas que as partes interessadas realmente t\u00eam.<\/p>\n<h2>1. O que significa \u201cUML Eficaz M\u00ednimo\u201d<\/h2>\n<p>O UML Eficaz M\u00ednimo \u00e9 uma estrat\u00e9gia de modelagem baseada em quatro princ\u00edpios:<\/p>\n<ul>\n<li>\n<p><strong>Modele para uma decis\u00e3o:<\/strong> Crie um diagrama porque ele esclarece um requisito, uma escolha de design, um risco ou um detalhe de implementa\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p><strong>Use a nota\u00e7\u00e3o mais simples adequada:<\/strong>Evite s\u00edmbolos, decora\u00e7\u00f5es e detalhes desnecess\u00e1rios.<\/p>\n<\/li>\n<li>\n<p><strong>Mantenha a rastreabilidade:<\/strong>Conecte os requisitos ao comportamento, estrutura, c\u00f3digo, testes e implanta\u00e7\u00e3o, quando vi\u00e1vel.<\/p>\n<\/li>\n<li>\n<p><strong>Mantenha os diagramas compreens\u00edveis:<\/strong>Um diagrama que cont\u00e9m tudo frequentemente n\u00e3o comunica nada.<\/p>\n<\/li>\n<\/ul>\n<p>Um modelo \u00fatil deve ajudar a responder perguntas como:<\/p>\n<ul>\n<li>\n<p>Quem interage com o sistema?<\/p>\n<\/li>\n<li>\n<p>Quais capacidades o sistema deve fornecer?<\/p>\n<\/li>\n<li>\n<p>Quais etapas comp\u00f5em um processo de neg\u00f3cios?<\/p>\n<\/li>\n<li>\n<p>Qual objeto ou servi\u00e7o \u00e9 respons\u00e1vel por cada a\u00e7\u00e3o?<\/p>\n<\/li>\n<li>\n<p>Quais dados e conceitos de dom\u00ednio devem ser representados?<\/p>\n<\/li>\n<li>\n<p>Como os subsistemas s\u00e3o divididos?<\/p>\n<\/li>\n<li>\n<p>Onde as aplica\u00e7\u00f5es, bancos de dados e servi\u00e7os externos s\u00e3o implantados?<\/p>\n<\/li>\n<li>\n<p>Como uma entidade importante transita por seu ciclo de vida?<\/p>\n<\/li>\n<\/ul>\n<p>Se um diagrama n\u00e3o ajuda a responder a uma dessas perguntas, pode n\u00e3o ser necess\u00e1rio.<\/p>\n<h2>2. O N\u00facleo dos Sete Diagramas<\/h2>\n<table>\n<thead>\n<tr>\n<th>Diagrama<\/th>\n<th>Pergunta principal<\/th>\n<th>P\u00fablico-alvo principal<\/th>\n<th>Fase t\u00edpica do projeto<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Caso de uso<\/td>\n<td>Quem precisa do que do sistema?<\/td>\n<td>Clientes, analistas, donos de produto<\/td>\n<td>Requisitos<\/td>\n<\/tr>\n<tr>\n<td>Atividade<\/td>\n<td>Como o trabalho flui?<\/td>\n<td>Analistas, designers, desenvolvedores, testadores<\/td>\n<td>Requisitos e design de processo<\/td>\n<\/tr>\n<tr>\n<td>Sequ\u00eancia<\/td>\n<td>Como os participantes colaboram ao longo do tempo?<\/td>\n<td>Desenvolvedores, arquitetos, testadores<\/td>\n<td>Projeto detalhado<\/td>\n<\/tr>\n<tr>\n<td>Classe<\/td>\n<td>Quais conceitos, dados e rela\u00e7\u00f5es existem?<\/td>\n<td>Desenvolvedores, analistas, arquitetos<\/td>\n<td>Projeto de dom\u00ednio e de software<\/td>\n<\/tr>\n<tr>\n<td>Componente<\/td>\n<td>Como o sistema \u00e9 dividido em partes principais?<\/td>\n<td>Arquitetos, desenvolvedores, equipes de opera\u00e7\u00f5es<\/td>\n<td>Arquitetura<\/td>\n<\/tr>\n<tr>\n<td>Implanta\u00e7\u00e3o<\/td>\n<td>Onde o software \u00e9 executado?<\/td>\n<td>Arquitetos, DevOps, opera\u00e7\u00f5es, equipes de seguran\u00e7a<\/td>\n<td>Implanta\u00e7\u00e3o e opera\u00e7\u00f5es<\/td>\n<\/tr>\n<tr>\n<td>M\u00e1quina de estados<\/td>\n<td>Como uma entidade muda ao longo do tempo?<\/td>\n<td>Desenvolvedores, analistas, testadores<\/td>\n<td>Projeto de ciclo de vida<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Estes diagramas n\u00e3o s\u00e3o independentes. Eles formam uma cadeia:<\/p>\n<div id=\"app\">\n<div>\n<p>\u00a0<\/p>\n<section class=\"XFWmL2CnhbtDyKjgpizi M2Pw6rZOpBOxO5BhWKuG kVrhW4syiUcS0srQ3G37\">\n<div class=\"j0h4rSdUkBvyClzF8GSd vkw8uHSvi3wI9I4pKEn3\">\n<div class=\"nmLQcPOIo3MNL8oiV0cN\">\n<div class=\"G_r4UUA5KSOoClNtYWMw WR1zPj_pSOPMHbaPxAFr\">\n<div class=\"ulhFWA5BGGH5z8M1KsWn\" data-activeresponse=\"true\" data-has-limit-warning=\"\" id=\"2c6e548a-d794-4846-8a7f-6e87b6573f1f-assistant-message-3-1\">\n<div class=\"tfRkvU29nf962AABc1VN\">\n<div class=\"sJ_ySfZNjKwb6Ycl2rsF\">\n<div class=\"vB7kvkSLQa1WqtmqeylQ\">\n<div class=\"gtJvbOYVIXBFnY2IfpBD\">\n<div class=\"\">\n<div class=\"space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0 U09wq0cxqsXjr06LOSSz MmViXVVh27cQF7CjyozL\">\n<p><span class=\"katex\"><span class=\"katex-mathml\">Casos de Uso \u27f6 Atividades \u27f6 Sequ\u00eancias \u27f6 Classes e Componentes \u27f6 Implanta\u00e7\u00e3o<\/span><span aria-hidden=\"true\" class=\"katex-html\"><span class=\"base\"><span class=\"mord text\"><span class=\"mord\"><span data-sd-animate=\"true\">Use<\/span>\u00a0<span data-sd-animate=\"true\">Cases<\/span><\/span><\/span><span class=\"mrel\"><span data-sd-animate=\"true\">\u27f6<\/span><\/span><\/span><span class=\"base\"><span class=\"mord text\"><span class=\"mord\"><span data-sd-animate=\"true\">Atividades<\/span><\/span><\/span><span class=\"mrel\"><span data-sd-animate=\"true\">\u27f6<\/span><\/span><\/span><span class=\"base\"><span class=\"mord text\"><span class=\"mord\"><span data-sd-animate=\"true\">Sequ\u00eancias<\/span><\/span><\/span><span class=\"mrel\"><span data-sd-animate=\"true\">\u27f6<\/span><\/span><\/span><span class=\"base\"><span class=\"mord text\"><span class=\"mord\"><span data-sd-animate=\"true\">Classes<\/span>\u00a0<span data-sd-animate=\"true\">e<\/span>\u00a0<span data-sd-animate=\"true\">Componentes<\/span><\/span><\/span><span class=\"mrel\"><span data-sd-animate=\"true\">\u27f6<\/span><\/span><\/span><span class=\"base\"><span class=\"mord text\"><span class=\"mord\"><span data-sd-animate=\"true\">Implanta\u00e7\u00e3o<\/span><\/span><\/span><\/span><\/span><\/span><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/section>\n<p>\u00a0<\/p>\n<\/div>\n<\/div>\n<p>Diagramas de m\u00e1quina de estados atravessam essa cadeia ao descrever o ciclo de vida de objetos que possuem estados significativos.<\/p>\n<p>Por exemplo, um pedido online pode ser representado da seguinte forma:<\/p>\n<ul>\n<li>\n<p><strong>Caso de uso:<\/strong> Realizar um pedido<\/p>\n<\/li>\n<li>\n<p><strong>Atividade:<\/strong> Validar carrinho, autorizar pagamento, reservar estoque, confirmar pedido<\/p>\n<\/li>\n<li>\n<p><strong>Sequ\u00eancia:<\/strong> Interface do cliente chama servi\u00e7o de pedidos, servi\u00e7o de pagamento e servi\u00e7o de invent\u00e1rio<\/p>\n<\/li>\n<li>\n<p><strong>Classe:<\/strong> <code data-backticks=\"1\">Pedido<\/code>, <code data-backticks=\"1\">Linha de Pedido<\/code>, <code data-backticks=\"1\">Pagamento<\/code>, e <code data-backticks=\"1\">Produto<\/code><\/p>\n<\/li>\n<li>\n<p><strong>Componente:<\/strong> Aplica\u00e7\u00e3o web, servi\u00e7o de pedidos, adaptador de pagamento, servi\u00e7o de invent\u00e1rio<\/p>\n<\/li>\n<li>\n<p><strong>Implanta\u00e7\u00e3o:<\/strong> Navegador, cluster de aplica\u00e7\u00e3o, banco de dados, provedor de pagamento<\/p>\n<\/li>\n<li>\n<p><strong>M\u00e1quina de estados:<\/strong> Rascunho \u2192 Pagamento Pendente \u2192 Pago \u2192 Enviado \u2192 Entregue<\/p>\n<\/li>\n<\/ul>\n<h2>3. Diagramas de Caso de Uso: Definindo Objetivos do Sistema<\/h2>\n<p>Um diagrama de caso de uso apresenta o sistema de fora. Ele identifica os atores que interagem com o sistema e os objetivos que perseguem.<\/p>\n<h3>3.1 O que um diagrama de caso de uso cont\u00e9m<\/h3>\n<p>Os elementos principais s\u00e3o:<\/p>\n<p><img alt=\"Diagrama ilustrando seis elementos essenciais de caso de uso UML: limite do sistema, ator, caso de uso, associa\u00e7\u00e3o, inclus\u00e3o e extens\u00e3o.\" class=\"alignnone size-full wp-image-21219\" decoding=\"async\" height=\"941\" loading=\"lazy\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba17707eb25.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba17707eb25.png 1672w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba17707eb25-300x169.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba17707eb25-1024x576.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba17707eb25-768x432.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba17707eb25-1536x864.png 1536w\" width=\"1672\"\/><\/p>\n<ul>\n<li>\n<p><strong>Fronteira do sistema:<\/strong> Define o que est\u00e1 dentro do sistema que est\u00e1 sendo modelado<\/p>\n<\/li>\n<li>\n<p><strong>Atores:<\/strong> Pessoas, organiza\u00e7\u00f5es, dispositivos ou sistemas externos<\/p>\n<\/li>\n<li>\n<p><strong>Casos de uso:<\/strong> Metas ou servi\u00e7os que o sistema oferece<\/p>\n<\/li>\n<li>\n<p><strong>Associa\u00e7\u00f5es:<\/strong> Conex\u00f5es entre atores e casos de uso<\/p>\n<\/li>\n<li>\n<p><strong>Relacionamentos de inclus\u00e3o:<\/strong> Comportamento reutiliz\u00e1vel necess\u00e1rio por outro caso de uso<\/p>\n<\/li>\n<li>\n<p><strong>Relacionamentos de extens\u00e3o:<\/strong> Comportamento opcional ou condicional<\/p>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<p id=\"qTXLSvp\"><img alt=\"Interface do VPasCode exibindo um diagrama de caso de uso UML para uma Loja Online, mostrando atores e intera\u00e7\u00f5es do sistema.\" class=\"alignnone size-full wp-image-21221\" decoding=\"async\" height=\"878\" loading=\"lazy\" sizes=\"auto, (max-width: 1922px) 100vw, 1922px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba187c4326c.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba187c4326c.png 1922w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba187c4326c-300x137.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba187c4326c-1024x468.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba187c4326c-768x351.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba187c4326c-1536x702.png 1536w\" width=\"1922\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP51QyCm38Nl1ly7uNiBMtSQ9NGBxDh0A3iRHsqCZWsolD6D_VSfRToHNcpq_AHFFEyoM-8o1gq27Xau0VdJmD1xGiS-HQsqieuJGLiofn6frgQpvn4ZGqVfq_T81co6MQpQpVnX2OTKCiBxEJEE5_DDd2WJqCPJG33x67mKftIYWH-j0CJah7IRLqfVSWkWBuxpPSwXVLXukc0TmfxgKeVsSV7-KdX8vB-nhZkxDWlNMmb77y9YpfDMlzEoDGnOhPeh_auHe1omNa_51fvXk_NHXT9ZqsXrbzBS8_Z_cAwIy7OOU_cXFm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP51QyCm38Nl1ly7uNiBMtSQ9NGBxDh0A3iRHsqCZWsolD6D_VSfRToHNcpq_AHFFEyoM-8o1gq27Xau0VdJmD1xGiS-HQsqieuJGLiofn6frgQpvn4ZGqVfq_T81co6MQpQpVnX2OTKCiBxEJEE5_DDd2WJqCPJG33x67mKftIYWH-j0CJah7IRLqfVSWkWBuxpPSwXVLXukc0TmfxgKeVsSV7-KdX8vB-nhZkxDWlNMmb77y9YpfDMlzEoDGnOhPeh_auHe1omNa_51fvXk_NHXT9ZqsXrbzBS8_Z_cAwIy7OOU_cXFm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP71IWCn48RlWRp3iFSMj9waB2qBdaGBKZmFcs6DP1ET90LNV1azYC-nB-QaheNj9UIV-MR-oMGJ4tBAlTFAMARnU_mAO10elcPYkRmW8o2Kf4sebLROfi3GE4i-qR-iTXmEPEHc27ROOI_PK056KMz55C0QubF5Wus9UYm5M-vn67_w8_-8J4yXHofcJ6dyz5rs0QhRy8nmxvtrLC6xLW02jHW9gZiyK8SCOc9o2l7OQDzSpA0R74WGCjQ42RYS0LifPJkKFhCNx9lLd4lapNchAwq-oiJJOc2ngFycc0V4KGvOBejOmJMirzQtBXkgQwtETZNLYFjfALD8t3OoX7pSBm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ndire\u00e7\u00e3o da esquerda para a direita\r\n\r\nactor Cliente\r\nactor \"Provedor de Pagamento\" as PaymentProvider\r\nactor \"Sistema de Armaz\u00e9m\" as Warehouse\r\n\r\nret\u00e2ngulo \"Loja Online\" {\r\n  usecase \"Navegar Produtos\" as UC1\r\n  usecase \"Fazer Pedido\" as UC2\r\n  usecase \"Autorizar Pagamento\" as UC3\r\n  usecase \"Atender Pedido\" as UC4\r\n}\r\n\r\nCliente --&gt; UC1\r\nCliente --&gt; UC2\r\nUC2 ..&gt; UC3 : &lt;&lt;include&gt;&gt;\r\nPaymentProvider --&gt; UC3\r\nWarehouse --&gt; UC4\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP71IWCn48RlWRp3iFSMj9waB2qBdaGBKZmFcs6DP1ET90LNV1azYC-nB-QaheNj9UIV-MR-oMGJ4tBAlTFAMARnU_mAO10elcPYkRmW8o2Kf4sebLROfi3GE4i-qR-iTXmEPEHc27ROOI_PK056KMz55C0QubF5Wus9UYm5M-vn67_w8_-8J4yXHofcJ6dyz5rs0QhRy8nmxvtrLC6xLW02jHW9gZiyK8SCOc9o2l7OQDzSpA0R74WGCjQ42RYS0LifPJkKFhCNx9lLd4lapNchAwq-oiJJOc2ngFycc0V4KGvOBejOmJMirzQtBXkgQwtETZNLYFjfALD8t3OoX7pSBm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP51QyCm38Nl1ly7uNiBMtSQ9NGBxDh0A3iRHsqCZWsolD6D_VSfRToHNcpq_AHFFEyoM-8o1gq27Xau0VdJmD1xGiS-HQsqieuJGLiofn6frgQpvn4ZGqVfq_T81co6MQpQpVnX2OTKCiBxEJEE5_DDd2WJqCPJG33x67mKftIYWH-j0CJah7IRLqfVSWkWBuxpPSwXVLXukc0TmfxgKeVsSV7-KdX8vB-nhZkxDWlNMmb77y9YpfDMlzEoDGnOhPeh_auHe1omNa_51fvXk_NHXT9ZqsXrbzBS8_Z_cAwIy7OOU_cXFm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP51QyCm38Nl1ly7uNiBMtSQ9NGBxDh0A3iRHsqCZWsolD6D_VSfRToHNcpq_AHFFEyoM-8o1gq27Xau0VdJmD1xGiS-HQsqieuJGLiofn6frgQpvn4ZGqVfq_T81co6MQpQpVnX2OTKCiBxEJEE5_DDd2WJqCPJG33x67mKftIYWH-j0CJah7IRLqfVSWkWBuxpPSwXVLXukc0TmfxgKeVsSV7-KdX8vB-nhZkxDWlNMmb77y9YpfDMlzEoDGnOhPeh_auHe1omNa_51fvXk_NHXT9ZqsXrbzBS8_Z_cAwIy7OOU_cXFm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>3.2 Identifique os atores corretamente<\/h3>\n<p>Um ator n\u00e3o \u00e9 necessariamente um papel humano. \u00c9 qualquer coisa externa que interage com o sistema.<\/p>\n<p>Poss\u00edveis atores incluem:<\/p>\n<ul>\n<li>\n<p>Cliente<\/p>\n<\/li>\n<li>\n<p>Agente de suporte<\/p>\n<\/li>\n<li>\n<p>Administrador<\/p>\n<\/li>\n<li>\n<p>Gateway de pagamento<\/p>\n<\/li>\n<li>\n<p>Provedor de identidade<\/p>\n<\/li>\n<li>\n<p>Sistema de gerenciamento de armaz\u00e9m<\/p>\n<\/li>\n<li>\n<p>Tarefa agendada<\/p>\n<\/li>\n<li>\n<p>Aplicativo m\u00f3vel<\/p>\n<\/li>\n<li>\n<p>Dispositivo IoT<\/p>\n<\/li>\n<\/ul>\n<p>Evite nomear atores com base em detalhes internos de implementa\u00e7\u00e3o. \u201cControlador REST\u201d geralmente n\u00e3o \u00e9 um ator. \u201cAplica\u00e7\u00e3o parceira\u201d pode ser um.<\/p>\n<h3>3.3 Nomeie casos de uso como objetivos<\/h3>\n<p>Bons nomes de casos de uso descrevem resultados:<\/p>\n<ul>\n<li>\n<p>Submeter relat\u00f3rio de despesas<\/p>\n<\/li>\n<li>\n<p>Aprovar solicita\u00e7\u00e3o de compra<\/p>\n<\/li>\n<li>\n<p>Cadastrar novo paciente<\/p>\n<\/li>\n<li>\n<p>Gerar fatura<\/p>\n<\/li>\n<li>\n<p>Redefinir senha<\/p>\n<\/li>\n<\/ul>\n<p>Nomes fracos descrevem mecanismos de implementa\u00e7\u00e3o:<\/p>\n<ul>\n<li>\n<p>Chamar API<\/p>\n<\/li>\n<li>\n<p>Executar consulta SQL<\/p>\n<\/li>\n<li>\n<p>Abrir formul\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Invocar controlador<\/p>\n<\/li>\n<\/ul>\n<p>Um caso de uso deve responder:<\/p>\n<blockquote>\n<p>Qual resultado significativo um ator deseja alcan\u00e7ar com o sistema?<\/p>\n<\/blockquote>\n<h3>3.4 Quando usar include e extend<\/h3>\n<p>Use<code data-backticks=\"1\">&lt;&lt;include&gt;&gt;<\/code>quando um comportamento \u00e9 sempre necess\u00e1rio como parte de outro.<\/p>\n<p>Por exemplo:<\/p>\n<ul>\n<li>\n<p>\u201cFazer Pedido\u201d inclui \u201cCalcular Total\u201d<\/p>\n<\/li>\n<li>\n<p>\u201cCadastrar Conta\u201d inclui \u201cValidar E-mail\u201d<\/p>\n<\/li>\n<\/ul>\n<p>Use<code data-backticks=\"1\">&lt;&lt;extend&gt;&gt;<\/code>quando o comportamento \u00e9 opcional ou condicional.<\/p>\n<p>Por exemplo:<\/p>\n<ul>\n<li>\n<p>\u201cFazer Pedido\u201d pode ser estendido por \u201cAplicar Desconto Promocional\u201d<\/p>\n<\/li>\n<li>\n<p>\u201cFazer Login\u201d pode ser estendido por \u201cConcluir Autentica\u00e7\u00e3o Multifator\u201d<\/p>\n<\/li>\n<\/ul>\n<p>N\u00e3o use essas rela\u00e7\u00f5es apenas para fazer um diagrama parecer mais sofisticado. Frequentemente, um cen\u00e1rio escrito curto ou um diagrama de atividades \u00e9 mais claro.<\/p>\n<h3>3.5 O que os diagramas de casos de uso n\u00e3o mostram<\/h3>\n<p>Diagramas de casos de uso n\u00e3o t\u00eam como objetivo descrever:<\/p>\n<ul>\n<li>\n<p>Layouts detalhados de interfaces de usu\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Classes de implementa\u00e7\u00e3o exatas<\/p>\n<\/li>\n<li>\n<p>Tabelas de banco de dados<\/p>\n<\/li>\n<li>\n<p>Ordem das mensagens<\/p>\n<\/li>\n<li>\n<p>L\u00f3gica algor\u00edtmica<\/p>\n<\/li>\n<li>\n<p>Topologia da infraestrutura<\/p>\n<\/li>\n<\/ul>\n<p>Eles definem o escopo e os objetivos. Outros diagramas fornecem os detalhes.<\/p>\n<h2>4. Diagramas de atividade: Modelagem de fluxos de trabalho e processos<\/h2>\n<p>Os diagramas de atividade mostram como o trabalho avan\u00e7a. Eles s\u00e3o particularmente eficazes para processos de neg\u00f3cios, fluxos de trabalho, l\u00f3gica de ramifica\u00e7\u00e3o, trabalho paralelo e tratamento de exce\u00e7\u00f5es.<\/p>\n<h3>4.1 Elementos principais<\/h3>\n<p>Diagramas de atividade comumente utilizam:<\/p>\n<ul>\n<li>\n<p>N\u00f3s iniciais<\/p>\n<\/li>\n<li>\n<p>A\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>N\u00f3s de decis\u00e3o<\/p>\n<\/li>\n<li>\n<p>N\u00f3s de fus\u00e3o<\/p>\n<\/li>\n<li>\n<p>Ramifica\u00e7\u00f5es e jun\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>Pistas de nata\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>N\u00f3s finais<\/p>\n<\/li>\n<li>\n<p>Guardas como <code data-backticks=\"1\">[aprovado]<\/code> ou <code data-backticks=\"1\">[rejeitado]<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<p id=\"SaLwEJc\"><img alt=\"Ferramenta VPasCode exibindo c\u00f3digo PlantUML para um processo de pedido ao lado de seu diagrama de atividade gerado com faixas de navega\u00e7\u00e3o e n\u00f3s de decis\u00e3o.\" class=\"alignnone size-full wp-image-21222\" decoding=\"async\" height=\"873\" loading=\"lazy\" sizes=\"auto, (max-width: 1916px) 100vw, 1916px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18bb0a5e3.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18bb0a5e3.png 1916w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18bb0a5e3-300x137.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18bb0a5e3-1024x467.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18bb0a5e3-768x350.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18bb0a5e3-1536x700.png 1536w\" width=\"1916\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP0nRiCm34Lt0Re3H-SApj0KcJgrI83kQamtH6Koe2W3BdpuIdPI6Er4wVC_a9-7P44j3z6x-PYJoO0wUxUethNd_36GWMY7klUkc5xh4ywe8rsmEDlt4AaBXXiJzT2ilh4sdtPWLsHe9amxxm3QOuYN72jaOY4k440l-bKhmFmMfW7PDdEgt3vdkuhIDy9jDUmV78JFG7odNtWiFT7fBt_2L0G4UXWM7hcxpww_Vmdhli8zwV0R4Q1SwkOTneJGiAofJcXPUSqSZ8G1LKNJ5k2EUkyEfPQR_m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP0nRiCm34Lt0Re3H-SApj0KcJgrI83kQamtH6Koe2W3BdpuIdPI6Er4wVC_a9-7P44j3z6x-PYJoO0wUxUethNd_36GWMY7klUkc5xh4ywe8rsmEDlt4AaBXXiJzT2ilh4sdtPWLsHe9amxxm3QOuYN72jaOY4k440l-bKhmFmMfW7PDdEgt3vdkuhIDy9jDUmV78JFG7odNtWiFT7fBt_2L0G4UXWM7hcxpww_Vmdhli8zwV0R4Q1SwkOTneJGiAofJcXPUSqSZ8G1LKNJ5k2EUkyEfPQR_m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RP51RW8n34NtaN87BuSh38jIeIwwgq3gFceyhKN6HaacYuhBe2uuI2vMPw0595QM_9-__PDLoYxcQGpM7DQ1a3CUh9cRrlGlNCX5sACdBqjh5DfYB5HF0XxXRUuhtx-xGFwUf06wCm2b7bMMfmNaBsJe4eqBQm3wjGiVKz2vBDc5UGnWaBXh5U1-cVjqezxNzZMnVvwoHFfkM_-avMKSj47ymEILYtBr6EdVPeD90NMXgzPyaFtbb0O-pjqY20yKnsjsRQOiUsim98IEwu-SmsvGxsK5CKP9pQVChrPFYjoCiQV1cfLM_PPV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n|Cliente|\r\nstart\r\n:Enviar pedido;\r\n\r\n|Servi\u00e7o de Pedido|\r\n:Validar pedido;\r\n\r\nif (Pedido v\u00e1lido?) then (sim)\r\n  :Calcular total;\r\n\r\n  fork\r\n    |Servi\u00e7o de Pagamento|\r\n    :Autorizar pagamento;\n  fork again\r\n    |Servi\u00e7o de Invent\u00e1rio|\r\n    :Reservar invent\u00e1rio;\n  end fork\r\n\r\n  |Servi\u00e7o de Pedido|\r\n  :Confirmar pedido;\n  stop\r\nelse (n\u00e3o)\r\n  :Retornar erros de valida\u00e7\u00e3o;\n  stop\r\nendif\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RP51RW8n34NtaN87BuSh38jIeIwwgq3gFceyhKN6HaacYuhBe2uuI2vMPw0595QM_9-__PDLoYxcQGpM7DQ1a3CUh9cRrlGlNCX5sACdBqjh5DfYB5HF0XxXRUuhtx-xGFwUf06wCm2b7bMMfmNaBsJe4eqBQm3wjGiVKz2vBDc5UGnWaBXh5U1-cVjqezxNzZMnVvwoHFfkM_-avMKSj47ymEILYtBr6EdVPeD90NMXgzPyaFtbb0O-pjqY20yKnsjsRQOiUsim98IEwu-SmsvGxsK5CKP9pQVChrPFYjoCiQV1cfLM_PPV\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP0nRiCm34Lt0Re3H-SApj0KcJgrI83kQamtH6Koe2W3BdpuIdPI6Er4wVC_a9-7P44j3z6x-PYJoO0wUxUethNd_36GWMY7klUkc5xh4ywe8rsmEDlt4AaBXXiJzT2ilh4sdtPWLsHe9amxxm3QOuYN72jaOY4k440l-bKhmFmMfW7PDdEgt3vdkuhIDy9jDUmV78JFG7odNtWiFT7fBt_2L0G4UXWM7hcxpww_Vmdhli8zwV0R4Q1SwkOTneJGiAofJcXPUSqSZ8G1LKNJ5k2EUkyEfPQR_m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP0nRiCm34Lt0Re3H-SApj0KcJgrI83kQamtH6Koe2W3BdpuIdPI6Er4wVC_a9-7P44j3z6x-PYJoO0wUxUethNd_36GWMY7klUkc5xh4ywe8rsmEDlt4AaBXXiJzT2ilh4sdtPWLsHe9amxxm3QOuYN72jaOY4k440l-bKhmFmMfW7PDdEgt3vdkuhIDy9jDUmV78JFG7odNtWiFT7fBt_2L0G4UXWM7hcxpww_Vmdhli8zwV0R4Q1SwkOTneJGiAofJcXPUSqSZ8G1LKNJ5k2EUkyEfPQR_m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Edite o PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>4.2 Use faixas de nata\u00e7\u00e3o para mostrar responsabilidade<\/h3>\n<p>As faixas de nata\u00e7\u00e3o esclarecem qual fun\u00e7\u00e3o, sistema ou componente executa cada a\u00e7\u00e3o.<\/p>\n<p>Faixas \u00fateis podem representar:<\/p>\n<ul>\n<li>\n<p>Cliente<\/p>\n<\/li>\n<li>\n<p>Agente de atendimento ao cliente<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de pedidos<\/p>\n<\/li>\n<li>\n<p>Provedor de pagamento<\/p>\n<\/li>\n<li>\n<p>Armaz\u00e9m<\/p>\n<\/li>\n<li>\n<p>Agendador automatizado<\/p>\n<\/li>\n<\/ul>\n<p>As faixas de nata\u00e7\u00e3o s\u00e3o especialmente valiosas quando um processo cruza limites organizacionais ou de sistema.<\/p>\n<h3>4.3 Modele decis\u00f5es explicitamente<\/h3>\n<p>Uma decis\u00e3o deve ter guardas significativas:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">[Pagamento aprovado]\r\n[Pagamento recusado]\r\n<\/code><\/pre>\n<p>Evite r\u00f3tulos vagos como:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">[sim]\r\n[n\u00e3o]\r\n<\/code><\/pre>\n<p>a menos que a pergunta da decis\u00e3o seja imediatamente \u00f3bvia.<\/p>\n<h3>4.4 Mostre paralelismo quando for relevante<\/h3>\n<p>Ramos e jun\u00e7\u00f5es s\u00e3o \u00fateis quando as atividades ocorrem simultaneamente. Por exemplo, ap\u00f3s a valida\u00e7\u00e3o de um pedido:<\/p>\n<ul>\n<li>\n<p>O pagamento pode ser autorizado<\/p>\n<\/li>\n<li>\n<p>O estoque pode ser reservado<\/p>\n<\/li>\n<li>\n<p>Uma verifica\u00e7\u00e3o de fraude pode ser executada<\/p>\n<\/li>\n<\/ul>\n<p>No entanto, modele o paralelismo apenas quando ele afeta o cronograma, a consist\u00eancia, o tratamento de falhas ou o design do sistema. N\u00e3o use ramos paralelos apenas para tornar o diagrama mais elaborado.<\/p>\n<h3>4.5 Diagramas de atividade e requisitos<\/h3>\n<p>Um diagrama de atividade pode revelar requisitos ausentes. Por exemplo, ao modelar um processo de aprova\u00e7\u00e3o, a equipe pode descobrir perguntas sem resposta:<\/p>\n<ul>\n<li>\n<p>O que acontece se um aprovador n\u00e3o estiver dispon\u00edvel?<\/p>\n<\/li>\n<li>\n<p>Um pedido pode ser rejeitado e reenviado?<\/p>\n<\/li>\n<li>\n<p>Qual \u00e9 o tempo de escalonamento?<\/p>\n<\/li>\n<li>\n<p>Duas pessoas podem aprovar simultaneamente?<\/p>\n<\/li>\n<li>\n<p>O que acontece se o sistema a jusante n\u00e3o estiver dispon\u00edvel?<\/p>\n<\/li>\n<\/ul>\n<p>Isso torna os diagramas de atividade \u00fateis antes do in\u00edcio da implementa\u00e7\u00e3o.<\/p>\n<h2>5. Diagramas de Sequ\u00eancia: Explicando a Colabora\u00e7\u00e3o ao Longo do Tempo<\/h2>\n<p>Os diagramas de sequ\u00eancia mostram como os participantes trocam mensagens em uma intera\u00e7\u00e3o ordenada no tempo. Eles s\u00e3o ideais para descrever cen\u00e1rios importantes em detalhes.<\/p>\n<h3>5.1 Elementos principais<\/h3>\n<p>Um diagrama de sequ\u00eancia geralmente inclui:<\/p>\n<ul>\n<li>\n<p>Atores<\/p>\n<\/li>\n<li>\n<p>Objetos ou servi\u00e7os<\/p>\n<\/li>\n<li>\n<p>Linhas de vida<\/p>\n<\/li>\n<li>\n<p>Mensagens<\/p>\n<\/li>\n<li>\n<p>Mensagens de retorno<\/p>\n<\/li>\n<li>\n<p>Barras de ativa\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Condi\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>Loops<\/p>\n<\/li>\n<li>\n<p>Caminhos alternativos<\/p>\n<\/li>\n<li>\n<p>Mensagens ass\u00edncronas<\/p>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<p id=\"hFrCHaK\"><img alt=\"Interface do VPasCode exibindo um diagrama de sequ\u00eancia UML para um sistema de pedidos, mostrando intera\u00e7\u00f5es entre cliente, aplicativo web e banco de dados.\" class=\"alignnone size-full wp-image-21223\" decoding=\"async\" height=\"868\" loading=\"lazy\" sizes=\"auto, (max-width: 1919px) 100vw, 1919px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18fadb888.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18fadb888.png 1919w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18fadb888-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18fadb888-1024x463.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18fadb888-768x347.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba18fadb888-1536x695.png 1536w\" width=\"1919\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLBBQiD03BmR_0yY9-UG7_2X9AbJ2FGHIA7qL6HRfGksTz5g0-dNLrx7nYbzN8mzCngD1g-z84jecpJ1IYp3RV1YM-8qAMteQkGpB5weX8rp2q0F-fucbUs4RGEB9ww9uKXyCXL5FY8pnG7FBNLofRbWQLAZO8cUHgDY6_bYcoPfCYQ1rKs_5N8uXh8r0dPOqMDA3PCvL4me5B-oIczQzXu3gQfYgnAF9yhYj9AAh6RZ4TxNLqDZzXmmo8TbyqaPjbhBO8wDJ19qZks9T1ucR6u_vwz31QSjq55GWiyEctsnd6ccqxNFTyCjYh5TpyVZbPrAog4mtZLu_YQbHkiT4zLKDQRxFUMS_pFbwyFkyVdjRhE_t_sSrrtSYTdoFu4l6kfqxrgV-ZT-0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLBBQiD03BmR_0yY9-UG7_2X9AbJ2FGHIA7qL6HRfGksTz5g0-dNLrx7nYbzN8mzCngD1g-z84jecpJ1IYp3RV1YM-8qAMteQkGpB5weX8rp2q0F-fucbUs4RGEB9ww9uKXyCXL5FY8pnG7FBNLofRbWQLAZO8cUHgDY6_bYcoPfCYQ1rKs_5N8uXh8r0dPOqMDA3PCvL4me5B-oIczQzXu3gQfYgnAF9yhYj9AAh6RZ4TxNLqDZzXmmo8TbyqaPjbhBO8wDJ19qZks9T1ucR6u_vwz31QSjq55GWiyEctsnd6ccqxNFTyCjYh5TpyVZbPrAog4mtZLu_YQbHkiT4zLKDQRxFUMS_pFbwyFkyVdjRhE_t_sSrrtSYTdoFu4l6kfqxrgV-ZT-0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XP9DJiCm48NtaNA7KLRjeXVe0ZMb1HP0AXN44atY0ImvSJHs8k0wB7gGNen9qfIaWhBnp_Zpc-VnB9n7zbLkmW0pRnakZQR2KnYajYeKyWT4SMbqXbxN5fueZG1TCuT1PWlFra2q9QxrVcT14Mn8QMLTItNhlq1ynLnIsGxjTs6Wq6EAZY1QOf6rx0f5ybHzjGo3C3ZuXTb5OmhciAtId3mnb8ViJLXEkwi2P4peAM55FCcGMHTlTjf87GXXLqlX79eQUTB92231sL17g_vzmwl7XmY1bLHKVuf8ZSPocmID7p1OigsnqO11T9HcX8mTeg_GDFfRBqitsSJNoNJ87OiYF_2YESVzRl_LAhL5aUE-V7DOl-jKyob9nWs-2fYoofttEqB-zHlVhUyVakUh-FOcUVpTEp6tJL3-jCWP_mqjjWiL1WiPfRE_0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nactor Cliente\r\nboundary \"Aplicativo Web\" as Web\r\ncontrol \"Servi\u00e7o de Pedidos\" as Pedido\r\ncontrol \"Servi\u00e7o de Pagamento\" as Pagamento\r\ndatabase \"Banco de Dados de Pedidos\" as DB\r\n\r\nCliente -&gt; Web : Submeter pedido\r\nWeb -&gt; Pedido : createOrder(carrinho)\r\n\r\nPedido -&gt; DB : salvar(pedido)\r\nDB --&gt; Pedido : idPedido\r\n\r\nPedido -&gt; Pagamento : autorizar(valor)\r\n\r\nalt Pagamento aprovado\r\n  Pagamento --&gt; Pedido : aprovado\r\n  Pedido -&gt; DB : atualizarStatus(PAGO)\r\n  Pedido --&gt; Web : confirma\u00e7\u00e3o\r\n  Web --&gt; Cliente : Exibir confirma\u00e7\u00e3o\r\nelse Pagamento recusado\r\n  Pagamento --&gt; Pedido : recusado\r\n  Pedido -&gt; DB : atualizarStatus(PAGAMENTO_FALHOU)\r\n  Pedido --&gt; Web : erro de pagamento\r\n  Web --&gt; Cliente : Exibir erro\r\nend\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XP9DJiCm48NtaNA7KLRjeXVe0ZMb1HP0AXN44atY0ImvSJHs8k0wB7gGNen9qfIaWhBnp_Zpc-VnB9n7zbLkmW0pRnakZQR2KnYajYeKyWT4SMbqXbxN5fueZG1TCuT1PWlFra2q9QxrVcT14Mn8QMLTItNhlq1ynLnIsGxjTs6Wq6EAZY1QOf6rx0f5ybHzjGo3C3ZuXTb5OmhciAtId3mnb8ViJLXEkwi2P4peAM55FCcGMHTlTjf87GXXLqlX79eQUTB92231sL17g_vzmwl7XmY1bLHKVuf8ZSPocmID7p1OigsnqO11T9HcX8mTeg_GDFfRBqitsSJNoNJ87OiYF_2YESVzRl_LAhL5aUE-V7DOl-jKyob9nWs-2fYoofttEqB-zHlVhUyVakUh-FOcUVpTEp6tJL3-jCWP_mqjjWiL1WiPfRE_0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLBBQiD03BmR_0yY9-UG7_2X9AbJ2FGHIA7qL6HRfGksTz5g0-dNLrx7nYbzN8mzCngD1g-z84jecpJ1IYp3RV1YM-8qAMteQkGpB5weX8rp2q0F-fucbUs4RGEB9ww9uKXyCXL5FY8pnG7FBNLofRbWQLAZO8cUHgDY6_bYcoPfCYQ1rKs_5N8uXh8r0dPOqMDA3PCvL4me5B-oIczQzXu3gQfYgnAF9yhYj9AAh6RZ4TxNLqDZzXmmo8TbyqaPjbhBO8wDJ19qZks9T1ucR6u_vwz31QSjq55GWiyEctsnd6ccqxNFTyCjYh5TpyVZbPrAog4mtZLu_YQbHkiT4zLKDQRxFUMS_pFbwyFkyVdjRhE_t_sSrrtSYTdoFu4l6kfqxrgV-ZT-0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLBBQiD03BmR_0yY9-UG7_2X9AbJ2FGHIA7qL6HRfGksTz5g0-dNLrx7nYbzN8mzCngD1g-z84jecpJ1IYp3RV1YM-8qAMteQkGpB5weX8rp2q0F-fucbUs4RGEB9ww9uKXyCXL5FY8pnG7FBNLofRbWQLAZO8cUHgDY6_bYcoPfCYQ1rKs_5N8uXh8r0dPOqMDA3PCvL4me5B-oIczQzXu3gQfYgnAF9yhYj9AAh6RZ4TxNLqDZzXmmo8TbyqaPjbhBO8wDJ19qZks9T1ucR6u_vwz31QSjq55GWiyEctsnd6ccqxNFTyCjYh5TpyVZbPrAog4mtZLu_YQbHkiT4zLKDQRxFUMS_pFbwyFkyVdjRhE_t_sSrrtSYTdoFu4l6kfqxrgV-ZT-0G00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>5.2 Escolha cen\u00e1rios estrategicamente<\/h3>\n<p>N\u00e3o crie um diagrama de sequ\u00eancia para cada caso de uso. Comece com cen\u00e1rios que sejam:<\/p>\n<ul>\n<li>\n<p>Cr\u00edticos para o neg\u00f3cio<\/p>\n<\/li>\n<li>\n<p>Tecnicamente arriscados<\/p>\n<\/li>\n<li>\n<p>Com alta depend\u00eancia de integra\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Sens\u00edveis \u00e0 seguran\u00e7a<\/p>\n<\/li>\n<li>\n<p>Transacionais<\/p>\n<\/li>\n<li>\n<p>Dif\u00edcil de entender<\/p>\n<\/li>\n<li>\n<p>Prov\u00e1vel de expor problemas arquiteturais<\/p>\n<\/li>\n<\/ul>\n<p>Exemplos t\u00edpicos incluem:<\/p>\n<ul>\n<li>\n<p>Autentica\u00e7\u00e3o de usu\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Processamento de pagamento<\/p>\n<\/li>\n<li>\n<p>Upload de arquivo<\/p>\n<\/li>\n<li>\n<p>Envio de pedido<\/p>\n<\/li>\n<li>\n<p>Redefini\u00e7\u00e3o de senha<\/p>\n<\/li>\n<li>\n<p>Publica\u00e7\u00e3o de evento<\/p>\n<\/li>\n<li>\n<p>Recupera\u00e7\u00e3o de falha<\/p>\n<\/li>\n<li>\n<p>Execu\u00e7\u00e3o de tarefa em segundo plano<\/p>\n<\/li>\n<\/ul>\n<h3>5.3 Distinguir intera\u00e7\u00f5es s\u00edncronas e ass\u00edncronas<\/h3>\n<p>Uma chamada s\u00edncrona significa que o remetente aguarda uma resposta. Uma mensagem ass\u00edncrona permite que o remetente continue.<\/p>\n<p>Essa distin\u00e7\u00e3o afeta:<\/p>\n<ul>\n<li>\n<p>Experi\u00eancia do usu\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Limites de transa\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Tratamento de erros<\/p>\n<\/li>\n<li>\n<p>Escalabilidade<\/p>\n<\/li>\n<li>\n<p>Comportamento de nova tentativa<\/p>\n<\/li>\n<li>\n<p>Observabilidade<\/p>\n<\/li>\n<\/ul>\n<p>Use nota\u00e7\u00e3o diferente de forma consistente e explique comportamentos ass\u00edncronos importantes em uma nota ou texto acompanhante.<\/p>\n<h3>5.4 Modelar caminhos de falha<\/h3>\n<p>Um diagrama de sequ\u00eancia que mostra apenas o caminho bem-sucedido pode esconder riscos de design importantes. Use <code data-backticks=\"1\">alt<\/code>, <code data-backticks=\"1\">opt<\/code>, e <code data-backticks=\"1\">loop<\/code> fragmentos para mostrar:<\/p>\n<ul>\n<li>\n<p>Falha de valida\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Falha de autoriza\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Tempo esgotado<\/p>\n<\/li>\n<li>\n<p>Repetir<\/p>\n<\/li>\n<li>\n<p>Falha parcial<\/p>\n<\/li>\n<li>\n<p>Solicita\u00e7\u00e3o duplicada<\/p>\n<\/li>\n<li>\n<p>Indisponibilidade do servi\u00e7o<\/p>\n<\/li>\n<li>\n<p>Compensa\u00e7\u00e3o ou revers\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>Por exemplo:<\/p>\n<p id=\"VuPWytA\"><img alt=\"Diagrama de sequ\u00eancia PlantUML do VPasCode ilustrando intera\u00e7\u00f5es entre cliente, API e servi\u00e7o, com blocos alt aninhados para caminhos de falha de timeout e retry.\" class=\"alignnone size-full wp-image-21224\" decoding=\"async\" height=\"871\" loading=\"lazy\" sizes=\"auto, (max-width: 1917px) 100vw, 1917px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1cb2403fe.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1cb2403fe.png 1917w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1cb2403fe-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1cb2403fe-1024x465.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1cb2403fe-768x349.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1cb2403fe-1536x698.png 1536w\" width=\"1917\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VP0n3eCm34NtIBc3By05EbHKdReXu09fSAL82Q6sKwctRm88MChYuVlx_P_KB8Oa1Q_LtJiS1Qeht9e7NA1Bp-042Dy9MRJIgkXvtI5zdCLiQIXQP3vwZ9VDGCXJ70VM2ZQjslWjSl9ITZCtwsk34cqBLolqZD2xW37jpcE35eM-Upv0oLz4BX1Sqi_ppne0p1qMvCiuptykUWnJ9BEw4k5yEmxv4MNKUUPl_W40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VP0n3eCm34NtIBc3By05EbHKdReXu09fSAL82Q6sKwctRm88MChYuVlx_P_KB8Oa1Q_LtJiS1Qeht9e7NA1Bp-042Dy9MRJIgkXvtI5zdCLiQIXQP3vwZ9VDGCXJ70VM2ZQjslWjSl9ITZCtwsk34cqBLolqZD2xW37jpcE35eM-Upv0oLz4BX1Sqi_ppne0p1qMvCiuptykUWnJ9BEw4k5yEmxv4MNKUUPl_W40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XP5D2i8m48NtXTxXNQ0NS26AABWJzGAX7JMGPaecxNt4HG_IYvb4wW_-RRAOxqtU5p8JhvnlQvDd2wF9Ua8nnNopnWHBssdb86nqgRqQ-k72UPPdaORGZbodXvv3SkEu995FOMNy8-b86hOLvHaUm-9Uk2LfZLSLHvvQ0Xgr9jYriIH0CaBOKzqmI8xyil7YjQM6l7wp0gBL3QOHFDMGyNhWlzrFFo0PFXSSb3cfRukh2AD3msuuEvs2PAlmqdZCmXb-w0e0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nCliente -&gt; API : Enviar solicita\u00e7\u00e3o\r\n\r\nAPI -&gt; Servi\u00e7o : Processar solicita\u00e7\u00e3o\r\n\r\nalt Servi\u00e7o responde\r\n  Servi\u00e7o --&gt; API : Resultado\r\n  API --&gt; Cliente : Sucesso\r\nelse Tempo esgotado\r\n  API -&gt; Servi\u00e7o : Repetir solicita\u00e7\u00e3o\r\n  alt Repeti\u00e7\u00e3o tem sucesso\r\n    Servi\u00e7o --&gt; API : Resultado\r\n    API --&gt; Cliente : Sucesso\r\n  else Repeti\u00e7\u00e3o falha\r\n    API --&gt; Cliente : Falha tempor\u00e1ria\r\n  end\r\nend\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XP5D2i8m48NtXTxXNQ0NS26AABWJzGAX7JMGPaecxNt4HG_IYvb4wW_-RRAOxqtU5p8JhvnlQvDd2wF9Ua8nnNopnWHBssdb86nqgRqQ-k72UPPdaORGZbodXvv3SkEu995FOMNy8-b86hOLvHaUm-9Uk2LfZLSLHvvQ0Xgr9jYriIH0CaBOKzqmI8xyil7YjQM6l7wp0gBL3QOHFDMGyNhWlzrFFo0PFXSSb3cfRukh2AD3msuuEvs2PAlmqdZCmXb-w0e0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VP0n3eCm34NtIBc3By05EbHKdReXu09fSAL82Q6sKwctRm88MChYuVlx_P_KB8Oa1Q_LtJiS1Qeht9e7NA1Bp-042Dy9MRJIgkXvtI5zdCLiQIXQP3vwZ9VDGCXJ70VM2ZQjslWjSl9ITZCtwsk34cqBLolqZD2xW37jpcE35eM-Upv0oLz4BX1Sqi_ppne0p1qMvCiuptykUWnJ9BEw4k5yEmxv4MNKUUPl_W40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VP0n3eCm34NtIBc3By05EbHKdReXu09fSAL82Q6sKwctRm88MChYuVlx_P_KB8Oa1Q_LtJiS1Qeht9e7NA1Bp-042Dy9MRJIgkXvtI5zdCLiQIXQP3vwZ9VDGCXJ70VM2ZQjslWjSl9ITZCtwsk34cqBLolqZD2xW37jpcE35eM-Upv0oLz4BX1Sqi_ppne0p1qMvCiuptykUWnJ9BEw4k5yEmxv4MNKUUPl_W40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>5.5 Evitar diagramas de sequ\u00eancia excessivamente detalhados<\/h3>\n<p>Um diagrama de sequ\u00eancia torna-se dif\u00edcil de manter quando inclui todas as chamadas de m\u00e9todo internas. Foque em responsabilidades e limites significativos:<\/p>\n<ul>\n<li>\n<p>Interface do usu\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de aplica\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Objeto de dom\u00ednio<\/p>\n<\/li>\n<li>\n<p>Reposit\u00f3rio<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o externo<\/p>\n<\/li>\n<li>\n<p>Broker de mensagens<\/p>\n<\/li>\n<li>\n<p>Banco de dados<\/p>\n<\/li>\n<\/ul>\n<p>Diagramas de implementa\u00e7\u00e3o detalhados podem ser \u00fateis durante a depura\u00e7\u00e3o, mas n\u00e3o devem se tornar a documenta\u00e7\u00e3o arquitet\u00f4nica principal.<\/p>\n<h2>6. Diagramas de Classes: Descrevendo Estrutura e Conceitos de Dom\u00ednio<\/h2>\n<p>Diagramas de classes mostram a estrutura est\u00e1tica. Eles podem descrever:<\/p>\n<ul>\n<li>\n<p>Um modelo conceitual de dom\u00ednio<\/p>\n<\/li>\n<li>\n<p>Um modelo de objetos em n\u00edvel de design<\/p>\n<\/li>\n<li>\n<p>Uma estrutura de classes orientada \u00e0 implementa\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>Estes s\u00e3o diferentes n\u00edveis de abstra\u00e7\u00e3o e n\u00e3o devem ser misturados descuidadamente.<\/p>\n<h3>6.1 Diagramas de classes conceituais versus de implementa\u00e7\u00e3o<\/h3>\n<p>Um modelo conceitual pode conter:<\/p>\n<ul>\n<li>\n<p>Cliente<\/p>\n<\/li>\n<li>\n<p>Pedido<\/p>\n<\/li>\n<li>\n<p>Produto<\/p>\n<\/li>\n<li>\n<p>Pagamento<\/p>\n<\/li>\n<\/ul>\n<p>Um modelo de implementa\u00e7\u00e3o pode conter:<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">OrderController<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">OrderApplicationService<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">OrderRepository<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">PaymentGatewayAdapter<\/code><\/p>\n<\/li>\n<\/ul>\n<p>Ambos s\u00e3o v\u00e1lidos, mas respondem a perguntas diferentes.<\/p>\n<h3>6.2 Relacionamentos principais<\/h3>\n<p>Relacionamentos comuns incluem:<\/p>\n<ul>\n<li>\n<p>Associa\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Agrega\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Composi\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Generaliza\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Depend\u00eancia<\/p>\n<\/li>\n<li>\n<p>Realiza\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>Use relacionamentos com cuidado. Em muitos casos, uma associa\u00e7\u00e3o simples \u00e9 mais clara do que uma distin\u00e7\u00e3o elaborada entre agrega\u00e7\u00e3o e composi\u00e7\u00e3o.<\/p>\n<p>Exemplo:<\/p>\n<p id=\"EZmAkdd\"><img alt=\"Interface VPasCode exibindo c\u00f3digo PlantUML para as classes Cliente, Pedido e Produto, juntamente com seu diagrama de classes renderizado.\" class=\"alignnone size-full wp-image-21225\" decoding=\"async\" height=\"871\" loading=\"lazy\" sizes=\"auto, (max-width: 1919px) 100vw, 1919px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1d8258454.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1d8258454.png 1919w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1d8258454-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1d8258454-1024x465.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1d8258454-768x349.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1d8258454-1536x697.png 1536w\" width=\"1919\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP71IWCn48RlWRp3a5ExqcAlEKX5F0YAXVe2CHbBC9jeCZaKyTtTdMPhLqzXVlxvPlx9jf39LFiWXGsc5BYhXLAF6Rwa0BZoJf-b1yTID3rgs5FsyS02ziO73VVZS-jSnbAa-9PYGZvdD-DntM33UAgbQNikMAT49YoM6fvInEF9MbzxJulbV_QZZzZudzL4ydJKu2EnKgEdNVOMBrbXw7ZvC-A2kil9LKkDMTxhBE_y0DnslfhQA5YjG5slrvrgoJLy16Dn27QgHqytcZQ_9ewWmQP8niV9oghgHkGDjqsBQSZuXha09Ics6DtmWpy0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP71IWCn48RlWRp3a5ExqcAlEKX5F0YAXVe2CHbBC9jeCZaKyTtTdMPhLqzXVlxvPlx9jf39LFiWXGsc5BYhXLAF6Rwa0BZoJf-b1yTID3rgs5FsyS02ziO73VVZS-jSnbAa-9PYGZvdD-DntM33UAgbQNikMAT49YoM6fvInEF9MbzxJulbV_QZZzZudzL4ydJKu2EnKgEdNVOMBrbXw7ZvC-A2kil9LKkDMTxhBE_y0DnslfhQA5YjG5slrvrgoJLy16Dn27QgHqytcZQ_9ewWmQP8niV9oghgHkGDjqsBQSZuXha09Ics6DtmWpy0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP71IWCn48RlWRp3a5ExqcAlEKX5F0YAXVe2CHbBC9jeCZaKyTtTdMPhLqzXVlxvPlx9jf39LFiWXGsc5BYhXLAF6Rwa0BZoJf-b1yTID3rgs5FsyS02ziO73VVZS-jSnbAa-9PYGZvdD-DntM33UAgbQNikMAT49YoM6fvInEF9MbzxJulbV_QZZzZudzL4ydJKu2EnKgEdNVOMBrbXw7ZvC-A2kil9LKkDMTxhBE_y0DnslfhQA5YjG5slrvrgoJLy16Dn27QgHqytcZQ_9ewWmQP8niV9oghgHkGDjqsBQSZuXha09Ics6DtmWpy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nclass Customer {\r\n  +id: CustomerId\r\n  +name: String\r\n  +email: EmailAddress\r\n}\r\n\r\nclass Order {\r\n  +id: OrderId\r\n  +status: OrderStatus\r\n  +total(): Money\r\n  +submit()\r\n}\r\n\r\nclass OrderLine {\r\n  +quantity: int\r\n  +unitPrice: Money\r\n  +lineTotal(): Money\r\n}\r\n\r\nclass Product {\r\n  +sku: String\r\n  +name: String\r\n}\r\n\r\nCustomer \"1\" -- \"0..*\" Order : places\r\nOrder \"1\" *-- \"1..*\" OrderLine : contains\r\nOrderLine \"*\" --&gt; \"1\" Product : refers to\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP71IWCn48RlWRp3a5ExqcAlEKX5F0YAXVe2CHbBC9jeCZaKyTtTdMPhLqzXVlxvPlx9jf39LFiWXGsc5BYhXLAF6Rwa0BZoJf-b1yTID3rgs5FsyS02ziO73VVZS-jSnbAa-9PYGZvdD-DntM33UAgbQNikMAT49YoM6fvInEF9MbzxJulbV_QZZzZudzL4ydJKu2EnKgEdNVOMBrbXw7ZvC-A2kil9LKkDMTxhBE_y0DnslfhQA5YjG5slrvrgoJLy16Dn27QgHqytcZQ_9ewWmQP8niV9oghgHkGDjqsBQSZuXha09Ics6DtmWpy0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP71IWCn48RlWRp3a5ExqcAlEKX5F0YAXVe2CHbBC9jeCZaKyTtTdMPhLqzXVlxvPlx9jf39LFiWXGsc5BYhXLAF6Rwa0BZoJf-b1yTID3rgs5FsyS02ziO73VVZS-jSnbAa-9PYGZvdD-DntM33UAgbQNikMAT49YoM6fvInEF9MbzxJulbV_QZZzZudzL4ydJKu2EnKgEdNVOMBrbXw7ZvC-A2kil9LKkDMTxhBE_y0DnslfhQA5YjG5slrvrgoJLy16Dn27QgHqytcZQ_9ewWmQP8niV9oghgHkGDjqsBQSZuXha09Ics6DtmWpy0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:PP71IWCn48RlWRp3a5ExqcAlEKX5F0YAXVe2CHbBC9jeCZaKyTtTdMPhLqzXVlxvPlx9jf39LFiWXGsc5BYhXLAF6Rwa0BZoJf-b1yTID3rgs5FsyS02ziO73VVZS-jSnbAa-9PYGZvdD-DntM33UAgbQNikMAT49YoM6fvInEF9MbzxJulbV_QZZzZudzL4ydJKu2EnKgEdNVOMBrbXw7ZvC-A2kil9LKkDMTxhBE_y0DnslfhQA5YjG5slrvrgoJLy16Dn27QgHqytcZQ_9ewWmQP8niV9oghgHkGDjqsBQSZuXha09Ics6DtmWpy0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>6.3 A multiplicidade \u00e9 importante<\/h3>\n<p>A multiplicidade expressa restri\u00e7\u00f5es:<\/p>\n<ul>\n<li>\n<p><code data-backticks=\"1\">1<\/code> \u2014 exatamente um<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">0..1<\/code> \u2014 opcional<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">*<\/code> \u2014 muitos<\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">1..*<\/code> \u2014 um ou mais<\/p>\n<\/li>\n<\/ul>\n<p>Por exemplo:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Cliente \"1\" -- \"0..*\" Pedido\r\n<\/code><\/pre>\n<p>significa que cada pedido pertence a um cliente, enquanto um cliente pode ter zero ou mais pedidos.<\/p>\n<h3>6.4 Modelar responsabilidades, n\u00e3o apenas campos de dados<\/h3>\n<p>Um diagrama de classes deve ajudar a explicar onde o comportamento pertence. Um objeto de dom\u00ednio com opera\u00e7\u00f5es significativas \u00e9 frequentemente mais informativo do que um conjunto de classes contendo apenas getters e setters.<\/p>\n<p>Por exemplo:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Order.submit()\r\nOrder.cancel()\r\nOrder.calculateTotal()\r\nPayment.authorize()\r\n<\/code><\/pre>\n<p>As opera\u00e7\u00f5es exatas dependem da abordagem de design, mas o princ\u00edpio \u00e9 consistente:<\/p>\n<blockquote>\n<p>Coloque as responsabilidades de neg\u00f3cios importantes pr\u00f3ximas aos conceitos que as possuem.<\/p>\n<\/blockquote>\n<h3>6.5 Evite transformar diagramas de classes em esquemas de banco de dados<\/h3>\n<p>Um diagrama de classes n\u00e3o \u00e9 automaticamente um esquema relacional. N\u00e3o adicione todas as colunas do banco de dados, a menos que o objetivo seja especificamente o design de persist\u00eancia.<\/p>\n<p>Uma distin\u00e7\u00e3o \u00fatil \u00e9:<\/p>\n<ul>\n<li>\n<p><strong>Modelo de dom\u00ednio:<\/strong> Conceitos e regras de neg\u00f3cios<\/p>\n<\/li>\n<li>\n<p><strong>Modelo de design:<\/strong> Classes de software e responsabilidades<\/p>\n<\/li>\n<li>\n<p><strong>Modelo de dados:<\/strong> Tabelas, chaves, \u00edndices e restri\u00e7\u00f5es<\/p>\n<\/li>\n<\/ul>\n<p>Eles podem estar relacionados, mas n\u00e3o devem ser confundidos.<\/p>\n<h2>7. Diagramas de componentes: Mostrando limites arquiteturais<\/h2>\n<p>Diagramas de componentes descrevem as principais partes substitu\u00edveis ou implant\u00e1veis de um sistema e as interfaces por meio das quais eles interagem.<\/p>\n<p>Eles s\u00e3o \u00fateis para responder:<\/p>\n<ul>\n<li>\n<p>Quais s\u00e3o os principais subsistemas?<\/p>\n<\/li>\n<li>\n<p>Qual componente \u00e9 respons\u00e1vel por uma responsabilidade?<\/p>\n<\/li>\n<li>\n<p>O que cada componente fornece?<\/p>\n<\/li>\n<li>\n<p>O que cada componente requer?<\/p>\n<\/li>\n<li>\n<p>Onde est\u00e3o os limites de integra\u00e7\u00e3o?<\/p>\n<\/li>\n<li>\n<p>Quais depend\u00eancias s\u00e3o est\u00e1veis ou arriscadas?<\/p>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<p id=\"CGGjAEH\"><img alt=\"Ferramenta VPasCode exibindo c\u00f3digo PlantUML ao lado de um diagrama de componentes gerado, mostrando as intera\u00e7\u00f5es entre Dispositivo do Usu\u00e1rio, Regi\u00e3o na Nuvem e Provedor de Pagamento.\" class=\"alignnone size-full wp-image-21226\" decoding=\"async\" height=\"874\" loading=\"lazy\" sizes=\"auto, (max-width: 1914px) 100vw, 1914px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ea8d3726.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ea8d3726.png 1914w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ea8d3726-300x137.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ea8d3726-1024x468.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ea8d3726-768x351.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ea8d3726-1536x701.png 1536w\" width=\"1914\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP713eCW44Jl9Fp3ndj_m4EZZHuyrRHDUbvbcv0e643J_dq1fQqzCJjCtYoXi0wDcyU1irwFarQa76Htwg2Sfa7swAHM6Q05x-qoPoF8m9NC8dkAYUZiCYs-nY1AWPCZ4rERjyirQl6dDgyTx-Do9j1XXvPIRRNDCLUTF6pGiu2iVleQXKDgWTReHOfKlGsSSHQUU3WSrwKXXqjzlK7PDfojJhXBaFoZfFBy1_Rq6_jkd__eFrPr2XWoLbf7AW0ICpPjcuLCaX5Ga1B-Tzu0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP713eCW44Jl9Fp3ndj_m4EZZHuyrRHDUbvbcv0e643J_dq1fQqzCJjCtYoXi0wDcyU1irwFarQa76Htwg2Sfa7swAHM6Q05x-qoPoF8m9NC8dkAYUZiCYs-nY1AWPCZ4rERjyirQl6dDgyTx-Do9j1XXvPIRRNDCLUTF6pGiu2iVleQXKDgWTReHOfKlGsSSHQUU3WSrwKXXqjzlK7PDfojJhXBaFoZfFBy1_Rq6_jkd__eFrPr2XWoLbf7AW0ICpPjcuLCaX5Ga1B-Tzu0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP5BQiCm48Rt0jrXy3uNwA8anbbuLPCKkfvOqoAmDKPIJ7ESqaMWr_35EfRj4Xkw4ZFpyJ_GFaJqyTesMjNSTkp8HSWENMDh7Ex3DyCRNJB0CBuhvao-jyETmH1KPApXaBWNRyYlrGns4GtxXE87jhBc15Tu6uT_XKlNosxuydRYfvdzJIk34IyO2B8SNPteGap2Da-HYth3LmDPvRcdRGuuVaRoRiuZX4tvjPB2iDizJuNW2Kx7yoiSgbAhQJFUvlnoBPsel6DDA_57zY-xq2ApgVT85haW5VbWGnn-N6rHgyKfkSuf5o66fPbMUt96llCN\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ncomponent \"Aplica\u00e7\u00e3o Web\" as Web\r\ncomponent \"Servi\u00e7o de Pedidos\" as Order\r\ncomponent \"Adaptador de Pagamento\" as Payment\r\ncomponent \"Servi\u00e7o de Invent\u00e1rio\" as Inventory\r\ndatabase \"Banco de Dados de Pedidos\" as DB\r\ncloud \"Provedor de Pagamento Externo\" as Provider\r\n\r\nWeb --&gt; Order : REST API\r\nOrder --&gt; Payment : Interface de Pagamento\r\nOrder --&gt; Inventory : API de Invent\u00e1rio\r\nOrder --&gt; DB : Persist\u00eancia\r\nPayment --&gt; Provider : API do Provedor\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP5BQiCm48Rt0jrXy3uNwA8anbbuLPCKkfvOqoAmDKPIJ7ESqaMWr_35EfRj4Xkw4ZFpyJ_GFaJqyTesMjNSTkp8HSWENMDh7Ex3DyCRNJB0CBuhvao-jyETmH1KPApXaBWNRyYlrGns4GtxXE87jhBc15Tu6uT_XKlNosxuydRYfvdzJIk34IyO2B8SNPteGap2Da-HYth3LmDPvRcdRGuuVaRoRiuZX4tvjPB2iDizJuNW2Kx7yoiSgbAhQJFUvlnoBPsel6DDA_57zY-xq2ApgVT85haW5VbWGnn-N6rHgyKfkSuf5o66fPbMUt96llCN\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP713eCW44Jl9Fp3ndj_m4EZZHuyrRHDUbvbcv0e643J_dq1fQqzCJjCtYoXi0wDcyU1irwFarQa76Htwg2Sfa7swAHM6Q05x-qoPoF8m9NC8dkAYUZiCYs-nY1AWPCZ4rERjyirQl6dDgyTx-Do9j1XXvPIRRNDCLUTF6pGiu2iVleQXKDgWTReHOfKlGsSSHQUU3WSrwKXXqjzlK7PDfojJhXBaFoZfFBy1_Rq6_jkd__eFrPr2XWoLbf7AW0ICpPjcuLCaX5Ga1B-Tzu0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP713eCW44Jl9Fp3ndj_m4EZZHuyrRHDUbvbcv0e643J_dq1fQqzCJjCtYoXi0wDcyU1irwFarQa76Htwg2Sfa7swAHM6Q05x-qoPoF8m9NC8dkAYUZiCYs-nY1AWPCZ4rERjyirQl6dDgyTx-Do9j1XXvPIRRNDCLUTF6pGiu2iVleQXKDgWTReHOfKlGsSSHQUU3WSrwKXXqjzlK7PDfojJhXBaFoZfFBy1_Rq6_jkd__eFrPr2XWoLbf7AW0ICpPjcuLCaX5Ga1B-Tzu0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>7.1 Diagramas de componentes n\u00e3o s\u00e3o diagramas de pacotes<\/h3>\n<p>Um diagrama de pacotes agrupa elementos do modelo, frequentemente para organiza\u00e7\u00e3o. Um diagrama de componentes descreve unidades arquiteturais que fornecem e consomem funcionalidade.<\/p>\n<p>Um componente pode ser:<\/p>\n<ul>\n<li>\n<p>Um servi\u00e7o implant\u00e1vel<\/p>\n<\/li>\n<li>\n<p>Uma aplica\u00e7\u00e3o web<\/p>\n<\/li>\n<li>\n<p>Uma aplica\u00e7\u00e3o m\u00f3vel<\/p>\n<\/li>\n<li>\n<p>Uma biblioteca<\/p>\n<\/li>\n<li>\n<p>Um intermedi\u00e1rio de mensagens<\/p>\n<\/li>\n<li>\n<p>Uma plataforma externa<\/p>\n<\/li>\n<li>\n<p>Um banco de dados<\/p>\n<\/li>\n<li>\n<p>Uma integra\u00e7\u00e3o de terceiros<\/p>\n<\/li>\n<\/ul>\n<p>O n\u00edvel apropriado depende da arquitetura.<\/p>\n<h3>7.2 Mostre interfaces onde elas esclarecem contratos<\/h3>\n<p>Interfaces tornam as depend\u00eancias mais expl\u00edcitas:<\/p>\n<p id=\"vcChcDI\"><img alt=\"Diagrama de interface VPasCode mostrando o Servi\u00e7o de Pedido dependendo da interface PaymentGateway, implementada pelo Adaptador de Pagamento.\" class=\"alignnone size-full wp-image-21227\" decoding=\"async\" height=\"873\" loading=\"lazy\" sizes=\"auto, (max-width: 1912px) 100vw, 1912px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ef0b30d5.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ef0b30d5.png 1912w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ef0b30d5-300x137.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ef0b30d5-1024x468.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ef0b30d5-768x351.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1ef0b30d5-1536x701.png 1536w\" width=\"1912\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:SoWkIImgAStDuUNAp2j9BKfBJ4vL24Yip4tDAt5FB4ajJwpavUBbIixFBSZF0uefAFaNfQGMAGId5fLb9gSgAIGMAu15KDH03L1mJ4ai01eALWLbWqo36A6dPuTX4rIHWYw6Z4DgNWhGcG00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:SoWkIImgAStDuUNAp2j9BKfBJ4vL24Yip4tDAt5FB4ajJwpavUBbIixFBSZF0uefAFaNfQGMAGId5fLb9gSgAIGMAu15KDH03L1mJ4ai01eALWLbWqo36A6dPuTX4rIHWYw6Z4DgNWhGcG00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:SoWkIImgAStDuUNAp2j9BKfBJ4vL24Yip4tDAt5FB4ajJwpavUBbIixFBSZF0uefA0Md5fLb7bwUhv02L9YQafcIhwIGMApWNvIIMeIYq34biQ0aCIM_2AmoCJqHP2P4CLWAf9oN2wnFGK_F3iDMg285NGmPXzIy5A2J0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ninterface PaymentGateway\r\n\r\ncomponent \"Servi\u00e7o de Pedido\" as Order\r\ncomponent \"Adaptador de Pagamento\" as Adapter\r\n\r\nOrder ..&gt; PaymentGateway\r\nAdapter - PaymentGateway\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:SoWkIImgAStDuUNAp2j9BKfBJ4vL24Yip4tDAt5FB4ajJwpavUBbIixFBSZF0uefA0Md5fLb7bwUhv02L9YQafcIhwIGMApWNvIIMeIYq34biQ0aCIM_2AmoCJqHP2P4CLWAf9oN2wnFGK_F3iDMg285NGmPXzIy5A2J0G00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:SoWkIImgAStDuUNAp2j9BKfBJ4vL24Yip4tDAt5FB4ajJwpavUBbIixFBSZF0uefAFaNfQGMAGId5fLb9gSgAIGMAu15KDH03L1mJ4ai01eALWLbWqo36A6dPuTX4rIHWYw6Z4DgNWhGcG00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:SoWkIImgAStDuUNAp2j9BKfBJ4vL24Yip4tDAt5FB4ajJwpavUBbIixFBSZF0uefAFaNfQGMAGId5fLb9gSgAIGMAu15KDH03L1mJ4ai01eALWLbWqo36A6dPuTX4rIHWYw6Z4DgNWhGcG00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p>Isso comunica que o servi\u00e7o de pedidos depende de uma abstra\u00e7\u00e3o, e n\u00e3o de um provedor espec\u00edfico.<\/p>\n<h3>7.3 Use diagramas de componentes para apoiar decis\u00f5es arquiteturais<\/h3>\n<p>Um diagrama de componentes se torna mais valioso quando acompanhado de notas de design curtas:<\/p>\n<ul>\n<li>\n<p>Por que este limite est\u00e1 presente?<\/p>\n<\/li>\n<li>\n<p>Quem \u00e9 o propriet\u00e1rio dos dados?<\/p>\n<\/li>\n<li>\n<p>A intera\u00e7\u00e3o \u00e9 s\u00edncrona ou ass\u00edncrona?<\/p>\n<\/li>\n<li>\n<p>O que acontece quando a depend\u00eancia falha?<\/p>\n<\/li>\n<li>\n<p>O componente \u00e9 implant\u00e1vel independentemente?<\/p>\n<\/li>\n<li>\n<p>Que limite de seguran\u00e7a ele representa?<\/p>\n<\/li>\n<li>\n<p>Quais garantias de consist\u00eancia existem?<\/p>\n<\/li>\n<\/ul>\n<p>O diagrama n\u00e3o precisa conter todas as respostas, mas deve direcionar a aten\u00e7\u00e3o para as importantes.<\/p>\n<h2>8. Diagramas de Implanta\u00e7\u00e3o: Conectando Software \u00e0 Infraestrutura<\/h2>\n<p>Diagramas de implanta\u00e7\u00e3o mostram o ambiente f\u00edsico ou virtual onde os artefatos de software s\u00e3o executados.<\/p>\n<p>Eles ajudam a responder:<\/p>\n<ul>\n<li>\n<p>Onde cada aplica\u00e7\u00e3o \u00e9 executada?<\/p>\n<\/li>\n<li>\n<p>Quais n\u00f3s se comunicam?<\/p>\n<\/li>\n<li>\n<p>Onde est\u00e3o localizados os bancos de dados?<\/p>\n<\/li>\n<li>\n<p>Quais servi\u00e7os s\u00e3o acess\u00edveis externamente?<\/p>\n<\/li>\n<li>\n<p>Quais limites de rede existem?<\/p>\n<\/li>\n<li>\n<p>Como o sistema \u00e9 distribu\u00eddo?<\/p>\n<\/li>\n<li>\n<p>Quais escolhas de infraestrutura afetam a confiabilidade ou o desempenho?<\/p>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<p id=\"elzfaZS\"><img alt=\"Interface VPasCode exibindo c\u00f3digo PlantUML e seu diagrama de implanta\u00e7\u00e3o renderizado, mostrando dispositivos de usu\u00e1rio, camadas de nuvem e servi\u00e7os externos.\" class=\"alignnone size-full wp-image-21228\" decoding=\"async\" height=\"871\" loading=\"lazy\" sizes=\"auto, (max-width: 1916px) 100vw, 1916px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f269aa17.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f269aa17.png 1916w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f269aa17-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f269aa17-1024x466.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f269aa17-768x349.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f269aa17-1536x698.png 1536w\" width=\"1916\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RPB1QiCm38Rl1h-3oBqliCDeinns62mq6JkxjZOCQHmSDsEClVjaMqv2sKtw_v_Fal1n3ig7stMGOdG6eNgRqKE3YzLOWPgvX1yf02XfFvGEKDNUVL4m9RYMubUAGdaQtCt06J-j6rCe2ucI4-zuWTuoWffOPt__JaoTfccmMeM28esac4mF5k0kje59_1_ywWt97VfrqQHqYxvFjkhxYcE0ar5JO2nhdEOnZ0hgecOiy8RxVCQQxwFJ8LPgwzrYJS5o4tDyLJWS7dbZU83dlcyxARYFLfbwCrSbsarDHlzoB-_dt-fiyGmRy8YZeG_o1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RPB1QiCm38Rl1h-3oBqliCDeinns62mq6JkxjZOCQHmSDsEClVjaMqv2sKtw_v_Fal1n3ig7stMGOdG6eNgRqKE3YzLOWPgvX1yf02XfFvGEKDNUVL4m9RYMubUAGdaQtCt06J-j6rCe2ucI4-zuWTuoWffOPt__JaoTfccmMeM28esac4mF5k0kje59_1_ywWt97VfrqQHqYxvFjkhxYcE0ar5JO2nhdEOnZ0hgecOiy8RxVCQQxwFJ8LPgwzrYJS5o4tDyLJWS7dbZU83dlcyxARYFLfbwCrSbsarDHlzoB-_dt-fiyGmRy8YZeG_o1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLBDJiCm3BxdAQpUzm8SqDRrm06DQYlYx2LcYhJMLP868SJ380vxaBuOJfUDCU3c-FkphSnzG1U6TgywDWH5PNtFtWOR6Gp3en_63sUv0CqjGqNHQe8t1I0g-umwGB72I3iqx3AfTFpYoQbtbJtNjBFZf_WXh8P8RUOjzpoOoUj8MsABGdcYRIP8rLXo4-KoSD7lhSRna3n_i1TzBrJ9lRAKyaAJ-KB-qtr3Bjhnm4bLax66VLOyE4Dk4_NrE0RxaFQV5BZ3bhfmIgdnDJsFgcaoWm6tw6Mw4ZiznLIYzh_pgZBTK4zdAch7aVuB4SpAR4hbsyDiTfiF0ZTmrpJrHkLdGawBdB5p8w5LAVtc_gfxiSXtUKHo-jbjJfsH7_K5\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\nnode \"Dispositivo do Usu\u00e1rio\" como Device {\n  artifact \"Navegador\" como Browser\n}\n\nnode \"Regi\u00e3o da Nuvem\" como Cloud {\n  node \"Camada Web\" como WebTier {\n    artifact \"Aplica\u00e7\u00e3o Web\" como WebApp\n  }\n\n  node \"Camada de Aplica\u00e7\u00e3o\" como AppTier {\n    artifact \"Servi\u00e7o de Pedidos\" como OrderSvc\n    artifact \"Adaptador de Pagamento\" como PaymentSvc\n  }\n\n  database \"Banco de Dados de Pedidos\" como DB\n}\n\ncloud \"Provedor de Pagamento\" como Provider\n\nBrowser --&gt; WebApp : HTTPS\nWebApp --&gt; OrderSvc : HTTPS\nOrderSvc --&gt; DB : TLS\nOrderSvc --&gt; PaymentSvc\nPaymentSvc --&gt; Provider : HTTPS\n@enduml<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLBDJiCm3BxdAQpUzm8SqDRrm06DQYlYx2LcYhJMLP868SJ380vxaBuOJfUDCU3c-FkphSnzG1U6TgywDWH5PNtFtWOR6Gp3en_63sUv0CqjGqNHQe8t1I0g-umwGB72I3iqx3AfTFpYoQbtbJtNjBFZf_WXh8P8RUOjzpoOoUj8MsABGdcYRIP8rLXo4-KoSD7lhSRna3n_i1TzBrJ9lRAKyaAJ-KB-qtr3Bjhnm4bLax66VLOyE4Dk4_NrE0RxaFQV5BZ3bhfmIgdnDJsFgcaoWm6tw6Mw4ZiznLIYzh_pgZBTK4zdAch7aVuB4SpAR4hbsyDiTfiF0ZTmrpJrHkLdGawBdB5p8w5LAVtc_gfxiSXtUKHo-jbjJfsH7_K5\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RPB1QiCm38Rl1h-3oBqliCDeinns62mq6JkxjZOCQHmSDsEClVjaMqv2sKtw_v_Fal1n3ig7stMGOdG6eNgRqKE3YzLOWPgvX1yf02XfFvGEKDNUVL4m9RYMubUAGdaQtCt06J-j6rCe2ucI4-zuWTuoWffOPt__JaoTfccmMeM28esac4mF5k0kje59_1_ywWt97VfrqQHqYxvFjkhxYcE0ar5JO2nhdEOnZ0hgecOiy8RxVCQQxwFJ8LPgwzrYJS5o4tDyLJWS7dbZU83dlcyxARYFLfbwCrSbsarDHlzoB-_dt-fiyGmRy8YZeG_o1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:RPB1QiCm38Rl1h-3oBqliCDeinns62mq6JkxjZOCQHmSDsEClVjaMqv2sKtw_v_Fal1n3ig7stMGOdG6eNgRqKE3YzLOWPgvX1yf02XfFvGEKDNUVL4m9RYMubUAGdaQtCt06J-j6rCe2ucI4-zuWTuoWffOPt__JaoTfccmMeM28esac4mF5k0kje59_1_ywWt97VfrqQHqYxvFjkhxYcE0ar5JO2nhdEOnZ0hgecOiy8RxVCQQxwFJ8LPgwzrYJS5o4tDyLJWS7dbZU83dlcyxARYFLfbwCrSbsarDHlzoB-_dt-fiyGmRy8YZeG_o1m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>8.1 Distinguir n\u00f3s, artefatos e ambientes<\/h3>\n<ul>\n<li>\n<p>Um <strong>n\u00f3<\/strong> \u00e9 um ambiente de execu\u00e7\u00e3o, como um servidor, cont\u00eainer, dispositivo, m\u00e1quina virtual ou plataforma gerenciada.<\/p>\n<\/li>\n<li>\n<p>Um <strong>artefato<\/strong> \u00e9 uma unidade de software implant\u00e1vel, como um bin\u00e1rio, imagem de cont\u00eainer, pacote ou aplicativo.<\/p>\n<\/li>\n<li>\n<p>Um <strong>ambiente<\/strong> pode representar desenvolvimento, testes, staging ou produ\u00e7\u00e3o.<\/p>\n<\/li>\n<\/ul>\n<h3>8.2 Incluir detalhes operacionalmente importantes<\/h3>\n<p>Dependendo do objetivo, diagramas de implanta\u00e7\u00e3o podem mostrar:<\/p>\n<ul>\n<li>\n<p>Balanceadores de carga<\/p>\n<\/li>\n<li>\n<p>Firewalls<\/p>\n<\/li>\n<li>\n<p>Zonas de rede<\/p>\n<\/li>\n<li>\n<p>Clusters de cont\u00eaineres<\/p>\n<\/li>\n<li>\n<p>Zonas de disponibilidade<\/p>\n<\/li>\n<li>\n<p>Bancos de dados e r\u00e9plicas<\/p>\n<\/li>\n<li>\n<p>Caches<\/p>\n<\/li>\n<li>\n<p>Corretores de mensagens<\/p>\n<\/li>\n<li>\n<p>Armazenamento de objetos<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7os externos<\/p>\n<\/li>\n<li>\n<p>Sistemas de monitoramento e registro<\/p>\n<\/li>\n<\/ul>\n<p>N\u00e3o adicione detalhes de infraestrutura que n\u00e3o tenham efeito sobre a decis\u00e3o que est\u00e1 sendo documentada.<\/p>\n<h3>8.3 Use diagramas de implanta\u00e7\u00e3o para an\u00e1lise de riscos<\/h3>\n<p>A modelagem de implanta\u00e7\u00e3o pode revelar:<\/p>\n<ul>\n<li>\n<p>Um ponto \u00fanico de falha<\/p>\n<\/li>\n<li>\n<p>Um banco de dados exposto<\/p>\n<\/li>\n<li>\n<p>Uma fronteira de rede ausente<\/p>\n<\/li>\n<li>\n<p>Tr\u00e1fego excessivo entre regi\u00f5es<\/p>\n<\/li>\n<li>\n<p>Uma depend\u00eancia sem estrat\u00e9gia de failover<\/p>\n<\/li>\n<li>\n<p>Separa\u00e7\u00e3o inadequada entre ambientes<\/p>\n<\/li>\n<li>\n<p>Uma conex\u00e3o n\u00e3o criptografada<\/p>\n<\/li>\n<li>\n<p>Uma suposi\u00e7\u00e3o de escalabilidade irrealista<\/p>\n<\/li>\n<\/ul>\n<h2>9. Diagramas de M\u00e1quina de Estados: Modelagem de Ciclos de Vida<\/h2>\n<p>Diagramas de m\u00e1quina de estados descrevem como uma entidade responde a eventos movendo-se entre estados.<\/p>\n<p>Eles s\u00e3o valiosos quando o comportamento de um objeto depende fortemente de seu estado atual.<\/p>\n<p>Exemplos comuns incluem:<\/p>\n<ul>\n<li>\n<p>Pedido<\/p>\n<\/li>\n<li>\n<p>Pagamento<\/p>\n<\/li>\n<li>\n<p>Remessa<\/p>\n<\/li>\n<li>\n<p>Ticket de suporte<\/p>\n<\/li>\n<li>\n<p>Conta de usu\u00e1rio<\/p>\n<\/li>\n<li>\n<p>Solicita\u00e7\u00e3o de fluxo de trabalho<\/p>\n<\/li>\n<li>\n<p>Assinatura<\/p>\n<\/li>\n<li>\n<p>Documento<\/p>\n<\/li>\n<li>\n<p>Dispositivo<\/p>\n<\/li>\n<li>\n<p>Execu\u00e7\u00e3o de tarefa<\/p>\n<\/li>\n<\/ul>\n<p>Exemplo:<\/p>\n<p id=\"WrBBVMg\"><img alt=\"Interface VPasCode exibindo c\u00f3digo PlantUML para uma m\u00e1quina de estados do ciclo de vida do pedido e seu diagrama visual correspondente.\" class=\"alignnone size-full wp-image-21229\" decoding=\"async\" height=\"870\" loading=\"lazy\" sizes=\"auto, (max-width: 1918px) 100vw, 1918px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f7d6a9fe.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f7d6a9fe.png 1918w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f7d6a9fe-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f7d6a9fe-1024x464.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f7d6a9fe-768x348.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1f7d6a9fe-1536x697.png 1536w\" width=\"1918\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP5DQiCm48Nt0jr1wq0kq4K8f6GTwB9aCP56pi1O5fBiuDj7djXrqhIxuSttUFEppmLIwLlMwdjpDjljpdmcy4KhhQGGwOJ1KMXECBOOYlamkR-qLA5V3M61N2NYB46CgHlG_SDAVGHYV3Ovj4n1J2_4dxCaB6bSh9E3PZ1r5dEkR8Kks50mlcTFp3EuzYVywqenoXIESeHYhrejcfm5cGPCGjWkU4fjdLEqyIdr0C4YFzQnKhyblIE6l07cxZQjl0PDSFsALglZHzhNCzIttG40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP5DQiCm48Nt0jr1wq0kq4K8f6GTwB9aCP56pi1O5fBiuDj7djXrqhIxuSttUFEppmLIwLlMwdjpDjljpdmcy4KhhQGGwOJ1KMXECBOOYlamkR-qLA5V3M61N2NYB46CgHlG_SDAVGHYV3Ovj4n1J2_4dxCaB6bSh9E3PZ1r5dEkR8Kks50mlcTFp3EuzYVywqenoXIESeHYhrejcfm5cGPCGjWkU4fjdLEqyIdr0C4YFzQnKhyblIE6l07cxZQjl0PDSFsALglZHzhNCzIttG40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VL7BQWCn3BmR_0y-5_83EPH0QC-Xrz23OgjPmrfQP3lV7zcxcmTfUv8OpMZqsEK2KceQhJc-VRlDvjrzGVQL1hR6cZNlXGES8I4LFY05ZUYsBjTJme9YpMjrqR3IfhNeO1A-GE1_13Fw2UF0zKahw6j-rYwilyOh6a4SgMNg4D_RzIxBPi8USmOARTX8qKTLWQf3NBaFb2Rve4k4JW-O9_03w0rMS2OKmNDjKtYcdoX9Ms87uS5w3-Hnd3lvEPTNjzzOBgERK58iiPtavjVu-ajhxg8RjDEDzDbN\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n[*] --&gt; Rascunho\r\n\r\nRascunho --&gt; PagamentoPendente : submeter\r\nPagamentoPendente --&gt; Pago : pagamento aprovado\r\nPagamentoPendente --&gt; PagamentoFalhou : pagamento recusado\r\nPagamentoFalhou --&gt; PagamentoPendente : tentar novamente o pagamento\r\nPago --&gt; Processando : iniciar atendimento\r\nProcessando --&gt; Enviado : despachar\r\nEnviado --&gt; Entregue : confirmar entrega\r\nPago --&gt; Cancelado : cancelar\r\nProcessando --&gt; Cancelado : cancelar se permitido\r\nEntregue --&gt; [*]\r\nCancelado --&gt; [*]\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VL7BQWCn3BmR_0y-5_83EPH0QC-Xrz23OgjPmrfQP3lV7zcxcmTfUv8OpMZqsEK2KceQhJc-VRlDvjrzGVQL1hR6cZNlXGES8I4LFY05ZUYsBjTJme9YpMjrqR3IfhNeO1A-GE1_13Fw2UF0zKahw6j-rYwilyOh6a4SgMNg4D_RzIxBPi8USmOARTX8qKTLWQf3NBaFb2Rve4k4JW-O9_03w0rMS2OKmNDjKtYcdoX9Ms87uS5w3-Hnd3lvEPTNjzzOBgERK58iiPtavjVu-ajhxg8RjDEDzDbN\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP5DQiCm48Nt0jr1wq0kq4K8f6GTwB9aCP56pi1O5fBiuDj7djXrqhIxuSttUFEppmLIwLlMwdjpDjljpdmcy4KhhQGGwOJ1KMXECBOOYlamkR-qLA5V3M61N2NYB46CgHlG_SDAVGHYV3Ovj4n1J2_4dxCaB6bSh9E3PZ1r5dEkR8Kks50mlcTFp3EuzYVywqenoXIESeHYhrejcfm5cGPCGjWkU4fjdLEqyIdr0C4YFzQnKhyblIE6l07cxZQjl0PDSFsALglZHzhNCzIttG40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TP5DQiCm48Nt0jr1wq0kq4K8f6GTwB9aCP56pi1O5fBiuDj7djXrqhIxuSttUFEppmLIwLlMwdjpDjljpdmcy4KhhQGGwOJ1KMXECBOOYlamkR-qLA5V3M61N2NYB46CgHlG_SDAVGHYV3Ovj4n1J2_4dxCaB6bSh9E3PZ1r5dEkR8Kks50mlcTFp3EuzYVywqenoXIESeHYhrejcfm5cGPCGjWkU4fjdLEqyIdr0C4YFzQnKhyblIE6l07cxZQjl0PDSFsALglZHzhNCzIttG40\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>9.1 Defina estados com cuidado<\/h3>\n<p>Um estado deve representar uma condi\u00e7\u00e3o significativa, n\u00e3o meramente uma a\u00e7\u00e3o.<\/p>\n<p>Estados bons:<\/p>\n<ul>\n<li>\n<p>Aguardando Aprova\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Aprovado<\/p>\n<\/li>\n<li>\n<p>Rejeitado<\/p>\n<\/li>\n<li>\n<p>Pagamento Falhou<\/p>\n<\/li>\n<li>\n<p>Enviado<\/p>\n<\/li>\n<\/ul>\n<p>Estados fracos:<\/p>\n<ul>\n<li>\n<p>Clicando no Bot\u00e3o<\/p>\n<\/li>\n<li>\n<p>Chamando Servi\u00e7o<\/p>\n<\/li>\n<li>\n<p>Executando M\u00e9todo<\/p>\n<\/li>\n<\/ul>\n<p>A\u00e7\u00f5es s\u00e3o eventos ou transi\u00e7\u00f5es. Estados s\u00e3o condi\u00e7\u00f5es que persistem.<\/p>\n<h3>9.2 Inclua regras de transi\u00e7\u00e3o<\/h3>\n<p>Uma transi\u00e7\u00e3o pode incluir:<\/p>\n<ul>\n<li>\n<p>Evento<\/p>\n<\/li>\n<li>\n<p>Condi\u00e7\u00e3o de guarda<\/p>\n<\/li>\n<li>\n<p>A\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>Por exemplo:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Aguardando Aprova\u00e7\u00e3o -- aprovar [gerente autorizado] \/ registrarAprovacao --&gt; Aprovado\r\n<\/code><\/pre>\n<p>Isso torna as regras de neg\u00f3cio vis\u00edveis e test\u00e1veis.<\/p>\n<h3>9.3 Use m\u00e1quinas de estado para derivar testes<\/h3>\n<p>Cada transi\u00e7\u00e3o sugere casos de teste:<\/p>\n<ul>\n<li>\n<p>Transi\u00e7\u00e3o v\u00e1lida<\/p>\n<\/li>\n<li>\n<p>Transi\u00e7\u00e3o inv\u00e1lida<\/p>\n<\/li>\n<li>\n<p>Falha na guarda<\/p>\n<\/li>\n<li>\n<p>Evento repetido<\/p>\n<\/li>\n<li>\n<p>Tempo esgotado<\/p>\n<\/li>\n<li>\n<p>Repetir<\/p>\n<\/li>\n<li>\n<p>Cancelamento<\/p>\n<\/li>\n<li>\n<p>Recupera\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>Para o ciclo de vida de um pedido, os testes podem verificar:<\/p>\n<ul>\n<li>\n<p>Um pedido rascunho pode ser submetido<\/p>\n<\/li>\n<li>\n<p>Um pedido entregue n\u00e3o pode ser cancelado<\/p>\n<\/li>\n<li>\n<p>Uma falha no pagamento permite repeti\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Um pedido cancelado n\u00e3o pode retornar ao status de pago<\/p>\n<\/li>\n<\/ul>\n<h2>10. Como os Sete Diagramas Funcionam em Conjunto<\/h2>\n<p>Os diagramas devem formar um modelo consistente, em vez de sete ilustra\u00e7\u00f5es desconexas.<\/p>\n<p>Considere a capacidade de \u201cSubmeter Relat\u00f3rio de Despesas\u201d.<\/p>\n<p><img alt='Sete diagramas UML ilustrando a capacidade \"Enviar Relat\u00f3rio de Despesas\" sob as perspectivas de caso de uso, atividade, sequ\u00eancia, classe, componente, implanta\u00e7\u00e3o e m\u00e1quina de estados.' class=\"alignnone size-full wp-image-21237\" decoding=\"async\" height=\"1122\" loading=\"lazy\" sizes=\"auto, (max-width: 1402px) 100vw, 1402px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba240a1b34e.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba240a1b34e.png 1402w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba240a1b34e-300x240.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba240a1b34e-1024x819.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba240a1b34e-768x615.png 768w\" width=\"1402\"\/><\/p>\n<h3>Caso de uso<\/h3>\n<ul>\n<li>\n<p>Funcion\u00e1rio submete relat\u00f3rio de despesas<\/p>\n<\/li>\n<li>\n<p>Gerente aprova relat\u00f3rio de despesas<\/p>\n<\/li>\n<li>\n<p>Respons\u00e1vel financeiro processa o reembolso<\/p>\n<\/li>\n<\/ul>\n<h3>Atividade<\/h3>\n<ul>\n<li>\n<p>Inserir despesas<\/p>\n<\/li>\n<li>\n<p>Anexar recibos<\/p>\n<\/li>\n<li>\n<p>Validar dados<\/p>\n<\/li>\n<li>\n<p>Submeter relat\u00f3rio<\/p>\n<\/li>\n<li>\n<p>Encaminhar para o gerente<\/p>\n<\/li>\n<li>\n<p>Aprovar ou rejeitar<\/p>\n<\/li>\n<li>\n<p>Enviar para o financeiro<\/p>\n<\/li>\n<\/ul>\n<h3>Sequ\u00eancia<\/h3>\n<ul>\n<li>\n<p>Interface do funcion\u00e1rio chama o servi\u00e7o de despesas<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de despesas valida o relat\u00f3rio<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de recibos armazena anexos<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de fluxo de trabalho atribui o gerente<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de notifica\u00e7\u00f5es envia alertas<\/p>\n<\/li>\n<\/ul>\n<h3>Classe<\/h3>\n<ul>\n<li>\n<p><code data-backticks=\"1\">Funcion\u00e1rio<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">Relat\u00f3rio de Despesas<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">Item de Despesa<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">Recibo<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">Aprova\u00e7\u00e3o<\/code><\/p>\n<\/li>\n<li>\n<p><code data-backticks=\"1\">Reembolso<\/code><\/p>\n<\/li>\n<\/ul>\n<h3>Componente<\/h3>\n<ul>\n<li>\n<p>Aplica\u00e7\u00e3o web<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de despesas<\/p>\n<\/li>\n<li>\n<p>Armazenamento de recibos<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de fluxo de trabalho<\/p>\n<\/li>\n<li>\n<p>Servi\u00e7o de notifica\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Integra\u00e7\u00e3o financeira<\/p>\n<\/li>\n<\/ul>\n<h3>Implanta\u00e7\u00e3o<\/h3>\n<ul>\n<li>\n<p>Navegador<\/p>\n<\/li>\n<li>\n<p>Camada web<\/p>\n<\/li>\n<li>\n<p>Cluster de aplica\u00e7\u00f5es<\/p>\n<\/li>\n<li>\n<p>Armazenamento de objetos<\/p>\n<\/li>\n<li>\n<p>Base de dados relacional<\/p>\n<\/li>\n<li>\n<p>Plataforma financeira<\/p>\n<\/li>\n<\/ul>\n<h3>M\u00e1quina de estados<\/h3>\n<pre class=\"lang-text\"><code data-language=\"text\">Rascunho \u2192 Enviado \u2192 Em an\u00e1lise \u2192 Aprovado \u2192 Reembolsado\r\n                         \u2193\r\n                      Rejeitado\r\n<\/code><\/pre>\n<p>Cada diagrama adiciona uma perspectiva diferente sem duplicar todas as outras.<\/p>\n<h2>11. Escolhendo quais diagramas criar<\/h2>\n<p>Um processo de sele\u00e7\u00e3o pr\u00e1tico \u00e9 perguntar que tipo de incerteza a equipe tem.<\/p>\n<p><img alt=\"Fluxograma que associa sete tipos de incerteza de software a diagramas UML espec\u00edficos, incluindo caso de uso, atividade, sequ\u00eancia, classe, componente, implanta\u00e7\u00e3o e m\u00e1quina de estados.\" class=\"alignnone size-full wp-image-21238\" decoding=\"async\" height=\"1122\" loading=\"lazy\" sizes=\"auto, (max-width: 1402px) 100vw, 1402px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba24949c71a.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba24949c71a.png 1402w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba24949c71a-300x240.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba24949c71a-1024x819.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba24949c71a-768x615.png 768w\" width=\"1402\"\/><\/p>\n<table>\n<thead>\n<tr>\n<th>Incerteza<\/th>\n<th>Diagrama \u00fatil<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>O escopo do sistema n\u00e3o est\u00e1 claro<\/td>\n<td>Caso de uso<\/td>\n<\/tr>\n<tr>\n<td>O processo de neg\u00f3cio n\u00e3o est\u00e1 claro<\/td>\n<td>Atividade<\/td>\n<\/tr>\n<tr>\n<td>A colabora\u00e7\u00e3o ou integra\u00e7\u00e3o n\u00e3o est\u00e1 clara<\/td>\n<td>Sequ\u00eancia<\/td>\n<\/tr>\n<tr>\n<td>Os conceitos do dom\u00ednio n\u00e3o est\u00e3o claros<\/td>\n<td>Classe<\/td>\n<\/tr>\n<tr>\n<td>Os limites arquiteturais n\u00e3o est\u00e3o claros<\/td>\n<td>Componente<\/td>\n<\/tr>\n<tr>\n<td>A topologia da infraestrutura ou da rede n\u00e3o est\u00e1 clara<\/td>\n<td>Implanta\u00e7\u00e3o<\/td>\n<\/tr>\n<tr>\n<td>As regras do ciclo de vida n\u00e3o est\u00e3o claras<\/td>\n<td>M\u00e1quina de estados<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Voc\u00ea n\u00e3o precisa de todos os diagramas para cada funcionalidade.<\/p>\n<h3>Uma regra de decis\u00e3o leve<\/h3>\n<p>Crie um diagrama quando pelo menos uma das seguintes condi\u00e7\u00f5es for verdadeira:<\/p>\n<ul>\n<li>\n<p>M\u00faltiplos interessados interpretam o requisito de forma diferente.<\/p>\n<\/li>\n<li>\n<p>Um processo possui comportamento importante de ramifica\u00e7\u00e3o ou paralelo.<\/p>\n<\/li>\n<li>\n<p>Um cen\u00e1rio atravessa v\u00e1rios limites do sistema.<\/p>\n<\/li>\n<li>\n<p>Um objeto de dom\u00ednio possui regras n\u00e3o triviais.<\/p>\n<\/li>\n<li>\n<p>Uma decis\u00e3o de arquitetura precisa ser comunicada.<\/p>\n<\/li>\n<li>\n<p>A topologia de implanta\u00e7\u00e3o afeta a confiabilidade, a seguran\u00e7a ou o desempenho.<\/p>\n<\/li>\n<li>\n<p>As regras do ciclo de vida s\u00e3o dif\u00edceis de explicar em prosa.<\/p>\n<\/li>\n<li>\n<p>O diagrama ser\u00e1 reutilizado para implementa\u00e7\u00e3o, revis\u00e3o, teste ou opera\u00e7\u00f5es.<\/p>\n<\/li>\n<\/ul>\n<p>Evite criar um diagrama apenas porque um modelo indica que um \u00e9 esperado.<\/p>\n<h2>12. N\u00edveis de Detalhe<\/h2>\n<p>Uma pr\u00e1tica s\u00f3lida de modelagem utiliza m\u00faltiplos n\u00edveis de abstra\u00e7\u00e3o.<\/p>\n<h3>N\u00edvel de contexto<\/h3>\n<p>Mostra o sistema e os principais atores ou sistemas externos.<\/p>\n<p>\u00datil para:<\/p>\n<ul>\n<li>\n<p>Escopo<\/p>\n<\/li>\n<li>\n<p>Comunica\u00e7\u00e3o com os interessados<\/p>\n<\/li>\n<li>\n<p>Limites do sistema<\/p>\n<\/li>\n<\/ul>\n<h3>N\u00edvel de cont\u00eainer ou subsistema<\/h3>\n<p>Mostra aplica\u00e7\u00f5es, servi\u00e7os, bancos de dados e integra\u00e7\u00f5es principais.<\/p>\n<p>\u00datil para:<\/p>\n<ul>\n<li>\n<p>Arquitetura<\/p>\n<\/li>\n<li>\n<p>Propriedade<\/p>\n<\/li>\n<li>\n<p>Planejamento de implanta\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<h3>N\u00edvel de componente<\/h3>\n<p>Mostra partes internas da arquitetura e interfaces.<\/p>\n<p>\u00datil para:<\/p>\n<ul>\n<li>\n<p>Projeto detalhado<\/p>\n<\/li>\n<li>\n<p>Revis\u00e3o de depend\u00eancias<\/p>\n<\/li>\n<li>\n<p>Limites da equipe<\/p>\n<\/li>\n<\/ul>\n<h3>N\u00edvel de c\u00f3digo<\/h3>\n<p>Mostra classes, m\u00e9todos e depend\u00eancias de implementa\u00e7\u00e3o.<\/p>\n<p>\u00datil para:<\/p>\n<ul>\n<li>\n<p>Trabalho do desenvolvedor<\/p>\n<\/li>\n<li>\n<p>Refatora\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Depura\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>N\u00e3o coloque todos os n\u00edveis em um \u00fanico diagrama. Um diagrama de contexto n\u00e3o deve conter todas as classes, e um diagrama de classes n\u00e3o deve tentar representar toda a rede de produ\u00e7\u00e3o.<\/p>\n<h2>13. Visual Paradigm UML<\/h2>\n<p>O Visual Paradigm \u00e9 bem adequado para equipes que preferem modelagem gr\u00e1fica e documenta\u00e7\u00e3o integrada.<\/p>\n<p><img alt=\"Ferramenta UML Gratuita\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/05-use-case-diagram.png\"\/><\/p>\n<p>Pode ser \u00fatil para:<\/p>\n<ul>\n<li>\n<p>Desenhar diagramas UML interativamente<\/p>\n<\/li>\n<li>\n<p>Manter um reposit\u00f3rio de modelos<\/p>\n<\/li>\n<li>\n<p>Vincular diagramas a requisitos<\/p>\n<\/li>\n<li>\n<p>Criar rela\u00e7\u00f5es de rastreabilidade<\/p>\n<\/li>\n<li>\n<p>Produzir documenta\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Colaborar atrav\u00e9s de um ambiente de modelagem compartilhado<\/p>\n<\/li>\n<li>\n<p>Gerar ou engenharia reversa de artefatos selecionados<\/p>\n<\/li>\n<li>\n<p>Gerenciando modelos maiores com recursos de navega\u00e7\u00e3o e organiza\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<h3>13.1 Pontos fortes<\/h3>\n<p>Ferramentas gr\u00e1ficas de UML s\u00e3o particularmente \u00fateis quando:<\/p>\n<ul>\n<li>\n<p>Analistas e n\u00e3o desenvolvedores precisam editar diagramas<\/p>\n<\/li>\n<li>\n<p>Partes interessadas preferem manipula\u00e7\u00e3o visual<\/p>\n<\/li>\n<li>\n<p>Um projeto requer organiza\u00e7\u00e3o formal de modelos<\/p>\n<\/li>\n<li>\n<p>A rastreabilidade \u00e9 importante<\/p>\n<\/li>\n<li>\n<p>A equipe mant\u00e9m um reposit\u00f3rio central<\/p>\n<\/li>\n<li>\n<p>A documenta\u00e7\u00e3o deve ser gerada de forma consistente<\/p>\n<\/li>\n<\/ul>\n<h3>13.2 Uso recomendado<\/h3>\n<p>Use o Visual Paradigm para as visualiza\u00e7\u00f5es de modelo que se beneficiam de:<\/p>\n<ul>\n<li>\n<p>Layout interativo<\/p>\n<\/li>\n<li>\n<p>Anota\u00e7\u00f5es ricas<\/p>\n<\/li>\n<li>\n<p>Navega\u00e7\u00e3o entre diagramas<\/p>\n<\/li>\n<li>\n<p>Gerenciamento formal de reposit\u00f3rio<\/p>\n<\/li>\n<li>\n<p>Rastreabilidade<\/p>\n<\/li>\n<li>\n<p>Workshops com partes interessadas<\/p>\n<\/li>\n<\/ul>\n<p>N\u00e3o permita que a ferramenta determine a estrat\u00e9gia de modelagem. Primeiro, decida:<\/p>\n<ul>\n<li>\n<p>Qual decis\u00e3o o diagrama suporta<\/p>\n<\/li>\n<li>\n<p>Quem o ler\u00e1<\/p>\n<\/li>\n<li>\n<p>Qual n\u00edvel de detalhe \u00e9 apropriado<\/p>\n<\/li>\n<li>\n<p>Como ser\u00e1 mantido<\/p>\n<\/li>\n<li>\n<p>Se o modelo precisa se conectar a requisitos ou c\u00f3digo<\/p>\n<\/li>\n<\/ul>\n<h3>13.3 Disciplina de reposit\u00f3rio<\/h3>\n<p>Um reposit\u00f3rio de modelo compartilhado se beneficia das mesmas pr\u00e1ticas de controle de vers\u00e3o:<\/p>\n<ul>\n<li>\n<p>Estabele\u00e7a conven\u00e7\u00f5es de nomenclatura<\/p>\n<\/li>\n<li>\n<p>Atribua a propriedade das principais \u00e1reas do modelo<\/p>\n<\/li>\n<li>\n<p>Revise altera\u00e7\u00f5es significativas<\/p>\n<\/li>\n<li>\n<p>Evite diagramas duplicados desnecess\u00e1rios<\/p>\n<\/li>\n<li>\n<p>Arquive visualiza\u00e7\u00f5es obsoletas<\/p>\n<\/li>\n<li>\n<p>Registre o prop\u00f3sito dos diagramas importantes<\/p>\n<\/li>\n<li>\n<p>Mantenha os elementos do modelo com nomes consistentes<\/p>\n<\/li>\n<\/ul>\n<h2>14. VPasCode e Modelagem Baseada em Texto<\/h2>\n<p>O VPasCode suporta uma abordagem orientada a texto para modelagem dentro de um ecossistema Visual Paradigm. Esse estilo \u00e9 \u00fatil para equipes que desejam que os diagramas se comportem mais como artefatos de c\u00f3digo-fonte.<\/p>\n<p id=\"VRBvpNU\"><img alt=\"Interface VPasCode exibindo c\u00f3digo PlantUML definindo um diagrama de classes de sistema de biblioteca com rela\u00e7\u00f5es de heran\u00e7a entre as classes Livro, Revista e DVD.\" class=\"alignnone size-full wp-image-21241\" decoding=\"async\" height=\"745\" loading=\"lazy\" sizes=\"auto, (max-width: 1192px) 100vw, 1192px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba2529a7695.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba2529a7695.png 1192w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba2529a7695-300x188.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba2529a7695-1024x640.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba2529a7695-768x480.png 768w\" width=\"1192\"\/><\/p>\n<p>\u00a0<\/p>\n<p>Diagramas baseados em texto podem oferecer:<\/p>\n<ul>\n<li>\n<p>Compatibilidade com controle de vers\u00e3o<\/p>\n<\/li>\n<li>\n<p>Revis\u00e3o de c\u00f3digo<\/p>\n<\/li>\n<li>\n<p>Ramifica\u00e7\u00e3o e mesclagem<\/p>\n<\/li>\n<li>\n<p>Gera\u00e7\u00e3o automatizada<\/p>\n<\/li>\n<li>\n<p>Compila\u00e7\u00f5es repet\u00edveis<\/p>\n<\/li>\n<li>\n<p>Atualiza\u00e7\u00f5es em lote mais f\u00e1ceis<\/p>\n<\/li>\n<li>\n<p>Proximidade com o c\u00f3digo-fonte e a documenta\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p>Um modelo baseado em texto pode parecer com:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">actor Cliente\r\nusecase \"Fazer Pedido\" as PlaceOrder\r\nCliente --&gt; PlaceOrder\r\n<\/code><\/pre>\n<p>A sintaxe exata depende da ferramenta e do fluxo de trabalho, mas a vantagem mais ampla \u00e9 que o diagrama \u00e9 representado como texto edit\u00e1vel, e n\u00e3o apenas como um arquivo gr\u00e1fico.<\/p>\n<h3>14.1 Quando a modelagem baseada em texto funciona bem<\/h3>\n<p>Use diagramas baseados em texto quando:<\/p>\n<ul>\n<li>\n<p>Os desenvolvedores mant\u00eam os modelos<\/p>\n<\/li>\n<li>\n<p>Os diagramas mudam com frequ\u00eancia<\/p>\n<\/li>\n<li>\n<p>A equipe usa Git ou outro sistema de controle de vers\u00e3o<\/p>\n<\/li>\n<li>\n<p>Os revisores desejam inspecionar altera\u00e7\u00f5es textuais<\/p>\n<\/li>\n<li>\n<p>Os diagramas s\u00e3o gerados como parte da documenta\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>M\u00faltiplas ramifica\u00e7\u00f5es precisam evoluir independentemente<\/p>\n<\/li>\n<\/ul>\n<h3>14.2 Limita\u00e7\u00f5es potenciais<\/h3>\n<p>A modelagem baseada em texto pode ser menos conveniente quando:<\/p>\n<ul>\n<li>\n<p>As partes interessadas do neg\u00f3cio precisam editar os diagramas diretamente<\/p>\n<\/li>\n<li>\n<p>O layout deve ser otimizado manualmente<\/p>\n<\/li>\n<li>\n<p>O modelo cont\u00e9m anota\u00e7\u00f5es visuais ricas<\/p>\n<\/li>\n<li>\n<p>A equipe n\u00e3o est\u00e1 familiarizada com a sintaxe dos diagramas<\/p>\n<\/li>\n<li>\n<p>Um reposit\u00f3rio requer navega\u00e7\u00e3o visual sofisticada<\/p>\n<\/li>\n<\/ul>\n<p>Uma abordagem h\u00edbrida \u00e9 frequentemente eficaz: use diagramas baseados em texto para arquitetura orientada a c\u00f3digo e ferramentas gr\u00e1ficas para an\u00e1lise voltada \u00e0s partes interessadas.<\/p>\n<h2>15. PlantUML<\/h2>\n<p>O PlantUML \u00e9 uma abordagem popular de diagrama\u00e7\u00e3o baseada em texto que pode gerar diagramas UML e relacionados a partir de texto simples.<\/p>\n<p>Exemplo:<\/p>\n<p id=\"xaIpfSL\"><img alt=\"Interface VPasCode exibindo a sintaxe PlantUML \u00e0 esquerda e o diagrama de sequ\u00eancia gerado \u00e0 direita, mostrando as intera\u00e7\u00f5es entre Usu\u00e1rio, Aplicativo Web, Servi\u00e7o de Aplica\u00e7\u00e3o e Banco de Dados.\" class=\"alignnone size-full wp-image-21230\" decoding=\"async\" height=\"871\" loading=\"lazy\" sizes=\"auto, (max-width: 1915px) 100vw, 1915px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1fda479f0.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1fda479f0.png 1915w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1fda479f0-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1fda479f0-1024x466.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1fda479f0-768x349.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba1fda479f0-1536x699.png 1536w\" width=\"1915\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP2z3i8m38JtI7a7gtl5tW4LgRn04M9sKm-HGX8IXv-tnuaAGcpEVRuxAsDcJ5okJYiq71ASCoMjeeZMs8YUeRlG0eSOEy0CClzH8SuQP1iyd2ZThQ6sARfMAp8kc0ccRT1Agre1_RvcmG0ptGfbrge-HHMVgCSdcS848L9gsLfL8FoJrAouxXx9obujqkhB-c_GJBautjm_fJa6NyzfhQAtemQOR8uENv0ssqX-bTzv0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP2z3i8m38JtI7a7gtl5tW4LgRn04M9sKm-HGX8IXv-tnuaAGcpEVRuxAsDcJ5okJYiq71ASCoMjeeZMs8YUeRlG0eSOEy0CClzH8SuQP1iyd2ZThQ6sARfMAp8kc0ccRT1Agre1_RvcmG0ptGfbrge-HHMVgCSdcS848L9gsLfL8FoJrAouxXx9obujqkhB-c_GJBautjm_fJa6NyzfhQAtemQOR8uENv0ssqX-bTzv0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP2z3i8m38JtI7a7gtl5tW4LgRn04M9sKm-HGX8IXv-tnuaAGcpEVRuxAsDcJ5okJYiq71ASCoMjeeZMs8YUeRlG0eSOEy0CClzH8SuQP1iyd2ZThQ6sARfMAp8kc0ccRT1Agre1_RvcmG0ptGfbrge-HHMVgCSdcS848L9gsLfL8FoJrAouxXx9obujqkhB-c_GJBautjm_fJa6NyzfhQAtemQOR8uENv0ssqX-bTzv0m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\nactor User\r\nparticipant \"Web App\" as Web\r\nparticipant \"Application Service\" as App\r\ndatabase Database\r\n\r\nUser -&gt; Web : Request\r\nWeb -&gt; App : Execute operation\r\nApp -&gt; Database : Read\/write data\r\nDatabase --&gt; App : Result\r\nApp --&gt; Web : Response\r\nWeb --&gt; User : Display result\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP2z3i8m38JtI7a7gtl5tW4LgRn04M9sKm-HGX8IXv-tnuaAGcpEVRuxAsDcJ5okJYiq71ASCoMjeeZMs8YUeRlG0eSOEy0CClzH8SuQP1iyd2ZThQ6sARfMAp8kc0ccRT1Agre1_RvcmG0ptGfbrge-HHMVgCSdcS848L9gsLfL8FoJrAouxXx9obujqkhB-c_GJBautjm_fJa6NyzfhQAtemQOR8uENv0ssqX-bTzv0m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP2z3i8m38JtI7a7gtl5tW4LgRn04M9sKm-HGX8IXv-tnuaAGcpEVRuxAsDcJ5okJYiq71ASCoMjeeZMs8YUeRlG0eSOEy0CClzH8SuQP1iyd2ZThQ6sARfMAp8kc0ccRT1Agre1_RvcmG0ptGfbrge-HHMVgCSdcS848L9gsLfL8FoJrAouxXx9obujqkhB-c_GJBautjm_fJa6NyzfhQAtemQOR8uENv0ssqX-bTzv0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:NP2z3i8m38JtI7a7gtl5tW4LgRn04M9sKm-HGX8IXv-tnuaAGcpEVRuxAsDcJ5okJYiq71ASCoMjeeZMs8YUeRlG0eSOEy0CClzH8SuQP1iyd2ZThQ6sARfMAp8kc0ccRT1Agre1_RvcmG0ptGfbrge-HHMVgCSdcS848L9gsLfL8FoJrAouxXx9obujqkhB-c_GJBautjm_fJa6NyzfhQAtemQOR8uENv0ssqX-bTzv0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Editar PlantUML no VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<h3>15.1 Benef\u00edcios<\/h3>\n<p>O PlantUML \u00e9 valioso porque os diagramas podem ser:<\/p>\n<ul>\n<li>\n<p>Armazenados ao lado do c\u00f3digo-fonte<\/p>\n<\/li>\n<li>\n<p>Revisados em pull requests<\/p>\n<\/li>\n<li>\n<p>Gerados automaticamente<\/p>\n<\/li>\n<li>\n<p>Atualizados com edi\u00e7\u00f5es simples de texto<\/p>\n<\/li>\n<li>\n<p>Inclu\u00eddos em pipelines de Markdown ou documenta\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Produzidos de forma consistente em todos os ambientes<\/p>\n<\/li>\n<\/ul>\n<h3>15.2 Organizando arquivos PlantUML<\/h3>\n<p>Uma estrutura de reposit\u00f3rio pr\u00e1tica pode ser:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">docs\/\r\n  architecture\/\r\n    system-context.puml\r\n    components.puml\r\n    deployment.puml\r\n  workflows\/\r\n    place-order.puml\r\n    refund-payment.puml\r\n  domain\/\r\n    order-model.puml\r\n    order-lifecycle.puml\r\n<\/code><\/pre>\n<p>Use nomes descritivos e organize os diagramas por finalidade, e n\u00e3o por ferramenta.<\/p>\n<h3>15.3 Mantenha as imagens geradas fora da fonte da verdade<\/h3>\n<p>Quando poss\u00edvel:<\/p>\n<ul>\n<li>\n<p>Armazene <code data-backticks=\"1\">.puml<\/code> arquivos como a fonte autoritativa<\/p>\n<\/li>\n<li>\n<p>Gere arquivos PNG, SVG ou PDF durante a constru\u00e7\u00e3o da documenta\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Evite editar manualmente as imagens geradas<\/p>\n<\/li>\n<li>\n<p>Valide que os diagramas s\u00e3o renderizados com sucesso na automa\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<h3>15.4 Use um estilo consistente<\/h3>\n<p>Defina um vocabul\u00e1rio visual pequeno:<\/p>\n<ul>\n<li>\n<p>Uma cor para sistemas externos<\/p>\n<\/li>\n<li>\n<p>Uma cor para servi\u00e7os internos<\/p>\n<\/li>\n<li>\n<p>Uma cor para bancos de dados<\/p>\n<\/li>\n<li>\n<p>Uma nota\u00e7\u00e3o para mensagens ass\u00edncronas<\/p>\n<\/li>\n<li>\n<p>Uma conven\u00e7\u00e3o de nomenclatura para interfaces<\/p>\n<\/li>\n<li>\n<p>Uma maneira de representar limites de seguran\u00e7a<\/p>\n<\/li>\n<\/ul>\n<p>A consist\u00eancia \u00e9 mais valiosa que a decora\u00e7\u00e3o.<\/p>\n<h2>16. Modelagem UML Assistida por IA<\/h2>\n<p>A IA pode acelerar a modelagem, mas deve ser tratada como uma assistente de modelagem, e n\u00e3o como uma autoridade.<\/p>\n<p><img alt=\"Do Texto \u00e0 Arquitetura: Acelerando a Modelagem UML com a IA Generativa do Visual Paradigm - Blog Visual Paradigm\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/how-to-generate-diagram-with-ai-in-visual-paradigm.png\"\/><\/p>\n<p>A IA \u00e9 \u00fatil para:<\/p>\n<ul>\n<li>\n<p>Converter requisitos em casos de uso candidatos<\/p>\n<\/li>\n<li>\n<p>Extrair atores e objetivos<\/p>\n<\/li>\n<li>\n<p>Propor fluxos de atividade<\/p>\n<\/li>\n<li>\n<p>Gerar PlantUML<\/p>\n<\/li>\n<li>\n<p>Sugerir participantes de sequ\u00eancia<\/p>\n<\/li>\n<li>\n<p>Identificar entidades de dom\u00ednio<\/p>\n<\/li>\n<li>\n<p>Detectar caminhos alternativos ausentes<\/p>\n<\/li>\n<li>\n<p>Revisar a consist\u00eancia dos diagramas<\/p>\n<\/li>\n<li>\n<p>Produzir documenta\u00e7\u00e3o a partir dos diagramas<\/p>\n<\/li>\n<li>\n<p>Traduzir entre representa\u00e7\u00f5es gr\u00e1ficas e textuais<\/p>\n<\/li>\n<li>\n<p>Gerar ideias de teste a partir de transi\u00e7\u00f5es de estado<\/p>\n<\/li>\n<\/ul>\n<h3>16.1 Um fluxo de trabalho produtivo com IA<\/h3>\n<p>Um fluxo de trabalho confi\u00e1vel \u00e9:<\/p>\n<ol>\n<li>\n<p>Forne\u00e7a os requisitos, restri\u00e7\u00f5es e o contexto do sistema.<\/p>\n<\/li>\n<li>\n<p>Pe\u00e7a \u00e0 IA para identificar suposi\u00e7\u00f5es e ambiguidades.<\/p>\n<\/li>\n<li>\n<p>Gere um diagrama candidato.<\/p>\n<\/li>\n<li>\n<p>Revise o diagrama em rela\u00e7\u00e3o aos requisitos reais.<\/p>\n<\/li>\n<li>\n<p>Compare-o com a implementa\u00e7\u00e3o e a infraestrutura.<\/p>\n<\/li>\n<li>\n<p>Corrija detalhes imprecisos ou inventados.<\/p>\n<\/li>\n<li>\n<p>Renderize e inspecione o resultado visualmente.<\/p>\n<\/li>\n<li>\n<p>Obtenha uma revis\u00e3o das partes interessadas relevantes.<\/p>\n<\/li>\n<li>\n<p>Armazene o modelo aprovado no reposit\u00f3rio do projeto.<\/p>\n<\/li>\n<li>\n<p>Atualize-o quando o sistema mudar.<\/p>\n<\/li>\n<\/ol>\n<h3>16.2 Solicite \u00e0 IA com restri\u00e7\u00f5es<\/h3>\n<p>Prompt fraco:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Crie um diagrama UML para um sistema de pedidos.\r\n<\/code><\/pre>\n<p id=\"atqOFyp\"><img alt=\"Chatbot Visual Paradigm exibindo um diagrama de classes UML gerado por IA para um sistema de pedidos, ilustrando as rela\u00e7\u00f5es entre Cliente, Pedido e Pagamento.\" class=\"alignnone size-full wp-image-21231\" decoding=\"async\" height=\"674\" loading=\"lazy\" sizes=\"auto, (max-width: 1772px) 100vw, 1772px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba205eb7220.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba205eb7220.png 1772w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba205eb7220-300x114.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba205eb7220-1024x389.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba205eb7220-768x292.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba205eb7220-1536x584.png 1536w\" width=\"1772\"\/><\/p>\n<p>Prompt mais forte:<\/p>\n<p id=\"VLHHdnc\"><img alt=\"Chatbot Visual Paradigm exibindo um diagrama de sequ\u00eancia PlantUML gerado para um processo de envio de pedido com etapas paralelas de pagamento e invent\u00e1rio.\" class=\"alignnone size-full wp-image-21232\" decoding=\"async\" height=\"867\" loading=\"lazy\" sizes=\"auto, (max-width: 1918px) 100vw, 1918px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21e2793ad.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21e2793ad.png 1918w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21e2793ad-300x136.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21e2793ad-1024x463.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21e2793ad-768x347.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21e2793ad-1536x694.png 1536w\" width=\"1918\"\/><\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Crie um diagrama de sequ\u00eancia PlantUML para submiss\u00e3o de um pedido.\r\n\r\nParticipantes:\r\n- Cliente\r\n- Aplica\u00e7\u00e3o web\r\n- Servi\u00e7o de pedidos\r\n- Provedor de pagamento\r\n- Servi\u00e7o de invent\u00e1rio\r\n- Banco de dados de pedidos\r\n\r\nRestri\u00e7\u00f5es:\r\n- O pagamento deve ser autorizado antes de o pedido ser confirmado.\r\n- A reserva de invent\u00e1rio pode ocorrer em paralelo com a autoriza\u00e7\u00e3o do pagamento.\r\n- Um pagamento recusado deve deixar o pedido no estado PaymentFailed.\r\n- Um tempo limite deve ser tentado uma vez.\r\n- Mostre os caminhos de sucesso, recusa e tempo limite.\r\n- N\u00e3o invente servi\u00e7os que n\u00e3o estejam listados aqui.\r\n<\/code><\/pre>\n<p id=\"VIasGVW\"><img alt=\"Diagrama de sequ\u00eancia ilustrando um fluxo de trabalho de envio de pedido com etapas paralelas de pagamento e invent\u00e1rio, al\u00e9m de caminhos alternativos para autoriza\u00e7\u00e3o e tentativas de rein\u00edcio por tempo limite.\" class=\"alignnone size-full wp-image-21233\" decoding=\"async\" height=\"1418\" loading=\"lazy\" sizes=\"auto, (max-width: 966px) 100vw, 966px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21ef08ecd.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21ef08ecd.png 966w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21ef08ecd-204x300.png 204w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21ef08ecd-698x1024.png 698w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba21ef08ecd-768x1127.png 768w\" width=\"966\"\/><\/p>\n<p>Quanto mais claramente as restri\u00e7\u00f5es forem enunciadas, menos prov\u00e1vel ser\u00e1 que a sa\u00edda contenha uma arquitetura n\u00e3o suportada.<\/p>\n<h3>16.3 Pe\u00e7a \u00e0 IA uma cr\u00edtica, n\u00e3o apenas gera\u00e7\u00e3o<\/h3>\n<p>Prompts \u00fateis de revis\u00e3o incluem:<\/p>\n<ul>\n<li>\n<p>Quais requisitos n\u00e3o est\u00e3o representados?<\/p>\n<\/li>\n<li>\n<p>Quais ramifica\u00e7\u00f5es est\u00e3o faltando?<\/p>\n<\/li>\n<li>\n<p>Este diagrama de sequ\u00eancia contradiz a m\u00e1quina de estados?<\/p>\n<\/li>\n<li>\n<p>Alguma depend\u00eancia est\u00e1 sem explica\u00e7\u00e3o?<\/p>\n<\/li>\n<li>\n<p>Existem responsabilidades atribu\u00eddas ao componente errado?<\/p>\n<\/li>\n<li>\n<p>O modelo de implanta\u00e7\u00e3o suporta o requisito de disponibilidade?<\/p>\n<\/li>\n<li>\n<p>Quais transi\u00e7\u00f5es devem se tornar casos de teste?<\/p>\n<\/li>\n<li>\n<p>Quais suposi\u00e7\u00f5es precisam de confirma\u00e7\u00e3o?<\/p>\n<\/li>\n<\/ul>\n<h3>16.4 Falhas comuns de modelagem com IA<\/h3>\n<p>Modelos gerados por IA podem:<\/p>\n<ul>\n<li>\n<p>Inventar atores ou servi\u00e7os<\/p>\n<\/li>\n<li>\n<p>Confundir pap\u00e9is de neg\u00f3cios com componentes t\u00e9cnicos<\/p>\n<\/li>\n<li>\n<p>Adicionar tabelas de banco de dados n\u00e3o suportadas<\/p>\n<\/li>\n<li>\n<p>Assumir comunica\u00e7\u00e3o s\u00edncrona<\/p>\n<\/li>\n<li>\n<p>Omitir caminhos de falha<\/p>\n<\/li>\n<li>\n<p>Representar incorretamente a propriedade<\/p>\n<\/li>\n<li>\n<p>Use relacionamentos UML incorretamente<\/p>\n<\/li>\n<li>\n<p>Produza diagramas que sejam sintaticamente v\u00e1lidos, mas semanticamente incorretos<\/p>\n<\/li>\n<li>\n<p>Misture n\u00edveis de abstra\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Trate palpites como requisitos<\/p>\n<\/li>\n<\/ul>\n<p>O princ\u00edpio fundamental \u00e9:<\/p>\n<blockquote>\n<p>A IA pode gerar um rascunho rapidamente, mas apenas a revis\u00e3o de dom\u00ednio e t\u00e9cnica pode estabelecer se o rascunho est\u00e1 correto.<\/p>\n<\/blockquote>\n<h2>17. Validando UML contra a realidade<\/h2>\n<p>Um diagrama s\u00f3 \u00e9 valioso se permanecer alinhado com o sistema.<\/p>\n<h3>17.1 Valide contra os requisitos<\/h3>\n<p>Verifique:<\/p>\n<ul>\n<li>\n<p>Cada requisito importante aparece em um ou mais modelos?<\/p>\n<\/li>\n<li>\n<p>Os atores e objetivos est\u00e3o corretos?<\/p>\n<\/li>\n<li>\n<p>As regras de neg\u00f3cio est\u00e3o representadas?<\/p>\n<\/li>\n<li>\n<p>As exce\u00e7\u00f5es est\u00e3o inclu\u00eddas?<\/p>\n<\/li>\n<li>\n<p>Os requisitos n\u00e3o funcionais est\u00e3o refletidos onde relevante?<\/p>\n<\/li>\n<\/ul>\n<h3>17.2 Valide contra a implementa\u00e7\u00e3o<\/h3>\n<p>Verifique:<\/p>\n<ul>\n<li>\n<p>Os limites dos componentes correspondem ao c\u00f3digo?<\/p>\n<\/li>\n<li>\n<p>Os participantes da sequ\u00eancia existem?<\/p>\n<\/li>\n<li>\n<p>As interfaces e mensagens est\u00e3o precisas?<\/p>\n<\/li>\n<li>\n<p>As responsabilidades das classes s\u00e3o realistas?<\/p>\n<\/li>\n<li>\n<p>As opera\u00e7\u00f5es ass\u00edncronas est\u00e3o mostradas corretamente?<\/p>\n<\/li>\n<li>\n<p>As transi\u00e7\u00f5es de estado s\u00e3o impostas pela implementa\u00e7\u00e3o?<\/p>\n<\/li>\n<\/ul>\n<h3>17.3 Valide contra as opera\u00e7\u00f5es<\/h3>\n<p>Verifique:<\/p>\n<ul>\n<li>\n<p>O diagrama de implanta\u00e7\u00e3o pode realmente ser implantado?<\/p>\n<\/li>\n<li>\n<p>As conex\u00f5es de rede s\u00e3o realistas?<\/p>\n<\/li>\n<li>\n<p>Os sistemas externos est\u00e3o representados?<\/p>\n<\/li>\n<li>\n<p>Bancos de dados, filas, caches e armazenamento est\u00e3o inclu\u00eddos onde importantes?<\/p>\n<\/li>\n<li>\n<p>As suposi\u00e7\u00f5es de falha e escalabilidade s\u00e3o plaus\u00edveis?<\/p>\n<\/li>\n<\/ul>\n<h3>17.4 Valida\u00e7\u00e3o entre diagramas<\/h3>\n<p>Procure por contradi\u00e7\u00f5es, como:<\/p>\n<ul>\n<li>\n<p>Um caso de uso nomeia um ator ausente no contexto do sistema<\/p>\n<\/li>\n<li>\n<p>Um diagrama de sequ\u00eancia chama um componente n\u00e3o mostrado na arquitetura<\/p>\n<\/li>\n<li>\n<p>Uma m\u00e1quina de estados permite uma transi\u00e7\u00e3o n\u00e3o suportada pelas regras de neg\u00f3cio<\/p>\n<\/li>\n<li>\n<p>Um diagrama de classes mostra um-para-muitos, enquanto o banco de dados imp\u00f5e um-para-um<\/p>\n<\/li>\n<li>\n<p>Um diagrama de implanta\u00e7\u00e3o omite um servi\u00e7o necess\u00e1rio aos diagramas de sequ\u00eancia<\/p>\n<\/li>\n<li>\n<p>Um diagrama de atividade mostra opera\u00e7\u00f5es paralelas, enquanto a implementa\u00e7\u00e3o \u00e9 estritamente sequencial<\/p>\n<\/li>\n<\/ul>\n<p>A consist\u00eancia entre diagramas \u00e9 frequentemente mais importante do que a qualidade art\u00edstica de qualquer diagrama individual.<\/p>\n<h2>18. Rastreabilidade<\/h2>\n<p>A rastreabilidade conecta modelos a requisitos, c\u00f3digo, testes e artefatos operacionais.<\/p>\n<p>Uma cadeia de rastreabilidade simples pode ser:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Requisito\r\n  \u2192 Caso de uso\r\n    \u2192 Fluxo de atividade\r\n      \u2192 Cen\u00e1rio de sequ\u00eancia\r\n        \u2192 Componente\r\n          \u2192 Implementa\u00e7\u00e3o\r\n            \u2192 Teste automatizado\r\n<\/code><\/pre>\n<p>Para um objeto de dom\u00ednio com estado:<\/p>\n<pre class=\"lang-text\"><code data-language=\"text\">Regra de neg\u00f3cio\r\n  \u2192 Transi\u00e7\u00e3o de estado\r\n    \u2192 Condi\u00e7\u00e3o de guarda\r\n      \u2192 Caso de teste\r\n<\/code><\/pre>\n<p>A rastreabilidade n\u00e3o exige conectar cada elemento a todos os outros. Foque em relacionamentos de alto valor:<\/p>\n<ul>\n<li>\n<p>Comportamento cr\u00edtico para seguran\u00e7a<\/p>\n<\/li>\n<li>\n<p>Requisitos regulat\u00f3rios<\/p>\n<\/li>\n<li>\n<p>Controles de seguran\u00e7a<\/p>\n<\/li>\n<li>\n<p>Integra\u00e7\u00f5es importantes<\/p>\n<\/li>\n<li>\n<p>Regras de neg\u00f3cio complexas<\/p>\n<\/li>\n<li>\n<p>Decis\u00f5es arquiteturais de alto risco<\/p>\n<\/li>\n<\/ul>\n<h2>19. Controle de Vers\u00e3o e Manuten\u00e7\u00e3o de Modelos<\/h2>\n<p>Um diagrama \u00e9 documenta\u00e7\u00e3o, e a documenta\u00e7\u00e3o se torna n\u00e3o confi\u00e1vel quando n\u00e3o \u00e9 mantida.<\/p>\n<h3>19.1 Armazene modelos perto do trabalho que descrevem<\/h3>\n<p>Abordagens poss\u00edveis incluem:<\/p>\n<ul>\n<li>\n<p>Arquivos UML no reposit\u00f3rio de origem<\/p>\n<\/li>\n<li>\n<p>Reposit\u00f3rios de documenta\u00e7\u00e3o de arquitetura<\/p>\n<\/li>\n<li>\n<p>Um reposit\u00f3rio de modelagem compartilhado<\/p>\n<\/li>\n<li>\n<p>Diagramas gerados publicados com a documenta\u00e7\u00e3o t\u00e9cnica<\/p>\n<\/li>\n<li>\n<p>Liga\u00e7\u00f5es entre requisitos e elementos do modelo<\/p>\n<\/li>\n<\/ul>\n<h3>19.2 Revisar diagramas com o c\u00f3digo<\/h3>\n<p>Para altera\u00e7\u00f5es de arquitetura ou comportamento, inclua a atualiza\u00e7\u00e3o do diagrama relevante na mesma altera\u00e7\u00e3o da implementa\u00e7\u00e3o, quando vi\u00e1vel.<\/p>\n<p>Os revisores podem ent\u00e3o avaliar:<\/p>\n<ul>\n<li>\n<p>Se a implementa\u00e7\u00e3o corresponde ao projeto pretendido<\/p>\n<\/li>\n<li>\n<p>Se a altera\u00e7\u00e3o do projeto est\u00e1 completa<\/p>\n<\/li>\n<li>\n<p>Se as depend\u00eancias foram alteradas<\/p>\n<\/li>\n<li>\n<p>Se existem novos caminhos de falha<\/p>\n<\/li>\n<li>\n<p>Se as implica\u00e7\u00f5es de implanta\u00e7\u00e3o foram consideradas<\/p>\n<\/li>\n<\/ul>\n<h3>19.3 Preferir menos diagramas autoritativos<\/h3>\n<p>M\u00faltiplos diagramas contradit\u00f3rios s\u00e3o piores do que um diagrama incompleto. Estabele\u00e7a qual diagramo \u00e9 autoritativo para cada preocupa\u00e7\u00e3o.<\/p>\n<p>Por exemplo:<\/p>\n<ul>\n<li>\n<p>Diagrama de componentes: autoritativo para os principais limites de servi\u00e7o<\/p>\n<\/li>\n<li>\n<p>Diagrama de implanta\u00e7\u00e3o: autoritativo para a topologia de produ\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>M\u00e1quina de estados: autoritativa para o ciclo de vida do pedido<\/p>\n<\/li>\n<li>\n<p>Diagrama de classes: autoritativo para as rela\u00e7\u00f5es do dom\u00ednio<\/p>\n<\/li>\n<\/ul>\n<h2>20. Erros comuns de modelagem<\/h2>\n<p><img alt=\"Infogr\u00e1fico detalhando oito erros comuns de modelagem UML, incluindo diagramas excessivamente complexos, mistura de n\u00edveis de abstra\u00e7\u00e3o e ignora\u00e7\u00e3o de cen\u00e1rios de falha.\" class=\"alignnone size-full wp-image-21244\" decoding=\"async\" height=\"1536\" loading=\"lazy\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba26088f655.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba26088f655.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba26088f655-200x300.png 200w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba26088f655-683x1024.png 683w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba26088f655-768x1152.png 768w\" width=\"1024\"\/><\/p>\n<h3>Modelar tudo<\/h3>\n<p>Mais diagramas n\u00e3o produzem automaticamente mais compreens\u00e3o. Modele os riscos e as decis\u00f5es que importam.<\/p>\n<h3>Misturar n\u00edveis de abstra\u00e7\u00e3o<\/h3>\n<p>N\u00e3o coloque fun\u00e7\u00f5es de neg\u00f3cio, classes de programa\u00e7\u00e3o, infraestrutura de nuvem e colunas de banco de dados em um \u00fanico diagrama indiferenciado.<\/p>\n<h3>Usar nomes vagos<\/h3>\n<p>Nomes como \u201cProcessar Dados\u201d ou \u201cTratar Solicita\u00e7\u00e3o\u201d ocultam a inten\u00e7\u00e3o. Prefira nomes que identifiquem um objetivo, responsabilidade ou evento significativo.<\/p>\n<h3>Omitir comportamento de falha<\/h3>\n<p>Modelos apenas de sucesso criam expectativas irreais. Inclua exce\u00e7\u00f5es importantes, tentativas de repeti\u00e7\u00e3o, tempos limite e estados rejeitados.<\/p>\n<h3>Tratar diagramas como permanentes<\/h3>\n<p>A arquitetura evolui. Um diagrama deve ter um propriet\u00e1rio e uma expectativa de manuten\u00e7\u00e3o.<\/p>\n<h3>Exagerar no uso de relacionamentos UML<\/h3>\n<p>Uma associa\u00e7\u00e3o simples \u00e9 frequentemente melhor do que um conjunto tecnicamente preciso, mas confuso, de tipos de relacionamento.<\/p>\n<h3>Tornar os diagramas ileg\u00edveis<\/h3>\n<p>Use m\u00faltiplas visualiza\u00e7\u00f5es focadas em vez de um \u00fanico diagrama enorme. Divida modelos grandes por cen\u00e1rio, subsistema, ciclo de vida ou limite de implanta\u00e7\u00e3o.<\/p>\n<h3>Permitir que ferramentas orientem o design<\/h3>\n<p>Uma ferramenta pode tornar os diagramas mais f\u00e1ceis de desenhar, mas n\u00e3o pode decidir o que deve ser modelado ou se o modelo est\u00e1 correto.<\/p>\n<h2>21. Um Fluxo de Trabalho Pr\u00e1tico de Modelagem<\/h2>\n<p>Uma equipe pode adotar o seguinte fluxo de trabalho para uma funcionalidade ou sistema.<\/p>\n<h3>Etapa 1: Estabelecer o escopo<\/h3>\n<p>Crie uma visualiza\u00e7\u00e3o de contexto leve e identifique:<\/p>\n<ul>\n<li>\n<p>Limite do sistema<\/p>\n<\/li>\n<li>\n<p>Usu\u00e1rios principais<\/p>\n<\/li>\n<li>\n<p>Sistemas externos<\/p>\n<\/li>\n<li>\n<p>Principais objetivos<\/p>\n<\/li>\n<\/ul>\n<h3>Etapa 2: Identificar casos de uso<\/h3>\n<p>Escreva os casos de uso como objetivos dos atores. Agrupe funcionalidades relacionadas e identifique os cen\u00e1rios mais importantes.<\/p>\n<h3>Etapa 3: Modelar o fluxo de trabalho principal<\/h3>\n<p>Use um diagrama de atividade para mostrar:<\/p>\n<ul>\n<li>\n<p>Fluxo normal<\/p>\n<\/li>\n<li>\n<p>Decis\u00f5es<\/p>\n<\/li>\n<li>\n<p>Responsabilidades<\/p>\n<\/li>\n<li>\n<p>Trabalho paralelo<\/p>\n<\/li>\n<li>\n<p>Exce\u00e7\u00f5es<\/p>\n<\/li>\n<\/ul>\n<h3>Etapa 4: Selecionar cen\u00e1rios cr\u00edticos<\/h3>\n<p>Crie diagramas de sequ\u00eancia para as intera\u00e7\u00f5es que s\u00e3o importantes, complexas, arriscadas ou intensivas em integra\u00e7\u00e3o.<\/p>\n<h3>Etapa 5: Definir a estrutura do dom\u00ednio<\/h3>\n<p>Crie um diagrama de classes conceitual ou de n\u00edvel de design para os conceitos envolvidos nesses cen\u00e1rios.<\/p>\n<h3>Etapa 6: Estabelecer limites arquiteturais<\/h3>\n<p>Use um diagrama de componentes para mostrar:<\/p>\n<ul>\n<li>\n<p>M\u00f3dulos ou servi\u00e7os principais<\/p>\n<\/li>\n<li>\n<p>Interfaces<\/p>\n<\/li>\n<li>\n<p>Depend\u00eancias<\/p>\n<\/li>\n<li>\n<p>Propriedade<\/p>\n<\/li>\n<li>\n<p>Pontos de integra\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<h3>Etapa 7: Implanta\u00e7\u00e3o do modelo<\/h3>\n<p>Crie um diagrama de implanta\u00e7\u00e3o quando infraestrutura, seguran\u00e7a, escalabilidade, disponibilidade ou opera\u00e7\u00f5es forem preocupa\u00e7\u00f5es significativas.<\/p>\n<h3>Etapa 8: Ciclos de vida do modelo<\/h3>\n<p>Crie diagramas de m\u00e1quina de estados para entidades cujo comportamento depende do status ou das transi\u00e7\u00f5es permitidas.<\/p>\n<h3>Etapa 9: Validar<\/h3>\n<p>Compare os modelos com:<\/p>\n<ul>\n<li>\n<p>Requisitos<\/p>\n<\/li>\n<li>\n<p>C\u00f3digo existente<\/p>\n<\/li>\n<li>\n<p>Testes<\/p>\n<\/li>\n<li>\n<p>Estruturas de dados<\/p>\n<\/li>\n<li>\n<p>Infraestrutura<\/p>\n<\/li>\n<li>\n<p>Restri\u00e7\u00f5es operacionais<\/p>\n<\/li>\n<\/ul>\n<h3>Etapa 10: Manter<\/h3>\n<p>Atualize os diagramas afetados quando houver mudan\u00e7as no comportamento, interfaces, propriedade ou implanta\u00e7\u00e3o.<\/p>\n<h2>22. Entreg\u00e1vel M\u00ednimo para um Sistema T\u00edpico<\/h2>\n<p>Para uma aplica\u00e7\u00e3o de porte m\u00e9dio, uma base pr\u00e1tica pode ser:<\/p>\n<ul>\n<li>\n<p>Um contexto de sistema ou vis\u00e3o de caso de uso<\/p>\n<\/li>\n<li>\n<p>De dois a cinco diagramas de atividade para processos de neg\u00f3cios importantes<\/p>\n<\/li>\n<li>\n<p>De dois a cinco diagramas de sequ\u00eancia para cen\u00e1rios cr\u00edticos<\/p>\n<\/li>\n<li>\n<p>Um diagrama de classes de dom\u00ednio<\/p>\n<\/li>\n<li>\n<p>Um diagrama de componentes<\/p>\n<\/li>\n<li>\n<p>Um diagrama de implanta\u00e7\u00e3o de produ\u00e7\u00e3o<\/p>\n<\/li>\n<li>\n<p>Diagramas de m\u00e1quina de estados para entidades-chave do ciclo de vida<\/p>\n<\/li>\n<\/ul>\n<p>Isso n\u00e3o \u00e9 uma cota obrigat\u00f3ria. Alguns sistemas podem precisar de menos diagramas; outros podem precisar de mais. O n\u00famero adequado depende da complexidade, risco, tamanho da equipe, regulamenta\u00e7\u00e3o e do custo de mal-entendidos.<\/p>\n<h2>23. Estrat\u00e9gia de Sele\u00e7\u00e3o de Ferramentas<\/h2>\n<p>Diferentes ferramentas atendem a diferentes necessidades de modelagem.<\/p>\n<table>\n<thead>\n<tr>\n<th>Necessidade<\/th>\n<th>Abordagem adequada<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Oficinas com partes interessadas<\/td>\n<td>Ferramenta gr\u00e1fica UML<\/td>\n<\/tr>\n<tr>\n<td>Reposit\u00f3rio formal e rastreabilidade<\/td>\n<td>Plataforma de modelagem visual<\/td>\n<\/tr>\n<tr>\n<td>Documenta\u00e7\u00e3o de arquitetura de propriedade do desenvolvedor<\/td>\n<td>PlantUML ou VPasCode<\/td>\n<\/tr>\n<tr>\n<td>Diagramas revisados em pull requests<\/td>\n<td>Diagramas baseados em texto<\/td>\n<\/tr>\n<tr>\n<td>Rascunho inicial r\u00e1pido<\/td>\n<td>Gera\u00e7\u00e3o assistida por IA<\/td>\n<\/tr>\n<tr>\n<td>Topologia operacional de alta fidelidade<\/td>\n<td>Modelagem gr\u00e1fica ou consciente da infraestrutura<\/td>\n<\/tr>\n<tr>\n<td>Documenta\u00e7\u00e3o de longa dura\u00e7\u00e3o<\/td>\n<td>Fonte controlada por vers\u00e3o mais renderiza\u00e7\u00e3o automatizada<\/td>\n<\/tr>\n<tr>\n<td>Modelagem explorat\u00f3ria<\/td>\n<td>Quadro branco ou diagrama\u00e7\u00e3o leve<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Uma equipe n\u00e3o precisa selecionar uma \u00fanica ferramenta para cada situa\u00e7\u00e3o. Uma abordagem mista pode funcionar bem se a fonte da verdade e as responsabilidades de manuten\u00e7\u00e3o forem claras.<\/p>\n<h2>Conclus\u00e3o<\/h2>\n<p>Uma estrat\u00e9gia UML pr\u00e1tica n\u00e3o se trata de usar todos os tipos de diagramas. Trata-se de selecionar o menor conjunto de vis\u00f5es que torne o sistema compreens\u00edvel.<\/p>\n<p>O n\u00facleo de sete diagramas oferece ampla cobertura:<\/p>\n<ul>\n<li>\n<p>Diagramas de caso de uso explicam objetivos e escopo.<\/p>\n<\/li>\n<li>\n<p>Diagramas de atividade explicam fluxos de trabalho e responsabilidades.<\/p>\n<\/li>\n<li>\n<p>Diagramas de sequ\u00eancia explicam colabora\u00e7\u00e3o e cronologia.<\/p>\n<\/li>\n<li>\n<p>Diagramas de classe explicam estrutura e conceitos do dom\u00ednio.<\/p>\n<\/li>\n<li>\n<p>Diagramas de componente explicam limites arquiteturais.<\/p>\n<\/li>\n<li>\n<p>Diagramas de implanta\u00e7\u00e3o explicam posicionamento em tempo de execu\u00e7\u00e3o e infraestrutura.<\/p>\n<\/li>\n<li>\n<p>Diagramas de m\u00e1quina de estados explicam regras de ciclo de vida.<\/p>\n<\/li>\n<\/ul>\n<p>O Visual Paradigm pode suportar modelagem gr\u00e1fica, rastreabilidade e colabora\u00e7\u00e3o baseada em reposit\u00f3rio. VPasCode e PlantUML tornam os diagramas mais f\u00e1ceis de versionar, revisar, gerar e manter com c\u00f3digo-fonte. A IA pode acelerar o rascunho, a transforma\u00e7\u00e3o e a revis\u00e3o, mas sua sa\u00edda deve ser verificada contra requisitos reais, implementa\u00e7\u00e3o efetiva e restri\u00e7\u00f5es operacionais.<\/p>\n<p>A pr\u00e1tica de modelagem mais forte \u00e9 disciplinada, n\u00e3o exaustiva:<\/p>\n<ol>\n<li>\n<p>Modele decis\u00f5es, riscos e comportamentos que importam.<\/p>\n<\/li>\n<li>\n<p>Escolha o tipo de diagrama que melhor responde \u00e0 pergunta.<\/p>\n<\/li>\n<li>\n<p>Mantenha cada diagrama focado em um \u00fanico n\u00edvel de abstra\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p>Conecte diagramas relacionados por meio de nomes consistentes e rastreabilidade.<\/p>\n<\/li>\n<li>\n<p>Valide os modelos em rela\u00e7\u00e3o aos requisitos, c\u00f3digo, testes e implanta\u00e7\u00e3o.<\/p>\n<\/li>\n<li>\n<p>Armazene e revise os diagramas como artefatos de projeto mant\u00edveis.<\/p>\n<\/li>\n<li>\n<p>Remova diagramas que n\u00e3o oferecem mais valor.<\/p>\n<\/li>\n<\/ol>\n<p class=\"\">A efic\u00e1cia do UML n\u00e3o \u00e9 medida pelo n\u00famero de diagramas produzidos. \u00c9 medida pela capacidade dos modelos de ajudar as pessoas a construir, testar, operar e alterar o sistema com maior confian\u00e7a.<\/p>\n<h2>Refer\u00eancia<\/h2>\n<ol>\n<li><a href=\"https:\/\/guides.visual-paradigm.com\/vpascode-ai-assisted-diagram-as-code-with-plantuml-mermaid-and-graphviz\/\"><strong>VPasCode: Diagrama como C\u00f3digo Assistido por IA com PlantUML, Mermaid e Graphviz<\/strong><\/a>: Guia oficial que cobre o mecanismo de texto-para-diagrama do VPasCode, melhores pr\u00e1ticas de sintaxe e fluxos de trabalho de modifica\u00e7\u00e3o assistidos por IA.<\/li>\n<li><a href=\"https:\/\/guides.visual-paradigm.com\/cn\/docs\/mastering-uml-visual-modeling-in-the-visual-paradigm-ai-ecosystem\/module-1-introduction-to-uml-and-the-ai-transformation\/from-drawing-chores-to-articulation\/\"><strong>De \u201cTarefas de Desenho\u201d para \u201cArticula\u00e7\u00e3o\u201d: Vis\u00e3o Geral do Chatbot de IA<\/strong><\/a>: Explica como o Chatbot de IA do Visual Paradigm converte linguagem natural em UML e outros diagramas conformes aos padr\u00f5es.<\/li>\n<li><a href=\"https:\/\/guides.visual-paradigm.com\/turn-notes-into-ai-diagrams-noteskeep-guide\/\"><strong>Potencialize o Chatbot de IA do Visual Paradigm com a Base de Conhecimento NotesKeep<\/strong><\/a>: Mostra como conectar reposit\u00f3rios NotesKeep como fonte de conhecimento para gera\u00e7\u00e3o de diagramas e s\u00edntese de requisitos impulsionadas por IA.<\/li>\n<li><a href=\"https:\/\/guides.visual-paradigm.com\/cn\/revolutionize-your-mac-uml-modeling-with-visual-paradigm-unleash-the-power-of-professional-tools\/\"><strong>Revolutionize seu Modelagem UML no Mac com o Visual Paradigm<\/strong><\/a>: Vis\u00e3o geral do suporte do Visual Paradigm a UML 2.x, engenharia de c\u00f3digo e rastreabilidade de modelos no macOS.<\/li>\n<li><a href=\"https:\/\/updates.visual-paradigm.com\/releases\/introducing-ai-vpp-chatbot-conversational-ai-for-your-visual-paradigm-projects\/\"><strong>Apresentando o Chatbot AI VPP no Visual Paradigm 18.1<\/strong><\/a>: An\u00fancio de lan\u00e7amento do Chatbot AI VPP que permite aos usu\u00e1rios consultar arquivos de projeto .vpp por meio de linguagem natural.<\/li>\n<li><a href=\"https:\/\/www.vpascode.com\/pricing\/\"><strong>Planos e Pre\u00e7os do VPasCode<\/strong><\/a>: Compara\u00e7\u00e3o de pre\u00e7os e recursos para a camada gratuita do VPasCode e integra\u00e7\u00e3o com as edi\u00e7\u00f5es Online\/Desktop do Visual Paradigm.<\/li>\n<li><a href=\"https:\/\/www.vpascode.com\/tw\/docs\/vpascode-docs\/welcome-to-vpascode\/\"><strong>Bem-vindo ao Visual Paradigm VPasCode: A Mudan\u00e7a para Diagrama como C\u00f3digo<\/strong><\/a>: Apresenta o fluxo de trabalho de Diagrama como C\u00f3digo e o ambiente de renderiza\u00e7\u00e3o unificado para PlantUML, Mermaid e Graphviz.<\/li>\n<li><a href=\"https:\/\/www.vpascode.com\/id\/revolutionize-your-workflow-introducing-native-ai-diagram-generation-in-vpascode\/\"><strong>Gera\u00e7\u00e3o Nativa de Diagramas por IA no Visual Paradigm VPasCode<\/strong><\/a>: Detalha a IA embutida do VPasCode que gera e modifica diagramas PlantUML\/Mermaid\/Graphviz diretamente no editor.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>O UML \u00e9 mais \u00fatil quando melhora a comunica\u00e7\u00e3o e a tomada de decis\u00e3o \u2014 n\u00e3o quando se torna um<\/p>\n","protected":false},"author":11,"featured_media":12317,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","source_url":"","source_h1_title":"","fifu_image_url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"","footnotes":""},"categories":[79,3,117],"tags":[],"asset-category":[],"class_list":["post-12316","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-chatbot","category-unified-modeling-language","category-vpascode"],"source_url":"","source_h1_title":"","fifu_image_url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software - 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\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software - Cibermediano\" \/>\n<meta property=\"og:description\" content=\"O UML \u00e9 mais \u00fatil quando melhora a comunica\u00e7\u00e3o e a tomada de decis\u00e3o \u2014 n\u00e3o quando se torna um\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\" \/>\n<meta property=\"og:site_name\" content=\"Cibermediano\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-28T08:14:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-07T10:49:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png\" \/><meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"941\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png\" \/>\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=\"26 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software\",\"datePublished\":\"2026-09-28T08:14:55+00:00\",\"dateModified\":\"2026-10-07T10:49:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\"},\"wordCount\":6608,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png\",\"articleSection\":[\"AI Chatbot\",\"Unified Modeling Language\",\"VPasCode\"],\"inLanguage\":\"pt-PT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\",\"name\":\"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software - Cibermediano\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png\",\"datePublished\":\"2026-09-28T08:14:55+00:00\",\"dateModified\":\"2026-10-07T10:49:42+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png\",\"width\":1672,\"height\":941},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software\"}]},{\"@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":"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software - 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\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/","og_locale":"pt_PT","og_type":"article","og_title":"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software - Cibermediano","og_description":"O UML \u00e9 mais \u00fatil quando melhora a comunica\u00e7\u00e3o e a tomada de decis\u00e3o \u2014 n\u00e3o quando se torna um","og_url":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/","og_site_name":"Cibermediano","article_published_time":"2026-09-28T08:14:55+00:00","article_modified_time":"2026-10-07T10:49:42+00:00","og_image":[{"url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png","type":"","width":"","height":""},{"width":1672,"height":941,"url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png","type":"image\/png"}],"author":"curtis","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/09\/img_6aba16348678d.png","twitter_misc":{"Escrito por":"curtis","Tempo estimado de leitura":"26 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software","datePublished":"2026-09-28T08:14:55+00:00","dateModified":"2026-10-07T10:49:42+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/"},"wordCount":6608,"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png","articleSection":["AI Chatbot","Unified Modeling Language","VPasCode"],"inLanguage":"pt-PT"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/","url":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/","name":"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software - Cibermediano","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png","datePublished":"2026-09-28T08:14:55+00:00","dateModified":"2026-10-07T10:49:42+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#primaryimage","url":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png","contentUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/09\/img_6aba16348678d.png","width":1672,"height":941},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pt\/minimum-effective-uml-a-practical-guide-to-modeling-software-systems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pt\/"},{"@type":"ListItem","position":2,"name":"UML Eficaz M\u00ednimo: Um Guia Pr\u00e1tico para Modelagem de Sistemas de Software"}]},{"@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\/12316","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=12316"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/12316\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media\/12317"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media?parent=12316"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/categories?post=12316"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/tags?post=12316"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/asset-category?post=12316"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}