Você está na página 1de 31

CENTRO UNIVERSITÁRIO SUMARÉ

CURSO

Sistemas para Internet

DISCIPLINA

PROJETO PROFISSIONAL INTERDISCIPLINAR – IV

TEMA

Engenharia WEB

TÍTULO

Melhores práticas de Segurança para WEB

Componentes RA
Ana Pris Santos 1822394

Este trabalho tem a finalidade de


apresentar o resultado de uma pesquisa,
para compor a nota da disciplina PPI, sob
a organização e orientação do Prof. Me
Laerte Perali.

São Paulo

Out./2020
RESUMO

Este trabalho tem como objetivo conceber uma breve análise de uma das muitas
particularidades da Engenharia WEB, as Melhores Práticas de Segurança para WEB e
destinado ao Projeto Profissional Interdisciplinar da Faculdade Sumaré.

O Desenvolvimento de aplicações web apresenta diferenças significativas com relação


ao desenvolvimento de aplicações convencionais. O espectro varia desde diferenças
técnicas até organizacionais.
Esperamos ao final deste artigo, entender as diferenças entre conceitos, características
e metodologias, assim como sua evolução.

Palavras-chave: Gerenciamento Web, Engenharia Web, Desenvolvimento de Software

To 2
SUMÁRIO

1. INTRODUÇÃO.............................................................................................................04

2. OBJETIVO.....................................................................................................................05

2.1 Objetivo Geral..........................................................................................................05

2.2 Objetivos Específicos.............................................................................................04

3. METODOLOGIA..........................................................................................................04

4. FUNDAMENTACAO TEÓRICA..................................................................................04

5. RESULTADOS DA PESQUISA..................................................................................06

6.CONSIDERAÇÕES FINAIS.........................................................................................07

7.REFERÊNCIAS..............................................................................................................08

To 3
1. INTRODUÇÃO

Segundo (Breve, 2002, p. 3), o número de aplicativos para a web já estava em


uma grande crescente, aumentando sua importância e gerando grande impacto na
história da computação, ainda que, inicialmente tenha sido concebida com o intuito de
compartilhar informações científicas entre alguns poucos cientistas, tendo conteúdos
estáticos e apenas textuais, de interação limitada, fácil navegação e eram
desenvolvidos por apenas uma pessoa ou um pequeno grupo. Segundo (Gabrieli et al,
2007, p. 1) a internet tem sido apontada como o expoente das novas tecnologias de
informação e comunicação.

A Internet tornou-se, de fato, uma espécie de réplica do mundo real. (Souza,


2005, p. 4) cita a Web como o aspecto central de muitas aplicações em diferentes áreas
e diversos setores de negócio realizam suas operações no ambiente da Internet, no
qual sistemas de informação legados e de bancos de dados migram. (Gabrieli et al,
2007, p. 2) diz que a exploração do cenário virtual pelas organizações não traz apenas
oportunidades, mas também desafios, destacando a questão do gerenciamento de
informações, realçando que de nada adianta uma organização dispor de sistemas
baseados na Web consoantes com uma estratégia empresarial adequada ao ambiente
dinâmico e volúvel dos negócios eletrônicos, se não contar com mecanismos
apropriados que permitam eficiente gestão da informação.

Uma das questões do desenvolvimento de aplicações web quanto ao


gerenciamento da informação, é a integração de estratégias das empresas quanto ao
processo de engenharia de sistemas web, este sendo menos disciplinado quanto à
engenharia de software tradicional. (Beder, 2012, p. 12) diz que à medida que
aplicações web são integradas às estratégias de negócio, torna-se cada vez mais
complexo o seu desenvolvimento. Apesar desse aumento de responsabilidade, o
processo de Engenharia de Sistemas Web ainda não é tão disciplinado quanto a
Engenharia de Software tradicional. Quase todas as aplicações web ainda continuam

To 4
sendo construídas sem considerar os princípios da engenharia de software,
descaracterizando assim uma solução eficaz e eficiente, que atenda as estratégias de
negócios e supram as expectativas dos usuários, quanto que no software tradicional, é
necessário a compreensão completa do problema para que se tenha uma solução
eficaz, como erros de conteúdo, por exemplo, que quando não identificados e
solucionados antes mesmo do processo de produção podem trazer falhas aos usuários
e, consequentemente, seu descrédito. (Breve, 2002, p. 4) diz que conforme seu escopo
e complexidade foram aumentando, pequenos serviços foram cedendo espaço para
grandes aplicativos, e com isso, a complexidade dos projetos e as dificuldades de
desenvolvimento, manutenção e gerenciamento; afirmando também que a falta de
planejamento, projetos mal feitos e falta de gerenciamento, no qual 84% dos sistemas
entregues não atendem às necessidades do cliente, 79% dos projetos são entregues
com atrasos e 63% tem custo maior que o orçamento previsto, assim como mais de
50% dos sistemas prontos são de baixa qualidade e faltam funcionalidades
necessárias, assim desenvolvedores e usuários, começaram a se preocupar com a
maneira como os sistemas Web complexos estão sendo criados, bem como seus níveis
de desempenho, qualidade e integridade, surgindo assim a engenharia para a web.

To 5
2. OBJETIVOS

2.1 Objetivo geral

O principal objetivo é analisar de maneira breve o Gerenciamento Web,os conceitos do


Gerenciamento Web. Tendo em mente a importância da Web e seus desdobramentos
evolutivos.

2.2 Objetivos específicos

As principais finalidades a serem atingidos com este trabalho são apresentar a


Engenharia WEB de forma concisa e sua importância para a construção de softwares.

