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