SlideShare ist ein Scribd-Unternehmen logo
1 von 20
How effective is modularization?
                                                                      Neil Thomas
                                                                      Gail Murphy




   Modular programming is a software design technique according to which the
                software is composed of separate components.


The primary construct of study is the use of bug reports as the logical unit of change
                              to the analyzed system.
Problem
• Are Most Changes to a system contained
  in a module?
• When we change one module, do we
  need to look at the code, inside other
  ones?
• Can change patterns suggest a better
  modularization?
Solution
• Analysis of three open source software
  systems:
1. Evolution: an integrated email, address book, and
   calendar application included in the GNOME destop.
2. Mozilla firefox: A popular cross-platform web
   browser.
3. Mylyn: a task-focused interface for Eclipse.
Evaluation
• The Systems
• Change
• Module
The systems
Cont…
• Evolution: Is characterized by a period of slow
  change initially, followed by a long period of
  substantial activity.
Cont…
• Firefox: Changes less frequently and shows almost
  no activity after a certain point, as developers
  complete work on 3.5 version and moved to the next
  version.
Cont…
• Mylyn: appears to grow in periodic burst over
  the years.
Change

• Each report captures the notion of a single logical change to
  the system, which could be made either to fix a defect or to
  add new functionality to the system.
Cont…
Distribution of number of lines of code modified
  in each change of Firefox.
Module
• Module is defined in terms of the directory structure
  that is used by each system to store the code.
        Both Evolution and Firefox use simple directory structure that
    matches the way other data is stored on the computer.




         Mylyn has a different directory structure. Java source files are arranged
    in nested directory structure that matches there package declaration,
    resulting in much deeper folder hierarchy then we find in C/C++.
                            org.eclipse.mylyn.bugzilla.ui
                    /src/org/eclipse/mylyn/internal/bugzilla/ui
                                       /action
                                       /editor
                                       /search
Analysis/Results
• Change Locality:
Number of modules affected by each change
Cont…
Modules modified per change in each system.
• Examined Modules:
• Emergent Modularity:

 Previous results: separation of the system into modules according to
  structure of its directory is sensible;

 3 Scenarios:
   –Same top level directories changed together
   –Different top level, same name change together (browser/themes : toolkit/themes)
   –A module that always changes with several others (tasks in Mylyn)

 Firefox: there are several ways how this system could be break into
  modules;

 Mylyn: Not a perfect modular structure.
Limitations
•   Construct comes form the simple pattern-matching technique we use to
    associate commits with bug reports, this does not guarantee that all of
    the links between bug reports and commits are found.

•   Assumed that each bug report corresponds to a single logical change to
    the system, but this does not hold for all bug reports.

•   Very small set of systems from which to generalize.

•   All the systems analyzed were open source, which may have different
    change pattern then industrial system.

•   Different interpretations of what a module is could lead to different
    results
Putting the work into perspective

 Tools that help guide developers to look at modules that their
  colleagues have consulted to complete similar changes could
  help reduce time need to make changes.

 Current modularization techniques seem to help developers
  in their work, there is still room for improvement.

 Analysis of work patterns with modules could suggest
  remodularizations of the system.
Take away
• Most changes in the system are isolated in the single
  module, but require investigation into other
  modules.
Future Work
• Expand Variation and Sample Size of Systems
  to study.
Thank you

Weitere ähnliche Inhalte

Was ist angesagt?

Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering Madhar Khan Pathan
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patternsdeep sharma
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
Coupler 1 - Pager
Coupler 1 - PagerCoupler 1 - Pager
Coupler 1 - PagerRod Spencer
 
Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...Amanuel Alemayehu
 
SWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design StrategiesSWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design Strategiesghayour abbas
 
Software architecture
Software architectureSoftware architecture
Software architectureUri Meirav
 
Good Programming Practice
Good Programming PracticeGood Programming Practice
Good Programming PracticeBikalpa Gyawali
 

Was ist angesagt? (11)

