Você está na página 1de 15

Painel ► Meus cursos ► INE5419-05208 (20202) ► 4ª Parte - ESPECIFICAÇÃO FORMAL – Livro: Análise e Design ► P4

Questão 1 Em relação a contratos de operação de sistema como operação(x:Tipo) é correto a rmar que:
Resposta salva
Escolha uma opção:
Vale 1,00 ponto(s).
a. Se x pode assumir valores inválidos para a operação então deve ser de nida obrigatoriamente uma precondição
ou exceção.

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

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

e. Mesmo que x possa assumir valores inválidos para a operação, não é necessário de nir nem precondição nem
exceção no contrato.

Questão 2 O conceito de alta coesão, utilizado no processo de modelagem de software, é um princípio essencia de
Resposta salva
Escolha uma opção:
Vale 1,00 ponto(s).
a. Incrementação

b. Abstração
c. Modularidade

d. Generalidade
e. Separação de interesses
Questão 3 Considerando os três tipos de padrões de junção de objetos, associe cada situação com o padrão mais adequado.
Resposta salva
Na organização política do Brasil, de tempos em tempos são criados novos estados e, com mais
Vale 1,00 ponto(s).
frequência, novos municípios. Acontece também, mais raramente, a fusão de estados ou Sucessor
municípios, alterando a organização política corrente

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 uni cados, eles permitem
interoperação. Desta forma, o prontuário do paciente em cada posto deve ser mantido Copiar e substituir
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.

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
Copiar e substituir
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.

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".
Copiar e substituir
Sabendo que as três denominações se referem à mesma fruta, o ideal seria uni car estes
registros sob o nome de "bergamota", mais usado na região. Não há razão para manter registros
dos outros nomes usados.

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 Objeto essencial
diferentes versões de um mesmo personagem.
Questão 4 Qual a interpretação correta para a expressão OCL abaixo?
Resposta salva
Context Pedido::data
Vale 1,00 ponto(s).
init: Date.getCurrent()

Escolha uma opção:


a. Toda vez que uma instância de pedido for criada, o atributo data já estará inicializado com a data do sistema.

b. A expressão de ne uma invariante que estabelece que a data de um pedido deve ser sempre igual à data do
sistema.
c. Depois de de nido o valor inicial da data de um pedido como a data do sistema ele não pode mais ser mudado, ou
seja, é imutável.
d. A expressão não faz sentido.

e. data é um atributo derivado, portanto, não importa o dia em que estivermos, ele sempre terá um valor igual à data
do sistema.
Questão 5 Considere o seguinte modelo conceitual:
Resposta salva

Vale 1,00 ponto(s).

Foi solicitado que você especi casse o contrato do comando de


sistema Banco::efetuarTransferência(nrContaFonte:NrConta, nrContaDestino:NrConta, valor:Moeda).
Regras de negócio:
O valor transferido deve ser positivo e debitado da conta origem e creditado na conta destino.
A data da transferência deve ser preenchida com a data de hoje.
Os números das contas de origem e destino já foram validados antes de chamar a operação.
Se a conta de origem car negativa, deve ser gerada uma exceção.

Selecione abaixo o contratos que corretamente especi ca este comando.

Escolha uma opção:


a.
Banco::efetuarTransferência(nrContaFonte:NrConta, nrContaDestino:NrConta, valor:Moeda)
def:
contaFonte = conta[nrContaFonte]
contaDestino = conta[nrContaDestino]
pre:
contaFonte->notEmpty() AND
contaDestino->notEmpty() AND
valor > 0
post:
novaTransferência = isNewInstanceOf(Transferência) AND
novaTransferência^setData(Date.today()) AND
novaTranferência^setValor(valor) AND
contaFonte^setSaldo(contaFonte.saldo@pre - valor) AND
contaDestino^setSaldo(contaDestino@pre + valor)
exception:
contaFonte - valor < 0 implies throw("saldo insuficiente")

b.

Banco::efetuarTransferência(nrContaFonte:NrConta, nrContaDestino:NrConta, valor:Moeda)


def:
contaFonte = conta[nrContaFonte]
contaDestino = conta[nrContaDestino]
pre:
contaFonte->notEmpty()
contaDestino->notEmpty()
valor > 0
post:
novaTransferência.isNewInstanceOf(Transferência)
novaTransferência^setData(Date.today())
novaTranferência^setValor(valor)
contaFonte^setSaldo(contaFonte.saldo@pre - valor)
contaDestino^setSaldo(contaDestino@pre + valor)
exception:
contaFonte - valor < 0 implies throw("saldo insuficiente")
c.

Banco::efetuarTransferência(nrContaFonte:NrConta, nrContaDestino:NrConta, valor:Moeda)


