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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend