de_DEen_USfa_IRfr_FRhi_INpl_PLpt_PTru_RUvi

Do Texto aos Modelos UML: Um Estudo de Caso Prático na Transformação de Descrições de Problemas em Diagramas de Classes e de Sequência

Introdução

Na engenharia de software moderna, a capacidade de traduzir requisitos de negócios ambíguos em modelos de sistema precisos e acionáveis é uma habilidade fundamental. A Análise 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ção real de problema, refiná-las por meio de critérios sistemáticos de rejeição e evoluí-las em diagramas de classes e de sequência robustos.

Utilizando o sistema de segurança do estacionamento Saturn International como nosso exemplo prático, ilustramos como gerentes de produtos, analistas de negócios e arquitetos de software podem aproveitar o recurso de Análise Textual do Visual Paradigm para acelerar a descoberta de requisitos, reduzir ambiguidades e produzir artefatos de design sustentáveis. Seja você que modela sistemas de controle de acesso, fluxos de trabalho empresariais ou aplicações voltadas para o cliente, a metodologia apresentada aqui fornece uma estrutura reprodutível para transformar palavras em modelos funcionais.

Transforming Problem Descriptions into Class and Sequence Diagrams


Descrição do Problema

A seguir, está a descrição do problema que será utilizada neste tutorial. Vamos dar uma olhada.

A gestão da Saturn Int. deseja melhorar suas medidas de segurança, tanto para seu prédio quanto no local. Ela gostaria de impedir pessoas que não fazem parte da empresa de usar seu estacionamento.

A Saturn Int. decidiu emitir cartões de identidade para todos os funcionários. Cada cartão registra o nome, departamento e número de um funcionário da empresa, e concede-lhes acesso ao estacionamento da empresa. Os funcionários são solicitados a usar os cartões enquanto estiverem no local.

Há uma barreira e um leitor de cartões colocados na entrada do estacionamento. Quando um motorista dirige seu carro para dentro do estacionamento, ele insere seu cartão de identidade no leitor de cartões. Em seguida, o leitor verifica o número do cartão para ver se é conhecido pelo sistema. Se o número for reconhecido, o leitor envia um sinal para acionar a barreira para se levantar. O motorista pode então dirigir seu carro para dentro do estacionamento.

Há outra barreira na saída do estacionamento, que é automaticamente levantada quando um carro deseja sair do estacionamento.

Um sinal na entrada exibe “Cheio” quando não há vagas no estacionamento. Ele só é desligado quando um carro sai.

Há outro tipo de cartão para convidados, que também permite acesso ao estacionamento. O cartão registra um número e a data atual. Esses cartões podem ser enviados com antecedência ou coletados na recepção. Todos os cartões de convidados devem ser devolvidos à recepção quando o visitante deixar a Saturn Int.


Identificação de Classes a partir do Texto

Criando Análise Textual

  1. Crie um novo projeto. SelecioneProjeto > Novo no menu principal. Na janelaNovo Projeto nomeie o projetoTutorial e clique emCriar Projeto em Branco para confirmar.

  2. Crie uma nova Análise Textual. SelecioneDiagrama > Novo no menu principal.

  3. Na janelaNovo Diagrama selecioneAnálise Textual e clique Próximo. Insira Melhoria de Segurança como nome do diagrama e clique OK.

    Create Textual Analysis

  4. Isso abre o editor de Análise Textual. Copie a descrição do problema fornecida acima e cole-a no editor. A colagem pode ser feita pressionando Ctrl-V ou clicando com o botão direito no editor e selecionando Colar.

    Identify candidate class

Identificação de Objetos Candidatos a partir do Texto

Leia a descrição do problema para identificar as classes candidatas. Quando uma classe for encontrada, clique com o botão direito sobre o trecho de texto e selecione Adicionar texto como Classe no menu suspenso.

Problem statement pasted

Uma lista de classes candidatas é obtida abaixo:

Saturn Int. medidas de segurança edifício local
Pessoas que não fazem parte da empresa Estacionamento Cartões de identidade funcionários
nome departamento número Pessoal da empresa
Acesso barreira Leitor de cartão motorista
Número do cartão sistema sinal saída
Outro tipo de cartão para hóspedes recepção Cartões de hóspedes visitante

Até agora, o editor de Análise Textual deverá ter este aspecto:

Candidate classes identified

Rejeição de Objetos Candidatos

