Buscar

DESENVOLVIMENTO DE SOFTWARE PARA WEB atv2

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 7 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

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 6, do total de 7 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

Continue navegando


Prévia do material em texto

25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 1/7
Pergunta 1
Resposta Selecionada: 
Resposta Correta: 
Padrões de projeto tem o objetivo de auxiliar o processo de projeto e implementação de sistemas
computacionais, dentre os quais podemos relacionar as páginas web . Dentre os padrões existentes,
podemos citar o GOF que consiste de uma coleção de padrões classificados em padrões de criação,
padrões estruturais e padrões comportamentais. Muitos destes padrões compõem, ainda, o padrão
MVC. Para essa questão, encontramos, abaixo, uma definição sumária de quatro destes padrões.
 
I. Singleton : permite uma única instanciação de objeto de uma classe específica.
II. Interator : objetiva acessar, sequencialmente, os elementos de uma lista sem precisar conhecer a
estrutura de relacionamento (por exemplo, array e tabela
hash ).
III. State : neste padrão, acontece uma alteração do comportamento de um objeto em função da
alteração de seu estado.
IV. Observer : um objeto realiza a notificação para outros objetos, devido a sua alteração de estado.
 
Dados os exemplos de uso, numere-os de forma a estabelecer um relacionamento entre os padrões
apresentados acima e os exemplos de uso.
 
(_) Criar um mapa do site 
a partir do percurso de todos os elementos que compõem uma coleção de menus.
(_) Delimitar uma única conexão ao banco de dados por processo.
(_) Objetos da camada de modelo notificam a camada de controle, dentro do escopo do MVC, por
ocasião de suas alterações de estado. 
(_) Dentro de um jogo de RPG, as regras (condições e consequências dos comandos “if”) dependem
do estado corrente do objeto.
 
Assinale a alternativa que contenha a sequência correta.
III; I; IV; II.
II; I; IV; III.
Pergunta 2
Para essa questão, suponha a necessidade de realizar uma validação de um campo de formulário
para que ele não assuma um valor superior a 10. Suponha, também, a lista de elementos da
codificação abaixo enumerados:
 
I. this
II. alert
III. <head>
IV. onSubmit
V. valor
 
Dado o código abaixo, complete os espaços em branco com os elementos da codificação enumerados
acima.
 
<html>
 ___ 
 <script>
 function TestaValorMaximo(f)
 {
 if(f.___.value>10)
 {
 ___("Número digitado é maior do que 10.");
 return false;
 }
 else
 {
 ___("Valor aceito.");
 return true;
 }
 } //final TestaValorMaximo
 </script>
 </head>
 <body>
 <form name="form1" ___="return TestaValorMaximo(___)">
0 em 0,25 pontos
0,25 em 0,25 pontos
25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 2/7
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
 <p>Valor: <input type="text" name="valor"></p>
 <p><label><input type="submit" name="enviar"
 value="Enviar"></label></p>
 </form>
 </body>
</hmtl>
 
Selecione a opção que tenha a sequência correta de preenchimento.
III; V; II; II; IV; I.
III; V; II; II; IV; I.
Resposta correta. Resposta correta. Você codificou corretamente a validação do campo
do formulário. O script localiza-se dentro da área de cabeçalho. E, para deixar a
validação com fraco acoplamento, foi passado o formulário por meio da referência “ this”,
assim que houver o eventoonSubmit. As janelas de aviso são abertas chamando-se o
método “ alert”.
Pergunta 3
Expressões regulares são extremamente úteis para a validação dos campos do formulário pois elas
atuam na verificação da estrutura da informação fornecida pelo usuário. Para essa questão, considere
o código a seguir.
 
<html>
 <head>
 < script 
language="JavaScript">
 function ExibirBandeiraCC(f)
 {
 var exp_regVISA = ___ ;
 var exp_regMASTER = ___ ;
 if(exp_regVISA. ___ (f. ___ .value))
 {
 alert("O cartão digitado é VISA");
 return true;
 }
 if(exp_regMASTER. ___ (f. ___ .value))
 { 
 alert("O cartão digitado é MASTER");
 return true;
 }
 alert("Cartão não é VISA e nem MASTER");
 return true;
 }
 </script>
 </head>
 <body>
 <form name="Num_CC" method=”POST”
 onSubmit="return ExibirBandeiraCC(this);">
 <p>Número do CC: <input type="text" name="cc"></p>
 <p><label><input type="submit" name="Verificar"
 value="Verificar"></label></p>
 </form>
 </body>
</html>
 