To 6
3. METODOLOGIA

A metodologia utilizada neste Projeto (PPI) foi realizar pesquisas bibliográficas a partir
de material já publicado com fontes científicas, cujos materiais (livros, artigos, iniciações
e internet) com base no tema Engenharia WEB foram utilizados para embasar o
propósito, visão e trabalho final.

Como desenvolvimento, a partir de leituras contextuais das fontes, resumos e


levantamentos de anotações com os pontos a serem explorados. Após análise, houve o
detalhamento em cada capítulo

No sentido amplo, foram consultadas mais fontes referenciais que estarão presentes na
bibliografia.

To 7
4. 4. FUNDAMENTAÇÃO TEÓRICA

4.1. Engenharia WEB

Desenvolvimento de aplicação web está mais complexo, pois cada vez mais
estão integradas às estratégias das empresas, mas o processo de engenharia de
sistemas web não é tão disciplinado quanto à engenharia de software tradicional.
Quase todas as aplicações web ainda continuam sendo construídas de uma maneira ad
hoc, não sendo considerados os princípios fundamentais da engenharia de software
(ALTARAWNEH &SHIEK, 2008), os sistemas web precisam passar por um processo de
engenharia para produzir uma solução eficaz e eficiente que atenda as estratégias de
negócios e supram as expectativas dos usuários, já nos outros tipos de softwares é
preciso o entendimento completo do problema para que se tenha uma solução eficaz. É
fundamental que os erros de conteúdo sejam identificados e solucionados antes do
software entrar em produção, pois com um grande volume de aplicação web faz com
que os usuários não utilizem mais essa aplicação que já apresentou falhas.
E por isso (PRESSMAN, 1998) discute a ideia de juntar a Engenharia Software e
Engenharia Web, da seguinte maneira
Qualquer produto ou sistema que seja importante tem que ter a engenharia e
antes de começar a produzi-los, o melhor é entender o problema e criar solução
funcional para assim poder testá-la.
Com isso podemos analisar ou retirar é que os princípios, os conceitos, e os
métodos da engenharia de software podem ser aplicados no processo do
desenvolvimento web, porém tem uma técnica diferenciada quando é usada no
desenvolvimento de sistemas software convencionais. (PRESSMAN, 1998, p. 1)

Podemos concluir que a engenharia web pode ser definida utilizando os


princípios, conceitos e métodos da engenharia de software de maneira adaptável com
as características das aplicações web, tais como o desempenho, disponibilidade,
evolução contínua, urgência e segurança.

To 8
4.2 Engenharia de Aplicações WEB

Segundo (BREVE, 2002 p.5), a Engenharia para a web é o processo utilizado


para a criação de aplicativos Web de alta qualidade, é diferente da Engenharia de
Softwares tradicionais, mas compartilham muitos conceitos e princípios fundamentais
que se enfatizam nas mesmas técnicas de gerenciamento e atividades, tendo pequenas
diferenças na maneira como as atividades necessárias são conduzidas, considerando a
filosofia de desenvolvimento como a mesma para os sistemas de computadores. A
multidisciplinaridade necessária para o desenvolvimento de aplicações web requer
conhecimentos de diferentes áreas, como análise de sistemas e projetos; engenharia
de software; engenharia de hipermídia e hipertexto; engenharia de requisitos; interação
humano-computador; desenvolvimento de interface de usuário; engenharia de
informação; indexação e recuperação de informações; testes; modelagem e simulação;
gerenciamento de projetos; projeto gráfico e apresentação.

Um dos fatores que diferenciam os softwares tradicionais com os da web, é que


estes podem ou não utilizar a camada e os protocolos de comunicação de rede, sendo
HTTP ou HTTPS, em seu processo de ciclo de vida, sendo que os atuantes na web,
atrelam-se as camadas de comunicação em todo seu contexto, independentemente, se
estes estão em atuando na internet, intranet ou extranet.

A Engenharia web planeja, realiza, acompanha e testa processos de


desenvolvimento de aplicações de maior complexidade que apenas criação de páginas
e mídias digitais e cada modelo possuem características de acordo com sua proposta e
finalidade, além de que, atualmente é difícil encontramos conteúdos estáticos que são
processados e renderizados apenas pelos navegadores através de arquivos HTML, que
ocasionam necessidades das aplicações web sistemáticas dinâmicas para geração dos
resultados esperados para com as buscas de seus usuários.

4.2.1 Características de Aplicações WEB

Inicialmente as aplicações web eram apenas conjuntos informativos textuais


que eram gerados por arquivos de hipertexto conectados entre si através de links que

To 9
se referenciavam, por onde, através de um, acessava-se outro com uma sistemática
bem limitada.

As aplicações web puderam ampliar-se com o surgimento e uso de ferramentas


e tecnologias de desenvolvimento que permitiam a capacidade de processamento do
conteúdo em questão, tanto no lado do cliente, quanto no servidor. Isso elevou o
número de possibilidades de construção e manipulação de dados dinâmicos que eram
requisitados e enviados pelo cliente, processados pelo servidor e renderizados pelo
navegador, ocasionando e gerando mais complexidade no desenvolvimento e interação
entre o humano e a máquina.

As características de aplicações web, também difundidas por finalidade, meio


atuante e necessidade da transição de sua informação, estão cada vez mais integradas
às estratégias de negócio e funcionalidades desejadas para a interação de seus
usuários.

