SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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, 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
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
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
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
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
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
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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixCris Fidelix
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Elaine Cecília Gatto
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Claudia Melo
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareElaine Cecília Gatto
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Elaine Cecília Gatto
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumRafael Souza
 
AGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSAGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSEder Nogueira
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01Franklin Matos Correia
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxRoberto Nunes
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Elaine Cecília Gatto
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixCris Fidelix
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresAragon Vieira
 

Was ist angesagt? (20)

Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
 
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane FidelixModelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
Modelos de Processo de Desenvolvimento de Software 2 - Prof.ª Cristiane Fidelix
 
Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento Metodologias ágeis de desenvolvimento
Metodologias ágeis de desenvolvimento
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2Modelos de Processo de Software Parte 2
Modelos de Processo de Software Parte 2
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)Introdução à Programação Extrema (Extreme Programming - XP)
Introdução à Programação Extrema (Extreme Programming - XP)
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1Modelos de Processo de Software Parte 1
Modelos de Processo de Software Parte 1
 
Extreme Programming (XP) e Scrum
Extreme Programming (XP) e ScrumExtreme Programming (XP) e Scrum
Extreme Programming (XP) e Scrum
 
AGILE UNIFIED PROCESS
AGILE UNIFIED PROCESSAGILE UNIFIED PROCESS
AGILE UNIFIED PROCESS
 
Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
IBM Rational Unified Process
IBM Rational Unified ProcessIBM Rational Unified Process
IBM Rational Unified Process
 
Aula 2 - Processos de Software
Aula 2 - Processos de SoftwareAula 2 - Processos de Software
Aula 2 - Processos de Software
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4Modelos de Processo de Software Parte 4
Modelos de Processo de Software Parte 4
 
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 3 - Prof.ª Cristiane Fidelix
 
Metodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de SoftwaresMetodologia de Desenvolvimento de Softwares
Metodologia de Desenvolvimento de Softwares
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 

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

modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3spawally
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCPFrank Coelho
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcpFrank Coelho
 
[Uff]qualidade agilidade
[Uff]qualidade agilidade[Uff]qualidade agilidade
[Uff]qualidade agilidadeSti Uff
 
Trabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasTrabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasWANDERSON JONER
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascatawilsonguns
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Erika questionario pt 1 (Eng Software III).
Erika questionario pt 1 (Eng Software III).Erika questionario pt 1 (Eng Software III).
Erika questionario pt 1 (Eng Software III).Érika Santos
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilRebecca Betwel
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Fernando Vargas
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Rennan Martini
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 

Ähnlich wie WBMA2013 - Método Ágil para desenvolvimento de software confiável (20)

modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3
 
Artigo23
Artigo23Artigo23
Artigo23
 
Artigo
ArtigoArtigo
Artigo
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP1- Apresentacao Metodologia RCP
1- Apresentacao Metodologia RCP
 
1 apresentacao metodologia rcp
1  apresentacao metodologia rcp1  apresentacao metodologia rcp
1 apresentacao metodologia rcp
 
[Uff]qualidade agilidade
[Uff]qualidade agilidade[Uff]qualidade agilidade
[Uff]qualidade agilidade
 
Trabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de SistemasTrabalho individual 5 semestre Analise de Sistemas
Trabalho individual 5 semestre Analise de Sistemas
 
Subm_SamuelPereira_FINAL
Subm_SamuelPereira_FINALSubm_SamuelPereira_FINAL
Subm_SamuelPereira_FINAL
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
T1 g13.modelo cascata
T1 g13.modelo cascataT1 g13.modelo cascata
T1 g13.modelo cascata
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Erika questionario pt 1 (Eng Software III).
Erika questionario pt 1 (Eng Software III).Erika questionario pt 1 (Eng Software III).
Erika questionario pt 1 (Eng Software III).
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2Apresentação estrela vs cmmi nivel 2
Apresentação estrela vs cmmi nivel 2
 
Jucelir
JucelirJucelir
Jucelir
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)Introdução a Metodologia XP (E Xtreme Programming)
Introdução a Metodologia XP (E Xtreme Programming)
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Mehr von Alan Braz

Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...Alan Braz
 
Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Alan Braz
 
Você tem uma Personalidade Ágil?
Você tem uma Personalidade Ágil?Você tem uma Personalidade Ágil?
Você tem uma Personalidade Ágil?Alan Braz
 
Análise de sentimento durante a Copa usando Big Data
Análise de sentimento durante a Copa usando Big DataAnálise de sentimento durante a Copa usando Big Data
Análise de sentimento durante a Copa usando Big DataAlan Braz
 
É possível medir se um gigante é ágil?
É possível medir se um gigante é ágil?É possível medir se um gigante é ágil?
É possível medir se um gigante é ágil?Alan Braz
 
Lean introduction
Lean introductionLean introduction
Lean introductionAlan Braz
 

Mehr von Alan Braz (6)

Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
Distributed Development of Cognitive Systems at IBM Research - Brazil - CBSof...
 
Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...Agile2015 short paper presentation: Development of Complex Software with Agil...
Agile2015 short paper presentation: Development of Complex Software with Agil...
 
Você tem uma Personalidade Ágil?
Você tem uma Personalidade Ágil?Você tem uma Personalidade Ágil?
Você tem uma Personalidade Ágil?
 
Análise de sentimento durante a Copa usando Big Data
Análise de sentimento durante a Copa usando Big DataAnálise de sentimento durante a Copa usando Big Data
Análise de sentimento durante a Copa usando Big Data
 
É possível medir se um gigante é ágil?
É possível medir se um gigante é ágil?É possível medir se um gigante é ágil?
É possível medir se um gigante é ágil?
 
Lean introduction
Lean introductionLean introduction
Lean introduction
 

Kürzlich hochgeladen

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Kürzlich hochgeladen (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

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