SlideShare a Scribd company logo
1 of 37
Download to read offline
The Evolution of Eclipse Plugins

  Michel Wermelinger, Yijun Yu
     Centre for Research in Computing
           The Open University
             Milton Keynes, UK




                                 Presented By:
                                 Arnamoy Bhattacharyya
Each release (except for release 1.0) provides one or more high-level
features.
Each release (except for release 1.0) provides one or more high-level
features.

    Each feature may be composed of other, more specialized, features. E.g
    feature sdk includes feature platform which in turn includes rcp
Each release (except for release 1.0) provides one or more high-level
features.

    Each feature may be composed of other, more specialized, features. E.g
    feature sdk includes feature platform which in turn includes rcp



   Each feature is implemented by a set of plugins, e.g feature platform
   is implemented by more than 70 plugins
Each release (except for release 1.0) provides one or more high-level
features.

    Each feature may be composed of other, more specialized, features. E.g
    feature sdk includes feature platform which in turn includes rcp



   Each feature is implemented by a set of plugins, e.g feature platform
   is implemented by more than 70 plugins



 Each plugin may depend for its compilation on Java classes
 that belong to other plugins. E.g, the implementation of plugin platform
 depends on eight other plugins
Each plugin provides zero or more extension points. These can be used
at run-time by other plugins in order to extend the functionality. E.g the
extension points provided by the ui plugin allow other plugins to add at
runtime new GUI elements (menu bars, buttons, etc.).
Each plugin provides zero or more extension points. These can be used
at run-time by other plugins in order to extend the functionality. E.g the
extension points provided by the ui plugin allow other plugins to add at
runtime new GUI elements (menu bars, buttons, etc.).

         plugin X statically depends on plugin Y - if the compilation of X
         requires Y
Each plugin provides zero or more extension points. These can be used
at run-time by other plugins in order to extend the functionality. E.g the
extension points provided by the ui plugin allow other plugins to add at
runtime new GUI elements (menu bars, buttons, etc.).

         plugin X statically depends on plugin Y - if the compilation of X
         requires Y

  X dynamically depends on Y if X uses an extension point that Y provides
Each plugin provides zero or more extension points. These can be used
at run-time by other plugins in order to extend the functionality. E.g the
extension points provided by the ui plugin allow other plugins to add at
runtime new GUI elements (menu bars, buttons, etc.).

         plugin X statically depends on plugin Y - if the compilation of X
         requires Y

  X dynamically depends on Y if X uses an extension point that Y provides

plugins, extension points, and static and dynamic dependencies are
architectural elements
Each plugin provides zero or more extension points. These can be used
at run-time by other plugins in order to extend the functionality. E.g the
extension points provided by the ui plugin allow other plugins to add at
runtime new GUI elements (menu bars, buttons, etc.).

         plugin X statically depends on plugin Y - if the compilation of X
         requires Y

  X dynamically depends on Y if X uses an extension point that Y provides

plugins, extension points, and static and dynamic dependencies are
architectural elements


   In parallel to the maintenance of the current major release, the preparation
   of the next major release starts. The preparation consists of some milestones,
   followed by some release candidates. 3.2M1 3.2RC1
logical order

each release may have multiple logical successors.
DATA PROCESSING




For each plugin there is an XML file, called plugin.xml that lists the
                                             plugin.xml,
extension points provided and used by that plugin, and the other
plugins it depends on for compilation.
DATA PROCESSING




For each plugin there is an XML file, called plugin.xml that lists the
                                             plugin.xml,
extension points provided and used by that plugin, and the other
plugins it depends on for compilation.




Since release 3.0, the static dependency is in another file,
MANIFEST.MF,
MANIFEST.MF which is not in XML format.
DATA PROCESSING

 download the source code of
       the whole SDK

 Some shell, AWK and XSLT scripts
 extract the information about the
existing architectural elements from
         the plugin.xml files


The result of this processing is a text
 file in Rigi Standard Format (RSF)
     that captures the relations


  Crocopat, a relational calculator
produces output metrics and further
             relations.
DATA PROCESSING

 download the source code of
       the whole SDK

 Some shell, AWK and XSLT scripts
 extract the information about the
