Você está na página 1de 28

UNIVERSIDADE DO SAGRADO CORAO

ENGENHARIA WEB

BAURU - 2007

UNIVERSIDADE DO SAGRADO CORAO

ENGENHARIA WEB

Orientador: Prof Ms. Ronaldo Martins da Costa Andra Luisa de MATOS Talita Cristina Pagani BRITTO

BAURU - 2007

SUMRIO
LISTA DE FIGURAS.....................................................................................................................4 LISTA DE TABELAS.....................................................................................................................5 1. INTRODUO...........................................................................................................................6 2. JUSTIFICATIVA........................................................................................................................7 3. OBJETIVOS................................................................................................................................8 3.1. Objetivos Gerais....................................................................................................................8 3.2. Objetivos Especficos............................................................................................................8 4. DESENVOLVIMENTO..............................................................................................................9 4.1. Consideraes sobre WebApps............................................................................................9
4.1.1. Como funciona a web..............................................................................................................................9 4.1.2. O que so WebApp.................................................................................................................................9

4.2. Engenharia Web..................................................................................................................13


4.2.1. Definio...............................................................................................................................................13 4.2.2. Problemas atuais com as aplicaes web..............................................................................................13 4.2.3. Conceitos complementares Engenharia de Software clssica............................................................15

4.3. Nova abordagem de desenvolvimento baseada na Engenharia Web.................................18 5. CONCLUSO...........................................................................................................................22 6. REFERNCIAS BIBLIOGRFICAS......................................................................................23 ANEXO: ANLISE DE APLICAES WEB............................................................................25

LISTA DE FIGURAS
Fig. 1 Representao sinttica do acesso a servios da web........................................................9 Fig. 2 Representao do modelo de janelas em cascata............................................................10 Fig. 3 Fluxo de navegao em rede (teia).................................................................................11 Fig. 4 Sntese do modelo comum de desenvolvimento de aplicaes 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 aps a realizao do cadastro..........................................................................26 Fig. 8 Tela de utilizao do Remember the Milk.......................................................................26 Fig. 9 - Slideshare..........................................................................................................................27 Fig. 10 Wikipdia.......................................................................................................................27 Fig. 11 GoogleDocs....................................................................................................................28

LISTA DE TABELAS

Tabela 1 Comparaes do Software Tradicional com o Software Web....................................12 Tabela 2 Acrscimos nos requisitos funcionais das aplicaes web.........................................17

1. INTRODUO
Podemos definir um software como um conjunto composto pelos programas, pelas especificaes de requisitos, a documentao do sistema e a manuteno do sistema. A Engenharia de Software uma disciplina ligada a Cincia da Computao, que surgiu justamente da necessidade de criar procedimentos adequados para resoluo de problemas de software e, com isso, construir produtos funcionais de alta qualidade, ou seja, ela se ocupa de todos os aspectos de produo de software (SOMMERVILLE, 2003). Atualmente, a sociedade de um modo geral depende do uso de software, pois, entre suas diversas funes, ele facilita o acesso informao, agiliza a produo e o fluxo de trabalho dentro das empresas, possibilita gerenciar e controlar de modo eficiente as informaes e permite criar um ambiente seguro de interao entre os usurios, etc. A Engenharia de Software atualmente acrescida de novos paradigmas, se comparada com os seus primrdios, concentrando tambm seus esforos nas tecnologias e prticas que englobam as linguagens de programao, 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 tm passado por grandes transies ao longo dos anos, e "com o advento das aplicaes de e-Business e e-Commerce, e ainda mais com aplicaes para a Web 2.0, este tipo de engenharia tornou-se mais relevante para as equipes de desenvolvimento" (Wikipdia), criando um cenrio mais desafiador para a Engenharia de Software, cujos paradigmas no esto sendo suficientes para atender s caractersticas destas novas aplicaes. Considerando estes aspectos, podemos afirmar que as aplicaes Web possuem um comportamento mais complexo e possuem necessidades especficas quanto usabilidade, performance, segurana e evoluo (Wikipdia), requerendo, dessa forma, uma abordagem diferenciada para atender a estes novos requisitos.

