SlideShare a Scribd company logo
An Investigation of eXtreme Programming Practices and its Impact on Software Quality Metrics Gabriel de Souza Pereira Moreira - ITA Roberto Pepato Mellado – ITA Robson Luis Monteiro Júnior  - ITA Prof. Adilson Marques da Cunha - ITA Prof. Luiz Alberto Vieira Dias - ITA
Overview Introduction Case Study METACOM Results Limitations Conclusion 2 ITA - Instituto Tecnológico da Aeronáutica
Introduction On the last decade, a growing interest on agile methods for software construction from both industry and academy has arisen. [Dyba et al. 2008][Hanssen et al. 2010]  Extreme Programming (XP) is one of established agile methods, has defined sets of values, principles, and practices. [Beck 2009] 3 ITA - Instituto Tecnológico da Aeronáutica
Lehman defines the law of increasing entropy. He explains that, by a number of factors, a programming system undergoes never-ending maintenance. [Lehman et al. 1985]  Recent works have conducted studies of quality evolution metrics in agile developed systems. [Capiluppi 2007] 4 ITA - Instituto Tecnológico da Aeronáutica Introduction(cont)
XP practices used in each project 5 ITA - Instituto Tecnológico da Aeronáutica
XP Radar Radar Chart is a visual indicator of XP practices adoption. It is composed of five axes, representing the dimensions of an XP implementation: programming, planning, customer, pairing and team. [Wake 2000]  6 ITA - Instituto Tecnológico da Aeronáutica
Object-Oriented Software Metrics Metrics help software engineers to gain perception in the construction of products that they develop [Pressman 2009]. Previous works had proposed 	metrics for tracking aspects like size, complexity, coupling, and cohesion within object oriented (OO) systems. [Chidamber 1994] , [Martin 1994] 7 ITA - Instituto Tecnológico da Aeronáutica
Metrics used in this Investigation Lines of Code (LoC) - Number of valid class lines of code (excluding comments and blank lines); Afferent Coupling (AC) - Number of classes directly dependent on the class under analysis; Efferent Coupling (EC) - Number of classes that the class under analysis directly depends on; Association Between Classes (ABC) - Number of members of others classes that the class under analysis directly uses in the body of its methods; Cyclomatic Complexity (CC) - Number of execution paths of a class; and Methods per Class (MPC) - Number of methods of a class under analysis. 8 ITA - Instituto Tecnológico da Aeronáutica
Context Three Brazilian industry projects: Project A, B, and Project C. Company process evolution: Ad-hoc, RUP, Agile Common complaint: lack of quality built in 9 ITA - Instituto Tecnológico da Aeronáutica
Projects 10 ITA - Instituto Tecnológico da Aeronáutica Revision – Identifier of a change set in the source code, sent from the developers local copy to  a Version Control System repository,  through a commit or check-in operation. b. Assembly – Software binary component in .NET platform, generally an executable file or Dynamic Linked Library (DLL).
Project A It was used just one XP practice. The requirements analysis, documentation, and system design were conducted in the beginning of the project, and were not revised during the construction phase.  The team had about 10 developers directly engaged in the project. Because of the high turnover rate, 20 different professionals have participated in the system implementation ITA - Instituto Tecnológico da Aeronáutica 11
Project A They worked distributed in two adjacent rooms, led by a technical leader which gave directions for the whole team. Developers were expected to implement code as modeled by designers in UML case tools. Usually, design models became out of date in relation to source code.  There were not any kind of automated tests, so all regression tests were manually made by a testing team. Refactoring was totally discouraged, because of the risk of new defects due to changes.  ITA - Instituto Tecnológico da Aeronáutica 12
Project B The requirements analysis and documentation were performed at the elaboration phase, the system design wasn’t entirely ready at this phase.  Therefore, few units and integration tests were automated and, thus, refactoring practices were not very much used. ITA - Instituto Tecnológico da Aeronáutica 13
Project B Averageof 4 developers. Team was placed in the same room. The software product of Project B was 34% shorter than Project A, in terms of C# Lines of Code (LoC), without comments and blank lines.  Project B had 78% less defects detected by test team and by end users than Project A. In this project, a framework was produced and successfully reused in other four projects. ITA - Instituto Tecnológico da Aeronáutica 14
Project C A higher number of agile engineering practices were applied in its development. The team was comprised of four developers on average. In this project, some concepts of Scrum [Schwaber 2009] and XP frameworks were applied. Averageof 4 developers. There was no Project Manager working with the team.  ITA - Instituto Tecnológico da Aeronáutica 15
Project C The Scrum Master responsibilities were spread on the team. The team felt that lack of a dedicated Scrum Master allowed too much external interferences on sprint objectives, which impacted the auto-organization, productivity and motivation of the team.  All stories were organized in kanban, a mechanism for pull systems that provides updated process visibility [Poppendieck 2003].  ITA - Instituto Tecnológico da Aeronáutica 16
Project C Product quality was always the main focus of the team, and effort was dedicated to mitigate technical debts. The team applied extensively agile practices like Test Driven Development (TDD), refactoring, incremental design, and continuous integration.  The project C used the principle of test-first programming, which generated 315 unit tests and 87% of code coverage. ITA - Instituto Tecnológico da Aeronáutica 17
 METACOM Step 1 – Revisions Checkout Step 2 – Build Step 3 – Static Analysis Step 4 – Data Transformation and Load 18 ITA - Instituto Tecnológico da Aeronáutica