existing architectural elements from
         the plugin.xml files


The result of this processing is a text
 file in Rigi Standard Format (RSF)
     that captures the relations


  Crocopat, a relational calculator
produces output metrics and further
             relations.
For each release compute –
  dynamic dependency relations
  the missing and unused extension
points
  the missing and unused plugins
  sizes of those sets.
For each release compute –
  dynamic dependency relations
  the missing and unused extension
points                               An element is missing if it is required but
  the missing and unused plugins     not provided, and unused if it is provided
  sizes of those sets.               but not required by any other element.
For each release compute –
  dynamic dependency relations
  the missing and unused extension
points                                  An element is missing if it is required but
  the missing and unused plugins        not provided, and unused if it is provided
  sizes of those sets.                  but not required by any other element.


 The missing plugins and extension points enable to detect compile- and run-
 time problems, whereas the unused plugins and extension points tell us how
 extensible the architecture is.
For each release compute –
  dynamic dependency relations
  the missing and unused extension
points                                  An element is missing if it is required but
  the missing and unused plugins        not provided, and unused if it is provided
  sizes of those sets.                  but not required by any other element.


 The missing plugins and extension points enable to detect compile- and run-
 time problems, whereas the unused plugins and extension points tell us how
 extensible the architecture is.


           A completely self-contained and closed
           architecture would have no missing nor
           unused elements.
RESULTS AND ANALYSIS


For both release sequences, it is found out that the
number of missing plugins and extension points is
always zero,
RESULTS AND ANALYSIS


For both release sequences, it is found out that the
number of missing plugins and extension points is
always zero,


 number of plugins (NP), extension points (NE),
 static dependencies (NSD), dynamic dependencies (NDD),
 and unused extension points (NUE).




          number of elements added (A), kept from the previous
          release (K), kept from r1 (K1), and deleted (D).
How many architectural changes occur between major
releases and what is the overall growth of the system?

     the architecture has grown by a factor between four and five. The
     highest growth rate occurred from release 1.0 to release 2.0.
the architecture has grown by a factor between four and five. The
highest growth rate occurred from release 1.0 to release 2.0.
Is the architecture changed in maintenance releases?


     NO plugins or extension points are added or deleted
     in any maintenance release
Is there any
difference between
milestones and
release candidates,
in terms of
architectural
evolution?

 architectural
 changes can occur
 in both milestones
 & release
 candidates, more
 changes during
 milestones.
Are there
                                            any
                                            deletions, or
                                            just
                                            additions?


Both figures show, additions make the bulk of changes,
deletions being comparatively few and small in size.
Is there any substantial architectural core that is stable, i.e. that
remains throughout all releases?
       11% (= 24) of
       the plugins and 14% of the
       extensions points of release 3.3.1.1
       come from release 1.0.
Is there any substantial architectural core that is stable, i.e. that
remains throughout all releases?
       11% (= 24) of
       the plugins and 14% of the
       extensions points of release 3.3.1.1
       come from release 1.0.
Most deletions occurred in release 3.0, with many static dependencies being also
removed
Most deletions occurred in release 3.0, with many static dependencies being also
removed
Eclipse project follows a systematic process most architectural changes
                                     process,
taking place in milestones, a few in release candidates.




                         Conclusions
Eclipse project follows a systematic process most architectural changes
                                     process,
taking place in milestones, a few in release candidates.



Release 3.0 introduced major architectural changes with many additions
                                           changes,
and deletions to all elements.




                         Conclusions
Eclipse project follows a systematic process most architectural changes
                                     process,
taking place in milestones, a few in release candidates.



Release 3.0 introduced major architectural changes with many additions
                                           changes,
and deletions to all elements.




                         Conclusions
Eclipse project follows a systematic process most architectural changes
                                     process,
taking place in milestones, a few in release candidates.



Release 3.0 introduced major architectural changes with many additions
                                           changes,
and deletions to all elements.




                         Conclusions
Questions?

More Related Content

Viewers also liked

Mining Email Social Networks
Mining Email Social NetworksMining Email Social Networks
Mining Email Social Networks
arnamoy10
 
Stiltemoment 16/03/2012
Stiltemoment 16/03/2012Stiltemoment 16/03/2012
Stiltemoment 16/03/2012
vbeb
 
