Você está na página 1de 22

Painel ► Meus cursos ► INE5419-05208 (20211) ►

4ª Parte - ESPECIFICAÇÃO FORMAL – Livro: Análise e Design ► P4

Iniciado em Thursday, 23 Sep 2021, 10:17


Estado Finalizada
Concluída em Thursday, 23 Sep 2021, 11:38
Tempo empregado 1 hora 21 minutos
Notas 16,16/20,00
Avaliar 8,08 de um máximo de 10,00(81%)

Questão 1 O conceito de alta coesão, utilizado no processo de modelagem de software, é um


Correto princípio essencia de

Atingiu 1,00 de
Escolha uma opção:
1,00
a. Separação de interesses

b. Abstração
c. Generalidade
d. Incrementação

e. Modularidade

Sua resposta está correta.


A resposta correta é: Modularidade
Questão 2 Considere a seguinte descrição: “Cada quadra corresponde a um único esporte, mas
Correto um esporte pode ser praticado em várias quadras. Cada time está associado a uma
única quadra. Cada time pratica um único esporte, que corresponde ao esporte da
Atingiu 1,00 de
quadra à qual ele está associado. Uma quadra pode ter vários times”. Qual das opções
1,00
abaixo corresponde a um modelo conceitual que melhor representa esta situação?

Escolha uma opção:


a.

b.

c.

d.
e.

Sua resposta está correta.


A resposta correta é:
Questão 3 Considerando os três tipos de padrões de junção de objetos, associe cada situação
Parcialmente com o padrão mais adequado.
correto
Existem algumas doenças sobre as quais não há consenso
Atingiu 0,60 de
entre os médicos sobre se tratar de uma única doença ou
1,00
doenças diferentes. Um exemplo disso são certos tipos de Copiar e substituir
hepatite. De acordo com suas convicções cada médico deve
receber informações sobre a doença X ou sobre as doenças X
e Y caso este médico acredite que elas são equivalentes.

Uma empresa vende personagens impressos em 3d de


diferentes franquias. Além de permitir a pesquisa em
Objeto essencial
catálogo dos personagens por franquia a empresa ainda
permite pesquisar diferentes versões de um mesmo
personagem.

Um sistema de controle de produtos numa feira de orgânicos


permite o registro de diferentes tipos de vegetais.
Determinado dia um operador desse sistema percebeu que
havia o registro de um produto chamado "bergamota" que
Copiar e substituir
também estava registrado como "tangerina" e "mexerica".
Sabendo que as três denominações se referem à mesma
fruta, o ideal seria unificar estes registros sob o nome de
"bergamota", mais usado na região. Não há razão para
manter registros dos outros nomes usados.

Um posto de saúde controla a carteira de vacinação dos seus


usuários. Um usuário proveniente de outro município não
tem nenhuma vacina registrada neste posto, mas tem vários
registros no seu município de origem. Embora os bancos de
dados não sejam unificados, eles permitem interoperação. Copiar e substituir
Desta forma, o prontuário do paciente em cada posto deve
ser mantido independente ou seja, o registro de cada vacina é
feito apenas no posto onde a vacinação foi feita. Mas quando
consultada a carteira de vacinas, todas as vacinas devem
aparecer independentemente de onde foram feitas.

Na organização política do Brasil, de tempos em tempos são


criados novos estados e, com mais frequência, novos
Sucessor
municípios. Acontece também, mais raramente, a fusão de
estados ou municípios, alterando a organização política
corrente

Sua resposta está parcialmente correta.


