• Nenhum resultado encontrado

Seminário - Two Case Studies of Open Source Software Development: Apache and Mozilla

N/A
N/A
Protected

Academic year: 2021

Share "Seminário - Two Case Studies of Open Source Software Development: Apache and Mozilla"

Copied!
33
0
0

Texto

(1)

Seminário - Two Case Studies of Open Source

Software Development: Apache and Mozilla

Setembro de 2014 Vagner Clementino vagnercs@dcc.ufmg.br

(2)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Agenda

Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências

(3)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino 2 Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências

Autores

Sobre os autores

I Audris Mockus: Professor do Departamento de Engenharia Elétrica e Ciência da Computação da Universidade de Tennessee.

I Roy T. Fielding: Um dos autores da especificação HTTP e co-fundador do projeto Apache.

I James D. Herbsleb: Professor da Faculdade de Ciência da Computação na Universidade Carnegie Mellon.

(4)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 3 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Contexto

Qualidade dos OSS

É inegável a qualidade de alguns Open Source Software (OSS):

(5)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 4 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências

Contexto

Apache Market Share

(6)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 5 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Contexto

Firefox Market Share

Firefox Market Share - 06/2014 [STATCOUNTER, 2014] http://news.netcraft.com/archives/category/

(7)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores 6 Contexto Motivação Objetivos Metodologia Resultados Hipóteses Referências

Contexto

Características do Desenvolvimento de OSS

O processo de desenvolvimento de OSS possui características próprias:

I Sistemas OSS são contruídos por um grande número de voluntários;

I O trabalho não é atribuído, o voluntário tem a possibilidade de escolher em que contribuir;

I Inexistência de desenho à nível de sistema, ou mesmo um desenho detalhado;

I Não existe plano, cronograma ou lista de entregáveis;

(8)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto 7 Motivação Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Motivação

O Processo de Desenvolvimento de OSS

O processo de desenvolvimento de OSS é equivalente ou superior ao modo tradicional:

I Defeitos são localizados e resolvidos em menor tempo; "Linus’s Law - [Raymond, 1999]

I O código é escrito com mais cuidado e criatividade, tendo em vista que o desenvolvedor trabalha somemte com aquilo que ele gosta

Apesar do processo de OSS resultar em softwares de qualidade, existem autores que questionam a sua

aplicabilidade em outros contextos. [Bollinger et al., 1999] e [McConnell, 1999].

(9)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto 8 Motivação Objetivos Metodologia Resultados Hipóteses Referências

Motivação

I Inexistências de estudos empíricos sobre o processo dos OSS

I OSS apresenta-se como um grande desafio para a economia e para os métodos de desenvolvimento

tradicional,portanto, é fundamental para compreendê-lo e avaliá-lo.

(10)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação 9 Objetivos Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Objetivos

I Analisar o processo de desenvolvimento de um OSS (Parte 01 - Apache);

I Comparar o OSS com relação a outros softwares que utilizam o processo comercial/tradicional de

desenvolvimento (Parte 01 - Apache)

I Propor um conjunto de hipóteses e validá-las em outro OSS (Parte 02 - Mozilla)

(11)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 10 Metodologia Resultados Hipóteses Referências

Metodologia

Avaliando o processo

Problema operacional: Como analisar um processo de software que não está formalmente definido?

I Definição de um rascunho do processo;

I Validação do rascunho junto aos core-members do Apache.

(12)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 11 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Metodologia

Apache Dataset

Lista de e-mail dos desenvolvedores:

I Data;

I Remetente

I Assunto

I corpo da mensagem

Arquivos do sistema de controle de versão - CVS

I Data da alteração,

I Login do desenvolvedor,

I Arquivos alterados

I Número de linhas adicionadas ou deletadas por arquivo

I Descrição da mudança

I Pessoa que submeteu ou verificou a mudança

I Número do "Problem Report"(PR)

I “fixes”

(13)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 12 Metodologia Resultados Hipóteses Referências

Metodologia

Apache Dataset

Arquivos do banco de dados de problemas relatados - BUGDB:

I Número do PR

I Módulo afetado

I Situação (open, suspended, analyzed, feedback, closed)

I Nome de quem submeteu

I Data

(14)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 13 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Metodologia

Processo Baseline

Utilizou-se um processo, denominado Processo de Desenvolvimento Comercial, para fins de comparação:

I Alteração evolução inicia-se através de uma Requisição de Modificação - MR

I MR define um trabalho a ser feito em um módulo específico

I Cabe a um gerente avaliar a validade de uma MR e atribuí-la ao desenvolvedor

I O desenvolvedor recebe a MR, realiza as alterações e devolve a quem o encaminhou

I Inspeções de código, testes de funcionalidade, integração, testes de sistema e implantação da modificação são realizadas.

(15)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 14 Metodologia Resultados Hipóteses Referências

