Buscar

ATIVIDADE 2 Desenvolvimento de Software para Web

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

· Pergunta 1
1 em 1 pontos
	
	
	
	Temos inúmeros padrões de projeto que podemos aplicar no desenvolvimento de nossas páginas, dentre os quais, podemos mencionar o padrão GOF e o padrão MVC. Analise as afirmações abaixo, classificando-as como “V”, se forem verdadeiras, ou “F”, se forem falsas.
 
(_) O padrão GOF é mais restritiva, ou seja, analisa um aspecto em específico.
(_) O padrão GOF contempla três grupos: criação; estrutural e comportamental.
(_) O padrão GOF é o preferido para a implementação de páginas.
(_) O padrão MVC é totalmente divergente em relação ao GOF.
 
Assinale a alternativa que que apresenta a sequência correta.
	
	
	
	
		Resposta Selecionada:
	 
F; V; V; F.
	Resposta Correta:
	 
F; V; V; F.
	Feedback da resposta:
	Resposta correta. Resposta correta. Realmente o padrão MVC é o preferido para a implementação das páginas, pois realiza a abstração do sistema sob vários pontos de vista. Essa decomposição funcional e estrutural, utilizando elementos do GOF, permite que os vários aspectos demandados pelas páginas possam ser supridos.
	
	
	
· Pergunta 2
1 em 1 pontos
	
	
	
	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.
	
	
	
	
		Resposta Selecionada:
	 
II; I; IV; III.
	Resposta Correta:
	 
II; I; IV; III.
	Feedback da resposta:
	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 3
1 em 1 pontos
	
	
	
	Às vezes, por uma questão de praticidade ou de comodidade, desenvolvemos páginas em um ambiente diferente em relação ao de produção. Aquele que o sistema, em sua versão final, será implantado para ser operado. Analise as afirmativas a seguir e assinale com “V”, o que for verdadeiro e com “F”, o que for falso.
 
(_) O desenvolvedor deve prestar atenção em diferenças dos ambientes Linux e Windows, como, por exemplo, realizar a verificação dos atributos de permissão de arquivos, mais rígidos no Linux.
(_) Deve-se optar por desenvolver em um ambiente distinto em relação à produção para que se possa testar a compatibilidade do código.
(_) Caso haja necessidade de desenvolver em uma máquina Windows, pode-se instalar uma máquina virtual Linux para que todo o trabalho seja desenvolvido para tal ambiente.
(_) Apache e MySQL foram desenvolvidos nativamente para Linux.
 
Assinale a opção correta.
	
	
	
	
		Resposta Selecionada:
	 
V; F; V; V.
	Resposta Correta:
	 
V; F; V; V.
	Feedback da resposta:
	Resposta correta. Sua resposta está correta. O desenvolvimento de páginas que envolvem PHP, Apache e MySQL serão melhor desenvolvidos e executados em ambientes dotados de Linux. É interessante que os ambientes (de desenvolvimento e de produção) sejam iguais, para se evitar possíveis comportamentos indesejados de processamento.
	
	
	
· Pergunta 4
1 em 1 pontos
	
	
	
	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étodos pedala 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.
	
	
	
	
		Resposta Selecionada:
	 
As afirmativas I e III são verdadeiras.
	Resposta Correta:
	 
As afirmativas I e III são verdadeiras.
	Feedback da resposta:
	Resposta correta. Você assinalou a alternativa correta. O padrão strategy sempre implicará em criação de uma interface para que haja apenas um ponto de relacionamento entre o agente e os métodos relativos às classes aglutinadas pela interface.
	
	
	
· Pergunta 5
1 em 1 pontos
	
	
	
	Várias páginas oferecem a possibilidade de interação com o usuário por meio de formulários. Para um processamento correto, as informações fornecidas devem ser validadas, para que possam ser processadas no servidor. Considerando isso, analise as afirmações a seguir.
 