Nesta seção, as classes candidatas serão revisadas com base em uma lista de regras de rejeição. Ao final desta seção, será obtida uma lista de modelos de classe.

Agora, revise a lista de classes candidatas com base nas regras de rejeição abaixo:

  • Duplicatas: se dois ou mais objetos são simplesmente nomes diferentes para a mesma coisa.

  • Irrelevante: objetos que existem no domínio do problema, mas que não são pretendidos.

  • Vago: quando analisamos palavras cuidadosamente, às vezes fica claro que elas não têm um significado preciso e não podem ser a base de algo útil no sistema.

  • Geral: o significado é muito amplo.

  • Atributos: como atributos dos objetos.

  • Associações: na verdade representa as relações entre objetos.

  • Papéis: às vezes objetos referidos pelo papel que desempenham em uma parte particular do sistema.

A tabela a seguir lista os resultados da revisão:

Classe candidata Aceitar / Rejeitar Motivo da rejeição
Gestão Saturn Int. Rejeitar Irrelevante para o sistema
Medidas de segurança Rejeitar vago
Edifício Rejeitar Irrelevante para o sistema
Local Rejeitar Irrelevante para o sistema
Pessoas que não fazem parte da empresa Rejeitar Irrelevante para o sistema
Estacionamento Aceitar
Cartões de identidade Aceitar
Funcionários Rejeitar Duplicado com ‘Funcionários da empresa’
Nome Rejeitar Atributo
Departamento Rejeitar Atributo
Número Rejeitar Atributo
Funcionários da empresa Rejeitar Cargo
Acesso Aceitar
Barreira Aceitar
Leitor de cartão Aceitar
Motorista Rejeitar Função
Número do cartão Rejeitar Atributo
Sistema Rejeitar Muito geral
Sinal Aceitar
Sair Rejeitar Irrelevante para o sistema
Outro tipo de cartão para hóspedes Rejeitar Duplicatas com cartões de hóspedes
Recepção Rejeitar Irrelevante para o sistema
Cartões de hóspedes Aceitar
visitante Rejeitar Função

Para diferenciar as classes candidatas aceitas e rejeitadas, vamos mudar a cor de destaque para verde nas aceitas. Para fazer isso, clique na célula com destaque amarelo e selecione verde no seletor de cores.

Change highlight color

Então agora, a lista restante de classes candidatas é obtida da seguinte forma:

Estacionamento Cartões de identidade Acesso Barreira
Leitor de cartões Sinal Cartões de convidados

Reformulação das Classes Identificadas

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ão o significado do texto extraído.

Leia a tabela abaixo para ver as mudanças necessárias e a explicação dessas mudanças.

Texto extraído Reformular para Motivo
estacionamento
cartões de identidade cartão de funcionário “Cartões de identidade” significa literalmente todos os tipos de cartão, mas de acordo com o trecho, a palavra “cartão de identidade” vem da expressão nominal “cartões de identidade para todos os funcionários”, então na verdade significa cartão de funcionário. Vamos reformulá-lo para evitar confusão.
acesso
barreira
leitor de cartões
sinal
saída
cartões de convidados cartão de convidado Mudar para usar o substantivo no singular para torná-lo compatível com as outras palavras

Atualize o nome das classes candidatas conforme necessário:

Renaming candidate

Criando Elementos do Modelo de Classe a partir do Texto

Você identificou uma lista de classes. Para usá-las na construção do modelo, você precisa convertê-las de palavras em elementos do modelo.

  1. Selecione as sete classes na tabela. Para realizar uma seleção múltipla, mantenha pressionada a tecla Ctrl e clique nas linhas uma a uma.

  2. Clique com o botão direito na sua seleção e selecione Criar Elemento do Modelo no menu suspenso.

    Create element

  3. Você é solicitado a visualizar os elementos criados em um diagrama. Mantenha a opção Criar novo diagrama selecionada. Renomeie o diagrama de classe para Sistema de Estacionamento e clique em Criar.

    Visualize classes into class diagram
    Isso cria um diagrama de classe.
    Class diagram formed


Desenvolvendo o Modelo de Classe – Identificar Relacionamentos Estruturais

Você obteve um conjunto de classes visualizadas em um diagrama de classe. Agora, identifique seus relacionamentos estruturais conectando-as com conectores de relacionamento como associação, generalização e dependência. A figura abaixo mostra o resultado. Durante o processo, novas classes podem ser adicionadas, como a adição da classe “cartão” neste exemplo como uma superclasse das subclasses cartão de funcionário e cartão de convidado.