Metodologia

Softwares de Baseline

Para fins de comparação utilizou-se de software que utilizam o Processo de Desenvolvimento Comercial:

I Projetos da área de telecomunicaçoes:

I Projeto A - Software para nodos de redes backbone do tipo SONET ou SDH

I Projeto B - Software para manipulação de redes sem fio

I Projetos C, D, e E - Softwares para a administração de operações

I Projetos similares ao Apache em tamanho e tempo de desenvolvimento

(16)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 15 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Metodologia

Dataset do Processo Comercial

Os dados do Processo de Desenvolvimento Comercial foram obtidos através dos softwares que o dão suporte:

I Extended Change Management System (ECMS)

I Gerencia o controle de mudanças

I Dados Registrados:

I Data de abertura da MR

I Descrição da MR

I Histórico da MR

I Data de conclusão da MR

I Source Code Control System (SCCS)

I Versionamento

I Dados registrados:

I Arquivo alterado

I Data do ’check-in’

(17)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 16 Metodologia Resultados Hipóteses Referências

Metodologia

Questões de Pesquisa

Foram propostas as seguintes questões de pesquisa:

I Q1: Como funciona o processo utilizado para desenvolver Apache?

I Q2: Quantas pessoas escrevem novas

funcionalidades do Apache? Quantas pessoas relatam problemas? Quantas pessoas repararam defeitos?

I Q3: As funções dentro do processo são realizadas por grupos distintos de pessoas, ou seja, algumas as pessoas assumem um único papel? Será que um grande número de pessoas participam igualmente

(18)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos 17 Metodologia Resultados Hipóteses Referências DCC/ICEX/UFMG

Metodologia

Questões de Pesquisa

Foram propostas as seguintes questões de pesquisa:

I Q4: Em quais partes do código um voluntário pode trabalhar? Existe algum tipo propriedade (lock) definida em nível de arquivo ou módulo?

I Q5: Qual é a densidade de defeitos no código do Apache?

I Q6: Quanto tempo demorou-se para resolver os problemas? Os problemas de maior prioridade form resolvidos mais rápido do que os de baixa

prioridade? O intervalo de resolução diminuiu ao diminuiu ao longo do tempo?

(19)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 18 Resultados Hipóteses Referências

Resultados

Q1: Como funciona o processo utilizado para desenvolver Apache?

I Papéis e Responsabilidades:

I Apache Group (AG): 10/15 pessoas

I Definem a inclusão de qualquer mudança no código I Definem se um voluntário poderá ficar responsável

(20)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 19 Resultados Hipóteses Referências DCC/ICEX/UFMG

Resultados

Q1: Como funciona o processo utilizado para desenvolver Apache?

I Identificando o trabalho a ser feito:

I Mudanças e corrreções são identificadas na mailing list, BUGDB e USENET newsgroups

I Alterações apenas são realizadas com aprovação de algum membro do AG

(21)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 20 Resultados Hipóteses Referências

Resultados

Q1: Como funciona o processo utilizado para desenvolver Apache?

I Atribuindo e realizando o trabalho:

I Desenvolvedores tendem a trabalhar em problemas que são identificados com as áreas do código com o qual eles estão mais familiarizados

I Tal estratégia cria um implícito "code ownership"de partes do servidor que foram desenvolvidas ou mantidas por alguém do AG

(22)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 21 Resultados Hipóteses Referências DCC/ICEX/UFMG

Resultados

Q1: Como funciona o processo utilizado para desenvolver Apache?

I Testes e Inspeções

