{"id":12105,"date":"2026-05-19T16:00:57","date_gmt":"2026-05-19T08:00:57","guid":{"rendered":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/"},"modified":"2026-05-19T16:00:57","modified_gmt":"2026-05-19T08:00:57","slug":"from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/","title":{"rendered":"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia"},"content":{"rendered":"<h2 data-nodeid=\"39774\">Introdu\u00e7\u00e3o<\/h2>\n<p data-nodeid=\"39775\">Na engenharia de software moderna, a capacidade de traduzir requisitos de neg\u00f3cios amb\u00edguos em modelos de sistema precisos e acion\u00e1veis \u00e9 uma habilidade fundamental. A An\u00e1lise Textual serve como uma ponte poderosa entre enunciados de problemas em linguagem natural e diagramas formais UML (Linguagem de Modelagem Unificada). Este estudo de caso demonstra um fluxo de trabalho completo e passo a passo para extrair classes candidatas a partir de uma descri\u00e7\u00e3o real de problema, refin\u00e1-las por meio de crit\u00e9rios sistem\u00e1ticos de rejei\u00e7\u00e3o e evolu\u00ed-las em diagramas de classes e de sequ\u00eancia robustos.<\/p>\n<p data-nodeid=\"39776\">Utilizando o sistema de seguran\u00e7a do estacionamento Saturn International como nosso exemplo pr\u00e1tico, ilustramos como gerentes de produtos, analistas de neg\u00f3cios e arquitetos de software podem aproveitar o recurso de An\u00e1lise Textual do Visual Paradigm para acelerar a descoberta de requisitos, reduzir ambiguidades e produzir artefatos de design sustent\u00e1veis. Seja voc\u00ea que modela sistemas de controle de acesso, fluxos de trabalho empresariais ou aplica\u00e7\u00f5es voltadas para o cliente, a metodologia apresentada aqui fornece uma estrutura reprodut\u00edvel para transformar palavras em modelos funcionais.<\/p>\n<p id=\"napmyKK\"><img alt=\"Transforming Problem Descriptions into Class and Sequence Diagrams\" class=\"alignnone wp-image-18871 size-full\" decoding=\"async\" height=\"507\" loading=\"lazy\" sizes=\"auto, (max-width: 916px) 100vw, 916px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png 916w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846-300x166.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846-768x425.png 768w\" width=\"916\"\/><\/p>\n<hr data-nodeid=\"39777\"\/>\n<h2 data-nodeid=\"39778\">Descri\u00e7\u00e3o do Problema<\/h2>\n<p data-nodeid=\"39779\">A seguir, est\u00e1 a descri\u00e7\u00e3o do problema que ser\u00e1 utilizada neste tutorial. Vamos dar uma olhada.<\/p>\n<table data-nodeid=\"39781\">\n<thead data-nodeid=\"39782\">\n<tr data-nodeid=\"39783\">\n<th data-nodeid=\"39785\">\n<p style=\"text-align: left;\"><em>A gest\u00e3o da Saturn Int. deseja melhorar suas medidas de seguran\u00e7a, tanto para seu pr\u00e9dio quanto no local. Ela gostaria de impedir pessoas que n\u00e3o fazem parte da empresa de usar seu estacionamento.<\/em><\/p>\n<p style=\"text-align: left;\"><em>A Saturn Int. decidiu emitir cart\u00f5es de identidade para todos os funcion\u00e1rios. Cada cart\u00e3o registra o nome, departamento e n\u00famero de um funcion\u00e1rio da empresa, e concede-lhes acesso ao estacionamento da empresa. Os funcion\u00e1rios s\u00e3o solicitados a usar os cart\u00f5es enquanto estiverem no local.<\/em><\/p>\n<p style=\"text-align: left;\">\n<em>H\u00e1 uma barreira e um leitor de cart\u00f5es colocados na entrada do estacionamento. Quando um motorista dirige seu carro para dentro do estacionamento, ele insere seu cart\u00e3o de identidade no leitor de cart\u00f5es. Em seguida, o leitor verifica o n\u00famero do cart\u00e3o para ver se \u00e9 conhecido pelo sistema. Se o n\u00famero for reconhecido, o leitor envia um sinal para acionar a barreira para se levantar. O motorista pode ent\u00e3o dirigir seu carro para dentro do estacionamento.<\/em><\/p>\n<p style=\"text-align: left;\">\n<em>H\u00e1 outra barreira na sa\u00edda do estacionamento, que \u00e9 automaticamente levantada quando um carro deseja sair do estacionamento.<\/em><\/p>\n<p style=\"text-align: left;\">\n<em>Um sinal na entrada exibe \u201cCheio\u201d quando n\u00e3o h\u00e1 vagas no estacionamento. Ele s\u00f3 \u00e9 desligado quando um carro sai.<\/em><\/p>\n<p style=\"text-align: left;\">\n<em>H\u00e1 outro tipo de cart\u00e3o para convidados, que tamb\u00e9m permite acesso ao estacionamento. O cart\u00e3o registra um n\u00famero e a data atual. Esses cart\u00f5es podem ser enviados com anteced\u00eancia ou coletados na recep\u00e7\u00e3o. Todos os cart\u00f5es de convidados devem ser devolvidos \u00e0 recep\u00e7\u00e3o quando o visitante deixar a Saturn Int.<\/em><\/p>\n<\/th>\n<\/tr>\n<\/thead>\n<\/table>\n<hr data-nodeid=\"39787\"\/>\n<h2 data-nodeid=\"39788\">Identifica\u00e7\u00e3o de Classes a partir do Texto<\/h2>\n<h3 data-nodeid=\"39789\">Criando An\u00e1lise Textual<\/h3>\n<ol data-nodeid=\"39790\">\n<li data-nodeid=\"39791\">\n<p data-nodeid=\"39792\">Crie um novo projeto. Selecione<strong data-nodeid=\"40250\">Projeto &gt; Novo<\/strong> no menu principal. Na janela<strong data-nodeid=\"40251\">Novo Projeto<\/strong> nomeie o projeto<em data-nodeid=\"40252\">Tutorial<\/em> e clique em<strong data-nodeid=\"40253\">Criar Projeto em Branco<\/strong> para confirmar.<\/p>\n<\/li>\n<li data-nodeid=\"39793\">\n<p data-nodeid=\"39794\">Crie uma nova An\u00e1lise Textual. Selecione<strong data-nodeid=\"40259\">Diagrama &gt; Novo<\/strong> no menu principal.<\/p>\n<\/li>\n<li data-nodeid=\"39795\">\n<p data-nodeid=\"39796\">Na janela<strong data-nodeid=\"40281\">Novo Diagrama<\/strong> selecione<strong data-nodeid=\"40282\">An\u00e1lise Textual<\/strong>\u00a0e clique\u00a0<strong data-nodeid=\"40283\">Pr\u00f3ximo<\/strong>. Insira\u00a0<em data-nodeid=\"40284\">Melhoria de Seguran\u00e7a<\/em>\u00a0como nome do diagrama e clique\u00a0<strong data-nodeid=\"40285\">OK<\/strong>.<\/p>\n<p data-nodeid=\"39797\"><img alt=\"Create Textual Analysis\" data-nodeid=\"40288\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/01-create-textual-analysis.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"39798\">\n<p data-nodeid=\"39799\">Isso abre o editor de An\u00e1lise Textual. Copie a descri\u00e7\u00e3o do problema fornecida acima e cole-a no editor. A colagem pode ser feita pressionando\u00a0<strong data-nodeid=\"40298\">Ctrl-V<\/strong>\u00a0ou clicando com o bot\u00e3o direito no editor e selecionando\u00a0<strong data-nodeid=\"40299\">Colar<\/strong>.<\/p>\n<p data-nodeid=\"39800\"><img alt=\"Identify candidate class\" data-nodeid=\"40302\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/03-identify-candidate-class.png\"\/><\/p>\n<\/li>\n<\/ol>\n<h3 data-nodeid=\"39801\">Identifica\u00e7\u00e3o de Objetos Candidatos a partir do Texto<\/h3>\n<p data-nodeid=\"39802\">Leia a descri\u00e7\u00e3o do problema para identificar as classes candidatas. Quando uma classe for encontrada, clique com o bot\u00e3o direito sobre o trecho de texto e selecione\u00a0<strong data-nodeid=\"40309\">Adicionar texto como Classe<\/strong>\u00a0no menu suspenso.<\/p>\n<p data-nodeid=\"39803\"><img alt=\"Problem statement pasted\" data-nodeid=\"40312\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/02-problem-statement-pasted.png\"\/><\/p>\n<p data-nodeid=\"39804\">Uma lista de classes candidatas \u00e9 obtida abaixo:<\/p>\n<table data-nodeid=\"39806\">\n<thead data-nodeid=\"39807\">\n<tr data-nodeid=\"39808\">\n<th data-nodeid=\"39810\">Saturn Int.<\/th>\n<th data-nodeid=\"39811\">medidas de seguran\u00e7a<\/th>\n<th data-nodeid=\"39812\">edif\u00edcio<\/th>\n<th data-nodeid=\"39813\">local<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"39818\">\n<tr data-nodeid=\"39819\">\n<td data-nodeid=\"39820\">Pessoas que n\u00e3o fazem parte da empresa<\/td>\n<td data-nodeid=\"39821\">Estacionamento<\/td>\n<td data-nodeid=\"39822\">Cart\u00f5es de identidade<\/td>\n<td data-nodeid=\"39823\">funcion\u00e1rios<\/td>\n<\/tr>\n<tr data-nodeid=\"39824\">\n<td data-nodeid=\"39825\">nome<\/td>\n<td data-nodeid=\"39826\">departamento<\/td>\n<td data-nodeid=\"39827\">n\u00famero<\/td>\n<td data-nodeid=\"39828\">Pessoal da empresa<\/td>\n<\/tr>\n<tr data-nodeid=\"39829\">\n<td data-nodeid=\"39830\">Acesso<\/td>\n<td data-nodeid=\"39831\">barreira<\/td>\n<td data-nodeid=\"39832\">Leitor de cart\u00e3o<\/td>\n<td data-nodeid=\"39833\">motorista<\/td>\n<\/tr>\n<tr data-nodeid=\"39834\">\n<td data-nodeid=\"39835\">N\u00famero do cart\u00e3o<\/td>\n<td data-nodeid=\"39836\">sistema<\/td>\n<td data-nodeid=\"39837\">sinal<\/td>\n<td data-nodeid=\"39838\">sa\u00edda<\/td>\n<\/tr>\n<tr data-nodeid=\"39839\">\n<td data-nodeid=\"39840\">Outro tipo de cart\u00e3o para h\u00f3spedes<\/td>\n<td data-nodeid=\"39841\">recep\u00e7\u00e3o<\/td>\n<td data-nodeid=\"39842\">Cart\u00f5es de h\u00f3spedes<\/td>\n<td data-nodeid=\"39843\">visitante<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"39844\">At\u00e9 agora, o editor de An\u00e1lise Textual dever\u00e1 ter este aspecto:<\/p>\n<p data-nodeid=\"39845\"><img alt=\"Candidate classes identified\" data-nodeid=\"40341\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/04-candidate-classes-identified.png\"\/><\/p>\n<h3 data-nodeid=\"39846\">Rejei\u00e7\u00e3o de Objetos Candidatos<\/h3>\n<p data-nodeid=\"39847\">Nesta se\u00e7\u00e3o, as classes candidatas ser\u00e3o revisadas com base em uma lista de regras de rejei\u00e7\u00e3o. Ao final desta se\u00e7\u00e3o, ser\u00e1 obtida uma lista de modelos de classe.<\/p>\n<p data-nodeid=\"39848\">Agora, revise a lista de classes candidatas com base nas regras de rejei\u00e7\u00e3o abaixo:<\/p>\n<ul data-nodeid=\"39849\">\n<li data-nodeid=\"39850\">\n<p data-nodeid=\"39851\">Duplicatas: se dois ou mais objetos s\u00e3o simplesmente nomes diferentes para a mesma coisa.<\/p>\n<\/li>\n<li data-nodeid=\"39852\">\n<p data-nodeid=\"39853\">Irrelevante: objetos que existem no dom\u00ednio do problema, mas que n\u00e3o s\u00e3o pretendidos.<\/p>\n<\/li>\n<li data-nodeid=\"39854\">\n<p data-nodeid=\"39855\">Vago: quando analisamos palavras cuidadosamente, \u00e0s vezes fica claro que elas n\u00e3o t\u00eam um significado preciso e n\u00e3o podem ser a base de algo \u00fatil no sistema.<\/p>\n<\/li>\n<li data-nodeid=\"39856\">\n<p data-nodeid=\"39857\">Geral: o significado \u00e9 muito amplo.<\/p>\n<\/li>\n<li data-nodeid=\"39858\">\n<p data-nodeid=\"39859\">Atributos: como atributos dos objetos.<\/p>\n<\/li>\n<li data-nodeid=\"39860\">\n<p data-nodeid=\"39861\">Associa\u00e7\u00f5es: na verdade representa as rela\u00e7\u00f5es entre objetos.<\/p>\n<\/li>\n<li data-nodeid=\"39862\">\n<p data-nodeid=\"39863\">Pap\u00e9is: \u00e0s vezes objetos referidos pelo papel que desempenham em uma parte particular do sistema.<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"39864\">A tabela a seguir lista os resultados da revis\u00e3o:<\/p>\n<table data-nodeid=\"39866\">\n<thead data-nodeid=\"39867\">\n<tr data-nodeid=\"39868\">\n<th data-nodeid=\"39870\"><strong data-nodeid=\"40356\">Classe candidata<\/strong><\/th>\n<th data-nodeid=\"39871\"><strong data-nodeid=\"40360\">Aceitar \/ Rejeitar<\/strong><\/th>\n<th data-nodeid=\"39872\"><strong data-nodeid=\"40364\">Motivo da rejei\u00e7\u00e3o<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"39876\">\n<tr data-nodeid=\"39877\">\n<td data-nodeid=\"39878\">Gest\u00e3o Saturn Int.<\/td>\n<td data-nodeid=\"39879\">Rejeitar<\/td>\n<td data-nodeid=\"39880\">Irrelevante para o sistema<\/td>\n<\/tr>\n<tr data-nodeid=\"39881\">\n<td data-nodeid=\"39882\">Medidas de seguran\u00e7a<\/td>\n<td data-nodeid=\"39883\">Rejeitar<\/td>\n<td data-nodeid=\"39884\">vago<\/td>\n<\/tr>\n<tr data-nodeid=\"39885\">\n<td data-nodeid=\"39886\">Edif\u00edcio<\/td>\n<td data-nodeid=\"39887\">Rejeitar<\/td>\n<td data-nodeid=\"39888\">Irrelevante para o sistema<\/td>\n<\/tr>\n<tr data-nodeid=\"39889\">\n<td data-nodeid=\"39890\">Local<\/td>\n<td data-nodeid=\"39891\">Rejeitar<\/td>\n<td data-nodeid=\"39892\">Irrelevante para o sistema<\/td>\n<\/tr>\n<tr data-nodeid=\"39893\">\n<td data-nodeid=\"39894\">Pessoas que n\u00e3o fazem parte da empresa<\/td>\n<td data-nodeid=\"39895\">Rejeitar<\/td>\n<td data-nodeid=\"39896\">Irrelevante para o sistema<\/td>\n<\/tr>\n<tr data-nodeid=\"39897\">\n<td data-nodeid=\"39898\">Estacionamento<\/td>\n<td data-nodeid=\"39899\">Aceitar<\/td>\n<td data-nodeid=\"39900\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39901\">\n<td data-nodeid=\"39902\">Cart\u00f5es de identidade<\/td>\n<td data-nodeid=\"39903\">Aceitar<\/td>\n<td data-nodeid=\"39904\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39905\">\n<td data-nodeid=\"39906\">Funcion\u00e1rios<\/td>\n<td data-nodeid=\"39907\">Rejeitar<\/td>\n<td data-nodeid=\"39908\">Duplicado com &#8216;Funcion\u00e1rios da empresa&#8217;<\/td>\n<\/tr>\n<tr data-nodeid=\"39909\">\n<td data-nodeid=\"39910\">Nome<\/td>\n<td data-nodeid=\"39911\">Rejeitar<\/td>\n<td data-nodeid=\"39912\">Atributo<\/td>\n<\/tr>\n<tr data-nodeid=\"39913\">\n<td data-nodeid=\"39914\">Departamento<\/td>\n<td data-nodeid=\"39915\">Rejeitar<\/td>\n<td data-nodeid=\"39916\">Atributo<\/td>\n<\/tr>\n<tr data-nodeid=\"39917\">\n<td data-nodeid=\"39918\">N\u00famero<\/td>\n<td data-nodeid=\"39919\">Rejeitar<\/td>\n<td data-nodeid=\"39920\">Atributo<\/td>\n<\/tr>\n<tr data-nodeid=\"39921\">\n<td data-nodeid=\"39922\">Funcion\u00e1rios da empresa<\/td>\n<td data-nodeid=\"39923\">Rejeitar<\/td>\n<td data-nodeid=\"39924\">Cargo<\/td>\n<\/tr>\n<tr data-nodeid=\"39925\">\n<td data-nodeid=\"39926\">Acesso<\/td>\n<td data-nodeid=\"39927\">Aceitar<\/td>\n<td data-nodeid=\"39928\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39929\">\n<td data-nodeid=\"39930\">Barreira<\/td>\n<td data-nodeid=\"39931\">Aceitar<\/td>\n<td data-nodeid=\"39932\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39933\">\n<td data-nodeid=\"39934\">Leitor de cart\u00e3o<\/td>\n<td data-nodeid=\"39935\">Aceitar<\/td>\n<td data-nodeid=\"39936\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39937\">\n<td data-nodeid=\"39938\">Motorista<\/td>\n<td data-nodeid=\"39939\">Rejeitar<\/td>\n<td data-nodeid=\"39940\">Fun\u00e7\u00e3o<\/td>\n<\/tr>\n<tr data-nodeid=\"39941\">\n<td data-nodeid=\"39942\">N\u00famero do cart\u00e3o<\/td>\n<td data-nodeid=\"39943\">Rejeitar<\/td>\n<td data-nodeid=\"39944\">Atributo<\/td>\n<\/tr>\n<tr data-nodeid=\"39945\">\n<td data-nodeid=\"39946\">Sistema<\/td>\n<td data-nodeid=\"39947\">Rejeitar<\/td>\n<td data-nodeid=\"39948\">Muito geral<\/td>\n<\/tr>\n<tr data-nodeid=\"39949\">\n<td data-nodeid=\"39950\">Sinal<\/td>\n<td data-nodeid=\"39951\">Aceitar<\/td>\n<td data-nodeid=\"39952\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39953\">\n<td data-nodeid=\"39954\">Sair<\/td>\n<td data-nodeid=\"39955\">Rejeitar<\/td>\n<td data-nodeid=\"39956\">Irrelevante para o sistema<\/td>\n<\/tr>\n<tr data-nodeid=\"39957\">\n<td data-nodeid=\"39958\">Outro tipo de cart\u00e3o para h\u00f3spedes<\/td>\n<td data-nodeid=\"39959\">Rejeitar<\/td>\n<td data-nodeid=\"39960\">Duplicatas com cart\u00f5es de h\u00f3spedes<\/td>\n<\/tr>\n<tr data-nodeid=\"39961\">\n<td data-nodeid=\"39962\">Recep\u00e7\u00e3o<\/td>\n<td data-nodeid=\"39963\">Rejeitar<\/td>\n<td data-nodeid=\"39964\">Irrelevante para o sistema<\/td>\n<\/tr>\n<tr data-nodeid=\"39965\">\n<td data-nodeid=\"39966\">Cart\u00f5es de h\u00f3spedes<\/td>\n<td data-nodeid=\"39967\">Aceitar<\/td>\n<td data-nodeid=\"39968\"><\/td>\n<\/tr>\n<tr data-nodeid=\"39969\">\n<td data-nodeid=\"39970\">visitante<\/td>\n<td data-nodeid=\"39971\">Rejeitar<\/td>\n<td data-nodeid=\"39972\">Fun\u00e7\u00e3o<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"39973\">Para diferenciar as classes candidatas aceitas e rejeitadas, vamos mudar a cor de destaque para verde nas aceitas. Para fazer isso, clique na c\u00e9lula com destaque amarelo e selecione verde no seletor de cores.<\/p>\n<p data-nodeid=\"39974\"><img alt=\"Change highlight color\" data-nodeid=\"40438\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/05-change-highlight-color.png\"\/><\/p>\n<p data-nodeid=\"39975\">Ent\u00e3o agora, a lista restante de classes candidatas \u00e9 obtida da seguinte forma:<\/p>\n<table data-nodeid=\"39977\">\n<thead data-nodeid=\"39978\">\n<tr data-nodeid=\"39979\">\n<th data-nodeid=\"39981\">Estacionamento<\/th>\n<th data-nodeid=\"39982\">Cart\u00f5es de identidade<\/th>\n<th data-nodeid=\"39983\">Acesso<\/th>\n<th data-nodeid=\"39984\">Barreira<\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"39989\">\n<tr data-nodeid=\"39990\">\n<td data-nodeid=\"39991\">Leitor de cart\u00f5es<\/td>\n<td data-nodeid=\"39992\">Sinal<\/td>\n<td data-nodeid=\"39993\">Cart\u00f5es de convidados<\/td>\n<td data-nodeid=\"39994\"><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"39995\">Reformula\u00e7\u00e3o das Classes Identificadas<\/h3>\n<p data-nodeid=\"39996\">Vamos reformular as classes candidatas aceitas para: (1) unificar a forma nominal entre o uso no singular e no plural e (2) refletir com precis\u00e3o o significado do texto extra\u00eddo.<\/p>\n<p data-nodeid=\"39997\">Leia a tabela abaixo para ver as mudan\u00e7as necess\u00e1rias e a explica\u00e7\u00e3o dessas mudan\u00e7as.<\/p>\n<table data-nodeid=\"39999\">\n<thead data-nodeid=\"40000\">\n<tr data-nodeid=\"40001\">\n<th data-nodeid=\"40003\"><strong data-nodeid=\"40455\">Texto extra\u00eddo<\/strong><\/th>\n<th data-nodeid=\"40004\"><strong data-nodeid=\"40459\">Reformular para<\/strong><\/th>\n<th data-nodeid=\"40005\"><strong data-nodeid=\"40463\">Motivo<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"40009\">\n<tr data-nodeid=\"40010\">\n<td data-nodeid=\"40011\">estacionamento<\/td>\n<td data-nodeid=\"40012\"><\/td>\n<td data-nodeid=\"40013\"><\/td>\n<\/tr>\n<tr data-nodeid=\"40014\">\n<td data-nodeid=\"40015\">cart\u00f5es de identidade<\/td>\n<td data-nodeid=\"40016\">cart\u00e3o de funcion\u00e1rio<\/td>\n<td data-nodeid=\"40017\">\u201cCart\u00f5es de identidade\u201d significa literalmente todos os tipos de cart\u00e3o, mas de acordo com o trecho, a palavra \u201ccart\u00e3o de identidade\u201d vem da express\u00e3o nominal \u201ccart\u00f5es de identidade para todos os funcion\u00e1rios\u201d, ent\u00e3o na verdade significa cart\u00e3o de funcion\u00e1rio. Vamos reformul\u00e1-lo para evitar confus\u00e3o.<\/td>\n<\/tr>\n<tr data-nodeid=\"40018\">\n<td data-nodeid=\"40019\">acesso<\/td>\n<td data-nodeid=\"40020\"><\/td>\n<td data-nodeid=\"40021\"><\/td>\n<\/tr>\n<tr data-nodeid=\"40022\">\n<td data-nodeid=\"40023\">barreira<\/td>\n<td data-nodeid=\"40024\"><\/td>\n<td data-nodeid=\"40025\"><\/td>\n<\/tr>\n<tr data-nodeid=\"40026\">\n<td data-nodeid=\"40027\">leitor de cart\u00f5es<\/td>\n<td data-nodeid=\"40028\"><\/td>\n<td data-nodeid=\"40029\"><\/td>\n<\/tr>\n<tr data-nodeid=\"40030\">\n<td data-nodeid=\"40031\">sinal<\/td>\n<td data-nodeid=\"40032\"><\/td>\n<td data-nodeid=\"40033\"><\/td>\n<\/tr>\n<tr data-nodeid=\"40034\">\n<td data-nodeid=\"40035\">sa\u00edda<\/td>\n<td data-nodeid=\"40036\"><\/td>\n<td data-nodeid=\"40037\"><\/td>\n<\/tr>\n<tr data-nodeid=\"40038\">\n<td data-nodeid=\"40039\">cart\u00f5es de convidados<\/td>\n<td data-nodeid=\"40040\">cart\u00e3o de convidado<\/td>\n<td data-nodeid=\"40041\">Mudar para usar o substantivo no singular para torn\u00e1-lo compat\u00edvel com as outras palavras<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"40042\">Atualize o nome das classes candidatas conforme necess\u00e1rio:<\/p>\n<p data-nodeid=\"40043\"><img alt=\"Renaming candidate\" data-nodeid=\"40490\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/06-renaming-candidate.png\"\/><\/p>\n<h3 data-nodeid=\"40044\">Criando Elementos do Modelo de Classe a partir do Texto<\/h3>\n<p data-nodeid=\"40045\">Voc\u00ea identificou uma lista de classes. Para us\u00e1-las na constru\u00e7\u00e3o do modelo, voc\u00ea precisa convert\u00ea-las de palavras em elementos do modelo.<\/p>\n<ol data-nodeid=\"40046\">\n<li data-nodeid=\"40047\">\n<p data-nodeid=\"40048\">Selecione as sete classes na tabela. Para realizar uma sele\u00e7\u00e3o m\u00faltipla, mantenha pressionada a tecla\u00a0<strong data-nodeid=\"40498\">Ctrl<\/strong>\u00a0e clique nas linhas uma a uma.<\/p>\n<\/li>\n<li data-nodeid=\"40049\">\n<p data-nodeid=\"40050\">Clique com o bot\u00e3o direito na sua sele\u00e7\u00e3o e selecione\u00a0<strong data-nodeid=\"40504\">Criar Elemento do Modelo<\/strong>\u00a0no menu suspenso.<\/p>\n<p data-nodeid=\"40051\"><img alt=\"Create element\" data-nodeid=\"40507\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/07-create-elemenet.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40052\">\n<p data-nodeid=\"40053\">Voc\u00ea \u00e9 solicitado a visualizar os elementos criados em um diagrama. Mantenha a op\u00e7\u00e3o\u00a0<strong data-nodeid=\"40521\">Criar novo diagrama<\/strong>\u00a0selecionada. Renomeie o diagrama de classe para\u00a0<em data-nodeid=\"40522\">Sistema de Estacionamento<\/em>\u00a0e clique em\u00a0<strong data-nodeid=\"40523\">Criar<\/strong>.<\/p>\n<p data-nodeid=\"40054\"><img alt=\"Visualize classes into class diagram\" data-nodeid=\"40526\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/08-visualize-classes-into-class-diagram.png\"\/><br \/>\nIsso cria um diagrama de classe.<br \/>\n<img alt=\"Class diagram formed\" data-nodeid=\"40532\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/09-class-diagram-formed.png\"\/><\/p>\n<\/li>\n<\/ol>\n<hr data-nodeid=\"40055\"\/>\n<h2 data-nodeid=\"40056\">Desenvolvendo o Modelo de Classe \u2013 Identificar Relacionamentos Estruturais<\/h2>\n<p data-nodeid=\"40057\">Voc\u00ea obteve um conjunto de classes visualizadas em um diagrama de classe. Agora, identifique seus relacionamentos estruturais conectando-as com conectores de relacionamento como associa\u00e7\u00e3o, generaliza\u00e7\u00e3o e depend\u00eancia. A figura abaixo mostra o resultado. Durante o processo, novas classes podem ser adicionadas, como a adi\u00e7\u00e3o da classe \u201ccart\u00e3o\u201d neste exemplo como uma superclasse das subclasses cart\u00e3o de funcion\u00e1rio e cart\u00e3o de convidado.<\/p>\n<p data-nodeid=\"40058\"><img alt=\"Class diagram updated\" data-nodeid=\"40543\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/10-class-diagram-updated.png\"\/><\/p>\n<hr data-nodeid=\"40059\"\/>\n<h2 data-nodeid=\"40060\">Desenvolvendo o Modelo de Intera\u00e7\u00e3o \u2013 Identificar Atributos e Opera\u00e7\u00f5es<\/h2>\n<p data-nodeid=\"40061\">Diagramas de sequ\u00eancia s\u00e3o criados para visualizar as intera\u00e7\u00f5es entre os objetos, ou seja, as inst\u00e2ncias das classes identificadas acima. Durante esse processo, atributos e opera\u00e7\u00f5es ser\u00e3o identificados, o que, por sua vez, torna o modelo de classe completo. Vamos criar um diagrama de sequ\u00eancia para visualizar o caso em que um funcion\u00e1rio da empresa dirige seu carro para o estacionamento.<\/p>\n<ol data-nodeid=\"40062\">\n<li data-nodeid=\"40063\">\n<p data-nodeid=\"40064\">Crie um diagrama de sequ\u00eancia. Selecione\u00a0<strong data-nodeid=\"40553\">Diagrama &gt; Novo<\/strong>\u00a0no menu principal.<\/p>\n<\/li>\n<li data-nodeid=\"40065\">\n<p data-nodeid=\"40066\">Na janela\u00a0<strong data-nodeid=\"40583\">Novo Diagrama<\/strong>\u00a0janela, selecione\u00a0<strong data-nodeid=\"40584\">Diagrama de Sequ\u00eancia<\/strong>\u00a0e clique em\u00a0<strong data-nodeid=\"40585\">Pr\u00f3ximo<\/strong>. Selecione\u00a0<strong data-nodeid=\"40586\">Em branco<\/strong>como modelo e clique em<strong data-nodeid=\"40587\">Pr\u00f3ximo<\/strong>. Insira<em data-nodeid=\"40588\">Estacionamento de carro (com cart\u00e3o de funcion\u00e1rio)<\/em>como nome do diagrama e clique em<strong data-nodeid=\"40589\">OK<\/strong>.<\/p>\n<p data-nodeid=\"40067\"><img alt=\"Create sequence diagram\" data-nodeid=\"40592\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/11-create-sequence-diagram.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40068\">\n<p data-nodeid=\"40069\">O cen\u00e1rio come\u00e7a com um motorista que insere seu cart\u00e3o de funcion\u00e1rio no leitor de cart\u00f5es. Vamos criar um ator<em data-nodeid=\"40604\">Funcion\u00e1rio<\/em>. Para criar um ator, selecione o<strong data-nodeid=\"40605\">Ator<\/strong>ferramenta na barra de ferramentas do diagrama e arraste-o para o diagrama.<\/p>\n<p data-nodeid=\"40070\"><img alt=\"Create actor\" data-nodeid=\"40608\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/12-create-actor.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40071\">\n<p data-nodeid=\"40072\">Precisamos mostrar o leitor de cart\u00f5es como um objeto. Em vez de criar uma linha de vida, vamos criar uma inst\u00e2ncia de objeto da classe<em data-nodeid=\"40630\">leitor de cart\u00f5es<\/em>classe. Existem v\u00e1rias maneiras de fazer isso. Uma delas \u00e9 reutilizar a classe por meio do<strong data-nodeid=\"40631\">Explorador de Modelo<\/strong>. Clique na<strong data-nodeid=\"40632\">Explorador de Modelo<\/strong>aba fixada \u00e0 esquerda da janela do aplicativo (ou selecione<strong data-nodeid=\"40633\">Visualizar &gt; Pain\u00e9is &gt; Explorador de Modelo<\/strong>se a aba n\u00e3o estiver presente). Em seguida, arraste a classe leitor de cart\u00f5es para o diagrama.<\/p>\n<p data-nodeid=\"40073\"><img alt=\"Drag reader class onto diagram\" data-nodeid=\"40636\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/13-drag-reader-class-onto-diagram.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40074\">\n<p data-nodeid=\"40075\">Selecione<strong data-nodeid=\"40642\">Linha de Vida<\/strong>para criar quando for solicitado a escolher um tipo.<\/p>\n<\/li>\n<li data-nodeid=\"40076\">\n<p data-nodeid=\"40077\">A linha de vida \u00e9 automaticamente nomeada como &#8216;leitor de cart\u00f5es&#8217;, seguindo o nome do classificador. Como o nome \u00e9 opcional, vamos remov\u00ea-lo. Isso tamb\u00e9m torna o diagrama mais f\u00e1cil de ler.<\/p>\n<p data-nodeid=\"40078\"><img alt=\"Card reader lifeline created\" data-nodeid=\"40652\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/14-card-reader-lifeline-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40079\">\n<p data-nodeid=\"40080\">Conecte<em data-nodeid=\"40674\">funcion\u00e1rio<\/em>com<em data-nodeid=\"40675\">: leitor de cart\u00f5es<\/em>. Mova o ponteiro do mouse sobre o ator<em data-nodeid=\"40676\">funcion\u00e1rio<\/em>. Pressione no\u00a0<strong data-nodeid=\"40677\">Cat\u00e1logo de Recursos<\/strong>\u00a0bot\u00e3o e arraste-o para a linha de vida\u00a0<em data-nodeid=\"40678\">: leitor de cart\u00e3o<\/em>.<\/p>\n<p data-nodeid=\"40081\"><img alt=\"To create sequence message\" data-nodeid=\"40681\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/15-to-create-seq-message.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40082\">\n<p data-nodeid=\"40083\">Soltar o ponteiro do mouse e selecionar\u00a0<strong data-nodeid=\"40691\">Mensagem<\/strong>\u00a0de\u00a0<strong data-nodeid=\"40692\">Cat\u00e1logo de Recursos<\/strong>.<\/p>\n<p data-nodeid=\"40084\"><img alt=\"Selecting sequence message to create\" data-nodeid=\"40695\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/16-selecting-sequence-message-to-create.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40085\">\n<p data-nodeid=\"40086\">Insira\u00a0<em data-nodeid=\"40701\">insira o cart\u00e3o do funcion\u00e1rio<\/em>\u00a0para ser o nome da mensagem.<\/p>\n<p data-nodeid=\"40087\"><img alt=\"Sequence message created\" data-nodeid=\"40704\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/17-sequence-message-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40088\">\n<p data-nodeid=\"40089\">Como dispositivo de entrada, o leitor de cart\u00e3o recebe o cart\u00e3o e depois solicita ao sistema que o verifique. Vamos criar uma linha de vida para o sistema. Como n\u00e3o temos essa classe, criamos a linha de vida diretamente. Arraste\u00a0<strong data-nodeid=\"40718\">Linha de vida<\/strong>\u00a0da barra de ferramentas do diagrama para o diagrama. Nomeie a linha de vida\u00a0<em data-nodeid=\"40719\">sistema de estacionamento<\/em>.<\/p>\n<p data-nodeid=\"40090\"><img alt=\"Create car parking system lifeline\" data-nodeid=\"40722\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/18-create-car-parking-system-lifeline.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40091\">\n<p data-nodeid=\"40092\">Crie uma mensagem\u00a0<em data-nodeid=\"40736\">verificar cart\u00e3o()<\/em>\u00a0de\u00a0<em data-nodeid=\"40737\">: leitor de cart\u00e3o<\/em>\u00a0para\u00a0<em data-nodeid=\"40738\">sistema de estacionamento<\/em>.<\/p>\n<p data-nodeid=\"40093\"><img alt=\"Verify card message created\" data-nodeid=\"40741\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/19-verify-card-message-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40094\">\n<p data-nodeid=\"40095\">H\u00e1 dois resultados poss\u00edveis: sucesso ou falha. Vamos modelar ambos os casos. Em um diagrama de sequ\u00eancia UML, um fragmento combinado alternativo pode ser usado para modelar m\u00faltios fluxos poss\u00edveis. Crie um fragmento combinado alternativo que cubra o ator e as linhas de vida. Vamos redimension\u00e1-lo para cobrir mais linhas de vida \u00e0 medida que mais e mais linhas de vida forem adicionadas.<\/p>\n<p data-nodeid=\"40096\"><img alt=\"Alternative combined fragment created\" data-nodeid=\"40745\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/20-alternative-combined-fragment-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40097\">\n<p data-nodeid=\"40098\">Se for bem-sucedido, o sistema carregar\u00e1 o registro do cart\u00e3o do funcion\u00e1rio. Crie uma mensagem auto\u00a0<em data-nodeid=\"40767\">carregar funcion\u00e1rio()<\/em>. Para fazer isso, mova o ponteiro do mouse sobre\u00a0<em data-nodeid=\"40768\">sistema de estacionamento de carros<\/em>\u00a0e clique em\u00a0<strong data-nodeid=\"40769\">Cat\u00e1logo de Recursos<\/strong>, depois selecione\u00a0<strong data-nodeid=\"40770\">Mensagem Pr\u00f3pria -&gt; Linha de Vida<\/strong>\u00a0de\u00a0<strong data-nodeid=\"40771\">Cat\u00e1logo de Recursos<\/strong>. Digite o nome da mensagem pr\u00f3pria.<\/p>\n<p data-nodeid=\"40099\"><img alt=\"Create self message\" data-nodeid=\"40774\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/21-create-self-message.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40100\">\n<p data-nodeid=\"40101\">Siga a etapa 4 para visualizar a classe\u00a0<em data-nodeid=\"40780\">cart\u00e3o do funcion\u00e1rio<\/em>\u00a0como uma linha de vida. Mais uma vez, remova o seu nome.<\/p>\n<p data-nodeid=\"40102\"><img alt=\"Staff card class visualized\" data-nodeid=\"40783\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/22-staff-card-class-visualized.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40103\">\n<p data-nodeid=\"40104\">Vamos supor que o \u00faltimo hor\u00e1rio de acesso ser\u00e1 definido como o registro do cart\u00e3o do funcion\u00e1rio. Represente isso por uma mensagem de defini\u00e7\u00e3o\u00a0<em data-nodeid=\"40791\">definir \u00faltimo acesso()<\/em>.<\/p>\n<p data-nodeid=\"40105\"><img alt=\"Sequence message created\" data-nodeid=\"40794\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/23-sequence-message-created-300x297.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40106\">\n<p data-nodeid=\"40107\">Um registro de acesso seria criado. Vamos visualizar o\u00a0<em data-nodeid=\"40804\">acesso<\/em>\u00a0classe no diagrama como uma linha de vida, e depois conecte-a com uma mensagem de cria\u00e7\u00e3o. N\u00e3o se esque\u00e7a de ampliar o fragmento combinado alternativo para cobrir a linha de vida.<\/p>\n<p data-nodeid=\"40108\"><img alt=\"Create message created\" data-nodeid=\"40807\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/24-create-message-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40109\">\n<p data-nodeid=\"40110\">Um sinal tamb\u00e9m seria criado para acionar a barreira para se levantar. Vamos visualizar a\u00a0<em data-nodeid=\"40815\">sinal<\/em>\u00a0classe no diagrama e depois conecte-a com uma mensagem de cria\u00e7\u00e3o. At\u00e9 agora, o seu diagrama de sequ\u00eancia dever\u00e1 se parecer com a figura abaixo.<\/p>\n<p data-nodeid=\"40111\"><img alt=\"Sequence diagram updated\" data-nodeid=\"40818\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/25-sequence-diagram-updated.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40112\">\n<p data-nodeid=\"40113\">Levante a barreira. Visualize a\u00a0<em data-nodeid=\"40832\">barreira<\/em>\u00a0classe como uma linha de vida e conecte-a com uma\u00a0<em data-nodeid=\"40833\">levantar()<\/em>\u00a0mensagem. Aqui nomeamos a linha de vida\u00a0<em data-nodeid=\"40834\">entrada<\/em>\u00a0porque h\u00e1 uma barreira tanto na entrada quanto na sa\u00edda, enquanto estamos nos referindo \u00e0 que est\u00e1 na entrada neste diagrama.<\/p>\n<p data-nodeid=\"40114\"><img alt=\"Barrier class visualized\" data-nodeid=\"40837\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/26-barrier-class-visualized.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40115\">\n<p data-nodeid=\"40116\">Por fim, solicite ao leitor de cart\u00e3o para exibir uma mensagem indicando a verifica\u00e7\u00e3o bem-sucedida do cart\u00e3o do funcion\u00e1rio. Crie uma mensagem de sequ\u00eancia mostrar mensagem de sucesso que conecta entre\u00a0<em data-nodeid=\"40847\">sistema de estacionamento de carros<\/em>\u00a0e\u00a0<em data-nodeid=\"40848\">: leitor de cart\u00e3o<\/em>.<\/p>\n<p data-nodeid=\"40117\"><img alt=\"Show success message\" data-nodeid=\"40851\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/27-show-success-message.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40118\">\n<p data-nodeid=\"40119\">O que acontecer\u00e1 quando o cart\u00e3o n\u00e3o puder ser verificado? Vamos modelar isso na parte inferior do fragmento combinado alt. Digamos que o sistema solicitar\u00e1 ao leitor de cart\u00e3o que exiba uma mensagem de falha na verifica\u00e7\u00e3o. Crie essa mensagem no diagrama.<\/p>\n<p data-nodeid=\"40120\"><img alt=\"Show fail message\" data-nodeid=\"40859\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/28-show-fail-message.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40121\">\n<p data-nodeid=\"40122\">Independentemente do sucesso ou falha, o cart\u00e3o do funcion\u00e1rio ser\u00e1 ejetado ap\u00f3s o processo de verifica\u00e7\u00e3o. Vamos criar a mensagem de sequ\u00eancia<em data-nodeid=\"40875\">ejetar cart\u00e3o<\/em>\u00a0que conecta o\u00a0<em data-nodeid=\"40876\">sistema de estacionamento<\/em>\u00a0e o\u00a0<em data-nodeid=\"40877\">: leitor de cart\u00e3o<\/em>.<\/p>\n<p data-nodeid=\"40123\"><img alt=\"Eject card message created\" data-nodeid=\"40880\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/29-eject-card-message-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40124\">\n<p data-nodeid=\"40125\">Por fim, crie uma mensagem de retorno com o cart\u00e3o devolvido a partir do<em data-nodeid=\"40894\">: leitor de cart\u00e3o<\/em>\u00a0para o\u00a0<em data-nodeid=\"40895\">ator<\/em>\u00a0funcion\u00e1rio. Para fazer isso, crie a mensagem e, em seguida, clique com o bot\u00e3o direito nela e selecione\u00a0<strong data-nodeid=\"40896\">Tipo (N\u00e3o Especificado) &gt; Resposta<\/strong>\u00a0no menu suspenso.<\/p>\n<p data-nodeid=\"40126\"><img alt=\"Card returned message created\" data-nodeid=\"40899\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/30-card-returned-message-created.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40127\">\n<p data-nodeid=\"40128\">Os dois compartimentos do fragmento combinado alt. s\u00e3o conhecidos como operandos. Insira as condi\u00e7\u00f5es dos operandos como restri\u00e7\u00f5es. Clique com o bot\u00e3o direito na etiqueta\u00a0<strong data-nodeid=\"40917\">alt<\/strong>\u00a0no canto superior esquerdo do fragmento combinado e selecione\u00a0<strong data-nodeid=\"40918\">Operando &gt; Gerenciar Operandos<\/strong>\u00a0no menu suspenso. Na janela suspenso, defina a restri\u00e7\u00e3o dos dois operandos como\u00a0<em data-nodeid=\"40919\">Cart\u00e3o aceito<\/em>\u00a0e\u00a0<em data-nodeid=\"40920\">Cart\u00e3o rejeitado<\/em>\u00a0respectivamente.<\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"40129\"><img alt=\"Manage operand\" data-nodeid=\"40923\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/31-manage-operand.png\"\/><\/p>\n<ol data-nodeid=\"40130\" start=\"24\">\n<li data-nodeid=\"40131\">\n<p data-nodeid=\"40132\">Vamos criar opera\u00e7\u00f5es a partir das mensagens de sequ\u00eancia. Primeiro, crie uma classe a partir da linha de vida do sistema de estacionamento. Clique com o bot\u00e3o direito na linha de vida e selecione Selecionar\u00a0<strong data-nodeid=\"40934\">Classe &gt; Criar Classe \u201csistema de estacionamento\u201d<\/strong>\u00a0no menu suspenso.<\/p>\n<p data-nodeid=\"40133\"><img alt=\"Create class from lifeline\" data-nodeid=\"40937\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/32-create-class-from-lifeline.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40134\">\n<p data-nodeid=\"40135\">Consulte a imagem a seguir. Para cada um dos conectores destacados, clique com o bot\u00e3o direito nele e selecione\u00a0<strong data-nodeid=\"40943\">Digite &gt; Chamada &gt; Criar Opera\u00e7\u00e3o<\/strong>do menu suspenso.<\/p>\n<p data-nodeid=\"40136\"><img alt=\"Create operations\" data-nodeid=\"40946\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/33-create-operations.png\"\/><\/p>\n<\/li>\n<li data-nodeid=\"40137\">\n<p data-nodeid=\"40138\">Volte para o diagrama de classe. As opera\u00e7\u00f5es s\u00e3o apresentadas automaticamente no modelo de classe.<\/p>\n<p data-nodeid=\"40139\"><img alt=\"Class model updated\" data-nodeid=\"40950\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/34-class-model-updated.png\"\/><\/p>\n<\/li>\n<\/ol>\n<p data-nodeid=\"40140\">Ao criar diagramas de sequ\u00eancia cada vez mais para diferentes cen\u00e1rios, o modelo de classe ser\u00e1 gradualmente enriquecido com a inclus\u00e3o de todas as opera\u00e7\u00f5es e atributos que o sistema precisa.<\/p>\n<hr data-nodeid=\"40141\"\/>\n<h2 data-nodeid=\"40142\">Conclus\u00e3o<\/h2>\n<p data-nodeid=\"40143\">Transformar requisitos em linguagem natural em modelos UML precisos \u00e9 tanto uma arte quanto uma ci\u00eancia. Este estudo de caso demonstra que, com uma abordagem disciplinada \u2014 come\u00e7ando com a An\u00e1lise Textual, aplicando crit\u00e9rios sistem\u00e1ticos de rejei\u00e7\u00e3o, reformulando para clareza e refinando iterativamente por meio de diagramas de classe e de sequ\u00eancia \u2014 equipes conseguem transformar enunciados problem\u00e1ticos amb\u00edguos em projetos de sistema robustos e implement\u00e1veis.<\/p>\n<p data-nodeid=\"40144\">O exemplo do estacionamento Saturn International ilustra como at\u00e9 requisitos aparentemente simples cont\u00eam camadas de complexidade: m\u00faltiplos tipos de atores, fluxos condicionais, intera\u00e7\u00f5es com hardware e gerenciamento de estado. Ao aproveitar o ambiente integrado de modelagem do Visual Paradigm, profissionais podem manter a rastreabilidade desde o texto inicial at\u00e9 o c\u00f3digo final, garantir consist\u00eancia entre os diagramas e colaborar eficazmente entre stakeholders t\u00e9cnicos e n\u00e3o t\u00e9cnicos.<\/p>\n<p data-nodeid=\"40145\">Principais aprendizados para profissionais:<\/p>\n<ul data-nodeid=\"40146\">\n<li data-nodeid=\"40147\">\n<p data-nodeid=\"40148\">Comece com a extra\u00e7\u00e3o ampla de candidatos, depois refine por meio de regras expl\u00edcitas de rejei\u00e7\u00e3o<\/p>\n<\/li>\n<li data-nodeid=\"40149\">\n<p data-nodeid=\"40150\">Use conven\u00e7\u00f5es de nomea\u00e7\u00e3o singulares e consistentes para reduzir ambiguidades<\/p>\n<\/li>\n<li data-nodeid=\"40151\">\n<p data-nodeid=\"40152\">Aproveite os diagramas de sequ\u00eancia para descobrir opera\u00e7\u00f5es e atributos ocultos<\/p>\n<\/li>\n<li data-nodeid=\"40153\">\n<p data-nodeid=\"40154\">Trate a modelagem como um processo iterativo \u2014 cada cen\u00e1rio enriquece o modelo de classe<\/p>\n<\/li>\n<li data-nodeid=\"40155\">\n<p data-nodeid=\"40156\">Mantenha a rastreabilidade bidirecional entre requisitos, modelos e implementa\u00e7\u00e3o<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"40157\">Seja voc\u00ea quem est\u00e1 projetando sistemas de controle de acesso, fluxos de trabalho empresariais ou aplica\u00e7\u00f5es voltadas para o cliente, a metodologia apresentada aqui fornece uma estrutura repet\u00edvel e escalon\u00e1vel para transformar palavras em modelos de software funcionais.<\/p>\n<hr data-nodeid=\"40158\"\/>\n<h2>Refer\u00eancias<\/h2>\n<ol>\n<li data-nodeid=\"40162\"><a data-nodeid=\"40969\" href=\"https:\/\/www.visual-paradigm.com\/features\/uml-tool\/\"><strong data-nodeid=\"40970\">Recursos da Ferramenta UML do Visual Paradigm<\/strong><\/a>: Vis\u00e3o geral abrangente das capacidades de modelagem UML do Visual Paradigm, incluindo suporte para todos os 14 tipos de diagramas UML 2.x e recursos de modelagem assistida por IA.<\/li>\n<li data-nodeid=\"40164\"><a data-nodeid=\"40978\" href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/overview-of-the-14-uml-diagram-types\/\"><strong data-nodeid=\"40979\">Vis\u00e3o geral dos 14 tipos de diagramas UML<\/strong><\/a>: Guia detalhado que explica os diagramas UML estruturais e comportamentais e seus casos de uso apropriados no design de software.<\/li>\n<li data-nodeid=\"40166\"><a data-nodeid=\"40985\" href=\"https:\/\/forums.visual-paradigm.com\/uploads\/default\/original\/1X\/440a9af6f993509a4a7568f49d6d7df330edabed.pdf\"><strong data-nodeid=\"40986\">Guia do Usu\u00e1rio do Visual Paradigm PDF<\/strong><\/a>: Documenta\u00e7\u00e3o oficial que abrange instala\u00e7\u00e3o, navega\u00e7\u00e3o na interface e fluxos principais de modelagem no Visual Paradigm.<\/li>\n<li data-nodeid=\"40168\"><a data-nodeid=\"40992\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/94_umlmodeling.html\"><strong data-nodeid=\"40993\">Documenta\u00e7\u00e3o de Modelagem UML<\/strong><\/a>: Instru\u00e7\u00f5es passo a passo para criar, editar e gerenciar diagramas UML no ambiente do Visual Paradigm.<\/li>\n<li data-nodeid=\"40170\"><a data-nodeid=\"40999\" href=\"https:\/\/www.figma.com\/resource-library\/what-is-a-uml-diagram\/\"><strong data-nodeid=\"41000\">O que \u00e9 um diagrama UML?<\/strong><\/a>: Introdu\u00e7\u00e3o amig\u00e1vel para iniciantes sobre conceitos UML, tipos de diagramas e sua fun\u00e7\u00e3o na arquitetura de software e na comunica\u00e7\u00e3o de design.<\/li>\n<li data-nodeid=\"40172\"><a data-nodeid=\"41006\" href=\"https:\/\/www.visual-paradigm.com\/solution\/usecase\/capturerequirements\/\"><strong data-nodeid=\"41007\">Capture Requisitos com Casos de Uso<\/strong><\/a>: Orienta\u00e7\u00e3o pr\u00e1tica sobre o uso de diagramas de casos de uso e an\u00e1lise textual para identificar, documentar e validar requisitos do sistema.<\/li>\n<li data-nodeid=\"40174\"><a data-nodeid=\"41013\" href=\"https:\/\/www.visual-paradigm.com\/features\/ai-assisted-uml-class-diagram-generator\/\"><strong data-nodeid=\"41014\">Gerador de Diagramas de Classe UML com Assist\u00eancia de IA<\/strong><\/a>: Vis\u00e3o geral dos recursos com base em IA do Visual Paradigm que geram automaticamente diagramas de classe a partir de descri\u00e7\u00f5es em linguagem natural.<\/li>\n<li data-nodeid=\"40176\"><a data-nodeid=\"41022\" href=\"https:\/\/www.youtube.com\/watch?v=dLNpf0sa03I\"><strong data-nodeid=\"41023\">Tutorial de PlantUML para Diagramas Visuais<\/strong><\/a>: Tutorial em v\u00eddeo que demonstra como converter c\u00f3digo de script PlantUML em diagramas UML interativos e edit\u00e1veis dentro do Visual Paradigm.<\/li>\n<li data-nodeid=\"40178\"><a data-nodeid=\"41029\" href=\"https:\/\/www.visual-paradigm.com\/guide\/uml-unified-modeling-language\/what-is-uml\/\"><strong data-nodeid=\"41030\">O que \u00e9 UML?<\/strong><\/a>: Explica\u00e7\u00e3o fundamental dos princ\u00edpios da Linguagem de Modelagem Unificada, sua hist\u00f3ria e sua import\u00e2ncia nas pr\u00e1ticas modernas de engenharia de software.<\/li>\n<li data-nodeid=\"40180\"><a data-nodeid=\"41036\" href=\"https:\/\/www.visual-paradigm.com\/features\/code-engineering-tools\/\"><strong data-nodeid=\"41037\">Ferramentas de Engenharia de C\u00f3digo<\/strong><\/a>: Descri\u00e7\u00e3o das capacidades de engenharia de ciclo completo, suportando gera\u00e7\u00e3o de c\u00f3digo e engenharia reversa para m\u00faltidos linguagens de programa\u00e7\u00e3o.<\/li>\n<li data-nodeid=\"40182\"><a data-nodeid=\"41043\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/12\/13\/5963_visualparadi.html\"><strong data-nodeid=\"41044\">Mapeamento de Banco de Dados com ORM<\/strong><\/a>: Guia para gerar esquemas de banco de dados e camadas de persist\u00eancia a partir de diagramas de classes UML usando t\u00e9cnicas de mapeamento objeto-relacional.<\/li>\n<li data-nodeid=\"40184\"><a data-nodeid=\"41050\" href=\"https:\/\/www.visual-paradigm.com\/support\/documents\/vpuserguide\/3563\/3584\/85402_benefitsofde.html\"><strong data-nodeid=\"41051\">Benef\u00edcios da Engenharia de Banco de Dados<\/strong><\/a>: Explica\u00e7\u00e3o de como o modelagem integrada de banco de dados melhora a consist\u00eancia dos dados, reduz o tempo de desenvolvimento e apoia itera\u00e7\u00f5es \u00e1geis.<\/li>\n<li data-nodeid=\"40186\"><a data-nodeid=\"41057\" href=\"https:\/\/www.visual-paradigm.com\/VPGallery\/\"><strong data-nodeid=\"41058\">Galeria do Visual Paradigm<\/strong><\/a>: Apresenta\u00e7\u00e3o de projetos de exemplo, modelos de diagramas e exemplos de modelagem espec\u00edficos de ind\u00fastria criados com o Visual Paradigm.<\/li>\n<li data-nodeid=\"40188\"><a data-nodeid=\"41064\" href=\"https:\/\/circle.visual-paradigm.com\/docs\/installing-visual-paradigm\/\"><strong data-nodeid=\"41065\">Instalando o Visual Paradigm<\/strong><\/a>: Guia oficial de instala\u00e7\u00e3o que abrange requisitos do sistema, ativa\u00e7\u00e3o da licen\u00e7a e etapas iniciais de configura\u00e7\u00e3o.<\/li>\n<li data-nodeid=\"40190\"><a data-nodeid=\"41071\" href=\"https:\/\/www.visual-paradigm.com\/solution\/uml\/eclipseuml\/\"><strong data-nodeid=\"41072\">Integra\u00e7\u00e3o UML com Eclipse<\/strong><\/a>: Documenta\u00e7\u00e3o para incorporar as ferramentas de modelagem do Visual Paradigm diretamente na IDE Eclipse para fluxos de trabalho de desenvolvimento sem interrup\u00e7\u00f5es.<\/li>\n<li data-nodeid=\"40192\"><a data-nodeid=\"41078\" href=\"https:\/\/www.visual-paradigm.com\/solution\/freeumltool\/\"><strong data-nodeid=\"41079\">Op\u00e7\u00f5es de Ferramentas UML Gratuitas<\/strong><\/a>: Compara\u00e7\u00e3o entre os recursos da edi\u00e7\u00e3o comunit\u00e1ria do Visual Paradigm e as capacidades profissionais, para equipes que avaliam solu\u00e7\u00f5es de modelagem.<\/li>\n<li data-nodeid=\"40194\"><a data-nodeid=\"41087\" href=\"https:\/\/www.visual-paradigm.com\/cn\/guide\/uml-unified-modeling-language\/uml-modeling-software-process-and-tool\/\"><strong data-nodeid=\"41088\">Processo de Software de Modelagem UML<\/strong><\/a>: Vis\u00e3o geral de como as ferramentas UML se encaixam em processos de desenvolvimento iterativos, incluindo metodologias \u00e1geis, cascata e h\u00edbridas.<\/li>\n<li data-nodeid=\"40196\"><a data-nodeid=\"41094\" href=\"https:\/\/www.visual-paradigm.com\/features\/visual-modeling-tool\/\"><strong data-nodeid=\"41095\">Recursos das Ferramentas de Modelagem Visual<\/strong><\/a>: Lista detalhada de recursos que destacam a reutiliza\u00e7\u00e3o inteligente de elementos, valida\u00e7\u00e3o de sintaxe e capacidades de cat\u00e1logo de recursos que diferenciam ferramentas profissionais de modelagem.<\/li>\n<li data-nodeid=\"40198\"><a data-nodeid=\"41101\" href=\"https:\/\/www.visual-paradigm.com\/cn\/solution\/uml\/uml-tool\/\"><strong data-nodeid=\"41102\">Ferramenta UML para Solu\u00e7\u00f5es Empresariais<\/strong><\/a>: Descri\u00e7\u00e3o voltada para empresas sobre a escalabilidade do Visual Paradigm, recursos de colabora\u00e7\u00e3o e integra\u00e7\u00e3o com ferramentas de gest\u00e3o de requisitos e planejamento \u00e1gil.<\/li>\n<li data-nodeid=\"40200\"><a data-nodeid=\"41110\" href=\"https:\/\/www.visual-paradigm.com\/\"><strong data-nodeid=\"41111\">P\u00e1gina Inicial do Visual Paradigm<\/strong><\/a>: Site principal do Visual Paradigm, oferecendo downloads de produtos, tutoriais, f\u00f3runs da comunidade e recursos de suporte para profissionais de modelagem.<\/li>\n<li data-nodeid=\"40202\"><a data-nodeid=\"41117\" href=\"https:\/\/www.visual-paradigm.com\/tutorials\/uml-tutorial\/\"><strong data-nodeid=\"41118\">Cole\u00e7\u00e3o de Tutoriais UML<\/strong><\/a>: Biblioteca selecionada de tutoriais passo a passo que abrangem t\u00e9cnicas de modelagem UML do iniciante ao avan\u00e7ado em v\u00e1rios tipos de diagramas.<\/li>\n<li data-nodeid=\"40204\"><a data-nodeid=\"41124\" href=\"https:\/\/www.visual-paradigm.com\/tw\/solution\/uml\/uml-tool\/\"><strong data-nodeid=\"41125\">Guia da Ferramenta UML em Chin\u00eas Tradicional<\/strong><\/a>: Recurso localizado que fornece orienta\u00e7\u00f5es para modelagem UML e informa\u00e7\u00f5es sobre o produto para usu\u00e1rios e equipes que falam chin\u00eas tradicional.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Introdu\u00e7\u00e3o Na engenharia de software moderna, a capacidade de traduzir requisitos de neg\u00f3cios amb\u00edguos em modelos de sistema precisos e<\/p>\n","protected":false},"author":11,"featured_media":12106,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-12105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unified-modeling-language"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia - 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\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia - Cibermediano\" \/>\n<meta property=\"og:description\" content=\"Introdu\u00e7\u00e3o Na engenharia de software moderna, a capacidade de traduzir requisitos de neg\u00f3cios amb\u00edguos em modelos de sistema precisos e\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\" \/>\n<meta property=\"og:site_name\" content=\"Cibermediano\" \/>\n<meta property=\"article:published_time\" content=\"2026-05-19T08:00:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png\" \/><meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png\" \/>\n\t<meta property=\"og:image:width\" content=\"916\" \/>\n\t<meta property=\"og:image:height\" content=\"507\" \/>\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\/05\/img_6a0c19ab9c846.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=\"20 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia\",\"datePublished\":\"2026-05-19T08:00:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\"},\"wordCount\":3547,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png\",\"articleSection\":[\"Unified Modeling Language\"],\"inLanguage\":\"pt-PT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\",\"name\":\"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia - Cibermediano\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png\",\"datePublished\":\"2026-05-19T08:00:57+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png\",\"width\":916,\"height\":507},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia\"}]},{\"@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":"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia - 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\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/","og_locale":"pt_PT","og_type":"article","og_title":"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia - Cibermediano","og_description":"Introdu\u00e7\u00e3o Na engenharia de software moderna, a capacidade de traduzir requisitos de neg\u00f3cios amb\u00edguos em modelos de sistema precisos e","og_url":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/","og_site_name":"Cibermediano","article_published_time":"2026-05-19T08:00:57+00:00","og_image":[{"url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png","type":"","width":"","height":""},{"width":916,"height":507,"url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png","type":"image\/png"}],"author":"curtis","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/05\/img_6a0c19ab9c846.png","twitter_misc":{"Escrito por":"curtis","Tempo estimado de leitura":"20 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia","datePublished":"2026-05-19T08:00:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/"},"wordCount":3547,"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png","articleSection":["Unified Modeling Language"],"inLanguage":"pt-PT"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/","url":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/","name":"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia - Cibermediano","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png","datePublished":"2026-05-19T08:00:57+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/pt\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#primaryimage","url":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png","contentUrl":"https:\/\/www.cybermedian.com\/pt\/wp-content\/uploads\/sites\/11\/2026\/05\/img_6a0c19ab9c846.png","width":916,"height":507},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/pt\/from-text-to-uml-models-a-practical-case-study-in-transforming-problem-descriptions-into-class-and-sequence-diagrams\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Do Texto aos Modelos UML: Um Estudo de Caso Pr\u00e1tico na Transforma\u00e7\u00e3o de Descri\u00e7\u00f5es de Problemas em Diagramas de Classes e de Sequ\u00eancia"}]},{"@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\/12105","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=12105"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/posts\/12105\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media\/12106"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/media?parent=12105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/categories?post=12105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/pt\/wp-json\/wp\/v2\/tags?post=12105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}