Buscar

Exercicios Bezerra (Gabarito) (2)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Exercício 5-1: Descreva a posição do diagrama de classes no processo de desenvolvimento incremental e iterativo. Quando eles são utilizados? Para que são utilizados?
Seção 5.6, pg. 127 do livro. 
Exercício 5-2: Considere a técnica CRC. Discuta a relação existente entre as dimensões espaciais usuais de um cartão CRC e a distribuição quase uniforme das responsabilidades.
Na modelagem de cartões CRC, utiliza-se cartões de tamanho fixo (normalmente com as dimensões aproximadas de 10cm x 15cm). O fato de as dimensões utilizadas serem as mesmas para todo cartão contribui para uma distribuição mais uniforme das responsabilidades. Isso porque quando o cartão CRC correspondente a uma certa classe já foi todo preenchido com responsabilidades, e uma nova responsabilidade deve ser atribuída, é hora de o modelador considerar a criação de uma nova classe para cumprir com essa responsabilidade, ou então atribuir essa responsabilidade a uma outra classe..
Exercício 5-3: construa o modelo de classes de domínio de um sistema de informações
para controlar o campeonato da Fórmula 1.
Restrições: 
Um piloto não troca de equipe durante uma temporada
Um mecânico não troca de equipe durante uma temporada
Exercício 5-4: Desenhe um diagrama de classes com relacionamentos, nomes de papéis e multiplicidades para as seguintes situações:
• Uma Pessoa pode ser casada com outra Pessoa; 
• Uma Disciplina é pré-requisito para outra Disciplina;
• Uma Peça pode ser composta de diversas outras Peças.
Exercício 5-5: Considere o diagrama de classes a seguir, que exibe uma classe associativa entre as classes Pessoa e Empresa. Crie um diagrama de classes equivalente ao fornecido abaixo, mas sem utilizar uma classe associativa.
Exercício 5-6: Construa um diagrama de classes inicial para a seguinte situação: Pacotes são enviados de uma localidade a outra. Pacotes têm um peso específico. Localidades são caracterizadas pelas facilidades de transporte (por exemplo, ferroviárias, aeroportos e auto-estradas). Algumas localidades são vizinhas, isto é, existe uma rota direta de transporte entre tais localidades. A rota de transporte entre as localidades tem um certo comprimento (a distância entre as localidades). Trens, aviões e caminhões são usados para o transporte de pacotes. Cada um destes meios de transporte pode suportar uma carga máxima de peso. A cada momento, durante o seu transporte, é necessário saber a posição (localidade) de cada pacote. Também é necessário manter o controle de que meio de transporte está sendo utilizado em cada parte da rota para um certo pacote.
Restrições:
Uma rota liga facilidades de um mesmo tipo
Trens são usados em rotas entre ferrovias
Aviões são usados em rotas entre aeroportos
Caminhões são usados em rodovias
Exercício 5-7: Considere o seguinte discurso relativo a um sistema de partidas de tênis: "Num torneio de tênis, cada partida é jogada entre 2 jogadores. Pretende-se manter informação sobre o nome e idade dos jogadores; data da partida e atribuição dos jogadores às partidas. O máximo de partidas que um jogador poderá realizar é 6 e o mínimo 1. Desenhe o diagrama de classes correspondente.
Exercício 5-8: Desenhe um diagrama equivalente ao da Figura 5-10 de duas formas:
a) Utilizando uma classe ordinária para substituir a classe associativa.
b) Utilizando uma associação ternária.
Exercício 5-9: Identifique classes e/ou relacionamentos a partir das seguintes regras do negócio:
a) Pedidos são compostos de vários itens de pedido.
b) Um item de pedido diz respeito a um e exatamente um produto.
c) Um pedido pode conter até 20 itens.
Exercício 5-10: Considere um sistema de software para controlar um hotel. Normalmente, um hóspede ocupa um quarto por estadia. Mas, suponha que uma nova regra foi criada no negócio: agora, um hóspede pode utilizar até três quartos. Desenhe o diagrama de classe para essas duas situações.
a) hóspede ocupa um quarto
b) hóspede ocupa até três quartos
Exercício 5-11: Reflita sobre a seguinte afirmação: "O tamanho do cartão CRC ajuda a limitar e a restringir a complexidade das classes identificadas nas sessões CRC".
Em um modelo de classes, as responsabilidades atribuídas aos objetos devem ser distribuídas o mais uniformemente possível. Em muitos casos, um modelo no qual há uma classe que seja responsável pela maioria das atribuições do sistema muito provavelmente está mal balanceado quanto à distribuição de responsabilidades. Sempre que o modelador precisar de mais do que as dimensões usuais de um cartão CRC para enumerar as responsabilidades de uma classe, ele deve ser questionar se esta classe não está sobrecarregada com muitas responsabilidades.
Exercício 5-12: Reflita e discuta com algum colega sobre a seguinte afirmação: "Atributos são similares a associações. Um atributo de uma classe é apenas uma notação para associá-la a um conceito que tem um valor atômico".
Observe o seguinte diagrama de classes:
e sua implementação em Java:
class Livro	{
	String titulo;
	String ISBN;
	Exemplar exemplar[];
}
class Exemplar	{
	double preco;
	String codigo;
}
Observe um atributo como título e uma associação como exemplar. Qual é a diferença entre elas? Observe que ambas são implementadas como atributos da classe Livro. Olhando apenas para a implementação da classe em Java, não é possível dizer se, no diagrama de classes, o projetista representou cada uma delas como um atributo da classe ou como uma associação com uma outra classe.
Então, qual é a diferença entre um atributo e uma associação? 
Da perspectiva conceitual, não há nenhuma diferença. Um atributo carrega somente outro tipo de notação que você pode usar, se lhe parecer conveniente. Atributos, normalmente têm um único valor. Normalmente, um diagrama não indica se um atributo é opcional ou mandatório, embora você possa por a multiplicidade depois do nome do atributo entre colchetes, por exemplo: dateReceived[0..1] : Date. 
A diferença ocorre nos níveis de especificação e implementação. Os atributos implicam em navegação somente do tipo ao atributo. Além disso, é implícito que o tipo contém sua própria cópia do atributo, implicando em que atributos têm semântica de valor ao invés de referência. 
No momento, é melhor pensar em atributos como tipos simples de dados, tais como Strings, datas, quantias, inteiros e reais.
Exercício 5-13: A seguir, são enumeradas diversas responsabilidades típicas de serem encontradas em objetos de um sistema de software. Discuta qual das categorias de objetos (fronteira, controle ou entidade) é mais adequada para cumprir com cada uma dessas responsabilidades:
a) Criação ou destruição de um objeto.
b) Formação ou destruição de associações entre objetos de entidade.
c) Obtenção ou modificação de valores de atributos de um objeto de entidade.
d) Exibição de mensagens para o ator.
e) Realização de cálculos complexos.
entidade
controle
controle
fronteira
controle
Jonas 1: Modelar a situação: “Uma pessoa ao longo da vida, tem vários empregos, em empresas diferentes. Para a Previdência, é importante saber a data de admissão e a data de rescisão de contrato com cada uma dessas Empresas”
Jonas 2: Modelar a situação: “Um empregado pode trabalhar em vários projetos. Para fins de cálculo da remuneração é preciso saber quantas horas ele trabalha em cada projeto. Os empregados podem se ligar ou se desligar de um projeto a qualquer momento, mas é preciso guardar o histórico de participação dos empregados nos projetos”
Jonas3: Identificar as classes de domínio para o caso de uso abaixo. Para cada classe identificada, relacionar os atributos, operações e associações que você conseguir identificar. Construir o diagrama de classes
Realizar Inscrição (CSU01)
Sumário: Aluno usa o sistema para realizar inscrição cm disciplinas. 
Ator Primário: Aluno
AtoresSecundários: Sistema de Faturamento
Precondições: O Aluno está identificado pelo sistema.
Fluxo Principal
1. O Aluno solicita a realização de inscrição.
2. O sistema apresenta as disciplinas disponíveis para o semestre corrente e para as quais o aluno tem pré-requisitos.
3. O Aluno seleciona as disciplinas desejadas e as submete para inscrição.
4. Para cada disciplina selecionada, o sistema aloca o aluno em uma turma que apresente uma oferta para tal disciplina.
5. O sistema informa as turmas nas quais o Aluno foi alocado. Para cada alocação, o sistema informa o professor, os horários e os respectivos locais das aulas de cada disciplina.
6. O Aluno confere as informações fornecidas.
7. O sistema envia os dados sobre a inscrição do aluno para o Sistema de Faturamento e o caso de uso termina.
Fluxo Alternativo (4): Inclusão em lista de espera
a. Se não há oferta disponível para alguma disciplina selecionada pelo aluno, o sistema reporta o fato e fornece a possibilidade de inserir o Aluno em uma lista de espera.
b. Se o Aluno aceitar, o sistema o insere na lista de espera e apresenta a posição na qual o aluno foi inserido na lista. O caso de uso retorna ao passo 4.
c. Se o Aluno não aceitar, o caso de uso prossegue a partir do passo 4.
Fluxo de Exceção (4): Violação de RN01
a. Se o Aluno atingiu a quantidade máxima de inscrições (RN01), o sistema informa ao aluno a quantidade de disciplinas que ele pode selecionar, e o caso de uso retorna ao passo 2.
Pós-condições: O aluno foi inscrito em uma das turmas de cada uma das disciplinas desejadas, ou foi adicionado a uma ou mais listas de espera.
Regras de Negócio: RN01, RNO2. RNO3
Livro do Eduardo Bezerra, Figura 5-26, página 131
_1162125820.doc

Outros materiais