2. JUSTIFICATIVA
O software esta cada vez mais presente na rotina das pessoas e com a intensa massificao da internet e as novas tecnologias incorporadas a ela, as WebApp nome dado s aplicaes desenvolvidas para internet caracterizam uma nova categoria de software, ainda em expanso, mas j amplamente utilizadas e que possuem caractersticas que no esto definidas na engenharia de software convencional e por isso merecem uma abordagem diferenciada. Segundo um levantamento da Cutter Consortium, em novembro de 2002, as mtricas sobre os problemas encontrados no projeto de websites apontavam que 84% no satisfaziam as necessidades do cliente, 53% no possuam as funcionalidades, 79% atrasaram o cronograma, 63% excederam o oramento e 52% possuam qualidade pobre.

3. OBJETIVOS
3.1. Objetivos Gerais Os principais objetivos a serem atingidos por este trabalho so: a) expor as diferenas 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 Especficos Os objetivos especficos so: a) Identificar o funcionamento da Web e com base nisto comparar o funcionamento de aplicaes convencionais e aplicaes Web; b) Abordar limites da Engenharia de Software clssica; c) Expor problemas encontrados no desenvolvimento das aplicaes; d) Propor padres e modelos de processos eficientes para a Engenharia Web.

4. DESENVOLVIMENTO

4.1. Consideraes sobre WebApps 4.1.1. Como funciona a web A web um dos principais servios da internet que possibilita acesso a diversos contedos de hipertexto, tais como textos, grficos, vdeos, etc., por meio de pginas que so acessadas via hiperlink, um texto clicvel capaz de realizar a ligao entre uma pgina e outra. Diferentemente do software tradicional que, em sua maioria, executa na mquina do cliente e necessita de instalao e configurao especfica, os servios da web so centralizados em um servidor, onde diversas pessoas podem realizar requisies ao contedo que deseja acessar, por meio de um browser.

Fig. 1 Representao sinttica do acesso a servios da web

No modelo orientado a hipertexto, por mais que a ligao entre as pginas seja estruturada de modo hierrquico, no possvel determinar a linearidade da navegao realizada. Apesar de a organizao hierrquica ser mais recomendada (Leite, 2004). a organizao em rede tem sido mais utilizada atualmente, porm, ainda representa um problema no desenvolvimento de aplicaes web, como ser visto nos prximos tpicos. 4.1.2. O que so WebApp O termo WebApp nomenclatura geral a todo tipo de aplicao desenvolvida em plataforma web, incluindo websites com uma finalidade especfica, sistemas administrativos/comerciais, e intranets. Frequentemente, o termo webware tambm usado para descrever aplicaes web, referindo-se mais especificamente s aplicaes para Web 2.0, considerada uma nova gerao dos servios baseados na web e que trouxe novos paradigmas para estas aplicaes caracterizadas
9

principalmente pelos conceitos de interao, compartilhamento, comunicao e projeto centrado no usurio, ou seja, aproveitamento da inteligncia coletiva. Os webwares tm sido considerados uma tendncia para a substituio do software desktop pela aplicao web. 4.1.3. Comparaes entre o software convencional e o software web Baseado nos modelos de navegao, os softwares convencionais consolidaram o modelo de janelas em cascata, onde uma tela da aplicao leva a outra em uma direo linear, possuindo uma janela pai e as janelas filhas, e onde as aes realizadas se restringem apenas ao escopo da aplicao.

Fig. 2 Representao do modelo de janelas em cascata

J as WebApps, como visto anteriormente, possuem um modelo de navegao em rede, ou teia, como tambm chamado. Mesmo existindo a hierarquia entre determinadas pginas, diversos elementos contribuem para a formao de um fluxo de navegao no-linear, como os botes de voltar e avanar no navegador, o acesso direto atravs da URL ou links contidos em diversas pginas que apontam para o mesmo caminho. Nas WebApps possvel, inclusive, concluir um processo referenciando um aplicao externa, um outro website, saindo do escopo daquela aplicao.

10

Fig. 3 Fluxo de navegao em rede (teia)

