RUP e Métodos Ágeis...<br />Márcia Rodrigues <br />marciarodrigues.imed.edu.br<br />marcia@imed.edu.br<br />
Mestrado com ênfase em gestão do conhecimento através dos Ambientes Virtuais de Aprendizagem. Especialista em Desenvolvime...
Ementa: Apresentar a evolução, a terminologia e o estado da arte da Engenharia de Software. Dar uma visão geral dos fatore...
Modalidade do curso<br />Aulas expositivas porém.....<br />Com muita interação: <br /><ul><li> questionar,
 agregar experiências,
 estabelecer discussões a qualquer momento!</li></li></ul><li>O QUE VOCÊ PERCEBE?<br />5<br />
6<br />E  agora ?<br />
Examine esta imagem: O que você pode achar? <br />Olhe de longe... Olhe de perto...<br />7<br />
Situação Atual das Organizações<br />
9<br /><ul><li> a comunicação entre o usuário e o desenvolvedor de software normalmente é muito fraca</li></li></ul><li>CA...
PROCESSO DE GESTÃO DA MUDANÇA<br />Comunicação em duas vias <br />Suporte<br />técnico<br />Celebração<br />Treinamento<br...
Relação com as demais disciplinas<br />Engenharia de software (Trad. e Web)<br />Requisitos de software<br />Gerenciamento...
13<br />Problemas Tradicionais<br /><ul><li>Deslizes no cronograma: o dia da entrega chega e é necessário dizer ao cliente...
Projeto cancelado: depois de vários deslizes, o projeto é cancelado sem ter chegado na fase de produção
O sistema “azeda”: depois de um tempo em produção o custo para modificar e a taxa de erros crescem tanto que é preciso sub...
Negócio mal compreendido: o software não resolve o problema original
Modificações nos negócios: negócios urgentes precisam ser desenvolvidos</li></li></ul><li>15<br />Problemas Tradicionais<b...
Rotatividade da equipe: após alguns anos (cerca de 2 anos), todos os bons programadores do projeto começam a “odiar” o sis...
Orçamentos estourados
Descontentamento dos clientes
Desenvolvedores trabalham longas horas
Uns culpam os outros
Descontentamento da equipe
Migração freqüente para outros ambientes de trabalho
Usuário/cliente não quer participar pois desconhece o trabalho de desenvolvimento de software</li></li></ul><li>Construção...
Uma experiência positiva de gestão<br />Pense um momento em que você viveu uma experiência de gestão tão sintonizada com o...
23<br />Engenharia da Web<br />   “A engenharia da web diz respeito ao estabelecimento e uso de princípios científicos sól...
24<br />PodemosutilizarnaEngenharia Web  osmétodos e técnicasdaEngenharia de Software tradicional?<br />Não, a Engenhariad...
25<br />Engenharia Tradicional X Engenharia da Web<br />PossuempropósitosDiferentes<br />Aplicaçõesconvencionaistipicament...
26<br />Engenharia Tradicional X Engenharia da Web<br />Tradição X experiência<br />Evolução Tecnológica <br />Para softwa...
27<br />Engenharia Tradicional X Engenharia da Web<br />Público alvo diferenciado (exigências e perfis diferentes)<br />Di...
Engenharia da Web – Atributos de WebApps<br /><ul><li>Concentração em redes
WebApps estão disponíveis em redes
Internet: permitindo comunicação aberta ao mundo todo
Intranet: implementando as comunicações dentro das organizações
Extranet: comunicação entre redes
necessita atender às necessidades de uma comunidade diversificada de clientes</li></ul>28<br />
29<br />Engenharia da Web – Atributos de WebApps<br /><ul><li>Impulsionadas pelo conteúdo
em muitos casos, a função primordial de um sistema baseado na Web é usar a hipermídia para apresentar conteúdo de texto, g...
ao contrário dos softwares tradicionais que evoluem ao longo de uma série de versões planejadas e cronologicamente espaçad...
31<br />Engenharia da Web - Características<br /><ul><li>Imediatismo
prazo de colocação no mercado é curto
Estética
para vender idéia ou produto a apresentação é aspecto que  influencia no sucesso da aplicação</li></li></ul><li>Engenharia...
disponível em redes
limitar a população de usuário que podem ter acesso a WebApp
proteger conteúdo reservado
fornecer modos seguros de transmissão de dados</li></ul>32<br />
33<br />Engenharia da Web Categorias de WebApps<br /><ul><li> Informacional - Conteúdo apenas para leitura  - navegação si...
Download -  Download de informações dos servidores apropriados.
 Personalizável -  Personaliza o conteúdo para suas necessidades específicas.
 Interação - Salas de bate-papo, fóruns ou mensagens instantâneas.
 Entrada de Usuário - Entradas baseadas em formulários.
 Orientado a transações - O usuário faz um pedido que é atendido pelo aplicativo.</li></li></ul><li>Orientado a serviços -...