Fundamentals of Software Engineering
Fundamentals of Software Engineering Fundamentals of Software Engineering
Fundamentals of Software Engineering
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
4.4 implementation
4.4 implementation4.4 implementation
4.4 implementation
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Coupler 1 - Pager
Coupler 1 - PagerCoupler 1 - Pager
Coupler 1 - Pager
 
Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...
 
SWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design StrategiesSWE-401 - 7. Software Design Strategies
SWE-401 - 7. Software Design Strategies
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Good Programming Practice
Good Programming PracticeGood Programming Practice
Good Programming Practice
 
Inp tooptimmempropslinkedinpost 25mar18_002a
Inp tooptimmempropslinkedinpost 25mar18_002aInp tooptimmempropslinkedinpost 25mar18_002a
Inp tooptimmempropslinkedinpost 25mar18_002a
 

Andere mochten auch

Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012Experiencia Trading
 
Redweb Innovation 2010
Redweb Innovation 2010Redweb Innovation 2010
Redweb Innovation 2010David Burton
 
Estrategia para privatizar pemex
Estrategia para privatizar pemexEstrategia para privatizar pemex
Estrategia para privatizar pemexResistencia2018
 
WCPT Disaster Management Report 2016
WCPT Disaster Management Report 2016WCPT Disaster Management Report 2016
WCPT Disaster Management Report 2016Dr. Chris Stout
 
Turn your information into a story that resonates
Turn your information into a story that resonatesTurn your information into a story that resonates
Turn your information into a story that resonatesPatricia McMillan
 
Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.José María
 
Hobbim az olvasás
Hobbim az olvasásHobbim az olvasás
Hobbim az olvasásmatraiorsi
 
Семинар ФКН: современные подходы к разработке ПО - часть 2
Семинар ФКН: современные подходы к разработке ПО - часть 2Семинар ФКН: современные подходы к разработке ПО - часть 2
Семинар ФКН: современные подходы к разработке ПО - часть 2Andrii Gakhov
 
Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions
Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions
Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions Ogilvy
 
03 - Presidential Powers
03 - Presidential Powers03 - Presidential Powers
03 - Presidential PowersPaul English
 

Andere mochten auch (20)

Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012Grafico diario del dax perfomance index para el 12 07-2012
Grafico diario del dax perfomance index para el 12 07-2012
 
contabilidad gubernamental
contabilidad gubernamentalcontabilidad gubernamental
contabilidad gubernamental
 
Mini guida stile di pubblicazione dei contenuti digitali sui social network
 Mini guida stile di pubblicazione dei contenuti digitali sui social network Mini guida stile di pubblicazione dei contenuti digitali sui social network
Mini guida stile di pubblicazione dei contenuti digitali sui social network
 
Redweb Innovation 2010
Redweb Innovation 2010Redweb Innovation 2010
Redweb Innovation 2010
 
Estrategia para privatizar pemex
Estrategia para privatizar pemexEstrategia para privatizar pemex
Estrategia para privatizar pemex
 
WCPT Disaster Management Report 2016
WCPT Disaster Management Report 2016WCPT Disaster Management Report 2016
WCPT Disaster Management Report 2016
 
Motivación laboral
Motivación laboralMotivación laboral
Motivación laboral
 
Turn your information into a story that resonates
Turn your information into a story that resonatesTurn your information into a story that resonates
Turn your information into a story that resonates
 
Scala traits
Scala traitsScala traits
Scala traits
 
Material para investidores
Material para investidoresMaterial para investidores
Material para investidores
 
Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.Empleo con apoyo. principios, valores y proceso.
Empleo con apoyo. principios, valores y proceso.
 
Sangeetha Vairavel
Sangeetha VairavelSangeetha Vairavel
Sangeetha Vairavel
 
Hobbim az olvasás
Hobbim az olvasásHobbim az olvasás
Hobbim az olvasás
 
Wearables - Player oder Pipe
Wearables - Player oder PipeWearables - Player oder Pipe
Wearables - Player oder Pipe
 
