SlideShare a Scribd company logo
1 of 15
Download to read offline
Qualidade de Código
 Mantendo o seu Projeto de
 Software Livre sob Controle

          Antonio Terceiro

      softwarelivre.org/terceiro
O que é Qualidade?
A natureza do
Design de Software
“Qualidade”
     depende do ponto
         de vista!
●   Do usuário: satisfação de requisitos, ausência de bugs,
    frequência de releases, bom desempenho, etc.
●   Do desenvolvedor: facilidade de entender o código,
    flexibilidade para modificar o código, abrangência da
    suíte de testes, etc.
●   ...
Nossa noção de
   qualidade

 Atributos
        de
Qualidade
Tamanho
Acoplamento
Coesão
Separação de
 Interesses
Métricas
●   Tamanho:
    ●   SLOC
    ●   Número de módulos
●   Acoplamento: CBO
●   Coesão: LCOM4
●   Separação de Interesses:
    ●   CDOC (Espalhamento)
    ●   CIBC (Entrelaçamento)
Usando métricas
Analisando Código
analizo
●   Baseado no egypt, criado por Andreas
    Gustafsson
    ●   (http://www.gson.org/egypt/)
●   Características
    ●   Análise de código fonte multi-linguagem
    ●   Funcionalidades
    ●   Extração de chamadas entre funções e entre
        módulos
●   http://softwarelivre.org/mezuro/analizo
analizo – aplicações
●   Extrator baseado no Doxygen
    ●   Por Joenio Costa (UCSAL)
●   Uso para geração de matrizes de evolução
    ●   Por Vagner Amaral (UFBA)
●   Análise de mudanças em projetos de software livre
    ●   Por Antonio Terceiro, Luiz Romário Rios e Christina Chavez
        (UFBA)
●   Análise de métricas de 6773 projetos do SourceForge.net
    ●   Por Paulo Meirelles, Carlos Santos Jr, Cláudia Melo, João M.
        Miranda, Fábio Kon (USP), Antonio Terceiro, Christina Chavez
        (UFBA)
Obrigado


softwarelivre.org/terceiro

More Related Content

Viewers also liked

Dataprev prova interatividade na TV Digital
Dataprev prova interatividade na TV DigitalDataprev prova interatividade na TV Digital
Dataprev prova interatividade na TV DigitalCampus Party Brasil
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Campus Party Brasil
 
O que muda na Comunicação Social com a TV Digital?
O que muda na Comunicação Social com a TV Digital?O que muda na Comunicação Social com a TV Digital?
O que muda na Comunicação Social com a TV Digital?Campus Party Brasil
 
Coleta de configurações com o KORUJA OpenCMDB
Coleta de configurações com o KORUJA OpenCMDBColeta de configurações com o KORUJA OpenCMDB
Coleta de configurações com o KORUJA OpenCMDBCampus Party Brasil
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpCampus Party Brasil
 
Desenvolvendo com Segurança em PHP
Desenvolvendo com Segurança em PHPDesenvolvendo com Segurança em PHP
Desenvolvendo com Segurança em PHPCampus Party Brasil
 
RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...
RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...
RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...Campus Party Brasil
 
Azure Services Platform Overview
Azure Services Platform OverviewAzure Services Platform Overview
Azure Services Platform OverviewCampus Party Brasil
 
Controle de servomotores para o avatar robótico
Controle de servomotores para o avatar robóticoControle de servomotores para o avatar robótico
Controle de servomotores para o avatar robóticoCampus Party Brasil
 

Viewers also liked (20)

Dataprev prova interatividade na TV Digital
Dataprev prova interatividade na TV DigitalDataprev prova interatividade na TV Digital
Dataprev prova interatividade na TV Digital
 
ApresentaçãO Mvc
ApresentaçãO MvcApresentaçãO Mvc
ApresentaçãO Mvc
 
Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?Como ganhar dinheiro no mundo mobile?
Como ganhar dinheiro no mundo mobile?
 
Realidade Aumentada
Realidade AumentadaRealidade Aumentada
Realidade Aumentada
 
O que muda na Comunicação Social com a TV Digital?
O que muda na Comunicação Social com a TV Digital?O que muda na Comunicação Social com a TV Digital?
O que muda na Comunicação Social com a TV Digital?
 
A Tecnologia Java Livre
A Tecnologia Java LivreA Tecnologia Java Livre
A Tecnologia Java Livre
 
Tks Dinamica Visual
Tks Dinamica VisualTks Dinamica Visual
Tks Dinamica Visual
 
Coleta de configurações com o KORUJA OpenCMDB
Coleta de configurações com o KORUJA OpenCMDBColeta de configurações com o KORUJA OpenCMDB
Coleta de configurações com o KORUJA OpenCMDB
 
Zf campus party_2011
Zf campus party_2011Zf campus party_2011
Zf campus party_2011
 
Campusparty2011dl
Campusparty2011dlCampusparty2011dl
Campusparty2011dl
 
Social games
Social gamesSocial games
Social games
 
Mc1 JAVA
Mc1 JAVAMc1 JAVA
Mc1 JAVA
 
ClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs PhpClusterizaçãO De AplicaçõEs Php
ClusterizaçãO De AplicaçõEs Php
 
Desenvolvendo Para O Orby V3
Desenvolvendo Para O Orby V3Desenvolvendo Para O Orby V3
Desenvolvendo Para O Orby V3
 
8 d iniciando_iphone_ios4
8 d iniciando_iphone_ios48 d iniciando_iphone_ios4
8 d iniciando_iphone_ios4
 
Desenvolvendo com Segurança em PHP
Desenvolvendo com Segurança em PHPDesenvolvendo com Segurança em PHP
Desenvolvendo com Segurança em PHP
 
RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...
RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...
RedegrafosocialGrafos Sociais: porque não devem ser desprezados pelas corpora...
 
Azure Services Platform Overview
Azure Services Platform OverviewAzure Services Platform Overview
Azure Services Platform Overview
 
Campusparty
CampuspartyCampusparty
Campusparty
 
Controle de servomotores para o avatar robótico
Controle de servomotores para o avatar robóticoControle de servomotores para o avatar robótico
Controle de servomotores para o avatar robótico
 

Similar to Usp Ufba Qualidade De Codigo

Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...minastestingconference
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsSamanta Cicilia
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareFábio Nogueira de Lucena
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementRamon Durães
 
Caracterização de um Processo de Software para Projetos de Software Livre
Caracterização de um Processo de Software para Projetos de Software LivreCaracterização de um Processo de Software para Projetos de Software Livre
Caracterização de um Processo de Software para Projetos de Software LivreWilliam S. Rodriguez
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...Emmanuel Neri
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorMarcos Pereira
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareEduardo Santos
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Application Insights
Application InsightsApplication Insights
Application InsightsCDS
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricaselliando dias
 
Web Development em 2015
Web Development em 2015Web Development em 2015
Web Development em 2015Emanuel Santos
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeAndré Abe Vicente
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação DiversitáriaLaís Berlatto
 
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...Rafael Chiavegatto
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarOpencadd Advanced Technology
 
Sonarqube
SonarqubeSonarqube
SonarqubeCDS
 

Similar to Usp Ufba Qualidade De Codigo (20)

Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
Samanta Cicilia - MTC - Importância de Testes Automatizados para Continuous D...
 
Importância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOpsImportância de Testes Automatizados para Continuous Delivery & DevOps
Importância de Testes Automatizados para Continuous Delivery & DevOps
 
Kyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de softwareKyrios: Infra-estrutura livre para desenvolvimento de software
Kyrios: Infra-estrutura livre para desenvolvimento de software
 
jCompany X Geradores de Códigos
jCompany X Geradores de CódigosjCompany X Geradores de Códigos
jCompany X Geradores de Códigos
 
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle ManagementCampus Party Brasil 2010 - ALM - Application Lifecycle Management
Campus Party Brasil 2010 - ALM - Application Lifecycle Management
 
Caracterização de um Processo de Software para Projetos de Software Livre
Caracterização de um Processo de Software para Projetos de Software LivreCaracterização de um Processo de Software para Projetos de Software Livre
Caracterização de um Processo de Software para Projetos de Software Livre
 
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
O comparativo de arquiteturas de software monolíticas em relação a arquitetur...
 
A Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao SêniorA Carreira de Desenvolvedor: do Jr ao Sênior
A Carreira de Desenvolvedor: do Jr ao Sênior
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Ciclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de SoftwareCiclo de Vida Clássico da Engenharia de Software
Ciclo de Vida Clássico da Engenharia de Software
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Application Insights
Application InsightsApplication Insights
Application Insights
 
Eng.Software-Métricas
Eng.Software-MétricasEng.Software-Métricas
Eng.Software-Métricas
 
Web Development em 2015
Web Development em 2015Web Development em 2015
Web Development em 2015
 
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a QualidadeERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
ERES 2018 - Microserviços: Desafios para Lidar com a Qualidade
 
Programação Diversitária
Programação DiversitáriaProgramação Diversitária
Programação Diversitária
 
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
Automatização de testes funcionais em dispositivos móveis utilizando a técnic...
 
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizarUtilização da Engenharia de Requisitos: Onde, quando e como utilizar
Utilização da Engenharia de Requisitos: Onde, quando e como utilizar
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 

More from Campus Party Brasil

Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineCampus Party Brasil
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosCampus Party Brasil
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesCampus Party Brasil
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solarCampus Party Brasil
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custoCampus Party Brasil
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresCampus Party Brasil
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXCampus Party Brasil
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusivaCampus Party Brasil
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreCampus Party Brasil
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito ImpressoCampus Party Brasil
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasCampus Party Brasil
 

More from Campus Party Brasil (20)

Wordpress
WordpressWordpress
Wordpress
 
Buracos negros
Buracos negrosBuracos negros
Buracos negros
 
Programação para Atari 2600
Programação para Atari 2600Programação para Atari 2600
Programação para Atari 2600
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Técnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivosTécnicas forenses para a recuperação de arquivos
Técnicas forenses para a recuperação de arquivos
 
Tempestades solares: mitos e verdades
Tempestades solares: mitos e verdadesTempestades solares: mitos e verdades
Tempestades solares: mitos e verdades
 
A busca por planetas além do sistema solar
A busca por planetas além do sistema solarA busca por planetas além do sistema solar
A busca por planetas além do sistema solar
 
Passeio virtual pelo LHC
Passeio virtual pelo LHCPasseio virtual pelo LHC
Passeio virtual pelo LHC
 
Construção de uma luneta a baixo custo
Construção de uma luneta a baixo custoConstrução de uma luneta a baixo custo
Construção de uma luneta a baixo custo
 
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livresHardware livre Arduino: eletrônica e robótica com hardware e software livres
Hardware livre Arduino: eletrônica e robótica com hardware e software livres
 
Robótica e educação inclusiva
Robótica e educação inclusivaRobótica e educação inclusiva
Robótica e educação inclusiva
 
Fazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectXFazendo do jeito certo: criando jogos sofisticados com DirectX
Fazendo do jeito certo: criando jogos sofisticados com DirectX
 
Blue Via
Blue ViaBlue Via
Blue Via
 
Linux para iniciantes
Linux para iniciantesLinux para iniciantes
Linux para iniciantes
 
Robótica e educação inclusiva
	Robótica e educação inclusiva	Robótica e educação inclusiva
Robótica e educação inclusiva
 
Gestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software LivreGestão e monitoramento de redes e dispositivos com Software Livre
Gestão e monitoramento de redes e dispositivos com Software Livre
 
Confecção de Circuito Impresso
Confecção de Circuito ImpressoConfecção de Circuito Impresso
Confecção de Circuito Impresso
 
Vida de Programador
Vida de Programador Vida de Programador
Vida de Programador
 
Virtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendenciasVirtualização, cloud computig e suas tendencias
Virtualização, cloud computig e suas tendencias
 
Desafio Robótica Livre
Desafio Robótica LivreDesafio Robótica Livre
Desafio Robótica Livre
 

Usp Ufba Qualidade De Codigo

  • 1. Qualidade de Código Mantendo o seu Projeto de Software Livre sob Controle Antonio Terceiro softwarelivre.org/terceiro
  • 2. O que é Qualidade?
  • 3. A natureza do Design de Software
  • 4. “Qualidade” depende do ponto de vista! ● Do usuário: satisfação de requisitos, ausência de bugs, frequência de releases, bom desempenho, etc. ● Do desenvolvedor: facilidade de entender o código, flexibilidade para modificar o código, abrangência da suíte de testes, etc. ● ...
  • 5. Nossa noção de qualidade Atributos de Qualidade
  • 10. Métricas ● Tamanho: ● SLOC ● Número de módulos ● Acoplamento: CBO ● Coesão: LCOM4 ● Separação de Interesses: ● CDOC (Espalhamento) ● CIBC (Entrelaçamento)
  • 13. analizo ● Baseado no egypt, criado por Andreas Gustafsson ● (http://www.gson.org/egypt/) ● Características ● Análise de código fonte multi-linguagem ● Funcionalidades ● Extração de chamadas entre funções e entre módulos ● http://softwarelivre.org/mezuro/analizo
  • 14. analizo – aplicações ● Extrator baseado no Doxygen ● Por Joenio Costa (UCSAL) ● Uso para geração de matrizes de evolução ● Por Vagner Amaral (UFBA) ● Análise de mudanças em projetos de software livre ● Por Antonio Terceiro, Luiz Romário Rios e Christina Chavez (UFBA) ● Análise de métricas de 6773 projetos do SourceForge.net ● Por Paulo Meirelles, Carlos Santos Jr, Cláudia Melo, João M. Miranda, Fábio Kon (USP), Antonio Terceiro, Christina Chavez (UFBA)