Class diagram updated


Desenvolvendo o Modelo de Interação – Identificar Atributos e Operações

Diagramas de sequência são criados para visualizar as interações entre os objetos, ou seja, as instâncias das classes identificadas acima. Durante esse processo, atributos e operações serão identificados, o que, por sua vez, torna o modelo de classe completo. Vamos criar um diagrama de sequência para visualizar o caso em que um funcionário da empresa dirige seu carro para o estacionamento.

  1. Crie um diagrama de sequência. Selecione Diagrama > Novo no menu principal.

  2. Na janela Novo Diagrama janela, selecione Diagrama de Sequência e clique em Próximo. Selecione Em brancocomo modelo e clique emPróximo. InsiraEstacionamento de carro (com cartão de funcionário)como nome do diagrama e clique emOK.

    Create sequence diagram

  3. O cenário começa com um motorista que insere seu cartão de funcionário no leitor de cartões. Vamos criar um atorFuncionário. Para criar um ator, selecione oAtorferramenta na barra de ferramentas do diagrama e arraste-o para o diagrama.

    Create actor

  4. Precisamos mostrar o leitor de cartões como um objeto. Em vez de criar uma linha de vida, vamos criar uma instância de objeto da classeleitor de cartõesclasse. Existem várias maneiras de fazer isso. Uma delas é reutilizar a classe por meio doExplorador de Modelo. Clique naExplorador de Modeloaba fixada à esquerda da janela do aplicativo (ou selecioneVisualizar > Painéis > Explorador de Modelose a aba não estiver presente). Em seguida, arraste a classe leitor de cartões para o diagrama.

    Drag reader class onto diagram

  5. SelecioneLinha de Vidapara criar quando for solicitado a escolher um tipo.

  6. A linha de vida é automaticamente nomeada como ‘leitor de cartões’, seguindo o nome do classificador. Como o nome é opcional, vamos removê-lo. Isso também torna o diagrama mais fácil de ler.

    Card reader lifeline created

  7. Conectefuncionáriocom: leitor de cartões. Mova o ponteiro do mouse sobre o atorfuncionário. Pressione no Catálogo de Recursos botão e arraste-o para a linha de vida : leitor de cartão.

    To create sequence message

  8. Soltar o ponteiro do mouse e selecionar Mensagem de Catálogo de Recursos.

    Selecting sequence message to create

  9. Insira insira o cartão do funcionário para ser o nome da mensagem.

    Sequence message created

  10. Como dispositivo de entrada, o leitor de cartão recebe o cartão e depois solicita ao sistema que o verifique. Vamos criar uma linha de vida para o sistema. Como não temos essa classe, criamos a linha de vida diretamente. Arraste Linha de vida da barra de ferramentas do diagrama para o diagrama. Nomeie a linha de vida sistema de estacionamento.

    Create car parking system lifeline

  11. Crie uma mensagem verificar cartão() de : leitor de cartão para sistema de estacionamento.

    Verify card message created

  12. Há dois resultados possíveis: sucesso ou falha. Vamos modelar ambos os casos. Em um diagrama de sequência UML, um fragmento combinado alternativo pode ser usado para modelar múltios fluxos possíveis. Crie um fragmento combinado alternativo que cubra o ator e as linhas de vida. Vamos redimensioná-lo para cobrir mais linhas de vida à medida que mais e mais linhas de vida forem adicionadas.

    Alternative combined fragment created

  13. Se for bem-sucedido, o sistema carregará o registro do cartão do funcionário. Crie uma mensagem auto carregar funcionário(). Para fazer isso, mova o ponteiro do mouse sobre sistema de estacionamento de carros e clique em Catálogo de Recursos, depois selecione Mensagem Própria -> Linha de Vida de Catálogo de Recursos. Digite o nome da mensagem própria.

    Create self message

  14. Siga a etapa 4 para visualizar a classe cartão do funcionário como uma linha de vida. Mais uma vez, remova o seu nome.

    Staff card class visualized

  15. Vamos supor que o último horário de acesso será definido como o registro do cartão do funcionário. Represente isso por uma mensagem de definição definir último acesso().

    Sequence message created

  16. Um registro de acesso seria criado. Vamos visualizar o acesso classe no diagrama como uma linha de vida, e depois conecte-a com uma mensagem de criação. Não se esqueça de ampliar o fragmento combinado alternativo para cobrir a linha de vida.

    Create message created

  17. Um sinal também seria criado para acionar a barreira para se levantar. Vamos visualizar a sinal classe no diagrama e depois conecte-a com uma mensagem de criação. Até agora, o seu diagrama de sequência deverá se parecer com a figura abaixo.

    Sequence diagram updated

  18. Levante a barreira. Visualize a barreira classe como uma linha de vida e conecte-a com uma levantar() mensagem. Aqui nomeamos a linha de vida entrada porque há uma barreira tanto na entrada quanto na saída, enquanto estamos nos referindo à que está na entrada neste diagrama.

    Barrier class visualized

  19. Por fim, solicite ao leitor de cartão para exibir uma mensagem indicando a verificação bem-sucedida do cartão do funcionário. Crie uma mensagem de sequência mostrar mensagem de sucesso que conecta entre sistema de estacionamento de carros e : leitor de cartão.

    Show success message

  20. O que acontecerá quando o cartão não puder ser verificado? Vamos modelar isso na parte inferior do fragmento combinado alt. Digamos que o sistema solicitará ao leitor de cartão que exiba uma mensagem de falha na verificação. Crie essa mensagem no diagrama.

    Show fail message

  21. Independentemente do sucesso ou falha, o cartão do funcionário será ejetado após o processo de verificação. Vamos criar a mensagem de sequênciaejetar cartão que conecta o sistema de estacionamento e o : leitor de cartão.

    Eject card message created

  22. Por fim, crie uma mensagem de retorno com o cartão devolvido a partir do: leitor de cartão para o ator funcionário. Para fazer isso, crie a mensagem e, em seguida, clique com o botão direito nela e selecione Tipo (Não Especificado) > Resposta no menu suspenso.

    Card returned message created

  23. Os dois compartimentos do fragmento combinado alt. são conhecidos como operandos. Insira as condições dos operandos como restrições. Clique com o botão direito na etiqueta alt no canto superior esquerdo do fragmento combinado e selecione Operando > Gerenciar Operandos no menu suspenso. Na janela suspenso, defina a restrição dos dois operandos como Cartão aceito e Cartão rejeitado respectivamente.