Você selecionou corretamente 3.
A resposta correta é: Existem algumas doenças sobre as quais não há consenso entre
os médicos sobre se tratar de uma única doença ou doenças diferentes. Um exemplo
disso são certos tipos de hepatite. De acordo com suas convicções cada médico deve
receber informações sobre a doença X ou sobre as doenças X e Y caso este médico
acredite que elas são equivalentes. → Objeto essencial, Uma empresa vende
personagens impressos em 3d de diferentes franquias. Além de permitir a pesquisa
em catálogo dos personagens por franquia a empresa ainda permite pesquisar
diferentes versões de um mesmo personagem. → Objeto essencial, Um sistema de
controle de produtos numa feira de orgânicos permite o registro de diferentes tipos de
vegetais. Determinado dia um operador desse sistema percebeu que havia o registro
de um produto chamado "bergamota" que também estava registrado como
"tangerina" e "mexerica". Sabendo que as três denominações se referem à mesma
fruta, o ideal seria unificar estes registros sob o nome de "bergamota", mais usado na
região. Não há razão para manter registros dos outros nomes usados. → Copiar e
substituir, Um posto de saúde controla a carteira de vacinação dos seus usuários. Um
usuário proveniente de outro município não tem nenhuma vacina registrada neste
posto, mas tem vários registros no seu município de origem. Embora os bancos de
dados não sejam unificados, eles permitem interoperação. Desta forma, o prontuário
do paciente em cada posto deve ser mantido independente ou seja, o registro de cada
vacina é feito apenas no posto onde a vacinação foi feita. Mas quando consultada a
carteira de vacinas, todas as vacinas devem aparecer independentemente de onde
foram feitas. → Objeto essencial, Na organização política do Brasil, de tempos em
tempos são criados novos estados e, com mais frequência, novos municípios. Acontece
também, mais raramente, a fusão de estados ou municípios, alterando a organização
política corrente → Sucessor.
Questão 4 Considere o modelo conceitual abaixo que corresponde ao padrão de hierarquia
Correto organizacional:

Atingiu 1,00 de
1,00

Supondo que se deseja criar um conjunto de regras que definem quais tipos de
estruturas podem estar diretamente subordinadas a quais outros tipos, assinale
dentre as opções abaixo aquela que melhor permite representar este tipo de requisito.

Escolha uma opção:


a.

b.
c.

d.

e.

Embora o modelo sozinho não garanta as regras, pode-se implementar a


detecção de violação das regras no código com este modelo

Sua resposta está correta.


A resposta correta é:

Questão 5 Em relação a contratos de operação de sistema como operação(x:Tipo) é correto


Correto afirmar que:

Atingiu 1,00 de
Escolha uma opção:
1,00
a. Se x pode assumir valores inválidos para a operação então deve ser definida
obrigatoriamente uma precondição e uma exceção

b. Mesmo que x possa assumir valores inválidos para a operação, não é


necessário definir nem precondição nem exceção no contrato.
c. Se x pode assumir valores inválidos para a operação então deve ser definida
obrigatoriamente uma exceção.

d. Se x pode assumir valores inválidos para a operação então deve ser definida
obrigatoriamente uma precondição.

e. Se x pode assumir valores inválidos para a operação então deve ser definida
obrigatoriamente uma precondição ou exceção.

Sua resposta está correta.


A resposta correta é: Se x pode assumir valores inválidos para a operação então deve
ser definida obrigatoriamente uma precondição ou exceção.
Questão 6 Considere que uma regra de negócio estabelece que faturas terão valor devido mínimo
Incorreto de 100 reais, porque abaixo disso a empresa não pode atender a nenhum pedido.
Neste caso, seria recomendável especificar essa condição usando qual das opções
Atingiu 0,00 de
abaixo?
1,00
 

Escolha uma opção:


a. Um atributo com valor inicial na classe Fatura.

b. Um atributo derivado na classe Fatura.

c. Uma invariante na classe Fatura.


d. Um contrato com pré e pós-condições na operação setValorDevido da classe
Fatura.

e. Um contrato com pré e pós-condições na operação que cria uma instância de


Fatura.

Sua resposta está incorreta.


Trata-se de uma regra que vale sempre. Portanto, a estrutura correta é a invariante
neste caso.
A resposta correta é: Uma invariante na classe Fatura.

Questão 7 Uma classe de especificação:


Correto
Escolha uma opção:
Atingiu 1,00 de
1,00 a. É uma classe usada para especificar outra, com a qual ela mantém sempre
uma associação de 1 para 1.

b. É uma classe concreta que tem classes abstratas como subclasses.


c. É uma classe abstrata que tem classes concretas como subclasses.

d. Representa um conceito cujos atributos têm valores que seriam repetidos por
grupos de instâncias de uma outra classe.
e. Representa um conceito cujos atributos têm valores que seriam só repetidos
por instâncias de várias outras classes diferentes.

Sua resposta está correta.