Atravs das observaes feitas sobre diversas aplicaes e sistemas web e com base em algumas consideraes de Murugesan and Ginige (2004), foi possvel identificar as principais caractersticas 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 Modelo de navegao e interao por cascata meio de hipertexto Padro de interface (cores, iconografia, Interface possui caractersticas distintas posicionamento dos elementos) dependendo do foco do projeto (usurio precisa aprender a utilizar vrios semelhante, ou seja, mais consistente

softwares de modo diferente) Geralmente desenvolvido com base Envolve tcnicas e procedimentos com em apenas uma linguagem de uso de vrias linguagens para fins especficos (Ex.: PHP, HTML, programao

JavaScript, XML, CSS, etc.) Aplicaes homogneas, desenvolvidas Aplicaes heterogneas: mais difcil para rodar em ambiente especfico Tempo mquina de resposta rpido, definir perfil de hardware, plataforma, largura de banda pois Tempo de resposta relativamente mais depende de N fatores: com o pessoas acessando a aplicao no mesmo momento, conexo

geralmente o sistema atua na mesma demorado,

servidor, etc. Descentralizao de informaes, exceto Centralizao das informaes, sempre, quando o software de uso pois o usurio no precisa instalar a
11

compartilhado atravs de uma rede Linearidade acessar uma sem e consistncia tela da

aplicao e os dados esto sempre disponveis no servidor de Usurios podem acessar as pginas

navegao: o usurio no consegue atravs da URL. Em alguns casos esta aplicao operao valida e desejada e outras com um vezes no, podendo prejudicar a diretamente interagir

componente como, por exemplo, um segurana do sistema boto Geralmente, precisam estar disponveis Precisam estar disponveis em diferentes apenas para um tipo de dispositivo formatos e dispositivos e suportar hardware, software e redes com grande Contedo fixo e variedade de velocidade de acesso so No dependem do usurio somente para as a alimentao de informaes, mas de contedo tambm. Dependem, em maior parte, de contedo produzido pelos prprios usurios. Principalmente com o advento da web 2.0, estas aplicaes tiveram uma tendncia a aumentar o grau As informaes esto de interatividade e e contedo as colaborativo. disponveis Portabilidade

inseridas/alteradas

apenas

informaes inseridas no sistema

mobilidade:

apenas na mquina onde est instalada informaes podem ser acessadas a a aplicao partir de qualquer computador com acesso internet e, em alguns casos, em outros tipos de dispositivos tambm
Tabela 1 Comparaes do Software Tradicional com o Software Web

12

4.2. Engenharia Web 4.2.1. Definio Apesar de a engenharia de software estar em constante processo de evoluo, muitos de seus paradigmas deviam receber uma nova abordagem para atender os requisitos dos produtos e servios baseados na web. Desta premissa surge a Engenharia Web, uma disciplina que acrescenta novas competncias Engenharia de Software clssica, como o modelo de Orientao a Objetos e a Engenharia de Conhecimento. Por ser mais complexa, preciso levar em considerao outros fatores que vo alm dos processos de especificao, documentao, testes e codificao, pois, segundo Formaggio (18/04/2007), "Um processo de engenharia web deve ter tambm a preocupao com questes relacionadas SEO1, design, ergodesign, contedo, entre outras disciplinas, que devero produzir artefatos importantes para o processo de desenvolvimento", ou seja, o desenvolvimento para uma aplicao web deve conter uma equipe com uma multidisciplinariedade maior que a Engenharia de Software clssica. Alm disso, o processo deve envolver planejamento, arquitetura web e de sistemas, testes, controle de qualidade, avaliao de performance e atualizao contnua (manuteno evolutiva). A essncia da Engenharia Web, de acordo com Murugesan (2004) gerenciar com sucesso a diversidade e complexidade do desenvolvimento de aplicaes web e evitar potenciais falhas que podem ter srias implicaes. 4.2.2. Problemas atuais com as aplicaes web Com o crescente desenvolvimento das WebApps, elas tm se tornado mais complexas e necessitam de uma ateno especial a questes de escalabilidade, contedo, performance, segurana e etc. Entre os principais problemas enfrentados no desenvolvimento de websites, possvel citar a rpida evoluo tecnolgica, demanda constante de atualizao das informaes, falta de modelo de processos, grau de complexidade, falta de testes eficientes para mensurar a usabilidade, planejamento e mtodos inadequado, falta de documentao e dificuldades de implementao e manuteno, etc.
1

