Você está na página 1de 25

UNIVERSIDADE FEDERAL DE SO CARLOS

DEPARTAMENTO DE COMPUTAO






ENGENHARIA PARA A WEB


FABRICIO APARECIDO BREVE










SO CARLOS, JUNHO DE 2002






NDICE
Introduo......................................................................................................................... 3
1. A Evoluo da Web ...................................................................................................... 4
2. O que Engenharia para a Web.................................................................................... 5
3. Caractersticas de Aplicativos para a Web.................................................................... 6
4. Modelo de Processo...................................................................................................... 8
5. Formulao e Anlise ................................................................................................. 11
5.1 Formulao........................................................................................................... 11
5.2 Anlise.................................................................................................................. 12
6. Projeto......................................................................................................................... 13
6.1 Projeto de Arquitetura .......................................................................................... 13
6.2 Projeto de Navegao........................................................................................... 15
6.3 Projeto de Interface............................................................................................... 15
7. Testes.......................................................................................................................... 18
8. Gerenciamento............................................................................................................ 20
8.1 A equipe de desenvolvimento .............................................................................. 20
8.2 Gerenciamento de Projeto .................................................................................... 22
8.3 Gerenciamento de Configurao .......................................................................... 23
Concluso ....................................................................................................................... 24
Referncias Bibliogrficas.............................................................................................. 25

3
Introduo
O nmero de sistemas e aplicativos para a Web tem crescido muito nos ltimos
anos, causando um grande impacto na histria da computao. Com a sua importncia
aumentando, tambm se faz necessrio o uso de uma abordagem disciplinada para a
construo destes sistemas. Abordagens utilizadas na Engenharia de Software
tradicional passaram a ser adotadas na construo de sistemas para a Web.
Os aplicativos para a Web so diferentes de outras categorias de software e tm
caractersticas exclusivas: so dirigidos a contedo, esto em constante evoluo, tm
curto prazo de desenvolvimento, dentre outras.
O grande desafio passa a ser adaptar as tcnicas existentes para uso na Web,
criando assim o que chamado de Engenharia para a Web (Web Engineering). Este
trabalho corresponde a um estudo de tais tcnicas e da maneira com que elas vm sendo
adotadas pelos desenvolvedores de sistemas para a Web.
4
1. A Evoluo da Web
A Web foi inicialmente concebida com o intuito de compartilhar informaes
cientficas entre alguns poucos cientistas. O contedo era esttico e apenas textual, no
havia imagens, sons, animaes ou contedo gerado dinamicamente para cada usurio, a
interao era limitada, a navegabilidade era fcil, alto desempenho era desejvel, mas
no essencial, os sites eram desenvolvidos por apenas uma pessoa ou um pequeno
grupo.
Mas a Web evoluiu e hoje ouvimos msica, vemos filmes, compramos e
vendemos produtos, conhecemos pessoas e inmeros outros usos que no poderiam ser
imaginados dez anos atrs. Murugesan destaca que a Internet levou apenas quatro anos
para estar em 30% dos lares americanos. um tempo bem curto quando comparado a
outros produtos: o telefone levou 40 anos, o rdio levou 35 anos, o videocassete
demorou 20 anos, a televiso 26 anos e o prprio computador levou 19 anos. [MUR00]
[GIN01b]
Escopo e complexidade foram aumentando, pequenos servios foram cedendo
espao para grandes aplicativos, e com isso tambm aumentou a complexidade dos
projetos e as dificuldades de desenvolvimento, manuteno e gerenciamento. Tudo feito
com pouca disciplina, sem preocupao com tcnicas e mtodos padronizados ou
maneiras de controlar a qualidade.
A atitude predominante era: Vamos fazer rpido, no h tempo para planejar, e
acabou gerando aplicativos com grande probabilidade de ter problemas como baixo
desempenho e falhas. Na Web problemas como esses so ainda mais graves que no
software tradicional, pois como afirma Nielsen: a distncia entre um site e seus
concorrentes sempre de apenas poucos cliques. [NIE00]
Falta de planejamento, projetos mal feitos e falta de gerenciamento acabam
tendo conseqncias srias. Segundo Ginige e Murugesan, 84% dos sistemas entregues
no atendem s necessidades do cliente; 79% dos projetos so entregues com atrasos e
63% tm custo maior que o oramento previsto. Mais de 50% dos sistemas prontos so
de baixa qualidade e faltam funcionalidades necessrias. [GIN01]
Como resultado, desenvolvedores e usurios, comearam a se preocupar com a
maneira como sistemas Web complexos esto sendo criados, bem como com seus nveis
de desempenho, qualidade e integridade. E a surge a Engenharia para a Web.
5
2. O que Engenharia para a Web
Segundo Pressman, sistemas e aplicativos da Web so caracterizados por
disponibilizar grande quantidade de contedo e funcionalidade para grande populao
de usurios. A Engenharia para a Web , portanto, o processo utilizado para criar
aplicativos Web de alta qualidade. A Engenharia para Web no igual Engenharia de
Software tradicional, mas compartilham muitos conceitos e princpios fundamentais,
com nfase nas mesmas tcnicas de gerenciamento e atividades. H pequenas diferenas
na maneira como essas atividades so conduzidas, mas a filosofia que dita uma
abordagem disciplinada para o desenvolvimento de um sistema de computador a
mesma. [PRE01]
Ao mesmo tempo em que adota muitos princpios da Engenharia de Software, a
Engenharia para a Web incorpora novas abordagens, metodologias, ferramentas,
tcnicas e normas para atender os requisitos exclusivos dos sistemas para a Web. O
desenvolvimento de sistemas para a Web significantemente diferente do
desenvolvimento de software tradicional e apresenta vrios desafios adicionais.
Tambm um erro achar que o desenvolvimento de aplicativos para Web apenas a
criao de pginas utilizando HTML, FrontPage ou Dreamweaver. E da mesma forma
equivocado achar que desenvolvimento para a Web envolve apenas a manipulao de
diversas mdias e criao de contedo. O desenvolvimento para a Web uma mistura de
publicaes impressas e desenvolvimento de software, entre marketing e computao,
entre comunicaes internas e relaes externas, e entre arte e tecnologia. [GIN01]
[MUR00]
A construo de um sistema para a Web necessita do conhecimento de pessoas
de diferentes reas. Como resultado, a Engenharia para a Web multidisciplinar, e dela
participam reas como: anlise de sistemas e projetos; engenharia de software;
engenharia de hipermdia e hipertexto; engenharia de requisitos; interao humano-
computador; desenvolvimento de interface de usurio; engenharia de informao;
indexao e recuperao de informaes; teste; modelagem e simulao; gerenciamento
de projetos; e projeto grfico e apresentao. [GIN01]