Mean Efferent Coupling ITA - Instituto Tecnológico da Aeronáutica 19 From left to right, Project A, B and C
Mean Afferent Coupling ITA - Instituto Tecnológico da Aeronáutica 20
Mean Association Bet. Classes ITA - Instituto Tecnológico da Aeronáutica 21
ITA - Instituto Tecnológico da Aeronáutica 22 Mean Cyclomatic Complexity From left to right, Project A, B and C
Mean Lines Of Code(LoC) Per Type ITA - Instituto Tecnológico da Aeronáutica 23 From left to right, Project A, B and C
Mean Quantity Of Methods Per Type ITA - Instituto Tecnológico da Aeronáutica 24 From left to right, Project A, B and C
Limitations The analysis conducted in this paper has used historical measures from Version Control System (VCS) revisions.  As it was not guaranteed that each day a new revision is committed, there weren’t measures for all days during project development. This could add bias on charts time series analysis. The software product quality metrics analyzed in this work were observed in isolation. 25 ITA - Instituto Tecnológico da Aeronáutica
Limitations(cont) Other variables that could cause impact on projects like schedule pressures, resources availability, team and management turnover, marketing moment, team engagement among others, could not be controlled in this investigation of past projects. ITA - Instituto Tecnológico da Aeronáutica 26
Conclusion In this investigation it was conducted an investigation of three different software development projects history.  Company has incorporated agile practices in its projects, in special the ones proposed by XP. 	 A subjective analysis of XP practices usage in projects was performed by the use of XP Radar chart assessment [Ware 2000].  ITA - Instituto Tecnológico da Aeronáutica 27
Conclusion(cont) The major findings of this investigation pointed out that the average class measures for:  Size (LoC and MPC); complexity (CC); and coupling (ABC) were reduced in projects which have been applying more XP practices.  Coupling metrics of Afferent Coupling (AC) and Efferent Coupling (EC) were low affected by XP practices usage in this investigation. Based on previous studies, experience, and consensus of the involved development teams, authors believe that XP practices lead to improved product quality in the analyzed projects. ITA - Instituto Tecnológico da Aeronáutica 28
Sugestions Analysemeasuresunderotherfunctions (max,min,std. Dev.) Analysemeasures in differentlevels (packages, classes) Identifyentropyincrease ITA - Instituto Tecnológico da Aeronáutica 29
References ITA - Instituto Tecnológico da Aeronáutica 30 Moreira, G. S. P., Mellado, R. P., Montini, D. A., Dias, L. A. V., Cunha, A. M. “Software Product Measurement and Analysisin a Continuous Integration Environment”, ITNG, Abril 2010, Las Vegas, NE, EUA  Moreira, G. S. P., Mellado, R. P., Dias, L. A. V., Cunha, A. M. “METACOM - Um Método para Análise de Correlação entre Métricas de Produto de Software e Volume de Manutenção”, SBQS 2011, Jun. 2011, Curitiba, PR http://workingsweng.wordpress.com
http://www.agilevale.com.br/ @agilevale #agilevale 19 e 20 de Agosto de 2011

More Related Content

