Engenharia de aplicações web Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt aplicações web As Aplicações Web (WebApp) cresceram em complexidade e importância, abrangendo as principais estratégias de negócio das organizações (e.g., e- commerce) É importante seguir uma abordagem disciplinada que permita desenvolver sistemas seguros, utilizáveis e flexíveis Engenharia de Software tradicional fornece muitos métodos e conceitos 2
Engenharia de aplicações web As WebApp têm características específicas, diferentes de outras aplicações (e.g., preocupação acrescida com o aspecto, a usabilidade, a segurança) Pode ser preciso utilizar diferentes abordagens da Engenharia de Software tradicional Engenharia de Aplicações Web é o processo para criar WebApp de elevada qualidade 3 Características das WebApp Concentram-se em redes - internet, intranet, extranet - comunicação e segurança são importantes Permitem o acesso concorrente de muitos utilizadores Número de utilizadores é imprevisível - agora podem ser 10, daqui a pouco podem ser 1000 Devem ter bom desempenho - o tempo de espera para consulta a um site deve ser mínimo Disponibilidade 24h por dia 4
Características das WebApp Guiadas por conteúdos e orientadas aos dados - apresentam conteúdos hipermédia e permitem acesso a bases de dados Sensíveis ao conteúdo - pretende-se qualidade no conteúdo Estão em permanente evolução - o conteúdo pode ser actualizado minuto a minuto Imediatismo - devem ser feitas em pouco tempo (horas, dias ou semanas) 5 Características das WebApp Segurança - devem proteger conteúdo reservado e transmitir dados de forma segura Estética - é um factor de atracção - pode ser tão importante quanto a parte técnica 6
categorias de Webapp Informacional Download Interacção Entrada de dados Orientada a transações Orientada a serviços Portal Acesso a base de dados Armazém de dados 7 planeamento de webapp Por mais pequeno que seja o projecto, é importante considerar: - o cronograma - os marcos - os riscos para evitar confusão, falhas e frustrações 8
equipa para webapp - É preciso ter em conta que os prazos são curtos, as modificações são constantes e a tecnologia utilizada está em constante evolução - adaptam-se os conceitos gerais da Engenharia de Software tradicional 9 membros da equipa Desenvolvedor de conteúdos Editor de conteúdos Engenheiro Web Especialista no domínio do negócio Especialista para o suporte da aplicação Administrador (webmaster) 10
Sucesso da equipa Estabelecer directrizes para a equipa passando por indicar o que se espera de cada membro Forte liderança que mantenha o entusiasmo Respeitar os talentos individuais Obter compromisso de cada membro com a equipa Manter o ritmo de trabalho, ultrapassando possíveis obstáculos 11 Boas práticas de engenharia de aplicações web Empregar tempo a perceber as necessidades do negócio e os objectivos do produto Descrever como é que os utilizadores vão interagir com a WebApp Desenvolver plano de projecto, mesmo que seja muito abreviado Empregar tempo com a modelação da WebApp Revisitar os modelos quanto à consistência e à qualidade 12
Boas práticas de engenharia de aplicações web Utilizar ferramentas e tecnologias que possibilitem construir o sistema com o maior número possível de componentes reutilizáveis Não confiar nos utilizadores para os primeiros testes da WebApp 13 Más práticas de engenharia de aplicações web [Tom Bragg 2000] Temos uma grande ideia! Vamos começar já a construir a WebAPP Não é necessário entender bem os requisitos, pois as coisas estão em permanente mudança Quem desenvolve software tradicional está apto, sem qualquer treino, para desenvolver WebApp. Software é software! Deve-se insistir em modelos de processo burocráticos com muitas reuniões de progresso e com líderes que nunca geriram um projecto de WebAPP Testar? Não! Deve dar-se essa tarefa aos utilizadores finais e esperar que digam 14 alguma coisa
sites diversos www.worldbestwebsites.com www.webpagesthatsuck.com/index.html www.killersites.com/core.html www.iarchitect.com/mshame.htm 15 Engenharia de requisitos Principais tarefas - formulação do problema - levantamento dos requisitos - modelo de análise dos requisitos 16
Engenharia de requisitos Formulação - qual é a principal motivação da WebApp? - quais são os objectivos a atingir? - quem vai utilizar a WebApp (categorias de utilizadores)? A complexidade da WebAPP é directamente proporcional ao número de categorias de utilizadores do sistema 17 Engenharia de requisitos Caracterização de uma categoria de utilizadores - qual é o objectivo global do utilizador quando utiliza a aplicação? - que conhecimentos tem em relação ao conteudo e funcionalidade da WebAPP? - como é que acede à WebApp? - que características genéricas da WebAPp gosta/não gosta? 18
Engenharia de requisitos Comunicação com os interessados/utilizadores finais - em reuniões de grupo de representantes dos utilizadores - em grupos de discussão electrónica - iterativamente através de site ou mail - questionar utilizadores de aplicações semelhantes - solicitar a determinados utilizadores a criação de casos de utilização informais que descrevam interacções específicas com a WebApp 19 Engenharia de requisitos A informação proveniente do levantamento dos requisitos deve ser agrupada por categorias de utilizadores e tipo de transacções para ser avaliada em relação à sua relevância Pretende-se listar os objectos de conteúdo, as operações aplicadas aos objectos dentro das transacções, as funções que a aplicação fornece aos utilizadores, bem como outros requisitos não funcionais observados na comunicação 20
Engenharia de requisitos Análise de requisitos tem as seguintes actividades - análise de conteúdo!identificação todo o conteúdo que vai ser disponibilizado através de texto, imagem, video, audio, gráficos - análise de interacção!descrição das formas como os utilizadores irão interagir com o sistema - análise funcional!descrição das operações e funções da WebApp - análise de configuração!descrição do ambiente e infra-estrutura onde a WebApp irá residir 21 Referências Pressman, R. J., Software engineering: a practitioner's approach, Mc Graw Hill, 6ª edição, 2005 22