6
3. Caractersticas de Aplicativos para a Web
Segundo Pressman, as seguintes caractersticas podem ser encontradas na grande
maioria dos aplicativos para a Web: [PRE01]
Rede Intensiva: Aplicativos para a Web utilizam recursos de rede por
natureza. Ele est em uma rede e deve atender as necessidades de
diversas comunidades de clientes. Ele pode estar disponvel na Internet
(permitindo comunicao com o mundo todo), em uma Intranet
(implementando comunicao em uma organizao) ou ainda em uma
Extranet (comunicao inter-redes).
Dirigido a Contedo. Em muitos casos, a funo primria do aplicativo
para a Web usar hipermdia para apresentar textos, grficos, e vdeo
para os usurios.
Evoluo contnua. Ao contrrio dos aplicativos convencionais que
evoluem atravs de uma srie de verses planejadas e lanadas em
determinados intervalos de tempo, os aplicativos para a Web evoluem
continuamente.

Alguns autores costumam comparar a evoluo de aplicativos para a Web com
jardinagem. Desenvolver um site consiste em criar uma infra-estrutura (planejar o
jardim) e ento plantar as informaes que iro crescer e florescer neste jardim. Com
o tempo, o jardim (o site) ir evoluir, mudar e crescer. Um bom planejamento inicial
permitir que este crescimento ocorra de uma maneira controlada e consistente.

Pressman cita as principais diferenas entre desenvolver um aplicativo para a
Web e desenvolver um software tradicional: [PRE01]
Imediatismo: o tempo que um site completo precisa ficar pronto pode
ser apenas alguns poucos dias ou semanas. Desenvolvedores devem,
portanto, utilizar mtodos de planejamento, anlise, projeto,
implementao e teste que estejam adaptados para estes cronogramas
comprimidos necessrios no desenvolvimento para a Web.
Segurana: aplicativos para a Web esto disponveis via rede, difcil ou
at mesmo impossvel limitar a populao de usurios que iro acessar o
aplicativo. Para poder proteger o contedo e fornecer mtodos seguros de
7
transmisso de dados preciso implementar medidas rgidas de
segurana no aplicativo e na infra-estrutura do mesmo.
Esttica: inegvel que boa parte do apelo dos aplicativos para a Web
o seu visual. Quando um aplicativo projetado para vender produtos ou
idias, esttica pode ser to importante para o sucesso quanto o projeto
tcnico.

Estas caractersticas gerais se aplicam a todos os aplicativos para Web, mas com
diferentes graus de influncia. Podemos categorizar os aplicativos Web desta forma:
Informacional. Contedo apenas para leitura fornecido com navegao
simples e links.
Download. Um usurio faz o download de informaes dos servidores
apropriados.
Personalizvel. O usurio personaliza o contedo para suas necessidades
especficas.
Interao. Comunicao entre uma comunidade de usurios ocorre em
salas de bate-papo, fruns ou mensagens instantneas.
Entrada de Usurio. Entradas baseadas em formulrios so os
mecanismos primrios para a comunicao necessria.
Orientado a transaes. O usurio faz um pedido que atendido pelo
aplicativo.
Orientado a servios. O aplicativo fornece um servio para o usurio.
Portal. O aplicativo direciona o usurio para outros contedos ou
servios fora do domnio do portal do aplicativo.
Acesso a Banco de Dados. O usurio faz uma consulta em um banco de
dados e extrai informaes.
Data warehousing. O usurio consulta uma coleo de grandes bancos de
dados e extrai informaes.