What's hot

Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
IRJET Journal
 
Nishar resume
Nishar resumeNishar resume
Nishar resume
MD NISHAR
 
Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3
Gurpreet singh
 
5. COCOMO.pdf
5. COCOMO.pdf5. COCOMO.pdf
5. COCOMO.pdf
PedadaSaikumar
 
Manual testing by reddy
Manual testing by reddyManual testing by reddy
Manual testing by reddy
Krishna Gurjar
 
FACTORS ON SOFTWARE EFFORT ESTIMATION
FACTORS ON SOFTWARE EFFORT ESTIMATION FACTORS ON SOFTWARE EFFORT ESTIMATION
FACTORS ON SOFTWARE EFFORT ESTIMATION
ijseajournal
 
Web Testing
Web TestingWeb Testing
Web Testing
smita gupta
 
Tammy Clark Resume - Final
Tammy Clark Resume - FinalTammy Clark Resume - Final
Tammy Clark Resume - FinalTammy Clark
 
Industrial perspective on static analysis
Industrial perspective on static analysisIndustrial perspective on static analysis
Industrial perspective on static analysis
Chirag Thumar
 
A suite of tools for technology assessment
A suite of tools for technology assessmentA suite of tools for technology assessment
A suite of tools for technology assessment
Nitish Mahajan
 
ICSME14 - On the Impact of Refactoring Operations on Code Quality Metrics
ICSME14 - On the Impact of Refactoring Operations on Code Quality MetricsICSME14 - On the Impact of Refactoring Operations on Code Quality Metrics
ICSME14 - On the Impact of Refactoring Operations on Code Quality Metrics
Oscar Chaparro
 
Experiences in shift left test approach
Experiences in shift left test approachExperiences in shift left test approach
Experiences in shift left test approach
Journal Papers
 
An overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in AndroidAn overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in Android
Vahid Garousi
 
SPS IPC Drives 2015 - Itris Automation paper
SPS IPC Drives 2015 - Itris Automation paperSPS IPC Drives 2015 - Itris Automation paper
SPS IPC Drives 2015 - Itris Automation paper
Itris Automation Square
 
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling�Clotho: Saving Programs from Malformed Strings and Incorrect String-handling�
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling
Cybersecurity Education and Research Centre
 
01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)Siddireddy Balu
 

What's hot (19)

Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
Enhancing the Software Effort Prediction Accuracy using Reduced Number of Cos...
 
Nishar resume
Nishar resumeNishar resume
Nishar resume
 
Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3
 
Bhavani HS
Bhavani HSBhavani HS
Bhavani HS
 
5. COCOMO.pdf
5. COCOMO.pdf5. COCOMO.pdf
5. COCOMO.pdf
 
Manual testing by reddy
Manual testing by reddyManual testing by reddy
Manual testing by reddy
 
FACTORS ON SOFTWARE EFFORT ESTIMATION
FACTORS ON SOFTWARE EFFORT ESTIMATION FACTORS ON SOFTWARE EFFORT ESTIMATION
FACTORS ON SOFTWARE EFFORT ESTIMATION
 
Web Testing
Web TestingWeb Testing
Web Testing
 
Tammy Clark Resume - Final
Tammy Clark Resume - FinalTammy Clark Resume - Final
Tammy Clark Resume - Final
 
2
22
2
 
Industrial perspective on static analysis
Industrial perspective on static analysisIndustrial perspective on static analysis
Industrial perspective on static analysis
 
A suite of tools for technology assessment
A suite of tools for technology assessmentA suite of tools for technology assessment
A suite of tools for technology assessment
 
Cocom ii
Cocom iiCocom ii
Cocom ii
 
ICSME14 - On the Impact of Refactoring Operations on Code Quality Metrics
ICSME14 - On the Impact of Refactoring Operations on Code Quality MetricsICSME14 - On the Impact of Refactoring Operations on Code Quality Metrics
ICSME14 - On the Impact of Refactoring Operations on Code Quality Metrics
 
Experiences in shift left test approach
Experiences in shift left test approachExperiences in shift left test approach
Experiences in shift left test approach
 
An overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in AndroidAn overview of automated test suites and defect density in Android
An overview of automated test suites and defect density in Android
 