Search Engine Optimization: conjunto de tcnicas que tem por objetivo otimizar o contedo de um site para que ele seja melhor

indexado pelos mecanismos de busca.

13

Entre os problemas mencionados acima, os problemas constantes tm sido com relao ao planejamento, usabilidade, manuteno e escalabilidade. Abaixo so listadas as principais implicaes no desenvolvimento de WebApps:

Planejamento e metodologias de desenvolvimento: Com a rpida evoluo tecnolgica, h um surgimento massivo de novas tcnicas que tem por finalidade facilitar o desenvolvimento das WebApp e algumas destas prticas acabam se tornando padres. Em alguns casos, uma aplicao web no est planejada e organizada para que possa aplicar estes padres;

Escalabilidade: Uma aplicao web deve ser capaz de suportar um crescente nmero de usurios utilizando o sistema e ter a capacidade de incrementar seus recursos e funcionalidades. Esta ainda uma questo complexa no desenvolvimento web e envolve outras caractersticas, incluindo o modelo de processo adotado;

Metodologia de Processos: Apesar de uma conscincia maior dentro das empresas quanto a esta questo, muitas ainda adotam uma metodologia de processo seqencial, em cascata ou camadas (ver figura 4);

Qualificao da Equipe de Desenvolvimento: Muitos profissionais no esto devidamente capacitados para atuar em determinada etapa do desenvolvimento e h casos em que um desenvolvedor deve assumir diversos papis dentro do processo de desenvolvimento, sobrecarregando o profissional e prejudicando a qualidade do sistema;

Usabilidade de sistemas: devido ao modelo de navegao de hipertexto, projetar a facilidade de uso das aplicaes web tm se tornado uma tarefa mais intricada para os engenheiros de software. Isso porque preciso levar em considerao aspectos diretamente relacionados com os campos de design e IHC, entre outros, tais como ergonomia, design de interfaces, arquitetura de informao, diagramao, gestalt, etc. O conjunto das tcnicas destes aspectos tm grande relevncia comprovada na usabilidade de interfaces web, segundo diversos autores e pesquisadores da rea, tais como Nielsen(2002), Norman(2003) e Memria(2005);

Manutenibilidade: muitas aplicaes web dependem, em grande parte, do grande trfego de informaes providas pelos usurios. Neste contexto, falhas no sistema podem ocorrer e, segundo Moraes apud Pressman (2001),
14

a o sistema deve possuir facilidade de correo, adaptabilidade e extensibilidade, para que possa atender s necessidades da aplicao e dos prprios usurios;

Aplicao de novas tecnologias: muitas tecnologias relativamente novas tm sido incorporadas em larga escala nos projetos de aplicaes web. Estas tecnologias ainda podem apresentar implicaes que podem prejudicar a performance e confiabilidade do sistema se no forem bem aplicadas. Tomando como exemplo o AJAX: uma tcnica que tem auxiliado muito no desenvolvimento de WebApps e que trouxe estas aplicaes mais prximas do comportamento das aplicaes desktop, mas seu uso tem se intensificado sem que fossem analisados os contras que as tecnologia pode vir a trazer se no for bem aplicada e tratada de modo eficiente nas aplicaes.

Fig. 4 Sntese do modelo comum de desenvolvimento de aplicaes web

4.2.3. Conceitos complementares Engenharia de Software clssica


15