A resposta correta é: Representa um conceito cujos atributos têm valores que seriam
repetidos por grupos de instâncias de uma outra classe.
Questão 8 Qual o efeito da seguinte expressão OCL?
Correto
{1,2,3,4,5,6,7,8} -> select(x | x*2 > 6)
Atingiu 1,00 de
1,00
Escolha uma opção:
a. Ela retira os elementos {1,2,3} do conjunto original.

b. Ela retorna o somatório de todos os elementos do conjunto.


c. Ela retorna o conjunto {4,5,6,7,8}.

d. Ela retira os elementos {4,5,6,7,8} do conjunto original.

e. Ela retorna o conjunto {1,2,3}.

Sua resposta está correta.


A expressão seleciona e retorna apenas os elementos cujo dobro é maior do que seis,
ou seja, 4, 5, 6, 7 e 8. Ela não modifica o conjunto original.
A resposta correta é: Ela retorna o conjunto {4,5,6,7,8}.
Questão 9 Considere a classe Control, com uma associação 1 para * com a classe Pedido. Pedido,
Correto por sua vez tem um atributo id e uma associação 1 para * com a classe Item. Considere
a seguinte expressão OCL:
Atingiu 1,00 de
1,00
Context Control::deletaPedido(umId:IDPedido)

  pre:

pedido->select(id=umId)->notEmpty()

  post:

pedido.destroy() AND

    pedido.item.destroy()

O que se pode afirmar sobre esta expressão?

Escolha uma opção:


a. Ela é falha porque define que o pedido é destruído antes dos seus itens. Mas
se o pedido já foi destruído, como ter acesso aos itens para destruí-los?

b. Ela correta, mas como a associação entre Control e Pedido não é qualificada
seria melhor que a pré condição fosse escrita como pedido[umId]->notEmpty().

c. Ela é falha porque linguagens de programação modernas implementam o


Garbage Collector, com o qual não é necessário mais destruir objetos
explicitamente, bastando para isso remover todas as associações fortes para ele.
d. Ela define corretamente que quando a operação deletaPedido for executada o
pedido identificado é destruído, bem como todos os seus itens. Você lembrou
corretamente que a ordem em que as declarações são feitas é irrelevante em uma
linguagem declarativa como OCL.

e. Ela é falha porque dentro do select na precondição há um contexto ambíguo


(Control e Pedido) e, portanto, o uso de self ali seria obrigatório.

Sua resposta está correta.


A resposta correta é: Ela define corretamente que quando a operação deletaPedido for
executada o pedido identificado é destruído, bem como todos os seus itens.
Questão 10 O design pattern “coesão alta” implica que:
Correto
Escolha uma opção:
Atingiu 1,00 de
1,00 a. Deve-se minimizar a complexidade interna das classes.

b. Deve-se aumentar o número médio de ligações de visibilidade entre as


classes.

c. Deve-se minimizar as ligações de visibilidade entre as classes.


d. Deve-se aumentar a complexidade interna das classes.

e. Deve-se minimizar o número de atributos das classes.

Sua resposta está correta.


A resposta correta é: Deve-se minimizar a complexidade interna das classes.
Questão 11 Considere o seguinte modelo conceitual:
Incorreto

Atingiu 0,00 de
1,00

Falta neste modelo uma invariante que garanta que cada transferência é feita entre
contas diferentes e que este valor tem que ser superior a zero. Assinale a expressão
OCL que melhor representa esta invariante.
 
 

Escolha uma opção:


a.

Context Transferência

inv:

origem <> destino AND

valor > 0

b.

Context Transferência

pre:

origem <> destino AND

valor <> 0

c.

Context Transferência

inv:

origem <> destino AND

valor <> 0

d.
Context Transferência::valor

inv:

origem <> destino AND

valor > 0

No caso de invariantes, o contexto é a classe. Não há subcontexto.


e.

Context Transferência::valor

inv:

origem <> destino AND

valor <> 0

Sua resposta está incorreta.


A resposta correta é:
Context Transferência

inv:

origem <> destino AND

valor > 0
Questão 12 Qual das expressões OCL abaixo melhor representa a seguinte pós-condição: “o salário
Correto de todos os funcionários que ganham menos de 1000 foi reajustado em 10%”?

Atingiu 1,00 de
Escolha uma opção:
1,00
a.

self.funcionários->forAll (f | f.salário@pre < 1000 implies f.setSalário(f.salári


o * 1.1))