Segundo Gabrieli et al. (2007), nos termos evolucionários dos websites e das
aplicações web, existem quatro gerações de classificações, sendo a primeira como
lineares, simples e funcionais, privilegiando apenas o conteúdo e não a forma,
apresentando sequência de textos e imagens, intermediada por retornos de linhas e
outros separadores de fluxos de dados, como marcadores e réguas horizontais e
limitadas por conexões lentas e monitores monocromáticos; a segunda como websites
de primeira geração pela substituição de palavras por ícones, inclusão de imagens em
fundos, botões com chanfros e títulos textuais por banners, caracterizando-se a forma
hierárquica por meio de menus de navegação com vários níveis; a terceira sendo o
conteúdo somado com a forma como era entregue ao usuário, preocupando-se
simultaneamente com funcionalidade e estética, leiautes precisos, harmonia entre as
cores, tipografias adequadas, uso corretos de gráficos e tempo de carregamento e
renderização de cada página acessada; e pela quarta, aplicações baseadas em bancos
de dados e vastos conteúdos dinâmicos, próximos ao conceito de Sistema de
Informação Web, que evoluiu com as características da terceira geração.

(Breve, 2002) cita três características que podem ser encontradas na maioria
dos aplicativos para web: sendo por rede intensiva, que utilizam recursos de rede por
To 10
natureza e atendem as necessidades de diversas comunidades de clientes, disponíveis
na internet e comunicável ao mundo todo, intranet no meio organizacional ou extranet
pela comunicação entre redes; os dirigidos a conteúdos, tendo como função primária o
uso da hipermídia para apresentação de textos, gráficos e vídeos para os usuários; e os
aplicativos de evolução contínua, que contrariamente aos convencionais, evoluem por
versões continuamente planejadas e lançadas em determinados intervalos de tempo.

4.2.2 Categorias de Aplicações WEB

As aplicações web possuem suas características em comum, assim como


também são categorizadas, podendo facilmente serem difundidas ou complementar
umas às outras. (Beder, 2012) Quanto ao problemas que as aplicações web tratam, as
seguintes categorias são as mais comumente encontradas:

Tabela 1 – Categorias de aplicações web


Categoria Descrição
Informativas: possuindo conteúdos apenas para leitura e fornecidos com navegação
simples e links;
Download permitindo usuários obter cópias de dados do servidor
Personalizável quando permite os usuários adaptar o conteúdo e visualização da
aplicação de acordo com suas necessidades específicas
Interação que permite a comunicação entre uma comunidade de usuários via
chat, comentários, fóruns ou mensagens instantâneas
Entrada de baseadas em formulários e campos optativos
usuários
Orientado a no qual permite requisições realizadas pelos usuários, como há nos
transações sistemas bancários e e-commerce
Orientado a no qual o sistema fornece determinado serviço aos usuários
serviços
Portais fornecedores de direcionamentos a outros conteúdos ou serviços fora

To 11
de seu domínio
Acesso a base que permitem os usuários realizarem extrações e, ou, registrarem
de dados informações
Armazém de que amplia a característica de base de dados em grande escala
dados
Fonte: base de dados (Beder, 2012).

Confecção: Os autores.

4.2.3 Diferenças de desenvolvimento de aplicação WEB e Tradicional

Em questões de desenvolvimento das aplicações web, (Breve, 2002) também


cita que há diferenças entre as aplicações web e softwares tradicionais, sendo: o
imediatismo, sobre o tempo que um site ou aplicação precisa ficar pronta em um
período que pode levar alguns poucos dias ou semanas, onde os desenvolvedores
devem utilizar métodos de planejamento, análise, projeto, implementação e teste
adaptativos para o cronograma a ser cumprido para o desenvolvimento para web; a
segurança, que visam protegerem os conteúdos e fornecerem métodos seguros de
transmissão de dados com a implementação de medidas rígidas de segurança para o
aplicativo e da infraestrutura disponíveis via rede devido à dificuldade ou
impossibilidade de limitar a população de usuários que os acessarão; e a questão da
estética, que é tão importante quanto o projeto técnico, para ter sucesso com seus
usuários. Portanto, são consideradas diferentes quando analisadas por concentração
na rede, as questões de concorrência entre usuários que as acessam, o número de
usuários que fazem uso de forma simultânea, seu desempenho em relação a entrega
do conteúdo e funcionalidade, sua disponibilidade, se estão ou não orientadas a dados,
sensíveis aos conteúdos dispostos, quando estão, ou não, em evolução contínua, sua
urgência em atender determinada demanda do mercado em que atuam, sua segurança
e a de seus usuários quanto aos conteúdos confidenciais, assim quanto seu design e
estética.

To 12
4.3 MODELOS DE PROCESSOS (*)

As aplicações web foram desenvolvidas através de sistemas complexo e


críticos, e tem que tratar com tal [Li et al, 2000]. Por conta de algumas características, o
desenvolvimento das aplicações web pode se tornar mais difíceis e desafiantes com
interações em tempo real, complexidade, mudanças e necessidades de informações
personalizadas [Ginige & Murugesan, 2001 b]. A aplicação web disponibiliza um acesso
estruturado onde se tem um grande número de informação e em diferentes versões
através de diferentes contextos. A melhor opção de gerenciamento de um projeto e o
desenvolvimento da aplicação web é de uma maneira sistêmica e repetível. Com esse
procedimento é preciso de um processo que apresenta várias fases, pares e atividades
do desenvolvimento da aplicação. Para se ter uma entrega dentro do prazo, os
desenvolvedores precisam de um projeto sólido para cuidar da complexidade e
minimizar os riscos na hora do desenvolvimento das aplicações web e fornecer uma
avaliação para gerenciar o projeto. [Ginige & Murugeram, 001| b]

O crescimento de seus requisitos e a continua mudança no conteúdo são os