A escalabilidade de Aplicaes Web uma das principais caractersticas a ser considerada no desenvolvimento das WebApp, pois estas necessitam de uma atualizao e evoluo mais intensa do que as aplicaes convencionais, afinal, as mudanas nas prticas e nas tecnologias aplicadas so constantes. Por isso, a estrutura de cdigos e estrutura de diretrios (inclusive considerada uma melhor prtica de desenvolvimento por "modularizar" as aplicaes) devem permitir o crescimento da aplicao, sem alteraes nas regras de negcio. Outro fator altamente relevante o planejamento e a construo de interfaces, que tem influenciado, inclusive, as interfaces dos softwares convencionais. Segundo WILEY (2003): "Devido grande disponibilidade de Web browsers e a eficincia do HTML e de suas capacidades de processamento associadas, cada vez mais as interfaces com o usurio esto sendo construdas como interfaces com base na Web. [...] As interfaces com base na web esto substituindo as interfaces com base em formulrios, para uma grande variedade de sistemas ligados." Como visto anteriormente o design tem grande influncia no modo como as pessoas iro utilizar com sucesso uma aplicao web e est diretamente relacionado usabilidade. Isso porque os princpios do design de interface que incluem tambm as leis da gestalt2 contribuem para orientar os usurios dentro de aplicaes web e unificar consistentemente todas as partes da aplicao de modo que o acesso s informaes seja facilitado. O design um elemento importante no somente para compor produtos esteticamente agradveis, mas de fcil utilizao por parte dos utilizadores. A especificao de requisitos funcionais de aplicaes web no diferem muito do modo como feito para aplicaes desktop. J para os requisitos no funcionais, algumas propriedades requerem mtricas diferentes para mensurar a qualidade e eficincia do produto, como descrito na tabela abaixo: Requisito no funcional
2

Mtrica

O termo Gestalt, no seu sentido mais amplo, significa uma interao de partes em oposio soma do todo. comumente

traduzido para o ingls, espanhol e portugus como estrutura, figura, forma. A teoria da Gestalt, gerada atravs de pesquisa e experimentao, sugere uma resposta ao porqu de umas formas agradarem mais e outras no. Ela afirma tambm que o crebro s consegue perceber, decodificar e assimilar uma imagem ou conceito pela sua totalidade e no pelas partes separadas que formam este todo.

16

Velocidade

Tempo

de

resposta

usurio/servidor

(requisio), incluindo o carregamento de pginas e o processamento de transaes Tamanho efetuadas do lado do servidor Espao utilizado em disco e quantidade de RAM para rodar o servidor. Porm, o tamanho total sistema que as que os arquivos do no so influencia carregadas ocupa pginas

diretamente na performance, uma vez individualmente e somente o contedo necessrio processado. Alm disso, a aplicao no precisa ser carregada na memria da mquina do usurio, exceto no caso de Java Applets e Frameworks .NET, que podem rodar na Facilidade de Uso estao de trabalho do cliente. Tempo que os usurios utilizam para encontrar uma informao ou funcionalidade Portabilidade Tempo para realizar tarefas Como na maioria nos projetos de

aplicaes web no h preciso quanto aos sistemas-alvo, as WebApp devem manter a capacidade de tela e de serem sistemas executadas em diversos navegadores, resolues operacionais distintos
Tabela 2 Acrscimos nos requisitos funcionais das aplicaes web

Outra grande questo a ser considerada cada vez mais pelos projetistas de software o foco no usurio. Este quesito hoje fundamental para direcionar o
17

processo de desenvolvimento em todas as etapas. Isso porque, mais do que ferramentas de BI (Business Inteligence)3, as WebApps tm tido papel como ferramentas de gerenciamento e aproveitamento da inteligncia coletiva. Este um dos princpios da Web 2.0, um movimento que surtiu efeito inclusive dentro das organizaes, nas intranets, com a utilizao de ferramentas de comunicao multidirecional para compartilhar informaes (no caso, as wikis, bibliotecas coletivas, comunidades, fruns), at aplicaes que auxiliam no gerenciamento de tarefas e fluxo de trabalho (workflow), etc. Em suma, as pessoas tm sido importantes para o desenvolvimento de WebApps, desde o planejamento (projetar de acordo com as necessidades do usurios) at os testes (participao ativa para detectar problemas). Saber projetar de modo a transformar a aplicao web em uma aplicao eficiente para o maior aproveitamento da inteligncia coletiva uma tendncia 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, possvel propor melhores prticas na metodologia de desenvolvimento de aplicaes web a fim de torn-las mais flexveis, escalveis e usveis.

