Download - Uma Visão de Web Engineering
Uma Visão de Web Engineering
Luciano Tadeu Esteves PansanatoCEFET-PR / ICMC-USP
Renata Pontin de Mattos FortesICMC-USP
Web Engineering 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
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 5
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
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?
Web Engineering 6
Aplicações Web
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
Web Engineering 7
Aplicações Web
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
Web Engineering 8
Aplicações Web
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]
Web Engineering 9
Aplicações Web
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/
Web Engineering 10
Modelo de processo
Pressman [2001]
Web Engineering 11
Modelo de processo
Lowe & Eklund [2002]
Web Engineering 12
Levantamento
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
Web Engineering 13
Levantamento
Metodologias
Metodologias adotadas para desenvolvimento de aplicações multimídia
Web Engineering 14
Levantamento
Intençõesfuturas
Incluir dados multimídia nos sistemas de informação
Desenvolver aplicações multimídia
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
Técnicas
CapturaDefiniçãoValidação
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
Manutenção
Aquisição
Fornecimento
Documentação
Gerência de Configuração
Garantia da Qualidade
Verificação
Validação
Revisão Conjunta
Auditoria
Resolução de Problemas
Gerência
Melhoria
Infraestrutura
Treinamento
Processos Fundamentais Processos de Apoio
Processos Organizacionais
Operação
Ad
ap
tação
Desen
volv
imen
to
Web Engineering 21
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 22
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 23
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 24
Reflexões Pessoais e Discussões
Eng. deRequisitos
Repositório de Versões
Versão 1.2Versão 1.2 Versão 1.3Versão 1.3
download
Desenvolvedoresfreqüentes
Desenvolvedoresesporádicos
Líderes (core)
Usuários
Testes betaDocumen-
taçãoRevisão
de projetoRevisão
de código
integração lançamento
Auxílio a usuários, propostas de alteração, dúvidas, problemas, sugestões
Implemen-tação
Ferramentas de comunicação, artigos científicos, notícias e weblogs
Web Engineering 25
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 26
Gerenciamento de ConfiguraçãoAtividades [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 27
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 28
Bugzilla
Projeto open-source http://
www.bugzilla.org Defect Tracking
System Bug-Tracking System
Web Engineering 29
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 30
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 31
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 High, Medium e Low
Estados New Accepted In Progress/Open Resolved Not a Bug Tested/Completed
Web Engineering 32
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 33
Bugzilla: inserção de usuários, produtos e componentesLogin e inserção de
usuários
Inserção de produtos e componentes
Web Engineering 34
Web Engineering 35
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 36
Web Engineering 37
Processo de Software Livre
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
Web Engineering 38
Extreme Programming (XP)
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
Web Engineering 39
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 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