def:
contaFonte = conta[nrContaFonte]
contaDestino = conta[nrContaDestino]
pre:
contaFonte->notNull() AND
contaDestino->notNull() AND
valor > 0
post:
novaTransferência.isNewInstanceOf(Transferência) AND
novaTransferência^setData(Date.today()) AND
novaTranferência^setValor(valor) AND
contaFonte^setSaldo(contaFonte.saldo@pre - valor) AND
contaDestino^setSaldo(contaDestino@pre + valor)
exception:
contaFonte - valor < 0 implies throw("saldo insuficiente")

d.
Banco::efetuarTransferência(nrContaFonte:NrConta, nrContaDestino:NrConta, valor:Moeda)
def:
contaFonte = conta[nrContaFonte]
contaDestino = conta[nrContaDestino]
pre:
contaFonte->notEmpty() AND
contaDestino->notEmpty() AND
valor > 0
post:
novaTransferência.isNewInstanceOf(Transferência) AND
novaTransferência^setData(Date.today()) AND
novaTranferência^setValor(valor) AND
contaFonte^setSaldo(contaFonte.saldo@pre - valor) AND
contaDestino^setSaldo(contaDestino@pre + valor)
exception:
contaFonte - valor < 0 implies throw("saldo insuficiente")

e.
Banco::efetuarTransferência(nrContaFonte:NrConta, nrContaDestino:NrConta, valor:Moeda)
def:
contaFonte = conta[nrContaFonte]
contaDestino = conta[nrContaDestino]
pre:
contaFonte->notEmpty() AND
contaDestino->notEmpty() AND
valor > 0
post:
novaTransferência.isNewInstanceOf(Transferência) AND
novaTransferência^setData(Date.today()) AND
novaTranferência^setValor(valor) AND
contaFonte^setSaldo(contaFonte.saldo@pre - valor) AND
contaDestino^setSaldo(contaDestino@pre + valor)
exception:
contaFonte < 0 implies throw("saldo insuficiente")
Questão 6 Considere o modelo conceitual abaixo que corresponde ao padrão de hierarquia organizacional:
Resposta salva

Vale 1,00 ponto(s).

Supondo que se deseja criar um conjunto de regras que de nem 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.

Questão 7 Sobre contratos de operação de sistema, pode-se a rmar que:


Resposta salva
Escolha uma opção:
Vale 1,00 ponto(s).
a. É feito um contrato para cada caso de uso, indicando o que ele produz como resultado para os atores.
b. Cada contrato de ne 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.
c. São celebrados entre o desenvolvedor e seus clientes para de nir o cronograma do desenvolvimento do software e
seus custos.

d. 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.
e. São feitos para cada operação de sistema. Contém a especi cação do algoritmo que realiza a operação
(usualmente um uxograma).
Questão 8 Considerando os quatro tipos principais de coleção disponíveis em UML, OCL e na maioria das linguagens de programação.
Resposta salva Associe cada situação do mundo real com a estrutura mais adequada:

Vale 1,00 ponto(s).


Lista de aprovados no vestibular em um determinado curso. Conjunto

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

Sequência de números de Fibonacci Sequence

Lista de tarefas a fazer organizadas por prioridade (ex. consertar telhado, dar comida ao gato,
Conjunto ordenado
cortar a grama, etc).

Lista de sócios em uma empresa. Conjunto

Lista de pacientes na sala de espera Conjunto ordenado

Lista dos fatores primos de um número N Conjunto

Lista de compras em um supermercado. Conjunto

Lista de senhas para atendimento em um banco Conjunto ordenado


Questão 9 Considere o seguinte modelo conceitual:
Resposta salva

Vale 1,00 ponto(s).

Regras de negócio:
A cada venda corresponde um certo número de parcelas (no mínimo 1 e, no máximo, tipicamente 12).
Cada parcela será associada a um pagamento quando este ocorrer., o que implica na quitação da parcela.

Assinale abaixo a opção de multiplicidades que melhor representa estes requisitos respectivamente: p1, p2, p3 e p4.
 
 
 

Escolha uma opção:


a. 1 / 1..* / 1 / 1

b. 1 / 1..* / 0..1 / 0..1

c. 1 / * / 1 / 0..1
d. 1 / 1..* / 1 / 0..1

e. 1 / 1..12 / 1 / 0..1
Questão 10 Ao desenvolver um sistema de gerenciamento de arquivos, um desenvolvedor precisou implementar um módulo para
Resposta salva compactação de arquivos, os quais podem ser arquivos de texto, áudio ou imagens. Sua solução é apresentada abaixo:

Vale 1,00 ponto(s).

Supondo que existam vários algoritmos de compactação e que o usuário pode escolher qualquer um deles para compactar
seus arquivos, observa-se que a solução acima não é totalmente adequada. Qual padrão de análise deveria ser usado no
modelo acima para melhor atender aos requisitos?
 
 
 

Resposta: Estrategia

◄ CHAPTER 8

Seguir para...

Lâminas 6-8 ►

Você também pode gostar