SlideShare a Scribd company logo
1 of 34
UNCOVERING HIDDEN RELATIONSHIPS
FROM PAST CHANGES:
LOGICAL DEPENDENCIES AND ITS APPLICATIONS

Marco Aurélio Gerosa / Gustavo Ansaldi
Oliva
Computer Science Dept. - University of São Paulo
{gerosa,goliva}@ime.usp.br
Kyoto Research Park
Kyoto, Japan

MSR Asia Summit 2013

October 28th, 2013
Dependencies
Structural dependencies
3/31

doThisForMe()

ClassA

B, I need your help
to do my work. Could
you do this task for
me?
Marco A. Gerosa (gerosa@ime.usp.br)

ClassB

Hummm, someone is
asking me to do
something. Let’s do
it!
Software dependencies in
general
4/31



A uses B if correct execution of B may be necessary for A to
complete the task described in its specification [Parnas, 1979].



A depends on B if the last is needed to compile or link A
[Lakos, 1996].



A dependency relation means that the semantics of the
depending elements is semantically or structurally
dependent on the definition of the supplier element [UML
Formal Specification].

A dependency means that a client element has knowledge of
A
B
the supplier element and a change in the supplier may affect
Marco A. Gerosa (gerosa@ime.usp.br)

Dependencies can be harmful
5/31

B
H

C

A

G

F

D

E

• More dependencies, more
maintenance effort [Banker et
al.1998].
• More dependencies, more
defects [Cataldo et al. 2009].
• Dependencies can lead to
negative ripple effects
[Pressman, 2001]
ClassC

Marco A. Gerosa (gerosa@ime.usp.br)

doStuff()

ClassA

doThisForMe()

ClassB
Dependencies may be hard to
identify
6/31







Publisher/subscriber, polymorphism, clones, cross
cutting concerns, semantic relations etc.
Unrecognized dependencies result in a higher
number of defects [Herbsleb et al. 2006].
A dependency means that a client element has
knowledge of the supplier element and a change
in the supplier may affect the client
[Larman, 2004].
Dependency
Change

Marco A. Gerosa (gerosa@ime.usp.br)
Logical dependencies
7/31







Files frequently changed together share some sort
of dependency [Gall et al. 1998]
Logical dependencies better predict failures and
quality compared to syntactic dependencies
[Cataldo et al. 2009]
Developers should focus on identifying
less-explicit relationships rather than obvious and
explicit syntactic dependencies [Cataldo, 2010]

Marco A. Gerosa (gerosa@ime.usp.br)

A

B
Collaborative filtering
8/31

Marco A. Gerosa (gerosa@ime.usp.br)
Social aspects matter
9/31

Marco A. Gerosa (gerosa@ime.usp.br)
How to identify logical
dependencies
10/31



A logical dependency from A (client) to B (provider) occurs
when changes to B are done together with changes to A

A
Strong Logical dependency from B to A
(the opposite is a much weaker
dependency)
Marco A. Gerosa (gerosa@ime.usp.br)

80%
40%

B

A logical dependency denotes an implicit
and evolutionary relationship between
software artifacts
Clustering Classes
11/31

Clustering classes based on
modification records [Ball et al.,
1997]
Logical dependencies
characterized as the probability
of 2 classes changing together
The cluster identified semanticrelated classes
Marco A. Gerosa (gerosa@ime.usp.br)

Thomas Ball, Yung-Min Kim, Adam Porter, Harvey Siy. If Your
Version Control System Could Talk... Presented at the Workshop
on Process Modelling and Empirical Studies of Software
Engineering, ICSE 97, May 1997, MA, Boston
Logical coupling based on releases periods
12

Gall et al. [1998] proposed an
approach for logical
dependency identification
 “Our technique reveals hidden
dependencies not evident in
the source code, identifies
modules that should undergo
restructuring, and is based on
minimal amount of data”
 Use of the term for the first
time
Harald Gall, Karin Hajek, and Mehdi Jazayeri. 1998. Detection of