Big data, why care
Big data, why careBig data, why care
Big data, why care
Daan Gerits
 

Viewers also liked (13)

Online Scams: How To Avoid Getting Fooled
Online Scams: How To Avoid Getting FooledOnline Scams: How To Avoid Getting Fooled
Online Scams: How To Avoid Getting Fooled
 
Automatic Identification of bug inducing changes
Automatic Identification of  bug inducing changesAutomatic Identification of  bug inducing changes
Automatic Identification of bug inducing changes
 
Stream Processing
Stream ProcessingStream Processing
Stream Processing
 
Mining Email Social Networks
Mining Email Social NetworksMining Email Social Networks
Mining Email Social Networks
 
Stiltemoment 16/03/2012
Stiltemoment 16/03/2012Stiltemoment 16/03/2012
Stiltemoment 16/03/2012
 
Big data architectures
Big data architecturesBig data architectures
Big data architectures
 
IoT and BigData
IoT and BigDataIoT and BigData
IoT and BigData
 
Start small bigger biggest
Start small bigger biggestStart small bigger biggest
Start small bigger biggest
 
Big data, why care
Big data, why careBig data, why care
Big data, why care
 
BigBoards.io Strata Ignite
BigBoards.io Strata IgniteBigBoards.io Strata Ignite
BigBoards.io Strata Ignite
 
(340)radicalismo evanescente vs centralidad economica
(340)radicalismo evanescente vs centralidad economica(340)radicalismo evanescente vs centralidad economica
(340)radicalismo evanescente vs centralidad economica
 
Big Data BluePrint
Big Data BluePrintBig Data BluePrint
Big Data BluePrint
 
(327)long porque ha ganado donald trump
(327)long porque ha ganado donald trump(327)long porque ha ganado donald trump
(327)long porque ha ganado donald trump
 

Similar to 664 eclipse plugin

UFT- New features and comparison with QTP
UFT- New features and comparison with QTPUFT- New features and comparison with QTP
UFT- New features and comparison with QTP
Rita Singh
 
UFT An advance version of QTP
UFT  An advance version of QTPUFT  An advance version of QTP
UFT An advance version of QTP
Rita Singh
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 
Introducing Deployit 3.9
Introducing Deployit 3.9Introducing Deployit 3.9
Introducing Deployit 3.9
XebiaLabs
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous Development
SandyJohn5
 
1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual
1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual
1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual
faqrelion
 

Similar to 664 eclipse plugin (20)

UFT- New features and comparison with QTP
UFT- New features and comparison with QTPUFT- New features and comparison with QTP
UFT- New features and comparison with QTP
 
UFT An advance version of QTP
UFT  An advance version of QTPUFT  An advance version of QTP
UFT An advance version of QTP
 
CS_Note_Introduction to Git Workflow.pdf
CS_Note_Introduction to Git Workflow.pdfCS_Note_Introduction to Git Workflow.pdf
CS_Note_Introduction to Git Workflow.pdf
 
Release This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release CycleRelease This! Tools for a Smooth Release Cycle
Release This! Tools for a Smooth Release Cycle
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-ins
 
Software evolution analysis of ubuntu operating system
Software evolution analysis of ubuntu operating systemSoftware evolution analysis of ubuntu operating system
Software evolution analysis of ubuntu operating system
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
Application versioning
Application versioningApplication versioning
Application versioning
 
Managing Change
Managing ChangeManaging Change
Managing Change
 
Introducing Deployit 3.9
Introducing Deployit 3.9Introducing Deployit 3.9
Introducing Deployit 3.9
 
Software Project Management: Release Notes
Software Project Management: Release NotesSoftware Project Management: Release Notes
Software Project Management: Release Notes
 
White Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release CycleWhite Paper: Release This! - Tools for a Smooth Release Cycle
White Paper: Release This! - Tools for a Smooth Release Cycle
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous Development
 
OOoEclipse talks now C++
OOoEclipse talks now C++OOoEclipse talks now C++
OOoEclipse talks now C++
 
Server Tools New approach
Server Tools New approachServer Tools New approach
Server Tools New approach
 
