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

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto de Sistemas III
Advertisements

1 Avaliação da Qualidade para Engenharia de Requisitos Orientada a Agentes Emanuel Batista dos Santos 11/05/2007.
Engenharia de Software Qualidade de Software Uma abordagem conceitual André Luis Zanon São Carlos SP – UFSCAR 2010 Engenharia de Software – UFSCAR.
Modelagem de Software Orientado a Objetos
ISO Processos do Ciclo de Vida do Software
Validação de Requisitos
Identificando requisitos
Tópicos Motivação para teste Por que algumas empresas não testam
Faculdade de Ciências Sociais de Aplicadas de Petrolina – FACAPE
Metodologia de Desenvolvimento de Software
RUP Rational Unified Process (Processo Unificado de Desenvolvimento da Rational) 1.
CK 119: Engenharia de Software DC/CC/UFC © Rossana Andrade, Setembro CK119: Engenharia de Software Rossana Andrade Ph.D, SITE, University of Ottawa,
Gerenciamento de Configuração
Arquitetura de Aplicações Web
Metodologia para Desenvolvimento de Sistemas Web
Componentes: A Abordagem Catalysis
Desenvolvimento Rápido de Aplicação(RAD)
Área: Engenharia de Software e Sistemas de Informação
Reutilização de Software
Luciano Marquardt Everaldo Artur Grahl
Carlos Alberto de Freitas Pereira Júnior
Composição e Geração de Aplicações usando Aspectos
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
FERRAMENTA PARA ANÁLISE DE IMPACTO BASEADO EM RASTREABILIDADE DE
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Metodologia Versão 2 FSRS.
Rebeca Teodoro da Silva[Voluntário] ;
Gerenciamento de Requisitos com Casos de Uso
Engenharia de Software
dbCheck! uma ferramenta para teste de banco de dados
Gerência de Configuração de Software
Márcio Aurélio Ribeiro Moreira
Engenharia de Software Respostas do Questionário 01
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Introdução aos conceitos de Teste de Software
Qualidade de Produto de Software
Métodos Ágeis Agile Modeling, ou AG
Prof.Alfredo Parteli Gomes
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Engenharia de Software
Prof. Alexandre Vasconcelos
Gerência de Configuração - GC
Aluno: Cristiano Levi Arnold Orientador: Alexandre Luís Franco 2009
Software engineering, the software process and their support M.M. Lehman Apresentadora: Tarciana Dias da Silva.
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
Melhoria do processo de software brasileiro
Aluna: Carolina Paloma Gasperoni
ISO Processos do Ciclo de Vida do Software
Engenharia de Software
Análise e Especificação de Requisitos © 2001 Jaelson CastroInformações Gerais 1 Análise e Especificação de Requisitos - IF119 Centro de Informática Jaelson.
SCRUM Processo de Desenvolvimento de Software
Hukarz Open Source Process D01 Alan Kelon, Silvio Meira Recife, 01/12/2006.
Engenharia de Software
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
Antonio Nascimento Roteiro Introdução Objetivos Áreas de Conhecimento Certificações Conclusões Referências.
Objetivos deste módulo
Engenharia de Software
Erton W. Vieira Metodologias Ágeis, Qualidade de Software e Design Centrado no usuário: Pontos de Interação Erton W. Vieira.
RESPOSTAS A INCIDENTES E PLANO DE CONTINUIDADE DE NEGÓCIOS
Uma Abordagem para o Estudo de Valor em Processos de Software: Aplicando VBSE ao EUP Gustavo Tibério
Comunicação Assíncrona em Equipes Distribuídas: Requisitos e Meios Utilizados Cleyton Carvalho da Trindade Universidade Federal de.
Estudo Comparativo Entre Metodologias Ágeis e Tradicionais Aluno: Márcia Seabra Cabral Professor: Augusto Sampaio Disciplina: Tópicos Avançados em Engenharia.
Lenylda Albuquerque ISO Processos de Ciclo de Vida de Software Universidade Federal de Pernambuco.
Introdução – ISO Conceitos relacionados a Norma NBR ISO/IEC 12207; Procedimentos de ciclo de vida e desenvolvimento de software; Objetivos e a estrutura.
O uso de XP em uma Organização CMM 2 Renata Endriss
/ de Abril de UFPE - Universidade Federal de Pernambuco Centro de Informática Pós-Graduação em Ciência da Computação Dissertação de Mestrado.
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
1 Workshop GrecO 2005 ipPROCESS: Validação e Extensão do Processo Baseada em Estudos de Caso.
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
Transcrição da apresentação:

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

Web Engineering2 Roteiro  Engenharia de Software  Engenharia de Web  Aplicações Web  Modelo de Processo  Métodos de Desenvolvimento  NBR ISO/IEC  Software Livre  Processo de Software Livre  Exemplo  Resumo

Web Engineering3 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 Engineering4 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 Engineering5 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 Engineering6 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 Engineering7 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 Engineering8 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 Engineering9 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  /sw/  Acessibilidade  WAI/  Internacionalização  International/

Web Engineering10 Modelo de processo  Pressman [2001]

Web Engineering11 Modelo de processo  Lowe & Eklund [2002]

Web Engineering12 Levantamento  Práticas de desenvolvimento Web e Multimídia na Irlanda [Barry & Lang 2001]  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 Engineering13 Levantamento Metodologias Metodologias adotadas para desenvolvimento de aplicações multimídia

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

Web Engineering15 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 Engineering16 Fases cobertas pelos métodos

Web Engineering17 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 Engineering18 Técnicas Captura Definição Validação

Web Engineering19 NBR ISO/IEC  A NBR ISO/IEC – 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 Engineering20 NBR ISO/IEC 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 FundamentaisProcessos de Apoio Processos Organizacionais Operação Adaptação Desenvolvimento

Web Engineering21 NBR ISO/IEC 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 Engineering22 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 Engineering23 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]  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 Engineering24 Reflexões Pessoais e Discussões Eng. de Requisitos Repositório de Versões Versão 1.2Versão 1.3 download Desenvolvedores freqüentes Desenvolvedores esporádicos Líderes (core) Usuários Testes beta Documen- tação Revisão de projeto Revisão de código integraçãolanç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 Engineering25 NBR ISO/IEC 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 Engineering26 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 Engineering27 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 Engineering28 Bugzilla Projeto open-source   Defect Tracking System  Bug-Tracking System

Web Engineering29 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 Engineering30 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 Engineering31 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 Engineering32 Bugzilla: instalação  Perl (5.6.0 ou maior)  MySQL ( 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 Engineering33 Bugzilla: inserção de usuários, produtos e componentes Login e inserção de usuários Inserção de produtos e componentes

Web Engineering34

Web Engineering35 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 Engineering36

Web Engineering37 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  events/ossdw/OSSDW- Proceedings-Final.pdf

Web Engineering38 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  ~kon/papers/jbcs04.pdf

Web Engineering39 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 Engineering40 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  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  Krishnamurthy, S. (2002). Cave or Community? An Empirical Examination of 100 Mature Open Source Projects. First Monday, 7(6).

Web Engineering41 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.  Reis, C. R. (2003) Caracterização de um Processo de Software para Projetos de Software Livre. São Carlos, abril de p. Dissertação (Mestrado). Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo.  The Bugzilla Team (2005). The Bugzilla Guide Release.  Lohmeyer, J. (2004) Open-Source Bug Tracking with Bugzilla. Linux Journal.

Web Engineering42