SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Detec%ng
So+ware

       Modularity
Viola%ons



       Sunny
Wong,^*
Yuanfang
Cai,*

       Miryung
Kim,†
and
Michael
Dalton*


       *
Drexel
University

       †
University
of
Texas
at
Aus%n

       ^
Siemens
Healthcare



Supported
in
part
by
NSF
CCF‐0916891,
CCF‐1043810,
and
DUE‐0837665

Mo%va%on

    The
Essence
of
Modularity:


          Allows
for
independent
module
evolu%on

           [Parnas
72;
Baldwin
and
Clark
00]

    In
reality,
modules
do
not
always
change
independently

          Quick
and
dirty
implementa%on
leaves
technical
debts

          So+ware
evolves
in
a
way
that
deviates
from
original
design


    Modularity
viola%on:


          Components
that
are
designed
to
evolve
independently
yet
change

           together
in
reality
frequently

    Our
goal:


          Detect
modularity
viola%ons

          Slow
down
modularity
decay

Limita%ons
of
Exis%ng
Approaches

    Verifica%on
and
valida%on

          Modularity
viola%ons
usually
do
not
affect
func%onality

          Not
testable

          Not
problema%c
un%l
maintenance

    Tradi%onal
modularity
analyses

          Prevailing
metrics
(e.g.,
coupling,
cohesion)
do
not
measure

           independence
of
module
evolu%on

          Do
not
detect
the
mismatches
between
design
and
reality

    Code
smell
analyses

          Not
all
code
smells
cause
modularity
viola%on

          Not
all
modularity
viola%ons
are
code
smells

Approach
Overview

    Step
1:
Find
which
modules
should
change
together
from
their

     design
structure

          Input:
design
model
(e.g.,
UML,
source
code)


          Clio
finds
modules
from
derived
design
structure
matrix
(DSM)

           [Baldwin
and
Clark
00]

    Step
2:
Find
which
modules
actually
change
together
in
reality

          Input:
revision
history

          Clio
finds
logical
coupling
of
components
[Ying
et
al.
04]

    Step
3:
Discover
recurring
discrepancies
between
the
output

     of
step
1
and
the
output
of
step
2
as
modularity
viola-ons

          Clio
compares
which
modules
should
change
together
with
which

           modules
actually
change
together

          Recurring
discrepancies
are
reported
as
modularity
viola%ons

Example
(Maze
Game)





          [Gamma
et
al.
94]

Design
Rule
Hierarchy
Analysis







            [Wong
et
al.
09]

Step
1:
Structure‐based
Impact
Analysis



                              Green: change seed
                              Blue: structure-based impact scope
Change seed: Door
Structure Impact-scope:
 MazeFactory
 DoorNeedingSpell
 …




                          Change seed:
                           EnchantedMazeFactory
                          Structure Impact-scope:
                           (none)
Step
2:
History‐based
Impact
Analysis



                            Green: change seed

                            Red: history-based impact scope
Change seed: Door
History Impact-scope:
 MapSite




                        Change seed:
                         EnchantedMazeFactory
                        History Impact-scope:
                         BombedMazeFactory
Step
3:
Find
Discrepancies



                              Green: change seed
                              Blue: structure-based impact scope
                              Red: history-based impact scope
Change seed: Door
Structure Impact-scope:
 MazeFactory
 DoorNeedingSpell
 …
History Impact-scope:
 MapSite


                          Change seed:
                           EnchantedMazeFactory
                          Structure Impact-scope:
                           (none)
                          History Impact-scope:
                           BombedMazeFactory
Iden%fy
Recurring
Discrepancies
as

          Modularity
Viola%ons

    Example
discrepancy
sets:
{a,
b},
{a,
b,
c},
{a,
b}


                                      Frequency

                       {a,
b}
            3

                       {a,
c}
            1

                      {a,
b,
c}
          1



    Clio
takes
minimal
frequency
threshold
as
input,
and
orders

     the
discrepancies
according
to
their
frequencies.


Evalua%on


    Evalua%on
ques%ons


          Q1:

How
accurate
are
the
viola%ons
iden%fied
by
Clio?

          Q2:

How
early
can
Clio
iden%fy
viola%ons?

          Q3:

What
are
the
characteris%cs
of
viola%ons
iden%fied
by
Clio?



    Manually
confirm
viola%ons
by
looking
forward
in
history

          Refactoring
in
codebase

          Developer
recogni%on
(e.g.,
change
request)

          Symptoms
of
code
smells



    Conserva%ve
confirma%on

Evalua%on
Subjects

    Eclipse
JDT

          10
