M´etodo ´Agil para desenvolvimento de
software confi´avel
Alan Braz, Cec´ılia M. F. Rubira, Marco Vieira
<alanbraz@br.ibm.c...
M´etodo ´Agil para desenvolvimento de software confi´avel
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´Agil de So...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 ...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Introdu¸c˜ao
Confiabilidade n˜ao ´e mai...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Hist´orico
Hist´orico
Tratamento de Ex...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
MDCE+
Metodologia para Defini¸c˜ao do C...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Motiva¸c˜ao
Motiva¸c˜ao
Trabalho futur...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Proposta
Proposta
Combina¸c˜ao entre o...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Proposta
MDCE
MDCE+
Catalysis
UML
Comp...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Trabalhos relacionados
Trabalhos relac...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Trabalhos relacionados
Trabalhos relac...
M´etodo ´Agil para desenvolvimento de software confi´avel
Introdu¸c˜ao e Motiva¸c˜ao
Trabalhos relacionados
Trabalhos relac...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Agenda
1 Introdu¸c˜ao e Motiva¸...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Desenvolvimento ´Agil de Softwa...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Cr´ıticas
Enfoque na organiza¸c...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
Desafios
Os maiores desafios s˜ao...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
M´etodo Scrum
Des...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Fases do Scrum
Pr...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Pap´eis, eventos ...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Hist´orias de Usu...
M´etodo ´Agil para desenvolvimento de software confi´avel
Desenvolvimento ´Agil de Software
M´etodo Scrum
Exemplo de Hist´o...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento ´A...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Solu¸c˜ao proposta: Scrum+CE
Pré-jogo
- Planejamento
- A...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Pap´eis, eventos e artefatos
1
2
3
4
5
6
7
8
9
10
Entrad...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Rela¸c˜ao entre as fases
Tabela: Rela¸c˜ao entre as fase...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Fases afetadas
Pr´e-jogo
Comportamento ex...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Exemplo de Hist´oria Excepcional
Cart˜ao
...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Exemplo de Testes de Aceita¸c˜ao Excepcio...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Fases afetadas
Jogo
As Hist´orias Excepci...
M´etodo ´Agil para desenvolvimento de software confi´avel
Scrum+CE
Fases afetadas
Fases afetadas
Reuni˜ao de Planejamento d...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Dese...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Metodologia
Metodologia
Foi realizado um e...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Defini¸c˜ao
Tabela: Vis˜ao Geral do experim...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Prepara¸c˜ao
Redu¸c˜ao
Adapta¸c˜ao da dura...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Sistema implementado
Tabela: Vi...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Arquitetura
DB2
OpenJPARestlet
...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Modelo de Dados
38 / 50
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Atividades
39 / 50
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Agenda
40 / 50
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Grupos e Pap´eis
253, 36%
225, ...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
Hist´orias entregues
Disponívei...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
Hist´orias entregues
G2 entrego...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
M´etricas de qualidade dos requ...
M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Resultados
M´etricas de qualidade de c´odi...
M´etodo ´Agil para desenvolvimento de software confi´avel
Conclus˜oes
Agenda
1 Introdu¸c˜ao e Motiva¸c˜ao
2 Desenvolvimento...
M´etodo ´Agil para desenvolvimento de software confi´avel
Conclus˜oes
Conclus˜oes
Aplicar o Scrum+CE resultou em:
Melhor qu...
M´etodo ´Agil para desenvolvimento de software confi´avel
Agradecimentos
Agradecimentos
Orientadora:
Profa. Dra. Cec´ılia M...
M´etodo ´Agil para desenvolvimento de software confi´avel
Bibliografia
Bibliografia I
Beck, K. et al. (2001).
Manifesto para ...
M´etodo ´Agil para desenvolvimento de software confi´avel
Bibliografia
Bibliografia II
Nord, R. L. and Tomayko, J. E. (2006)....
WBMA2013 - Método Ágil para desenvolvimento de software confiável
Upcoming SlideShare
Loading in …5
×

WBMA2013 - Método Ágil para desenvolvimento de software confiável

1,389
-1

Published on

