Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Diagrama de Classes - Vendedor X Cliente

Pessoal fiquei com uma dúvida na representação e associação das classes de VENDEDOR e CLIENTE. Na classe VENDEDOR existe uma operação 'cadastrar cliente'. Entendo que isso na prática realmente acontece, quando o Vendedor acessa a funcionalidade 'cadastrar cliente' no menu do sistema e realiza o cadastro do cliente. Não consigo enxergar essa operação na classe VENDEDOR? Olhando o diagrama de classe apresentado no curso a classe vendedor ficaria assim?

public class vendedor{
    private string nome;
    private int matricula;

    public void cadastrarCliente (Cliente cliente){
        cadastrarCliente(cliente);
    }
}
3 respostas

Caro Tiago,

Obrigado pela sua postagem!

Seu código está correto em termos de declaração de atributos e chamada da função cadastrar cliente, que na prática dará o acesso de escrita ao vendedor na classe cliente e posterior passagem de parâmetros de acesso para criação de registro de pedidos na classe venda potencial.

Ou seja, este seu código inicial abre a possibilidade de chamadas a acesso de escrita em outras classes que se relacionam com o vendedor no processo de atendimento, bem como a outras funções contidas nestas classes.

Bons esudos!

Ainda fiquei com dúvida em relação a solução. Meu entendimento que as classes ficariam assim:

Classe do vendedor:

public class Vendedor{
    private string nome;
    private int matricula;
}

Classe do cliente:

public class Cliente{
    private string nome;
    private string cpf;

    public void cadastrarCliente (Cliente cliente){
        cadastrarCliente(cliente);
    }
}

Acredito que o método cadastrarCliente() é de responsabilidade do Cliente, por isso não deve ficar na classa vendedor.

Está certo meu pensamento? ]

solução!

Caro Tiago,

Obrigado pela sua nova postagem!

Ótima pergunta! Seu ponto é bastante relevante quando você começa a visualizar a transformação do modelo lógico do curso num modelo físico e em linhas de código que você está exercitando.

No diagrama de classes que usamos em nosso curso a operação "cadastrar cliente" ficou inserida na classe "Vendedor" para dar uma dinâmica para uma etapa de implementação física do modelo.

Na prática, pelos requisitos do sistema de vendas da Livraria do Conhecimento o cliente não inseri informações diretamente no sistema mas sim, informa dados, solicita informações e faz pedidos , por exemplo sempre por intermédio do vendedor.

Neste sentido, até mesmo para a classe associativa venda potencial possa ser gerada é previsto que o Vendedor cadastre o cliente.

Por este motivo, visualizando seu código e pensando numa visão de evolução do modelo para a implementação a sugestão seria:

  • manter "cadastrar cliente" como uma operação da classe vendedor;
  • criar a classe cliente com os atributos, nome, cpf e as operações: " informar dados de cadastro" e também "informar dados do pedido".

Com isto, considerando estas duas operações associadas ao cliente, poderemos alimentar os atributos das operações: "cadastrar cliente" da Classe Vendedor e "abrir venda em potencial" da Classe Venda Potencial. Em outras palavras, desta forma nosso modelo estaria apto a capturar os parâmetros para passar na chamada das funções que implementam as operações "cadastrar cliente" e "abrir venda em potencial", contidos na classe Vendedor e Venda Potencial.

Por fim, como dica quando pensar em implementação é preciso sempre "montar um quebra-cabeça" de fazer a leitura de todos os diagramas do modelo lógico, para se visualizar os detalhes dos requisitos e a lógica da abstração do analista contida no modelo lógico.

Neste sentido, note que posteriormente no Diagrama de Caso de Uso você identificará um caso de uso associado ao cliente chamado "informa dados de cadastro" evidenciará um comportamento da classe Cliente que definirá os atributos que estarão na classe cliente.

Parabéns pela sua dedicação aos estudos, capacidade de questionamento e entendimento abrangente do modelo lógico de nosso curso! Vá em frente!