Sunteți pe pagina 1din 50

Profs. Rosana Braga e Paulo C.

Masiero
ICMC-USP 1. 2017
1. Motivao

2. Conceitos Bsicos

3. Engenharia de Software Experimental


Revoluo na tecnologia da informao:
Software faz parte da maioria dos produtos
Dificuldades no desenvolvimento: processo
criativo
Funcionalidades faltando, custos excedidos, prazos
no cumpridos e qualidade baixa
Surge a Engenharia de Software:
IEEE [84] software engineering means application
of a systematic, disciplined, quantifiable approach
to development, operation and maintenance of
software
Engenharia de software a disciplina que
estuda o desenvolvimento e a manuteno de
software em escala industrial.
Processos
Tcnicas
Mtodos
Ferramentas
... para gerncia, desenvolvimento,
manuteno, reengenharia (etc.) de software
Adotar novas tecnologias
Testar se uma nova tecnologia til
Avaliar o impacto de uma tecnologia
COMO DECIDIR O QUE FAZER?
Perguntar a um perito
Pesquisar na literatura
Seguir a prtica da indstria, ou ....
Realizar um experimento
Engenharia de Software Experimental

O Uso da abordagem cientfica para


o desenvolvimento, evoluo e
manuteno de software

Usar mtodos cientficos para fazer pesquisa e para tomar


decises sobre mudanas na forma de desenvolver software
Quais so as suas metas e qual a sua
situao?
Existe evidncia na literatura e/ou na
indstria de como esta evidncia se aplica
SUA situao?
Se no existe evidncia suficiente, que tipo
de avaliao experimental voc deve fazer?
1. Motivao

2. Conceitos Bsicos

3. Engenharia de Software Experimental


O Paradigma experimental de uma disciplina
evolui pela aplicao do ciclo: modele,
experimente, aprenda;
Normalmente comea com a observao e o
registro do que observado, e evolui para a
manipulao de variveis controlveis e a
observao de seu efeito em variveis de
interesse.
Para entender uma disciplina necessrio a
construo de modelos, no s de produtos mas
tambm de processos e domnios de aplicao;
Para testar se a compreenso est correta
preciso testar esses modelos, isto implica em
experimentao;
Ao se analisar resultados experimentais,
aprendemos e consolidamos esse conhecimento
em modelos mais sofisticados;
Este paradigma experimental usado em muitas
reas de conhecimento: fsica, biologia,
medicina, qumica, manufatura, etc.
Engenharia de software (tambm) uma
disciplina de laboratrio;
Devem existir profissionais cujo papel construir
cada vez mais barato e mais rpido sistemas
cada vez melhores, utilizando o conhecimento
disponvel;
Devem existir pesquisadores que tentem
entender a natureza dos processos e produtos de
software e da relao entre os dois no
desenvolvimento e manuteno de sistemas;
Comparada com outras disciplinas, a Engenharia
de Software uma disciplina muito nova (1967),
e a rea de experimentao ainda est em sua
infncia.
1. Motivao

2. Conceitos Bsicos

3. Engenharia de Software Experimental


Paradigma Analtico
Baseado em matemtica
Prope uma teoria formal ou um conjunto de axiomas
Deriva matematicamente um conjunto de resultados
Est no cerne da cincia da computao e expe a
herana matemtica de nossa rea
Paradigma Experimental
Observa o mundo ou solues existentes;
Prope um modelo de comportamento ou soluo
melhor;
Mede e analisa modelos experimentalmente
Valida (ou refuta) hipteses e modelos
Repete o processo para evoluir o conhecimento
Observao
Projeto experimental
Coleta de dados
Anlise qualitativa ou quantitativa
Avaliao do objeto de estudo (processo ou
produto )
Anlise Quantitativa
Medio controlada (normalmente intrusiva)
Objetiva
Orientada a Verificao
Anlise Qualitativa
Observao naturalstica (normalmente no
intrusiva)
Entrevistas e questionrios (normalmente
intrusivas)
Subjetiva
Orientada a descoberta
Um estudo o ato de descobrir algo
desconhecido ou de testar uma hiptese, pode
incluir todos os tipos de anlise quantitativa e
qualitativa.
Estudos Experimentais
Voltado ao teste de hipteses
So geralmente quantitativos
Experimento controlados ou quase-experimentos
Estudos Observacionais
Voltado compreenso e descoberta
Geralmente so mais qualitativos que quantitativos
Pesquisa qualitativa ou semi-qualitativa, entrevistas e
levantamentos
O que estudar e porque estudar?

Que tipo de estudo experimental realizar?