35<br />Engenharia da Web<br /> “O desenvolvimento Web está na adolescência... Como a maioria dos adolescentes, quer ser a...
36<br />Engenharia da Web<br />WebApps entregues incrementalmente<br />Modificações ocorrem freqüentemente<br />Cronograma...
37<br />Engenharia da Web – Piores práticas<br />Temos uma grande idéia, vamos começar a construir a WebApp agora.<br />As...
38<br />Engenharia da Web – Piores práticas<br />Desenvolvedores cuja experiência dominante tenha sido em desenvolvimento ...
39<br />Engenharia da Web – Piores práticas<br />Seja burocrático<br />Testar?  Por que se incomodar?<br />Siga o mesmo pr...
40<br />Engenharia da Web<br /><ul><li>Aplicações baseadas na web desenvolvidas inadequadamente tem probabilidade muito al...
Há necessidade premente de abordagens disciplinadas para desenvolvimento
Novos métodos e ferramentas
Deve levar em conta características especiais do ambiente e a multiplicidade de perfis de usuários</li></li></ul><li>41<br...
Hoje WebApps evoluíram para ferramentas computacionais sofisticadas que além de apresentar conteúdo são integradas a banco...
publicação impressa e desenvolvimento de software
comercialização e computação
comunicações internas e relações externas
arte e tecnologia</li></li></ul><li>43<br />Engenharia da Web Atributos de WebApps<br /><ul><li>Concentradas em Redes
WebApps estão disponíveis em redes
Internet: permitindo comunicação aberta ao mundo todo
Intranet: implementando as comunicações dentro das organizações
necessita atender às necessidades de uma comunidade diversificada de clientes</li></li></ul><li>44<br />Engenharia da Web ...
em muitos casos, a função primordial de um sistema baseado na Web é usar a hipermídia para apresentar conteúdo de texto, g...
Um grande número de usuários pode ter acesso à WebApp ao mesmo tempo
Carga imprevisível
Vários usuários acessando ao mesmo tempo.  Cem usuários podem “aparecer” na segunda-feira; dez mil podem usar o sistema na...
Se um usuário da WebApp tem de esperar muito (acesso, processamento, exibição) ele vai para outro lugar
Disponibilidade
Os usuários querem acesso na base de “24/7/365”</li></li></ul><li>47<br />Engenharia da Web Atributos de WebApps<br /><ul>...
ao contrário dos softwares tradicionais que evoluem ao longo de uma série de versões planejadas e cronologicamente espaçad...
Camadas da Engenharia de Software<br /><ul><li>Desenvolver software de qualquer natureza exige organização,  dedicação, es...
É necessário coordenar o que e quando fazer
Programação é somente parte do trabalho</li></ul>49<br />
50<br />Camadas da Engenharia da Web<br /><ul><li>Processo
Abordagem de desenvolvimento simples que incorpora ciclos rápidos de desenvolvimento
Modificação da prioridade do o quê? Para quando?
o problema deve ser analisado, o projeto deve ser desenvolvido, implementação deve ser procedida de modo incremental e uma...
52<br />Camadas da Engenharia da Web<br /><ul><li>Processo - atividades
Acolher modificações
Encorajar a criatividade e independência da equipe de desenvolvimento
Forte interação com os interessados nas WebApps
Pequenas equipes
Enfatizar o desenvolvimento evolutivo ou incremental usando ciclos de desenvolvimento curtos</li></li></ul><li>53<br />Cam...
Métodos de comunicação: facilitar a comunicação entre equipe e interessados; usados em cada incremento.
Métodos de análise de requisitos: fornecer base para o entendimento do conteúdo a ser entregue.</li></li></ul><li>54<br />...
Métodos de projeto: projetar conteúdo, arquitetura, interface e estrutura de navegação
Métodos de teste: incorporar revisões técnicas formais do conteúdo e projeto, teste de navegação, teste de segurança, test...
Linguagens de modelagem (HTML, XML)
Linguagens de programação (Java, php)
Componentes (.NET, COM, CORBA)
Navegadores
Ferramentas multimídia
Ferramentas de autoria de sites
Ferramentas de conectividade com BD
Ferramentas de segurança
Gestão e análise de sites</li></li></ul><li>56<br />Camadas da Engenharia da Web<br /><ul><li>Ferramentas e Tecnologia
Web Developer´s Virtual Encyclopedia (www.wdlv.com)
WebDeveloper (www.webdeveloper.com)
DeveloperShed (www.devshed.com)
Webnowhow.net (www.webnowhow.com)
WebReference (www.webreference.com)</li></li></ul><li>Modelo de processo da WebE<br />57<br />(Pressman, 2002)<br />
Modelo de processo da WebE<br />58<br /><ul><li>Iterativo e incremental
Próximos SlideShares
Carregando em…5
×

Rup e metodos ágies

5.620 visualizações

Publicada em

