Considere o diagrama de classes na notação da UML apresentado

Propaganda
01|
Considere o diagrama de classes na notação da UML apresentado abaixo.
Utilizando a linguagem Java, apresente a implementação da estrutura das
classes “venda” e “cliente” correspondente ao diagrama.
Use tipos genéricos (Java Generics) adequados à implementação das
associações, quando for o caso. Considere as navegabilidades e
multiplicidades fornecidas no diagrama, durante a implementação. Nessa
implementação, desconsidere métodos de qualquer natureza; implemente
apenas as classes citadas, atributos e associações fornecidos. (20 pontos)
1
Resposta questão 01|
2
02|
Dado o conjunto de tabelas de um banco de dados relacional descritas abaixo:
CLIENTE (id, numero, nome, endereco, idade, sexo)
PRODUTO (id, descricao, precoVenda, quantidade, idTipo, idEmbalagem)
ITEM-PRODUTO (idProduto, idItem, descricao)
CLIENTE-PRODUTO (idCliente, idProduto)
TIPO (id, codigo, categoria, sazonalidade)
EMBALAGEM (id, codigo, peso, volume, material)
onde os atributos sublinhados de forma contínua representam chaves primárias
e os atributos com sublinhados tracejados indicam chaves estrangeiras;
e, considerando as seguintes restrições de integridade referencial, para esse
modelo:
•
Na tabela PRODUTO, idTipo referencia TIPO(id);
•
Na tabela PRODUTO, idEmbalagem referencia EMBALAGEM(id);
•
Na tabela CLIENTE-PRODUTO, idCliente referencia CLIENTE(id);
•
Na tabela CLIENTE-PRODUTO, idProduto referencia PRODUTO(id).
a) Construa um modelo conceitual de dados, utilizando o modelo de classes
conceitual da UML que melhor o represente; (10 pontos)
b) Apresente, em SQL ANSI, o código de uma consulta que mostre o número
e o nome de todos os clientes que não adquiriram nenhum produto,
ordenados de forma decrescente pelo número e, a seguir, de forma
decrescente pelo nome. (10 pontos)
3
Resposta questão 02|
4
03|
Considere o diagrama de classes conceitual UML, abaixo, modelado para um
sistema OLTP:
Proponha um modelo de dados multidimensional, segundo a abordagem
estrela, com foco no assunto “Venda”. (20 pontos)
5
Resposta questão 03|
6
04|
Observe o diagrama de sequência a seguir:
cliente
<<criar>>
action:Action
<<criar>>
u:Usuario
setId(1)
<<criar>>
uDao:UsuarioDao
getUsuarioById(u)
(u)
Utilizando a sintaxe correta, complete o trecho de código Java, abaixo, da
forma mais adequada. (5 pontos para cada trecho)
....
public class Action {
......
Usuario u =
new ___________________________________________;
____________________________________________________________;
____________________________________________________________;
u = _________________________________________________________;
...
}
7
Resposta questão 04|
8
05|
Observe a seguinte classe Generic:
package br.uerj.dinfo.model;
import java.util.List;
import br.uerj.dinfo.exception.DatabaseException;
import br.uerj.dinfo.HibernateSessionFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class Generic {
public List query(String query) {
Session session = HibernateSessionFactory.currentSession();
List list = session.createQuery(query).list();
session.close();
return list;
}
public Object getUniqueElement(String query) {
Session session = HibernateSessionFactory.currentSession();
Object resultado = new Object();
resultado = session.createQuery(query).uniqueResult();
session.close();
return resultado;
}
}
Sabendo que a classe definida acima é a classe mãe de UsuarioGeneric,
complete o trecho de código Java, abaixo, da forma mais adequada, utilizando
a sintaxe correta.
Considere, ainda, os seguintes dados:
a) TODAS as lacunas (,, e ) devem ser preenchidas; (5 pontos cada uma)
b) TODAS as informações necessárias à solução do problema estão presentes;
c) O código apresentado não necessita sofrer alterações.
package br.uerj.dinfo.model.;
import br.uerj.dinfo.pojo.Usuario;
import java.util.List;
public class UsuarioGeneric __________________________ {
public Usuario getUsuario(___________________){
String sql = "SELECT U FROM Usuario U LEFT JOIN FETCH U.orgao " +
"WHERE U.identidadeUsuario='" +
usuario.getIdentidadeUsuario() + "'AND U.flagAtivo='S'";
return (Usuario)getUniqueElement(___________________);
}
public List getTodosUsuarios( ){
String sql = "SELECT U FROM Usuario U LEFT JOIN FETCH U.orgao";
return ______________________(sql);
}
}
9
Resposta Questão 05|
10
Download