Slides usados na apresentação do meu artigo "Método Ágil para desenvolvimento de software confiável" no WBMA 2013 no AgileBrazil

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,389
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
13
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

WBMA2013 - Método Ágil para desenvolvimento de software confiável

  1. 1. M´etodo ´Agil para desenvolvimento de software confi´avel Alan Braz, Cec´ılia M. F. Rubira, Marco Vieira <alanbraz@br.ibm.com>, <cmrubira@ic.unicamp.br>, <mvieira@dei.uc.pt> MSc - Instituto de Computa¸c˜ao - UNICAMP Pesquisador em Engenharia de Software - IBM Research WBMA 2013 28 de junho de 2013
  2. 2. M´etodo ´Agil para desenvolvimento de software confi´avel Agenda 1 Introdu¸c˜ao e Motiva¸c˜ao 2 Desenvolvimento ´Agil de Software 3 Scrum+CE 4 Experimento controlado 5 Conclus˜oes 2 / 50
  3. 3. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Agenda 1 Introdu¸c˜ao e Motiva¸c˜ao 2 Desenvolvimento ´Agil de Software 3 Scrum+CE 4 Experimento controlado 5 Conclus˜oes 3 / 50
  4. 4. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Introdu¸c˜ao Confiabilidade n˜ao ´e mais um simples requisito n˜ao funcional inerente apenas a sistemas cr´ıticos mas sim a todos os sistemas de software que necessitam de certa robustez Solu¸c˜oes: Desenvolvimento Baseado em Componentes (DBC) Desenvolvimento Centrado na Arquitetura O termo confiabilidade ser´a utilizado no sentido de reliability que ´e a capacidade do sistema oferecer seus servi¸cos e funcionalidades conforme suas especifica¸c˜oes, ou seja, de forma correta. 4 / 50
  5. 5. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Hist´orico Hist´orico Tratamento de Exce¸c˜oes no Desenvolvimento de Software Confi´avel Baseado em Componentes [Ferreira 2001] Cria¸c˜ao da Metodologia para Defini¸c˜ao do Comportamento Excepcional (MDCE) Adi¸c˜ao de novos estere´otipos da UML. Aplica¸c˜ao ao processo de desenvolvimento Catalysis Um M´etodo para Modelagem de Exce¸c˜oes em Desenvolvimento Baseado em Componentes [Brito 2005] Evolu¸c˜ao do MDCE para o MDCE+ enfatizando a modelagem do comportamento excepcional centrado na arquitetura Adapta¸c˜ao ao processo UML Components 5 / 50
  6. 6. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao MDCE+ Metodologia para Defini¸c˜ao do Comportamento Excepcional (MDCE+) Sistematiza a modelagem e a implementa¸c˜ao do comportamento excepcional no desenvolvimento de sistemas baseados em componentes Focado nas fases de projeto arquitetural e implementa¸c˜ao A ˆenfase na arquitetura de software possibilita uma melhor an´alise dos fluxos de exce¸c˜oes entre os componentes arquiteturais Constru¸c˜ao de tratadores mais eficientes antecipa a corre¸c˜ao de poss´ıveis falhas de especifica¸c˜ao. 6 / 50
  7. 7. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Motiva¸c˜ao Motiva¸c˜ao Trabalho futuro sugerido por Patrick Brito: Agilidade Uma possibilidade para agilizar o desenvolvimento dos sistemas seria estudar alguns processos ´ageis e tentar introduzir algumas de suas caracter´ısticas no MDCE+. Por´em, deve-se ter sempre em mente que n˜ao se pode comprometer a confiabilidade do produto final produzido, uma vez que esse ´e o objetivo principal do m´etodo MDCE+. Por outro lado, n˜ao deve comprometer a agilidade! 8 / 50
  8. 8. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Proposta Proposta Combina¸c˜ao entre o m´etodo MDCE+ e a metodologia ´agil Scrum Scrum+CE (Scrum com Comportamento Excepcional) 9 / 50
  9. 9. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Proposta MDCE MDCE+ Catalysis UML Components Scrum Scrum+CE Desenvolvimento Baseado em Components (DBC) Desenvolvimento Centrado na Arquitetura 1 2 2 3 3 1. 2001 Gisele Ferreira 2. 2005 Patrick Brito 3. Este trabalho – – – Etapas auxiliares 10 / 50
  10. 10. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Trabalhos relacionados Trabalhos relacionados I Agile Software Development for Component Based Software Engineering [Radinger and Goeschka 2003], foi proposta uma abordagem para integrar o Desenvolvimento ´Agil de Software (DAS) ao DBC em um Desenvolvimento ´Agil de Componentes para projetos de pequena e larga escalas combinando as quest˜oes t´ecnicas e gerenciais de ambas as abordagens. Todas as fases do DBC foram mantidas e com foco em um documento de arquitetura completo e detalhado do sistema bem como na an´alise e projeto igualmente detalhados. Na fase de provisionamento de componentes, se for tomada a decis˜ao de que um componente dever´a ser desenvolvido, sua constru¸c˜ao dever´a seguir uma abordagem ´agil como se fosse um subprojeto. 11 / 50
  11. 11. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Trabalhos relacionados Trabalhos relacionados II Software Architecture-Centric Methods and Agile Development [Nord and Tomayko 2006] explora as rela¸c˜oes e sinergias entre a An´alise e Projeto centrado na Arquitetura e o m´etodo ´agil XP, destacando que o segundo enfatiza o desenvolvimento r´apido e flex´ıvel enquanto o primeiro prioriza o projeto e a infraestrutura. 12 / 50
  12. 12. M´etodo ´Agil para desenvolvimento de software confi´avel Introdu¸c˜ao e Motiva¸c˜ao Trabalhos relacionados Trabalhos relacionados III Software Reliability Engineering (SRE) for Agile Software Development [Far 2007] foi mostrado que, apesar de terem enfoques distintos, existe compatibilidade entre o desenvolvimento de software confi´avel e ´agil em torno dos aspectos de se medir e avaliar a confiabilidade do software desenvolvido. SRE executa testes no software criado com o objetivo de validar os parˆametros de confiabilidade previamente definidos e modelados, enquanto que o m´etodo ´agil se apoia em uma abordagem dirigida por testes, TDD, na qual os casos de testes s˜ao escritos antes do c´odigo e executados constantemente, preferencialmente de forma autom´atica, durante o processo de desenvolvimento. Foi proposto um novo processo, chamado Agile-SRE. 13 / 50
  13. 13. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software Agenda 1 Introdu¸c˜ao e Motiva¸c˜ao 2 Desenvolvimento ´Agil de Software 3 Scrum+CE 4 Experimento controlado 5 Conclus˜oes 14 / 50
  14. 14. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software Desenvolvimento ´Agil de Software (DAS) Conjunto de metodologias de desenvolvimento de software guiados por quatro valores e doze princ´ıpios definidos em 2001 no Manifesto ´Agil. [Beck et al. 2001] 1 Indiv´ıduos e as intera¸c˜oes entre eles mais que processos e ferramentas, 2 Software em funcionamento mais que documenta¸c˜ao abrangente, 3 Colabora¸c˜ao com o cliente mais que negocia¸c˜ao de contratos, e 4 Responder a mudan¸cas mais que seguir um plano. 15 / 50
  15. 15. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software Cr´ıticas Enfoque na organiza¸c˜ao das equipes e aspectos gerenciais Impress˜ao de que documentar os requisitos, definir um projeto arquitetural, fazer an´alise e design n˜ao s˜ao obrigat´orios ou n˜ao precisam de nenhum tipo de rigor Por´em um dos princ´ıpios dita: “aten¸c˜ao cont´ınua a excelˆencia t´ecnica e a um bom projeto (design)” 16 / 50
  16. 16. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software Desafios Os maiores desafios s˜ao provenientes da transforma¸c˜ao cultural exigida: Custo e o Tempo s˜ao fixos, e o Escopo vari´avel, For¸ca o cliente a pensar nos requisitos realmente obrigat´orios para atender as suas necessidades, Muda a mentalidade de gerente de projetos e desenvolvedores, Muda a forma em que requisitos s˜ao estimados e contratos s˜ao negociados. Motiva¸c˜ao: Simplicidade ´e confundida com informalidade ou falta de rigor 17 / 50
  17. 17. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software M´etodo Scrum M´etodo Scrum Desenvolvimento iterativo de incremental Equipes pequenas e multidisciplinares Abordagem emp´ırica R´apido, adapt´avel e auto-organizado Requisitos no formato de Hist´orias de Usu´arios (User Stories)* Estimativas feitas com Pontos de Hist´orias (Story Points)* * Pr´aticas ´ageis amplamente utilizadas mas que n˜ao fazem parte do Scrum oficialmente 18 / 50
  18. 18. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software M´etodo Scrum Fases do Scrum Pré-jogo - Planejamento - Arquitetura Inicial Pós-jogo - Testes de integração - Empacotamento - Fechamento Jogo Sprints D esenvolvim ento* Integração Revisão A justes * engloba Análise, Projeto e Codificação http://www.jeffsutherland.org/oopsla/schwapub.pdf [Schwaber 1995] 19 / 50
  19. 19. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software M´etodo Scrum Pap´eis, eventos e artefatos 1 2 3 4 5 6 7 8 9 10 Entradas dos Executivos, Equipe, Clientes, Usuários e outros Envolvidos Dono do Produto1 Backlog do Produto2 Reunião de Planejamento do Sprint3 Equipe de Desenvolvimento1 Backlog do Sprint2 Scrum Master1 Retrospectiva do Sprint3 Incremento Pronto2 Revisão do Sprint3 Gráfico Burndown2 Reunião de Scrum Diário3 Sprint 2-4 semanas Data de entrega e Backlog do Sprint não sofrem alterações após o início do Sprint TarefasHistórias de Usuário 1 Papel, 2 Artefato, 3 Evento Time seleciona as de maior prioridade que pode se comprometer a entregar Cada 24 horas 20 / 50
  20. 20. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software M´etodo Scrum Hist´orias de Usu´ario Cart˜ao Uma breve descri¸c˜ao da hist´oria usada no planejamento Conversa¸c˜ao For¸ca a discuss˜ao entre os envolvidos para obter mais detalhes Confirma¸c˜ao Testes de valida¸c˜ao e documenta¸c˜ao dos detalhes Formato / Modelo Como um papel/ator, eu quero objetivo, para que eu possa valor de neg´ocio. 21 / 50
  21. 21. M´etodo ´Agil para desenvolvimento de software confi´avel Desenvolvimento ´Agil de Software M´etodo Scrum Exemplo de Hist´oria de Usu´ario Cart˜ao Como um Passageiro eu quero buscar uma linha de ˆonibus que tenha um ponto de parada pr´oximo a um endere¸co desejado, para que eu possa caminhar o m´ınimo poss´ıvel para chegar ao ponto. Confirma¸c˜ao na forma de Testes de Aceita¸c˜ao Consigo escolher o turno e sentido? O formato do endere¸co ´e composto por latitude e longitude? A resposta ´e a sigla da linha encontrada? O ponto encontrado esta a menos de 500 metros? O ponto ´e de parada? 22 / 50
  22. 22. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Agenda 1 Introdu¸c˜ao e Motiva¸c˜ao 2 Desenvolvimento ´Agil de Software 3 Scrum+CE 4 Experimento controlado 5 Conclus˜oes 23 / 50
  23. 23. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Solu¸c˜ao proposta: Scrum+CE Pré-jogo - Planejamento - Arquitetura Inicial Pós-jogo - Testes de integração - Empacotamento - Fechamento Jogo Sprints D esenvolvim ento* Integração Revisão A justes * engloba Análise, Projeto e Codificação Identificação das Exceções e Definição dos cenários excepcionais na forma de Histórias Excepcionais Descrição das Assertivas Excepcionais Implementação dos Componentes e Criação de “wrappers” para os components reutilizados Separação de interesse entre os componentes Normais e Excepcionais Análise do Fluxo Excepcional e Refinamento dos tratadores Implementação dos conectores 24 / 50
  24. 24. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Pap´eis, eventos e artefatos 1 2 3 4 5 6 7 8 9 10 Entradas dos Executivos, Equipe, Clientes, Usuários e outros Envolvidos Dono do Produto1 Backlog do Produto2 Reunião de Planejamento do Sprint3 Equipe de Desenvolvimento1 Backlog do Sprint2 Scrum Master1 Retrospectiva do Sprint3 Incremento Pronto2 Revisão do Sprint3 Gráfico Burndown2 Reunião de Scrum Diário3 Sprint 2-4 semanas Data de entrega e Backlog do Sprint não sofrem alterações após o início do Sprint Tarefas Histórias de Usuário e Histórias Excepcionais 1 Papel, 2 Artefato, 3 EventoDono da Arquitetura1 Time seleciona as de maior prioridade que pode se comprometer a entregar Arquitetura Inicial2 Cada 24 horas 25 / 50
  25. 25. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Rela¸c˜ao entre as fases Tabela: Rela¸c˜ao entre as fases do MDCE+ e do Scrum. Fases do Scrum Eventos do Scrum Fases do MDCE+ Pr´e-jogo Planejamento FASE 1: Especifica¸c˜ao e An´alise dos Requisitos FASE 2: Defini¸c˜ao dos Aspectos Gerenciais Arquitetura FASE 3: Projeto Arquitetural Jogo Planejamento do Sprint FASE 1: Especifica¸c˜ao e An´alise dos Requisitos FASE 3: Projeto Arquitetural FASE 4: An´alise do Sistema FASE 5: Projeto do Sistema Sprint FASE 6: Materializa¸c˜ao dos Componentes FASE 7: Integra¸c˜ao dos Componentes Revis˜ao do Sprint FASE 1: Especifica¸c˜ao e An´alise dos Requisitos FASE 8: Implanta¸c˜ao (demonstra¸c˜ao ao cliente) P´os-jogo Testes de integra¸c˜ao FASE 7: Integra¸c˜ao dos Componentes Empacotamento FASE 8: Implanta¸c˜ao (entrega ao cliente) Fechamento 26 / 50
  26. 26. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Fases afetadas Fases afetadas Pr´e-jogo Comportamento excepcional ser´a documentado na forma de Hist´orias Excepcionais e de Testes de Aceita¸c˜ao nas Hist´orias de Usu´ario que validem especificamente os fluxos excepcionais. Arquitetura Inicial passar´a a expor os componentes excepcionais conforme o modelo de componente tolerante a falhas ideal que ´e categorizado em dois tipos: normal, que produz respostas corretas; e excepcional (ou anormal), que ´e executado quando um erro ´e detectado. Defini¸c˜ao de “Pronto”: o tratamento do comportamento excepcional tamb´em deve ser explicitado, adicionando o seguinte trecho: “. . . e todas as exce¸c˜oes foram devidamente tratadas”. 27 / 50
  27. 27. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Fases afetadas Exemplo de Hist´oria Excepcional Cart˜ao Como um Usu´ario eu quero ver uma mensagem de erro quando o banco de dados estiver indispon´ıvel, para que eu possa evitar a visualiza¸c˜ao de mensagens t´ecnicas. Confirma¸c˜ao na forma de Testes de Aceita¸c˜ao Uma mensagem de erro ´e mostrada quando o banco de dados est´a fora do ar? Uma mensagem de erro ´e mostrada ocorre um erro de autentica¸c˜ao no banco de dados? Uma mensagem de erro ´e mostrada quando um consulta mal formatada ´e feita no banco de dados? 28 / 50
  28. 28. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Fases afetadas Exemplo de Testes de Aceita¸c˜ao Excepcionais Cart˜ao Como um Passageiro eu quero buscar uma linha de ˆonibus que tenha um ponto de parada pr´oximo a um endere¸co desejado, para que eu possa caminhar o m´ınimo poss´ıvel para chegar ao ponto. Testes de Aceita¸c˜ao Excepcionais Mostrar mensagem de erro se n˜ao houverem parˆametros de entrada; O parˆametro Turno n˜ao pode ser nulo; O parˆametro Turno deve ser um n´umero inteiro positivo; Mostrar mensagem de erro caso n˜ao existirem linhas para o Turno desejado; O parˆametro Sentido n˜ao pode ser nulo; O parˆametro Sentido deve ser um ´unico caractere; O valores v´alidos de Sentido s˜ao: T, t, C, c; Os parˆametros de Latitude e Longitude n˜ao podem ser nulos; Os valores de Latitude e Longitude devem ser num´ericos, com casas decimais, negativos ou positivos. 29 / 50
  29. 29. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Fases afetadas Fases afetadas Jogo As Hist´orias Excepcionais s˜ao priorizadas, com ajuda do Dono da Arquitetura, e selecionadas do Product Backlog assim como as Hist´orias de Usu´arios Tarefas expl´ıcitas para o tratamento das exce¸c˜oes devem ser criadas no Sprint Backlog durante a Reuni˜ao de Planejamento do Sprint Arquitetura deve ser revisada e atualizada caso novas exce¸c˜oes sejam descobertas 30 / 50
  30. 30. M´etodo ´Agil para desenvolvimento de software confi´avel Scrum+CE Fases afetadas Fases afetadas Reuni˜ao de Planejamento dividida em trˆes partes: 1 O que vai ser entregue como resultado do Incremento do pr´oximo Sprint; 2 Qual o impacto de tais mudan¸cas na arquitetura; 3 Como ser´a realizado o trabalho necess´ario para adaptar a arquitetura e entregar o Incremento. 31 / 50
  31. 31. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Agenda 1 Introdu¸c˜ao e Motiva¸c˜ao 2 Desenvolvimento ´Agil de Software 3 Scrum+CE 4 Experimento controlado 5 Conclus˜oes 32 / 50
  32. 32. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Metodologia Metodologia Foi realizado um experimento controlado quantitativo com o intuito de avaliar a aplicabilidade pr´atica do m´etodo Scrum+CE. Implementa¸c˜ao de um sistema de software com requisitos de confiabilidade relativos a consistˆencia dos dados. Formatado em um treinamento de “Scrum na Pr´atica” com dura¸c˜ao de 2 semanas, composto por 3 equipes de 4 participantes cada. 33 / 50
  33. 33. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Defini¸c˜ao Tabela: Vis˜ao Geral do experimento. Objetivo Analisar a viabilidade do uso do Scrum+CE no desenvolvimento de siste- mas de informa¸c˜ao com requisito de confiabilidade sem perder a agilidade, atrav´es da compara¸c˜ao com o uso do Scrum. Foco da qualidade Melhor qualidade do c´odigo gerado atrav´es da diminui¸c˜ao dos n´umero de defeitos; Entrega de menor quantidade de Pontos de Hist´oria. Contexto Objeto: sistema de software para plataforma web em linguagem Java Sujeitos: desenvolvedores profissionais com pelo menos 3 anos de ex- periˆencia em Java (67% certificados) Hip´otese nula Igual ou maior n´umero de defeitos. Igual ou maior n´umero de Pontos de Hist´oria entregues. Fator principal Pr´aticas propostas pelo Scrum+CE em rela¸c˜ao ao Scrum Outros fatores Experiˆencia dos desenvolvedores na plataforma Java e no processo Scrum. Vari´aveis dependentes (i) Corretude do c´odigo entregue avaliada pela execu¸c˜ao de um conjunto de testes funcionais manuais; (ii) Quantidade de Pontos de Hist´oria entregues; (iii) M´etricas de tamanho e complexidade do c´odigo gerado. 34 / 50
  34. 34. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Prepara¸c˜ao Redu¸c˜ao Adapta¸c˜ao da dura¸c˜ao dos eventos para viabilizar o experimento. Tabela: Fatores de redu¸c˜ao para viabilizar simula¸c˜ao. Fator Sugerido Utilizado Tamanho da Equipe de Desenvolvimento entre 5 e 9 4 Quantidade de Sprints na Release 1 ou mais 2 Dura¸c˜ao total do Sprint entre 2 e 4 semanas 1 semana Dura¸c˜ao da Reuni˜ao de Planejamento do Sprint entre 4 e 8 horas 2 horas Dura¸c˜ao do Scrum Di´ario 15 minutos 3 minutos Dura¸c˜ao do dia de trabalho 8 horas 2 horas Dura¸c˜ao da Revis˜ao do Sprint entre 2 e 4 horas 1 hora Dura¸c˜ao da Retrospectiva do Sprint entre 2 e 4 horas 1 hora 35 / 50
  35. 35. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado O Problema Sistema implementado Tabela: Vis˜ao do sistema. Para usu´arios do servi¸co de fretados e funcion´arios do departamento de transportes. Que precisam saber qual linha de ˆonibus passa por determinado ponto em um determinado hor´ario. O BusMaps ´e uma plataforma m´ovel. Que controla os itiner´arios das linhas de fretados atrav´es do cadastro e manuten¸c˜ao dos pontos de parada dos ˆonibus. Ao contr´ario do sistema atual que apenas lista as avenidas e ruas principais de cada linha e seu hor´ario de partida no sentido de ida para a empresa. Nosso produto possibilitar´a a visualiza¸c˜ao dos itiner´arios em ambos os sentidos, bem como o hor´ario previsto de parada em cada ponto, facili- tando assim a busca das linhas pelos usu´arios e a manuten¸c˜ao e planejamento dos itiner´arios pelo setor de transportes. 36 / 50
  36. 36. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado O Problema Arquitetura DB2 OpenJPARestlet Navegador Celular Entidades Apresentação Excepcional Persistência Excepcional Interface de Usuário Sessão do Usuário / Serviços de Sistema Serviços de Negócio Banco de Dados JSON HTTP 37 / 50
  37. 37. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado O Problema Modelo de Dados 38 / 50
  38. 38. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Execu¸c˜ao Atividades 39 / 50
  39. 39. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Execu¸c˜ao Agenda 40 / 50
  40. 40. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Execu¸c˜ao Grupos e Pap´eis 253, 36% 225, 32% 233, 33% G1 - Controle - Scrum G2 - Experimental - Scrum+CE G3 - Experimental - Scrum+CE Figura: ´Indice total dos grupos. Tabela: Mapeamento dos pap´eis do Scrum aos participantes do experimento. Papel Representante Dono do Produto pesquisador Dono da Arquitetura pesquisador Scrum Master pesquisador Equipe de Desenvolvimento participantes do experimento 41 / 50
  41. 41. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Resultados Hist´orias entregues Disponíveis no Backlog do Produto G1 G2 G3 0 10 20 30 40 50 60 70 61 49 45 47 13 9 7 8 Pontos de Estória Estórias de Usuário Grupos Quantidade Figura: Total de Hist´orias e Pontos entregues. Tabela: Hist´orias entregues por grupo do experimento. Hist´oria Pontos G1 G2 G3 1 20 • • • 2 5 • • • 3 8 • • • 4 3 • • • 5 3 • • • 6 2 • • 7 1 • • • 8 3 9 5 • • • 10 2 • 11 2 12 5 13 2 42 / 50
  42. 42. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Resultados Hist´orias entregues G2 entregou 22% menos hist´orias que G1. G3 entregou 11% menos hist´orias que G1. Estórias entregues Pontos entregues -25% -20% -15% -10% -5% 0% -22% -8% -11% -4% G2/G1 G3/G1 Figura: Compara¸c˜ao das entregas entre G1 e G2, e entre G1 e G3. 43 / 50
  43. 43. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Resultados M´etricas de qualidade dos requisitos Tabela: Testes realizados e defeitos encontrados por grupo experimento. M´etrica G1 G2 G3 Testes realizados 189 149 161 Testes falhos 66 44 21 Taxa de insucesso 35% 30% 13% Testes realizados Testes falhos Taxa de insucesso -80% -70% -60% -50% -40% -30% -20% -10% 0% -21% -33% -5% -15% -68% -22% G2/G1 G3/G1 Figura: Compara¸c˜ao dos defeitos entre G1 e G2, e entre G1 e G3. G2 falhou 5% menos que G1. G3 falhou 22% menos que G1. 44 / 50
  44. 44. M´etodo ´Agil para desenvolvimento de software confi´avel Experimento controlado Resultados M´etricas de qualidade de c´odigo Tabela: M´etricas de qualidade de c´odigo. M´etrica G1 G2 G3 Linhas de c´odigo 2232 1984 1950 N´umero de Classes 27 47 38 N´umero de Exce¸c˜oes 1 21 2 Blocos catch de exce¸c˜oes nativas 53 18 33 Blocos catch de exce¸c˜oes criadas 9 12 6 Complexidade Ciclom´atica total 446 305 288 Complexidade Ciclom´atica por classe 15.9 4.5 7.2 Complexidade Ciclom´atica por m´etodo 5.0 2.4 2.5 G2 e G3 entregaram 12% menos linhas de c´odigo que G1. G2 e G3 tiveram complexidade 33% menor que G1. 45 / 50
  45. 45. M´etodo ´Agil para desenvolvimento de software confi´avel Conclus˜oes Agenda 1 Introdu¸c˜ao e Motiva¸c˜ao 2 Desenvolvimento ´Agil de Software 3 Scrum+CE 4 Experimento controlado 5 Conclus˜oes 46 / 50
  46. 46. M´etodo ´Agil para desenvolvimento de software confi´avel Conclus˜oes Conclus˜oes Aplicar o Scrum+CE resultou em: Melhor qualidade do c´odigo gerado atrav´es da diminui¸c˜ao dos n´umero de defeitos. Validado! 13.5% menos defeitos em m´edia! Complexidade 33% menor implica melhor design! Entrega de menor quantidade de Pontos de Hist´oria. Validado! Apenas 6% menos devido ao tamanho do experimento. Cr´ıtica: Experimento n˜ao escala! ´E poss´ıvel desenvolver software confi´avel com m´etodo ´agil! Adicionar o Comportamento Excepcional n˜ao interfere na agilidade. 47 / 50
  47. 47. M´etodo ´Agil para desenvolvimento de software confi´avel Agradecimentos Agradecimentos Orientadora: Profa. Dra. Cec´ılia M. F. Rubira - IC - UNICAMP Co-orientador: Prof. Marco Vieira DEI - Universidade de Coimbra(UC) Banca da qualifica¸c˜ao: Profa. Dra. Eliane Martins - IC - UNICAMP Prof. Dr. Hans Kurt Edmund Liesenberg - IC - UNICAMP Banca da defesa: Profa. Dra. Regina L´ucia de Oliveira Moraes - FT - UNICAMP Profa. Dra. Eliane Martins - IC - UNICAMP 48 / 50
  48. 48. M´etodo ´Agil para desenvolvimento de software confi´avel Bibliografia Bibliografia I Beck, K. et al. (2001). Manifesto para Desenvolvimento ´Agil de Software. http://agilemanifesto.org/iso/ptbr/. Acessado em 18 de setembro de 2011. Brito, P. H. S. (2005). Um M´etodo para Modelagem de Exce¸c˜oes em Desenvolvimento Baseado em Componentes. Master’s thesis, IC, Unicamp. Far, B. (2007). Software Reliability Engineering for Agile Software Development. 20th IEEE Canadian Conference on Electrical and Computer Engineering CCECE, pages 694–697. Ferreira, G. R. M. (2001). Tratamento de exce¸c˜oes no desenvolvimento de sistemas confi´aveis baseados em componentes. Master’s thesis, IC, Unicamp. 49 / 50
  49. 49. M´etodo ´Agil para desenvolvimento de software confi´avel Bibliografia Bibliografia II Nord, R. L. and Tomayko, J. E. (2006). Software Architecture-Centric Methods and Agile Development. IEEE Software, 23(2):47–53. Radinger, W. and Goeschka, K. M. (2003). Agile software development for component based software engineering. Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Schwaber, K. (1995). SCRUM Development Process. In Proceedings of the 10th Annual ACM Conference on Object Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 117–134. 50 / 50
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×