dois tributos mais importante do sistema web que te diferencia do desenvolvimento
tradicional, nem sempre é possível perceber se em uma aplicação web irá conter,
porque sua estrutura sempre está evoluindo com o tempo, junto as informações que
também mudara quando apresentada pela aplicação.

Quando se desenvolve uma aplicação web tem sempre que considerar dois
grandes fatores que são habilidade de gerenciar a informação e de escalar a estrutura
da aplicação [Ginige & Murugeram, 001| b].

O processo do desenvolvimento tem que ser interativo e incremental, atender a


natureza evolutiva da aplicação, baseado através do feedback, o cotínuo refinamento e
evolução deve facilitar com a utilização desse processo [Ginige & Murugeram, 001| b].

Segundo Pressmam [Pressmam, 2002] a natureza imediatista das aplicações


junto com a pressão de evolução continua e inflige o estabelecimento de um projeto de
desenvolver com a possibilidade de resolver os problemas de negócios, e também

To 13
definir uma arquitetura que tenha a capacidade de evoluir rapidamente. Pois se o
problema for resolvido com rapidez pode prejudicar a capacidade de evolução da
aplicação conforme for passando o tempo.

O conteúdo da informação estética, performance e sistemas de computação é a


demanda usada no projeto de uma aplicação e que tenha uma equipe com habilidades
em diversas áreas e conhecimento de diversas atividades.

é necessário um processo para criação das aplicações web [Ginige, 2002]:

Para conseguir capturar a mudança de requisitos e o gerenciamento do


desenvolvimento é preciso que seja eficiente.

Possibilita a inclusão do conhecimento de diversas disciplinas.

Durante o desenvolvimento da aplicação é facilitar a comunicação entre os


membros, os usuários finais, cliente e a equipe.

Ter suporte durante a evolução continua, a manutenção e ter quem gerencie o


conteúdo.

Por não existir um acordo sobre o modelo geral de ciclo de vida da aplicação
web o ponto comum é ser evolutivo e incremental, algumas atividades são utilizadas na
hora do desenvolvimento da aplicação: analise de requisitos, projeto, evolução ou
manutenção entre outras.

Analise de Requisitos:

O desenvolvedor coleta os ermos de conteúdo, estruturação, acesso e estética


necessárias durante a análise de requisitos. Requisitos de conteúdo determina a
informação do demônio que precisa está presente e disponível através da aplicação.
To 14
O conteúdo tem que ser organizado usando os requisitos de estruturação.
Requisitos de acesso decide a forma de acessar a informação que deve ser
providenciada o que na apresentação, indexação dos conteúdos de pesquisas e
suporte. As aparências em geral são relacionadas aos requisitos de estética [Coda et
al, 1998].

A responsabilidade da aplicação é estabelecida pela identificação dos usuários


e para definir através da natureza a informação e objetivo. As aplicações web
desenvolvidas para acesso universal precisam de uma atenção especial para visualizar
os requisitos de interação mais apropriado para cada categoria, diferentes usuários , e
para cada dispositivos diferentes, que espera os usuários para se conectar com a
aplicação (desde aparelhos pessoas a telas de alta definição) [Fratenali, 1999].

Um desafio que é encontrado na hora do desenvolvimento das aplicações web


é a tradução das possibilidades dinâmicas dos usuários em um projeto do sistema
funcional, principalmente na situação onde mudam rapidamente seus requisitos durante
uma situação onde o projeto e a implementação [Chaubey & Suresh, 2001]

Quando inseri novos serviços as funcionalidades básicas podem ter algumas


dificuldades no desenvolvimento da solução.

Conceitualização:

A aplicação é apresentada através de modelos abstratos que informam os


componentes principais da solução. A captura de objetos e relacionamentos irão
aparecer aos usuários é o foco e como serão apresentados dentro do sistema. A
conceitualização da aplicação web se mostra diferente da aplicação do banco de
dados. A diferença é interpretação dos relacionamentos, a modelagem do banco de
dados apresenta associações semânticas que são gravadas, e na modelagem web a
navegação está implícita [Fratenali, 1999].

Prototipação:

To 15
Para se ter uma avaliação previa são estregues algumas versões para os
clientes. Prototipação é enfatizada no contexto da web e é construída numa arquitetura.
Uma coleção de páginas são efetuados manualmente tende amostras dos conteúdos
da aplicação e da estética, e igual do desejo da aparência e do comportamento.

Projeto:

A fase do projeto decide a estrutura de um web site, mostrando como a


informação pode ser organizada e assim os usuários podendo navegar nela. As
atividades de projeto devem apresentar as constituições principais de um site,
abstraindo-se dos detalhes da implementação de nível baixo, e autorizar o projetista a
identificar estruturas recorrentes e padrões de navegações para ser reutilizável. Para
conseguir superar as mudanças é necessário ter um bom projeto.

A aplicação web é caracterizada por três grandes projetos

Arquitetural ou estrutural: Informa que a organização que a informação que é


gerenciada pela aplicação, tem em partes do conteúdo que mostra a base da
informação e odo relacionamento semântico. As metas estabelecidas para a aplicação
são baseadas nas estruturas arquitetural, e quando ao conteúdo a ser apresentado aos
usuários e a navegação será estabelecida.

Navegacional: Para que os usuários tenham acesso aos serviços e conteúdo da


aplicação o projetista deve decidir e mostrar um caminho para navegação, e tem de
preocupar em ter facilidade para acesso à informação e para se mover usando o
conteúdo da aplicação. O projetista precisa visualizar a semântica de navegação para
todos os usuários e saber a mecânica para conseguir utilizar a navegação.

