664 eclipse plugin
TRANSCRIPT
![Page 1: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/1.jpg)
The Evolution of Eclipse Plugins
Michel Wermelinger, Yijun YuCentre for Research in Computing
The Open UniversityThe Open UniversityMilton Keynes, UK
Presented By:Arnamoy Bhattacharyya
![Page 2: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/2.jpg)
Each release (except for release 1.0) provides one or more high-level features.
![Page 3: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/3.jpg)
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.gfeature sdksdksdksdk includes feature platformplatformplatformplatform which in turn includes rcprcprcprcp
![Page 4: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/4.jpg)
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.gfeature sdksdksdksdk includes feature platformplatformplatformplatform which in turn includes rcprcprcprcp
Each feature is implemented by a set of plugins, e.g feature platformplatformplatformplatformis implemented by more than 70 plugins
![Page 5: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/5.jpg)
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.gfeature sdksdksdksdk includes feature platformplatformplatformplatform which in turn includes rcprcprcprcp
Each feature is implemented by a set of plugins, e.g feature platformplatformplatformplatformis implemented by more than 70 plugins
Each plugin may depend for its compilation on Java classesthat belong to other plugins. E.g, the implementation of plugin platformplatformplatformplatformdepends on eight other plugins
![Page 6: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/6.jpg)
Each plugin provides zero or more extension points. These can be usedat run-time by other plugins in order to extend the functionality. E.g the extension points provided by the uiuiuiui plugin allow other plugins to add atruntime new GUI elements (menu bars, buttons, etc.).
![Page 7: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/7.jpg)
Each plugin provides zero or more extension points. These can be usedat run-time by other plugins in order to extend the functionality. E.g the extension points provided by the uiuiuiui plugin allow other plugins to add atruntime new GUI elements (menu bars, buttons, etc.).
plugin X statically depends on plugin Y - if the compilation of X requires Y
![Page 8: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/8.jpg)
Each plugin provides zero or more extension points. These can be usedat run-time by other plugins in order to extend the functionality. E.g the extension points provided by the uiuiuiui plugin allow other plugins to add atruntime 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
![Page 9: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/9.jpg)
Each plugin provides zero or more extension points. These can be usedat run-time by other plugins in order to extend the functionality. E.g the extension points provided by the uiuiuiui plugin allow other plugins to add atruntime 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 arearchitectural elementsarchitectural elementsarchitectural elementsarchitectural elements
![Page 10: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/10.jpg)
Each plugin provides zero or more extension points. These can be usedat run-time by other plugins in order to extend the functionality. E.g the extension points provided by the uiuiuiui plugin allow other plugins to add atruntime 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 arearchitectural elementsarchitectural elementsarchitectural elementsarchitectural 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
![Page 11: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/11.jpg)
logical order
each release may have multiple logical successors.
![Page 12: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/12.jpg)
DATA PROCESSING
For each plugin there is an XML file, called plugin.xmlplugin.xmlplugin.xmlplugin.xml, that lists the extension points provided and used by that plugin, and the other plugins it depends on for compilation.
![Page 13: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/13.jpg)
DATA PROCESSING
For each plugin there is an XML file, called plugin.xmlplugin.xmlplugin.xmlplugin.xml, that lists the 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.MFMANIFEST.MFMANIFEST.MFMANIFEST.MF, which is not in XML format.
![Page 14: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/14.jpg)
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 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.
![Page 15: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/15.jpg)
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 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.
![Page 16: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/16.jpg)
For each release compute –àdynamic dynamic dynamic dynamic dependency dependency dependency dependency relationsrelationsrelationsrelationsàthe the the the missing and unused extension missing and unused extension missing and unused extension missing and unused extension points points points points àthe missing and the missing and the missing and the missing and unused unused unused unused pluginspluginspluginspluginsàsizes sizes sizes sizes of those sets. of those sets. of those sets. of those sets.
![Page 17: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/17.jpg)
For each release compute –àdynamic dynamic dynamic dynamic dependency dependency dependency dependency relationsrelationsrelationsrelationsàthe the the the missing and unused extension missing and unused extension missing and unused extension missing and unused extension points points points points àthe missing and the missing and the missing and the missing and unused unused unused unused pluginspluginspluginspluginsàsizes sizes sizes sizes of those sets. of those sets. of those sets. of those sets.
An element is missingmissingmissingmissing if it is required but not provided, and unusedunusedunusedunused if it is provided but not required by any other element.
![Page 18: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/18.jpg)
For each release compute –àdynamic dynamic dynamic dynamic dependency dependency dependency dependency relationsrelationsrelationsrelationsàthe the the the missing and unused extension missing and unused extension missing and unused extension missing and unused extension points points points points àthe missing and the missing and the missing and the missing and unused unused unused unused pluginspluginspluginspluginsàsizes sizes sizes sizes of those sets. of those sets. of those sets. of those sets.
The missingmissingmissingmissing plugins and extension points enable to detect compile- and run-time problems, whereas the unusedunusedunusedunused plugins and extension points tell us how extensible the architecture is.
An element is missingmissingmissingmissing if it is required but not provided, and unusedunusedunusedunused if it is provided but not required by any other element.
extensible the architecture is.
![Page 19: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/19.jpg)
For each release compute –àdynamic dynamic dynamic dynamic dependency dependency dependency dependency relationsrelationsrelationsrelationsàthe the the the missing and unused extension missing and unused extension missing and unused extension missing and unused extension points points points points àthe missing and the missing and the missing and the missing and unused unused unused unused pluginspluginspluginspluginsàsizes sizes sizes sizes of those sets. of those sets. of those sets. of those sets.
The missingmissingmissingmissing plugins and extension points enable to detect compile- and run-time problems, whereas the unusedunusedunusedunused plugins and extension points tell us how extensible the architecture is.
An element is missingmissingmissingmissing if it is required but not provided, and unusedunusedunusedunused if it is provided but not required by any other element.
extensible the architecture is.
A completely self-contained and closed architecture would have no missing nor unused elements.
![Page 20: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/20.jpg)
![Page 21: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/21.jpg)
![Page 22: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/22.jpg)
RESULTS AND ANALYSIS
For both release sequences, it is found out that the number of missing plugins and extension points is always zero,
![Page 23: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/23.jpg)
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),static dependencies (NSD), dynamic dependencies (NDD),and unused extension points (NUE).
number of elements added (A), kept from the previousrelease (K), kept from r1 (K1), and deleted (D).
![Page 24: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/24.jpg)
the architecture has grown by a factor between four and five. The highest growth rate occurred from release 1.0 to release 2.0.
How many architectural changes occur between majorreleases and what is the overall growth of the system?
![Page 25: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/25.jpg)
the architecture has grown by a factor between four and five. The highest growth rate occurred from release 1.0 to release 2.0.
![Page 26: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/26.jpg)
NO plugins or extension points are added or deleted in any maintenance release
Is the architecture changed in maintenance releases?
![Page 27: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/27.jpg)
Is there any difference between milestones and release candidates, in terms of architectural evolution?
architectural architectural changes can occurin both milestonesmilestonesmilestonesmilestones& releasereleasereleasereleasecandidatescandidatescandidatescandidates, more changes during milestones.
![Page 28: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/28.jpg)
Are there any deletions, or deletions, or just additions?
Both figures show, additions make the bulk of changes,deletions being comparatively few and small in size.
![Page 29: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/29.jpg)
Is there any substantial architectural core that is stable, i.e. that remains throughout all releases?
11% (= 24) ofthe plugins and 14% of the extensions points of release 3.3.1.1 come from release 1.0.
![Page 30: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/30.jpg)
Is there any substantial architectural core that is stable, i.e. that remains throughout all releases?
11% (= 24) ofthe plugins and 14% of the extensions points of release 3.3.1.1 come from release 1.0.
![Page 31: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/31.jpg)
Most deletions occurred in release 3.0, with many static dependencies being also removed
![Page 32: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/32.jpg)
Most deletions occurred in release 3.0, with many static dependencies being also removed
![Page 33: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/33.jpg)
Eclipse project follows follows follows follows a systematic processa systematic processa systematic processa systematic process, most architectural changes taking place in milestones, a few in release candidates.
Conclusions
![Page 34: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/34.jpg)
Eclipse project follows follows follows follows a systematic processa systematic processa systematic processa systematic process, most architectural changes taking place in milestones, a few in release candidates.
Release 3.0 introduced major architectural 3.0 introduced major architectural 3.0 introduced major architectural 3.0 introduced major architectural changeschangeschangeschanges, with many additions and deletions to all elements.
Conclusions
![Page 35: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/35.jpg)
Eclipse project follows follows follows follows a systematic processa systematic processa systematic processa systematic process, most architectural changes taking place in milestones, a few in release candidates.
Release 3.0 introduced major architectural 3.0 introduced major architectural 3.0 introduced major architectural 3.0 introduced major architectural changeschangeschangeschanges, with many additions and deletions to all elements.
Conclusions
![Page 36: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/36.jpg)
Eclipse project follows follows follows follows a systematic processa systematic processa systematic processa systematic process, most architectural changes taking place in milestones, a few in release candidates.
Release 3.0 introduced major architectural 3.0 introduced major architectural 3.0 introduced major architectural 3.0 introduced major architectural changeschangeschangeschanges, with many additions and deletions to all elements.
Conclusions
![Page 37: 664 eclipse plugin](https://reader033.vdocuments.net/reader033/viewer/2022052322/55836d2dd8b42a360c8b5168/html5/thumbnails/37.jpg)
Questions?