Equipe de desenvolvimento: Se na Engenharia de Software eram necessrios 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 Informao 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, possvel adotar um modelo onde os profissionais podero trabalhar paralelamente em cada etapa do desenvolvimento, devido a outro fator, a ser visto no item seguinte.

O termo Business Intelligence (BI), pode ser traduzido como Inteligncia de negcios, refere-se ao processo de coleta,

organizao, anlise, compartilhamento e monitorao de informaes que oferecem suporte a gesto de negcios.

18

Dessa forma, h a reduo de tempo no desenvolvimento e a produtividade aumenta. Baseado nos conceitos de Memria(2005) e aprimorando-os de acordo com padres 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 independncia aos profissionais e maior agilidade no desenvolvimento. Note que na etapa de Prototipao 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 iro gerar um retrabalho. Os testes de usabilidade devem ser aplicados durante todo o
19

processo e, segundo Memria apud Nielsen(2005), testes com 5 usurios so capazes de detectar at 85% das ocorrncias de erros. Outra forma de aplicar os testes sem a presena de usurios a Avaliao Heursticas, que consiste de um conjunto de normas de usabilidade onde os prprios analistas de usabilidade realizam um check list para verificar se estes erros ocorrem dentro da aplicao. Abaixo, as 10 heursticas de Nielsen:
1.

Visibilidade da situao atual do sistema: o sistema deve oferecer feedback aos usurios para que eles se mantenham informados sobre o status do sistema;

2.

Compatibilidade do sistema com o mundo real: o sistema precisa utilizar dilogos e simples e linguagem que sejam familiares aos usurios, evitando os termos tcnicos e a informao deve aparecer na ordem natural e lgica de realizao de tarefas segundo o modelo mental do usurio;

3.

Controle e liberdade do usurio: O sistema deve ter funes que faa com que o usurio possa sair de uma parte do sistema rapidamente e sem danificar a aplicao;

4.

Consistncia e Padres: As aes e situaes devem ser aplicveis e obter resultados similares em diferentes partes do sistema. Os usurios devem saber o que vai acontecer;

5.

Preveno de Erros: Os erros devem ser analisados e evitados; mensagem devem ser amigveis, informando sobre o erro e ajudando o usurio a solucion-lo;

6. Ajuda no reconhecimento de erros: Caso ocorram erros no sistema, as

7.

Reconhecer ao invs de relembrar: O usurio no deve se lembrar das coisas de uma ao para outra. Os elementos devem estar visveis e facilmente recuperveis quando necesrio;

8.

Flexibilidade e eficincia de uso: O sistema deve ajudar o usurio em suas aes mais freqentes, acelerando a interao. Prover atalhos uma boa escolha;

9.

Design minimalista e esttico: Evitar dilogos com informaes irrelevantes e desnecessrias. Informaes desnecessrias reduzem a visibilidade relativa da informao relevante. No design esttico deve prevalecer a satisfao, o design visual e a legibilidade;
20

10.

Oferecer documentao e informaes de ajuda: o sistema deve possuir documentos de fcil acesso que expliquem claramente as diretrizes de utilizao do sistema e informaes sobre os processos, focando nas tarefas do usurio.

Adoo de Padres de Desenvolvimento: os diversos padres de desenvolvimento utilizados atualmente, tanto no campo de design como de programao, permitem, segundo a W3C, para o desenvolvedor: a) sites bem construdos e estruturados; b) facilidade de manuteno; c) reduo de custos; d) reduo de dificuldade de criao; e) compatibilidade entre diversas plataformas. Para os usurios, significa aplicaes acessveis para usurios de diversos browsers ou pessoas com deficincias, fcil navegao e acesso aos recursos e ao contedo, dinamismo e leveza das aplicaes. A W3C trata especificamente de padres para HTML, XHTML, DOM e CSS, porm, a Orientao a Objetos e Design Patterns tambm esto presentes nas WebApps. A juno de todas estas tcnicas culmina em aplicaes portveis, de fcil utilizao e escalveis, uma vez que os padres tendem a prover melhores prticas para a organizao e estruturao de aplicaes. No caso do XHTML nova verso do HTML que incorpora caractersticas do XML semntica de cdigo um dos princpios para se construir aplicaes bem estruturadas;