Logical Coupling Based on Product Release History. In Proceedings of
the International Conference on Software Maintenance (ICSM '98).
IEEE Computer Society, Washington, DC, USA, 190-198.

A.ab.144 <1,2,4,7>
C.bc.201 <1,2,4,7>
[subsystem.module.program]

Coupling among subsystems [Gall et
Grouping consecutive changes in CVS
repositories
13





Gall et al. [2003] defined
an approach with a fixed
time window to capture
logical dependencies in
CVS repositories
Design flaws could be
discovered without any
analysis of source code

Marco A. Gerosa (gerosa@ime.usp.br)

Class 13.c.18.A was 21 times checked in
together
Association rules and sliding-time window
14



Zimmerman et al. [2005] formalized logical
dependencies as association rules




Frequency
Support
Confidence

They used a sliding-time window to recover change
transactions from CVS
 Correct prediction of more than 70% of following
changes
Thomas Zimmermann, Peter Weissgerber, Stephan Diehl, and Andreas Zeller. 2005. Mining Version Histories to Guide


Software Changes. IEEE Trans. Software Eng. 31, 6 (June 2005), 429-445. DOI=10.1109/TSE.2005.72
15

After the programmer has made some changes to the source (above), ROSE suggests locations (below)
where, in similar transactions in the past, further changes were made [Zimmerman et al., 2005]
Where are we?
16/31







What are Logical Dependencies?
Identification of Logical Dependencies
Applications of Logical Dependencies
Our Research on Logical Dependencies
The Road Ahead

Marco A. Gerosa (gerosa@ime.usp.br)
Evolution Radar
17/35



Marco A. Gerosa (gerosa@ime.usp.br)

Marco D'Ambros, Michele Lanza, and Mircea Lungu. 2009.
Visualizing Co-Change Information with the Evolution Radar.
IEEE Trans. Softw. Eng. 35, 5 (September 2009), 720-735.
Coordination requirements
18/35







Organizations often cope with complex tasks by
dividing them into smaller interdependent work
units and then assigning such units to teams
Coordination among teams arises as a response
to such interdependent work units
Logical dependencies were applied to determine
coordination requirements among developers

Marcelo Cataldo, Patrick A. Wagstrom, James D. Herbsleb, and Kathleen M.
Carley. 2006. Identification of coordination requirements: implications for the
Design of collaboration and awareness tools. In Proceedings of the 2006
Conference on Computer supported cooperative work (CSCW '06).
Applications
19/35







Pinzger et al. [2005] showed that it facilitates
the detection of potential refactoring
candidates.
D’Ambros et al. [2006] showed that logical
dependencies improved bug prediction models
Breu and Zimmermann [2006] used it to
identify and rank crosscutting concerns in
software systems.

Marco A. Gerosa (gerosa@ime.usp.br)
And more…
20


Logical dependencies have also been employed to









The impact on failures [Cataldo et al., 2009]
Change prediction and change impact analysis [Kagdi et al., 2007]
Uncover cross-cutting concerns [Canfora et al., 2006]
Uncover design flaws and opportunities for
refactoring, restructuring, reenginering [Beyer & Hassan, 2006]
Understand and evaluate software architecture [Zimmermman et
al., 2003]
Maintain documentation (internationalization, etc.) [Kagdi et
al., 2006]
…

Marco A. Gerosa (gerosa@ime.usp.br)
Where are we?
21/31







What are Logical Dependencies?
Foundation of Logical Dependencies
Applications of Logical Dependencies
Our Research on Logical Dependencies
The Road Ahead

Marco A. Gerosa (gerosa@ime.usp.br)
Structural vs logical
dependencies
22/31





How do structural and logical
dependencies relate?
Analysis of commits of the ASF showed
that:





Dependency

93% of the logical dependencies did not
involve structural dependencies
95% of the structural dependencies did not
imply in a logical dependency

Structural dependencies do not frequently
lead to logical dependencies (!)

Gustavo Ansaldi Oliva and Marco Aurelio Gerosa. 2011. On the Interplay between Structural and
Logical Dependencies in Open-Source Software. In Proceedings of the 2011 25th Brazilian
Symposium on Software Engineering (SBES '11). IEEE Computer

Change
The origins of Logical
Dependencies
23/31

Gustavo A. Oliva, Francisco W.S. Santana, Marco A. Gerosa, and
Cleidson R.B. de Souza. 2011. Towards a classification of logical
dependencies origins: a case study. In Proceedings of the 12th
International Workshop on Principles of Software Evolution and the
7th annual ERCIM Workshop on Software Evolution (IWPSE-EVOL
improve logical dependencies
identification
24/31

Commit <> change
 The implementation of a single
change may span consecutive
and closely related commits
 Application of the CVS sliding
time window approach
[Zimmerman et al., 2004] to group
timely-close and
semantically-related
change-sets, maintaining
repository consistency
Oliva, G. A., Santana, F., Gerosa, M. A., Souza, C. (2012), “Preprocessing Change-Sets to Improve
 We were able to group ~10% of
Logical Dependencies Identification”, Sixth International Workshop on Software Quality and
Maintainability (SQM 2012)
all commits in the ASF

Next steps
25/31






Develop a framework for the identification of
logical dependencies
Expand previous studies
Survey about logical dependencies

Marco A. Gerosa (gerosa@ime.usp.br)
Where are we?
26/31







What are Logical Dependencies?
Foundation of Logical Dependencies
Applying Logical Dependencies
Our Research on Logical Dependencies
The Road Ahead

Marco A. Gerosa (gerosa@ime.usp.br)
Terminology
27/31



Different terms have often been used interchangeably


Logical dependencies or coupling



Change dependencies or coupling



Evolutionary dependencies or coupling



Historical dependencies or coupling



Co-changes

Marco A. Gerosa (gerosa@ime.usp.br)
And what happens between
commits?
28

Marco A. Gerosa (gerosa@ime.usp.br)

[Robbes et
Challenges: Understanding Influencing
Factors
29/31



Improve the identification of logical
dependencies
 Commit

habits
 The influence of the chosen technology (VCS)
 The nature of changes
 Period of analysis
 Filtering options
Marco A. Gerosa (gerosa@ime.usp.br)
Summary
30/31



Logical dependencies have been applied for a
variety of purposes
 Useful

to better understand software and
organizational aspects
 Complements existing
approaches, techniques, and tools
 Needs more investigation on its calculation
Marco A. Gerosa (gerosa@ime.usp.br)
Thank you for your attention
31/31

Marco Aurélio
Gerosa
Gustavo Ansaldi
Twitter: {@gerosa_marco,@golivax}
gerosa@ime.usp.br
Oliva
golivax@gmail.com
Software Engineering &
Collaborative Systems Research

http://lapessc.ime.usp.br/
References
32/31














D. L. Parnas. 1979. Designing Software for Ease of Extension and Contraction. IEEE Trans.
Softw. Eng. 5, 2 (March 1979), 128-138. DOI=10.1109/TSE.1979.234169
John Lakos. 1996. Large-Scale C++ Software Design. Addison Wesley Longman Publishing Co.,
Inc., Redwood City, CA, USA
[UML Formal Specification] Retrieved from
http://www.omg.org/technology/documents/formal/uml.htm
Craig Larman. 2004. Applying UML and Patterns: An Introduction to Object-Oriented Analysis
and Design and Iterative Development (3rd Edition). Prentice Hall PTR, Upper Saddle River, NJ,
USA
Marco D'Ambros and Michele Lanza. 2006. Reverse Engineering with Logical Coupling. In
Proceedings of the 13th Working Conference on Reverse Engineering (WCRE '06). IEEE
Computer Society, Washington, DC, USA, 189-198. DOI=10.1109/WCRE.2006.51
Banker, R., et al. Software Development Practices, Software Complexity, and Software
Maintenance Performance: A Field Study. Management Science 40(4): 433–450.
Romain Robbes. Of Change and Software. Phd Thesis. University of Lugano.

Some references may be missing, please enter in contact with us if you need them.
Marco A. Gerosa (gerosa@ime.usp.br)
References
33/31


Thomas Ball, Yung-Min Kim, Adam Porter, Harvey Siy. If Your Version Control System Could Talk... Presented at
the Workshop on Process Modelling and Empirical Studies of Software Engineering, ICSE 97, May
1997, MA, Boston



Cataldo, M., & Nambiar, S. (2010). The impact of geographic distribution and the nature of technical coupling on
the quality of global software development projects. Quality. doi:10.1002/smr



Harald Gall, Karin Hajek, and Mehdi Jazayeri. 1998. Detection of Logical Coupling Based on Product Release
History. In Proceedings of the International Conference on Software Maintenance (ICSM '98). IEEE Computer
Society, Washington, DC, USA, 190-198.



Harald Gall, Mehdi Jazayeri, and Jacek Krajewski. 2003. CVS Release History Data for Detecting Logical
Couplings. In Proceedings of the 6th International Workshop on Principles of Software Evolution (IWPSE '03).
IEEE Computer Society, Washington, DC, USA, 13-.



Thomas Zimmermann, Peter Weisgerber, Stephan Diehl, and Andreas Zeller. 2004. Mining Version Histories to
Guide Software Changes. In Proceedings of the 26th International Conference on Software Engineering (ICSE
'04). IEEE Computer Society, Washington, DC, USA, 563-572.



Thomas Zimmermann, Peter Weissgerber, Stephan Diehl, and Andreas Zeller. 2005. Mining Version Histories to
Guide Software Changes. IEEE Trans. Softw. Eng. 31, 6 (June 2005), 429-445. DOI=10.1109/TSE.2005.72
http://dx.doi.org/10.1109/TSE.2005.72

Some references may be missing, please enter in contact with us if you need them.
Marco A. Gerosa (gerosa@ime.usp.br)
References
34/31

Marco D'Ambros and Michele Lanza. 2006. Reverse Engineering with Logical
Coupling. In Proceedings of the 13th Working Conference on Reverse Engineering
(WCRE '06). IEEE Computer Society, Washington, DC, USA, 189-198.
DOI=10.1109/WCRE.2006.51

W. P. Stevens, G. J. Myers, and L. L. Constantine. 1974. Structured design. IBM
Syst. J. 13, 2 (June 1974), 115-139. DOI=10.1147/sj.132.0115
http://dx.doi.org/10.1147/sj.132.0115

Marco D'Ambros, Michele Lanza, and Romain Robbes. 2009. On the Relationship
Between Change Coupling and Software Defects. In Proceedings of the 2009 16th
Working Conference on Reverse Engineering (WCRE '09). IEEE Computer Society,
Washington, DC, USA, 135-144. DOI=10.1109/WCRE.2009.19
http://dx.doi.org/10.1109/WCRE.2009.19

Thomas Zimmermann, Stephan Diehl, and Andreas Zeller. 2003. How History
Justifies System Architecture (or Not). In Proceedings of the 6th International
Workshop on Principles of Software Evolution (IWPSE '03). IEEE Computer Society,
Some references may be missing, please enter in contact with us if you need them.
Washington, DC, USA, 73-.


Marco A. Gerosa (gerosa@ime.usp.br)

More Related Content

What's hot

Towards Knowledge Graphs of Reusable Research Software Metadata
Towards Knowledge Graphs of Reusable Research Software MetadataTowards Knowledge Graphs of Reusable Research Software Metadata
Towards Knowledge Graphs of Reusable Research Software Metadata
dgarijo
 

What's hot (6)

OBA: An Ontology-Based Framework for Creating REST APIs for Knowledge Graphs
OBA: An Ontology-Based Framework for Creating REST APIs for Knowledge GraphsOBA: An Ontology-Based Framework for Creating REST APIs for Knowledge Graphs
OBA: An Ontology-Based Framework for Creating REST APIs for Knowledge Graphs
 
A Template-Based Approach for Annotating Long-Tailed Datasets
A Template-Based Approach for Annotating Long-Tailed DatasetsA Template-Based Approach for Annotating Long-Tailed Datasets
A Template-Based Approach for Annotating Long-Tailed Datasets
 
Towards Reusable Research Software
Towards Reusable Research SoftwareTowards Reusable Research Software
Towards Reusable Research Software
 
Towards Knowledge Graphs of Reusable Research Software Metadata
Towards Knowledge Graphs of Reusable Research Software MetadataTowards Knowledge Graphs of Reusable Research Software Metadata
Towards Knowledge Graphs of Reusable Research Software Metadata
 
Entity Linking Combining Open Source Annotators
Entity Linking Combining Open Source AnnotatorsEntity Linking Combining Open Source Annotators
Entity Linking Combining Open Source Annotators
 
ICSE10 StakeNet Talk
ICSE10 StakeNet TalkICSE10 StakeNet Talk
ICSE10 StakeNet Talk
 

Similar to Uncovering hidden relationships from past changes: evolutionary dependencies and its applications

· Discussion Assignments You are required to answer one of t.docx
· Discussion Assignments You are required to answer one of t.docx· Discussion Assignments You are required to answer one of t.docx
· Discussion Assignments You are required to answer one of t.docx
oswald1horne84988
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
IJSEA
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
Majong DevJfu
 
The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...
CSCJournals
 

Similar to Uncovering hidden relationships from past changes: evolutionary dependencies and its applications (20)

A methodology to evaluate object oriented software systems using change requi...
A methodology to evaluate object oriented software systems using change requi...A methodology to evaluate object oriented software systems using change requi...
A methodology to evaluate object oriented software systems using change requi...
 
Changeability Evaluation Model for Object Oriented Software
Changeability Evaluation Model for Object Oriented SoftwareChangeability Evaluation Model for Object Oriented Software
Changeability Evaluation Model for Object Oriented Software
 
CHANGEABILITY EVALUATION MODEL FOR OBJECT ORIENTED SOFTWARE
CHANGEABILITY EVALUATION MODEL FOR OBJECT ORIENTED SOFTWARECHANGEABILITY EVALUATION MODEL FOR OBJECT ORIENTED SOFTWARE
CHANGEABILITY EVALUATION MODEL FOR OBJECT ORIENTED SOFTWARE
 
· Discussion Assignments You are required to answer one of t.docx
· Discussion Assignments You are required to answer one of t.docx· Discussion Assignments You are required to answer one of t.docx
· Discussion Assignments You are required to answer one of t.docx
 
AGILE SOFTWARE ARCHITECTURE INGLOBAL SOFTWARE DEVELOPMENT ENVIRONMENT:SYSTEMA...
AGILE SOFTWARE ARCHITECTURE INGLOBAL SOFTWARE DEVELOPMENT ENVIRONMENT:SYSTEMA...AGILE SOFTWARE ARCHITECTURE INGLOBAL SOFTWARE DEVELOPMENT ENVIRONMENT:SYSTEMA...
AGILE SOFTWARE ARCHITECTURE INGLOBAL SOFTWARE DEVELOPMENT ENVIRONMENT:SYSTEMA...
 
4213ijsea02
4213ijsea024213ijsea02
4213ijsea02
 
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
STRUCTURAL VALIDATION OF SOFTWARE PRODUCT LINE VARIANTS: A GRAPH TRANSFORMATI...
 
25 architectural adaptation
25 architectural adaptation25 architectural adaptation
25 architectural adaptation
 
130404 fehmi jaafar - on the relationship between program evolution and fau...
130404   fehmi jaafar - on the relationship between program evolution and fau...130404   fehmi jaafar - on the relationship between program evolution and fau...
130404 fehmi jaafar - on the relationship between program evolution and fau...
 
Csmr13c.ppt
Csmr13c.pptCsmr13c.ppt
Csmr13c.ppt
 
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...Assessing The Impact Of Global Variables On Program Dependence And Dependence...
Assessing The Impact Of Global Variables On Program Dependence And Dependence...
 
Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013Software architecture styles families_research_gssi_nov2013
Software architecture styles families_research_gssi_nov2013
 
Contributors to Reduce Maintainability Cost at the Software Implementation Phase
Contributors to Reduce Maintainability Cost at the Software Implementation PhaseContributors to Reduce Maintainability Cost at the Software Implementation Phase
Contributors to Reduce Maintainability Cost at the Software Implementation Phase
 
Articulo acm
Articulo acmArticulo acm
Articulo acm
 
Top Software Engineering & Applications Research articles of 2019
Top Software Engineering & Applications Research articles of 2019Top Software Engineering & Applications Research articles of 2019
Top Software Engineering & Applications Research articles of 2019
 
A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...
A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...
A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...
 
A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...
A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...
A DATA EXTRACTION ALGORITHM FROM OPEN SOURCE SOFTWARE PROJECT REPOSITORIES FO...
 
The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...The Application of Function Models In Software Design: A Survey Within the So...
The Application of Function Models In Software Design: A Survey Within the So...
 
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
 
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
ARCHITECTING IN THE CONTEXT OF AGILE SOFTWARE DEVELOPMENT: FRAGILITY VERSUS F...
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 

Uncovering hidden relationships from past changes: evolutionary dependencies and its applications

  • 1. UNCOVERING HIDDEN RELATIONSHIPS FROM PAST CHANGES: LOGICAL DEPENDENCIES AND ITS APPLICATIONS Marco Aurélio Gerosa / Gustavo Ansaldi Oliva Computer Science Dept. - University of São Paulo {gerosa,goliva}@ime.usp.br Kyoto Research Park Kyoto, Japan MSR Asia Summit 2013 October 28th, 2013
  • 3. Structural dependencies 3/31 doThisForMe() ClassA B, I need your help to do my work. Could you do this task for me? Marco A. Gerosa (gerosa@ime.usp.br) ClassB Hummm, someone is asking me to do something. Let’s do it!
  • 4. Software dependencies in general 4/31  A uses B if correct execution of B may be necessary for A to complete the task described in its specification [Parnas, 1979].  A depends on B if the last is needed to compile or link A [Lakos, 1996].  A dependency relation means that the semantics of the depending elements is semantically or structurally dependent on the definition of the supplier element [UML Formal Specification]. A dependency means that a client element has knowledge of A B the supplier element and a change in the supplier may affect Marco A. Gerosa (gerosa@ime.usp.br) 
  • 5. Dependencies can be harmful 5/31 B H C A G F D E • More dependencies, more maintenance effort [Banker et al.1998]. • More dependencies, more defects [Cataldo et al. 2009]. • Dependencies can lead to negative ripple effects [Pressman, 2001] ClassC Marco A. Gerosa (gerosa@ime.usp.br) doStuff() ClassA doThisForMe() ClassB
  • 6. Dependencies may be hard to identify 6/31    Publisher/subscriber, polymorphism, clones, cross cutting concerns, semantic relations etc. Unrecognized dependencies result in a higher number of defects [Herbsleb et al. 2006]. A dependency means that a client element has knowledge of the supplier element and a change in the supplier may affect the client [Larman, 2004]. Dependency Change Marco A. Gerosa (gerosa@ime.usp.br)
  • 7. Logical dependencies 7/31    Files frequently changed together share some sort of dependency [Gall et al. 1998] Logical dependencies better predict failures and quality compared to syntactic dependencies [Cataldo et al. 2009] Developers should focus on identifying less-explicit relationships rather than obvious and explicit syntactic dependencies [Cataldo, 2010] Marco A. Gerosa (gerosa@ime.usp.br) A B
  • 8. Collaborative filtering 8/31 Marco A. Gerosa (gerosa@ime.usp.br)
  • 9. Social aspects matter 9/31 Marco A. Gerosa (gerosa@ime.usp.br)
  • 10. How to identify logical dependencies 10/31  A logical dependency from A (client) to B (provider) occurs when changes to B are done together with changes to A A Strong Logical dependency from B to A (the opposite is a much weaker dependency) Marco A. Gerosa (gerosa@ime.usp.br) 80% 40% B A logical dependency denotes an implicit and evolutionary relationship between software artifacts
  • 11. Clustering Classes 11/31 Clustering classes based on modification records [Ball et al., 1997] Logical dependencies characterized as the probability of 2 classes changing together The cluster identified semanticrelated classes Marco A. Gerosa (gerosa@ime.usp.br) Thomas Ball, Yung-Min Kim, Adam Porter, Harvey Siy. If Your Version Control System Could Talk... Presented at the Workshop on Process Modelling and Empirical Studies of Software Engineering, ICSE 97, May 1997, MA, Boston
  • 12. Logical coupling based on releases periods 12 Gall et al. [1998] proposed an approach for logical dependency identification  “Our technique reveals hidden dependencies not evident in the source code, identifies modules that should undergo restructuring, and is based on minimal amount of data”  Use of the term for the first time Harald Gall, Karin Hajek, and Mehdi Jazayeri. 1998. Detection of  Logical Coupling Based on Product Release History. In Proceedings of the International Conference on Software Maintenance (ICSM '98). IEEE Computer Society, Washington, DC, USA, 190-198. A.ab.144 <1,2,4,7> C.bc.201 <1,2,4,7> [subsystem.module.program] Coupling among subsystems [Gall et
  • 13. Grouping consecutive changes in CVS repositories 13   Gall et al. [2003] defined an approach with a fixed time window to capture logical dependencies in CVS repositories Design flaws could be discovered without any analysis of source code Marco A. Gerosa (gerosa@ime.usp.br) Class 13.c.18.A was 21 times checked in together
  • 14. Association rules and sliding-time window 14  Zimmerman et al. [2005] formalized logical dependencies as association rules    Frequency Support Confidence They used a sliding-time window to recover change transactions from CVS  Correct prediction of more than 70% of following changes Thomas Zimmermann, Peter Weissgerber, Stephan Diehl, and Andreas Zeller. 2005. Mining Version Histories to Guide  Software Changes. IEEE Trans. Software Eng. 31, 6 (June 2005), 429-445. DOI=10.1109/TSE.2005.72
  • 15. 15 After the programmer has made some changes to the source (above), ROSE suggests locations (below) where, in similar transactions in the past, further changes were made [Zimmerman et al., 2005]
  • 16. Where are we? 16/31      What are Logical Dependencies? Identification of Logical Dependencies Applications of Logical Dependencies Our Research on Logical Dependencies The Road Ahead Marco A. Gerosa (gerosa@ime.usp.br)
  • 17. Evolution Radar 17/35  Marco A. Gerosa (gerosa@ime.usp.br) Marco D'Ambros, Michele Lanza, and Mircea Lungu. 2009. Visualizing Co-Change Information with the Evolution Radar. IEEE Trans. Softw. Eng. 35, 5 (September 2009), 720-735.
  • 18. Coordination requirements 18/35    Organizations often cope with complex tasks by dividing them into smaller interdependent work units and then assigning such units to teams Coordination among teams arises as a response to such interdependent work units Logical dependencies were applied to determine coordination requirements among developers Marcelo Cataldo, Patrick A. Wagstrom, James D. Herbsleb, and Kathleen M. Carley. 2006. Identification of coordination requirements: implications for the Design of collaboration and awareness tools. In Proceedings of the 2006 Conference on Computer supported cooperative work (CSCW '06).
  • 19. Applications 19/35    Pinzger et al. [2005] showed that it facilitates the detection of potential refactoring candidates. D’Ambros et al. [2006] showed that logical dependencies improved bug prediction models Breu and Zimmermann [2006] used it to identify and rank crosscutting concerns in software systems. Marco A. Gerosa (gerosa@ime.usp.br)
  • 20. And more… 20  Logical dependencies have also been employed to        The impact on failures [Cataldo et al., 2009] Change prediction and change impact analysis [Kagdi et al., 2007] Uncover cross-cutting concerns [Canfora et al., 2006] Uncover design flaws and opportunities for refactoring, restructuring, reenginering [Beyer & Hassan, 2006] Understand and evaluate software architecture [Zimmermman et al., 2003] Maintain documentation (internationalization, etc.) [Kagdi et al., 2006] … Marco A. Gerosa (gerosa@ime.usp.br)
  • 21. Where are we? 21/31      What are Logical Dependencies? Foundation of Logical Dependencies Applications of Logical Dependencies Our Research on Logical Dependencies The Road Ahead Marco A. Gerosa (gerosa@ime.usp.br)
  • 22. Structural vs logical dependencies 22/31   How do structural and logical dependencies relate? Analysis of commits of the ASF showed that:    Dependency 93% of the logical dependencies did not involve structural dependencies 95% of the structural dependencies did not imply in a logical dependency Structural dependencies do not frequently lead to logical dependencies (!) Gustavo Ansaldi Oliva and Marco Aurelio Gerosa. 2011. On the Interplay between Structural and Logical Dependencies in Open-Source Software. In Proceedings of the 2011 25th Brazilian Symposium on Software Engineering (SBES '11). IEEE Computer Change
  • 23. The origins of Logical Dependencies 23/31 Gustavo A. Oliva, Francisco W.S. Santana, Marco A. Gerosa, and Cleidson R.B. de Souza. 2011. Towards a classification of logical dependencies origins: a case study. In Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution (IWPSE-EVOL
  • 24. improve logical dependencies identification 24/31 Commit <> change  The implementation of a single change may span consecutive and closely related commits  Application of the CVS sliding time window approach [Zimmerman et al., 2004] to group timely-close and semantically-related change-sets, maintaining repository consistency Oliva, G. A., Santana, F., Gerosa, M. A., Souza, C. (2012), “Preprocessing Change-Sets to Improve  We were able to group ~10% of Logical Dependencies Identification”, Sixth International Workshop on Software Quality and Maintainability (SQM 2012) all commits in the ASF 
  • 25. Next steps 25/31    Develop a framework for the identification of logical dependencies Expand previous studies Survey about logical dependencies Marco A. Gerosa (gerosa@ime.usp.br)
  • 26. Where are we? 26/31      What are Logical Dependencies? Foundation of Logical Dependencies Applying Logical Dependencies Our Research on Logical Dependencies The Road Ahead Marco A. Gerosa (gerosa@ime.usp.br)
  • 27. Terminology 27/31  Different terms have often been used interchangeably  Logical dependencies or coupling  Change dependencies or coupling  Evolutionary dependencies or coupling  Historical dependencies or coupling  Co-changes Marco A. Gerosa (gerosa@ime.usp.br)
  • 28. And what happens between commits? 28 Marco A. Gerosa (gerosa@ime.usp.br) [Robbes et
  • 29. Challenges: Understanding Influencing Factors 29/31  Improve the identification of logical dependencies  Commit habits  The influence of the chosen technology (VCS)  The nature of changes  Period of analysis  Filtering options Marco A. Gerosa (gerosa@ime.usp.br)
  • 30. Summary 30/31  Logical dependencies have been applied for a variety of purposes  Useful to better understand software and organizational aspects  Complements existing approaches, techniques, and tools  Needs more investigation on its calculation Marco A. Gerosa (gerosa@ime.usp.br)
  • 31. Thank you for your attention 31/31 Marco Aurélio Gerosa Gustavo Ansaldi Twitter: {@gerosa_marco,@golivax} gerosa@ime.usp.br Oliva golivax@gmail.com Software Engineering & Collaborative Systems Research http://lapessc.ime.usp.br/
  • 32. References 32/31        D. L. Parnas. 1979. Designing Software for Ease of Extension and Contraction. IEEE Trans. Softw. Eng. 5, 2 (March 1979), 128-138. DOI=10.1109/TSE.1979.234169 John Lakos. 1996. Large-Scale C++ Software Design. Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA [UML Formal Specification] Retrieved from http://www.omg.org/technology/documents/formal/uml.htm Craig Larman. 2004. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development (3rd Edition). Prentice Hall PTR, Upper Saddle River, NJ, USA Marco D'Ambros and Michele Lanza. 2006. Reverse Engineering with Logical Coupling. In Proceedings of the 13th Working Conference on Reverse Engineering (WCRE '06). IEEE Computer Society, Washington, DC, USA, 189-198. DOI=10.1109/WCRE.2006.51 Banker, R., et al. Software Development Practices, Software Complexity, and Software Maintenance Performance: A Field Study. Management Science 40(4): 433–450. Romain Robbes. Of Change and Software. Phd Thesis. University of Lugano. Some references may be missing, please enter in contact with us if you need them. Marco A. Gerosa (gerosa@ime.usp.br)
  • 33. References 33/31  Thomas Ball, Yung-Min Kim, Adam Porter, Harvey Siy. If Your Version Control System Could Talk... Presented at the Workshop on Process Modelling and Empirical Studies of Software Engineering, ICSE 97, May 1997, MA, Boston  Cataldo, M., & Nambiar, S. (2010). The impact of geographic distribution and the nature of technical coupling on the quality of global software development projects. Quality. doi:10.1002/smr  Harald Gall, Karin Hajek, and Mehdi Jazayeri. 1998. Detection of Logical Coupling Based on Product Release History. In Proceedings of the International Conference on Software Maintenance (ICSM '98). IEEE Computer Society, Washington, DC, USA, 190-198.  Harald Gall, Mehdi Jazayeri, and Jacek Krajewski. 2003. CVS Release History Data for Detecting Logical Couplings. In Proceedings of the 6th International Workshop on Principles of Software Evolution (IWPSE '03). IEEE Computer Society, Washington, DC, USA, 13-.  Thomas Zimmermann, Peter Weisgerber, Stephan Diehl, and Andreas Zeller. 2004. Mining Version Histories to Guide Software Changes. In Proceedings of the 26th International Conference on Software Engineering (ICSE '04). IEEE Computer Society, Washington, DC, USA, 563-572.  Thomas Zimmermann, Peter Weissgerber, Stephan Diehl, and Andreas Zeller. 2005. Mining Version Histories to Guide Software Changes. IEEE Trans. Softw. Eng. 31, 6 (June 2005), 429-445. DOI=10.1109/TSE.2005.72 http://dx.doi.org/10.1109/TSE.2005.72 Some references may be missing, please enter in contact with us if you need them. Marco A. Gerosa (gerosa@ime.usp.br)
  • 34. References 34/31 Marco D'Ambros and Michele Lanza. 2006. Reverse Engineering with Logical Coupling. In Proceedings of the 13th Working Conference on Reverse Engineering (WCRE '06). IEEE Computer Society, Washington, DC, USA, 189-198. DOI=10.1109/WCRE.2006.51  W. P. Stevens, G. J. Myers, and L. L. Constantine. 1974. Structured design. IBM Syst. J. 13, 2 (June 1974), 115-139. DOI=10.1147/sj.132.0115 http://dx.doi.org/10.1147/sj.132.0115  Marco D'Ambros, Michele Lanza, and Romain Robbes. 2009. On the Relationship Between Change Coupling and Software Defects. In Proceedings of the 2009 16th Working Conference on Reverse Engineering (WCRE '09). IEEE Computer Society, Washington, DC, USA, 135-144. DOI=10.1109/WCRE.2009.19 http://dx.doi.org/10.1109/WCRE.2009.19  Thomas Zimmermann, Stephan Diehl, and Andreas Zeller. 2003. How History Justifies System Architecture (or Not). In Proceedings of the 6th International Workshop on Principles of Software Evolution (IWPSE '03). IEEE Computer Society, Some references may be missing, please enter in contact with us if you need them. Washington, DC, USA, 73-.  Marco A. Gerosa (gerosa@ime.usp.br)

Editor's Notes

  1. Harald Gall, Mehdi Jazayeri, and JacekKrajewski. 2003. CVS Release History Data for Detecting Logical Couplings. In Proceedings of the 6th International Workshop on Principles of Software Evolution (IWPSE &apos;03). IEEE Computer Society, Washington, DC, USA, 13-.
  2. Thomas Zimmermann, Peter Weissgerber, Stephan Diehl, and Andreas Zeller. 2005. Mining Version Histories to Guide Software Changes. IEEE Trans. Softw. Eng. 31, 6 (June 2005), 429-445. DOI=10.1109/TSE.2005.72 http://dx.doi.org/10.1109/TSE.2005.72 Based on their paper from ICSE: Thomas Zimmermann, Peter Weisgerber, Stephan Diehl, and Andreas Zeller. 2004. Mining Version Histories to Guide Software Changes. In Proceedings of the 26th International Conference on Software Engineering (ICSE &apos;04). IEEE Computer Society, Washington, DC, USA, 563-572.
  3. Evolution RadarMarco D&apos;Ambros, Michele Lanza, and MirceaLungu. 2006. The evolution radar: visualizing integrated logical coupling information. In Proceedings of the 2006 international workshop on Mining software repositories(MSR &apos;06). ACM, New York, NY, USA, 26-32. DOI=10.1145/1137983.1137992 http://doi.acm.org/10.1145/1137983.1137992Marco D&apos;Ambros, Michele Lanza, and MirceaLungu. 2009. Visualizing Co-Change Information with the Evolution Radar. IEEE Trans. Softw. Eng. 35, 5 (September 2009), 720-735. DOI=10.1109/TSE.2009.17 http://dx.doi.org/10.1109/TSE.2009.17
  4. Marcelo Cataldo, Patrick A. Wagstrom, James D. Herbsleb, and Kathleen M. Carley. 2006. Identification of coordination requirements: implications for the Design of collaboration and awareness tools. In Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work (CSCW &apos;06). ACM, New York, NY, USA, 353-362. DOI=10.1145/1180875.1180929 http://doi.acm.org/10.1145/1180875.1180929
  5. S. Breu and T. Zimmermann. Mining aspects from version history. In Proceedings of the 21st IEEE International Conference on Automated Software Engineering (ASE’06), pages 221–230. IEEE Computer Society, 2006M. Pinzger, H. Gall, M. Fischer, and M. Lanza. Visualizing multiple evolution metrics. In Proceedings of SoftVis 2005 (2nd ACM Symposium on Software Visualization), pages 67–75, St. Louis, Missouri, USA, May 2005.
  6. Marcelo Cataldo, AudrisMockus, Jeffrey A. Roberts, and James D. Herbsleb. 2009. Software Dependencies, Work Dependencies, and Their Impact on Failures. IEEE Trans. Softw. Eng. 35, 6 (November 2009), 864-878. DOI=10.1109/TSE.2009.42 http://dx.doi.org/10.1109/TSE.2009.42