A chave para o sucesso conviver com as restries impostas por estas
caractersticas e mesmo assim construir um bom aplicativo.
8
4. Modelo de Processo
medida que os aplicativos para a Web evoluem de estticos para dinmicos
necessrio aplicar um gerenciamento slido e os princpios de engenharia passam a ter
fundamental importncia. necessrio, portanto, desenvolver um modelo de
desenvolvimento que atenda tais requisitos de forma eficiente. Pressman prope o
seguinte modelo: (PRE01)


O processo comea com a formulao uma atividade que identifica as metas e
objetivos do aplicativo e determina um escopo para o primeiro incremento. O
planejamento estima os custos do projeto, avalia riscos associados com o
desenvolvimento, elabora um cronograma bem definido para o primeiro incremento, e
um menos definido para os demais. Na Anlise so estabelecidos os requisitos tcnicos
e identificados os itens de contedo que sero incorporados. Requisitos para projeto
grfico (esttica) tambm so definidos.
A atividade de Engenharia incorpora duas atividades paralelas ilustradas no lado
direito da figura. Projeto de Contedo e Produo so tarefas desenvolvidas pelos
membros no-tcnicos da equipe. O objetivo destas tarefas projetar, produzir e/ou
obter todos os textos, grficos, contedo de udio e vdeo que sero integrados ao
aplicativo. Ao mesmo tempo, uns conjuntos de tarefas tcnicas de projeto so
conduzidos.
Gerao das Pginas uma atividade de construo que faz uso pesado de
ferramentas de automatizao. O contedo definido na atividade de engenharia
9
fundido com os projetos de arquitetura, navegao e interface para produzir pginas em
HTML, XML e outras linguagens orientadas a processo (como Java). Integrao com
middleware (CORBA, DCOM ou JavaBeans) tambm feita durante esta atividade.
A atividade de Teste tenta descobrir erros em applets, scripts e formulrios; e
ajuda a garantir que o aplicativo ir funcionar corretamente em diferentes ambientes
(com diferentes browsers).
Cada incremento produzido como parte do processo revisto durante a
Avaliao do Cliente. Neste ponto mudanas so pedidas (extenses de escopo
ocorrem). Estas mudanas sero integradas ao sistema no prximo ciclo do processo
incremental.
Murugesan destaca alguns passos para a construo de um aplicativo para a Web
de sucesso: (MUR00)
Entender o funcionamento geral e operacional do ambiente dos sistemas;
Identificar e especificar requisitos tcnicos e no-tcnicos;
Desenvolver uma arquitetura apropriada;
Tratar satisfatoriamente as limitaes no-tcnicas;
Identificar sub-projetos ou sub-processos para implementar a arquitetura;
Desenvolver e implementar os sub-projetos;
Incorporar mecanismos apropriados e efetivos para gerenciar a evoluo
e as manutenes.
O autor tambm destaca os problemas que normalmente ocorrem:
Inconsistncia das informaes;
Manuteno normalmente utiliza muitos recursos e tempo;
Falta de escalabilidade;
Necessidade de um visual comum;
No incio, requisitos so muito vagos;
Os requisitos iro mudar consideravelmente durante o desenvolvimento e
especialmente quando o aplicativo j estiver em uso;
A tecnologia tambm vem mudando muito rapidamente.

Pesquisas conduzidas por McDonald e Welland mostram que grande parte dos
desenvolvedores para a Web no utilizam um processo de desenvolvimento bem
definido e documentado. E dos que esto utilizando processos bem definidos e
10
documentados, apenas alguns poucos esto utilizando modelos padronizados pela
indstria de software; os outros esto utilizando modelos criados dentro da prpria
organizao.
As pesquisas tambm mostraram que na maioria dos casos o processo se foca na
Implementao. Anlise de Requisitos e Projeto normalmente esto combinadas no
comeo do projeto e as atividades de Teste so conduzidas em conjunto com a
implementao, isto quando so feitas. [MCD01]
11
5. Formulao e Anlise
Formulao e Anlise de sistemas e aplicativos para a Web representam uma
seqncia de atividades de engenharia que comeam com a identificao das metas e
objetivos do aplicativo, e terminam com o desenvolvimento de um modelo de anlise ou
especificao de requisitos para o sistema. A Formulao permite que o cliente e o
desenvolvedor estabeleam um conjunto comum de metas e objetivos para a construo
do aplicativo. Ela tambm ajuda a identificar o escopo do trabalho de desenvolvimento
e fornece meios de determinar o sucesso do projeto. Anlise uma atividade tcnica que
identifica dados, funcionalidades e requisitos comportamentais de um aplicativo.
[PRE01]
5.1 Formulao
As seguintes questes devem ser feitas no primeiro passo da etapa de
formulao:
Qual o principal motivo para desenvolvermos este aplicativo?
Por que este aplicativo necessrio?
Quem vai usar este aplicativo?