releases
(~3
years)

          27806
commits
in
revision
history

          3458
modifica%on
requests

          222
KSLOC
in
latest
version

    Hadoop
Common

          15
releases
(~3
years)

          3001
commits
in
revision
history

          490
modifica%on
requests

          64
KSLOC
in
latest
version

    Experimental
Serngs

          Minimal
threshold
of
recurring
discrepancies:
2

          Length
of
sliding
window
for
analysis:

5
releases


Q1:
Accuracy
of
Detected
Modularity


Viola%ons



                Reported
      Total

                                         Precision

                Viola3ons
   Confirmed


 Eclipse
JDT
      399
        161
        40%


 Hadoop
           231
        152
        66%

Q2:
Timeliness
of
Modularity
Viola%on


          Detec%on

    Hadoop:
Clio
detects
modularity
viola%ons,
on
average,
6

     releases
before
developers
iden%fy
the
design
problems

    Eclipse:
Clio
detects
modularity
viola%ons,
on
average,
5

     releases
before
developers
iden%fy
the
design
problems

Q3:
Characteris%cs
of
Modularity


             Viola%ons


    Analyzed
symptoms
of
modularity
viola%ons

          Cyclic
dependencies

          Cloned
code

          Poor
inheritance
hierarchy

          Unnamed
coupling
(43%
in
Hadoop,
16%
in
Eclipse)

    Example
of
unnamed
coupling

          Several
classes
iden%fied
as
a
part
of
modularity
viola%ons,
but
do
not

           exhibit
any
symptoms
of
bad
code
smells.


          Open
modifica%on
request
to
“redesign/refactor”
those
classes

           because
they
are
“hard
to
maintain,
briwle,
and
merits
some
rework”

Summary

    We
define
modularity
viola-on
as
the
mismatches
between

     designed
modular
structure
and
actual
evolu%on
path

    Clio
compares
how
modules
should
change
together
against

     how
modules
actually
change
together
to
discover
modularity

     viola-ons

    Can
detect
modularity
viola%ons
with
40%
accuracy
for
Eclipse

     and
66%
accuracy
for
Hadoop

    Can
iden%fy
modularity
viola%ons
several
releases
before

     developers
discover
them


    Symptoms
of
modularity
viola%ons
observed
in
our
study
go

     beyond
known
bad
smells


Detec%ng
So+ware

       Modularity
Viola%ons



       Sunny
Wong,^*
Yuanfang
Cai,*

       Miryung
Kim,†
and
Michael
Dalton*


       *
Drexel
University

       †
University
of
Texas
at
Aus%n

       ^
Siemens
Healthcare



Supported
in
part
by
NSF
CCF‐0916891,
CCF‐1043810,
and
DUE‐0837665


Weitere ähnliche Inhalte

Ähnlich wie ICSE 2011 Research Paper on Modularity Violations

An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect PredictionAn Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
SAIL_QU
 
20080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture0120080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture01
Computer Science Club
 
Avoiding Software Insanity
Avoiding Software InsanityAvoiding Software Insanity
Avoiding Software Insanity
josephnaveen
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
guestebde
 
Testing survey by_directions
Testing survey by_directionsTesting survey by_directions
Testing survey by_directions
Tao He
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburg
SAIL_QU
 

Ähnlich wie ICSE 2011 Research Paper on Modularity Violations (20)

Changes and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development ActivitiesChanges and Bugs: Mining and Predicting Development Activities
Changes and Bugs: Mining and Predicting Development Activities
 
Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...Detecting the High Level Similarities in Software Implementation Process Usin...
Detecting the High Level Similarities in Software Implementation Process Usin...
 
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelAn Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
 
Incremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software EngineeringIncremental Model Queries for Model-Dirven Software Engineering
Incremental Model Queries for Model-Dirven Software Engineering
 
IEEE ACM Studying the Relationship between Exception Handling Practices and P...
IEEE ACM Studying the Relationship between Exception Handling Practices and P...IEEE ACM Studying the Relationship between Exception Handling Practices and P...
IEEE ACM Studying the Relationship between Exception Handling Practices and P...
 
An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect PredictionAn Exploration of Challenges Limiting Pragmatic Software Defect Prediction
An Exploration of Challenges Limiting Pragmatic Software Defect Prediction
 
