1 / 18

Software Reuse in Eclipse

Software Reuse in Eclipse. Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu. Outline. Motivation Software Reuse Eclipse Plug-in Architecture A Case Study Demo Conclusion Discussion. Motivation. Reuse is important in current software development

sian
Download Presentation

Software Reuse in Eclipse

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Reuse in Eclipse Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu

  2. Outline • Motivation • Software Reuse • Eclipse Plug-in Architecture • A Case Study • Demo • Conclusion • Discussion

  3. Motivation • Reuse is important in current software development • Eclipse provides an open architecture for IDE development [Gamma & Beck 2003] • Is the reuse model of Eclipse different from previous models?

  4. Reuse Snapshot • Software reuse is using existing software artifacts to create a new software system [Freeman 1983] • Source code fragments • Module-level implementation • Design structures • Specification • Test suite • Documentation • etc. • Reuse failed to become a standard software engineering practice [Kruger 1992] • Reuse can reduce complexity of software [Brooks]

  5. Basic Issues in Reuse Model • Abstraction • how to describe the essential characteristic of a reusable software artifacts • Selection • how to locate, compare and select reusable software artifacts • Specialization • how to specialize a generalized software artifact • Integration • how to combine a collection of selected and specialized artifacts into a complete software system [Kruger 1992]

  6. How to Evaluate a Reuse Model • Ease of Use • Cost-Effectiveness [Frakes & Terry 1992] • Scalability • Reliability • Evolvability

  7. Eclipse Plug-in Introduction – Plug-in Model • Plug-in: a component that provides service within the context of the Eclipse workbench. • Manifest file • Jar files and other resources • Plug-in runtime class • Plug-ins are activated only as needed • Eclipse runtime: plug-in management kernel. • All functionality of the platform is provided by plug-ins

  8. Eclipse Plug-in Introduction -- Extension • Relationship among plug-ins • Dependency • Extension • Host plug-in provides the extension point • Extender plug-in defines the extension • Host often “calls” extender when specified events are recognized

  9. Extension

  10. A Case Study: A Compare/Merge Tool--- Requirements • Functions • Comparison and merge of files/folders from the whole file system • 2-way and 3-way • Filters • Select-Merge & Auto merge • … • GUI • Multiple compare/merge windows, Tree structure view, Difference highlighting, Navigation, Dialog interface • …

  11. What can we reuse in Eclipse – Compare Plug-In • Supports: • structural and textual compare operations • displaying results of comparison • Extension Points: • Structure Creators • Structure Merge Viewers • Content Merge Viewers • Content Viewers

  12. How the Compare Plug-In works • General Idea of How It Works: • Choose Files/folders in the workspace and start the compare operation • Differencing engine finds the differences between the selected resources • Differences returned and presented in the Viewer(s) • Specific structures, differencers and viewers can be registered as extensions

  13. What’s missing per our requirements • Open files in the file system to compare • Compare/Merge dialog • A side-by-side structure merge view • Filters, Line numbers, …

  14. Improvement #1 • New Structure Merge Viewer • Goal: Enhance GUI to support side-by-side structure merge view • Proposed Approach: write a new viewer for the extension point “ Structure Merger Viewer” . • Experience: It is very hard to just “plug” a new GUI while keep all other things untouched. • Implementation: see demo.

  15. Improvement #2 • Open external files & compare/merge dialog • Goal: • provide a new entry point, support external file Compare/Merge. • Approach: • utilize ActionSet extension point to develop menu item and toolbar item. • Using a new dialog as entry interface • Import external files into eclipse workspace in the form of link files. • Implementation see demo.

  16. Conclusion --- Issues in Eclipse Plug-in Reuse Model • Abstraction • the name of a plug-in • Selection • No systematic way like WDSL for web service • Specialization • extendable plug-ins •  Integration • eclipse run-time

  17. Discussion • Ease of Use • Extension is good for new features under Eclipse framework • Lack of selection mechanism • Cost-Effectiveness • Not well-organized documentation, much time on learning • Scalability • Lack of plug-in resources and selection mechanism • Reliability • The HelloWorld example doesn’t even work at every time • Evolvability • Other issues • Ease of debugging? Separation of view and model is good/bad?

  18. Reference • Brooks, F. “No silver bullet”, “No silver bullet refired” • Frakes, W., Terry, C., Software reuse: metrics and models, ACM Computing Surveys, Volume 28 Issue 2 June 1996 • Freeman, P. “Reusable software engineering: Concepts and Research directions”, 1983 • Gamma., Erich, Beck., Kent, Contributing to Eclipse, 2003 • Krueger , Charles W. “Software reuse”, ACM Computing Surveys, Volume 24 , Issue 2 (June 1992)

More Related