SPS IPC Drives 2015 - Itris Automation paper
SPS IPC Drives 2015 - Itris Automation paperSPS IPC Drives 2015 - Itris Automation paper
SPS IPC Drives 2015 - Itris Automation paper
 
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling�Clotho: Saving Programs from Malformed Strings and Incorrect String-handling�
Clotho: Saving Programs from Malformed Strings and Incorrect String-handling
 
01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)
 

Viewers also liked

Extreme Programming practices for your team
Extreme Programming practices for your teamExtreme Programming practices for your team
Extreme Programming practices for your teamPawel Lipinski
 
Extreme programming in Agile Development
Extreme programming in Agile DevelopmentExtreme programming in Agile Development
Extreme programming in Agile DevelopmentNidhi Singh
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programmingJean Pаoli
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
Joe Drumgoole
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
Vinit Kumar Singh
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
Aniruddha Chakrabarti
 
Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development
Sunderland City Council
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
David Tzemach
 
Extreme programming
Extreme programmingExtreme programming
Extreme programmingMr SMAK
 
3.9 techniques and tools for systems development
3.9 techniques and tools for systems development3.9 techniques and tools for systems development
3.9 techniques and tools for systems developmentmrmwood
 
Information system development
Information system development Information system development
Information system development
Sanoob Sidiq
 
Information systems development methodologies
Information systems development methodologiesInformation systems development methodologies
Information systems development methodologies
Fereshte Moghadam
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
Mohamed Abdelrahman
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system developmentcymark09
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
Bilal Shah
 
Information System Development
Information System DevelopmentInformation System Development
Information System DevelopmentSamudin Kassan
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)fentrekin
 

Viewers also liked (20)

Extreme Programming practices for your team
Extreme Programming practices for your teamExtreme Programming practices for your team
Extreme Programming practices for your team
 
Extreme programming in Agile Development
Extreme programming in Agile DevelopmentExtreme programming in Agile Development
Extreme programming in Agile Development
 
eXtreme programming
eXtreme programmingeXtreme programming
eXtreme programming
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !Extreme programming - a quick and agile overview !
Extreme programming - a quick and agile overview !
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Mycin 016
Mycin  016Mycin  016
Mycin 016
 
Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development Alternative Methodologies for Systems Development
Alternative Methodologies for Systems Development
 
Extreme programming (xp) | David Tzemach
Extreme programming (xp) | David TzemachExtreme programming (xp) | David Tzemach
Extreme programming (xp) | David Tzemach
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
3.9 techniques and tools for systems development
3.9 techniques and tools for systems development3.9 techniques and tools for systems development
3.9 techniques and tools for systems development
 
Information system development
Information system development Information system development
Information system development
 
Information systems development methodologies
Information systems development methodologiesInformation systems development methodologies
Information systems development methodologies
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Extreme programming (xp)
Extreme programming (xp)Extreme programming (xp)
Extreme programming (xp)
 
2 approaches to system development
2 approaches to system development2 approaches to system development
2 approaches to system development
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Information System Development
Information System DevelopmentInformation System Development
Information System Development
 
System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)System Development Life Cycle (SDLC)
System Development Life Cycle (SDLC)
 

Similar to An Investigation Of EXtreme Programming Practices

An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...
Roberto Pepato
 
Cocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity modelCocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity model
Prakash Poudel
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation Techniques
IRJET Journal
 
Software Project Planning 1
Software Project Planning 1Software Project Planning 1
Software Project Planning 1
Gagan Deep
 
COCOMO methods for software size estimation
COCOMO methods for software size estimationCOCOMO methods for software size estimation
COCOMO methods for software size estimation
Pramod Parajuli
 
Costing ass4
Costing ass4Costing ass4
Costing ass4
BakhtyarBilal
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_ValidationMichaelJoshua
 
COCOMO model
COCOMO modelCOCOMO model
COCOMO model
hajra azam
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
MohsinAli773
 
COCOMO Model By Dr. B. J. Mohite
COCOMO Model By Dr. B. J. MohiteCOCOMO Model By Dr. B. J. Mohite
COCOMO Model By Dr. B. J. Mohite
Zeal Education Society, Pune
 
#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...
#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...
#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...
Obeo
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
IRJET Journal
 
