1 1 Cincia da Computao Universidade Presidente Antnio Carlos (UNIPAC) Barbacena MG Brasil daniturquette@yahoo.com.br Resumo. O desenvolvimento e avaliao de Software tradicional normalmente no so adequados ao desenvolvimento de aplicativos na WEB. Esses sistemas devem ser desenvolvidos com enfoque forte no usurio e ter um ciclo de vida rpido e uma grande preocupao com acessibilidade. Este artigo descreve a importncia da Engenharia de Software para obter sistemas bem projetados e implementados. Apresentando as vantagens que motivam a sua utilizao, suas caractersticas, as principais diferenas entre a Engenharia de Software Tradicional e a Engenharia de Software voltada para desenvolvimento de WEB e um estudo de caso do site das Lojas Americanas para exemplificar o uso da Engenharia de Software e os benefcios trazidos por ela em aplicaes WEB. 1. Introduo O surgimento de novas tecnologias e meios de multimdias fez com que um novo meio de comunicao ganhasse espao no mercado, a internet. Antes do seu advento, os meios de comunicao existentes (revistas, livros, TV, rdio) para repassar a informao, permitiam controlar mais facilmente o contedo do que era produzido. A internet se expandiu rapidamente e a WEB se tornou o principal veculo para prestao de servios computacionais, atingindo um nmero cada vez maior e diversificado de usurios. possvel realizar quase tudo atravs desse mundo virtual: compras, pesquisas, cursos distncia, programao de viagens, transaes bancrias alm de economia de correio e burocracia. Com isso as organizaes comerciais esto explorando as potencialidades da WWW para se apresentarem ao pblico e, ao mesmo tempo, vender seus produtos e servios com rapidez e ampliar o seu universo de consumidores, que esto se tornando cada vez mais exigentes, e escolhendo entre os sites visitados aqueles que melhor resolvam seus problemas. Para garantir a qualidade e a satisfao dos usurios, facilitar a manuteno e o desenvolvimento necessrio a utilizao da Engenharia de Software especial que atenda as caractersticas especficas da WEB; j que a Engenharia Tradicional no atende totalmente aos requisitos dessas aplicaes. A tendncia do mercado est voltada para o desenvolvimento para WEB, portanto os profissionais que no utilizarem as metodologias da Engenharia de Software para WEB, que ainda uma cincia em evoluo, no conseguiro produzir Software com qualidade e por esta razo estaro fora do mercado. Este artigo tem por objetivo apresentar a Engenharia de Software para o desenvolvimento de aplicativos WEB, demonstrando as suas caractersticas e as principais diferenas entre a mesma e a Engenharia de Software Tradicional, bem com exemplificar suas vantagens e benefcios atravs do estudo de caso do site das Lojas Americanas. O presente artigo est organizado em oito sees, dispostas conforme a seguinte estruturao: A primeira seo apresenta a introduo, onde h uma descrio geral do assunto abordado. A segunda seo realizada uma breve introduo sobre a Engenharia de Software Tradicional e Engenharia para WEB. Na terceira seo so apresentadas as caractersticas e principais diferenas entre as duas Engenharias de Software. A quarta seo aborda os conceitos de Engenharia de Software para WEB, assim como os aspectos que devem ser considerados para desenvolvimento de uma aplicao WEB e os requisitos de qualidade indispensveis para o sucesso destes aplicativos. Na quinta seo feito o estudo de caso do site das Lojas Americanas, por tratar-se de uma loja virtual que j recebeu vrios prmios e apresentar os critrios de alta qualidade necessrios a qualquer aplicao WEB.A sexta seo composta pelo Modelo de Processo para aplicaes WEB, apresentando as fases para sua criao e a importncia de seu desenvolvimento de maneira adequada. Na stima seo so feitas as consideraes finais e na oitava seo esto as referncias bibliogrficas e leituras complementares utilizadas para o desenvolvimento deste artigo. 2. Engenharia de Software Tradicional e Engenharia para WEB Tanto a Engenharia de Software tradicional quanto a Engenharia de Software para a WEB preocupam-se em facilitar o desenvolvimento e manuteno de produtos de Software complexos, aplicando para isso mtodos, tcnicas, ferramentas case, e modelos especficos. Todas essas metas e tcnicas utilizadas visam gerenciar a qualidade de produo, prazos e pessoas envolvidas no projeto. Mesmo que as duas engenharias tenham o mesmo objetivo e que a Engenharia de Software para o desenvolvimento de WEB utilize alguns princpios da Engenharia Tradicional, no possvel utilizar as mesmas tcnicas da Engenharia de Software Tradicional na Engenharia de Software para o desenvolvimento de aplicativos para WEB. O desenvolvimento e avaliao de Software tradicional normalmente no so totalmente adequados o desenvolvimento de aplicativos na WEB. Esses sistemas devem ser desenvolvidos com enfoque forte no usurio, ter um ciclo de vida rpido e uma grande preocupao com a acessibilidade. 3. Diferenas entre Engenharia de Software Tradicional e Engenharia de Software para Desenvolvimento WEB. 3.1 Ciclo de vida do produto desenvolvido Uma das principais diferenas entre as duas Engenharias o ciclo de vida do produto a ser desenvolvido. A evoluo do Software tradicional muitas vezes menor que a evoluo de um aplicativo para WEB, devido as tecnologias e informaes estarem em constante evoluo. O que influi realmente no ciclo de vida de uma aplicao para WEB seu desenvolvimento ser uma mistura de arte e programao, entre marketing e computao, entre relaes internas e externas alm da multidisciplinaridade envolvida: vrias pessoas com diferentes conhecimentos necessitam trabalhar juntas (designers, Webmasters, programadores, publicitrios etc) fazendo com que o seu desenvolvimento se torne um desafio. 3.2 Pblico alvo Uma aplicao convencional possui um pblico muitas vezes definido de usurios, que pode ser controlado, enquanto que no desenvolvimento para WEB alm de diversificado, o nmero de usurios pode ser muito maior, s vezes sendo impossvel saber exatamente o perfil de todos os usurios que iro interagir com o sistema a ser construdo. 3.3 Tecnologias Utilizadas As tecnologias utilizadas na produo de Software tradicional aplicando tcnicas de engenharia de Software so mais estveis, isto decorre do fato que o desenvolvimento deste tipo de Software ocorre a muito mais tempo, alm disso, existem excelentes ferramentas disponveis para anlise, projeto, implementao e testes. J no desenvolvimento de WEB as tecnologias esto em constante evoluo, embora existam diversas ferramentas ao nvel de implementao, existem poucas para anlise, projetos e outras atividades para o desenvolvimento. 4. Engenharia para WEB A Engenharia de Software deve ser utilizada para WEB para garantir o desenvolvimento de Aplicaes com alta qualidade e grande eficincia. Os aplicativos que adotam os princpios da Engenharia apresentam diversas vantagens como: facilidade de criao e comunicao entre as equipes multidisciplinares; garantia de acompanhamento das evolues tecnolgicas e cumprimento de prazos; documentao de todas as fases do projeto de modo a facilitar a manuteno; diminuio de custos de criao e manuteno; e principalmente proporcionam ao usurio uma navegao agradvel, intuitiva e organizada. Pela sua prpria natureza, os aplicativos WEB so implementados em uma rede de computadores; so caracterizados tambm por uma evoluo contnua, atualizaes freqentes e modificaes em tempo real. Existem diversas maneiras para apresentao da informao ao usurio dependendo da necessidade de conduz-lo a um caminho especfico ou deix-lo traar seus prprios caminhos. 4.1.Aspectos a serem considerados para o desenvolvimento de aplicaes WEB Segundo Pressman (2002, p.754) alguns cuidados devem ser tomados pelo desenvolvedor em uma aplicao: Imediatismo: os aplicativos para WEB so acessados por vrios usurios ao mesmo tempo. Com isso o trfego de informao aumenta e isso gera sobrecarga na aplicao. O desenvolvedor deve se preocupar em criar uma aplicao que gere resultados rpidos; Segurana: existe uma dificuldade de limitar ou controlar o nmero de usurios que iro acessar um aplicativo WEB, pois est disponvel via rede. Para proteger o seu contedo necessrio implementar medidas rgidas de segurana no aplicativo, na transmisso dos seus dados e na sua infra-estrutura. Uma medida de segurana seria definir permisses impedindo assim que pessoas no autorizadas acessem determinadas funes e dados da aplicao. Outra medida a utilizao da criptografia de dados no caso de operaes de compra, movimentao financeira, leiles, etc; Esttica: a esttica de uma aplicao to importante quanto o seu projeto. O usurio deseja que a informao seja apresentada da forma mais agradvel e confortvel possvel. Uma aplicao sem esttica tende a perder o acesso de seus usurios no caso de outras aplicaes semelhantes e que apresentarem uma esttica melhor. 4.2 Avaliao da qualidade de uma Aplicao WEB. Os usurios da Internet possuem pontos de vista diferentes sobre o que constitui uma boa aplicao. Muitos apreciam grficos atraentes, enquanto outros textos simples, boa navegao, muita informao, ou ainda informaes resumidas. Mas quando se fala em alta qualidade, as seguintes caractersticas definidas por Olsina (1999) e detalhadas por ROCHA (2001) so indispensveis por qualquer usurio: Usabilidade: entendimento geral do site, feedback e help on-line, facilidade de localizao das informaes, ausncia de erros na navegao, disponibilidade de atalhos. Funcionabilidade: recursos de busca e recuperao, caractersticas de navegao e navegador e caractersticas relacionadas ao domnio da aplicao. Confiabilidade: processar corretamente todos os links, recuperar erros, validar, recuperar dados de entrada do usurio, tolerncia falhas, segurana. Eficincia: ser eficiente no tempo de resposta, rapidez na gerao de pginas e de grficos. Manutenibilidade: ter facilidade na correo, adaptao e extensibilidade. 5. Estudo de Caso Lojas Americanas As lojas virtuais desempenham um papel estratgico para qualquer negcio na Internet. Atravs delas que o visitante ser apresentado aos produtos e, se interessado, ir se sentir motivado para realizar a compra. Neste momento a qualidade da loja virtual em transmitir informaes precisas, sua confiabilidade, segurana e facilidade de navegao so fatores decisivos. Para exemplificar o uso da Engenharia de Software, bem como suas caractersticas e importncia em aplicaes WEB, ser utilizada a loja virtual AMERICANAS.COM, por j ter recebido os seguintes prmios: IBest Categoria B2C (Business to Consumer): Melhor site de comrcio eletrnico do Brasil em 2005 / 2004 / 2003 / 2002 / 2001 pelo jri popular. iBest 2001 - Prmio Revelao: Site revelao de 2000 pelo jri oficial. Info Exame 2000 - Loja on-line: Melhor loja on-line do Brasil em 2000. Info Exame 2000 - Site do ano: Melhor site do Brasil em 2000. Prmio Summit de Varejo 2002: Case "Brazils Premmiere e-commerce company". Folha iBrands 2001: Loja de Departamento mais lembrada pelo internauta brasileiro. O site foi avaliado segundo os seguintes critrios de alta qualidade indispensveis a qualquer aplicao para WEB: 5.1 Usabilidade Trata-se de um site comercial, uma loja virtual com objetivo de apresentar seus produtos da maneira mais simples possvel, possibilitando a todos os tipos de usurios uma navegao fcil e rpida. Os produtos so divididos por categoria de modo que no haja dificuldade para encontr-los. Cada categoria ainda subdivida com a inteno de fornecer varias opes ao usurio de como localizar as informaes desejadas. Exemplo de uma compra: A Categoria CD subdividida em artista e gnero musical; na maioria das vezes apenas uma dessas duas opes de busca conhecida pelo usurio, no caso da busca por artista, os nomes so apresentados em ordem alfabtica, ao selecionar um artista traz a listas de todos os seus CDs por ordem de lanamento, permitindo assim ao usurio encontrar mais facilmente o CD procurado. O site dispe de atalhos em todas as pginas, atravs dos mecanismos de apoio a navegao: menus, saltos arbitrrios etc; apresenta tambm um servio de atendimento ao cliente, que possui perguntas separadas por assunto tanto sobre como utilizar o site quanto como realizar uma compra e localizar um produto alm de help on-line. 5.2 Funcionalidade Diversas funcionalidades so oferecidas pelo site, entre elas est a disponibilidade de recursos de busca, atravs do mecanismo de Pesquisa presente em todas as categorias do site. Possui tambm um sistema de identificao que agiliza o processo de compras, este sistema armazena apenas os dados cadastrais (nome, sexo, telefone, e-mail). Assim alm de facilitar as compras futuras cria de acordo com o perfil do usurio, ofertas especiais, um atendimento personalizado na prxima compra, onde o cliente ser recebido nominalmente com uma saudao especial, e estabelece um vnculo com este cliente enviando constantemente e-mail contento ofertas especiais e informaes sobre a loja. Outras funcionalidades so os servios Avise-me e Histrico de Pedidos, o primeiro utilizado para informar ao cliente quando um produto j est disponvel em estoque, j o segundo permite acompanhar o processamento do pedido desde aprovao do pagamento at a entrega transportadora. No caso de alteraes neste processamento, o sistema envia automaticamente e-mail de alerta ao cliente, os pedidos tambm so confirmados via e-mail. O site apresenta tambm espao para contato em caso de dvidas e sugestes. 5.3 Confiabilidade Foi observado no site o processamento correto de todos os links, e a presena de mecanismos de validao (dados cadastrais, CPF) e mecanismos de tratamento de erro (mensagem acusando que o CPF no vlido ou alerta sobre quantos caracteres deve possuir a senha). 5.4 Segurana O aplicativo possui foco na segurana e est entre os principais sites do Brasil que criaram o programa Internet Segura, ele oferece uma srie de garantias de privacidade e segurana dos dados pessoais. Os dados pessoais so criptografados e as informaes so codificadas antes de serem transmitidas. Em hiptese alguma o nmero do carto e outras informaes relativas ao pagamento so armazenadas aps processar a compra, ocorrre a destruio destes dados e a compra est sujeita a confirmao atravs de telefone e e-mail. A segurana do site certificada pela Verisign: a maior autoridade de segurana na Internet; o que garante que todo cliente pode fornecer tranqilamente seus dados no processo de compra. O site afirma tambm que no comercializa informaes pessoais de seus clientes, mas agrupam estas informaes segundo determinados critrios objetivando um melhor atendimento conforme o perfil do usurio. Todas as mudanas na poltica de privacidade so publicadas no site. 5.5 Eficincia Em diversas mquinas com diferentes configuraes de browsers, sistemas operacionais, o site carregou rapidamente sem causar espera ao usurio, o que tambm contribui para isso o fato da interface apresentar poucas faixas de propaganda e o mnimo de animao. Sempre que um usurio realiza um evento o aplicativo gera uma resposta, os desenvolvedores se preocuparam em tratar erros e enviar alertas de mensagens aos usurios para evitar que os mesmos ficassem perdidos na navegao e no soubessem se suas operaes foram realizadas ou no. 5.6 Manutenibilidade No estudo de caso disponvel no foi possvel avaliar esta caracterstica pois o acesso ao aplicativo nessas condies no permitido. 5.7 Projeto de Arquitetura Este aplicativo um exemplo da combinao das diferentes estruturas para apresentar o contedo ao usurio. A Estrutura Linear se mostra presente ao efetuar uma compra, o usurio obrigado a seguir o seguinte caminho: Sacola, Identificao, Pagamento e Confirmao Final. Este processo gera uma senha e um login para o usurio e proporciona mais segurana a transao, permitindo que s o usurio realmente cadastrado efetue a compra atravs de uma srie de validaes. A Estrutura em Grade utilizada nas subdivises existentes dentro de cada categoria, de modo a facilitar o entendimento do usurio e agilizar a navegao. Um exemplo seria a subdiviso da categoria CD em artista e gnero musical. J a Estrutura de Rede permite o acesso a todas as pginas a partir de qualquer uma delas, e empregada atravs do menu. 5.8 Interface e Esttica Conforme matria publicada no site Livra.com pesquisas demonstraram que o Site das Lojas Americanas apresenta uma interface agradvel, de fcil navegao, bem desenhada e interativa (atravs dos servios de cadastro de usurio, compras, histrico das compras, help on-line). As cores utilizadas para construo da interface no desapontam os usurios, no so cores fortes e berrantes e esto de acordo com o logotipo da empresa. Outras caractersticas positivas da interface so a presena de menus em todas as pginas, assim como outros mecanismos de navegao e a ausncia de links que no levam a lugar nenhum ou Em Construo que causam certo desapontamento ao usurio. 6. Modelo de Processo para Aplicaes WEB A utilizao dos princpios de Engenharia apresenta fundamental importncia para o desenvolvimento de um modelo eficiente de aplicao tanto para WEB quanto para aplicativos tradicionais. PRESSMAN (2002) prope um modelo que inicia pela formulao, e seguido pelo planejamento, anlise, projeto, testes, gerncia de projeto e configurao. Na formulao o desenvolvedor deve procurar identificar os objetivos da aplicao, os pontos chaves, alm de traar um perfil do usurio final. O planejamento deve ser o prximo passo, nele o desenvolvedor dever avaliar os riscos e custos associados ao desenvolvimento da aplicao. A etapa seguinte a anlise, se desenvolvida adequadamente pode-se garantir uma aplicao de sucesso. O contedo a ser oferecido pelo aplicativo ser definido nesta etapa, assim como cada detalhe das funes, das operaes, da configurao onde a aplicao reside e das maneiras como o usurio poder interagir com o sistema. A anlise na Engenharia de Software para WEB enfrenta barreiras para ser utilizada pelos desenvolvedores do mesmo modo que a anlise na Engenharia de Software Tradicional, pois o contedo est em constante evoluo, o que implica em dificuldade na resoluo imediata de problemas e dificuldade em manter toda documentao atualizada. Como os aplicativos para WEB possuem evoluo contnua, isso acaba forando que um engenheiro da WEB estabelea um projeto que resolva rapidamente o problema, e ao mesmo tempo defina uma arquitetura para a aplicao que tem a capacidade de evoluo ao longo do tempo. Existem quatro elementos tcnicos definidos por PRESSMAN (2002) que auxiliam o desenvolvedor da aplicao so eles: Modularidade eficiente, Regras de Ouro, Padres de Projeto e Modelos (Templates). Estes modelos que possuem eficincia garantida, quando utilizados s trazem benefcios por apresentarem solues para problemas comuns a diversos tipos de aplicaes. Seguindo as atividades propostas pelo modelo de processo, esto o projeto de arquitetura e projeto de navegao (1) e o projeto de interface (2). Em (1) definida a estrutura que ser utilizada para apresentar o contedo ao usurio e como a navegao ser realizada, ou seja, os caminhos e mecanismos de navegao para atingir os objetivos desejados pelo usurio. Segundo PRESSMAN h quatro estruturas: Estrutura Linear onde o usurio levado a seguir uma seqncia de caminhos pr-estabelecidos pelo desenvolvedor; a Estrutura de Grade que permite dividir o contedo em categorias, essa estrutura facilita muito o entendimento do site e fornece opes de navegao ao usurio; Estrutura Hierrquica a mais usada, apesar de tornar a navegao mais rpida pode confundir o usurio, pois possibilita atravs de links deslocar a qualquer parte do site e por ltimo a Estrutura de Rede que bem flexvel, neste tipo de estrutura o usurio tem acesso a todas as pginas, a partir de qualquer uma delas. Seria interessante para apresentar o contedo de uma maneira ideal, a combinao entre todas essas estruturas. Em (2) toda a preocupao voltada para a Interface, pois ela tem um papel fundamental: funciona como um carto de vista de qualquer aplicativo para WEB. A Interface deve ser muito bem projetada e planejada para atrair a ateno do usurio, impedindo assim que ele procure outro local capaz de satisfaz-lo melhor. A utilizao de mtodos de Engenharia de Software pode ser de grande utilidade para se obter uma boa interface: projetar bem os menus e barras de navegao de forma que fiquem disponveis em todas as pginas que o usurio navegar; no contar com as funcionalidades do browser; opes de navegao devem se bvias, informaes importantes devem ser colocadas no topo e permitir que o usurio saia do site caso ocorram erros no servidor (NIELSEM, 2000). MURUGESAN (2000) afirma que sites que apresentam usabilidade aumentam a probabilidade dos visitantes se tornarem clientes. A usabilidade realmente define a sobrevivncia de uma aplicao na WEB. A aplicao deve ser construda utilizando uma linguagem fcil que o usurio compreenda e consiga navegar por todo site encontrando o que deseja. Uma aparncia agradvel, sem cores berrantes, textos extensos e avisos indesejveis como Em construo tambm so fatores atrativos para aplicao. Para finalizar o modelo processo para aplicaes WEB, so realizados os testes, com a mesma inteno dos testes realizados na Engenharia Tradicional: encontrar erros. Portanto os testes feitos para WEB exigem um esforo maior, pois, os aplicativos podem ser acessados utilizando diferentes browsers, sistemas operacionais, plataformas de hardware, alm de estarem disponveis para um nmero no definido de usurios. importante observar que a gerncia de projeto e a gerncia de configurao devem ser aplicadas a todas as etapas anteriores, pois, possibilitam o controle tanto do contedo quanto do pessoal envolvido no desenvolvimento. 7. Concluso A evoluo rpida da WEB e o impacto que ela tem causado nos ltimos anos so bem significantes. A maneira desordenada com que muitos 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 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 artigo. Poucos so os desenvolvedores que utilizam as tcnicas de engenharia corretamente. 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, projeto, testes, validao e manuteno, que so reas importantes que ainda no recebem a ateno necessria, pois a maior parte dos desenvolvedores concentra-se apenas na fase de implementao. A contribuio deste artigo demonstrar que o uso de tcnicas de engenharia eficaz e eficiente, e quando aplicadas de maneira adequada produzem aplicaes com qualidade, e que certamente iro sobreviver no atual mercado, que se encontra cada vez mais seletivo e exigente. 8. Referncias Bibliogrficas Pressman, R. S., Engenharia de Software, 5. ed. So Paulo: Mc. Graw Hill, 2002. Nielsen, J., Designing WEB Usability, New Riders Publishing, 2000. Rocha, A.R., Maldonado, J.C. e Weber, K. C., Qualidade de Software: Teoria e Prtica; Prentice Hall, So Paulo, 2001. Olsina, L. O., (2002) Metodologa Cuantitativa para la Evaluacin y Comparacin de la Calidade Sitios WEB. La Pampa, Argentina. http://gidis.ing.unlpam.edu.ar/ingles/personas/olsinal/olsinal.html, Agosto. Murugesan, S., (2002) WEB Engineering For Sucessful WEB Application Development. University Of Western Sydney, Austrlia. http://aeims.uws.edu.au/talks/web-apweb2000.pdf, Setembro. 8.1 Leituras Complementares Especializao em Engenharia de Websites http://www.dct.ufms.br/~espec/, Agosto. Desenvolvimento Tradicional x Desenvolvimento para WEB http://www.javafree.org/news/view.jf?idNew=852, Setembro. Lojas Americanas www.lojasamericanas.com.br, Novembro Livra.Com http://br.livra.com/topic_all.asp?To=2171, Novembro.