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

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

Embed Size (px)

Citation preview

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

Uma Visão de Web Engineering

Luciano Tadeu Esteves PansanatoCEFET-PR / ICMC-USP

Renata Pontin de Mattos FortesICMC-USP

Page 2: Uma Visão de Web Engineering Luciano Tadeu Esteves Pansanato CEFET-PR / ICMC-USP Renata Pontin de Mattos Fortes ICMC-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

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

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)

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

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

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

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?

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

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

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

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

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

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]

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

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/

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

Web Engineering 10

Modelo de processo

Pressman [2001]

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

Web Engineering 11

Modelo de processo

Lowe & Eklund [2002]

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

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

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

Web Engineering 13

Levantamento

Metodologias

Metodologias adotadas para desenvolvimento de aplicações multimídia

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

Web Engineering 14

Levantamento

Intençõesfuturas

Incluir dados multimídia nos sistemas de informação

Desenvolver aplicações multimídia

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

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]

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

Web Engineering 16

Fases cobertas pelos métodos

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

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]

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

Web Engineering 18

Técnicas

CapturaDefiniçãoValidação

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

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

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

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

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

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

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

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?

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

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)

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

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

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

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

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

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

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

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

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

Web Engineering 28

Bugzilla

Projeto open-source http://

www.bugzilla.org Defect Tracking

System Bug-Tracking System

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

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

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

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

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

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

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

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

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

Web Engineering 33

Bugzilla: inserção de usuários, produtos e componentesLogin e inserção de

usuários

Inserção de produtos e componentes

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

Web Engineering 34

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

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

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

Web Engineering 36

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

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

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

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

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

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?

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

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

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

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

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

Web Engineering 42