COCOMO Model For Effort Estimation
COCOMO Model For Effort EstimationCOCOMO Model For Effort Estimation
COCOMO Model For Effort Estimation
grandhiprasuna
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval Tool
Kellyton Brito
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
LPK Any Komputer
 
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Meghna Arora
 
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgCS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
RahithAhsan1
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
Heiko Koziolek
 
Mi0033
Mi0033Mi0033
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
RungrojMaipradit1
 

Similar to An Investigation Of EXtreme Programming Practices (20)

An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...An investigation of extreme programming practices and its impact on software ...
An investigation of extreme programming practices and its impact on software ...
 
Cocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity modelCocomo ( cot constrictive model) and capability maturity model
Cocomo ( cot constrictive model) and capability maturity model
 
IRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation TechniquesIRJET- Analysis of Software Cost Estimation Techniques
IRJET- Analysis of Software Cost Estimation Techniques
 
Software Project Planning 1
Software Project Planning 1Software Project Planning 1
Software Project Planning 1
 
COCOMO methods for software size estimation
COCOMO methods for software size estimationCOCOMO methods for software size estimation
COCOMO methods for software size estimation
 
Costing ass4
Costing ass4Costing ass4
Costing ass4
 
Michael_Joshua_Validation
Michael_Joshua_ValidationMichael_Joshua_Validation
Michael_Joshua_Validation
 
COCOMO model
COCOMO modelCOCOMO model
COCOMO model
 
Software Process Models
 Software Process Models  Software Process Models
Software Process Models
 
COCOMO Model By Dr. B. J. Mohite
COCOMO Model By Dr. B. J. MohiteCOCOMO Model By Dr. B. J. Mohite
COCOMO Model By Dr. B. J. Mohite
 
#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...
#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...
#SiriusCon 2015: Talk by Christophe Boudjennah "Experimenting the Open Source...
 
DevOps CI Automation Continuous Integration
DevOps CI Automation Continuous IntegrationDevOps CI Automation Continuous Integration
DevOps CI Automation Continuous Integration
 
COCOMO Model For Effort Estimation
COCOMO Model For Effort EstimationCOCOMO Model For Effort Estimation
COCOMO Model For Effort Estimation
 
LIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval ToolLIFT: A Legacy InFormation retrieval Tool
LIFT: A Legacy InFormation retrieval Tool
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
Best Way to Prepare for the ISTQB Technical Test Analyst (CTAL-TTA) Certifica...
 
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdgCS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
CS2006Ch02A.ppt dfxgbfdcgbhfcdhbfdcbfdcgfdg
 
Tool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software EngineeringTool-Driven Technology Transfer in Software Engineering
Tool-Driven Technology Transfer in Software Engineering
 
Mi0033
Mi0033Mi0033
Mi0033
 
Wait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debtWait for it: identifying “On-Hold” self-admitted technical debt
Wait for it: identifying “On-Hold” self-admitted technical debt
 

More from Gabriel Moreira

