Upload
talita-pagani
View
617
Download
0
Embed Size (px)
DESCRIPTION
Os principais objetivos deste trabalho são: a) expor as diferenças entre o software convencional e o software na plataforma Web; b) conceituar a Engenharia Web; c) identificar novas abordagens da Engenharia de Software para a Web.
Citation preview
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 1/28
UNIVERSIDADE DO SAGRADO CORAÇÃO
ENGENHARIA WEB
BAURU - 2007
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 2/28
UNIVERSIDADE DO SAGRADO CORAÇÃO
ENGENHARIA WEB
Orientador: Profº Ms. Ronaldo Martins da
Costa
Andréa Luisa de MATOS
Talita Cristina Pagani BRITTO
BAURU - 2007
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 3/28
SUMÁRIO
LISTA DE FIGURAS.....................................................................................................................4
LISTA DE TABELAS.....................................................................................................................5
1. INTRODUÇÃO...........................................................................................................................6
2. JUSTIFICATIVA........................................................................................................................7
3. OBJETIVOS................................................................................................................................8
3.1. Objetivos Gerais....................................................................................................................8
3.2. Objetivos Específicos............................................................................................................84. DESENVOLVIMENTO..............................................................................................................9
4.1. Considerações sobre WebApps............................................................................................9
4.1.1. Como funciona a web..............................................................................................................................94.1.2. O que são WebApp.................................................................................................................................9
4.2. Engenharia Web..................................................................................................................13
4.2.1. Definição...............................................................................................................................................134.2.2. Problemas atuais com as aplicações web..............................................................................................13
4.2.3. Conceitos complementares à Engenharia de Software clássica............................................................154.3. Nova abordagem de desenvolvimento baseada na Engenharia Web.................................18
5. CONCLUSÃO...........................................................................................................................22
6. REFERÊNCIAS BIBLIOGRÁFICAS......................................................................................23
ANEXO: ANÁLISE DE APLICAÇÕES WEB............................................................................25
3
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 4/28
LISTA DE FIGURAS
Fig. 1 – Representação sintética do acesso a serviços da web........................................................9
Fig. 2 – Representação do modelo de janelas em cascata............................................................10
Fig. 3 – Fluxo de navegação em rede (teia).................................................................................11
Fig. 4 – Síntese do modelo comum de desenvolvimento de aplicações web...............................15
Fig. 5 – Proposta de Modelo de desenvolvimento baseado na Engenharia Web.........................19
Fig. 6 – Tela de cadastro do Remember the Milk.........................................................................25
Fig. 7 – Feedback após a realização do cadastro..........................................................................26
Fig. 8 – Tela de utilização do Remember the Milk.......................................................................26
Fig. 9 - Slideshare..........................................................................................................................27
Fig. 10 – Wikipédia.......................................................................................................................27
Fig. 11 – GoogleDocs....................................................................................................................28
4
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 5/28
LISTA DE TABELAS
Tabela 1 – Comparações do Software Tradicional com o Software Web....................................12
Tabela 2 – Acréscimos nos requisitos funcionais das aplicações web.........................................17
5
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 6/28
1. INTRODUÇÃO
Podemos definir um software como um conjunto composto pelos programas,
pelas especificações de requisitos, a documentação do sistema e a manutenção dosistema.
A Engenharia de Software é uma disciplina ligada a Ciência da Computação,
que surgiu justamente da necessidade de criar procedimentos adequados para
resolução de problemas de software e, com isso, construir produtos funcionais de
alta qualidade, ou seja, “ela se ocupa de todos os aspectos de produção de
software” (SOMMERVILLE, 2003).
Atualmente, a sociedade de um modo geral depende do uso de software,pois, entre suas diversas funções, ele facilita o acesso à informação, agiliza a
produção e o fluxo de trabalho dentro das empresas, possibilita gerenciar e controlar
de modo eficiente as informações e permite criar um ambiente seguro de interação
entre os usuários, etc.
A Engenharia de Software atualmente é acrescida de novos paradigmas, se
comparada com os seus primórdios, concentrando também seus esforços nas
tecnologias e práticas que englobam as linguagens de programação, bases de
dados, ferramentas, plataformas, standards e processos.
Neste contexto, a Engenharia Web surgiu como uma nova disciplina apoiada
na Engenharia de Software, pois os processos de desenvolvimento de software têm
passado por grandes transições ao longo dos anos, e "com o advento das
aplicações de e-Business e e-Commerce, e ainda mais com aplicações para a Web
2.0, este tipo de engenharia tornou-se mais relevante para as equipes de
desenvolvimento" (Wikipédia), criando um cenário mais desafiador para a
Engenharia de Software, cujos paradigmas não estão sendo suficientes para atender
às características destas novas aplicações.
Considerando estes aspectos, podemos afirmar que as aplicações Web
“possuem um comportamento mais complexo e possuem necessidades específicas
quanto à usabilidade, performance, segurança e evolução” (Wikipédia), requerendo,
dessa forma, uma abordagem diferenciada para atender a estes novos requisitos.
6
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 7/28
2. JUSTIFICATIVA
O software esta cada vez mais presente na rotina das pessoas e com a
intensa massificação da internet e as novas tecnologias incorporadas a ela, asWebApp – nome dado às aplicações desenvolvidas para internet – caracterizam
uma nova categoria de software, ainda em expansão, mas já amplamente utilizadas
e que possuem características que não estão definidas na engenharia de software
convencional e por isso merecem uma abordagem diferenciada.
Segundo um levantamento da Cutter Consortium, em novembro de 2002, as
métricas sobre os problemas encontrados no projeto de websites apontavam que
84% não satisfaziam as necessidades do cliente, 53% não possuíam asfuncionalidades, 79% atrasaram o cronograma, 63% excederam o orçamento e 52%
possuíam qualidade pobre.
7
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 8/28
3. OBJETIVOS
3.1. Objetivos Gerais
Os principais objetivos a serem atingidos por este trabalho são:
a) expor as diferenças entre o software convencional e o software na
plataforma Web;
b) conceituar a Engenharia Web;
c) identificar novas abordagens da Engenharia de Software para a Web.
3.2. Objetivos Específicos
Os objetivos específicos são:
a) Identificar o funcionamento da Web e com base nisto comparar o
funcionamento de aplicações convencionais e aplicações Web;
b) Abordar limites da Engenharia de Software clássica;
c) Expor problemas encontrados no desenvolvimento das aplicações;
d) Propor padrões e modelos de processos eficientes para a Engenharia Web.
8
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 9/28
4. DESENVOLVIMENTO
4.1. Considerações sobre WebApps
4.1.1. Como funciona a web
A web é um dos principais serviços da internet que possibilita acesso a
diversos conteúdos de hipertexto, tais como textos, gráficos, vídeos, etc., por meio
de páginas que são acessadas via hiperlink, um texto clicável capaz de realizar a
ligação entre uma página e outra.
Diferentemente do software tradicional que, em sua maioria, executa namáquina do cliente e necessita de instalação e configuração específica, os serviços
da web são centralizados em um servidor, onde diversas pessoas podem realizar
requisições ao conteúdo que deseja acessar, por meio de um browser .
Fig. 1 – Representação sintética do acesso a serviços da web
No modelo orientado a hipertexto, por mais que a ligação entre as páginas
seja estruturada de modo hierárquico, não é possível determinar a linearidade da
navegação realizada. Apesar de a organização hierárquica ser mais recomendada
(Leite, 2004). a organização em rede tem sido mais utilizada atualmente, porém,
ainda representa um problema no desenvolvimento de aplicações web, como será
visto nos próximos tópicos.
4.1.2. O que são WebApp
O termo WebApp é nomenclatura geral a todo tipo de aplicação desenvolvida
em plataforma web, incluindo websites com uma finalidade específica, sistemas
administrativos/comerciais, e intranets. Frequentemente, o termo webware também
é usado para descrever aplicações web, referindo-se mais especificamente às
aplicações para Web 2.0, considerada uma nova geração dos serviços baseados na
web e que trouxe novos paradigmas para estas aplicações caracterizadas
9
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 10/28
principalmente pelos conceitos de interação, compartilhamento, comunicação e
projeto centrado no usuário, ou seja, aproveitamento da inteligência coletiva. Os
webwares têm sido considerados uma tendência para a substituição do software
desktop pela aplicação web.
4.1.3. Comparações entre o software convencional e o software web
Baseado nos modelos de navegação, os softwares convencionais
consolidaram o modelo de janelas em cascata, onde uma tela da aplicação leva a
outra em uma direção linear, possuindo uma janela pai e as janelas filhas, e onde as
ações realizadas se restringem apenas ao escopo da aplicação.
Fig. 2 – Representação do modelo de janelas em cascata
Já as WebApps, como visto anteriormente, possuem um modelo de
navegação em rede, ou teia, como também é chamado. Mesmo existindo a
hierarquia entre determinadas páginas, diversos elementos contribuem para aformação de um fluxo de navegação não-linear, como os botões de voltar e avançar
no navegador, o acesso direto através da URL ou links contidos em diversas
páginas que apontam para o mesmo caminho. Nas WebApps é possível, inclusive,
concluir um processo referenciando um aplicação externa, um outro website, saindo
do escopo daquela aplicação.
10
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 11/28
Fig. 3 – Fluxo de navegação em rede (teia)
Através das observações feitas sobre diversas aplicações e sistemas web e
com base em algumas considerações de Murugesan and Ginige (2004), foi possível
identificar as principais características que diferem o desenvolvimento de um
software tradicional e de um software para a web:
Software Convencional Software Web
Consolidou o modelo de janela em
cascata
Modelo de navegação e interação por
meio de hipertextoPadrão de interface (cores, iconografia,
posicionamento dos elementos)
semelhante, ou seja, é mais consistente
Interface possui características distintas
dependendo do foco do projeto (usuário
precisa aprender a utilizar vários
softwares de modo diferente)Geralmente é desenvolvido com base
em apenas uma linguagem de
programação
Envolve técnicas e procedimentos com
uso de várias linguagens para fins
específicos (Ex.: PHP, HTML,
JavaScript, XML, CSS, etc.)
Aplicações homogêneas, desenvolvidaspara rodar em ambiente específico
Aplicações heterogêneas: é mais difícildefinir perfil de hardware, plataforma,
largura de bandaTempo de resposta rápido, pois
geralmente o sistema atua na mesma
máquina
Tempo de resposta relativamente mais
demorado, depende de N fatores:
pessoas acessando a aplicação no
mesmo momento, conexão com o
servidor, etc.
Descentralização de informações, excetoquando o software é de uso
Centralização das informações, sempre,pois o usuário não precisa instalar a
11
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 12/28
compartilhado através de uma rede aplicação e os dados estão sempre
disponíveis no servidor Linearidade e consistência de
navegação: o usuário não consegueacessar uma tela da aplicação
diretamente sem interagir com um
componente como, por exemplo, um
botão
Usuários podem acessar as páginas
através da URL. Em alguns casos estaoperação é valida e desejada e outras
vezes não, podendo prejudicar a
segurança do sistema
Geralmente, precisam estar disponíveis
apenas para um tipo de dispositivo
Precisam estar disponíveis em diferentes
formatos e dispositivos e suportar
hardware, software e redes com grande
variedade de velocidade de acessoConteúdo é fixo e são
inseridas/alteradas apenas as
informações inseridas no sistema
Não dependem do usuário somente para
a alimentação de informações, mas de
conteúdo também. Dependem, em maior
parte, de conteúdo produzido pelos
próprios usuários. Principalmente com o
advento da web 2.0, estas aplicações
tiveram uma tendência a aumentar ograu de interatividade e conteúdo
colaborativo. As informações estão disponíveis
apenas na máquina onde está instalada
a aplicação
Portabilidade e mobilidade: as
informações podem ser acessadas a
partir de qualquer computador com
acesso à internet e, em alguns casos,
em outros tipos de dispositivos tambémTabela 1 – Comparações do Software Tradicional com o Software Web
12
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 13/28
4.2. Engenharia Web
4.2.1. Definição
Apesar de a engenharia de software estar em constante processo de
evolução, muitos de seus paradigmas deviam receber uma nova abordagem para
atender os requisitos dos produtos e serviços baseados na web. Desta premissa
surge a Engenharia Web, uma disciplina que acrescenta novas competências à
Engenharia de Software clássica, como o modelo de Orientação a Objetos e a
Engenharia de Conhecimento. Por ser mais complexa, é preciso levar em
consideração outros fatores que vão além dos processos de especificação,
documentação, testes e codificação, pois, segundo Formaggio (18/04/2007), "Um
processo de engenharia web deve ter também a preocupação com questões
relacionadas à SEO1, design, ergodesign, conteúdo, entre outras disciplinas, que
deverão produzir artefatos importantes para o processo de desenvolvimento", ou
seja, o desenvolvimento para uma aplicação web deve conter uma equipe com uma
multidisciplinariedade maior que a Engenharia de Software clássica. Além disso, o
processo deve envolver planejamento, arquitetura web e de sistemas, testes,
controle de qualidade, avaliação de performance e atualização contínua(manutenção evolutiva).
A essência da Engenharia Web, de acordo com Murugesan (2004) é
“gerenciar com sucesso a diversidade e complexidade do desenvolvimento de
aplicações web e evitar potenciais falhas que podem ter sérias implicações”.
4.2.2. Problemas atuais com as aplicações web
Com o crescente desenvolvimento das WebApps, elas têm se tornado maiscomplexas e necessitam de uma atenção especial a questões de escalabilidade,
conteúdo, performance, segurança e etc. Entre os principais problemas enfrentados
no desenvolvimento de websites, é possível citar a rápida evolução tecnológica,
demanda constante de atualização das informações, falta de modelo de processos,
grau de complexidade, falta de testes eficientes para mensurar a usabilidade,
planejamento e métodos inadequado, falta de documentação e dificuldades de
implementação e manutenção, etc.
1 Search Engine Optimization: conjunto de técnicas que tem por objetivo otimizar o conteúdo de um site para que ele seja melhor
indexado pelos mecanismos de busca.
13
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 14/28
Entre os problemas mencionados acima, os problemas constantes têm
sido com relação ao planejamento, usabilidade, manutenção e escalabilidade.
Abaixo são listadas as principais implicações no desenvolvimento de WebApps:
• Planejamento e metodologias de desenvolvimento: Com a rápida
evolução tecnológica, há um surgimento massivo de novas técnicas que tem
por finalidade facilitar o desenvolvimento das WebApp e algumas destas
práticas acabam se tornando padrões. Em alguns casos, uma aplicação web
não está planejada e organizada para que possa aplicar estes padrões;
• Escalabilidade: Uma aplicação web deve ser capaz de suportar um
crescente número de usuários utilizando o sistema e ter a capacidade de
incrementar seus recursos e funcionalidades. Esta ainda é uma questão
complexa no desenvolvimento web e envolve outras características, incluindo
o modelo de processo adotado;
• Metodologia de Processos: Apesar de uma consciência maior dentro das
empresas quanto a esta questão, muitas ainda adotam uma metodologia de
processo seqüencial, em cascata ou camadas (ver figura 4);
• Qualificação da Equipe de Desenvolvimento: Muitos profissionais nãoestão devidamente capacitados para atuar em determinada etapa do
desenvolvimento e há casos em que um desenvolvedor deve assumir
diversos papéis dentro do processo de desenvolvimento, sobrecarregando o
profissional e prejudicando a qualidade do sistema;
• Usabilidade de sistemas: devido ao modelo de navegação de hipertexto,
projetar a facilidade de uso das aplicações web têm se tornado uma tarefa
mais intricada para os engenheiros de software. Isso porque é preciso levar em consideração aspectos diretamente relacionados com os campos de
design e IHC, entre outros, tais como ergonomia, design de interfaces,
arquitetura de informação, diagramação, gestalt, etc. O conjunto das técnicas
destes aspectos têm grande relevância comprovada na usabilidade de
interfaces web, segundo diversos autores e pesquisadores da área, tais como
Nielsen(2002), Norman(2003) e Memória(2005);
• Manutenibilidade: muitas aplicações web dependem, em grande parte, do
grande tráfego de informações providas pelos usuários. Neste contexto,
falhas no sistema podem ocorrer e, segundo Moraes apud Pressman (2001),
14
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 15/28
a o sistema deve possuir facilidade de correção, adaptabilidade e
extensibilidade, para que possa atender às necessidades da aplicação e dos
próprios usuários;
• Aplicação de novas tecnologias: muitas tecnologias relativamente novas
têm sido incorporadas em larga escala nos projetos de aplicações web. Estas
tecnologias ainda podem apresentar implicações que podem prejudicar a
performance e confiabilidade do sistema se não forem bem aplicadas.
Tomando como exemplo o AJAX: é uma técnica que tem auxiliado muito no
desenvolvimento de WebApps e que trouxe estas aplicações mais próximas
do comportamento das aplicações desktop, mas seu uso tem se intensificado
sem que fossem analisados os contras que as tecnologia pode vir a trazer se
não for bem aplicada e tratada de modo eficiente nas aplicações.
Fig. 4 – Síntese do modelo comum de desenvolvimento de aplicações web
4.2.3. Conceitos complementares à Engenharia de Software clássica
15
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 16/28
A escalabilidade de Aplicações Web é uma das principais características a ser
considerada no desenvolvimento das WebApp, pois estas necessitam de uma
atualização e evolução mais intensa do que as aplicações convencionais, afinal, as
mudanças nas práticas e nas tecnologias aplicadas são constantes. Por isso, a
estrutura de códigos e estrutura de diretórios (inclusive considerada uma melhor
prática de desenvolvimento por "modularizar" as aplicações) devem permitir o
crescimento da aplicação, sem alterações nas regras de negócio.
Outro fator altamente relevante é o planejamento e a construção de
interfaces, que tem influenciado, inclusive, as interfaces dos softwares
convencionais. Segundo WILEY (2003):
"Devido à grande disponibilidade de Web browsers e a eficiência do
HTML e de suas capacidades de processamento associadas, cada
vez mais as interfaces com o usuário estão sendo construídas como
interfaces com base na Web. [...] As interfaces com base na web
estão substituindo as interfaces com base em formulários, para uma
grande variedade de sistemas ligados."
Como visto anteriormente o design tem grande influência no modo como aspessoas irão utilizar com sucesso uma aplicação web e está diretamente
relacionado à usabilidade. Isso porque os princípios do design de interface que
incluem também as leis da gestalt2 contribuem para orientar os usuários dentro de
aplicações web e unificar consistentemente todas as partes da aplicação de modo
que o acesso às informações seja facilitado. O design é um elemento importante não
somente para compor produtos esteticamente agradáveis, mas de fácil utilização por
parte dos utilizadores. A especificação de requisitos funcionais de aplicações web não diferem muito
do modo como é feito para aplicações desktop. Já para os requisitos não funcionais,
algumas propriedades requerem métricas diferentes para mensurar a qualidade e
eficiência do produto, como descrito na tabela abaixo:
Requisito não funcional Métrica
2 O termo Gestalt, no seu sentido mais amplo, significa uma interação de partes em oposição à soma do “todo”. É comumente
traduzido para o inglês, espanhol e português como estrutura, figura, forma. A teoria da Gestalt, gerada através de pesquisa eexperimentação, sugere uma resposta ao porquê de umas formas agradarem mais e outras não. Ela afirma também que o
cérebro só consegue perceber, decodificar e assimilar uma imagem ou conceito pela sua totalidade e não pelas partes separadas
que formam este todo.
16
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 17/28
Velocidade Tempo de resposta usuário/servidor
(requisição), incluindo o carregamento
de páginas e o processamento de
transações efetuadas do lado do
servidor Tamanho Espaço utilizado em disco e quantidade
de RAM para rodar o servidor. Porém, o
tamanho total que os arquivos do
sistema ocupa não influencia
diretamente na performance, uma vez
que as páginas são carregadasindividualmente e somente o conteúdo
necessário é processado. Além disso, a
aplicação não precisa ser carregada na
memória da máquina do usuário, exceto
no caso de Java Applets e
Frameworks .NET, que podem rodar na
estação de trabalho do cliente.Facilidade de Uso Tempo que os usuários utilizam para
encontrar uma informação ou
funcionalidade
Tempo para realizar tarefasPortabilidade Como na maioria nos projetos de
aplicações web não há precisão quanto
aos sistemas-alvo, as WebApp devem
manter a capacidade de seremexecutadas em diversos navegadores,
resoluções de tela e sistemas
operacionais distintosTabela 2 – Acréscimos nos requisitos funcionais das aplicações web
Outra grande questão a ser considerada cada vez mais pelos projetistas de
software é o foco no usuário. Este quesito hoje é fundamental para direcionar o
17
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 18/28
processo de desenvolvimento em todas as etapas. Isso porque, mais do que
ferramentas de BI (Business Inteligence)3, as WebApps têm tido papel como
ferramentas de gerenciamento e aproveitamento da inteligência coletiva. Este é um
dos princípios da Web 2.0, um movimento que surtiu efeito inclusive dentro das
organizações, nas intranets, com a utilização de ferramentas de comunicação
multidirecional para compartilhar informações (no caso, as “wikis”, bibliotecas
coletivas, comunidades, fóruns), até aplicações que auxiliam no gerenciamento de
tarefas e fluxo de trabalho (workflow), etc. Em suma, as pessoas têm sido
importantes para o desenvolvimento de WebApps, desde o planejamento (projetar
de acordo com as necessidades do usuários) até os testes (participação ativa para
detectar problemas). Saber projetar de modo a transformar a aplicação web em uma
aplicação eficiente para o maior aproveitamento da inteligência coletiva é uma
tendência presente no mercado e um desafio para os desenvolvedores.
4.3. Nova abordagem de desenvolvimento baseada na Engenharia Web
Considerando todos os conceitos vistos até o momento, é possível propor melhores práticas na metodologia de desenvolvimento de aplicações web a fim de
torná-las mais flexíveis, escaláveis e usáveis.
• Equipe de desenvolvimento: Se na Engenharia de Software eram
necessários Gerentes de Projetos, Analistas e Programadores, um
ambiente de desenvolvimento web deve conter uma equipe
completamente multidisciplinar. Isso inclui: Engenheiros de Software, Analistas, Desenvolvedores, Designers, Arquitetos de Informação e
Engenheiros de Usabilidade.
• Metodologia de Desenvolvimento e Testes de Usabilidade: O
modelo visto na Fig. 4 tem certos custos no desenvolvimento de
WebApps. Atualmente, é possível adotar um modelo onde os
profissionais poderão trabalhar paralelamente em cada etapa do
desenvolvimento, devido a outro fator, a ser visto no item seguinte.
3 O termo Business Intelligence (BI), pode ser traduzido como Inteligência de negócios, refere-se ao processo de coleta,
organização, análise, compartilhamento e monitoração de informações que oferecem suporte a gestão de negócios.
18
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 19/28
Dessa forma, há a redução de tempo no desenvolvimento e a
produtividade aumenta. Baseado nos conceitos de Memória(2005) e
aprimorando-os de acordo com padrões web, a serem tratados a
seguir, tem-se a a figura 5 que ilustra este modelo:
Fig. 5 – Proposta de Modelo de desenvolvimento baseado na Engenharia Web
Neste modelo, as etapas envolvendo design e tecnologia ocorrem
concorrentemente, dando maior independência aos profissionais e maior agilidade
no desenvolvimento. Note que na etapa de Prototipação da Interface devem ser
aplicados testes de usabilidade preliminares que podem ajudar a minimizar outros
erros usabilidade do sistema provenientes das etapas posteriores e que irão gerar um retrabalho. Os testes de usabilidade devem ser aplicados durante todo o
19
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 20/28
processo e, segundo Memória apud Nielsen(2005), testes com 5 usuários são
capazes de detectar até 85% das ocorrências de erros. Outra forma de aplicar os
testes sem a presença de usuários é a Avaliação Heurísticas, que consiste de um
conjunto de normas de usabilidade onde os próprios analistas de usabilidade
realizam um check list para verificar se estes erros ocorrem dentro da aplicação.
Abaixo, as 10 heurísticas de Nielsen:
1. Visibilidade da situação atual do sistema: o sistema deve oferecer
feedback aos usuários para que eles se mantenham informados sobre o
status do sistema;
2. Compatibilidade do sistema com o mundo real: o sistema precisa
utilizar diálogos e simples e linguagem que sejam familiares aos usuários,
evitando os termos técnicos e a informação deve aparecer na ordem
natural e lógica de realização de tarefas segundo o modelo mental do
usuário;
3. Controle e liberdade do usuário: O sistema deve ter funções que faça
com que o usuário possa sair de uma parte do sistema rapidamente e sem
danificar a aplicação;
4. Consistência e Padrões: As ações e situações devem ser aplicáveis eobter resultados similares em diferentes partes do sistema. Os usuários
devem saber o que vai acontecer;
5. Prevenção de Erros: Os erros devem ser analisados e evitados;
6. Ajuda no reconhecimento de erros: Caso ocorram erros no sistema, as
mensagem devem ser amigáveis, informando sobre o erro e ajudando o
usuário a solucioná-lo;
7. Reconhecer ao invés de relembrar: O usuário não deve se lembrar dascoisas de uma ação para outra. Os elementos devem estar visíveis e
facilmente recuperáveis quando necesário;
8. Flexibilidade e eficiência de uso: O sistema deve ajudar o usuário em
suas ações mais freqüentes, acelerando a interação. Prover atalhos é uma
boa escolha;
9. Design minimalista e estético: Evitar diálogos com informações
irrelevantes e desnecessárias. Informações desnecessárias reduzem a
visibilidade relativa da informação relevante. No design estético deve
prevalecer a satisfação, o design visual e a legibilidade;
20
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 21/28
10. Oferecer documentação e informações de ajuda: o sistema deve
possuir documentos de fácil acesso que expliquem claramente as
diretrizes de utilização do sistema e informações sobre os processos,
focando nas tarefas do usuário.
• Adoção de Padrões de Desenvolvimento: os diversos padrões de
desenvolvimento utilizados atualmente, tanto no campo de design como de
programação, permitem, segundo a W3C, para o desenvolvedor: a) sites bem
construídos e estruturados; b) facilidade de manutenção; c) redução de
custos; d) redução de dificuldade de criação; e) compatibilidade entre diversas
plataformas. Para os usuários, significa aplicações acessíveis para usuários
de diversos browsers ou pessoas com deficiências, fácil navegação e acesso
aos recursos e ao conteúdo, dinamismo e “leveza” das aplicações. A W3C
trata especificamente de padrões para HTML, XHTML, DOM e CSS, porém, a
Orientação a Objetos e Design Patterns também estão presentes nas
WebApps. A junção de todas estas técnicas culmina em aplicações portáveis,
de fácil utilização e escaláveis, uma vez que os padrões tendem a prover
melhores práticas para a organização e estruturação de aplicações. No caso
do XHTML – nova versão do HTML que incorpora características do XML –semântica de código é um dos princípios para se construir aplicações bem
estruturadas;
• Arquitetura e Organização do Sistema: é um quesito também relacionado
ao item acima. Com a adoção de padrões de desenvolvimento, a organização
dos componentes do sistema deve ser coerente. Dessa forma, classes,
bibliotecas de funções, estilo, conteúdos, regras de negócio e scripts devem
ser permanecer devidamente organizados em diretórios e arquivos distintos,modularizados, sendo linkados conforme a necessidade nas páginas
necessárias, produzindo um código mais limpo e com maior manutenibilidade.
21
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 22/28
5. CONCLUSÃO
A utilização de serviços e aplicações web tem crescido exponencialmente nomundo e estes produtos possuem um papel importante nas diversas tarefas
realizadas pelas pessoas, seja dentro das organizações, na indústria, no comércio,
instituições de ensino, etc. Apesar deste crescimento massivo, os produtos
desenvolvidos possuem baixa qualidade e a Engenharia Web surgiu como uma
disciplina disposta a otimizar o projeto destas aplicações.
Através desta pesquisa foi possível identificar os principais problemas que
desencadeiam a baixa qualidade das WebApps, que vão desde a qualificaçãoinadequada da equipe de desenvolvimento e metodologia adotada para os projetos
de WebApp até o mal planejamento de interfaces, que gera diversas implicações na
usabilidade destes sistemas. Através de um comparativo entre o software tradicional
e o software web e, baseado nos problemas encontrados, foram identificados os
novos conceitos a serem acrescentados nos projetos de aplicações web e, a partir
disso, propor soluções e metodologias que visam resolver os problemas de
planejamento, cronograma, portabilidade, usabilidade, escalabilidade e
manutenibilidade.
Os resultados da análise e as soluções propostas não são completamente
precisos e conclusivos, visto que as aplicações web evoluem rapidamente. Além
disso, seria necessária uma pesquisa mais extensa para levantar outras questões
não abordadas nesta pesquisa, porém, as soluções aqui propostas são suficientes
para dar continuidade a esta pesquisa.
22
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 23/28
6. REFERÊNCIAS BIBLIOGRÁFICAS
ATTERER, Richard et. al. Extending Web Engineering Models and Tools for Automatic Usability Validation. Journal of Web Engineering, v. 5, n. 1, 2006.
FORMAGGIO, Erick Beltrami. Engenharia de Software x Engenharia Web.Disponível em: <http://www.sembrasil.com.br/artigos/engenharia-de-software-x-engenharia-web.html>. Acesso em: 15 set. 2007
FORMAGIO, Alexandre. Web 2.0 + Foco no Usuário. Disponível em:<http://www.slideshare.net/alexandre.formagio/web-20-foco-no-usurio-149531/download>. Acesso: 11 nov. 2007.
MACEDO, M. S. Construindo sites adotando padrões Web. Rio de Janeiro: EditoraCiência Moderna Ltda., 2004. 249 p.
MEMÓRIA, F. Design para a Internet: projetando a experiência perfeita. Rio deJaneiro: Elsevier, 2005. 171 p.
Modelagem Orientada as Objetos de Websites. Disponível em:<https://www.dct.ufms.br/~karen/parte1.ppt>. Acesso em: 14 set. 2007
NIELSEN, J.; TAHIR, M. Homepage Usabilidade: 50 websites desconstruídos. EUA:New Riders Pub, 2002. 315 p.
NORMAN, D. A. Emotional Design: Why We Love (or Hate) Everyday Things. NewYork: Basic Books, 2004. 256 p.
PFLEEGER, S. L. Engenharia de Software: Teoria e Prática. 2ª Edição. São Paulo:Prentice Hall (Pearson), 2004.
Processo de Desenvolvimento de Software. Disponível em:
<http://inf.upf.br/pos/pds/engenharia%20da%20web.ppt>. Acesso em: 15 set. 2007
SEGUINDO os Padrões. Tableless. Disponível em:<http://tableless.com.br/aprenda/seguindo-os-padroes/>. Acesso em: 11 nov. 2007.
SOMMERVILLE, I. Engenharia de Software. 6ª Edição. São Paulo: Pearson AddisonWesley. 2003.
SUH, Woojong. Web Engineering: Principles and Techniques. Estados Unidos /Reino Unido: Idea Group Publishing, 2005. 381 p.
WERNECK, V. M. B. Uma Abordagem de Avaliação de Qualidade de AplicaçõesWeb. Cadernos do IME, v. 14, jun. 2003. Disponível em:
23
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 24/28
<http://magnum.ime.uerj.br/cadernos/cadinf/vol14/6-vera.pdf>. Acesso em: 11 nov.2007.
Wikipédia. Business Intelligence. Disponível em: <http://pt.wikipedia.org/wiki/
Business_intelligence>. Acesso em: 11 nov. 2007
Wikipédia. Engenharia de Software. Disponível em:<http://pt.wikipedia.org/wiki/Engenharia_de_software>. Acesso em: 12 set. 2007
Wikipédia. Web. Disponível em: <http://pt.wikipedia.org/wiki/Web>. Acesso em: 12set. 2007
Wikipédia. Web 2.0 . Disponível em: <http://en.wikipedia.org/wiki/Web_2.0>. Acessoem: 13 set. 2007
Wikipédia. Web Engineering . Disponível em:<http://en.wikipedia.org/wiki/Web_engineering>. Acesso em: 06 set. 2007
Wikipédia. WebApp. Disponível em: <http://en.wikipedia.org/wiki/WebApp>. Acessoem: 12 set. 2007
24
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 25/28
ANEXO: ANÁLISE DE APLICAÇÕES WEB
Remember the Milk
O Remember the Milk é uma aplicação que permite ao usuário organizar sua lista de
tarefas de modo fácil. Desde a tela de cadastro, já é possível perceber a usabilidade
do website. A interface é simples, intuitiva e os dados são validados no exato
momento em que são digitados, campo a campo, evitando assim que os usuários
tenham que voltar para corrigir os erros depois do formulário ter sido submetido. Em
algumas aplicações, onde passam despercebidos os campos obrigatórios ou como
eles devem ser preenchidos, o usuário precisa revisar seu formulário e submetê-lo
uma série de vezes.
Fig. 6 – Tela de cadastro do Remember the Milk
Em termos de portabilidade e interoperabilidade, a aplicação possui integração com
outros dispositivos, tais como Skype, MSN, SMS, entre outros, e permite que as
tarefas possam ser acessadas, inseridas e gerenciadas através do celular.
25
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 26/28
Fig. 7 – Feedback após a realização do cadastro
A mensagem exibida após o cadastramento possui fácil linguagem e conteúdo
informativo, não deixando dúvidas sobre como o usuário deve prosseguir e oferece
uma opção de navegação (efetuar login).
Fig. 8 – Tela de utilização do Remember the Milk
A interface é altamente usável. A técnica de AJAX é usada intensamente nesta
aplicação, mas de modo eficiente. A rapidez com que podem ser executadas asações se assemelha muito com o software desktop. Além disso, possui uma
interface bem organizada, de modo que todos os item são bem visualizados e o
26
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 27/28
usuário consegue encontrar de modo fácil todas as opções, e permite que algumas
ações sejam executadas pelo teclado.
Fig. 9 - Slideshare
O slideshare permite que uma pessoa compartilhe apresentações em slides com
outras pessoas e ainda pode montar sua rede social. A interface também é simples,
mas possui unicidade e organização. A aplicação é um forma diferenciada para que
profissionais, alunos, professores ou qualquer pessoa compartilhe conhecimento.
Fig. 10 – Wikipédia
A Wikipédia é um dos diversos produtos da Wikimedia, uma empresa que produz
diversos softwares baseados em web e que têm como principal característica o
27
5/13/2018 Engenharia Web - slidepdf.com
http://slidepdf.com/reader/full/engenharia-web 28/28
aproveitamento da inteligência coletiva por meio da colaboração e
compartilhamento. A Wikipédia é uma enciclopédia livre, onde qualquer pessoa pode
escrever artigos sobre qualquer assunto e qualquer pessoa pode contribuir com os
artigos, seja expandindo-os, corrigindo, colocando-o em conformidade com os
padrões da Wikipédia, etc. É possível baixar este software para “instalá-lo” em
qualquer lugar. Este modelo de enciclopédia colaborativa tem sido amplamente
utilizada por intranets e portais de universidades.
Fig. 11 – GoogleDocs
O GoogleDocs é uma aplicação experimental da empresa Google e é um editor de
textos – assim como o Microsoft Word – online. As principais funções de um editor
de textos desktop estão presentes no GoogleDocs (formatação, alinhamento, listas,
tabelas, imagens), mas outros recursos importantes são acrescentados: é possívelcompartilhar online o documento com outra pessoa que possui uma conta Google e
duas ou mais pessoas podem estar editando o documento ao mesmo tempo, sem
dados; o usuário tem controle sobre as revisões, pode ver o que foi modificado e
quando foi, é um controle de versões; exporta rapidamente em diversos formatos,
inclusive PDF e apresentação; permite publicar o documento para que esteja
acessível em modo de leitura a qualquer pessoa; centraliza as informações, pois as
pessoas não precisam trocar e-mails a cada vez que o documento for alterado. Esta
alternativa tem sido adotada por diversas empresas, pois podem compartilhar de
modo seguro e centralizado certos documentos com outros membros da equipe.
28