Transcript Document
Uma Visão de Web Engineering Luciano Tadeu Esteves Pansanato CEFET-PR / ICMC-USP Renata Pontin de Mattos Fortes ICMC-USP Roteiro Engenharia de Software Engenharia de Web Aplicações Web Modelo de Processo Métodos de Desenvolvimento NBR ISO/IEC 12207 Software Livre Processo de Software Livre Exemplo Resumo Web Engineering 2 Engenharia de Software Engenharia de Software é um enfoque sistemático para o desenvolvimento, operação, manutenção e descontinuação do software (IEEE) Engenharia de Software é a aplicação prática do conhecimento científico no projeto e construção de programas e da documentação requerida para desenvolver, operar e manter esses programas (Boehm) Engenharia de Software é uma disciplina que aplica os princípios de engenharia com o objetivo de produzir software de alta qualidade a baixo custo (Bauer) Web Engineering 3 Engenharia de Software Como alcançar esse objetivo? Objetivo: produzir sofware de alta qualidade a baixo custo Modelos de Processo de Software Um Modelo de Processo de Software consiste de uma série de atividades, métodos, técnicas e ferramentas que garantem que o software seja produzido com alta qualidade e baixo custo Web Engineering 4 Engenharia de Web A aplicação das práticas de engenharia no desenvolvimento de Aplicações Web Objetivo: produzir Aplicações Web de alta qualidade a baixo custo Os princípios, conceitos e métodos de engenharia podem ser aplicados ao desenvolvimento de Aplicações Web? Por que a Engenharia de Web é importante? Abordagem “ad hoc” para desenvolvimento de Aplicações Web Web Engineering 5 Aplicações Web Atributos da aplicação [Pressman 2001] Uso intensivo da rede Internet, intranet e extranet Diversos e diferentes grupos de usuários Evolução contínua ... e rápida (horas?) Estrutura e funcionalidade Informação Direcionadas a conteúdo Hipermídia Web Engineering 6 Aplicações Web Atributos do processo [Pressman 2001] Características que direcionam o desenvolvimento Estética Sucesso da aplicação Urgência Adaptação dos métodos Segurança Aplicação e infraestrutura Web Engineering 7 Aplicações Web Atributos de qualidade [Pressman 2001] Usabilidade Funcionalidade Confiabilidade Eficiência Manutenibilidade Base para avaliar a ISO/IEC 9126 Software product evaluation – Quality characteristics and guidelines for their use Portabilidade Qualidade de Aplicações Web [Rocha et al. 2001] qualidade de aplicações Web Web Engineering 8 Aplicações Web Tecnologias [Pressman 2001] Desenvolvimento baseado em componentes Construir menos e reusar mais Substituir um componente por outro Padrões W3C (sopa de letrinhas!) Web Semântica http://www.w3.org/ 2001/sw/ http://www.w3.org/ WAI/ Segurança Permitir apenas acesso autorizado Acessibilidade Internacionalização http://www.w3.org/ International/ Web Engineering 9 Modelo de processo Pressman [2001] Web Engineering 10 Modelo de processo Lowe & Eklund [2002] Web Engineering 11 Levantamento Práticas de desenvolvimento Web e Multimídia na Irlanda [Barry & Lang 2001] 1.000 empresas 98 respostas válidas 100 empresas (multimídia) 15 respostas válidas Resultados Não existe uma abordagem uniforme Modelos citados na literatura não são utilizados Conclusão Novas técnicas são necessárias Web Engineering 12 Levantamento Metodologias Metodologias adotadas para desenvolvimento de aplicações multimídia Web Engineering 13 Levantamento Intenções futuras Desenvolver aplicações multimídia Incluir dados multimídia nos sistemas de informação Web Engineering 14 Métodos HDM – Hypermedia Design Method RMM – Relationship Management Methodology EORM – Enhanced Object Relationship Methodology OOHDM – Object-Oriented Hypermedia Design Method SOHDM – Scenario-based Object-oriented Hypermedia Design Methodology WSDM – Web Site Design Method RNA – Relationship-Navigational Analysis MacWeb Approach HFPM – Hypermedia Flexible Process Modeling OO/Pattern Approach Lowe-Hall’s Engineering Approach [Koch 1999] Web Engineering 15 Fases cobertas pelos métodos Web Engineering 16 Métodos (RE) WSDM – Web Site Design Method SOHDM – Scenario-based Object-oriented Hypermedia Design Methodology RNA – Relationship-Navigational Analysis HFPM – Hypermedia Flexible Process Modeling OOHDM – Object-Oriented Hypermedia Design Method UWE – UML-based Web Engineering W2000 (UML+HDM) WebML – Web Modeling Language NDT – Navigational Development Techniques Design-driven Requirements Elicitation [Escalona & Koch 2004] Web Engineering 17 Técnicas Captura Definição Validação Web Engineering 18 NBR ISO/IEC 12207 A NBR ISO/IEC 12207 – Processos de Ciclo de Vida de Software é um framework para processos de ciclo de vida com terminologia bem definida Processos Fundamentais Processos de Apoio Processos Organizacionais Processo de Adaptação Web Engineering 19 NBR ISO/IEC 12207 Processos Fundamentais Processos de Apoio Aquisição Documentação Fornecimento Gerência de Configuração Operação Verificação Validação Revisão Conjunta Manutenção Auditoria Adaptação Desenvolvimento Garantia da Qualidade Resolução de Problemas Processos Organizacionais Gerência Infraestrutura Melhoria Treinamento Web Engineering 20 NBR ISO/IEC 12207 Processos Fundamentais Desenvolvimento Definição: Análise de Sistemas, Planejamento do Projeto, Análise de Requisitos Construção: Projeto, Codificação, Teste Operação Manutenção Entendimento, Modificação, Revalidação Processos de Apoio Documentação Gerenciamento de Configuração Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Resolução de Problemas Web Engineering 21 Software Livre Projetos de software livre Constante atenção da comunidade científica Alta qualidade obtida no desenvolvimento de projetos de software livre Exemplos de casos de sucesso Mozilla, Apache, kernel do Linux Aplicações Web? Web Engineering 22 Processo de de software livre Estudos Objetivo de compreender o processo de desenvolvimento de software livre Krishnamurthy [2002] Thomas [2003] Reis [2003] Resultados de um amplo levantamento [Reis 2003] 1.102 projetos estáveis 519 respostas válidas Definição de requisitos (42,8%) Documentação: requisitos (69,6%), projeto (30,1%) e para usuários (77,6%) Garantia de qualidade: testes (55,7% e 27,0%), revisão (15,0%) Ferramentas: SCM (73,2%), comunicação (66,9) Web Engineering 23 Reflexões Pessoais e Discussões Eng. de Requisitos Implementação Repositório de Versões Versão 1.2 download Usuários Versão 1.3 integração Desenvolvedores Desenvolvedores esporádicos freqüentes Testes beta Documentação Revisão de projeto lançamento Líderes (core) Revisão de código Auxílio a usuários, propostas de alteração, dúvidas, problemas, sugestões Ferramentas de comunicação, artigos científicos, notícias eWeb weblogs Engineering 24 NBR ISO/IEC 12207 Processos Fundamentais Desenvolvimento Definição: Análise de Sistemas, Planejamento do Projeto, Análise de Requisitos Construção: Projeto, Codificação, Teste Operação Manutenção Entendimento, Modificação, Revalidação Processos de Apoio Documentação Gerenciamento de Configuração Garantia da Qualidade Verificação Validação Revisão Conjunta Auditoria Resolução de Problemas Web Engineering 25 Gerenciamento de Configuração Atividades [Pressman 2001] Identificação de itens de configuração de software Controle de versões Controle de alterações Auditoria de configuração Relatório de status Conceitos Itens de configuração de software (SCIs) Baseline Web Engineering 26 Controle de Alterações Atividade de garantia da qualidade Objetivo: garantir qualidade e consistência à medida que as alterações são realizadas em um item de configuração de software Processo Pedido de alteração de um item de configuração de software Decisão de realizar ou rejeitar o pedido de alteração Alteração controlada do item de configuração de software Web Engineering 27 Bugzilla Projeto open-source http://www.bugzilla.org Defect Tracking System Bug-Tracking System Web Engineering 28 Bugzilla: preparação (1/3) Keyword: Planejamento A introdução de um novo sistema em um fluxo de trabalho existente exige planejamento inicial Para a aceitação e uso do novo sistema por todos A introdução deveria ter somente impacto positivo no trabalho diário Ciclo PDCA (Plan Do Check Act) Década de 50 W. Edwards Deming Modelos de Melhoria de Processo de Software Web Engineering 29 Bugzilla: preparação (2/3) Associar a estrutura da ferramenta com o fluxo de trabalho diário Estrutura: produtos, componentes, bugs Produto Produtos ou serviços reais Produtos especiais para representar grupos de trabalho internos Componente Subseção de um produto Usuário que recebe error reports Bugs associados Bug Versão do produto na qual ocorreu o bug Milestones: limite para um bug ser corrigido Web Engineering 30 Bugzilla: preparação (3/3) Keyword: simplicidade Adaptar as características da ferramenta às necessidades específicas do fluxo de trabalho diário Bug: prioridades (severities) e estados Prioridades Estados New Accepted In Progress/Open Resolved Not a Bug Tested/Completed High, Medium e Low Web Engineering 31 Bugzilla: instalação Perl (5.6.0 ou maior) MySQL (3.23.41 ou maior) Servidor Web, p.e. Apache Bugzilla (2.18) Módulos Perl Servidor/Agente de Transferência de Mail (Sendmail 8.7 ou maior, ou um compatível com essa versão) Configuração dos parâmetros Web Engineering 32 Bugzilla: inserção de usuários, produtos e componentes Login e inserção de usuários Inserção de produtos e componentes Web Engineering 33 Web Engineering 34 Bugzilla: inserção e consulta de bugs Inserção de bug Consulta à lista de bugs Consulta a um bug específico Consulta avançada Web Engineering 35 Web Engineering 36 Processo de Software Livre Atividades realizadas em Projetos de Software Livre podem ajudar no processo de desenvolvimento de Aplicações Web? Artigo OSSDW Atividades de Gerenciamento de Configuração Ferramentas de apoio às atividades Reis, C. S., Fortes, R. P. M. An Overview of the Software Engineering Process and Tools in the Mozilla Project, In Proceedings of Workshop on Open Source Software Development. Newcastle UK, February 2002, pp.162-182. http://www.dirc.org.uk/ events/ossdw/OSSDWProceedings-Final.pdf Web Engineering 37 Extreme Programming (XP) Métodos Ágeis podem ajudar no processo de desenvolvimento de Aplicações Web? Artigo JBCS Journal of the Brazilian Computer Society, Extreme Programming (XP) Goldman, A., Kon, F., Silva, P. J. S., Yoder, J. W. Being Extreme in the Classroom: Experiences Teaching XP, November, 2004 http://www.ime.usp.br/ ~kon/papers/jbcs04.pdf Web Engineering 38 Resumo Pense! Porque a Engenharia de Web é importante? Os princípios, conceitos e métodos de engenharia podem ser aplicados ao desenvolvimento de Aplicações Web? Como alcançar o objetivo de produzir Aplicações Web de alta qualidade a baixo custo? Web Engineering 39 Referências Pressman, R. S. (2001) Software engineering: a practitioner’s approach, 5th edition, McGraw-Hill Rocha, A. R. C., Maldonado, J. C., Weber, K. C. (2001) Qualidade de Software: Teoria e Prática, Prentice Hall Lowe, D. B., Eklund, J. (2002) Client Needs and the Design Process in Web Projects, Journal of Web Engineering, 1(1) Barry, C., Lang, M. A (2001) Survey of Multimedia and Web Development Techniques and Methodology Usage, IEEE Multimedia 8(2) p. 52-60 Koch, N. (1999) A Comparative Study of Methods for Hypermedia Development, LMU Technical Report 9905 Escalona, M. J., Koch, N. (2004) Requirements Engineering for Web Applications – A Comparative Study, Journal of Web Engineering, 2(3) p. 193-212 Krishnamurthy, S. (2002). Cave or Community? An Empirical Examination of 100 Mature Open Source Projects. First Monday, 7(6). Web Engineering 40 Referências Thomas, C. (2003) A Survey of Quality Practices in Open Source Software and the Linux Kernel. In Proceedings of 2003 Pacific Northwest Software Quality Conference. http://developer.osdl.org/craiger/pnsqc2003.pdf Reis, C. R. (2003) Caracterização de um Processo de Software para Projetos de Software Livre. São Carlos, abril de 2003. 195p. Dissertação (Mestrado). Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo. http://coweb.icmc.usp.br/coweb/mostra.php?ident=59.33.1 The Bugzilla Team (2005). The Bugzilla Guide - 2.18 Release. http://www.bugzilla.org/docs/2.18/pdf/Bugzilla-Guide.pdf Lohmeyer, J. (2004) Open-Source Bug Tracking with Bugzilla. Linux Journal. http://www.linuxjournal.com/article/7216 Web Engineering 41 Web Engineering 42