SóProvas


ID
2022385
Banca
CESGRANRIO
Órgão
UNIRIO
Ano
2016
Provas
Disciplina
Engenharia de Software
Assuntos

Uma empresa que possui um site de vendas de produtos na Web desenvolveu um sistema de informação para registrar suas vendas e controlar a entrega das mesmas. Os seguintes dados são manipulados por esse sistema:

  • • Cliente – todos os clientes precisam estar cadastrados no sistema para que possam realizar compras. Sobre um cliente precisa-se conhecer o login, a senha de login, o nome e o número do CPF.

  • • Produtos – todos os produtos precisam estar cadastrados no sistema para que possam ser comprados pelos clientes. Sobre um produto precisa-se registrar o código de identificação, uma descrição, o preço de venda e a quantidade disponível para compra.

  • • Transportadoras – todas as transportadoras precisam estar cadastradas no sistema para que possam ser escolhidas para entregar as compras dos clientes. Sobre uma transportadora precisa-se registrar o código de identificação, o nome e o número do CNPJ.

  • • O sistema deve registrar a quantidade de cada produto que faz parte de uma compra, a data da compra e o endereço de entrega da mesma. Além disso, ele deve registrar a transportadora escolhida pelo cliente para realizar a entrega.

Qual diagrama de classes conceituais UML descreve corretamente o negócio descrito acima, sem apresentar incompletudes e redundâncias?

Alternativas
Comentários
  • Qual o erro da letra E?

  • Como o relacionamento entre Compra e Produro é Muitos para Muitos. Então há a necessidade de ter uma tabela intermediária que mapeia as duas chaves, junto com um atributo do relacionamento chamado quantidade. O atributo quantidade só faz sentido com a existência da associação.

  • O erro da letra E é o atributo qtdComprada estar vinculado à tabela Compra.

    Como é possível ter mais de um produto numa mesma compra, esse atributo deve estar vinculado em uma tabela relacional que especifique a Compra, o Produto e qtdComprada.

  • Qual é o erro da letra D?

  • Eu acho que a letra D seria viável se tivessem mais informações, como:

    1) O examinador não especificou a chave primária. Logo, se a chave de compra fosse apenas o código do produto e o login, daria problema, pois um cliente pode comprar um produto mais de uma vez. A data teria que entrar nessa chave.

    Além disso, endereço se repetiria em toda linha login  + produto. O que não acontece na letra A.

    Se alguém discordar ou quiser discutir, me chama inbox

  • LETRA A


    Essa questão envolve questões de normalização de dados. Ela é muito sútil.


    Atenção: Em A temos a classe COMPRA sendo uma classe ASSOCIATIVA e em D essa é uma classe INTERMEDIÁRIA. Nesse caso as relações são equivalentes, o que torna a questão errada é o posicionamento do atributo quantidade.


    O MER não apresenta quais são as chaves, mas podemos perceber que toda vez que listássemos a quantidade de um produto comprado teríamos que associá-lo a um endereço, na letra D, sendo que o endereço deve ser associado somente uma vez a compra. Ou seja teríamos uma redundância de endereços.


    Agora prestemos atenção ao comando da questão:

    Qual diagrama de classes conceituais UML descreve corretamente o negócio descrito acima, sem apresentar incompletudes e redundâncias?


    Logo, a letra D não está errada, porém ela não atende ao que o enunciado pede. Errei essa questão por não prestar atenção a esse detalhe.