Para cada característica vinculadas as características do usuário são geradas o melhor


modo ou caminho de navegação [Pressman, 2003].

To 16
Apresentação: Pode ser afetado a maneira pelo qual o conteúdo da aplicação e
os comandos de navegação que são informados para os usuários [Fraenali, 1999].

Uma interface bem planejada melhora a relação do usuário em relação aos serviços
que a aplicação oferece.

Implementação:

Implementação responsável por criar a aplicação a partir do projeto, os


elementos e relacionamentos informados no projeto são mapeados na construção com
a tecnologia de implementação de acesso, são acoplados com elementos oferecido
pela tecnologia hipermídia. O site é “povoado”, as estruturas definidas e precisa de
informação que é inerida pela instanciação. O banco de dados incluso com o novo
conteúdo que é gerado por especialistas n assunto e com os dados armazenados nos
sistemas legados, as páginas são produzidas pela combinação do conteúdo do banco
de dados e os comandos de navegação dentro do estilo da apresentação.

O mapeamento do projeto precisa de uma linguagem de rede para implementar


na qual a aplicação é entregue. Assim que for entregue o sistema precisa ser acessível,
usando padrões de internet que façam interagir com os servidores.

Evolução e manutenção:

Após entregue, pode gerar uma revisão da estrutura, navegação, apresentação


ou conteúdo se tiver mudanças nos requisitos ou solução para erros. As mudanças
precisam chegar no nível mais alto do ciclo para desenvolvimentos e propagandas até o
nível de implementação [Fratenali, 1999]

Ginige em [Ginige $ Murugesan, 2001|b], baseado em pesquisa e na construção de


aplicação web, tem dez passos importantes para o sucesso dessas aplicações:

To 17
1 – Entender todas as funções do sistema e o ambiente operacional, com os requisitos
e objetivos do sistema.

2 – Identificar os principais usuários do sistema a organização que precisa do sistema e


os que financiam o desenvolvimento do sistema.

3 – Especificar os requisitos técnicos e não técnicos.

4 – Elaborar a arquitetura do sistema Web que atenda os requisitos técnicos e não


técnicos.

5 – Identificar o subprocessos ou subprojetos para implementar a arquitetura.

6 – Desenvolver e implementar subprojetos.

7 – Incorporar mecanismo que gerencie a evolução e mudança / manutenção do


sistema, enquanto o sistema é desenvolvido.

8 – Tratar questões não técnicas como processos de negócios, política organizacional e


gerenciamento, recursos humanos e social e cultural.

9 – Medir a performance do sistema.

10 – Refinar e atualizar o sistema

A equipe:

As organizações das equipes das aplicações web e das equipes de sistemas


tradicionais tem algumas semelhanças tais como: programadores arquitetos de
software, analista de sistema, gerente de projeto, analista de requisitos e outros.

Mas os profissionais precisam ter habilidades que necessitam o conhecimento técnico e


não técnico [Pressman, 2002].

Para desenvolver a aplicação web é preciso ter disciplinas e habilidade de


diferentes disciplinas, e precisa de uma equipe de várias pessoas com habilidades em
diversas áreas [Ginige & Murugesan, 2001 \B]. Os projetistas gráficos precisam
desenvolver a aparência das pessoas para organizar informações , desenvolver a
navegação e os mecanismos de buscas, o banco de dados precisa de projetistas para
To 18
criar maneiras das informações que são armazenadas e acessada, programadores,
especialistas em segurança de rede, especialistas para resolver qual a melhor
arquitetura de hardware, e pessoas para desenvolver e gerenciar o projeto que tenham
o conhecimento de planejar [Ginige, 2002].

Segundo Pressman em [Pressman, 2002] os papeis podem ser distribuídos


entre os membros da equipe que faz o desenvolvimento das aplicações web.

Provedor de conteúdo:

É responsável pela geração ou coleta de conteúdo. Esses profissionais de


diversas áreas como redatores que fornece texto, produtores de mídia que fornece
vídeo e áudio e pessoal de venda de marketing que fornece informações sobre os
produtos.

Editor web: É responsável para incluir o conteúdo e age como ligação entre a equipe
técnica e os desenvolvedores e provedores.

Engenheiro de web:

Responsável por envolver várias atividades: modelagem e análise de dados,


projeto arquitetural, navegacional e de interface, implementação e teste. O mesmo
precisa ter conhecimento em tecnologia, arquiteturas, linguagem, multimídias e
segurança de rede.

Especialista de suporte:

Responsável por dar andamento no suporte da aplicação, e também por


correções adaptações e aperfeiçoamento do site, que pode gerar modificação no
conteúdo, navegação e implementação.

To 19
Administrador:

Responsável pela operação do dia a dia da aplicação: Medir o trafego dentro da


aplicação, procedimentos para modificar coordenação de suporte, implementação de
segurança e direitos de acesso e ao desenvolvimento de operação da aplicação.

O papel do engenheiro web pode se dividir em vários papeis como: arquiteto


responsável por organizar informações, web designer, responsável pelo desenho,
programador HTML, responsável por implementação das páginas e engenheiro de
informação, responsável por definir métodos e garantir a segurança do acesso e da
distribuição da informação.

Uma equipe disciplinar projeta um novo desafio para várias aplicações: o


gerenciamento do projeto precisa abranger as atividades técnicas e não técnicas, sobre
a comunicação é mais complicada e se deve ter a garantia de um bom atendimento, os
documentos que foram gerados precisam englobar nas diferentes linguagens que são
utilizadas por diferentes perfis de profissionais seguindo em padrão para gerar um bom
atendimento a todos.