Publicada em: Tecnologia, Negócios
0 comentários
9 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.620
No SlideShare
0
A partir de incorporações
0
Número de incorporações
103
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
9
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Rup e metodos ágies

  1. 1. RUP e Métodos Ágeis...<br />Márcia Rodrigues <br />marciarodrigues.imed.edu.br<br />marcia@imed.edu.br<br />
  2. 2. Mestrado com ênfase em gestão do conhecimento através dos Ambientes Virtuais de Aprendizagem. Especialista em Desenvolvimento de Software com foco em métodos ágeis e riscos de projetos de desenvolvimento de softwares.<br />Professora, consultora e coordenadora da Universidade Corporativa da IMED.<br /><ul><li>Autora do Livro Modelo ESTRELA.</li></ul>Atualmente ministra aulas de engenharia, gestão de projetos e Análise UML na IMED , Unisinos e na Universidade Corporativa da Petrobrás (RJ e BH)<br />Informações sobre a Professora<br />
  3. 3. Ementa: Apresentar a evolução, a terminologia e o estado da arte da Engenharia de Software. Dar uma visão geral dos fatores críticos que afetam a Engenharia de Software. Apresentar o RationalUnifiedProcess e o eXtremeProgramming. Tendências em Engenharia de Software.<br />Objetivos da Disciplina<br />
  4. 4. Modalidade do curso<br />Aulas expositivas porém.....<br />Com muita interação: <br /><ul><li> questionar,
  5. 5. agregar experiências,
  6. 6. estabelecer discussões a qualquer momento!</li></li></ul><li>O QUE VOCÊ PERCEBE?<br />5<br />
  7. 7. 6<br />E agora ?<br />
  8. 8. Examine esta imagem: O que você pode achar? <br />Olhe de longe... Olhe de perto...<br />7<br />
  9. 9. Situação Atual das Organizações<br />
  10. 10. 9<br /><ul><li> a comunicação entre o usuário e o desenvolvedor de software normalmente é muito fraca</li></li></ul><li>CARACTERÍSTICAS DE UMA EQUIPE EFICAZ<br />Objetivo bem definido<br />Atenção no ouvir<br />Participação<br />Divergência<br />Civilizada<br />Decisões de<br />Consenso<br />Informalidade<br />Comunicação<br /> Aberta<br />Liderança <br />Compartilhada<br />Atribuições<br />bem definidas<br />Relações<br />Externas<br /> Auto-avaliação<br />
  11. 11. PROCESSO DE GESTÃO DA MUDANÇA<br />Comunicação em duas vias <br />Suporte<br />técnico<br />Celebração<br />Treinamento<br />envolvimento<br />Comunicação em<br />duas vias<br /> Informação<br />“Eu faço”<br />“Eu posso”<br />“Eu acredito”<br />“Eu entendo”<br />SAP<br />“EU sei”<br />
  12. 12. Relação com as demais disciplinas<br />Engenharia de software (Trad. e Web)<br />Requisitos de software<br />Gerenciamento de projetos<br />Projetos de Desenvolvimento<br />Riscos de Projetos<br />
  13. 13. 13<br />Problemas Tradicionais<br /><ul><li>Deslizes no cronograma: o dia da entrega chega e é necessário dizer ao cliente que precisará de mais 6 meses
  14. 14. Projeto cancelado: depois de vários deslizes, o projeto é cancelado sem ter chegado na fase de produção
  15. 15. O sistema “azeda”: depois de um tempo em produção o custo para modificar e a taxa de erros crescem tanto que é preciso substituir</li></li></ul><li>14<br />Problemas Tradicionais<br /><ul><li>Taxa de erros: o software é colocado em uso mas a taxa de erros é tão alta que ele não é usado
  16. 16. Negócio mal compreendido: o software não resolve o problema original
  17. 17. Modificações nos negócios: negócios urgentes precisam ser desenvolvidos</li></li></ul><li>15<br />Problemas Tradicionais<br /><ul><li>Falsa riqueza de funções: o software tem várias funções potencialmente interessantes, mas que não essenciais
  18. 18. Rotatividade da equipe: após alguns anos (cerca de 2 anos), todos os bons programadores do projeto começam a “odiar” o sistema e vão embora</li></li></ul><li>16<br />Problemas Tradicionais - Consequências<br /><ul><li>Atrasos
  19. 19. Orçamentos estourados
  20. 20. Descontentamento dos clientes
  21. 21. Desenvolvedores trabalham longas horas
  22. 22. Uns culpam os outros
  23. 23. Descontentamento da equipe
  24. 24. Migração freqüente para outros ambientes de trabalho
  25. 25. Usuário/cliente não quer participar pois desconhece o trabalho de desenvolvimento de software</li></li></ul><li>Construção da equipe do projeto<br />?<br />?<br />Mapeamento <br />das <br />Competências<br />PRÁTICAS<br />DE GESTÃO<br />?<br />?<br />?<br />
  26. 26.
  27. 27.
  28. 28.
  29. 29. Uma experiência positiva de gestão<br />Pense um momento em que você viveu uma experiência de gestão tão sintonizada com os desafios do seu papel na Empresa... num patamar tão sincronizado com a estratégia e com as pessoas ... que você ficou especialmente orgulhoso(a) e com um sentimento de “missão cumprida” !<br />•Como foi essa experiência?<br />•Escreva resumidamente...<br />Compartilhe a experiência.<br />NARRADOR DA HISTÓRIA e OUVINTE<br />•Qual foi a “entrega”... ? E que ELEMENTOS foram importantes ou impactaram as partes<br />interessadas/envolvidas... (CONHECIMENTOS, HABILIDADES TECNICAS, HABILIDADES INTERPESSOAIS, ATITUDES (VALORES, CRENCAS, VISAO DE MUNDO) , ASPECTOS DO CONTEXTO... ?<br />
  30. 30.
  31. 31. 23<br />Engenharia da Web<br /> “A engenharia da web diz respeito ao estabelecimento e uso de princípios científicos sólidos, de engenharia e de gestão, e abordagens disciplinadas e sistemáticas para o bem-sucedido desenvolvimento, disposição e manutenção de sistemas e aplicações de alta qualidade baseados na web”<br />Murugesan (apud Pressman)<br />
  32. 32. 24<br />PodemosutilizarnaEngenharia Web osmétodos e técnicasdaEngenharia de Software tradicional?<br />Não, a Engenhariada Web não é um clone daEngenharia de Software tradicional, emboraenvolvaprogramação e processos de desenvolvimentos.<br />
  33. 33. 25<br />Engenharia Tradicional X Engenharia da Web<br />PossuempropósitosDiferentes<br />Aplicaçõesconvencionaistipicamenteoferecemserviços e soluções<br />Web oferecemconteúdosquesãoinformações, serviços…<br />Um novo meio de comunicação<br />Apresentação x Funcionalidade<br />Aplicações: ênfasenafuncionalidade e aplicabilidade<br />Web: possuiênfasenaapresentação, aparência, navegação e outrasqualidadesestéticas<br />
  34. 34. 26<br />Engenharia Tradicional X Engenharia da Web<br />Tradição X experiência<br />Evolução Tecnológica <br />Para softwares convencionais estão um pouco mais estáveis<br />APIs para interfaces gráficas<br />Banco de dados mais relacionais com sql<br />Browser, Servidores, HTML, XML, ASP, PHP, ....<br />
  35. 35. 27<br />Engenharia Tradicional X Engenharia da Web<br />Público alvo diferenciado (exigências e perfis diferentes)<br />Diferentes controles navegacionais<br />Multidisciplaridade (EW)<br />Engenharia de software, Hipermídia e Multimídia, Interaçãousuário-computador, indexação e recuperação de informação, banco de dados, artes, comunicação visual, linguísticacomputacional, gerência de projeto, projeto e apresentaçãográfica, computaçãográfica ….<br />
  36. 36. Engenharia da Web – Atributos de WebApps<br /><ul><li>Concentração em redes
  37. 37. WebApps estão disponíveis em redes
  38. 38. Internet: permitindo comunicação aberta ao mundo todo
  39. 39. Intranet: implementando as comunicações dentro das organizações
  40. 40. Extranet: comunicação entre redes
  41. 41. necessita atender às necessidades de uma comunidade diversificada de clientes</li></ul>28<br />
  42. 42. 29<br />Engenharia da Web – Atributos de WebApps<br /><ul><li>Impulsionadas pelo conteúdo
  43. 43. em muitos casos, a função primordial de um sistema baseado na Web é usar a hipermídia para apresentar conteúdo de texto, gráficos, áudio e vídeo ao usuário final</li></li></ul><li>Engenharia da Web – Atributos de WebApps<br /><ul><li>Evolução contínua
  44. 44. ao contrário dos softwares tradicionais que evoluem ao longo de uma série de versões planejadas e cronologicamente espaçadas, aplicações baseadas na Web evoluem continuamente </li></ul>30<br />
  45. 45. 31<br />Engenharia da Web - Características<br /><ul><li>Imediatismo
  46. 46. prazo de colocação no mercado é curto
  47. 47. Estética
  48. 48. para vender idéia ou produto a apresentação é aspecto que influencia no sucesso da aplicação</li></li></ul><li>Engenharia da Web - Segurança<br /><ul><li>Segurança
  49. 49. disponível em redes
  50. 50. limitar a população de usuário que podem ter acesso a WebApp
  51. 51. proteger conteúdo reservado
  52. 52. fornecer modos seguros de transmissão de dados</li></ul>32<br />
  53. 53. 33<br />Engenharia da Web Categorias de WebApps<br /><ul><li> Informacional - Conteúdo apenas para leitura - navegação simples e links.
  54. 54. Download - Download de informações dos servidores apropriados.
  55. 55. Personalizável - Personaliza o conteúdo para suas necessidades específicas.
  56. 56. Interação - Salas de bate-papo, fóruns ou mensagens instantâneas.
  57. 57. Entrada de Usuário - Entradas baseadas em formulários.
  58. 58. Orientado a transações - O usuário faz um pedido que é atendido pelo aplicativo.</li></li></ul><li>Orientado a serviços - O aplicativo fornece um serviço para o usuário.<br /> Portal. O aplicativo direciona o usuário para outros conteúdos ou serviços fora do domínio do portal do aplicativo. <br /> Acesso a Banco de Dados. O usuário faz uma consulta em um banco de dados e extrai informações.<br /> Data warehousing. O usuário consulta uma coleção de grandes bancos de dados e extrai informações.<br />34<br />Engenharia da Web Categorias de WebApps<br />
  59. 59. 35<br />Engenharia da Web<br /> “O desenvolvimento Web está na adolescência... Como a maioria dos adolescentes, quer ser aceito como adulto quando tenta se afastar de seus pais. Se estiver caminhando para atingir todo o seu potencial, precisa aprender algumas lições do mundo mais maduro de desenvolvimento de software.”<br />Doug Wallace<br />
  60. 60. 36<br />Engenharia da Web<br />WebApps entregues incrementalmente<br />Modificações ocorrem freqüentemente<br />Cronogramas são curtos<br />
  61. 61. 37<br />Engenharia da Web – Piores práticas<br />Temos uma grande idéia, vamos começar a construir a WebApp agora.<br />As coisas vão mudar constantemente, assim não tem sentido tentar entender os requisitos da WebApp.<br />
  62. 62. 38<br />Engenharia da Web – Piores práticas<br />Desenvolvedores cuja experiência dominante tenha sido em desenvolvimento de software tradicional podem desenvolver WebApp imediatamente<br />Nenhum treinamento novo é necessário<br />Afinal de contas software é software, não é?<br />
  63. 63. 39<br />Engenharia da Web – Piores práticas<br />Seja burocrático<br />Testar? Por que se incomodar?<br />Siga o mesmo processo para qualquer WebApp<br />
  64. 64. 40<br />Engenharia da Web<br /><ul><li>Aplicações baseadas na web desenvolvidas inadequadamente tem probabilidade muito alta de falha
  65. 65. Há necessidade premente de abordagens disciplinadas para desenvolvimento
  66. 66. Novos métodos e ferramentas
  67. 67. Deve levar em conta características especiais do ambiente e a multiplicidade de perfis de usuários</li></li></ul><li>41<br />Engenharia da Web<br /><ul><li>Nos primeiros dias da www (1990 – 1995) os sites eram formados de pouco mais do que um conjunto de arquivos de hipertexto ligados que apresentavam informação usando texto e um pouco de gráficos
  68. 68. Hoje WebApps evoluíram para ferramentas computacionais sofisticadas que além de apresentar conteúdo são integradas a bancos de dados </li></li></ul><li>42<br />Engenharia da Web<br /><ul><li>Aplicações Web (WebApps), envolvem um mistura de:
  69. 69. publicação impressa e desenvolvimento de software
  70. 70. comercialização e computação
  71. 71. comunicações internas e relações externas
  72. 72. arte e tecnologia</li></li></ul><li>43<br />Engenharia da Web Atributos de WebApps<br /><ul><li>Concentradas em Redes
  73. 73. WebApps estão disponíveis em redes
  74. 74. Internet: permitindo comunicação aberta ao mundo todo
  75. 75. Intranet: implementando as comunicações dentro das organizações
  76. 76. necessita atender às necessidades de uma comunidade diversificada de clientes</li></li></ul><li>44<br />Engenharia da Web Atributos de WebApps<br /><ul><li>Voltada a dados
  77. 77. em muitos casos, a função primordial de um sistema baseado na Web é usar a hipermídia para apresentar conteúdo de texto, gráficos, áudio e vídeo ao usuário final.</li></li></ul><li>45<br />Engenharia da WebAtributos de WebApps<br /><ul><li>Concorrência
  78. 78. Um grande número de usuários pode ter acesso à WebApp ao mesmo tempo
  79. 79. Carga imprevisível
  80. 80. Vários usuários acessando ao mesmo tempo. Cem usuários podem “aparecer” na segunda-feira; dez mil podem usar o sistema na terça-feira</li></li></ul><li>46<br />Engenharia da Web Atributos de WebApps<br /><ul><li>Desempenho
  81. 81. Se um usuário da WebApp tem de esperar muito (acesso, processamento, exibição) ele vai para outro lugar
  82. 82. Disponibilidade
  83. 83. Os usuários querem acesso na base de “24/7/365”</li></li></ul><li>47<br />Engenharia da Web Atributos de WebApps<br /><ul><li>Evolução contínua
  84. 84. ao contrário dos softwares tradicionais que evoluem ao longo de uma série de versões planejadas e cronologicamente espaçadas, aplicações baseadas na Web evoluem continuamente </li></li></ul><li>Camadas da Engenharia de Software<br /><ul><li>Camadas da Engenharia de Software (Pressman)</li></ul>Ferramentas<br />Métodos<br />Processos<br />Foco na qualidade<br />48<br />
  85. 85. Camadas da Engenharia de Software<br /><ul><li>Desenvolver software de qualquer natureza exige organização, dedicação, estrutura
  86. 86. É necessário coordenar o que e quando fazer
  87. 87. Programação é somente parte do trabalho</li></ul>49<br />
  88. 88. 50<br />Camadas da Engenharia da Web<br /><ul><li>Processo
  89. 89. Abordagem de desenvolvimento simples que incorpora ciclos rápidos de desenvolvimento
  90. 90. Modificação da prioridade do o quê? Para quando?
  91. 91. o problema deve ser analisado, o projeto deve ser desenvolvido, implementação deve ser procedida de modo incremental e uma abordagem organizada de testes deve ser realizada</li></li></ul><li>Falando em testes - Princípios básicos para o teste de software - WebApps<br /> Pressman (2006) apresenta uma abordagem que adota os princípios básicos para o teste de todo software, aplica estratégias e táticas que são recomendadas para sistemas OO. <br />Revisar o conteúdo a fim de descobrir erros de grafia, gramática, consistência do conteúdo, representações gráficas, dentre outros;<br />Revisar o projeto de navegação para descobrir erros nos links e/ou na permissão de acesso de cada usuário;<br />testar cada página focando seu processamento;<br />Testar a funcionalidade geral e conteúdo fornecido;<br />Testar a compatibilidade da aplicação em diferentes configurações <br />diferentes browsers, sistemas operacionais, plataformas de hardware e protocolos de comunicação. <br />51<br />
  92. 92. 52<br />Camadas da Engenharia da Web<br /><ul><li>Processo - atividades
  93. 93. Acolher modificações
  94. 94. Encorajar a criatividade e independência da equipe de desenvolvimento
  95. 95. Forte interação com os interessados nas WebApps
  96. 96. Pequenas equipes
  97. 97. Enfatizar o desenvolvimento evolutivo ou incremental usando ciclos de desenvolvimento curtos</li></li></ul><li>53<br />Camadas da Engenharia da Web<br /><ul><li>Métodos
  98. 98. Métodos de comunicação: facilitar a comunicação entre equipe e interessados; usados em cada incremento.
  99. 99. Métodos de análise de requisitos: fornecer base para o entendimento do conteúdo a ser entregue.</li></li></ul><li>54<br />Camadas da Engenharia da Web<br /><ul><li>Métodos
  100. 100. Métodos de projeto: projetar conteúdo, arquitetura, interface e estrutura de navegação
  101. 101. Métodos de teste: incorporar revisões técnicas formais do conteúdo e projeto, teste de navegação, teste de segurança, teste de usabilidade, teste de configuração</li></li></ul><li>55<br />Camadas da Engenharia da Web<br /><ul><li>Ferramentas e Tecnologia
  102. 102. Linguagens de modelagem (HTML, XML)
  103. 103. Linguagens de programação (Java, php)
  104. 104. Componentes (.NET, COM, CORBA)
  105. 105. Navegadores
  106. 106. Ferramentas multimídia
  107. 107. Ferramentas de autoria de sites
  108. 108. Ferramentas de conectividade com BD
  109. 109. Ferramentas de segurança
  110. 110. Gestão e análise de sites</li></li></ul><li>56<br />Camadas da Engenharia da Web<br /><ul><li>Ferramentas e Tecnologia
  111. 111. Web Developer´s Virtual Encyclopedia (www.wdlv.com)
  112. 112. WebDeveloper (www.webdeveloper.com)
  113. 113. DeveloperShed (www.devshed.com)
  114. 114. Webnowhow.net (www.webnowhow.com)
  115. 115. WebReference (www.webreference.com)</li></li></ul><li>Modelo de processo da WebE<br />57<br />(Pressman, 2002)<br />
  116. 116. Modelo de processo da WebE<br />58<br /><ul><li>Iterativo e incremental
  117. 117. Formulação
  118. 118. identificação das metas e dos objetivos da WebApp
  119. 119. qual é a principal motivação da WebApp?
  120. 120. por que a WebApp é necessária?
  121. 121. quem vai usar a WebApp?
  122. 122. estabelece o escopo do primeiro incremento</li></li></ul><li>Modelo de processo da WebE<br />59<br /><ul><li>Planejamento
  123. 123. estima-se o custo global do projeto
  124. 124. avaliação dos riscos
  125. 125. definição de cronograma detalhado para o primeiro incremento
  126. 126. previsão de cronograma para os incrementos subsequentes</li></li></ul><li>Modelo de processo da WebE<br />60<br /><ul><li>Análise
  127. 127. estabelecimento dos requisitos
  128. 128. identificação do conteúdo
  129. 129. definição do projeto gráfico (estética)
  130. 130. documentação X evolução contínua: </li></ul>como conciliar?<br />
  131. 131. Modelo de processo da WebE<br />61<br /><ul><li>Engenharia
  132. 132. Projeto do conteúdo e produção: projetar e/ou adquirir todo o conteúdo de texto, gráfico, áudio e vídeo, que deve ser integrado na WebApp estas tarefas são desenvolvidas pelos membros "não-técnicos" da equipe.
  133. 133. Projeto arquitetural: focaliza a estrutura global de hipermídia</li></li></ul><li>Modelo de processo da WebE<br />62<br /><ul><li>Engenharia
  134. 134. Projeto navegacional
  135. 135. definição dos caminhos de navegação que permitem ao usuário ter acesso ao conteúdo e aos serviços
  136. 136. pode estar ligado ao tipo de usuário
  137. 137. definição da mecânica da navegação: ligações baseadas em texto, ícones, botões
  138. 138. estabelecer convenções e ajudas à navegação</li></li></ul><li>63<br />Modelo de processo da WebE<br /><ul><li>Engenharia
  139. 139. Projeto da interface
  140. 140. “Primeira impressão”
  141. 141. Uma interface bem projetada melhora a percepção do usuário em relação ao conteúdo ou os serviços fornecidos
  142. 142. Bem estruturada e ergonomicamente sólida
  143. 143. Uma interface mal projetada vai desapontar o usuário e pode provocar sua ida para outra aplicação</li></li></ul><li>Modelo de processo da WebE<br />64<br /><ul><li>Geração de página
  144. 144. o conteúdo produzido na engenharia é combinado com o projeto arquitetural, navegacional e de interface para produzir páginas da web executáveis, utilizando uma linguagem de programação
  145. 145. Teste
  146. 146. exercita a navegação da WebApp
  147. 147. tenta descobrir erros
  148. 148. ajuda garantir a correta operação</li></li></ul><li>Modelo de processo da WebE<br />65<br /><ul><li>Avaliação do Cliente
  149. 149. revisão dos incrementos produzidos
  150. 150. solicitação de modificações
  151. 151. as modificações são integradas nos próximos incrementos</li></li></ul><li>planejamento<br />comunicação<br />modelagem<br />início<br />Atividades<br /> guarda-chuva<br />incremento<br />entrega<br />construção<br />Fonte: Pressman 2006<br />66<br />Processo Genérico da ES da Web<br />
  152. 152. Equipe da WebE<br />67<br /><ul><li>Desenvolvedores e provedores de conteúdo
  153. 153. geração ou coleta do conteúdo
  154. 154. oriundos de diversas áreas: venda ou comercialização, produtores de áudio e vídeo, redatores, projetistas gráficos, pessoal de pesquisa
  155. 155. Editor da web
  156. 156. organizar o conteúdo
  157. 157. precisa conhecer tanto do conteúdo quanto da tecnologia</li></li></ul><li>Equipe da WebE<br />68<br /><ul><li>Engenheiro da web
  158. 158. dedução de necessidades
  159. 159. análise e modelagem
  160. 160. projeto arquitetural, navegacional e de interface
  161. 161. implementação e teste
  162. 162. sólidos conhecimentos de:
  163. 163. arquiteturas cliente/servidor
  164. 164. HTML/XML e tecnologias de bancos de dados
  165. 165. multimídia
  166. 166. plataformas de hardware/software, segurança de redes.</li></li></ul><li>Equipe da WebE<br />69<br /><ul><li>Especialista no domínio do negócio
  167. 167. capaz de responder a todas as questões relativas às metas, aos objetivos e aos requisitos de negócio associados a WebApp
  168. 168. Especialista de suporte
  169. 169. dar continuidade ao suporte da WebApp
  170. 170. correções, adaptações, aperfeiçoamento
  171. 171. atualizações de conteúdo
  172. 172. implementação de novos procedimentos e formulários
  173. 173. modificações no padrão de navegação</li></li></ul><li>70<br />Equipe da WebE<br /><ul><li>Administrador (Web Master)
  174. 174. desenvolvimento e implementação de políticas de operação da WebApp
  175. 175. estabelecimento de procedimentos de suporte e realimentação
  176. 176. implementação de procedimentos de segurança e direitos de acesso
  177. 177. medição e análise do tráfego no site Web
  178. 178. coordenação dos procedimentos de controle de modificações
  179. 179. coordenação dos especialistas de suporte</li></li></ul><li>Construção da Equipe<br />71<br /><ul><li>Estabelecer um conjunto de diretrizes para a equipe
  180. 180. Forte liderança é uma necessidade
  181. 181. Respeitar os talentos individuais é crítico
  182. 182. Todos os membros da equipe devem estar comprometidos
  183. 183. É fácil iniciar, mas é muito difícil manter o ritmo</li></li></ul><li>Melhores práticas<br />72<br /><ul><li>Empregue tempo para entender as necessidades do negócio e os objetivos do produto, mesmo se os detalhes da WebApp forem vagos
  184. 184. Desenvolva um plano de projeto, mesmo que seja abreviado
  185. 185. Empregue tempo modelando o que você está querendo construir
  186. 186. Revise os modelos quanto a consistência e qualidade</li></li></ul><li>Melhores práticas<br />73<br /><ul><li>Use ferramentas e tecnologia que possibilitem construir o sistema com tantos componentes reusáveis quanto possível
  187. 187. Não confie nos primeiros usuários para depurar a WebApp – projete testes abrangentes e execute-os antes de entregar o sistema</li></li></ul><li>74<br />Melhores práticas<br /><ul><li>Existemváriasfontes de pesquisasobreWebE. Um bomponto de partida:</li></ul> http://www.rspa.com/spi/index.html<br />
  188. 188. Qualidade na Web<br />75<br />(Olsina, 99)<br />
  189. 189. 76<br />Qualidade na Web (Offut 2002)<br /><ul><li>Segurança
  190. 190. Disponibilidade
  191. 191. Escalabilidade
  192. 192. Prazo de colocação no mercado</li></li></ul><li>Diretrizes de projetos de interface WebApp(Nielsen e Wagner)<br />77<br /><ul><li>Precisa “prender” um provável usuário imediatamente
  193. 193. Não forçar um usuário a ler quantidades volumosas de texto, particularmente quando o texto explica a operação da WebApp ou apóia a navegação
  194. 194. Evitar sinais de “em construção” – eles levam a expectativas e causam um link desnecessário que vai certamente desapontar</li></li></ul><li>78<br />Diretrizes de projetos de interface WebApp(Nielsen e Wagner)<br /><ul><li>Usuário prefere não rolar: uma informação importante deve ser colocada dentro das dimensões da janela
  195. 195. a estética nunca deve superar a funcionalidade. Ex.: melhor um botão simples do que uma imagem vaga.
  196. 196. as opções de navegação devem ser óbvias
  197. 197. o projetonãodeve se apoiarnasfunções do navegadorparaajudarnanavegação</li></li></ul><li>79<br />Processos de desenvolvimento de software tradicionais<br />Cascata<br />Prototipação <br />Incremental <br />Espiral <br />Baseado em Componentes<br />Processo Unificado e RUP<br />
  198. 198. 80<br />Processos de desenvolvimento de software – Métodos Ágeis<br />XP (Extreme Programming)<br />SCRUM <br />FDD (Feature Driven Development)<br />DSDM (Dynamic System Development Method)<br />ASD (Adaptative Software Development)<br />ModelagemÁgil<br />Crystal<br />
  199. 199. IRUP – I (BM) RationalUnifiedProcess<br />http://www.wthreex.com/rup/portugues/tour/tour.htm<br />
  200. 200. RUP – RationalUnifiedProcess<br /><ul><li>Dirigido por casos de uso: casos de uso são utilizados como o principal artefato para o estabelecimento do comportamento desejado do sistema, para a verificação e para a comunicação entre os participantes do projeto
  201. 201. Centrado na arquitetura: pensa-se primeiro nos elementos de desempenho, escalabilidade, reutilização, restrições econômicas e tecnológicas, começando pela “visão” do software</li></ul>82<br />
  202. 202. <ul><li>Iterativo: envolve o gerenciamento de seqüências de versões executáveis
  203. 203. Incremental: envolve a integração contínua da arquitetura do sistema para a produção das versões, de maneira que cada versão incorpore os aprimoramentos incrementais em relação às demais</li></ul>83<br />RUP – RationalUnifiedProcess<br />
  204. 204. 84<br />Vantagens<br />Os profissionais são forçados a atacar a parte mais crítica do software logo no início. <br />Os custos e os prazos são definidos na fase inicial do projeto.<br />Desta forma, os riscos do software são conhecidos pelo desenvolvedor. <br />Faz-se uso de iterações para evitar o impacto de mudanças no projeto e o gerenciamento de mudanças ao longo do desenvolvimento. <br />A aplicação do RUP torna o processo flexível, permitindo reavaliações e readequações.<br />
  205. 205. 85<br />Problemas<br />Relativamente novo.<br />Modelo complexo, não se aplicando às situações que não apresentam tal complexidade. <br />As fases nem sempre são adequadas <br /> software que está sendo desenvolvido apresenta requisitos muito dinâmicos ou seja, que se alteram freqüentemente.<br />
  206. 206. 86<br />
  207. 207. 87<br />Manifesto Ágil<br /><ul><li>Movimento iniciado por um grupo de programadores experientes e consultores em métodos de desenvolvimento de software “leves”
  208. 208. Criado em 2001, autodenominado como aliança ágil (agilealliance.org)</li></li></ul><li>88<br />Manifesto Ágil<br /><ul><li>Valoriza um conjunto de valores e práticas ágeis para o desenvolvimento de software mais eficaz
  209. 209. Defende valores que devem ser executados com a finalidade de obter um processo mais iterativo e menos burocrático </li></li></ul><li>89<br />Motivação dos Ágeis<br /><ul><li>É difícil predizer quais requisitos serão mantidos e quais vão mudar, assim como quais prioridades mudarão
  210. 210. É difícil saber quanto projeto é suficiente para começar. Projeto e implementação são feitos em paralelo
  211. 211. Análise, projeto, construção e teste não são tão previsíveis (do ponto de vista de planejamento) como gostaríamos</li></li></ul><li>90<br />O que é um Processo Ágil?<br /><ul><li>O processo deve gerenciar o imprevisível
  212. 212. Não pode só se adaptar sem progredir
  213. 213. Para ter adaptabilidade incremental é necessário feedback do cliente</li></li></ul><li>91<br />Perfil da Equipe <br /><ul><li>Competência
  214. 214. talento nato
  215. 215. habilidades específicas de desenvolvimento de software
  216. 216. conhecimento do processo a ser usado
  217. 217. Foco comum
  218. 218. entregar ao cliente a próxima versão (incremento) do sistema no prazo prometido</li></li></ul><li>92<br />Perfil da Equipe <br /><ul><li>Colaboração
  219. 219. entre si e com o cliente
  220. 220. Autonomia
  221. 221. autoridade para tomar decisões técnicas e de planejamento
  222. 222. Versatilidade
  223. 223. aceitar o fato de que o problema sendo resolvido hoje pode mudar amanhã</li></li></ul><li>93<br />Perfil da Equipe <br /><ul><li>Respeito e confiança mútuos
  224. 224. o conjunto é maior do que a soma das partes
  225. 225. Auto-organização
  226. 226. o time se auto-gerencia com relação ao trabalho a ser feito, às adaptações ao processo e ao calendário</li></li></ul><li>94<br />Princípios Ágeis<br /><ul><li>Indivíduos e iterações têm mais importância do que processos e ferramentas
  227. 227. O software funcionando é mais importante do que uma vasta documentação</li></li></ul><li>95<br />Princípios Ágeis<br /><ul><li>A colaboração do cliente é mais importante do que a negociação de contratos
  228. 228. Adaptação a mudanças é mais importante do que seguir um plano</li></li></ul><li>96<br />Princípios Ágeis<br /><ul><li>Maior prioridade na satisfação do cliente, entregando software com valor e em tempo hábil
  229. 229. Preparar-se quanto às mudanças de requisitos, mesmo que elas apareçam na fase mais avançada do desenvolvimento</li></li></ul><li>97<br />Princípios Ágeis<br /><ul><li>Entregar versões funcionais com freqüência e de preferência no menor espaço de tempo
  230. 230. As equipes devem trabalhar juntas durante todo o projeto</li></li></ul><li>98<br />Princípios Ágeis<br /><ul><li>Construir projetos com pessoas motivadas, confiando nelas e fornecendo um ambiente de trabalho apropriado
  231. 231. As conversas diretas atuam como uma forma eficiente de trocar informações e fazê-las funcionar</li></li></ul><li>99<br />Princípios Ágeis<br /><ul><li>O software funcionando é a principal forma de medir o progresso
  232. 232. Os processos ágeis geram um desenvolvimento sustentável
  233. 233. Atenção contínua ao nível técnico e um bom projeto aumentam a agilidade</li></li></ul><li>100<br />Princípios Ágeis<br /><ul><li>A simplicidade é essencial
  234. 234. Melhores arquiteturas, requisitos e projetos são provenientes de equipes organizadas
  235. 235. De tempo em tempo a equipe reflete sobre como se tornar mais eficaz, ajustando o seu comportamento</li></li></ul><li>101<br />Ágeis X Tradicionais<br />Agilistas:“Os engenheiros tradicionais preferem produzir uma documentação impecável do que um software que funcione e atenda ao cliente.”<br />Tradicionalistas: “Engenheiros ágeis terão uma bela surpresa quando tentarem usar seus brinquedinhos em sistemas grandes e complexos.”<br />
  236. 236. 102<br />Ágeis X Tradicionais<br /><ul><li>Nada se ganha com “guerras religiosas”
  237. 237. Muito se ganha em considerar o melhor de cada abordagem
  238. 238. Métodos ágeis não são a antítese dos métodos tradicionais
  239. 239. Agilidade pode ser aplicada a qualquer processo de software</li></li></ul><li>MODELO ESTRELA: UM MODELO DE PROCESSO PARA DESENVOLVIMENTO DE SISTEMAS WEB USANDO AS MELHORES PRÁTICAS TRADICIONAIS E ÁGEIS<br />
  240. 240. Modelo Estrela<br />Objetivos <br />Orientar o processo de desenvolvimento de sistemas web, através de:<br />Gerenciamento de projetos;<br />Gerenciamento de riscos;<br />Vantagens dos métodos ágeis e tradicionais.<br />104<br />
  241. 241. Origem do nome ESTRELA<br />105<br />
  242. 242. Características do modelo ESTRELA<br />106<br />Indivíduos possuem forte ligação com as iterações;<br />Documentação adequada (propostas e contratos);<br />Adaptação a mudanças;<br />Versão funcional em menos espaço de tempo;<br />Comunicação constante;<br />Padronização .<br />
  243. 243. Características do modelo ESTRELA<br />107<br /><ul><li>Conversas diretas são eficientes;
  244. 244. O software funcionando e a satisfação do cliente são as principais formas de medir o progresso;
  245. 245. Os estágios podem ser realimentados;
  246. 246. Gerenciado – 9 áreas do PMI;
  247. 247. Controle e monitoração dos Riscos – MODELO E-RISCOS (PMI, RUP, ESPIRAL, prototipação e FDD);</li></li></ul><li>Papéis <br />108<br />Avaliador; <br />Cliente;<br />Cliente final;<br />Desenvolvedor;<br />Designer;<br />Gerente de projetos;<br />Gerente de equipe;<br />Representante comercial;<br />Gerente empresarial (proprietário).<br />
  248. 248. Estágios do modelo ESTRELA<br />109<br />
  249. 249. Estágios do modelo ESTRELAPré-aquisição<br />110<br />A pré-aquisição possui 3 subestágios:<br />Definição de requisitos preliminares (linguagem natural não detalhada); <br />Elaboração da proposta;<br />Projeto de interface (layout).<br />Envolvidos:<br />Cliente;<br />Representante comercial;<br />Gerente de projetos e de equipe;<br />Designer.<br />
  250. 250. Gerenciamento de projetos ..<br />111<br />MODELO E-RISCOS (...)<br />Gerenciamento de riscos: E-RISCOS<br />Identificação, Priorização, Planejamento, Administração, Padronização e reação dos riscos. Esse assunto será melhor apresentado posteriormente...<br />Cronogramas, prazos, custos, riscos, metas, objetivos, prioridades e distribuição das tarefas entre a equipe.<br />Envolvidos:<br />Cliente;<br />Representante comercial;<br />Gerente de projetos;<br />Gerente de equipe;<br />Gerente empresarial;<br />Desenvolvedores.<br />
  251. 251. Aquisição<br />112<br />Detalha-se os principais requisitos (funcionais e não funcionais)<br />Subestágios:<br />Definição de requisitos fundamentais – identificar e priorizar os elementos de maior risco para o projeto;<br />Formalização da proposta – contrato.<br />
  252. 252. Definição de requisitos complementares<br />Acomoda os requisitos dinâmicos (evolução do software)<br />Está presente no centro do modelo e possui ligação com estágio de Planejamento e gerenciamento.<br />Subestágios:<br />Definição de requisitos fundamentais – identificar e priorizar os elementos de maior risco para o projeto;<br />Formalização da proposta – contrato;<br />Documentos:<br />Aditivo contratual<br />Envolvidos:<br />É conduzido pelo Gerente de projetos e de equipe;<br />Representante comercial;<br />Demais desenvolvedores.<br />113<br />
  253. 253. Desenvolvimento<br />Implementação dos requisitos;<br />Subestágios:<br />Concepção do projeto <br />Desenvolvimento em pares;<br />Identificação das áreas críticas e grau de dificuldade.<br />Padrão de desenvolvimento;<br />Modelo de dados (análise - estrutura e comportamento esperado);<br />Modelo funcional (entradas, manutenções, consultas, relatórios, etc).<br />Implementação<br />Detalhamento do projeto navegacional e de interface realizando também se necessário ajustes no protótipo;<br />Saída:<br />Pelo menos uma funcionalidade.<br />Envolvidos:<br />Desenvolvedores;<br />Gerente de projetos e de equipe;<br />Cliente;<br />Representante comercial.<br />114<br />
  254. 254. Verificação dinâmica<br />Validar os requisitos através de testes (que podem ser chamados em qualquer fase)<br />Saída:<br />Documento com o parecer da avaliação.<br />Retorna ao desenvolvimento até que esteja atenda os requisitos especificados.<br />Envolvidos:<br />Avaliador;<br />Desenvolvedor;<br />Gerente de projetos e de equipe.<br />115<br />
  255. 255. Entrega iterativa<br />O cliente executa, testa e navega nas partes executáveis do software;<br />Encerramento do projeto (quando todos requisitos são atendidos).<br />Saída:<br />Realizado através de ftp dos arquivos (módulos)<br />Documento com o parecer da avaliação (favorável, restrição...) e-mail, fax, sistema próprio ...)<br />Envolvidos:<br />Gerente de projetos;<br />Desenvolvedores;<br />Cliente.<br />116<br />

×