Considerando que cartões VISA sempre são iniciados pelo dígito 4 e os cartões MASTER são
iniciados com o valor 5 e o segundo dígito varia entre os valores 1 e 5
A partir destas observações, preencha os campos em aberto escolhendo itens da lista a seguir:
 
I. test
II. /^4[0-9]{12,15}$/
III. /^5[0-9]{12,15}$/
IV. /^5[1-5]{1}[0-9]{14}$/
V. cc
VI. NumCC 
0,25 em 0,25 pontos
25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 3/7
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
 
Assinale a alternativa que contém a sequência correta.
II; IV; I; V; I; V.
II; IV; I; V; I; V.
Resposta correta. Sua resposta está correta. Realmente você percebeu bem a formação
da expressão regular, principalmente do cartão MASTER. Você selecionou corretamente
o métodotest, que faz a verificação com base da expressão regular. Por fim, você
associou corretamente o nome do campo do formulário.
Pergunta 4
Resposta Selecionada: 
Resposta Correta: 
Suponha que você tenha que implementar um projeto que relaciona a classe pessoa 
(que contém o método locomover ) a três tipos de veículos: carro (métodos acelera e freia ), bicicleta
(métodospedala e freia ) e moto (métodos acelera 
e freia ). Para melhorar o projeto, pode-se, por exemplo, adotar o padrão strategy . Para essa
questão, suponha as afirmativas abaixo.
 
I. A nova versão implementaria uma interface do tipo veículo , que contém os métodos acelera e freia. 
II. A nova versão implementaria uma nova classe do tipo veículo , que contém os
métodos acelera e freia. 
III. Na nova versão, as classes carro , bicicleta e moto 
implementariam a interface veículo. 
IV. Na nova versão, as classes carro , bicicleta e moto fariam parte da composição da classe veículo .
V. Na nova versão, as classes carro , bicicleta e moto fariam um relacionamento de cardinalidade 1:1
para a interface veículo. 
 
Assinale a alternativa correta.
As afirmativas I e V são verdadeiras.
As afirmativas I e III são verdadeiras.
Pergunta 5
Resposta
Selecionada:
 
Resposta
Correta:
 
Comentários
Muito se fala em aplicar padrões de projeto ( design pattern ) para o desenvolvimento de sistemas
computacionais, dentre os quais encontram-se as páginas web . Para essa questão, considere as
afirmativas abaixo.
 
I. Possibilidade de reutilização de código, ou seja, usar componentes já utilizados em outros projetos;
II. Decomposição do sistema em camadas funcionais;
III. Separação de partes dependentes daquelas independentes do ambiente no qual o sistema será
executado.
IV. Possibilidade de uma documentação mais completa e concisa.
 
Associe as afirmativas acima com as possíveis consequências:
(_) melhor abstração do sistema, deixando-o mais legível para a codificação, depuração, correção e
manutenção;
(_) maior facilidade para a portabilidade dos sistemas para outros ambientes computacionais;
(_) facilitar o diálogo entre as equipes que atuarão no desenvolvimento do projeto;
(_) diminuição do tempo gasto para a implementação do sistema, acarretando, consequentemente,
diminuição dos gastos.
 
Assinale a opção que contenha a sequência correta de relações entre as afirmativas e as
consequências.
II; I; IV; III. 
 
 
 
 
II; III; IV; I.
Respostas incorretas. Resposta incorreta. Utilizar um padrão de projeto tem vários
0 em 0,25pontos
0 em 0,25 pontos
25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 4/7
da
Resposta:
benefícios começando pela documentação gerada. Neste caso, reflita sobre o impacto
de uma boa documentação frente às equipes de desenvolvimento. As demais
consequências estão sempre relacionadas às próprias facilidades que os padrões
incorporam no desenvolvimento do projeto para que estes sejam implementados de
forma mais rápida e eficiente, assim como altamente portáveis para os diversos
ambientes que podemos encontrar atualmente no mercado. 
 
 
Pergunta 6
Dentro da programação, independentemente de ser a codificação de um sistema baseado em
páginas web ou não, temos sempre a preocupação de sua escalabilidade. Por exemplo, vamos supor
que temos a necessidade de criar uma página para e-commerce e que são estabelecidos descontos
diferenciados para cada tipo de forma de pagamento. Suponha que um programador fez uma primeira
versão da seguinte forma (código em PHP):
 
public function retornaDesconto($formaPG,$valor_compra)
{
 if($formaPG==”Boleto”) {return $valor_compra*0.9;}
 else if($formaPG==”Debito”) {return $valor_compra*0.95;}
 else {return $valor_compra;}
}
 
