monitoramento de métricas de código-fonte - stoa...
TRANSCRIPT
![Page 1: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/1.jpg)
1
Monitoramento de Métricas de Código-Fonte:
uma abordagem a ser explorada pelo Governo na verificação da qualidade dos
produtos de software
Paulo Meirelles(FGA/UnB – CCSL/USP)
[email protected] Paulo Meirelles is licensed under a Creative Commons Atribuição 2.5 Brasil License
![Page 2: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/2.jpg)
2
Introdução (1)
![Page 3: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/3.jpg)
3
Bjarne StroustrupInventor of C++
O que é código limpo?
“ I like my code to be elegant and efficient. The logic should be straighforward to make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well. ”
![Page 4: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/4.jpg)
4
Grady BoochAuthor of Object Oriented Analysis and
Design with Applications
O que é código limpo?
“ Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designer's intent but rather is full of crisp [clearly defined] abstractions and straighforward lines of control.”
![Page 5: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/5.jpg)
5
Dave ThomasFounder of OTI, godfather of
the Eclipse Strategy
O que é código limpo?
“ Clean code can be read, and enhanced by a developer other than its original author. It has unit and acceptance tests. It has meaningful names. It provides one way rather than many ways for doing one thing. It has minimal dependencies, which are explicitly defined, and provides a clear and minimal API. Code should be literate since depending on the language, not all necessary information can be expressed clearly in code alone.”
![Page 6: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/6.jpg)
6
Michael FeathersAuthor of Working Effectively
With Legacy Code
O que é código limpo?
“ I could list all of the qualities that I notice in clean code, but there is one overarching quality that leads to all of them. Clean code always looks it was written by someone who cares. There is nothing obvious that you can do to make it better. All of those things were thought about by the code's author, and if you try to imagine improvements, you're led back to where you are, sitting in appreciation of the code someone left for you – code left by someone who cares deeply about the craft.”
![Page 7: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/7.jpg)
7
Ron JeffriesAuthor of Extreme
Programming Installed
O que é código limpo?
“ In recent years I begin, and nearly end, with Beck's rules of simple code. In priority order, simple code:
● Runs all tests
● Contains no duplication
● Expresses all the design ideas that are in the system
● Minimizes the number of entities such as classes, methods, functions, and the like.”
![Page 8: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/8.jpg)
8
Ward CunninghamInventor of Wiki, Fit and much more
”Godfather of all those who care about code”
O que é código limpo?
You know you are working on clean code when each routine you read turns out to be pretty much what you expected. You can call it beautiful code when the codes also makes it look like the language was made for the problem.”
![Page 9: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/9.jpg)
9
Simple
Straightforward
Efficient
Expressive
Runs all tests
Literal
Turns out to be what you expected
Minimal
Contains no duplications
Full of meaning
Without obvious improvements
Written by someone who
cares
Reads well
Beautiful: when the language was made for the problem
O que é código limpo?
![Page 10: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/10.jpg)
10
???
caminhoR(Vertice v):Vertice west[v] = 0for(w = 0; w < tamanho(); w++) if(adj(v,w))if(est[w] == 1):imprime(w)caminhoR(w)
![Page 11: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/11.jpg)
11
Melhor assim?
![Page 12: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/12.jpg)
![Page 13: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/13.jpg)
![Page 14: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/14.jpg)
![Page 15: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/15.jpg)
![Page 16: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/16.jpg)
16
Métricas de Código-Fonte
Métricas usadas no contexto de sistemas de software orientados a objeto
![Page 17: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/17.jpg)
17
![Page 18: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/18.jpg)
18
Linhas de Código (LOC)
É a medida mais comum para o tamanhode um software. São contadas apenas as linhas executáveis, ou seja, são excluídas
linhas em branco e comentários ...
![Page 19: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/19.jpg)
19
Linhas de Código (LOC)
No exemplo, a classe HelloWorld tem LOC=3,contando as linhas 1, 3 e 4. A linha 4, apesar de possuir 2 instruções, conta como apenas 1
linha ...
![Page 20: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/20.jpg)
20
Linhas de Código (LOC)
Para efetuar comparações entre sistemas usando LOC, é necessário que ambos
tenham sido feitos na mesma linguagem de programação e que o estilo
esteja normalizado …
![Page 21: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/21.jpg)
21
Linhas de Código (LOC)
Os intervalos sugeridos para o LOC de uma classe são: até 70 (bom); entre 70 e 130
(regular); de 130 em diante (ruim).
![Page 22: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/22.jpg)
22
![Page 23: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/23.jpg)
23
AMLOCNúmero médio de linhas por
método
Indica se o código está bem distribuído entre os métodos. Quanto maior, mais pesados são os métodos. É preferível ter muitas operações pequenas e de fácil entendimento que poucas
operações grandes e complexas ...
![Page 24: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/24.jpg)
24
AMLOCNúmero médio de linhas por
método
No exemplo, a classe Printer tem AMLOC=3, pois possui 2 métodos e LOC= 6. Os
intervalos sugeridos são: até 10 (bom); entre 10 e 13 (regular); de 13 em diante (ruim).
![Page 25: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/25.jpg)
25
DITProfundidade da árvore de
herança
É o número de superclasses e/ou classes ancestrais da classe sendo analisada. São
contadas apenas as superclasses do sistema, ou seja, as classes de bibliotecas não são
contabilizadas. No exemplo, a classe HelloWorldPrinter tem DIT = 1 e nas demais
DIT = 0 ...
![Page 26: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/26.jpg)
26
DITProfundidade da árvore de
herança
Quanto maior for o valor DIT, maior é o número de atributos e métodos herdados, e
portanto maior é a complexidade. Os intervalos sugeridos são: até 2 (bom); entre 2
e 4 (regular); de 4 em diante (ruim).
![Page 27: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/27.jpg)
27
![Page 28: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/28.jpg)
28
NPANúmero de atributos públicos
Os atributos de uma classe devem servir apenas às funcionalidades da própria classe.
Portanto, as variáveis/atributos de classe devem ser ocultadas para evitar
complexidade, pois fica difícil prever os efeitos colaterais de alterar atributos
públicos ...
![Page 29: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/29.jpg)
29
NPANúmero de atributos públicos
NPA mede o encapsulamento. O valor ideal dessa métrica é zero. Os intervalos sugeridos
são: até 1 (bom); entre 1 e 9 (regular); de 9 em diante (ruim).
![Page 30: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/30.jpg)
30
NPMNúmero de métodos públicos
Representa o tamanho da interface da classe. Os métodos públicos representam os
serviços que a classe disponibiliza ...
![Page 31: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/31.jpg)
31
NPMNúmero de métodos públicos
Valores altos para essa métrica indicam que a classe tem demasiadas funcionalidades e
que poderia ser quebrada. Os intervalos sugeridos são: até 10 (bom); entre 10 e 40
(regular); de 40 em diante (ruim).
![Page 32: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/32.jpg)
32
NPNúmero de Parâmetros
Calcula o número de parâmetros de um método. Obtemos valor zero quando o método avaliado não possui parâmetro. Muitos parâmetros de um método pode indicar que ele está com mais de uma
responsabilidade ...
![Page 33: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/33.jpg)
33
LCOM4Ausência de coesão em métodos
Seja M = {M1, …, Mn} o conjunto dos métodos da classe analisada. Dois métodos
Mi e Mj estão relacionados se ambos acessam pelo menos um mesmo atributo da classe, ou se Mi chama ou é chamado por
Mj . LCOM4 é a quantidade de partições de “M” formadas após separar os métodos em
conjuntos de métodos relacionados ...
![Page 34: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/34.jpg)
34
LCOM4Ausência de coesão em métodos
No exemplo, a classe Printer tem LCOM4 = 1, pois todos os métodos acessam a variável
message. HelloWorldPrinter tem LCOM4 = 2, pois o contrutor e o método doNothing() não
estão relacionados ...
![Page 35: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/35.jpg)
35
LCOM4Ausência de coesão em métodos
Se uma classe tem diferentes conjuntos de métodos não relacionados entre si, é um
indício de que a classe deveria ser quebrada em classes menores e mais coesas.
Os intervalos sugeridos são: até 2 (bom); entre 2 e 5 (regular); de 5 em diante (ruim).
![Page 36: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/36.jpg)
36
![Page 37: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/37.jpg)
37
![Page 38: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/38.jpg)
38
CBOAcoplamento (ligações, conexões)
entre Objetos (classes)
Mede o acoplamento (conectividade) de uma classe. Se uma classe C1 acessa um método ou atributo da classe C2, dizemos que C1 é
cliente da classe fornecedora C2...
![Page 39: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/39.jpg)
39
CBOAcoplamento (ligações, conexões)
entre Objetos (classes)
● n = número total de classes
![Page 40: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/40.jpg)
40
CBOAcoplamento (ligações, conexões)
entre Objetos (classes)
No nosso exemplo, CBO(Printer) é 2, pois ela é utilizada pelas outras duas classes.
HelloWorldPrinter é filha e portanto cliente de Printer ...
![Page 41: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/41.jpg)
41
CBOAcoplamento (ligações, conexões)
entre Objetos (classes)
Se o valor dessa métrica for grande, uma mudança na classe tem potencialmente mais
efeitos colaterais, tornando mais difícil a manutenção. Os intervalos sugeridos são: até
2 (bom); entre 2 e 20 (regular); de 20 em diante (ruim).
![Page 42: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/42.jpg)
42
![Page 43: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/43.jpg)
43
ACCM (McCabe)Complexidade Ciclomática
Calcula o número de caminhos linearmente independentes no método analisado,
conhecido como complexidade ciclomática ...
![Page 44: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/44.jpg)
44
ACCM (McCabe)Complexidade Ciclomática
Obtemos 1 quando não há quebra do fluxo principal. Cada estrutura de controle de fluxo presente no corpo do método adiciona 1 no
valor total da CYCLO ...
![Page 45: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/45.jpg)
45
ACCM (McCabe)Complexidade Ciclomática
Quando os valores de MaxNesting e CYCLO são próximos, sabemos que muitos dos
controladores de fluxo presentes no método estão encadeados em uma mesma estrutura.
Quando são muito distantes, podemos concluir que os controladores estão
espalhados em estruturas diferentes e que elas não são muito profundas.
![Page 46: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/46.jpg)
![Page 47: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/47.jpg)
![Page 48: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/48.jpg)
![Page 49: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/49.jpg)
...
![Page 50: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/50.jpg)
![Page 51: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/51.jpg)
![Page 52: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/52.jpg)
52
Introdução (2)
![Page 53: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/53.jpg)
53
Software livre● Influenciando a indústria de software e a
economia global nas últimas décadas [Benkler, 2006]
● É considerado um método ágil de desenvolvimento de software [Fowler, 2000; Abrahamsson, 2002; Warsta e Abrahamsson, 2003; Corbucci, 2011]
![Page 54: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/54.jpg)
54
Software livre
● Pessoas, empresas e governos ainda relutantes na adoção (QualiPSO)
● Incertezas legais, comerciais, questões culturais, falta de confiança no produto e no suporte (QualiPSO)
![Page 55: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/55.jpg)
55
Qualidade do produto?● Funcionalidade● Confiança● Usabilidade● Eficiência● Manutenibilidade● Portabilidade
[ISO/IEC9126-1, 2001]
![Page 56: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/56.jpg)
56
Qualidade do produto?
● Funcionalidade● Confiança● Usabilidade● Eficiência● Manutenibilidade● Portabilidade
![Page 57: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/57.jpg)
57
Por que código-fonte?
A codificação passou a também ser reconhecida como um trabalho
intelectual e criativo.
![Page 58: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/58.jpg)
58
Por que código-fonte?
A maior parte dos esforços são direcionados à qualidade do código
desenvolvido.
![Page 59: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/59.jpg)
59
Tese de doutorado na USP
Definir como monitorar e avaliar a qualidade de projetos de software livre, através do estudo das suas
métricas, obtidas pela análise semi-automática de seu código-fonte.
![Page 60: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/60.jpg)
60
Questões de Pesquisa
QP: Quais métricas devem ser “controladas” (monitoradas) ao longo do tempo?
![Page 61: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/61.jpg)
61
Questões de Pesquisa
QP: As métricas de código-fonte “melhoram” com o amadurecimento dos projetos?
![Page 62: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/62.jpg)
62
Metodologia
● Mineração de repositórios de código-fonte de projetos de software livre
● 5 estudos empíricos● Análise quantitativa
![Page 63: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/63.jpg)
63
Resultados● Uma abordagem para a observação das
métricas de código-fonte● Identificação das distribuições
estatísticas dos valores de métricas e os seus valores frequentes
● uma extensão do modelo de causalidade do conceito de atratividade de projetos de software livre
![Page 64: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/64.jpg)
64
Resultados
● Ferramenta de coleta de métricas de código-fonte
● Web service para interpretação de métricas de código-fonte
● Rede de monitoramento de métricas de código-fonte
![Page 65: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/65.jpg)
65
Conteúdo
● Desenvolvimento de software livre● Métricas de Código-Fonte● Estudos● Ferramentas● Conclusão
![Page 66: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/66.jpg)
66
Conteúdo
● Desenvolvimento de software livre● Métricas de Código-Fonte● Estudos● Ferramentas● Conclusão
![Page 67: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/67.jpg)
[Kon et al., 2011]
Interação entre desenvolvedores
![Page 68: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/68.jpg)
Níveis de participação
[Crowston e Howison, 2005]
![Page 69: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/69.jpg)
69
Conteúdo
● Desenvolvimento de software livre● Métricas de Código-Fonte● Estudos● Ferramentas● Conclusão
![Page 70: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/70.jpg)
70
Tamanho(LOC)
![Page 71: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/71.jpg)
71
Coesão(LCOM4)
![Page 72: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/72.jpg)
72
Acoplamento(CBO)
![Page 73: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/73.jpg)
73
Conteúdo
● Desenvolvimento de software livre● Métricas de Código-Fonte● Estudos● Ferramentas● Conclusão
![Page 74: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/74.jpg)
Contradição entre os trabalhos relacionados:
1) Normal ou Leis de Potência?
2) A média dos valores das métricas é um valor informativo para os estudos?
![Page 75: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/75.jpg)
Distribuição e valores frequentes das
métricas em projetos de software livre
![Page 76: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/76.jpg)
76
Hipóteses
H1: O tipo da distribuição dos valores das métricas de código-fonte tendem a ser diferentes entre projetos diferentes.
![Page 77: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/77.jpg)
77
Hipóteses
H2: A média e mediana não são dados informativos na maioria dos casos.
![Page 78: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/78.jpg)
78
Hipóteses
H3: Ao agrupar os projetos por linguagem de programação, será possível observar valores frequentes das métricas nos projetos avaliados.
![Page 79: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/79.jpg)
79
Coleta dos Dados
● Ohloh.net● API● Scripts● Projetos com mais contribuidores e
usuários (ranking)● Fontes dos repositórios oficiais
![Page 80: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/80.jpg)
80
Metodologia
● Análise descritiva● Testes das distribuições
● Weibull, Poisson, Gamma, Exponencial e Pareto
● Critério de Akaike (FitDist no R)
● Verificação dos percentis (e quantis)
![Page 81: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/81.jpg)
81
Projetos
![Page 82: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/82.jpg)
82
Projetos
![Page 83: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/83.jpg)
83
Média da Complexidade Ciclomática por método
![Page 84: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/84.jpg)
84
Média da Complexidade Ciclomática por método
![Page 85: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/85.jpg)
85
Ausência de coesão em métodos
![Page 86: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/86.jpg)
86
Ausência de coesão em métodos
![Page 87: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/87.jpg)
87
Número de linhas de código
![Page 88: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/88.jpg)
88
Número de linhas de código
![Page 89: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/89.jpg)
89
Complexidade estrutural
![Page 90: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/90.jpg)
90
Complexidade estrutural
![Page 91: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/91.jpg)
Correlação entre as métricas
![Page 92: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/92.jpg)
92
Linux
![Page 93: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/93.jpg)
93
Free BSD
![Page 94: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/94.jpg)
94
Eclipse
![Page 95: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/95.jpg)
95
Open JDK 8
![Page 96: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/96.jpg)
96
Chrome
![Page 97: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/97.jpg)
97
Firefox
![Page 98: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/98.jpg)
98
Evolução Firefox
![Page 99: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/99.jpg)
99
Resultados (VLC)
![Page 100: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/100.jpg)
100
Resultados (MPlayer)
![Page 101: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/101.jpg)
101
Resultados (Kalibro)
![Page 102: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/102.jpg)
102
Resultados (Kalibro-Tests)
![Page 103: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/103.jpg)
103
Conteúdo
● Desenvolvimento de software livre● Métricas de Código-Fonte● Estudos● Ferramentas● Conclusão
![Page 104: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/104.jpg)
MezuroRede de monitoramento de
código-fonte
![Page 105: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/105.jpg)
105
![Page 106: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/106.jpg)
106
Monitorando um projeto
![Page 107: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/107.jpg)
107
![Page 108: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/108.jpg)
108
![Page 109: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/109.jpg)
109
![Page 110: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/110.jpg)
110
![Page 111: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/111.jpg)
111
![Page 112: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/112.jpg)
112
![Page 113: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/113.jpg)
113
Criando uma configuração para monitoramento
![Page 114: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/114.jpg)
114
![Page 115: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/115.jpg)
115
![Page 116: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/116.jpg)
116
![Page 117: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/117.jpg)
117
![Page 118: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/118.jpg)
118
![Page 119: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/119.jpg)
119
![Page 120: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/120.jpg)
120
![Page 121: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/121.jpg)
121
![Page 122: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/122.jpg)
122
Visualizaçãode Software
![Page 123: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/123.jpg)
123
Escalabilidadede web services
![Page 124: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/124.jpg)
124
Mineração de dados
![Page 125: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/125.jpg)
125
Ferramentas/coletores
![Page 126: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/126.jpg)
126
Conteúdo
● Desenvolvimento de software livre● Métricas de Código-Fonte● Estudos● Ferramentas● Conclusão
![Page 127: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/127.jpg)
127
Conclusão● Quais métricas devem ser “controladas”
(monitoradas) ao longo do tempo?● Dependerá de quais característica do código
está interessado em monitorar, por isso nossa abordagem sugere que o monitoramento seja “configurável”. Observando a correlação, uma sugestão é: ACC, ACCM, ANPM, DIT, AMLOC, NOM, NPA, SC.
![Page 128: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/128.jpg)
128
Conclusão
Os valores das métricas de código-fonte seguem distribuições não-triviais, assim olhar
como medi-las se faz necessário.
![Page 129: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/129.jpg)
129
Contribuições● Uma abordagem para a observação das
metricas de código-fonte● Identificação das distribuições
estatísticas dos valores de métricas e os seus valores frequentes
● uma extensão do modelo de causalidade do conceito de atratividade de projetos de software livre
![Page 130: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/130.jpg)
130
Contribuições
● Ferramenta de coleta de métricas de código-fonte
● Web service para interpretação de métricas de código-fonte
● Rede de monitoramento de métricas de código-fonte
![Page 131: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/131.jpg)
131
Contribuições
● Implicações gerenciais práticas● Empresas● Governos
– Relatório técnico para o TCU
![Page 132: Monitoramento de Métricas de Código-Fonte - Stoa Socialsocial.stoa.usp.br/articles/0030/5096/paulo-Consegi.pdf · 1 Monitoramento de Métricas de Código-Fonte: uma abordagem a](https://reader031.vdocuments.site/reader031/viewer/2022022711/5c02988909d3f20a538e7453/html5/thumbnails/132.jpg)
132
Monitoramento de Métricas de Código-Fonte:
uma abordagem a ser explorada pelo Governo na verificação da qualidade dos
produtos de software
Paulo Meirelles(FGA/UnB – CCSL/USP)
[email protected] Paulo Meirelles is licensed under a Creative Commons Atribuição 2.5 Brasil License