[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...
[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...
[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...
Gabriel Moreira
 
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
Gabriel Moreira
 
Deep Learning for Recommender Systems @ TDC SP 2019
Deep Learning for Recommender Systems @ TDC SP 2019Deep Learning for Recommender Systems @ TDC SP 2019
Deep Learning for Recommender Systems @ TDC SP 2019
Gabriel Moreira
 
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
Gabriel Moreira
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Gabriel Moreira
 
Sistemas de Recomendação sem Enrolação
Sistemas de Recomendação sem Enrolação Sistemas de Recomendação sem Enrolação
Sistemas de Recomendação sem Enrolação
Gabriel Moreira
 
Deep Recommender Systems - PAPIs.io LATAM 2018
Deep Recommender Systems - PAPIs.io LATAM 2018Deep Recommender Systems - PAPIs.io LATAM 2018
Deep Recommender Systems - PAPIs.io LATAM 2018
Gabriel Moreira
 
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoCI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
Gabriel Moreira
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Gabriel Moreira
 
Feature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive modelsFeature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive models
Gabriel Moreira
 
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Gabriel Moreira
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender Systems
Gabriel Moreira
 
Python for Data Science - Python Brasil 11 (2015)
Python for Data Science - Python Brasil 11 (2015)Python for Data Science - Python Brasil 11 (2015)
Python for Data Science - Python Brasil 11 (2015)
Gabriel Moreira
 
Python for Data Science - TDC 2015
Python for Data Science - TDC 2015Python for Data Science - TDC 2015
Python for Data Science - TDC 2015
Gabriel Moreira
 
Python for Data Science
Python for Data SciencePython for Data Science
Python for Data Science
Gabriel Moreira
 
Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...
Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...
Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...
Gabriel Moreira
 
Developing GeoGames for Education with Kinect and Android for ArcGIS Runtime
Developing GeoGames for Education with Kinect and Android for ArcGIS RuntimeDeveloping GeoGames for Education with Kinect and Android for ArcGIS Runtime
Developing GeoGames for Education with Kinect and Android for ArcGIS Runtime
Gabriel Moreira
 
Dojo Imagem de Android - 19/06/2012
Dojo Imagem de Android - 19/06/2012Dojo Imagem de Android - 19/06/2012
Dojo Imagem de Android - 19/06/2012
Gabriel Moreira
 
Agile Testing e outros amendoins
Agile Testing e outros amendoinsAgile Testing e outros amendoins
Agile Testing e outros amendoins
Gabriel Moreira
 

More from Gabriel Moreira (20)

[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...
[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...
[Phd Thesis Defense] CHAMELEON: A Deep Learning Meta-Architecture for News Re...
 
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
 
Deep Learning for Recommender Systems @ TDC SP 2019
Deep Learning for Recommender Systems @ TDC SP 2019Deep Learning for Recommender Systems @ TDC SP 2019
Deep Learning for Recommender Systems @ TDC SP 2019
 
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
PAPIs LATAM 2019 - Training and deploying ML models with Kubeflow and TensorF...
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Sistemas de Recomendação sem Enrolação
Sistemas de Recomendação sem Enrolação Sistemas de Recomendação sem Enrolação
Sistemas de Recomendação sem Enrolação
 
Deep Recommender Systems - PAPIs.io LATAM 2018
Deep Recommender Systems - PAPIs.io LATAM 2018Deep Recommender Systems - PAPIs.io LATAM 2018
Deep Recommender Systems - PAPIs.io LATAM 2018
 
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de RecomendaçãoCI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
CI&T Tech Summit 2017 - Machine Learning para Sistemas de Recomendação
 
Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017Feature Engineering - Getting most out of data for predictive models - TDC 2017
Feature Engineering - Getting most out of data for predictive models - TDC 2017
 
Feature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive modelsFeature Engineering - Getting most out of data for predictive models
Feature Engineering - Getting most out of data for predictive models
 
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
Discovering User's Topics of Interest in Recommender Systems @ Meetup Machine...
 
lsrs15_ciandt
lsrs15_ciandtlsrs15_ciandt
lsrs15_ciandt
 
Discovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender SystemsDiscovering User's Topics of Interest in Recommender Systems
Discovering User's Topics of Interest in Recommender Systems
 
Python for Data Science - Python Brasil 11 (2015)
Python for Data Science - Python Brasil 11 (2015)Python for Data Science - Python Brasil 11 (2015)
Python for Data Science - Python Brasil 11 (2015)
 
Python for Data Science - TDC 2015
Python for Data Science - TDC 2015Python for Data Science - TDC 2015
Python for Data Science - TDC 2015
 
Python for Data Science
Python for Data SciencePython for Data Science
Python for Data Science
 
Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...
Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...
Using Neural Networks and 3D sensors data to model LIBRAS gestures recognitio...
 
Developing GeoGames for Education with Kinect and Android for ArcGIS Runtime
Developing GeoGames for Education with Kinect and Android for ArcGIS RuntimeDeveloping GeoGames for Education with Kinect and Android for ArcGIS Runtime
Developing GeoGames for Education with Kinect and Android for ArcGIS Runtime
 
Dojo Imagem de Android - 19/06/2012
Dojo Imagem de Android - 19/06/2012Dojo Imagem de Android - 19/06/2012
Dojo Imagem de Android - 19/06/2012
 
Agile Testing e outros amendoins
Agile Testing e outros amendoinsAgile Testing e outros amendoins
Agile Testing e outros amendoins
 

An Investigation Of EXtreme Programming Practices

  • 1. An Investigation of eXtreme Programming Practices and its Impact on Software Quality Metrics Gabriel de Souza Pereira Moreira - ITA Roberto Pepato Mellado – ITA Robson Luis Monteiro Júnior - ITA Prof. Adilson Marques da Cunha - ITA Prof. Luiz Alberto Vieira Dias - ITA
  • 2. Overview Introduction Case Study METACOM Results Limitations Conclusion 2 ITA - Instituto Tecnológico da Aeronáutica
  • 3. Introduction On the last decade, a growing interest on agile methods for software construction from both industry and academy has arisen. [Dyba et al. 2008][Hanssen et al. 2010] Extreme Programming (XP) is one of established agile methods, has defined sets of values, principles, and practices. [Beck 2009] 3 ITA - Instituto Tecnológico da Aeronáutica
  • 4. Lehman defines the law of increasing entropy. He explains that, by a number of factors, a programming system undergoes never-ending maintenance. [Lehman et al. 1985] Recent works have conducted studies of quality evolution metrics in agile developed systems. [Capiluppi 2007] 4 ITA - Instituto Tecnológico da Aeronáutica Introduction(cont)
  • 5. XP practices used in each project 5 ITA - Instituto Tecnológico da Aeronáutica
  • 6. XP Radar Radar Chart is a visual indicator of XP practices adoption. It is composed of five axes, representing the dimensions of an XP implementation: programming, planning, customer, pairing and team. [Wake 2000] 6 ITA - Instituto Tecnológico da Aeronáutica
  • 7. Object-Oriented Software Metrics Metrics help software engineers to gain perception in the construction of products that they develop [Pressman 2009]. Previous works had proposed metrics for tracking aspects like size, complexity, coupling, and cohesion within object oriented (OO) systems. [Chidamber 1994] , [Martin 1994] 7 ITA - Instituto Tecnológico da Aeronáutica
  • 8. Metrics used in this Investigation Lines of Code (LoC) - Number of valid class lines of code (excluding comments and blank lines); Afferent Coupling (AC) - Number of classes directly dependent on the class under analysis; Efferent Coupling (EC) - Number of classes that the class under analysis directly depends on; Association Between Classes (ABC) - Number of members of others classes that the class under analysis directly uses in the body of its methods; Cyclomatic Complexity (CC) - Number of execution paths of a class; and Methods per Class (MPC) - Number of methods of a class under analysis. 8 ITA - Instituto Tecnológico da Aeronáutica
  • 9. Context Three Brazilian industry projects: Project A, B, and Project C. Company process evolution: Ad-hoc, RUP, Agile Common complaint: lack of quality built in 9 ITA - Instituto Tecnológico da Aeronáutica
  • 10. Projects 10 ITA - Instituto Tecnológico da Aeronáutica Revision – Identifier of a change set in the source code, sent from the developers local copy to a Version Control System repository, through a commit or check-in operation. b. Assembly – Software binary component in .NET platform, generally an executable file or Dynamic Linked Library (DLL).
  • 11. Project A It was used just one XP practice. The requirements analysis, documentation, and system design were conducted in the beginning of the project, and were not revised during the construction phase. The team had about 10 developers directly engaged in the project. Because of the high turnover rate, 20 different professionals have participated in the system implementation ITA - Instituto Tecnológico da Aeronáutica 11
  • 12. Project A They worked distributed in two adjacent rooms, led by a technical leader which gave directions for the whole team. Developers were expected to implement code as modeled by designers in UML case tools. Usually, design models became out of date in relation to source code. There were not any kind of automated tests, so all regression tests were manually made by a testing team. Refactoring was totally discouraged, because of the risk of new defects due to changes. ITA - Instituto Tecnológico da Aeronáutica 12
  • 13. Project B The requirements analysis and documentation were performed at the elaboration phase, the system design wasn’t entirely ready at this phase. Therefore, few units and integration tests were automated and, thus, refactoring practices were not very much used. ITA - Instituto Tecnológico da Aeronáutica 13
  • 14. Project B Averageof 4 developers. Team was placed in the same room. The software product of Project B was 34% shorter than Project A, in terms of C# Lines of Code (LoC), without comments and blank lines. Project B had 78% less defects detected by test team and by end users than Project A. In this project, a framework was produced and successfully reused in other four projects. ITA - Instituto Tecnológico da Aeronáutica 14
  • 15. Project C A higher number of agile engineering practices were applied in its development. The team was comprised of four developers on average. In this project, some concepts of Scrum [Schwaber 2009] and XP frameworks were applied. Averageof 4 developers. There was no Project Manager working with the team. ITA - Instituto Tecnológico da Aeronáutica 15
  • 16. Project C The Scrum Master responsibilities were spread on the team. The team felt that lack of a dedicated Scrum Master allowed too much external interferences on sprint objectives, which impacted the auto-organization, productivity and motivation of the team. All stories were organized in kanban, a mechanism for pull systems that provides updated process visibility [Poppendieck 2003]. ITA - Instituto Tecnológico da Aeronáutica 16
  • 17. Project C Product quality was always the main focus of the team, and effort was dedicated to mitigate technical debts. The team applied extensively agile practices like Test Driven Development (TDD), refactoring, incremental design, and continuous integration. The project C used the principle of test-first programming, which generated 315 unit tests and 87% of code coverage. ITA - Instituto Tecnológico da Aeronáutica 17
  • 18. METACOM Step 1 – Revisions Checkout Step 2 – Build Step 3 – Static Analysis Step 4 – Data Transformation and Load 18 ITA - Instituto Tecnológico da Aeronáutica
  • 19. Mean Efferent Coupling ITA - Instituto Tecnológico da Aeronáutica 19 From left to right, Project A, B and C
  • 20. Mean Afferent Coupling ITA - Instituto Tecnológico da Aeronáutica 20
  • 21. Mean Association Bet. Classes ITA - Instituto Tecnológico da Aeronáutica 21
  • 22. ITA - Instituto Tecnológico da Aeronáutica 22 Mean Cyclomatic Complexity From left to right, Project A, B and C
  • 23. Mean Lines Of Code(LoC) Per Type ITA - Instituto Tecnológico da Aeronáutica 23 From left to right, Project A, B and C
  • 24. Mean Quantity Of Methods Per Type ITA - Instituto Tecnológico da Aeronáutica 24 From left to right, Project A, B and C
  • 25. Limitations The analysis conducted in this paper has used historical measures from Version Control System (VCS) revisions. As it was not guaranteed that each day a new revision is committed, there weren’t measures for all days during project development. This could add bias on charts time series analysis. The software product quality metrics analyzed in this work were observed in isolation. 25 ITA - Instituto Tecnológico da Aeronáutica
  • 26. Limitations(cont) Other variables that could cause impact on projects like schedule pressures, resources availability, team and management turnover, marketing moment, team engagement among others, could not be controlled in this investigation of past projects. ITA - Instituto Tecnológico da Aeronáutica 26
  • 27. Conclusion In this investigation it was conducted an investigation of three different software development projects history. Company has incorporated agile practices in its projects, in special the ones proposed by XP. A subjective analysis of XP practices usage in projects was performed by the use of XP Radar chart assessment [Ware 2000]. ITA - Instituto Tecnológico da Aeronáutica 27
  • 28. Conclusion(cont) The major findings of this investigation pointed out that the average class measures for: Size (LoC and MPC); complexity (CC); and coupling (ABC) were reduced in projects which have been applying more XP practices. Coupling metrics of Afferent Coupling (AC) and Efferent Coupling (EC) were low affected by XP practices usage in this investigation. Based on previous studies, experience, and consensus of the involved development teams, authors believe that XP practices lead to improved product quality in the analyzed projects. ITA - Instituto Tecnológico da Aeronáutica 28
  • 29. Sugestions Analysemeasuresunderotherfunctions (max,min,std. Dev.) Analysemeasures in differentlevels (packages, classes) Identifyentropyincrease ITA - Instituto Tecnológico da Aeronáutica 29
  • 30. References ITA - Instituto Tecnológico da Aeronáutica 30 Moreira, G. S. P., Mellado, R. P., Montini, D. A., Dias, L. A. V., Cunha, A. M. “Software Product Measurement and Analysisin a Continuous Integration Environment”, ITNG, Abril 2010, Las Vegas, NE, EUA Moreira, G. S. P., Mellado, R. P., Dias, L. A. V., Cunha, A. M. “METACOM - Um Método para Análise de Correlação entre Métricas de Produto de Software e Volume de Manutenção”, SBQS 2011, Jun. 2011, Curitiba, PR http://workingsweng.wordpress.com