A resposta para cada uma destas perguntas deve ser determinada de maneira bem
sucinta e objetiva. Atravs delas so identificadas as metas. H basicamente duas
categorias de metas:
Metas de informao. Indicam a inteno de fornecer contedo
especfico e/ou informao para o usurio
Metas de aplicativo. Indicam a habilidade de executar tarefas do
aplicativo.

Quando todas as metas de ambos os tipos forem identificadas, um perfil de
usurio desenvolvido. Este perfil captura caractersticas relevantes dos usurios
potenciais incluindo suas experincias, conhecimentos, preferncias, etc.
Quando todas as metas e perfis de usurios estiverem desenvolvidos, a atividade
de formulao ir focar a declarao de escopo do aplicativo para a Web. Em muitos
12
casos, as metas desenvolvidas esto integradas com esta declarao de escopo. Tambm
importante, neste estgio, indicar os graus de integrao esperados e restries de
conectividade. [PRE01]
5.2 Anlise
Durante esta etapa da Engenharia para a Web, quatro diferentes tipos de anlises
so conduzidos:
Anlise de Contedo: todo o contedo a ser fornecido pelo aplicativo
identificado. Contedo inclui textos, grficos e imagens, dados de udio
e vdeo.
Anlise de Interao: a maneira pela qual o usurio interage com o
aplicativo descrita em detalhes.
Anlise Funcional: os cenrios de uso criados na anlise de interao
iro definir operaes que iro ser utilizadas no aplicativo, que implicam
outras funes de processamento. Todas as operaes e funes so
descritas em detalhe.
Anlise de Configurao: O ambiente e a infra-estrutura na qual o
aplicado reside so descritos em detalhe. O aplicativo pode estar na
Internet, em uma Intranet ou em uma Extranet.

Pressman afirma que: apesar da especificao detalhada de requisitos ser
recomendada para aplicativos complexos, raramente ela feita. Isto fica especialmente
claro no resultado das pesquisas realizadas por McDonald e Welland. A argumentao
mais comum que a evoluo contnua dos aplicativos para a Web torna os documentos
de requisitos obsoletos antes mesmo de completar o desenvolvimento. Apesar disto ser
verdade em alguns casos, necessrio definir ao menos um modelo de anlise para
servir de base para a atividade de projeto que vem adiante. Minimamente se deve rever
as informaes coletadas, modific-las conforme necessrio e organiz-las em um
documento que pode ser passado aos projetistas. [PRE01] [MCD01]
13
6. Projeto
As caractersticas de curto prazo de desenvolvimento e rpida evoluo de
sistemas para a Web foram os desenvolvedores a realizarem um projeto que resolva os
problemas imediatos e que, ao mesmo tempo, crie uma arquitetura que comporte uma
evoluo rpida. O problema, obviamente, que na tentativa de resolver apenas o
problema imediato, acaba-se comprometendo a capacidade evolutiva do aplicativo. Este
o dilema do projetista. [PRE01]
Com o objetivo de fazer um projeto efetivo, o engenheiro deve se concentrar no
reuso de quatro elementos tcnicos:
Mtodos e Princpios de Projeto: Modularidade eficiente (alta coeso e
baixo acoplamento) e outras heursticas da construo de software devem
ser utilizadas tambm para a Web. Pode-se utilizar inclusive os mtodos
de projetos para sistemas orientados a objetos, pois a hipermdia define
objetos que interagem atravs de um protocolo de comunicao que
bem parecido com o utilizado na orientao a objetos. Alm disso, h
grande variedade de mtodos para projeto de hipermdia.
Regras de Ouro (Golden Rules): Sistemas para a Web j vm sendo
construdos h uma dcada. Neste tempo, os projetistas desenvolveram
um conjunto de heursticas que podem ser reaplicadas durante o projeto
de novos aplicativos.
Padres de Projetos (Design Patterns): So abordagens genricas
utilizadas para resolver problemas genricos que podem ser adaptadas
para resolverem uma grande variedade de problemas mais especficos.
Modelos (Templates): um modelo pode ser utilizado para fornecer um
esqueleto para qualquer tipo de padro de projeto que ser utilizado no
aplicativo.

6.1 Projeto de Arquitetura
O Projeto de Arquitetura para sistemas para a Web tem foco na definio da
estrutura hipermdia do aplicativo, na aplicao de padres e na construo de modelos
14
(templates) para montar a estrutura e permitir reuso. Uma atividade paralela chamada de
Projeto de Contedo, deriva a estrutura geral e o esboo detalhado do contedo que ser
apresentado no aplicativo.
Nesta etapa definida a estrutura que ser utilizada, ou seja, a maneira como o
contedo ser apresentado ao usurio, e como a navegao ser realizada. Pressman
mostra quatro tipos de estruturas que podem ser utilizadas: [PRE01]
Estrutura Linear: utilizada quando h seqncia previsvel de interaes,
e eventualmente alguma variao. Um bom exemplo seriam
apresentaes de tutoriais com vrias pginas de informao, alm de
grficos e vdeos relacionados. Neste caso o contedo
predominantemente linear.
Estrutura de Grade: aplicada quando o contedo pode ser organizado
categoricamente em duas (ou mais) dimenses. Um exemplo seria uma
loja de instrumentos musicais, os produtos poderiam ser separados por
tipo (violes, guitarras, contra-baixos, etc.) ou fabricantes, e o usurio
teria a opo de escolher como quer navegar.
Estrutura Hierrquica: a mais comum. Nela o usurio pode navegar por
toda a hierarquia, no apenas na vertical, mas tambm na horizontal. Isto
feito atravs de links que levam a outra parte da estrutura. uma
estrutura que permite navegao rpida, mas que pode confundir o
usurio.
Estrutura de Rede ou Pure Web: similar ao modo como funciona a
arquitetura de sistemas orientados a objetos. Nela cada componente
(neste caso pginas) so projetados de modo que possam passar
comandos (via links de hipertexto) para virtualmente qualquer outro
componente do sistema. Esta abordagem cria bastante flexibilidade de
navegao, mas pode confundir o usurio.

