WBMA2013 - Método Ágil para desenvolvimento de software confiável
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. 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. 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. 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. 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. 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
8. 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
9. 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
10. 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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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
17. 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
18. 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
19. 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
20. 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
21. 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
22. 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
23. 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
24. 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
25. 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
26. 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
27. 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
28. 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
29. 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
30. 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
31. 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
32. 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
33. 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
34. 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
35. 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
36. 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
37. 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
38. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
O Problema
Modelo de Dados
38 / 50
39. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Atividades
39 / 50
40. M´etodo ´Agil para desenvolvimento de software confi´avel
Experimento controlado
Execu¸c˜ao
Agenda
40 / 50
41. 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
42. 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
43. 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
44. 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
45. 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
46. 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
47. 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
48. 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
49. 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
50. 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