Na implementação acima, temos o inconveniente de que, quando houver a necessidade de adicionar
mais uma forma de pagamento, deveremos adicionar mais uma estrutura do tipo “else if... else”.
Diante da situação, foram apresentadas algumas soluções:
 
Solução 1: criar uma classe para cada tipo de forma de pagamento. Todas as classes teriam um
método para retornar o valor com desconto – o nome e a lista de parâmetros seriam os mesmos para
todas as classes. Por exemplo, para a classe boleto, a implementação seria:
 
 class Boleto
 {
 public function ValorComDesconto($valor_compra)
 {
 return $valor_compra*0.9;
 }
 }
 
Solução 2: criar uma interface na qual todas as classes devem implementá-la. Assim, a solução ficaria:
 
interface formaPG 
 {
 public function ValorComDesconto($valor_compra);
 }
 
class Boleto implements formaPG
 {
 public function ValorComDesconto($valor_compra)
 {
 return $valor_compra*0.9;
 }
 }
 
Diante dessas duas versões de implementação, analise as afirmações a seguir. 
 
I. Não implementaria a “solução I” pois, assim que for determinado o tipo de pagamento, para criar um
objeto relativo à classe pertinente deve-se fazer uma estrutura de “if...else if...”
II. Implementaria ambas as soluções, pois ambas apresentam as mesmas vantagens e desvantagens.
III. Não implementaria a “solução II” pois as classes ficariam não flexíveis, ou seja, todas deveriam
seguir o mesmo padrão, o que dificultaria a reutilização do código.
IV. Implementaria a “solução II”, pois a modificação do código para inserir ou retirar uma forma de
pagamento, ficaria mais ágil e fácil de ser realizada.
V. Implementaria a “solução I”, pois é mais fácil de entender.
0,25 em 0,25 pontos
25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 5/7
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
 
Diante das afirmações acima, selecione a opção correta.
As afirmativas I e IV são verdadeiras.
As afirmativas I e IV são verdadeiras.
Resposta correta. Sua resposta está correta. A “solução 2” representa um padrão
chamado deStrategy (estratégia). É um dos padrões GOF usados para a linha
comportamental do sistema.
Pergunta 7
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
Para o envio das informações fornecidas pelo usuário por meio dos campos do formulário, pode-se
contar com dois métodos: o método POST e o GET. O uso do método é especificado no argumento
“ method ” da tag<form>. Para essa questão, analise as afirmações a seguir, associando o valor “V”,
para o que for verdadeiro e, o valor “F”, para o que for falso.
 
(_) A coleta do valor deve ser realizada por meio de uma função específica, da seguinte forma: var v =
getDataForm(método, nome_campo); No caso, o método passado como argumento diferenciará entre
“POST” e “GET”.
(_) Para coletar a informação, basta acessar a variável “$_GET” ou “$_POST”, referenciando o nome
do campo do formulário da seguinte forma, por exemplo, para acessar um campo denominado
“telefone” do formulário: var v = $_POST(“telefone”).
(_) É possível passar, ao servidor, informações ocultas ao usuário por meio de campos com atributo
“ hidden ” ao parâmetro type .
(_) Pode-se usar diretamente os nomes dos campos definidos na criação do formulário, porém, para
isso, é aconselhável usar, antes, o método import_request_variables().
 
Assinale a opção que contenha a sequência correta.
F; V; V; V.
F; V; V; V.
Resposta correta. Sua resposta está correta. Realmente a coleta dos valores do
formulário poderá ser feita de duas formas: utiliza-se as variáveis super globais
“$_POST” ou “$_GET” ou, ainda, pode-se utilizar as variáveis que o desenvolvedor
atribuiu aos campos do formulário. Porém, neste último caso, deve-se sincronizar as
variáveis pelo uso do método import_request_variables() ou garantindo-se que a diretiva
do PHP “register_globals” esteja setada.
Pergunta 8
Padrões de projeto tem o objetivo de auxiliar o processo de projeto e implementação de sistemas
computacionais, dentre os quais podemos relacionar as páginas web . Dentre os padrões existentes,
podemos citar o GOF que consiste de uma coleção de padrões classificados em padrões de criação,
padrões estruturais e padrões comportamentais. Muitos destes padrões compõem, ainda, o padrão
MVC. Para essa questão, encontramos, abaixo, uma definição sumária de quatro destes padrões:
 
I. Composite : permite a composição de objetos estabelecendo-se uma árvore de hierarquia e
relacionamentos entre objetos que compõem a estrutura.
II. Applicability : independentemente da estrutura do objeto, todos os objetos de uma estrutura são
tratados de forma uniforme, desprezando-se as diferenças entre eles.
III. Facade : esse padrão objetiva a construção de uma interface unificada para a integração de um
conjunto de interfaces.
IV. Data Access Object : realiza a mediação entre a aplicação propriamente dita e a base de dados.
 