Семинар ФКН: современные подходы к разработке ПО - часть 2
Семинар ФКН: современные подходы к разработке ПО - часть 2Семинар ФКН: современные подходы к разработке ПО - часть 2
Семинар ФКН: современные подходы к разработке ПО - часть 2
 
Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions
Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions
Why Images Are Worth More Words Than Ever #OgilvyCannes / #CannesLions
 
Presentación TynTun
Presentación TynTunPresentación TynTun
Presentación TynTun
 
課題
課題課題
課題
 
03 - Presidential Powers
03 - Presidential Powers03 - Presidential Powers
03 - Presidential Powers
 
Much ado about...documents nashville
Much ado about...documents nashvilleMuch ado about...documents nashville
Much ado about...documents nashville
 

Ähnlich wie How effective is modularization

Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminariesMoutasm Tamimi
 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Mumbai Academisc
 
effective modular design.pptx
effective modular design.pptxeffective modular design.pptx
effective modular design.pptxDr.Shweta
 
System software design1
System software design1System software design1
System software design1PrityRawat2
 
DOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cDOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cfloraaluoch3
 
Reusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOADReusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOADShivani Kapoor
 
Se 381 - lec 22 - 24 - 12 may15 - modularity - i - coupling
Se 381 - lec 22 - 24  - 12 may15 - modularity - i - couplingSe 381 - lec 22 - 24  - 12 may15 - modularity - i - coupling
Se 381 - lec 22 - 24 - 12 may15 - modularity - i - couplingbabak danyal
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesnimmik4u
 
Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Taymoor Nazmy
 
Software Eng S3 ( Software Design ).pptx
Software Eng S3 ( Software Design ).pptxSoftware Eng S3 ( Software Design ).pptx
Software Eng S3 ( Software Design ).pptxgauriVarshney8
 
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptxWINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptxVivekananda Gn
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
 
Software Design ppt.pptx
Software Design ppt.pptxSoftware Design ppt.pptx
Software Design ppt.pptxSeemaSarvath1
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering arvind pandey
 
Software architecture 4
Software architecture 4Software architecture 4
Software architecture 4Ahmad Zee
 
10 architectural design
10 architectural design10 architectural design
10 architectural designAyesha Bhatti
 

Ähnlich wie How effective is modularization (20)