1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual
1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual
1 mrg002586 configuration_migration_for_670_series_in_pcm600_user_manual
 
Architecting the Future: Abstractions and Metadata - STL SilverLinings
Architecting the Future: Abstractions and Metadata - STL SilverLiningsArchitecting the Future: Abstractions and Metadata - STL SilverLinings
Architecting the Future: Abstractions and Metadata - STL SilverLinings
 
Of Bugs and Men
Of Bugs and MenOf Bugs and Men
Of Bugs and Men
 
Of Bugs and Men (and Plugins too)
Of Bugs and Men (and Plugins too)Of Bugs and Men (and Plugins too)
Of Bugs and Men (and Plugins too)
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
 

Recently uploaded

+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@
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
+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...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
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
 

664 eclipse plugin

  • 1. The Evolution of Eclipse Plugins Michel Wermelinger, Yijun Yu Centre for Research in Computing The Open University Milton Keynes, UK Presented By: Arnamoy Bhattacharyya
  • 2. Each release (except for release 1.0) provides one or more high-level features.
  • 3. Each release (except for release 1.0) provides one or more high-level features. Each feature may be composed of other, more specialized, features. E.g feature sdk includes feature platform which in turn includes rcp
  • 4. Each release (except for release 1.0) provides one or more high-level features. Each feature may be composed of other, more specialized, features. E.g feature sdk includes feature platform which in turn includes rcp Each feature is implemented by a set of plugins, e.g feature platform is implemented by more than 70 plugins
  • 5. Each release (except for release 1.0) provides one or more high-level features. Each feature may be composed of other, more specialized, features. E.g feature sdk includes feature platform which in turn includes rcp Each feature is implemented by a set of plugins, e.g feature platform is implemented by more than 70 plugins Each plugin may depend for its compilation on Java classes that belong to other plugins. E.g, the implementation of plugin platform depends on eight other plugins
  • 6. Each plugin provides zero or more extension points. These can be used at run-time by other plugins in order to extend the functionality. E.g the extension points provided by the ui plugin allow other plugins to add at runtime new GUI elements (menu bars, buttons, etc.).
  • 7. Each plugin provides zero or more extension points. These can be used at run-time by other plugins in order to extend the functionality. E.g the extension points provided by the ui plugin allow other plugins to add at runtime new GUI elements (menu bars, buttons, etc.). plugin X statically depends on plugin Y - if the compilation of X requires Y
  • 8. Each plugin provides zero or more extension points. These can be used at run-time by other plugins in order to extend the functionality. E.g the extension points provided by the ui plugin allow other plugins to add at runtime new GUI elements (menu bars, buttons, etc.). plugin X statically depends on plugin Y - if the compilation of X requires Y X dynamically depends on Y if X uses an extension point that Y provides
  • 9. Each plugin provides zero or more extension points. These can be used at run-time by other plugins in order to extend the functionality. E.g the extension points provided by the ui plugin allow other plugins to add at runtime new GUI elements (menu bars, buttons, etc.). plugin X statically depends on plugin Y - if the compilation of X requires Y X dynamically depends on Y if X uses an extension point that Y provides plugins, extension points, and static and dynamic dependencies are architectural elements
  • 10. Each plugin provides zero or more extension points. These can be used at run-time by other plugins in order to extend the functionality. E.g the extension points provided by the ui plugin allow other plugins to add at runtime new GUI elements (menu bars, buttons, etc.). plugin X statically depends on plugin Y - if the compilation of X requires Y X dynamically depends on Y if X uses an extension point that Y provides plugins, extension points, and static and dynamic dependencies are architectural elements In parallel to the maintenance of the current major release, the preparation of the next major release starts. The preparation consists of some milestones, followed by some release candidates. 3.2M1 3.2RC1
  • 11. logical order each release may have multiple logical successors.
  • 12. DATA PROCESSING For each plugin there is an XML file, called plugin.xml that lists the plugin.xml, extension points provided and used by that plugin, and the other plugins it depends on for compilation.
  • 13. DATA PROCESSING For each plugin there is an XML file, called plugin.xml that lists the plugin.xml, extension points provided and used by that plugin, and the other plugins it depends on for compilation. Since release 3.0, the static dependency is in another file, MANIFEST.MF, MANIFEST.MF which is not in XML format.
  • 14. DATA PROCESSING download the source code of the whole SDK Some shell, AWK and XSLT scripts extract the information about the existing architectural elements from the plugin.xml files The result of this processing is a text file in Rigi Standard Format (RSF) that captures the relations Crocopat, a relational calculator produces output metrics and further relations.
  • 15. DATA PROCESSING download the source code of the whole SDK Some shell, AWK and XSLT scripts extract the information about the existing architectural elements from the plugin.xml files The result of this processing is a text file in Rigi Standard Format (RSF) that captures the relations Crocopat, a relational calculator produces output metrics and further relations.
  • 16. For each release compute – dynamic dependency relations the missing and unused extension points the missing and unused plugins sizes of those sets.
  • 17. For each release compute – dynamic dependency relations the missing and unused extension points An element is missing if it is required but the missing and unused plugins not provided, and unused if it is provided sizes of those sets. but not required by any other element.
  • 18. For each release compute – dynamic dependency relations the missing and unused extension points An element is missing if it is required but the missing and unused plugins not provided, and unused if it is provided sizes of those sets. but not required by any other element. The missing plugins and extension points enable to detect compile- and run- time problems, whereas the unused plugins and extension points tell us how extensible the architecture is.
  • 19. For each release compute – dynamic dependency relations the missing and unused extension points An element is missing if it is required but the missing and unused plugins not provided, and unused if it is provided sizes of those sets. but not required by any other element. The missing plugins and extension points enable to detect compile- and run- time problems, whereas the unused plugins and extension points tell us how extensible the architecture is. A completely self-contained and closed architecture would have no missing nor unused elements.
  • 20.
  • 21.
  • 22. RESULTS AND ANALYSIS For both release sequences, it is found out that the number of missing plugins and extension points is always zero,
  • 23. RESULTS AND ANALYSIS For both release sequences, it is found out that the number of missing plugins and extension points is always zero, number of plugins (NP), extension points (NE), static dependencies (NSD), dynamic dependencies (NDD), and unused extension points (NUE). number of elements added (A), kept from the previous release (K), kept from r1 (K1), and deleted (D).
  • 24. How many architectural changes occur between major releases and what is the overall growth of the system? the architecture has grown by a factor between four and five. The highest growth rate occurred from release 1.0 to release 2.0.
  • 25. the architecture has grown by a factor between four and five. The highest growth rate occurred from release 1.0 to release 2.0.
  • 26. Is the architecture changed in maintenance releases? NO plugins or extension points are added or deleted in any maintenance release
  • 27. Is there any difference between milestones and release candidates, in terms of architectural evolution? architectural changes can occur in both milestones & release candidates, more changes during milestones.
  • 28. Are there any deletions, or just additions? Both figures show, additions make the bulk of changes, deletions being comparatively few and small in size.
  • 29. Is there any substantial architectural core that is stable, i.e. that remains throughout all releases? 11% (= 24) of the plugins and 14% of the extensions points of release 3.3.1.1 come from release 1.0.
  • 30. Is there any substantial architectural core that is stable, i.e. that remains throughout all releases? 11% (= 24) of the plugins and 14% of the extensions points of release 3.3.1.1 come from release 1.0.
  • 31. Most deletions occurred in release 3.0, with many static dependencies being also removed
  • 32. Most deletions occurred in release 3.0, with many static dependencies being also removed
  • 33. Eclipse project follows a systematic process most architectural changes process, taking place in milestones, a few in release candidates. Conclusions
  • 34. Eclipse project follows a systematic process most architectural changes process, taking place in milestones, a few in release candidates. Release 3.0 introduced major architectural changes with many additions changes, and deletions to all elements. Conclusions
  • 35. Eclipse project follows a systematic process most architectural changes process, taking place in milestones, a few in release candidates. Release 3.0 introduced major architectural changes with many additions changes, and deletions to all elements. Conclusions
  • 36. Eclipse project follows a systematic process most architectural changes process, taking place in milestones, a few in release candidates. Release 3.0 introduced major architectural changes with many additions changes, and deletions to all elements. Conclusions