Anda di halaman 1dari 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

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.

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.

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 humanocomputador; 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]

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.

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. seguinte modelo: (PRE01) Pressman prope o

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 e alguma variao. Um Neste bom caso exemplo o seriam apresentaes de tutoriais com vrias pginas de informao, alm de grficos vdeos relacionados. 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 submeta. 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 (usecase). 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-inaction.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.

Anda mungkin juga menyukai