Arquitetura e Organizao do Sistema: um quesito tambm relacionado ao item acima. Com a adoo de padres de desenvolvimento, a organizao dos componentes do sistema deve ser coerente. Dessa forma, classes, bibliotecas de funes, estilo, contedos, regras de negcio e scripts devem ser permanecer devidamente organizados em diretrios e arquivos distintos, modularizados, sendo linkados conforme a necessidade nas pginas necessrias, produzindo um cdigo mais limpo e com maior manutenibilidade.

21

5. CONCLUSO

A utilizao de servios e aplicaes web tem crescido exponencialmente no mundo e estes produtos possuem um papel importante nas diversas tarefas realizadas pelas pessoas, seja dentro das organizaes, na indstria, no comrcio, instituies 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 aplicaes. Atravs desta pesquisa foi possvel identificar os principais problemas que desencadeiam a baixa qualidade das WebApps, que vo desde a qualificao inadequada da equipe de desenvolvimento e metodologia adotada para os projetos de WebApp at o mal planejamento de interfaces, que gera diversas implicaes na usabilidade destes sistemas. Atravs 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 aplicaes web e, a partir disso, propor solues e metodologias que visam resolver os problemas de planejamento, cronograma, portabilidade, usabilidade, escalabilidade e manutenibilidade. Os resultados da anlise e as solues propostas no so completamente precisos e conclusivos, visto que as aplicaes web evoluem rapidamente. Alm disso, seria necessria uma pesquisa mais extensa para levantar outras questes no abordadas nesta pesquisa, porm, as solues aqui propostas so suficientes para dar continuidade a esta pesquisa.

22

6. REFERNCIAS BIBLIOGRFICAS

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. Disponvel em: <http://www.sembrasil.com.br/artigos/engenharia-de-software-xengenharia-web.html>. Acesso em: 15 set. 2007 FORMAGIO, Alexandre. Web 2.0 + Foco no Usurio. Disponvel em: <http://www.slideshare.net/alexandre.formagio/web-20-foco-no-usurio149531/download>. Acesso: 11 nov. 2007. MACEDO, M. S. Construindo sites adotando padres Web. Rio de Janeiro: Editora Cincia Moderna Ltda., 2004. 249 p. MEMRIA, F. Design para a Internet: projetando a experincia perfeita. Rio de Janeiro: Elsevier, 2005. 171 p. Modelagem Orientada as Objetos de Websites. Disponvel em: <https://www.dct.ufms.br/~karen/parte1.ppt>. Acesso em: 14 set. 2007 NIELSEN, J.; TAHIR, M. Homepage Usabilidade: 50 websites desconstrudos. EUA: New Riders Pub, 2002. 315 p. NORMAN, D. A. Emotional Design: Why We Love (or Hate) Everyday Things. New York: Basic Books, 2004. 256 p. PFLEEGER, S. L. Engenharia de Software: Teoria e Prtica. 2 Edio. So Paulo: Prentice Hall (Pearson), 2004. Processo de Desenvolvimento de Software. Disponvel em: <http://inf.upf.br/pos/pds/engenharia%20da%20web.ppt>. Acesso em: 15 set. 2007 SEGUINDO os Padres. Tableless. Disponvel em: <http://tableless.com.br/aprenda/seguindo-os-padroes/>. Acesso em: 11 nov. 2007. SOMMERVILLE, I. Engenharia de Software. 6 Edio. So Paulo: Pearson Addison Wesley. 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 Avaliao de Qualidade de Aplicaes Web. Cadernos do IME, v. 14, jun. 2003. Disponvel em:

23