b.
self.funcionários->collect (f | f.salário < 1000 implies f.setSalár
io(f.salário@pre * 1.1))

c.

self.funcionários->collect (f | f.salário@pre < 1000 implies f.setS


alário(f.salário@pre * 1.1))

d.

self.funcionários->select (f | f.salário@pre < 1000 implies f.setSa


lário(f.salário * 1.1))

e.

self.funcionários->forAll (f | f.salário@pre < 1000 implies f.setSa


lário(f.salário@pre * 1.1))

Sua resposta está correta.


A resposta correta é:

self.funcionários->forAll (f | f.salário@pre < 1000 implies f.setSalár


io(f.salário@pre * 1.1))
Questão 13 Considere que um modelo conceitual já possui uma invariante que estabelece que
Incorreto nenhum aluno pode se matricular em mais do que 25 créditos. Considere agora que
você vai desenvolver um comando de sistema que matricula um aluno em uma
Atingiu 0,00 de
disciplina. Qual das opções abaixo corresponde a uma alternativa correta para este
1,00
cenário.

Escolha uma opção:


a. Deve-se criar uma precondição no contrato do comando estabelecendo que o
número de créditos não pode passar de 25.

b. Deve-se criar uma pós condição no contrato do comando estabelecendo que


o número de créditos não pode passar de 25.

c. Pode-se criar uma precondição no contrato que estabelece que quem chamar
a operação deve obedecer à invariante.
d. Pode-se criar uma exceção no contrato que estabelece que quem chamar a
operação deve obedecer à invariante.

e. Deve-se criar uma exceção no contrato do comando estabelecendo que o


número de créditos não pode passar de 25. A invariante já define essa
exceção. Então isso seria redundante.

Sua resposta está incorreta.


A resposta correta é: Pode-se criar uma precondição no contrato que estabelece que
quem chamar a operação deve obedecer à invariante.
Questão 14 Considere o modelo conceitual abaixo:
Correto

Atingiu 1,00 de
 
1,00

Em relação a este modelo, pode-se afirmar que:

Escolha uma opção:


a. Para toda instância de B corresponde pelo menos uma instância de C.

b. A cada instância de B corresponde um conjunto, possivelmente vazio, de


instâncias de A.

c. O número de instâncias de C deve ser necessariamente menor do que o


número de instâncias de B.

d. A cada instância de B corresponde um conjunto não vazio de instâncias de C

e. Para toda instância de B corresponde uma instância de A.

Sua resposta está correta.


A resposta correta é: A cada instância de B corresponde um conjunto, possivelmente
vazio, de instâncias de A.
Questão 15 Considerando os quatro tipos principais de coleção disponíveis em UML, OCL e na
Parcialmente maioria das linguagens de programação. Associe cada situação do mundo real com a
correto estrutura mais adequada:

Atingiu 0,56 de
1,00 Conjunto ordenado
Lista de aprovados no vestibular em um determinado curso.

Lista de tarefas a fazer organizadas por prioridade (ex. Sequence


consertar telhado, dar comida ao gato, cortar a grama, etc).

Bag
Lista de senhas para atendimento em um banco

Bag
Sequência de números de Fibonacci

Bag
Lista de pacientes na sala de espera

Lista de disciplinas de um curso (sem considerar pré Conjunto


requisitos)

Bag
Lista dos fatores primos de um número N

Conjunto
Lista de sócios em uma empresa.

Bag
Lista de compras em um supermercado.

Sua resposta está parcialmente correta.


Você selecionou corretamente 4.
A resposta correta é: Lista de aprovados no vestibular em um determinado curso. →
Conjunto ordenado, Lista de tarefas a fazer organizadas por prioridade (ex. consertar
telhado, dar comida ao gato, cortar a grama, etc). → Conjunto ordenado, Lista de
senhas para atendimento em um banco → Conjunto ordenado, Sequência de números
de Fibonacci → Sequence, Lista de pacientes na sala de espera → Conjunto ordenado,
Lista de disciplinas de um curso (sem considerar pré requisitos) → Conjunto, Lista dos
fatores primos de um número N → Bag, Lista de sócios em uma empresa. → Conjunto,
Lista de compras em um supermercado. → Conjunto.
Questão 16 Considerando o padrão Intervalo, representado pela figura abaixo, assinale apenas as
Correto razões corretas para usar este padrão.

