extracting new metrics from version control system for
play

Extracting new metrics from Version Control System for the - PowerPoint PPT Presentation

Extracting new metrics from Version Control System for the comparison of software developers Marcello Moura 1 , Hugo Nascimento 2 e Thierson Rosa 2 Centro de Recursos Computacionais 1 , Instituto de Inform atica 2 Universidade Federal de Goi


  1. Extracting new metrics from Version Control System for the comparison of software developers Marcello Moura 1 , Hugo Nascimento 2 e Thierson Rosa 2 Centro de Recursos Computacionais 1 , Instituto de Inform´ atica 2 Universidade Federal de Goi´ as (UFG) Caixa Postal 131 – 74.001-970 – Goiˆ ania – GO – Brazil marcello@ufg.br, { hadn,thierson } @inf.ufg.br Goiˆ ania, 21 de Setembro 2014 Moura, Nascimento e Rosa Extracting new metrics from VCS ... 1 / 48

  2. Summary I Introduction 1 Extracting fine-grain operations from VCS 2 Metrics for the developers 3 Comparison of the developers 4 The case study 5 Conclusion 6 Moura, Nascimento e Rosa Extracting new metrics from VCS ... 2 / 48

  3. Summary Introduction 1 Extracting fine-grain operations from VCS 2 Metrics for the developers 3 Comparison of the developers 4 The case study 5 Conclusion 6 Moura, Nascimento e Rosa Extracting new metrics from VCS ... 3 / 48

  4. Introduction Version Control Systems (VCSs), like Subversion and Git, store revisions of the files of a software development project, registering its historical evolution. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 4 / 48

  5. Introduction VCSs have been used for: Helping to understand the software development process – Lopez-Fernandez et al. [2004], Huang and Liu [2005], Girba et al. [2005], Voinea and Telea [2006] and Voinea et al. [2007]. Helping to know more about the developers – Gilbert and Karahalios [2007], Jermakovics et al. [2011], Mockus and Herbsleb [2002], Minto and Murphy [2007], Schuler and Zimmermann [2008], Zhang et al. [2008a,b] and Di Bella et al. [2013]. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 5 / 48

  6. Introduction Our work focuses on understanding the developers by the analisys of their work. We identify and count finer-grain operations at line and file 1 levels that can be extracted from a VCS, like additions, deletions and modifications. This allows to derive a much more detailed and rich information about the work performed by the developers. We calculate a new set of formally defined metrics. 2 Developers are characterized by comparing each one of 3 them against the others. Two comparison approaches for this aim are described. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 6 / 48

  7. Introduction Note : The VCS data can not be taken as a full and precise description of the software development process. It is incomplete and may lead to distinct interpretations. (e.g. Negara et al. [2012]) Information extracted from a VCS has to be revalidated by the project managers and complemented with their own knowledge. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 7 / 48

  8. Introduction Note : The VCS data can not be taken as a full and precise description of the software development process. It is incomplete and may lead to distinct interpretations. (e.g. Negara et al. [2012]) Information extracted from a VCS has to be revalidated by the project managers and complemented with their own knowledge. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 7 / 48

  9. Summary Introduction 1 Extracting fine-grain operations from VCS 2 Metrics for the developers 3 Comparison of the developers 4 The case study 5 Conclusion 6 Moura, Nascimento e Rosa Extracting new metrics from VCS ... 8 / 48

  10. Extracting fine-grain operations from VCS Basic notation: P – a software project in a VCS D – the set of developers that worked on P . A – the set of all files created during the development of P A r ⊆ A – the set of files that were removed (not reached the final version) of P . Moura, Nascimento e Rosa Extracting new metrics from VCS ... 9 / 48

  11. Extracting fine-grain operations from VCS We mine the VCS for three types of operations: additions, deletions and modifications of files and lines of code. Project History Moura, Nascimento e Rosa Extracting new metrics from VCS ... 9 / 48

  12. Extracting fine-grain operations from VCS Moura, Nascimento e Rosa Extracting new metrics from VCS ... 9 / 48

  13. Summary Introduction 1 Extracting fine-grain operations from VCS 2 Metrics for the developers 3 Comparison of the developers 4 The case study 5 Conclusion 6 Moura, Nascimento e Rosa Extracting new metrics from VCS ... 10 / 48

  14. Metrics for the developers Aspects defined for consideration: Effort – represents the total amount of operations of a type 1 performed by a developer. Code-survival – indicates the amount of operations of a 2 type performed by a developer and not changed later by anyone. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 11 / 48

  15. Metrics for the developers A. Metrics for evaluating developers individually | H a | if o a , i � 1 . devel = d 1 Effo Add ( d ) = ∑ ∑ 0 otherwise. a ∈ A i = 1  if o a , i | h a j . devel = d li | 1 | H a |   Effo Mod ( d ) = ∑ ∑ ∑ and o a , i j . type = MOD ; a ∈ A i = 1 j = 1  0 otherwise.  Moura, Nascimento e Rosa Extracting new metrics from VCS ... 12 / 48

  16. Metrics for the developers A. Metrics for evaluating developers individually  if o a , i 1 . devel = d 1   and ∀ o a , i  with s > 1,  | H a | s   ∑ ∑ ( o a , i Surv Add ( d ) = s . type = MOD i = 1 and o a , i a ∈ ( A − A r )  s . devel = d );     0 otherwise.   if o a , i end . type = MOD 1   and o a , i  end . devel = d  | H a |   ∑ ∑ and ∃ w , 1 ≤ w < | h a Surv Mod ( d ) = l i | , such that o a , i a ∈ ( A − A r ) i = 1  w . devel � = d ;     0 otherwise.  Moura, Nascimento e Rosa Extracting new metrics from VCS ... 13 / 48

  17. Metrics for the developers A. Metrics for evaluating developers individually Surv Add Div Effo Add ( d ) = Surv Add ( d ) Effo Add ( d ) Moura, Nascimento e Rosa Extracting new metrics from VCS ... 14 / 48

  18. Metrics for the developers B. Uncovering and measuring relationships between developers Also, ADD DEL, MOD MOD, MOD DEL. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 15 / 48

  19. Metrics for the developers B. Uncovering and measuring relationships between developers  if | h li | > 1 1   and o a , i  1 . devel = x    | H a | and o a , i  1 . type = ADD  Line Add Mod ( x , y ) = ∑ ∑ and o a , i 2 . devel = y a ∈ A i = 1   and o a , i  2 . type = MOD ;     0 otherwise.  Moura, Nascimento e Rosa Extracting new metrics from VCS ... 16 / 48

  20. Metrics for the developers B. Uncovering and measuring relationships between developers ∑ Line Add Σ Mod ( d ) = Line Add Mod(d, y) y ∈ D −{ d } ∑ Line Σ Add Mod ( d ) = Line Add Mod(x, d) x ∈ D −{ d } Moura, Nascimento e Rosa Extracting new metrics from VCS ... 17 / 48

  21. Metrics for the developers C. Extending the metrics for the file level A project revision is a triple ( r , d , L ), where: r is the label of the revision, d is a identifier of the developer who made the revision, with d ∈ D , and L is a list of pairs ( a , t ) where a is a file and t ∈ { A , M , D } describes the operation. A project revision sequence is a sequence S = � ( r 1 , d 1 , L 1 ) , ( r 2 , d 2 , L 2 ) ,..., ( r m , d m , L m ) � of project revisions that represent the history of changes made on the files of P without going into detail about the changes made on their individual lines. Moura, Nascimento e Rosa Extracting new metrics from VCS ... 18 / 48

  22. Metrics for the developers C. Extending the metrics for the file level  if there are triples ( r i , d i , L i ) 1   and ( r j , d j , L j ) in S , with i < j ,     such that d i = x , d j = y ,     ( a , A ) ∈ L i and ( a , M ) ∈ L j ,    File Add Mod ( x , y ) = ∑ and for which there is no triple a ∈ A ( r k , d k , L k ) with i < k < j     such that ( a , t ) ∈ L k     for any operation of type t ;     0 otherwise.  Moura, Nascimento e Rosa Extracting new metrics from VCS ... 19 / 48

  23. Metrics for the developers C. Extending the metrics for the file level ∑ File Add Σ Mod ( d ) = File Add Mod(d, y) y ∈ D −{ d } ∑ File Σ Add Mod ( d ) = File Add Mod(x, d) x ∈ D −{ d } Moura, Nascimento e Rosa Extracting new metrics from VCS ... 20 / 48

  24. Metrics for the developers D. Metrics regarding commits  if triples ( r i , d i , L i ) and 1 | S |− 1   ( r i + 1 , d i + 1 , L i + 1 ) are such that  ∑ Commits ( x , y ) = d i = x and d i + 1 = y ; i = 1   0 otherwise.   if triple ( r i , d i , L i ) 1 | S |  ∑ Σ Commits ( d ) = is such that d i = d ; i = 1 0 otherwise.  Moura, Nascimento e Rosa Extracting new metrics from VCS ... 21 / 48

  25. Metrics for the developers Metric ( d ) Metric Rel ( d ) = ∑ x ∈ D Metric ( x ) Moura, Nascimento e Rosa Extracting new metrics from VCS ... 22 / 48

  26. Summary Introduction 1 Extracting fine-grain operations from VCS 2 Metrics for the developers 3 Comparison of the developers 4 The case study 5 Conclusion 6 Moura, Nascimento e Rosa Extracting new metrics from VCS ... 23 / 48

  27. Comparison of the developers A. Performance-based hierarchy All metrics should have the same orientation Moura, Nascimento e Rosa Extracting new metrics from VCS ... 24 / 48

Recommend


More recommend