Estes modelos de arquitetura descritos podem ser combinados para formar
estruturas compostas. Por exemplo, a estrutura pode ser predominantemente hierrquica,
mas uma parte dela pode ter caractersticas lineares, e uma outra parte ter uma estrutura
de rede. O objetivo criar a estrutura ideal para o contedo a ser apresentado.
15
6.2 Projeto de Navegao
Uma vez que a arquitetura est criada e os componentes (pginas, scripts,
applets, etc.) j foram identificados, hora do projetista definir caminhos que permitam
ao usurio ter acesso aos contedos e aos servios. Para tanto o projetista deve:
identificar as semnticas de navegao para diferentes usurios e definir os mecanismos
para realizar a navegao.
Um aplicativo complexo normalmente tem vrios tipos de usurios. Por
exemplo: visitantes, usurios registrados, etc. Cada tipo de usurio pode ser associado
com diferentes nveis de acesso a contedo e diferentes servios. Um visitante pode ter
acesso apenas a um contedo limitado, enquanto que um usurio registrado ter acesso a
uma quantidade muito maior de contedo.
O objetivo desta fase criar uma unidade semntica de navegao (semantic
navigation unit SNU) para cada objetivo associado a cada tipo de usurio. A estrutura
do SNU composta de um conjunto de sub-estruturas navegveis que podemos chamar
de caminhos (ways of navigating WoN). Cada um desses caminhos representar a
melhor maneira de navegar para que um determinado usurio atinja sua meta ou sub-
meta. A estrutura de um caminho (WoN) feita de um conjunto de ns relevantes
(navigational nodes NN) conectados por links (navigational links), incluindo algumas
vezes outras SNUs.
A prxima etapa escolher como os links sero identificados. Dentre as opes
esto: textos, cones, botes, etc. O projetista deve escolher o que achar mais apropriado
para o contedo e consistente com as heursticas que levam a uma boa interface.
6.3 Projeto de Interface
Os mtodos para construo de interfaces utilizados na Engenharia de Software
podem ser aplicados tambm para a Web, porm as caractersticas dos aplicativos para a
Web requerem algumas consideraes adicionais. [PRE01]
Na Web a interface tem um papel ainda mais importante que no software
tradicional, ela a primeira impresso. Uma interface mal desenhada pode desapontar o
usurio e ele pode procurar outro site. E ainda pior, provavelmente ele no voltar mais
no site que ele no gostou. Nielsen apresenta algumas recomendaes simples que
podem ser seguidas para construir uma boa interface: [NIE00]
16
Erros no servidor, mesmo os menores, podem fazer com que um usurio
deixe o site e procure a informao ou servio que deseja em outro lugar;
No se deve forar o usurio a ler grandes quantidades de texto,
principalmente se for texto explicando como operar o aplicativo ou
navegar por ele;
Avisos de Em Construo devem ser evitados, so links desnecessrios
que causam uma expectativa do usurio que com certeza ir se
desapontar;
Usurios no gostam de rolar a tela, informaes importantes devem ser
colocadas no topo, de forma que aparea logo que a pgina carregada;
Menus e barras de navegao devem ser projetados de forma consistente,
e devem estar disponveis em todas as pginas que o usurio ir navegar.
No se deve contar com as funcionalidades do browser;
Opes de navegao devem ser bvias, mesmo para o usurio casual. O
usurio no pode ficar procurando pela tela at encontrar o que deseja.

O Projeto de Interface deve se preocupar bastante com a usabilidade. Muitas
vezes o projetista quer criar algo complexo, utilizando todas as mais recentes inovaes
tecnolgicas e acaba criando algo difcil de usar, que far com que o usurio cometa
muitos erros e desista de usar o site. Murugesan apresenta uma srie informaes e
recomendaes que devem ser levadas em considerao pelo desenvolvedor que quer
criar um bom aplicativo para a Web: [MUR00]
Pessoas gastam horas clicando em um site para encontrar uma simples
informao.
Surfar na Web muito mais difcil do que parece.
Os usurios (potenciais clientes) esto conseguindo navegar no seu site?
Por que os humanos tm que se adaptar a tecnologia? Por que a
tecnologia no se adapta aos humanos?
Sua empresa no o pblico-alvo.
Voc deve escrever seu site em uma linguagem que seus usurios
compreendam.
17
Grandes erros continuam acontecendo na Web: links quebrados, cores
no padronizadas, URLs que mudam e fazem com que links externos
para seu site fiquem quebrados.
Na Internet, sobrevive o mais fcil de usar.
Se o usurio no consegue achar o produto, ele no ir compr-lo.
Ateno com a usabilidade aumenta a porcentagem de visitantes que se
tornam clientes.

