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

Slides:



Advertisements
Similar presentations
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Advertisements

Introduction to Eclipse plugin development for CSU 670 course project, Selector language (Xaspect) editor plugin implementation.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Goals Give you a feeling of what Eclipse is.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Eclipse Architecture Dwight Deugo Nesa Matic
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Eclipse Introduction Dwight Deugo Nesa Matic
Chair of Software Engineering OOSC - Summer Semester Object-Oriented Software Construction Bertrand Meyer.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
1 Eclipse Platform Plug-in developper Guide PDG HowTos.
Chair of Software Engineering ATOT - Lecture 2, 2 April Advanced Topics in Object Technology Bertrand Meyer.
WebDynpro for ABAP Short introduction.
Views Dwight Deugo Nesa Matic
1 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
Eclipse IDE. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as teaching.
03 Using Eclipse. 2 IDE Overview An IDE is an Interactive Development Environment Different IDEs meet different needs BlueJ and DrJava are designed as.
SharePoint Portal Server 2003 JAMES WEIMHOLT WEIDER HAO JUAN TURCIOS BILL HUERTA BRANDON BROWN JAMES WEIMHOLT INTRODUCTION OVERVIEW IMPLEMENTATION CASE.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
International Workshop on Web Engineering ACM Hypertext 2004 Santa Cruz, August 9-13 An Engineering Perspective on Structural Computing: Developing Component-Based.
Definition of the SDK for FIspace Augusto Morales & Hector Bedón UPM.
Copyright © IBM Corp., All rights reserved; made available under the EPL v1.0 | March 20, 2008 | Short Talk Standards based systems management: An.
ECE 452 / CS 446 / SE464 Design Patterns: Part 2 - Answers A Tutorial By Peter Kim Partially based on the tutorial by Michał Antkiewicz.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
Extending the Eclipse Framework and Rich Client Platform Jeff Myers Languages for Lunch 10/13/2004.
Ontology Engineering and Plugin Development with the NeOn Toolkit Plug-in Development for the NeOn Toolkit June 1st, 2008 Michael Erdmann, Peter Haase,
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
Introduction to Eclipse CSC 216 Lecture 3 Ed Gehringer Using (with permission) slides developed by— Dwight Deugo Nesa Matic
[________________________] Eclipse project briefing materials. Copyright (c) 2002, 2003 IBM Corporation and others. All rights reserved. This.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Open Service Gateway Initiative (OSGi) Reporter : 林學灝 侯承育 1.
Introduction to Eclipse. What is Eclipse? An Integrated Development Environment Provides many features to ease C++ programming (and others, e.g. C/Java)
ECE 452 / CS 446 / SE464 Design Patterns: Part 2 - Questions A Tutorial By Peter Kim Partially based on the tutorial by Michał Antkiewicz.
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
Eclipse 3.1 IDE Overview.
ABC of Platform Workspace | Copyright © IBM Corp., ABC of Platform Workspace Szymon Brandys Tomasz Zarna IBM Krakow Software Lab.
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
Microsoft WINDOWS 98 By Bülent BAYÇELEBİ & Tarık YÜKSEK.
NCBI Genome Workbench Chuong Huynh NIH/NLM/NCBI Sao Paulo, Brasil July 15, 2004 Slides from Michael Dicuccio’s Genome Workbench.
Architecture for an Ontology and Web Service Modelling Studio Michael Felderer & Holger Lausen DERI Innsbruck Frankfurt,
W3af S. Qi,X. Ma,Y. Zhang,B Zhao,Y Zhu EC521 Fall 2014.
© 2008 by Shawn Spiars; made available under the EPL v1.0 | March 17, 2008 Case Study – Phurnace Software and RCP Shawn Spiars Lead UI Developer Phurnace.
Introduction Problem Statement Research Goals Conclusion Contact / More Information { shimin, ltahvild Componentizing legacy system.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
© 2002 IBM Corporation Transaction Processing Facility TPF Users Group Acapulco May 2004 © 2004 IBM Corporation Pete Nicholls IBM Toronto Lab TPF Toolkit.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Java Programming: Advanced Topics1 Introduction to Advanced Java Programming Chapter 1.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
® IBM Software Group © 2007 IBM Corporation Module 3: Creating UML Diagrams Essentials of Modeling with IBM Rational Software Architect, V7.5.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Introduction Ken Ryall – Nokia Warren Paul – Nokia Daymon Rogers – Freescale John Cortell - Freescale.
Plug-In Architecture Pattern. Problem The functionality of a system needs to be extended after the software is shipped The set of possible post-shipment.
Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
ECLIPSE RICH CLIENT PLATFORM Part 1 Introduction.
Continuous Testing in Eclipse
Goals Give you a feeling of what Eclipse is.
Improving Performance
Introduction to Advanced Java Programming
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
COSC-4840 Software Engineering
My Experience in Building the CoBrA Eclipse Viewer
Software Reuse Objectives
Architecture, Components, Configuration
EMF Compare Ganymede Simultaneous Release
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Plug-In Architecture Pattern
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)