I Apenas realizar uma manutenção o desenvolvedor realizar testes locais (Testes Unitários

I Posteriormente o código ou é revisado por alguém do AG, ou é disponibilidade para revisão pela comunidade

(23)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 22 Resultados Hipóteses Referências

Resultados

Q2: Quantas pessoas escrevem novas funcionalidades do Apache? Quantas pessoas relatam problemas? Quantas pessoas repararam defeitos?

I 400 pessoas trabalham no desenvolvimento como um todo

I 182 pessoas contribuíram com 695 correções

I 249 pessoas contribuíram com 6092 submissão de código

(24)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 23 Resultados Hipóteses Referências DCC/ICEX/UFMG

Resultados

Q3: As funções dentro do processo são realizadas por grupos distintos de pessoas, ou seja, algumas as pessoas assumem um único papel?

(25)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 24 Resultados Hipóteses Referências

Resultados

Q3: Será que um grande número de pessoas participam igualmente dessas atividades, ou um pequeno número de pessoas que fazem a maioria do trabalho?

(26)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 25 Resultados Hipóteses Referências DCC/ICEX/UFMG

Resultados

(27)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 26 Resultados Hipóteses Referências

Resultados

Q4: Em quais partes do código um voluntário pode trabalhar? Existe algum tipo propriedade (lock) definida em nível de arquivo ou módulo?

I Dos 42 arquibos ".c"com mais de 30 alterações:

I 40 tiveram pelo menos 02 responsáveis por 10% das alterações

I 20 tiveram pelos menos 04 responsáveis por 10% das

alterações

I O "ownership"de código é uma questão de

(28)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 27 Resultados Hipóteses Referências DCC/ICEX/UFMG

Resultados

Q5: Qual é a densidade de defeitos no código do Apache?

(29)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia 28 Resultados Hipóteses Referências

Resultados

Q6: Quanto tempo demorou-se para resolver os problemas? Os problemas de maior prioridade form resolvidos mais rápido do que os de baixa prioridade? O intervalo de resolução diminuiu ao diminuiu ao longo do tempo?

(30)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados 29 Hipóteses Referências DCC/ICEX/UFMG

Hipóteses

I Hipótese 1: A Evolução de um código aberto terá um núcleo de desenvolvedores que controla a base de código. Este núcleo não será maior do que 10-15 pessoas, e irá criar, aproximadamente, 80% ou mais das novas funcionalidades.

I Hipótese 2: Para os projetos que são tão grandes que 10-15 desenvolvedores não pode escrever 80% do código em um prazo razoável, uma política estrita de propriedade do código terá que ser adotada para separar o trabalho dos outros

grupos, criando, com isso, vários projetos de OSS relacionados.

I Hipótese 3: Em projetos de código aberto

bem-sucedidos, um grupo maior, de aproximadamente uma ordem de magnitude do núcleo irá reparar defeitos; um grupo ainda maior (por outra ordem de grandeza) irá relatar problemas.

(31)

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados 30 Hipóteses Referências

Hipóteses

I Hipótese 4: Projetos de código aberto que tem um forte núcleo de desenvolvedores, mas que não consiga alcançar um grande número de

contribuintes para além desse núcleo, será capaz de criar novas funcionalidades, contudo não irá sobreviver tendo em vista a falta de recursos destinados a encontrar e reparar defeitos.

I Hipótese 5: A densidade de defeitos em versões de código aberto será geralmente menor do que código comercial.

I Hipótese 6: Em projetos OSS bem sucedidos os desenvolvedores também serão usuários do

(32)
(33)

31

Seminário: Two case studies of open source software development: Apache and Mozilla Vagner Clementino Autores Contexto Motivação Objetivos Metodologia Resultados Hipóteses 31 Referências DCC/ICEX/UFMG

Referências

[Bollinger et al., 1999] Bollinger, T., Nelson, R., Self, K. M., and Turnbull, S. J. (1999).

Open-source methods: Peering through the clutter.

IEEE Software, 16(4):8+.

[Herbsleb and Grinter, 1999] Herbsleb, J. D. and Grinter, R. E. (1999).

Splitting the organization and integrating the code: Conway’s law revisited.

In Proceedings of the 21st International Conference on Software Engineering, ICSE ’99, pages 85–95, New York, NY, USA. ACM.

[McConnell, 1999] McConnell, S. (1999).

Open source methodology: Ready for prime time?

IEEE Software, 16(4):6–8.

[NETCRAFT, 2014] NETCRAFT (2014).

Web Server Developer - Market Share of Computers.

URL: http://news.netcraft.com/archives/category/ web-server-survey/ (Acessado em 21/09/2014).

[Raymond, 1999] Raymond, E. S. (1999). The Cathedral and the Bazaar.

Referências

Documentos relacionados

Resumo: Aborda-se neste artigo o tema do estupro de vulnerável, que é sucessor normativo do chamado estupro por violência presumida, especificamente no ponto em que trata da

Embora estimulada nos dias atuais em cursos de formação inicial, observa-se que ainda há resistência de alguns professores acerca da importância da formação continuada, isto se

Este trabalho teve como objectivo a recolha e a análise do património cultural, numa freguesia onde não existe qualquer tipo de investigação sobre esta matéria. Para além da

Assim, os cuidadores informais com pior saúde mental assumem como características predominantes ser do sexo feminino, de maior idade, com predomínio de

Objetivo: O impacto da exposição a fatores de risco psicossocial na qualidade da saúde ocupacional é reconhecido e visto como uma prioridade na gestão da Saúde

Treatment of allylic bromides 2a-h (readily available from the bromination of Morita-Baylis- Hillman adducts 1 with LiBr in acidic medium 12a,c ) with 0.95 equiv of thiourea 4a

Resumo: Se aceitarmos que pictos, bretões e scotos eram povos celtas e que a Bretanha e a Irlanda do século V depois de Cristo eram habitadas por populações célticas,

Diante disso, como proposta para minimizar essa situação, tenho tra- zido artigos científicos e outros materiais de apoio rela- cionados às situações vivenciadas no nosso