O usurio na Web tem pouca pacincia com sites lentos ou difceis de navegar,
eles no querem ter de aprender como usar um site, eles devem simplesmente conseguir
utiliz-lo, caso contrrio iro procurar a informao que desejam em outro lugar.
Problemas de usabilidade ainda afetam a grande maioria dos sites, mesmo os sites mais
conhecidos e j consolidados apresentam problemas que podem afastar visitantes que
esto fazendo sua primeira visita. [MUR00] [BRE01]

18
7. Testes
Assim como na Engenharia de Software, na Engenharia para a Web as atividades
de teste tambm visam encontrar erros. De fato, os testes nos aplicativos para a Web so
um desafio ainda maior, pois estes aplicativos podem ser acessados utilizando diferentes
browsers, sistemas operacionais, plataformas de hardware, etc.
Pressman apresenta uma abordagem que adota os princpios bsicos para o teste
de qualquer software e aplica estratgias e tticas que so recomendadas para sistemas
orientados a objetos: [PRE01]
1. O modelo de contedo revisto para descobrir erros. Esta atividade
de teste similar em muitos aspectos com a reviso de documentos
impressos. Um site grande pode utilizar os servios de um editor
profissional que ir descobrir erros de tipografia e gramtica,
consistncia do contedo, representaes grficas, dentre outros.
2. O modelo de projeto revisto para descobrir erros de navegao.
Cada cenrio exercitado de acordo com o projeto de arquitetura e
navegao. Isto serve para encontrar erros de navegao onde o usurio
no consegue chegar ao n desejado. Alm disso, cada link testado para
garantir que correspondem ao que foi especificado na SNU para cada tipo
de usurio.
3. Componentes selecionados passam por um processo de teste de
unidade. Nos aplicativos para a Web o conceito de unidade muda. Cada
pgina contm contedo, links, forms, scripts, etc. Nem sempre
possvel testar cada uma dessas caractersticas individualmente. Em
muitos casos, a menor unidade testvel a pgina. No software
tradicional o teste de unidade focado em detalhes de algoritmo de um
mdulo e dos dados que fluem pela interface do mdulo. Nos aplicativos
para a Web este teste focado pelo contedo, processamento e links que
esto nas pginas.
4. A arquitetura construda e testes de integrao so conduzidos. A
estratgia para teste de integrao depende da arquitetura que foi
escolhida. Se foi utilizada uma arquitetura linear, de grade ou hierrquica
possvel integrar as pginas da mesma maneira que fazemos com
19
software tradicional. Porm, se foram utilizadas arquiteturas combinadas
ou estrutura de rede, o teste de integrao passa a ser similar a
abordagem usada para orientao a objetos.
5. O aplicativo j integrado testado em sua funcionalidade geral e
contedo fornecido. Assim como na validao de software
convencional, a validao de sistemas para a Web focada nas aes do
usurio e nas sadas do sistema para o mesmo. Para ajudar na construo
de testes de validao o testador deve se basear em casos de uso (use-
case).
6. O aplicativo implementado em diferentes configuraes de
ambientes e testado em sua compatibilidade com cada configurao.
So definidos todos os provveis sistemas operacionais, browsers,
plataformas de hardware e protocolos de comunicao. Testes so
conduzidos para descobrir erros associados com cada uma das possveis
configuraes.
7. O aplicativo testado por uma populao controlada de usurios.
So selecionados de usurios que representem cada tipo de usurio que o
sistema ter. O aplicativo testado por estes usurios e os resultados de
suas interaes so avaliados para encontrar erros de contedo e
navegao, questes de usabilidade e compatibilidade, bem como
desempenho e confiabilidade do aplicativo.

20
8. Gerenciamento
Por causa do curto perodo de desenvolvimento e da constante evoluo de
aplicaes para a Web, muitos perguntam: realmente necessrio gastar tempo
gerenciando o desenvolvimento? Muitos desenvolvedores acabam optando por pouco
ou nenhum gerenciamento. Isto no quer dizer que eles estejam certos. [PRE01]
O desenvolvimento para a Web complicado. Muitas pessoas so envolvidas,
freqentemente trabalhando em paralelo. A combinao de tarefas tcnicas e no
tcnicas que ocorrem so um desafio para qualquer grupo de profissionais. Para evitar
confuses, frustraes e falhas, um planejamento precisa ocorrer, riscos precisam ser
considerados, um cronograma precisa ser estabelecido e acompanhado, e mecanismos
de controle precisam ser definidos. A este conjunto de atividades chamamos
Gerenciamento.

