Академический Документы
Профессиональный Документы
Культура Документы
1
Exercícios 01 e 04: exercícios extraídos do material de aula da profa. Maria Augusta (PUC Minas)
(__) O diagrama de caso de uso não pode ser utilizado para estabelecer o contrato entre o cliente,
analistas e desenvolvedores, daquilo que deverá ser implementado e construído por eles.
(__) <<include>> é uma relação de dependência que não obriga o caso de uso base a conter o
comportamento de um outro caso de uso.
(__) Atores são agentes que interagem com os casos de uso. Eles podem ser pessoas,
departamentos e sistemas de software.
(__) Atores interagem com casos de uso por meio de relacionamentos de extensão, denotado no
diagrama com o estereótipo <<extend>>.
(__) Um caso de uso é um processo de negócio relativamente longo, com começo, meio e fim.
(__) Um diagrama de caso de uso tem por objetivo representar como uma funcionalidade será
implementada e não o que ela representa para o sistema de informação.
(__) O diagrama de caso de uso pode ser utilizado como uma ponte para o documento de
requisitos e a fase de análise.
(__) Diagramas de casos de uso servem para registrar requisitos de um sistema.
(__) Associação é o meio empregado para registrar o relacionamento entre instâncias de classes.
(__) Em uma composição, quando o elemento que agrega é criado, as partes ou elementos
agregados são criados. Quando o elemento que agrega é destruído, os elementos agregados
também são destruídos.
2
5. Um aluno de uma universidade particular deve escolher disciplinas do semestre. Em seguida
ele é alocado às turmas para então receber uma fatura emitida pelo sistema de faturamento com
o valor a ser pago em função do número de turmas em que conseguiu vaga. Quais são os atores
e casos de uso?
6. A secretaria de uma universidade deve cadastrar turmas, apagá-las e modificá-las e enviá-las aos
departamentos acadêmicos? Quais são os atores e casos de uso?
7. Estude os exercícios sobre casos de uso realizados em sala de aula sobre casos de uso
(SGA/SalaAula/Atv01 e Atv02).
8. Considere o diagrama de casos de uso e marque com um X na tabela abaixo, os relacionamentos
possíveis entre atores, entre casos de usos e entre ator e caso de uso.
Entre atores Entre casos de uso Entre ator e caso de uso
Comunicação
Inclusão
Extensão
Generalização
9. Uma característica mensurável de um projeto orientado a objetos é o número de conexões físicas
entre os elementos do projeto, o que pode ser medido por meio do número de colaborações entre
as classes ou do número de mensagens passadas entre os objetos. Essa característica se refere a:
a. Acoplamento
b. Volatilidade
c. Completeza
d. Coesão
e. Suficiência
10. A coesão e o acoplamento são formas de se avaliar se a segmentação de um sistema em módulos
ou em componentes foi eficiente. Acerca da aplicação desses princípios, assinale a opção
correta.
a. O baixo acoplamento pode melhorar a manutenibilidade dos sistemas, pois ele está
associado à criação de módulos como se fossem caixas-pretas.
b. Os componentes ou os módulos devem apresentar baixa coesão e um alto grau de
acoplamento.
c. Os componentes ou os módulos devem ser fortemente coesos e fracamente acoplados.
2
Referência: http://www.dainf.ct.utfpr.edu.br/~tacla/UML/Apostila.pdf
d. Um benefício da alta coesão é permitir realizar a manutenção em um módulo sem se
preocupar com os detalhes internos dos demais módulos.
e. A modularização do programa em partes especializadas pode aumentar a qualidade desses
componentes, mas pode prejudicar o seu reaproveitamento em outros programas.
11. Defina acoplamento e coesão e complete: “Um sistema de qualidade possui _____ (alto/baixo)
grau de acoplamento e ______(alto/baixo) grau de coesão.
12. Considere a classe ao lado que representa números reais (Float) e cujos
métodos de manipulação numérica estão representados. Podemos dizer que a
classe é coesa? Justifique. Em caso negativo, também apresente as
modificações para garantir a coesão. Obs.: C=Celsius, F=Fahrenheit,
US=dólar, R=Real.
13. O que é um modelo de interação no contexto da análise e projeto de sistemas
de informação OO?
14. O que é um diagrama de sequência e um diagrama de comunicação?
15. Quais são as diferenças entre os diagramas de sequência e de comunicação?
16. O que é uma ligação (link) no diagrama de comunicação?
17. É necessário enumerar as mensagens nos diagramas de sequência? E nos de comunicação? Por
quê?
18. Na notação UML, como se representa nos diagramas de interação uma mensagem com iteração
e uma mensagem com condição?
19. No diagrama de sequência, como é chamada a linha tracejada que parte da representação do
objeto?
20. Qual a relação entre os diagramas de interação, classes, casos de uso e fluxos de casos de uso?
Como a informação de um diagrama ou artefato é usada por outro?
21. Resolva os exercícios “Ex01: diagrama de sequência” disponíveis no SGA.
22. Para o exercício 05 descrito em “Ex01: diagrama de sequência” (disponível no SGA), construa o
diagrama de comunicação equivalente.
23. O que é um padrão de projeto? Qual a sua finalidade?
24. No contexto do projeto de classes, defina responsabilidades (relacione com atributos e métodos)
e dê um exemplo.
25. O que são padrões GRASP? Por que são importantes?
26. Quais são os tipos de padrões GRASP?
27. Fazer o “Ex02: introdução a padrões projeto” disponível no SGA (quem já entregou, basta
mencionar que já foi entregue).
28. O código abaixo, não atende ao padrão GRASP Especialista.
1 /* Pseudocódigo que não atende ao padrão especialista */
2 Classe Supermercado
3
4 ClienteCorrente: Cliente;
5
6 Consulta valorTotalDaVendaCorrente();
7 venda: Venda;
8 item: itemDeVenda;
9 total: Moeda = 0,00;
10
11 venda := clienteCorrente.getVendaCorrente();
12 repita para caa item em venda.getItensDeVenda():
13 toral := total + (item.getQuantidade() * item.getProduto().getPreço());
14 fim repita
15 retorna totla
16 fim consulta
17 Fim Classe.
a. Desenhe o diagrama de sequência analisando os motivos e explique por que o padrão
Especialista não é atendido.
b. Refaça o pseudocódigo, atribuindo as responsabilidades para as classes que julgar pertinente e
também desenhe um diagrama de comunicação para a sua proposição (Veja exemplo nos slides
6 a 9, PSI_Aulas08_09-Padrões Grasp Básicos.
29. Considere o código abaixo escrito em C#. O padrão GRASP baixo acoplamento não foi
observado.
a. Explique sucintamente o que diz esse padrão e sua importância.
b. Identifique as partes do código que demonstram o baixo acoplamento e qual o tipo de
acoplamento (de dados, de controle, de dados globais, de dados internos). Justifique.
c. Qual padrão GRASP pode ser utilizado para minimizar o acoplamento, dada a identificação
das situações que levam ao baixo acoplamento? Justifique.
d. Com base na resposta b, proponha uma nova solução (em código C#).