Atributos de qualidade:

A web é um ambiente complexo, consequentemente, a verificação de produtos


do software é uma difícil tarefa fornecida pelo grupo de características e
particularidades [Rocha e al, 2001]. É preciso se ter um processo de qualidade para
que garanta diferentes aspectos que abrangem desde a qualidade da interface no que
se utiliza o uso de recurso gráfico e cores até garantir a necessidade para a correção
do conteúdo e a segurança da informação e do acesso.

No geral, os atributos de qualidade de software se encaixam ao sistema na web, há


mais relevantes que se possa fornecer uma base útil para verificar a qualidade. Em
[Pressman, 2002] é presentado através de uma arvore de requisitos de qualidade.

To 20
4.4 PLANEJAMENTO

Segundo (DELANO, 2012, p. 39), o princípio fundamental da Engenharia de


Software é “planeje o trabalho antes de começar a realizá-lo” (PRESSMAN, 2006, p.
389).

Nesta etapa de estruturar do processo de Engenharia WEB, o modo de


organizar os incrementos de uma aplicação WEB divide-se em 4 ações: análise de
risco, estimação, escalonamento e monitoração

O planejamento envolve todos os membros da equipe e é coordenado pelo líder


do produto.

4.4.1 ANÁLISE DE RISCOS

O gerenciamento de risco compreende em entender e gerenciar os problemas


que podem eventualmente surgir o desenvolvimento de uma aplicação web.

Para (DELANO, 2012, p. 41), na Engenharia WEB há dois níveis de granularidade de


riscos:

Visão Macroscópica: O impacto do risco sobre o desenvolvimento da aplicação


Web como um todo com as questões: Os incrementos da aplicação Web planejados
podem ser entregues dentro do prazo definido? Como as solicitações de mudança
impactarão os cronogramas de entrega? A equipe entende os métodos, as tecnologias
e as ferramentas exigidos?

Visão Microscópica: O impacto do risco sobre a entrega bem-sucedida do


incremento da aplicação Web atualmente sendo desenvolvido, com questões mais
básicas como: A atividade de comunicação desenvolveu informações suficientes para
as atividades de modelagem, construção e implantação? A composição da equipe
proporciona uma combinação adequada de habilidades para construir esse
incremento? O conteúdo e as funcionalidades estão definidos adequadamente?

Identificação dos riscos

To 21
Na identificação dos riscos, (PRESSMAN & LOWE, 2009) orienta a solicitar a
cada membro da equipe fazer uma lista de riscos, que será organizado nas seguintes
categorias:

Tabela 2 – Classificação de Riscos

Risco Descrição

Risco de pessoas Problemas relacionados a falha humana

Riscos de produto problemas associados ao conteúdo,


funcionalidades, restrições ou desempenho da
aplicação Web

Riscos de processo problemas que estão ligados às ações e


tarefas das ferramentas que foram escolhidas
pela equipe

Fonte: base de dados (PRESSMAN & LOWE, 2009)

Confeccção: Os autores

Avaliação dos riscos

Para a avaliação e priorização dos riscos, é feito a coleta das listas e


consolidadas por categoria. O objetivo é avaliar de acordo com a probabilidade que o
risco aconteça e as consequências (impacto) dos problemas, caso ele ocorra.

A sugestão de Pressman & Lowe (2009) é que seja feita uma tabela de riscos
em que cada risco seja calculado por meio do seguinte produto: probabilidade x
impacto. Desta forma, haverá uma tabela com riscos de alta probabilidade e alto
impacto no alto e riscos de baixa prioridade de alto impacto na parte de baixo, para que
após avaliada, a equipe defina a linha de corte estabelecendo quais riscos receberão
consideração adicional.

To 22
Plano de contingência

Os membros da equipe consideram cada risco que esteja acima da linha de


corte da tabela de riscos e respondem a três perguntas: Como podemos evitar o risco
completamente? Que fatores podemos monitorar para determinar se o risco está se
tornando mais ou menos provável? E se o risco se tornar realidade, o que vamos fazer
a seu respeito?

Apesar de essa atividade ser iniciada durante a atividade de planejamento, na


realidade ela é uma atividade que é retornada durante todo o fluxo de processo
(PRESSMAN & LOWE, 2009).

4.4.2 ESTIMAÇÃO

Para (DELANO, 2012, p. 41) estimar é avaliar se um incremento de aplicação


Web planejado pode ser desenvolvido com os recursos disponíveis de acordo com o
tempo definido. Durante esta atividade, a equipe de Engenharia WEB tenta responder
perguntas como a necessidade de implementação com uma quantidade determinada
de pessoas, dado os riscos identificados?

E então, duas técnicas para a estimativa são apresentadas por Pressman &
Lowe (2009), são elas: Estimativa baseada em cenário, ou seja, examinar cenários de
uso a ser construído e Estimativa baseada em tabela produto-processo, que utiliza uma
tabela de produto-processo e as principais tarefas são listadas para que os membros da
equipe estimem a quantidade de esforço (em homens-dias) necessária para
desenvolver para cada objeto de conteúdo e funcionalidade.

4.4.3 ESCALONAMENTO

O projeto de desenvolvimento de um software consiste em pequenas tarefas


que precisam ocorrer para realizar uma meta maior. Algumas dessas tarefas não se
encontram no fluxo principal, e podem ser completadas sem preocupação com o
impacto sobre a data de término. Outras tarefas se encontram no caminho crítico. Se

To 23
essas tarefas críticas atrasarem, a data de término do incremento da aplicação Web
será colocada em risco.