8.1 A equipe de desenvolvimento
A criao de um aplicativo de sucesso para a Web demanda um grande conjunto
de habilidades, pois so muitos aspectos que devem ser considerados. A equipe pode ser
organizada quase da mesma forma que no desenvolvimento de software tradicional,
porm as tarefas sero bastante distintas.
Os seguintes papis podem ser distribudos entre os membros da equipe:
[PRE01]
Desenvolvedores e Provedores de Contedo. Este pessoal ir se
concentrar na coleta e gerao de contedo. Podem vir de diversas reas
no relacionadas com software. Por exemplo, o pessoal de marketing ou
vendas poder fornecer informaes e imagens de produtos, os criadores
de mdia podero fornecer material de udio e vdeo, projetistas grficos
podero fazer o projeto de layout e contedo esttico, etc.
Web Publisher. O vasto contedo gerado pelos desenvolvedores de
contedo precisa ser organizado para incluso no aplicativo. Alm disso,
algum precisa fazer a conexo entre o pessoal tcnico que constri o
aplicativo e o pessoal no-tcnico que desenvolve o contedo. Este papel
21
realizado pelo Web Publisher, que precisa entender o contedo, bem
como a tecnologia do aplicativo.
Web Engineer. Este se envolve em vrias atividades durante o
desenvolvimento, incluindo levantamento de requisitos; anlise; projeto
arquitetural, de navegao e de interface; implementao; e teste. Ele
tambm precisa ter um conhecimento slido de tecnologia de
componentes, arquitetura cliente/servidor, HTML/XML, tecnologias de
banco de dados, e tambm conhecimento de conceitos multimdia,
plataformas de hardware e software e segurana de redes.
Especialista de Suporte. Este papel designado para as pessoas que
sero responsveis por dar continuidade no suporte ao aplicativo para a
Web. Como este tipo de aplicativo evolui continuamente, este
especialista responsvel pelas correes, adaptaes e melhorias no
site, incluindo atualizao de contedo, implementao de novos
procedimentos e mudanas na navegao.
Administrador. Tambm conhecido como Web Master, esta pessoa
responsvel pela operao do site no dia-a-dia, incluindo
desenvolvimento e implementao de regras para operao do aplicativo;
fixao de procedimentos de suporte; implementao de procedimentos
de segurana e direitos de acesso; medio e anlise de trfego;
coordenao de mudanas de procedimentos; coordenao de
especialistas de suporte.

McDonald e Welland destacam que as equipes de desenvolvimento para
aplicativos Web so normalmente menores que as equipes de desenvolvimento
de software tradicional. Em ambos os casos as equipes so gerenciadas em
pequenos grupos, mas a semelhana acaba a, pois no desenvolvimento de
software tradicional as equipes so divididas em unidades menores para resolver
diferentes problemas e executar diferentes tarefas. Mas no desenvolvimento para
a Web, as equipes so divididas em grupos multidisciplinares, que construiro
diferentes sees do aplicativo para a Web, mas em geral iro trabalhar em
problemas similares. No decorrer do desenvolvimento de um software
tradicional, as equipes devem interagir entre si, isto normalmente feito atravs
de interfaces pr-definidas, com cada equipe vendo o trabalho das outras equipes
22
como caixas-pretas Na engenharia para a Web as equipes precisam se comunicar
ainda mais, com o objetivo de reduzir o esforo e garantir consistncia.
[MCD01]

8.2 Gerenciamento de Projeto
Na teoria, a maioria das atividades de gerenciamento de projeto utilizadas na
Engenharia de Software pode ser utilizada tambm na Engenharia para a Web. Mas na
prtica, a abordagem consideravelmente diferente.
O desenvolvimento de aplicativos para a Web uma rea relativamente nova e
h poucos dados histricos que podem ser utilizados para fazer estimativa. At agora,
nenhum tipo de mtrica foi publicado e ainda h pouca discusso de como devem ser
estas mtricas. Com isso, estimativas so baseadas apenas em experincias com projetos
similares. Mas quase todo aplicativo para a Web quer inovar em alguma coisa,
oferecendo algo novo e diferente. Isto acaba fazendo com que estimativas baseadas em
experincia com outros projetos, apesar de teis, estejam sujeitas a uma alta margem de
erro.
Grande parte dos aplicativos na Web construda por terceiros, especializados
neste tipo de desenvolvimento. Neste caso, til para a empresa contratante fazer
algumas tarefas antes de procurar algum para fazer o trabalho: [PRE01]
1. Muitas das atividades de anlise devem ser feitas internamente, incluindo
a definio do pblico-alvo; dos objetivos; das informaes e servios a
serem fornecidos; e das medidas quantitativas e qualitativas que sero
utilizadas para medir o sucesso. Tudo isto deve ser documentado na
especificao do produto.
2. Um esboo do projeto deve ser criado, pois economizar tempo e custo
para o desenvolvedor, que ter uma idia melhor de como dever ser o
aplicativo. Estas informaes tambm devem ser adicionadas
especificao do produto.
3. Um esboo do cronograma deve ser definido e acompanhado.
4. Os nveis de interao entre o contratante e o contratado devem ser
identificados, incluindo as responsabilidades de cada um.

