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

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 Fooledlmccorkell
 
Automatic Identification of bug inducing changes
Automatic Identification of  bug inducing changesAutomatic Identification of  bug inducing changes
Automatic Identification of bug inducing changesarnamoy10
 
Stream Processing
Stream ProcessingStream Processing
Stream Processingarnamoy10
 
Mining Email Social Networks
Mining Email Social NetworksMining Email Social Networks
Mining Email Social Networksarnamoy10
 
Stiltemoment 16/03/2012
Stiltemoment 16/03/2012Stiltemoment 16/03/2012
Stiltemoment 16/03/2012vbeb
 
Big data architectures
Big data architecturesBig data architectures
Big data architecturesDaan Gerits
 
Start small bigger biggest
Start small bigger biggestStart small bigger biggest
Start small bigger biggestDaan Gerits
 
Big data, why care
Big data, why careBig data, why care
Big data, why careDaan Gerits
 
BigBoards.io Strata Ignite
BigBoards.io Strata IgniteBigBoards.io Strata Ignite
BigBoards.io Strata IgniteDaan Gerits
 
(340)radicalismo evanescente vs centralidad economica
(340)radicalismo evanescente vs centralidad economica(340)radicalismo evanescente vs centralidad economica
(340)radicalismo evanescente vs centralidad economicaManfredNolte
 
Big Data BluePrint
Big Data BluePrintBig Data BluePrint
Big Data BluePrintDaan Gerits
 
(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 trumpManfredNolte
 

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 QTPRita Singh
 
UFT An advance version of QTP
UFT  An advance version of QTPUFT  An advance version of QTP
UFT An advance version of QTPRita Singh
 
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.pdfalbusfons939393
 
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 CycleGuerrilla
 
ITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insITU - MDD - Eclipse Plug-ins
ITU - MDD - Eclipse Plug-insTonny Madsen
 
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 systemArpita Naik
 
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
 
Application versioning
Application versioningApplication versioning
Application versioningTed Steinmann
 
Managing Change
Managing ChangeManaging Change
Managing ChangeMirko Jahn
 
Introducing Deployit 3.9
Introducing Deployit 3.9Introducing Deployit 3.9
Introducing Deployit 3.9XebiaLabs
 
Software Project Management: Release Notes
Software Project Management: Release NotesSoftware Project Management: Release Notes
Software Project Management: Release NotesMinhas Kamal
 
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 CyclePerforce
 
Devops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentDevops - Continuous Integration And Continuous Development
Devops - Continuous Integration And Continuous DevelopmentSandyJohn5
 
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_manualfaqrelion
 
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 SilverLiningsDaniel Barker
 
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)Michel Wermelinger
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解Rex Tsai
 

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

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
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 businesspanagenda
 
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, ...Angeliki Cooney
 
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 Takeoffsammart93
 
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 connectorsNanddeep Nachan
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
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.pptxRustici Software
 
"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 ...Zilliz
 
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...Orbitshub
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
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...apidays
 
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 SavingEdi Saputra
 

Recently uploaded (20)

Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
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
 
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, ...
 
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
 
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
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
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
 
"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 ...
 
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...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
+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...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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...
 
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
 

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