1 / 42

Uma Visão de Web Engineering

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

razi
Download Presentation

Uma Visão de Web Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uma Visão de Web Engineering Luciano Tadeu Esteves Pansanato CEFET-PR / ICMC-USP Renata Pontin de Mattos Fortes ICMC-USP

  2. 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

  3. 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

  4. 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 Engenharia de Software Web Engineering

  5. 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 Abordagem “ad hoc” para desenvolvimento de Aplicações Web 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? Engenharia de Web Web Engineering

  6. Atributos da aplicação [Pressman 2001] Uso intensivo da rede Internet, intranet e extranet Diversos e diferentes grupos de usuários Direcionadas a conteúdo Hipermídia Evolução contínua ... e rápida (horas?) Estrutura e funcionalidade Informação Aplicações Web Web Engineering

  7. Atributos do processo [Pressman 2001] Características que direcionam o desenvolvimento Urgência Adaptação dos métodos Segurança Aplicação e infraestrutura Estética Sucesso da aplicação Aplicações Web Web Engineering

  8. Atributos de qualidade [Pressman 2001] Usabilidade Funcionalidade Confiabilidade Eficiência Manutenibilidade Base para avaliar a qualidade de aplicações Web ISO/IEC 9126 Software product evaluation – Quality characteristics and guidelines for their use Portabilidade Qualidade de Aplicações Web [Rocha et al. 2001] Aplicações Web Web Engineering

  9. Tecnologias [Pressman 2001] Desenvolvimento baseado em componentes Construir menos e reusar mais Substituir um componente por outro Segurança Permitir apenas acesso autorizado Padrões W3C(sopa de letrinhas!) Web Semântica http://www.w3.org/2001/sw/ Acessibilidade http://www.w3.org/WAI/ Internacionalização http://www.w3.org/International/ Aplicações Web Web Engineering

  10. Pressman [2001] Modelo de processo Web Engineering

  11. Lowe & Eklund [2002] Modelo de processo Web Engineering

  12. Práticas de desenvolvimento Web e Multimídiana Irlanda[Barry & Lang 2001] 1.000 empresas98 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 Levantamento Web Engineering

  13. Metodologias Levantamento Metodologias adotadas para desenvolvimento de aplicações multimídia Web Engineering

  14. Intenções futuras Levantamento Desenvolver aplicações multimídia Incluir dados multimídia nos sistemas de informação Web Engineering

  15. 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

  16. Fases cobertas pelos métodos Web Engineering

  17. 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

  18. Captura Definição Validação Técnicas Web Engineering

  19. 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

  20. NBR ISO/IEC 12207 Processos Fundamentais Processos de Apoio Aquisição Documentação Fornecimento Gerência de Configuração Desenvolvimento Operação Garantia da Qualidade Adaptação Verificação Validação Manutenção RevisãoConjunta Auditoria Resolução de Problemas Processos Organizacionais Gerência Infraestrutura Melhoria Treinamento Web Engineering

  21. 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 NBR ISO/IEC 12207 Web Engineering

  22. 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? Software Livre Web Engineering

  23. 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áveis519 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) Processo de de software livre Web Engineering

  24. Reflexões Pessoais e Discussões Eng. de Requisitos Implemen- tação Repositório de Versões Versão 1.2 Versão 1.3 download integração lançamento Usuários Desenvolvedores esporádicos Líderes (core) Desenvolvedores freqüentes Testes beta Documen- tação Revisão de projeto 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 e weblogs Web Engineering

  25. 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 NBR ISO/IEC 12207 Web Engineering

  26. 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 Gerenciamento de Configuração Web Engineering

  27. 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 Controle de Alterações Web Engineering

  28. Projeto open-source http://www.bugzilla.org Defect Tracking System Bug-Tracking System Bugzilla Web Engineering

  29. 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 Bugzilla: preparação (1/3) Web Engineering

  30. 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 Bugzilla: preparação (2/3) Web Engineering

  31. Keyword: simplicidade Adaptar as características da ferramenta às necessidades específicas do fluxo de trabalho diário Bug: prioridades (severities) e estados Prioridades High, Medium e Low Estados New Accepted In Progress/Open Resolved Not a Bug Tested/Completed Bugzilla: preparação (3/3) Web Engineering

  32. 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 Bugzilla: instalação Web Engineering

  33. Login e inserção de usuários Inserção de produtos e componentes Bugzilla: inserção de usuários, produtos e componentes Web Engineering

  34. Web Engineering

  35. Inserção de bug Consulta à lista de bugs Consulta a um bug específico Consulta avançada Bugzilla: inserção e consulta de bugs Web Engineering

  36. Web Engineering

  37. Atividades realizadas em Projetos de Software Livre podem ajudar no processo de desenvolvimento de Aplicações Web? Atividades de Gerenciamento de Configuração Ferramentas de apoio às atividades Artigo OSSDW 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/OSSDW-Proceedings-Final.pdf Processo de Software Livre Web Engineering

  38. Métodos Ágeis podem ajudar no processo de desenvolvimento de Aplicações Web? Extreme Programming (XP) Artigo JBCS Goldman, A., Kon, F., Silva, P. J. S., Yoder, J. W. Being Extreme in the Classroom: Experiences Teaching XP, Journal of the Brazilian Computer Society, November, 2004 http://www.ime.usp.br/~kon/papers/jbcs04.pdf Extreme Programming (XP) Web Engineering

  39. 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? Resumo Web Engineering

  40. 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

  41. 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

  42. Web Engineering

More Related