23
8.3 Gerenciamento de Configurao
As estratgias utilizadas na Engenharia de Software so aplicveis, porm tticas
e ferramentas devem ser adaptadas para as caractersticas dos aplicativos para a Web.
Quatro limitaes devem ser consideradas quando desenvolvendo tticas para o
gerenciamento de configurao: [PRE01]
Contedo. Um aplicativo para a Web tpico possui bastante contedo
textos, grficos, applets, arquivos de udio e vdeo, formulrios, tabelas,
etc. O desafio organizar todo este contedo em um conjunto racional de
objetos e ento estabelecer mecanismos de controle de configurao
apropriados para estes objetos.
Pessoas. Como o desenvolvimento do aplicativo para a Web contnuo,
qualquer pessoa pode criar contedo. Muitas delas no tm
conhecimentos em engenharia de software e desconhecem as
necessidades de gerenciamento de configurao. Estes aplicativos
acabam crescendo de forma descontrolada.
Escalabilidade. As tcnicas e controles aplicados a aplicativos para a
Web pequenos no so bem escalveis. comum ver aplicativos
crescendo em tamanho e complexidade, e com isso pequenas mudanas
acabam tendo efeitos inesperados e problemticos.
Poltica. Quem o dono do aplicativo? Esta questo bastante discutida
em grandes e pequenas companhias, e a resposta tem impacto
significativo nas atividades de gerenciamento e controle.

Resumidamente, poderamos dizer que o Gerenciamento de Configurao para a
Web ainda est comeando. O processo convencional no funciona como deveria. A
maioria das tcnicas existentes no conta com elementos que permitam adapt-las para a
Web. Estas limitaes precisam ser contornadas antes que tenhamos um controle de
configurao disponvel par aplicativos Web.
24
Concluso
A evoluo rpida da Web e o impacto que ela tem causado nos ltimos anos
bem significante. A maneira desordenada com que a maior parte dos aplicativos para a
Web so construdos preocupante, principalmente quando analisamos as pesquisas que
mostram que a grande maioria dos sites tem problemas de funcionalidade e/ou
usabilidade.
As tcnicas criadas e j consolidadas na Engenharia de Software podem ser
utilizadas e isto uma vantagem. Porm, preciso fazer algumas adaptaes, tendo
muito cuidado com todas as caractersticas especficas de sistemas para a Web que
foram estudadas neste trabalho.
Infelizmente poucos desenvolvedores utilizam as tcnicas de engenharia, e os
poucos que utilizam o fazem de forma restrita ou errnea. Este um problema que
tambm ocorre na Engenharia de Software, mas na Engenharia para a Web a incidncia
ainda maior. Os problemas ocorrem principalmente nas reas de Anlise, Requisitos,
Testes, Validao e Manuteno, que so reas importantes que ainda no recebem a
ateno necessria, pois a maior parte dos desenvolvedores concentram-se apenas na
fase de Implementao.
Os estudos mostram que o uso de tcnicas de engenharia eficaz e eficiente,
portanto os esforos devem ser concentrados nesta adaptao das tcnicas utilizadas na
Engenharia de Software, incluindo o desenvolvimento de mtricas e tcnicas para o
gerenciamento de projeto. Paralelamente precisa haver um trabalho para conscientizar
desenvolvedores da importncia do uso destas tcnicas, mostrando como as mesmas
poderiam tornar seu trabalho mais eficiente, trazendo tambm melhores resultados.

25
Referncias Bibliogrficas
[BIE98] BIEBER, Michael. Web Engineering. New Jersey Institute of Technology,
1998. <http://www-ec.njit.edu/~bieber/web-engineering.html>

[BRE01] BREVE, Fabricio e WELLER, Daniel. Mtodos de Avaliao para Sites de
Entretenimento. Universidade Metodista de Piracicaba, 2001.

[GIN01] GINIGE, Athula e MURUGESAN, San. Web Engineering: An Introduction.
IEEE Multimedia. Janeiro-Maro 2001.

[GIN01b] GINIGE, Athula. Engineering A Better Website. University Of Western
Sydney. Austrlia, Outubro de 2000. <http://aeims.uws.edu.au/talks/eng-web-sites.pdf>

[GIN01c] GINIGE, Athula. Web Engineering in Action. University Of Western
Sydney. Austrlia, Outubro de 2000 <http://aeims.uws.edu.au/talks/Webe-in-
action.pdf>

[MCD01] MCDONALD, Andrew e WELLAND, Ray. The University, Glasgow G12
8QQ, Scotland. 2001. <http://www.dcs.gla.ac.uk/~andrew/webe2001.pdf>

[MUR00] MURUGESAN, San. Web Engineering For Sucessful Web Application
Development. University Of Western Sydney. Austrlia, Outubro de 2000.
<http://aeims.uws.edu.au/Talks/Web-ApWeb2000.PDF>

[NIE00] NIELSEN, Jakob. Designing Web Usability. New Riders Publishing, 2000.

[PRE01] PRESSMAN, Roger S. Software Engineering: A Practioners Approach.
McGraw-Hill. 5 edio. 2001.

Você também pode gostar