Dados os exemplos de uso, numere-os de forma a estabelecer um relacionamento entre os padrões
apresentados acima e os exemplos de uso.
 
(_) Permite um baixo acoplamento e uma simplificação em relação à manutenção do sistema.
(_) Pode ser usado em ambientes que permitam uma editoração gráfica, na qual a figura consiste de
uma árvore de objetos.
(_) Criar subcamadas do sistema, permitindo uma abstração em um nível acima. 
(_) Em um editor gráfico, todos os objetos gráficos, independentemente de suas composições, podem
ser reunidos em uma classe abstrata, que incorpora as particularidades de todos os abrangidos.
0,25 em 0,25 pontos
0,25 em 0,25 pontos
25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 6/7
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
 
Assinale a alternativa que contenha a sequência correta.
IV; I; III; II.
IV; I; III; II.
Resposta correta. Sua resposta está correta. Temos vários padrões envolvendo a criação
de páginas. Cada padrão cobre um aspecto específico em relação à estrutura,
comportamento e de visão.
Pergunta 9
A validação de um campo pode ser realizada de duas maneiras: a verificação da estrutura e a
verificação do valor. No caso, por exemplo, do CPF, a verificação da estrutura poderá ser realizada
com a utilização de expressões regulares e, a verificação do valor, com codificação JavaScript direta.
Para essa questão, suponha o código para a validação estrutural abaixo.
 
<html>
 <head>
 <script language="JavaScript">function VerificarCPF(f)
 {
 var exp_regCPF = ___;
 if(exp_regCPF.test(f.___.value))
 {
 alert("___");
 return true;
 }
 else
 {
 alert("___");
 return true;
 }
 }
 </script>
 </head>
 <body>
 <form name="cadastro" method=”POST”
 _1_="return VerificarCPF(this);">
 <p>Número do CPF: <input type="text" name="cpf"></p>
 <p><label><input type="submit" name="Verificar"
 value="Verificar"></label></p>
 </form>
0,25 em 0,25 pontos
25/11/2019 Blackboard Learn
https://fmu.blackboard.com/webapps/late-Course_Landing_Page_Course_100-BBLEARN/Controller# 7/7
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
 </body>
</html>
 
Preencha os campos em aberto escolhendo itens da lista a seguir.
 
I. onSubmit
II. action
III. /^\d{3}\.\d{3}\.\d{3}\-\d{2}$/
IV. /^\d{0-9}\.\d{0-9}\.\d{0-9}\-\d{0-9}$/
V. cpf
VI. cadastro
VII. CPF não válido
VIII. CPF válido
 
Assinale a alternativa que contém a sequência correta.
 III; V; VIII; VII; I.
 III; V; VIII; VII; I.
Resposta correta. Sua resposta está correta. Você acertou a expressão regular
observando os campos que representam valores e aqueles que representam a
quantidade de ocorrências. Além disso, fez uso do método test de forma apropriada e
acertou quando usar o action e quando usar o onSubmit.
Pergunta 10
Resposta Selecionada: 
Resposta Correta: 
Feedback
da
resposta:
Padrões de projeto auxiliam a implementação de páginas web , pois permitem vários níveis de
abstrações em suas diversas funcionalidades e demandas. Dentre os vários padrões existentes
atualmente, destaca-se o GOF que, na verdade, é constituído por diversos padrões classificados em
três classes: padrões de criação, padrões estruturais e padrões comportamentais. Além do GOF,
existe o MVC – padrão preferido para a implementação de páginas. Em sua estruturação, o MVC é
constituído por três camadas: camada de visão, camada de modelo e camada de controle. Tais
camadas incorporam diversos padrões GOF. Dados os padrões a seguir, classifique-os identificando
com “M”, se ele integrar a camada de modelo; com “V”, caso ele seja implementado na camada de
visão e; com “C”, se ele estiver presente na camada de controle.
 
(_) composite 
(_) observer 
(_) strategy 
(_) factory 
 
Assinale a alternativa que corresponda à sequência correta.
V; M; C; C.
V; M; C; C.
Resposta correta. Sua resposta está correta. O “ composite” oferece recursos para a
“composição visual”. A camada de modelo, uma vez que deve informar às demais as
modificações, deve implementar a estratégia “ observer”. Por fim, a camada de controle
deve ter regras para controlar as outras duas camadas. Como exemplo de tais regras,
temos o “ strategy” e o “factory”.
0,25 em 0,25 pontos