Qual ser o objeto de estudo
Ex. um processo ou produto
Qual a finalidade do estudo?
Caracterizar (o qu est acontecendo?)
Avaliar ( bom?)
Prever ( possvel estimar o comportamento futuro?
Controlar ( possvel manipular eventos e situaes?)
Melhorar ( possvel melhorar eventos e situaes?)
Qual o foco?
Quais aspectos e variveis do objeto de estudo so de
meu interesse?
Qual a perspectiva?
Quais so os grupos de pessoas interessadas?
O processo proposto por Wohlin et al. focado
em experimentos controlados, mas as mesmas
atividades bsicas podem ser usadas para um
estudo emprico (estudo de caso).
Para outros estudos, precisa ser adaptado para
algumas tarefas especficas. Ex. em um survey,
definir se vai fazer a pesquisa por e-mail.
Como ponto de partida, preciso ter convico
que um experimento apropriado para a questo
que se pretende investigar. Isso pode no ser
bvio!
Reviso sistemtica.
Levantamento de campo (pesquisa de
opinio, survey).
Estudo de caso.
Experimento controlado.
Geralmente uma investigao retrospectiva.
Exemplo: saber os resultados de uma tcnica ou
ferramenta que j vem sendo usada h algum
tempo
A coleta de dados feita usualmente por
questionrios e entrevistas.
feita considerando uma amostra
significativa da populao a ser estudada.
Os dados colhidos so analisados e levam a
concluses, que podem depois serem
generalizadas.
Objetivos de um survey:
Descritivo
Para permitir explicar ou fazer asseres sobre a
populao.
Explicativo
Ex: porque alguns desenvolvedores preferem uma
tcnica enquanto outros preferem outra?
Exploratrio
Um pr-estudo de um estudo mais profundo.
So usados para monitorar projetos,
atividades e atribuies.
Os dados so coletados para o objetivo
especfico do estudo.
Podem ser usadas anlises estatsticas
um estudo observacional.
O nvel de controle mais baixo do que em
um experimento.
Um fator confunde quando torna impossvel
distinguir entre dois fatores.
Exemplo: o melhor resultado ocorre porque a
ferramenta melhor ou porque quem a usou
tem maior experincia?
necessrio minimizar o efeito desses
fatores.
Vis do estudo (bias)
Ameaa validade do estudo (threats to validity)
geralmente conduzido em um ambiente de
laboratrio, que permite maior controle.
Os sujeitos experimentais devem ser escolhidos
de forma aleatria. Quando isso no possvel,
usam-se quase-experimentos.
O objetivo manipular uma ou mais variveis e
manter fixas todas as outras.
O efeito da manipulao medido e os
resultados so analisados estatisticamente.
Exemplo: comparar dois mtodos de inspeo
diferentes.
Os resultados podem ser generalizados
Vises e ameaas validade do experimento
devem ser evitados/minimizados.
Confirmar teorias, i.e., testar teorias
existentes.
Confirmar a sabedoria convencional.
Checar/testar relacionamentos
Avaliar a preciso de modelos
Validar medidas (assegurar que a medida
mede o que deve medir)
On the Success of Empirical Studies in
the International Conference on
Software Engineering (ICSE); C. Zanier,
G. Melnik, F. Maurer, ICSE, 2006.
Comece por definir o que ser investigado e
por qual motivo investigar.
Exemplo: Avaliar se o mtodo de projeto XYZ
produz resultados melhores que o mtodo
ABC.
Tambm chamado de hiptese experimental
(K,P&P)
Tenha em mente a razo ou a finalidade para
a qual voc pretende fazer essa avaliao e
que os dados coletados podem confirmar ou
refutar que XYZ melhor que ABC.
Defina objetivos em termos quantitativos
Em vez de: Avaliar se o mtodo de projeto XYZ
produz resultados melhores que o mtodo ABC
Prefira: O cdigo produzido pelo mtodo XYZ
possui um menor nmero de defeitos por milhares
de linhas de cdigo fonte que o mtodo ABC
Defina a relao entre conceitos e medidas
No exemplo anterior o objetivo medir a qualidade
e a medida nmero de defeitos usada para isto.
A relao entre o que se quer e o que se mede deve
ser documentada e eventualmente explicitada em
modelos de relacionamento.
Estudo experimental
-- Variveis dependentes
-- Variveis independentes

(Wohlin et al)
Varivel dependente: o resultado, a
varivel estudada para avaliar o efeito das
mudanas nas variveis independentes
Ex. nmero de defeitos por milhares de linhas de
cdigo
Geralmente h apenas uma varivel
dependente em um experimento.
Todas as variveis que so manipuladas e
controladas so chamadas de variveis
independentes.
As variveis independentes, que tero seus efeitos de
mudana estudados, so chamadas de fatores.
Um tratamento um valor particular de um fator.
As outras variveis independentes so mantidas com um
valor fixo. Elas podem ser dos seguintes tipos:
Controle: varivel que ser controlada no estudo causa-efeito .
Tratamento: o mtodo XYZ que ser avaliado
Controle: o status quo, i. , o mtodo com o qual voc quer comparar.
De estado: medidas que descrevem o sujeito experimental, objetos
e condies. Ex. experincia do projetista
De contexto: varivel de estado que assume somente um valor no
estudo experimental, ex., o tamanho do cdigo pequeno, os
participantes do experimento so todos estudantes.
Quer-se estudar o efeito de um novo mtodo
de desenvolvimento sobre a produtividade do
pessoal. Ex. Um mtodo OO est sendo
introduzido.
Varivel dependente: produtividade
Variveis independentes: o mtodo de
desenvolvimento, a experincia do pessoal,
ferramentas de apoio, o ambiente, etc.
Exemplos na biologia e na sade.
Sujeitos experimentais e objetos experimentais
so as pessoas ou coisas envolvidas em um
experimento. Ex. pessoas que usam um mtodo
ou ferramenta (s.e.) e programas, algoritmos e
problemas nos quais os mtodos ou ferramentas
so aplicados (o.e.).
Muitas vezes usa-se uma varivel dependente
substituta (surrogate) para medir, ao invs de
uma medida direta. Isso pode prejudicar a
qualidade dos resultados obtidos. Ex. medir
confiabilidade contando-se o nmero de falhas
reveladas durante o teste.
Determinar o grau de controle sobre as variveis
independentes
Se a coleta de dados ocorre depois do fato e no se tem
nenhum controle , ento deve-se fazer um survey;
Se os dados so coletados enquanto o desenvolvimento ou
manuteno est acontecendo, mas h controle bsico
sobre as variveis , ento deve-se realizar um estudo de
caso;
Se o objeto de anlise evolui enquanto os dados esto
sendo coletados, ento deve-se realizar uma pesquisa-
ao;
Se h controle sobre a maioria das variveis e controle
sobre os participantes voc deve realizar um experimento
controlado.
Suponha que se deseja avaliar o efeito de um
mtodo de projeto sobre a qualidade do
software resultante
Se voc no tem controle sobre quem est
usando qual mtodo, ento deve-se realizar
um estudo de caso para documentar os
resultados;
Se voc pode controlar quem usa cada
mtodo, quando e como estes mtodos so
usados, ento deve-se realizar um
experimento controlado.
In Vivo
Envolve pessoas no seu prprio ambiente de trabalho
em condies realistas de trabalho
In Vitro
Realizado em condies controladas tais como em um
laboratrio ou um grupo fechado
In Virtuo
Realizado em condies controladas nas quais os
participantes interagem com modelos computacionais
da realidade (simuladores)
In Silico
Participantes e o mundo real so descritos por modelos
computacionais (dinmica de sistemas)
Experimentos in-vitro so feitos em
laboratrios, simulando a forma como eles
aconteceriam no mundo real;
Experimentos in-vivo so feitos no mundo
real e monitorados medida em que o uso do
objeto de estudo realmente ocorre;
Em engenharia de software, geralmente
experimentos controlados so feitos in-vitro
e estudos de caso so feitos in-vivo.
O processo proposto por Wohlin et al. focado
em experimentos controlados, mas as mesmas
atividades bsicas podem ser usadas para um
estudo emprico (estudo de caso).
Para outros estudos, precisa ser adaptado para
algumas tarefas especficas. Ex. em um survey,
definir se vai fazer a pesquisa por e-mail.
Como ponto de partida, preciso ter convico
que um experimento apropriado para a questo
que se pretende investigar. Isso pode no ser
bvio!
Wohlin et al, 2012
Outra organizao do processo

Manoel Mendona
1. Seleo do Contexto
2. Formulao das hipteses
3. Seleo das Variveis
4. Seleo dos Sujeitos
5. Escolha do tipo de design (estrutura)
6. Instrumentao
7. Avaliao da Validade
Anlise e
Interpretao
Preparao
Execuo Estatstica descritiva
Validao dos Dados Reduo do
conjunto de dados
Teste de hipteses
Quando o projeto termina, os resultados
devem ser relatados para diferentes
audincias.
Artigo para conferncia ou peridico
Um pacote para facilitar a replicao do
experimento
Um relatrio completo sobre o experimento
Material educacional
ESELAW:
http://lens.cos.ufrj.br:8080/eselaw
ESEM:
http://www.esem.org
International Software Engineering Research
Network (ISERN):
http://www.iese.fhg.de/ISERN/
Experimental Software Engineering Latin-
American Network (ESELAN) discussion list :
http://listas.cos.ufrj.br/mailman/listinfo/eselan-l
Wohlin, C. Experimentation in Software
Engineering, Kluwer Academic Publishers,
2012.
Disponvel em:
https://link.springer.com/book/10.1007%2F978-3-642-29044-2
(tem que estar logado na USP)
Artigos a serem discutidos em classe.
Identificao (do experimento) e Definio (de
escopo)

Dvidas?
Rosana: rtvb@icmc.usp.br
Sala 4-134
Telefone : 3373 8625

S-ar putea să vă placă și