20080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture0120080501 software verification_sharygina_lecture01
20080501 software verification_sharygina_lecture01
 
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
On Modeling and Testing When Unpredictability Becomes the Pattern (April 2nd,...
 
Avoiding Software Insanity
Avoiding Software InsanityAvoiding Software Insanity
Avoiding Software Insanity
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
2011-05-02 - VU Amsterdam - Testing safety critical systems
2011-05-02 - VU Amsterdam - Testing safety critical systems2011-05-02 - VU Amsterdam - Testing safety critical systems
2011-05-02 - VU Amsterdam - Testing safety critical systems
 
Testing survey by_directions
Testing survey by_directionsTesting survey by_directions
Testing survey by_directions
 
Scalax
ScalaxScalax
Scalax
 
IEEE ICPC 2017 - Studying the Prevalence of Exception Handling Anti-Patterns
IEEE ICPC 2017 - Studying the Prevalence of Exception Handling Anti-PatternsIEEE ICPC 2017 - Studying the Prevalence of Exception Handling Anti-Patterns
IEEE ICPC 2017 - Studying the Prevalence of Exception Handling Anti-Patterns
 
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsTowards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
 
STiki: An Anti-vandalism Tool for Wikipedia using the Spatio-temporal Propert...
STiki: An Anti-vandalism Tool for Wikipedia using the Spatio-temporal Propert...STiki: An Anti-vandalism Tool for Wikipedia using the Spatio-temporal Propert...
STiki: An Anti-vandalism Tool for Wikipedia using the Spatio-temporal Propert...
 
2010-03-31 - VU Amsterdam - Experiences testing safety critical systems
2010-03-31 - VU Amsterdam - Experiences testing safety critical systems2010-03-31 - VU Amsterdam - Experiences testing safety critical systems
2010-03-31 - VU Amsterdam - Experiences testing safety critical systems
 
Symbolic Execution And KLEE
Symbolic Execution And KLEESymbolic Execution And KLEE
Symbolic Execution And KLEE
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Wcre2009 bettenburg
Wcre2009 bettenburgWcre2009 bettenburg
Wcre2009 bettenburg
 

Kürzlich hochgeladen

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
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
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
 
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
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
"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 ...
 
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
 
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
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

ICSE 2011 Research Paper on Modularity Violations

  • 1. Detec%ng
So+ware
 Modularity
Viola%ons
 Sunny
Wong,^*
Yuanfang
Cai,*
 Miryung
Kim,†
and
Michael
Dalton*
 *
Drexel
University
 †
University
of
Texas
at
Aus%n
 ^
Siemens
Healthcare
 Supported
in
part
by
NSF
CCF‐0916891,
CCF‐1043810,
and
DUE‐0837665

  • 2. Mo%va%on
   The
Essence
of
Modularity:

   Allows
for
independent
module
evolu%on
 [Parnas
72;
Baldwin
and
Clark
00]
   In
reality,
modules
do
not
always
change
independently
   Quick
and
dirty
implementa%on
leaves
technical
debts
   So+ware
evolves
in
a
way
that
deviates
from
original
design

   Modularity
viola%on:

   Components
that
are
designed
to
evolve
independently
yet
change
 together
in
reality
frequently
   Our
goal:

   Detect
modularity
viola%ons
   Slow
down
modularity
decay

  • 3. Limita%ons
of
Exis%ng
Approaches
   Verifica%on
and
valida%on
   Modularity
viola%ons
usually
do
not
affect
func%onality
   Not
testable
   Not
problema%c
un%l
maintenance
   Tradi%onal
modularity
analyses
   Prevailing
metrics
(e.g.,
coupling,
cohesion)
do
not
measure
 independence
of
module
evolu%on
   Do
not
detect
the
mismatches
between
design
and
reality
   Code
smell
analyses
   Not
all
code
smells
cause
modularity
viola%on
   Not
all
modularity
viola%ons
are
code
smells

  • 4. Approach
Overview
   Step
1:
Find
which
modules
should
change
together
from
their
 design
structure
   Input:
design
model
(e.g.,
UML,
source
code)

   Clio
finds
modules
from
derived
design
structure
matrix
(DSM)
 [Baldwin
and
Clark
00]
   Step
2:
Find
which
modules
actually
change
together
in
reality
   Input:
revision
history
   Clio
finds
logical
coupling
of
components
[Ying
et
al.
04]
   Step
3:
Discover
recurring
discrepancies
between
the
output
 of
step
1
and
the
output
of
step
2
as
modularity
viola-ons
   Clio
compares
which
modules
should
change
together
with
which
 modules
actually
change
together
   Recurring
discrepancies
are
reported
as
modularity
viola%ons

  • 5. Example
(Maze
Game)
 [Gamma
et
al.
94]

  • 7. Step
1:
Structure‐based
Impact
Analysis

 Green: change seed Blue: structure-based impact scope Change seed: Door Structure Impact-scope: MazeFactory DoorNeedingSpell … Change seed: EnchantedMazeFactory Structure Impact-scope: (none)
  • 8. Step
2:
History‐based
Impact
Analysis

 Green: change seed Red: history-based impact scope Change seed: Door History Impact-scope: MapSite Change seed: EnchantedMazeFactory History Impact-scope: BombedMazeFactory
  • 9. Step
3:
Find
Discrepancies

 Green: change seed Blue: structure-based impact scope Red: history-based impact scope Change seed: Door Structure Impact-scope: MazeFactory DoorNeedingSpell … History Impact-scope: MapSite Change seed: EnchantedMazeFactory Structure Impact-scope: (none) History Impact-scope: BombedMazeFactory
  • 10. Iden%fy
Recurring
Discrepancies
as
 Modularity
Viola%ons
   Example
discrepancy
sets:
{a,
b},
{a,
b,
c},
{a,
b}
 Frequency
 {a,
b}
 3
 {a,
c}
 1
 {a,
b,
c}
 1
   Clio
takes
minimal
frequency
threshold
as
input,
and
orders
 the
discrepancies
according
to
their
frequencies.


  • 11. Evalua%on
   Evalua%on
ques%ons

   Q1:

How
accurate
are
the
viola%ons
iden%fied
by
Clio?
   Q2:

How
early
can
Clio
iden%fy
viola%ons?
   Q3:

What
are
the
characteris%cs
of
viola%ons
iden%fied
by
Clio?
   Manually
confirm
viola%ons
by
looking
forward
in
history
   Refactoring
in
codebase
   Developer
recogni%on
(e.g.,
change
request)
   Symptoms
of
code
smells
   Conserva%ve
confirma%on

  • 12. Evalua%on
Subjects
   Eclipse
JDT
   10
releases
(~3
years)
   27806
commits
in
revision
history
   3458
modifica%on
requests
   222
KSLOC
in
latest
version
   Hadoop
Common
   15
releases
(~3
years)
   3001
commits
in
revision
history
   490
modifica%on
requests
   64
KSLOC
in
latest
version
   Experimental
Serngs
   Minimal
threshold
of
recurring
discrepancies:
2
   Length
of
sliding
window
for
analysis:

5
releases


  • 13. Q1:
Accuracy
of
Detected
Modularity

 Viola%ons
 Reported
 Total
 Precision
 Viola3ons
 Confirmed
 Eclipse
JDT
 399
 161
 40%
 Hadoop
 231
 152
 66%

  • 14. Q2:
Timeliness
of
Modularity
Viola%on

 Detec%on
   Hadoop:
Clio
detects
modularity
viola%ons,
on
average,
6
 releases
before
developers
iden%fy
the
design
problems
   Eclipse:
Clio
detects
modularity
viola%ons,
on
average,
5
 releases
before
developers
iden%fy
the
design
problems

  • 15. Q3:
Characteris%cs
of
Modularity

 Viola%ons
   Analyzed
symptoms
of
modularity
viola%ons
   Cyclic
dependencies
   Cloned
code
   Poor
inheritance
hierarchy
   Unnamed
coupling
(43%
in
Hadoop,
16%
in
Eclipse)
   Example
of
unnamed
coupling
   Several
classes
iden%fied
as
a
part
of
modularity
viola%ons,
but
do
not
 exhibit
any
symptoms
of
bad
code
smells.

   Open
modifica%on
request
to
“redesign/refactor”
those
classes
 because
they
are
“hard
to
maintain,
briwle,
and
merits
some
rework”

  • 16. Summary
   We
define
modularity
viola-on
as
the
mismatches
between
 designed
modular
structure
and
actual
evolu%on
path
   Clio
compares
how
modules
should
change
together
against
 how
modules
actually
change
together
to
discover
modularity
 viola-ons
   Can
detect
modularity
viola%ons
with
40%
accuracy
for
Eclipse
 and
66%
accuracy
for
Hadoop
   Can
iden%fy
modularity
viola%ons
several
releases
before
 developers
discover
them

   Symptoms
of
modularity
viola%ons
observed
in
our
study
go
 beyond
known
bad
smells


  • 17. Detec%ng
So+ware
 Modularity
Viola%ons
 Sunny
Wong,^*
Yuanfang
Cai,*
 Miryung
Kim,†
and
Michael
Dalton*
 *
Drexel
University
 †
University
of
Texas
at
Aus%n
 ^
Siemens
Healthcare
 Supported
in
part
by
NSF
CCF‐0916891,
CCF‐1043810,
and
DUE‐0837665