I. Em um modelo de III camadas, a validação do formulário deve ocorrer na camada I, tanto em relação à estrutura, quanto em relação à regra de negócio.
II. A validação de estrutura deve ocorrer na camada I e a validação em relação às regras de negócio na camada II.
III. É comum usar, para a validação em relação à estrutura, JavaScript e, para as regras de negócio, comumente usa-se PHP.
IV. Toda validação é realizada na camada II, aplicando-se funções escritas em PHP.
 
A partir das observações realizadas, marque a alternativa correta.
	
	
	
	
		Resposta Selecionada:
	 
As afirmativas II e III são verdadeiras.
	Resposta Correta:
	 
As afirmativas II e III são verdadeiras.
	Feedback da resposta:
	Resposta correta. Sua resposta está correta. Realmente, para uma melhor estruturação, aproveitamento dos recursos (tanto de processamento, quanto de comunicação), divide-se o sistema em camadas. A camada I, mais próxima ao usuário, é responsável pela interatividade. Dessa forma, encontramos nela, os formulários. Sendo assim, a parte da estrutura das informações fornecidas deverá ser tratada nesta camada. Por outro lado, as regras de negócio são específicas a cada aplicação. Desta forma, a validação e o processamento inerente às regras de negócio fazem parte da camada II.
	
	
	
· Pergunta 6
1 em 1 pontos
	
	
	
	Sabe-se que para a codificação de uma página, pode-se utilizar, além do HTML, linguagens de programação, tais como JavaScript e o PHP. Sabe-se, também, que o desenvolvimento da página pode ser estruturado em camadas funcionais. Para essa questão, dadas as afirmativas a seguir, assinale com “J”, a afirmativa que se relaciona com o JavaScript, e com “P”, a que se relaciona com o PHP.
 
(_) Está mais associada com a parte de regras de negócio, interfaceando a camada de interação com o usuário, com a camada de armazenamento persistente (bancos de dados).
(_) Relaciona-se mais com a camada de interface com o usuário pois, com ela,pode-se fazer, por exemplo, validação de formulário de forma mais fácil.
(_) Em um formulário, o seu código é referenciado no parâmetro “onSubmit”.
(_) Em um formulário, o seu código é referenciado no parâmetro “action”.
 
Assinale a opção que contenha a sequência correta.
	
	
	
	
		Resposta Selecionada:
	 
P; J; J; P.
	Resposta Correta:
	 
P; J; J; P.
	Feedback da resposta:
	Resposta correta. Você acertou. Realmente a JavaScript é mais associada com a parte da interface com o usuário, permitindo, por exemplo, a validação dos campos do formulário e a criação de páginas responsivas. Por outro lado, o PHP está relacionado mais na camada de processamento propriamente dito, ou seja, manipula as regras de negócio.
	
	
	
· Pergunta 7
1 em 1 pontos
	
	
	
	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.
 
Assinale a alternativa que contenha a sequência correta.
	
	
	
	
		Resposta Selecionada:
	 
IV; I; III; II.
	Resposta Correta:
	 
IV; I; III; II.
	Feedback da resposta:
	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 8
1 em 1 pontos
	
	
	
	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>
 </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.
	
	
	
	
		Resposta Selecionada:
	 
 III; V; VIII; VII; I.
	Resposta Correta:
	 
 III; V; VIII; VII; I.
	Feedback da resposta:
	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 9
1 em 1 pontos
	
	
	
	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.
	
	
	
	
		Resposta Selecionada:
	 
F; V; V; V.
	Resposta Correta:
	 
F; V; V; V.
	Feedback da resposta:
	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 10
1 em 1 pontos
	
	
	
	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 criarum 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.
 
Diante das afirmações acima, selecione a opção correta.
	
	
	
	
		Resposta Selecionada:
	 
As afirmativas I e IV são verdadeiras.
	Resposta Correta:
	 
As afirmativas I e IV são verdadeiras.
	Feedback da resposta:
	Resposta correta. Sua resposta está correta. A “solução 2” representa um padrão chamado de Strategy (estratégia). É um dos padrões GOF usados para a linha comportamental do sistema.

Outros materiais