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