Segundo (PRESSMAN & LOWE, 2009), objetivo da equipe de Engenharia Web


é listar todas as ações e tarefas para um incremento, montar uma rede que represente
suas interdependências, identificar as tarefas que são críticas dentro da rede e depois
rastrear seu progresso para garantir que qualquer atraso seja reconhecido. Para
conseguir isso, é fundamental que um cronograma seja definido em um grau de
resolução que permita que o progresso seja monitorado e o projeto seja controlado
(PRESSMAN & LOWE, 2009).

4.4.4 MONITORAÇÃO

Para projetos de Engenharia Web pequenos, um incremento pode ser


desenvolvido durante um período de poucas semanas (duas ou três). No melhor caso,
marcos intermediários são definidos informalmente, e o cronograma do projeto pode
não ter sido desenvolvido em uma granularidade que ajudará no acompanhamento.

Para Pressman & Lowe (2009), no caso de projetos maiores, há três técnicas
que podem ser usadas no acompanhamento do progresso de um incremento: A
primeira técnica consiste em realizar uma enquete com a equipe para determinar quais
atividades do Escopo de Processo foram finalizadas, a segunda técnica determina
quantos cenários do usuário foram implementados e quantos (para determinado
incremento) ainda precisam ser implementados e, por fim, se a equipe de Engenharia
Web tiver gasto tempo para construir um cronograma de trabalho detalhado para o
incremento, o progresso pode ser acompanhado determinando-se quantas tarefas de
trabalho foram finalizadas, quantos produtos de trabalho foram produzidos e revisados,
e quão confiantes os membros da equipe estão na entrega na data de término do
incremento.

4.5 PROJETO DE ENGENHARIA WEB

To 24
Para (BEDER, 2012, p.66), em geral, um bom projeto deve guiar a construção
da aplicação web e garantir que as soluções adotadas maximizem alguns requisitos de
qualidade, tais como: simplicidade, robustez e usabilidade. Segundo (BREVE, 2002) as
características de curto prazo de desenvolvimento e rápida evolução de sistemas para
a web forçam os desenvolvedores a realizarem um projeto que resolva os problemas
imediatos e que, ao mesmo tempo, crie uma arquitetura que comporte uma evolução
rápida. O problema, obviamente, é que na tentativa de resolver apenas o problema
imediato, acaba-se comprometendo a capacidade evolutiva do aplicativo. Há quatro
elementos técnicos a serem considerados:

Tabela 3 – Elementos técnicos de projetos


Elemento Descrição
Métodos e que define a modularidade eficiente e as heurísticas da construção
Princípios de de software que também devem ser utilizadas para as aplicações
Projeto web, utilizando ou não os métodos de projetos para sistemas
orientados a objetos, considerando que a própria hipermídia define
a interação entre objetos através do protocolo de comunicação
utilizado na orientação a objetos
Regras de Ouro que são um conjunto de heurísticas consideradas bem sucedidas
que podem ser reaplicadas durante o projeto de novos aplicativos
Padrões de também conhecidos como design patterns, que são padrões
projetos optativos sobre determinada solução de um determinado problema
específico
Modelos templates ou modelos são utilizados para fornecerem um esqueleto
que pode ser personalizado de acordo com a necessidade do
projeto da aplicação e do tipo de padrão de projeto
Fonte: (Breve, 2002, p. 13)

Confecção: Os autores.

To 25
4.5.2 Projetos de Arquitetura

Para (BREVE, 2002, p. 13) o Projeto de Arquitetura para sistemas para a Web tem foco
na definição da estrutura hipermídia do aplicativo, na aplicação de padrões e na
construção de modelos (templates) para montar a estrutura e permitir reuso. E uma
atividade paralela chamada de Projeto de Conteúdo, deriva a estrutura geral e o esboço
detalhado do conteúdo que será apresentado. E nesta etapa é definida a estrutura que
será utilizada, ou seja, a maneira como o conteúdo será apresentado ao usuário, e
como a navegação será realizada.

Tabela

Estrutura Descrição

Estrutura Linear Utilizada quando há sequência previsível de interações, e


eventualmente alguma variação.

Estrutura de Grade aplicada quando o conteúdo pode ser organizado categoricamente


em duas (ou mais) dimensões.

Estrutura Hierárquica Sendo a mais comum, nela o usuário pode navegar por toda a
hierarquia, não apenas na vertical, mas também na horizontal. Isto
é feito através de links que levam a outra parte da estrutura.

Estrutura de Rede ou similar ao modo como funciona a arquitetura de sistemas


“Pure Web” orientados a objetos. Nela cada componente (neste caso páginas)
são projetados de modo que possam passar comandos (via links
de hipertexto) para virtualmente qualquer outro componente do
sistema.

Fonte: base de dados (BREVE, 2002, p. 14).

Confecção: Os autores.

4.5.3 Projeto de Navegação

To 26
Segundo (BREVE, 2002, p. 15), uma vez que a arquitetura está criada e os
componentes (páginas, scripts, applets, etc.) já foram identificados, é hora do projetista
definir caminhos que permitam ao usuário ter acesso aos conteúdos e aos serviços.
Para tanto o projetista deve: identificar as semânticas de navegação para diferentes
usuários e definir os mecanismos para realizar a navegação. O objetivo desta fase é
criar uma unidade semântica de navegação (semantic navigation unit – SNU) para cada
objetivo associado a cada tipo de usuário. A estrutura do SNU é composta de um
conjunto de subestruturas navegáveis que podemos chamar de caminhos (ways of
navigating – WoN).

4.5.4 Projeto de Interface