Manage operand

  1. Vamos criar operações a partir das mensagens de sequência. Primeiro, crie uma classe a partir da linha de vida do sistema de estacionamento. Clique com o botão direito na linha de vida e selecione Selecionar Classe > Criar Classe “sistema de estacionamento” no menu suspenso.

    Create class from lifeline

  2. Consulte a imagem a seguir. Para cada um dos conectores destacados, clique com o botão direito nele e selecione Digite > Chamada > Criar Operaçãodo menu suspenso.

    Create operations

  3. Volte para o diagrama de classe. As operações são apresentadas automaticamente no modelo de classe.

    Class model updated

Ao criar diagramas de sequência cada vez mais para diferentes cenários, o modelo de classe será gradualmente enriquecido com a inclusão de todas as operações e atributos que o sistema precisa.


Conclusão

Transformar requisitos em linguagem natural em modelos UML precisos é tanto uma arte quanto uma ciência. Este estudo de caso demonstra que, com uma abordagem disciplinada — começando com a Análise Textual, aplicando critérios sistemáticos de rejeição, reformulando para clareza e refinando iterativamente por meio de diagramas de classe e de sequência — equipes conseguem transformar enunciados problemáticos ambíguos em projetos de sistema robustos e implementáveis.

O exemplo do estacionamento Saturn International ilustra como até requisitos aparentemente simples contêm camadas de complexidade: múltiplos tipos de atores, fluxos condicionais, interações 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é o código final, garantir consistência entre os diagramas e colaborar eficazmente entre stakeholders técnicos e não técnicos.

Principais aprendizados para profissionais:

  • Comece com a extração ampla de candidatos, depois refine por meio de regras explícitas de rejeição

  • Use convenções de nomeação singulares e consistentes para reduzir ambiguidades

  • Aproveite os diagramas de sequência para descobrir operações e atributos ocultos

  • Trate a modelagem como um processo iterativo — cada cenário enriquece o modelo de classe

  • Mantenha a rastreabilidade bidirecional entre requisitos, modelos e implementação