Software evolution and maintenance basic concepts and preliminaries
Software evolution and maintenance   basic concepts and preliminariesSoftware evolution and maintenance   basic concepts and preliminaries
Software evolution and maintenance basic concepts and preliminaries
 
Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...Coupling based structural metrics for measuring the quality of a software (sy...
Coupling based structural metrics for measuring the quality of a software (sy...
 
effective modular design.pptx
effective modular design.pptxeffective modular design.pptx
effective modular design.pptx
 
System software design1
System software design1System software design1
System software design1
 
DOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in cDOC-20210303-WA0017..pptx,coding stuff in c
DOC-20210303-WA0017..pptx,coding stuff in c
 
Reusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOADReusibility vs Extensibility in OOAD
Reusibility vs Extensibility in OOAD
 
Se 381 - lec 22 - 24 - 12 may15 - modularity - i - coupling
Se 381 - lec 22 - 24  - 12 may15 - modularity - i - couplingSe 381 - lec 22 - 24  - 12 may15 - modularity - i - coupling
Se 381 - lec 22 - 24 - 12 may15 - modularity - i - coupling
 
Function Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniquesFunction Oriented and Object Oriented Design,Modularization techniques
Function Oriented and Object Oriented Design,Modularization techniques
 
Software Engineering Lec 8-design-
Software Engineering Lec 8-design-Software Engineering Lec 8-design-
Software Engineering Lec 8-design-
 
Software Eng S3 ( Software Design ).pptx
Software Eng S3 ( Software Design ).pptxSoftware Eng S3 ( Software Design ).pptx
Software Eng S3 ( Software Design ).pptx
 
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptxWINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
WINSEM2022-23_SWE2004_ETH_VL2022230501954_2023-02-01_Reference-Material-I.pptx
 
SMD Unit i
SMD Unit iSMD Unit i
SMD Unit i
 
Software design
Software designSoftware design
Software design
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Software Design ppt.pptx
Software Design ppt.pptxSoftware Design ppt.pptx
Software Design ppt.pptx
 
Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering Unit 5- Architectural Design in software engineering
Unit 5- Architectural Design in software engineering
 
Software Design - SDLC Model
Software Design - SDLC ModelSoftware Design - SDLC Model
Software Design - SDLC Model
 
Software architecture 4
Software architecture 4Software architecture 4
Software architecture 4
 
Design Principles
Design PrinciplesDesign Principles
Design Principles
 
10 architectural design
10 architectural design10 architectural design
10 architectural design
 

How effective is modularization

  • 1. How effective is modularization? Neil Thomas Gail Murphy Modular programming is a software design technique according to which the software is composed of separate components. The primary construct of study is the use of bug reports as the logical unit of change to the analyzed system.
  • 2. Problem • Are Most Changes to a system contained in a module? • When we change one module, do we need to look at the code, inside other ones? • Can change patterns suggest a better modularization?
  • 3. Solution • Analysis of three open source software systems: 1. Evolution: an integrated email, address book, and calendar application included in the GNOME destop. 2. Mozilla firefox: A popular cross-platform web browser. 3. Mylyn: a task-focused interface for Eclipse.
  • 4. Evaluation • The Systems • Change • Module
  • 6. Cont… • Evolution: Is characterized by a period of slow change initially, followed by a long period of substantial activity.
  • 7. Cont… • Firefox: Changes less frequently and shows almost no activity after a certain point, as developers complete work on 3.5 version and moved to the next version.
  • 8. Cont… • Mylyn: appears to grow in periodic burst over the years.
  • 9. Change • Each report captures the notion of a single logical change to the system, which could be made either to fix a defect or to add new functionality to the system.
  • 10. Cont… Distribution of number of lines of code modified in each change of Firefox.
  • 11. Module • Module is defined in terms of the directory structure that is used by each system to store the code.  Both Evolution and Firefox use simple directory structure that matches the way other data is stored on the computer.  Mylyn has a different directory structure. Java source files are arranged in nested directory structure that matches there package declaration, resulting in much deeper folder hierarchy then we find in C/C++. org.eclipse.mylyn.bugzilla.ui /src/org/eclipse/mylyn/internal/bugzilla/ui /action /editor /search
  • 12. Analysis/Results • Change Locality: Number of modules affected by each change
  • 13. Cont… Modules modified per change in each system.
  • 15. • Emergent Modularity:  Previous results: separation of the system into modules according to structure of its directory is sensible;  3 Scenarios: –Same top level directories changed together –Different top level, same name change together (browser/themes : toolkit/themes) –A module that always changes with several others (tasks in Mylyn)  Firefox: there are several ways how this system could be break into modules;  Mylyn: Not a perfect modular structure.
  • 16. Limitations • Construct comes form the simple pattern-matching technique we use to associate commits with bug reports, this does not guarantee that all of the links between bug reports and commits are found. • Assumed that each bug report corresponds to a single logical change to the system, but this does not hold for all bug reports. • Very small set of systems from which to generalize. • All the systems analyzed were open source, which may have different change pattern then industrial system. • Different interpretations of what a module is could lead to different results
  • 17. Putting the work into perspective  Tools that help guide developers to look at modules that their colleagues have consulted to complete similar changes could help reduce time need to make changes.  Current modularization techniques seem to help developers in their work, there is still room for improvement.  Analysis of work patterns with modules could suggest remodularizations of the system.
  • 18. Take away • Most changes in the system are isolated in the single module, but require investigation into other modules.
  • 19. Future Work • Expand Variation and Sample Size of Systems to study.