Segundo (BREVE, 2002, p. 15) Os métodos para construção de interfaces utilizados na


Engenharia de Software podem ser aplicados também para a Web, porém as
características dos aplicativos para a Web requerem algumas considerações adicionais.
Na Web a interface tem um papel ainda mais importante que no software tradicional, ela
é a primeira impressão. Uma interface mal desenhada pode desapontar o usuário e ele
pode procurar outro site. O Projeto de Interface deve se preocupar bastante com a
usabilidade. Muitas vezes o projetista quer criar algo complexo, utilizando todas as mais
recentes inovações tecnológicas e acaba criando algo difícil de usar, que fará com que
o usuário cometa muitos erros e desista de usar o site.

4.6 TESTES DE SISTEMAS WEB


To 27
Na engenharia web é necessário que sejam testados os requisitos funcionais e
não funcionais das aplicações Web.

4.6.1 Teste de requisitos funcionais

As técnicas comumente utilizadas no teste de requisitos funcionais de


aplicações Web são testes caixas brancas e caixas-pretas.

Para (PRESSMAN, 2006), testes caixas brancas são projetados para um exame
rigoroso do detalhe procedimental. Caminhos lógicos internos ao software e
colaborações entre componentes são testados, definindo-se casos de testes que
exercitam conjuntos específicos de condições e/ou ciclos. Testes caixas-pretas
referem-se a testes que são conduzidos na interface do software. Um teste caixa-preta
examina algum aspecto fundamental do sistema, pouco se preocupando com a
estrutura interna do software (PRESSMAN, 2006).

4.6.2Teste de requisitos não funcionais

São testes de desempenho, de carga e estresse.

O teste de desempenho produz dados que permitam prever o desempenho da


aplicação quando diferentes níveis de carga são submetidos.

O teste de carga verifica como a aplicação se comporta quando submetida a


um grande volume de dados, cálculos e processamento intensivo.

O teste de estresse força a aplicação a operar em condições de recursos


reduzidos. O objetivo é verificar o comportamento da aplicação em situações acima dos
limites estabelecidos para garantir que a aplicação funciona adequadamente ou que
falhas sejam tratadas adequadamente sem perda ou corrupção dos dados.

Delamaro, Chaim & Vincenzi (2010) sugerem a técnica de teste de caixa cinza
para os testes de requisitos não funcionais. Assim como o teste caixa preta, este teste
verifica se a saída obtida é a saída esperada, porém, nesse caso, o testador utiliza seu

To 28
conhecimento sobre as estruturas de dados, os algoritmos utilizados, o ambiente de
execução e arquitetura da aplicação para desenvolver os testes.

5. RESULTADOS DA PESQUISA

(Será desenvolvido após a “Fundamentação Teórica”)


Escrever parágrafos fazendo uma relação, identificando os autores, entre o tema
(introdução) com o título (fundamentação).

O que o a sua análise sobre o assunto do título, desenvolvido na fundamentação


teórica, está relacionado com o tema, desenvolvido no texto da introdução, o que
podem estar relacionados os dois textos (fundamentação teórica e introdução),
destaquem os elementos em comum...

6. CONSIDERAÇÕES FINAIS

(Será desenvolvido após a “Resultados da Pesquisa”)


Pessoal, aqui escrever sobre o processo de desenvolvimento do trabalho,
como foram as pesquisas, quais foram os objetivos iniciais, as mudanças, o que
essa pesquisa contribuiu para conhecimento o grupo sobre o tema, o título, o que
pode contribuir para o conhecimento acadêmico e profissional, como foram as
reuniões, o processo de entendimento do projeto, as dificuldades e superações, o
quanto a quarentena impactou no trabalho ...façam um ou dois parágrafos sobre
esse contexto.

To 29
7. REFERÊNCIAS

PRESSMAN, R. S.; LOWE, D. Engenharia Web. Rio de Janeiro: LTC, 2009.

Disponível em: < >

Acesso em:

PRESSMAN, R. S. Teste de Aplicações Web. Engenharia de Software. 6. ed. São


Paulo: McGraw-Hill, 2006.

Disponível em: <>

Acesso em:

DELAMARO, M. E.; CHAIM, M. L.; VINCENZI, A. M. R. Técnicas e Ferramentas de


Teste de Software. In: MEIRA Jr., W.; CARVALHO, A. C. P. L. F. (Orgs.). Atualizações
em Informática. Rio de Janeiro: PUC-Rio, 2010.

Disponível em: <>

Acesso em:

Breve, Fabricio Aparecido. (2002) Engenharia Web

Disponível em: <https://www.scielo.br/pdf/ci/v36n1/a03v36n1.pdf>

Acesso em: 14 maio. 2020.

Gabrieli, Leandro. (2007) Modelagem e avaliação de um sistema modular para


gerenciamento de informação na Web.

Disponível em: <https://www.scielo.br/pdf/ci/v36n1/a03v36n1.pdf>


To 30
Acesso em: 02 maio. 2020.

Conte, Tayana. Mendes, Emília. Travassos, Guilherme Horta. (2005) Processos de


desenvolvimento para aplicações web: Uma revisão sistemática.

Disponível em: <https://www.academia.edu/download/53574054/03-


Processos_de_Desenvolvimento_para_Aplicacoes_Web_U.pdf>

Acesso em: 24 maio. 2020.

Beder, Delano Medeiros. 2017. Engenharia Web: uma abordagem sistemática para o
desenvolvimento de aplicações web

Disponível em: <http://livresaber.sead.ufscar.br:8080/jspui/handle/123456789/2782>

Acesso em: 25 maio. 2020.

To 31