<http://magnum.ime.uerj.br/cadernos/cadinf/vol14/6-vera.pdf>. Acesso em: 11 nov. 2007. Wikipdia. Business Intelligence. Disponvel em: <http://pt.wikipedia.org/wiki/ Business_intelligence>. Acesso em: 11 nov. 2007 Wikipdia. Engenharia de Software. Disponvel em: <http://pt.wikipedia.org/wiki/Engenharia_de_software>. Acesso em: 12 set. 2007 Wikipdia. Web. Disponvel em: <http://pt.wikipedia.org/wiki/Web>. Acesso em: 12 set. 2007 Wikipdia. Web 2.0. Disponvel em: <http://en.wikipedia.org/wiki/Web_2.0>. Acesso em: 13 set. 2007 Wikipdia. Web Engineering. Disponvel em: <http://en.wikipedia.org/wiki/Web_engineering>. Acesso em: 06 set. 2007 Wikipdia. WebApp. Disponvel em: <http://en.wikipedia.org/wiki/WebApp>. Acesso em: 12 set. 2007

24

ANEXO: ANLISE DE APLICAES WEB


Remember the Milk O Remember the Milk uma aplicao que permite ao usurio organizar sua lista de tarefas de modo fcil. Desde a tela de cadastro, j possvel perceber a usabilidade do website. A interface simples, intuitiva e os dados so validados no exato momento em que so digitados, campo a campo, evitando assim que os usurios tenham que voltar para corrigir os erros depois do formulrio ter sido submetido. Em algumas aplicaes, onde passam despercebidos os campos obrigatrios ou como eles devem ser preenchidos, o usurio precisa revisar seu formulrio e submet-lo uma srie de vezes.

Fig. 6 Tela de cadastro do Remember the Milk

Em termos de portabilidade e interoperabilidade, a aplicao possui integrao com outros dispositivos, tais como Skype, MSN, SMS, entre outros, e permite que as tarefas possam ser acessadas, inseridas e gerenciadas atravs do celular.

25

Fig. 7 Feedback aps a realizao do cadastro

A mensagem exibida aps o cadastramento possui fcil linguagem e contedo informativo, no deixando dvidas sobre como o usurio deve prosseguir e oferece uma opo de navegao (efetuar login).

Fig. 8 Tela de utilizao do Remember the Milk

A interface altamente usvel. A tcnica de AJAX usada intensamente nesta aplicao, mas de modo eficiente. A rapidez com que podem ser executadas as aes se assemelha muito com o software desktop. Alm disso, possui uma interface bem organizada, de modo que todos os item so bem visualizados e o
26

usurio consegue encontrar de modo fcil todas as opes, e permite que algumas aes sejam executadas pelo teclado.

Fig. 9 - Slideshare

O slideshare permite que uma pessoa compartilhe apresentaes em slides com outras pessoas e ainda pode montar sua rede social. A interface tambm simples, mas possui unicidade e organizao. A aplicao um forma diferenciada para que profissionais, alunos, professores ou qualquer pessoa compartilhe conhecimento.

Fig. 10 Wikipdia

A Wikipdia um dos diversos produtos da Wikimedia, uma empresa que produz diversos softwares baseados em web e que tm como principal caracterstica o
27

aproveitamento da inteligncia coletiva por meio da colaborao e compartilhamento. A Wikipdia uma enciclopdia 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 padres da Wikipdia, etc. possvel baixar este software para instal-lo em qualquer lugar. Este modelo de enciclopdia colaborativa tem sido amplamente utilizada por intranets e portais de universidades.

Fig. 11 GoogleDocs

O GoogleDocs uma aplicao experimental da empresa Google e um editor de textos assim como o Microsoft Word online. As principais funes de um editor de textos desktop esto presentes no GoogleDocs (formatao, alinhamento, listas, tabelas, imagens), mas outros recursos importantes so acrescentados: possvel compartilhar 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 usurio tem controle sobre as revises, pode ver o que foi modificado e quando foi, um controle de verses; exporta rapidamente em diversos formatos, inclusive PDF e apresentao; permite publicar o documento para que esteja acessvel em modo de leitura a qualquer pessoa; centraliza as informaes, pois as pessoas no 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