Seja você quem está projetando sistemas de controle de acesso, fluxos de trabalho empresariais ou aplicações voltadas para o cliente, a metodologia apresentada aqui fornece uma estrutura repetível e escalonável para transformar palavras em modelos de software funcionais.


Referências

  1. Recursos da Ferramenta UML do Visual Paradigm: Visão 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.
  2. Visão geral dos 14 tipos de diagramas UML: Guia detalhado que explica os diagramas UML estruturais e comportamentais e seus casos de uso apropriados no design de software.
  3. Guia do Usuário do Visual Paradigm PDF: Documentação oficial que abrange instalação, navegação na interface e fluxos principais de modelagem no Visual Paradigm.
  4. Documentação de Modelagem UML: Instruções passo a passo para criar, editar e gerenciar diagramas UML no ambiente do Visual Paradigm.
  5. O que é um diagrama UML?: Introdução amigável para iniciantes sobre conceitos UML, tipos de diagramas e sua função na arquitetura de software e na comunicação de design.
  6. Capture Requisitos com Casos de Uso: Orientação prática sobre o uso de diagramas de casos de uso e análise textual para identificar, documentar e validar requisitos do sistema.
  7. Gerador de Diagramas de Classe UML com Assistência de IA: Visão geral dos recursos com base em IA do Visual Paradigm que geram automaticamente diagramas de classe a partir de descrições em linguagem natural.
  8. Tutorial de PlantUML para Diagramas Visuais: Tutorial em vídeo que demonstra como converter código de script PlantUML em diagramas UML interativos e editáveis dentro do Visual Paradigm.
  9. O que é UML?: Explicação fundamental dos princípios da Linguagem de Modelagem Unificada, sua história e sua importância nas práticas modernas de engenharia de software.
  10. Ferramentas de Engenharia de Código: Descrição das capacidades de engenharia de ciclo completo, suportando geração de código e engenharia reversa para múltidos linguagens de programação.
  11. Mapeamento de Banco de Dados com ORM: Guia para gerar esquemas de banco de dados e camadas de persistência a partir de diagramas de classes UML usando técnicas de mapeamento objeto-relacional.
  12. Benefícios da Engenharia de Banco de Dados: Explicação de como o modelagem integrada de banco de dados melhora a consistência dos dados, reduz o tempo de desenvolvimento e apoia iterações ágeis.
  13. Galeria do Visual Paradigm: Apresentação de projetos de exemplo, modelos de diagramas e exemplos de modelagem específicos de indústria criados com o Visual Paradigm.
  14. Instalando o Visual Paradigm: Guia oficial de instalação que abrange requisitos do sistema, ativação da licença e etapas iniciais de configuração.
  15. Integração UML com Eclipse: Documentação para incorporar as ferramentas de modelagem do Visual Paradigm diretamente na IDE Eclipse para fluxos de trabalho de desenvolvimento sem interrupções.
  16. Opções de Ferramentas UML Gratuitas: Comparação entre os recursos da edição comunitária do Visual Paradigm e as capacidades profissionais, para equipes que avaliam soluções de modelagem.
  17. Processo de Software de Modelagem UML: Visão geral de como as ferramentas UML se encaixam em processos de desenvolvimento iterativos, incluindo metodologias ágeis, cascata e híbridas.
  18. Recursos das Ferramentas de Modelagem Visual: Lista detalhada de recursos que destacam a reutilização inteligente de elementos, validação de sintaxe e capacidades de catálogo de recursos que diferenciam ferramentas profissionais de modelagem.
  19. Ferramenta UML para Soluções Empresariais: Descrição voltada para empresas sobre a escalabilidade do Visual Paradigm, recursos de colaboração e integração com ferramentas de gestão de requisitos e planejamento ágil.
  20. Página Inicial do Visual Paradigm: Site principal do Visual Paradigm, oferecendo downloads de produtos, tutoriais, fóruns da comunidade e recursos de suporte para profissionais de modelagem.
  21. Coleção de Tutoriais UML: Biblioteca selecionada de tutoriais passo a passo que abrangem técnicas de modelagem UML do iniciante ao avançado em vários tipos de diagramas.
  22. Guia da Ferramenta UML em Chinês Tradicional: Recurso localizado que fornece orientações para modelagem UML e informações sobre o produto para usuários e equipes que falam chinês tradicional.

This post is also available in Deutsch, English, فارسی, Français, English, Polski, Ру́сский and Việt Nam.