Atingiu 1,00 de
1,00

Escolha uma ou mais:


a. O padrão é suportado por todos os bancos de dados comerciais.
b. A interface com usuário fica mais amigável.

c. Aumenta a coesão da classe à qual o atributo pertence.

d. Permite implementar o código específico de operações sobre intervalos em


uma única classe ao invés de estar espalhado em várias classes.

e. O código gerado ganha em eficiência de tempo de execução

Sua resposta está correta.


As respostas corretas são: Aumenta a coesão da classe à qual o atributo pertence.,
Permite implementar o código específico de operações sobre intervalos em uma única
classe ao invés de estar espalhado em várias classes.
Questão 17 Sobre contratos de operação de sistema, pode-se afirmar que:
Correto
Escolha uma opção:
Atingiu 1,00 de
1,00 a. São celebrados entre o desenvolvedor e seus clientes para definir o
cronograma do desenvolvimento do software e seus custos.

b. Podem ser feitos para cada consulta e comando de sistema. Podem conter
pré-condições e contêm necessariamente pós-condições ou resultados
dependendo do tipo.
c. São feitos para cada operação de sistema. Contém a especificação do
algoritmo que realiza a operação (usualmente um fluxograma).
d. É feito um contrato para cada caso de uso, indicando o que ele produz como
resultado para os atores.

e. Cada contrato define o que deve ser verdadeiro antes da operação ser
executada através de pré-condições, portanto, um contrato de operação de
sistema não pode prever exceções.

Sua resposta está correta.


A resposta correta é: Podem ser feitos para cada consulta e comando de sistema.
Podem conter pré-condições e contêm necessariamente pós-condições ou resultados
dependendo do tipo.
Questão 18 Considere a classe Control ligada por uma associação qualificada por cpf 1 para 0..1 à
Correto classe Pessoa. Pessoa é ligada por uma associação 1 para * à classe Pedido. Pedido é
ligado por uma associação 1 para * à classe Item. Item é ligado por uma associação *
Atingiu 1,00 de
para 1 à classe Livro. Considere a expressão OCL:
1,00

Context Control::consultaLivros(umCPF:CPF):Set<Livro>

  pre:

pessoa[umCPF]->notEmpty()

  body:

pessoa.item.livro

O que há de errado com essa expressão?

Escolha uma opção:


a. Consultas de sistema não podem ter precondições.

b. Não é possível em OCL escrever expressões sequenciais com ".".


c. No lugar de body deveria-se usar post.

d. A expressão correta seria:

pessoa.pedido.item.livro

e. No lugar de pessoa[umCPF] deveria se escrever pessoa->select(umCPF=cpf).

Sua resposta está correta.


A resposta correta é: A expressão correta seria:

pessoa.pedido.item.livro
Questão 19 Qual das opções abaixo não pode ser usada em geral como pós condição em contratos
Correto de operação (comando) de sistema.

Atingiu 1,00 de
Escolha uma opção:
1,00
a. Uma determinada instância foi destruída.

b. Foi criada uma nova instância de uma determinada classe.

c. O valor de um atributo foi alterado.

d. O valor de um atributo foi consultado.

e. Foi removida a ligação entre duas instâncias.

Sua resposta está correta.


Pós condições são usadas em comandos que devem alterar informações, mas não
retornar informações. Assim, a consulta ao valor de um atributo não se constitui em
pós-condição válida, exceto em situações bastante específicas.
A resposta correta é: O valor de um atributo foi consultado.

Questão 20 Qual seria o resultado da seguinte expressão:


Correto
Set{1,2,3,4,5,6,7}->collect(x|x.isEven())  -- isEven = “predicado é pa
Atingiu 1,00 de
r”
1,00

Escolha uma opção:


a. Set{true}

b. Set{2, 4, 6, 8, 10, 12, 14}

c. Sequence{false, true, false, true, false, true, false}

d. Set{false, true} Há números pares e ímpares no conjunto. Como se trata


de um conjunto, não há elementos repetidos.

e. Set{false, true, false, true, false, true, false}

Sua resposta está correta.


A resposta correta é: Set{false, true}

◄ CHAPTER 8

Seguir para...

Lâminas 6-8 ►

Você também pode gostar