open source
Editor: Christof Ebert
■
Ve c t o r C o n s u l t i n g
■
c h r i s t o f . e b e r t @ v e c t o r- c o n s u l t i n g . d e
Using Eclipse as a Tool-Integration Platform for Software Development
Zhihui Yang and Michael Jiang, Motorola
It’s the most powerful tool-integration platform ever in the software world, and it’s open source. Eclipse has achieved what many industry associations have tried since the 1980s—to provide an easy-to-use, robust, open, industry-level platform for plugging in tools so that they can interact and integrate seamlessly with each other. It’s a proof point for the business and spirit that drives the Free and Open source software movement—and will continue to grow it. This summary of Eclipse’s practical use comes from an industry giant, Motorola, and we thank the authors for illuminating the benefits and best practices from their experience. —Christof Ebert
E
clipse is an open source software project dedicated to providing a robust, full-featured, and commercial-quality platform for developing and supporting highly integrated software engineering tools. The Eclipse platform defines a set of frameworks and common services that collectively make up the “integrationware” required to support a comprehensive tool-
The Essay on Access Tool Topic Selected Sources
IMPORTANT INSTRUCTIONS: Please complete this final with all the information required. Type the information on the diskette and return to me. Should you need assistance refer to your notes and handouts. I will also be available during the week. Final must be submitted to me by Thursday, December 20. You can drop it off in the library at the circulation desk. Thank you and have a safe and wonderful ...
ect phases and to manage the interactions of tools and the deliverables they produce.
integration platform. Excepting the small Eclipse runtime kernel, all the platform components are plug-in tools integrated seamlessly through predefined extension points. As a universal tool-development platform, Eclipse supports deliverables throughout the development and maintenance life cycle (see figure 1).
By using the plug-ins corresponding to each life-cycle phase, developers avoid having to switch between tools to work on different proj0740-7459/07/$25.00 © 2007 IEEE
Comparison with other platforms Many software development tools use XML for tool integration. The XML standard lets developers integrate applications at the data level with a well-formed hierarchical representation. XML defines specifications for expressing application semantics, such as the I/O behavior and invocation method, to access services in a platform-independent manner. For instance, the Web Services Description Language and the SOAP object-invocation protocol are widely deployed technologies that rely on XML to support the integration of applications, services, and tools. Various integrated software development environments enable development tools to work together seamlessly at different integration levels. Of the existing integration platforms, NetBeans (www.netbeans.org) and IntelliJ IDEA (www.jetbrains.com/idea) are the most comparable to Eclipse for Java developers. From a technical perspective, these platforms have far more similarities than differences, and all are extensible through plug-ins. However, Eclipse benefits from a larger and growing body of contributors worldwide. The number of Eclipse plug-ins and
March/April 2007
IEEE SOFTWARE
87
OPEN SOURCE
Create accounts Update accounts
import com.motorola.gama.wizard s.GAMATemplateWizard;
Account Balance: Edouble Name: Estring SSN: EString
The Essay on xml and java
Most web developers are intimately familiar with HTML, which is a language for presenting information on-screen so that it can be read by a human. A new markup language is rapidly gaining attention, however. XML allows for the presentation of information which can be read by a computer program. It is likely that the future of web development includes the creation of increasing numbers of ...
Requirements management
Sys admin
Deposit Withdraw Checking Saving
public class WizardAction implements IWorkbenchWindowActionDe legate { private IWorkbenchWindow window; public WizardAction() {} try { GAMATemplateWizard gw = new
✔
Validation and verification
Account holder
Eclipse platform Figure 1. The Eclipse platform for tool integration.
Table 1 Tool-integration platform comparison
XML-based tools Eclipse NetBeans IntelliJ IDEA
Java C/C++ Project/component integration Data integration Function integration User interface integration DSM/DSL support* Available plug-ins† Human languages
N/A N/A No Yes Yes No No N/A N/A
Yes Yes Yes Yes Yes Yes Yes 1,385 23
Yes Yes No Yes Yes Yes Yes 71 1 (English)
Yes No No Yes Yes Yes No 358 1 (English)
* Domain-specific modeling/domain-specific language † We collected the numbers from, respectively, www.eclipse-plugins.info/eclipse/plugins.jsp?category=All, www.netbeans.org/catalogue/ all-all.html, and http://plugins.intellij.net/category/?category_id=all on 20 Dec. 2006.
the depth and breadth of available tools enable a successful ecosystem that other open source platforms are hard-pressed to surpass. Table 1 compares Eclipse with XML-based technology, NetBeans, and IntelliJ IDEA.
How to use Eclipse for tool integration Fundamentally, Eclipse is a framework for plug-ins. Besides its runtime kernel, the platform consists of the workbench, workspace, help, and team components. Other tools plug into this basic framework to create a usable application. Plug-ins add functionality through predefined extension points that the Eclipse platform offers. Plug-ins can also define new extension points for others to extend. For example, a group of plug-ins implements the workbench user interface. When you start up the workbench,
88
IEEE SOFTWARE
you’re not starting up a single Java program. You’re activating a platform runtime that can dynamically discover registered plug-ins and start them as needed. This plug-in architecture provides a flexible, open, scalable, tool-integration solution. With the open Eclipse platform, you can customize a component or extend it to suit the needs of your development environment. For example, if a perspective is inadequate, you can create your own perspective or plug in an appropriate one available from the Eclipse open source community or commercial providers. Once you’ve created a plug-in in your workspace, you can deploy it easily using the export wizard. Eclipse also offers convenient support for software updates. You can get new plug-ins and update existing ones by creating an “update site project” through the Eclipse Plug-in Development Environment.
The Research paper on Ibm Eclipse Case Study
The creation of an independent IBM software group (SWG) was strategically important for the following reasons: a) A category of software named “middleware” was emerging in the mid-‘90s. At this point SWG abetted IBM to emerge in the middleware market. b) SWG was also strategically important for IBM to help focus its software activities and prepare for a new age in distributed networked computing. ...
The Graphical Modeling Framework, a representative integration project built on Eclipse, consists of a plug-in set that bridges between the Graphical Editing Framework and the Eclipse Modeling Framework platforms. GMF extends and integrates GEF and EMF seamlessly so that application developers can fully utilize GEF’s visual-representation capability and EMF’s data-representation capability to build graphical modeling editors. The GMF plug-ins for diagram editing provide a set of services that you can use to extend graphical editors. GMF also leverages other Eclipse plug-ins, such as EMF Technology-Transaction, Validation, and Object Constraint Language, to enable model-level validation. At Motorola, we experimented with integrating tools specific to different lifecycle development phases into the Eclipse environment. The service-creation framework is one tool-integration project using Eclipse. We designed it to facilitate the creation and deployment of mobile data applications and services, such as text and multimedia messaging and location- and presence-based services. We implemented it through the set of integrated tools shown in figure 2. The GMF plug-in implements the graphical user interface, letting developers use visual programming to build applications. The framework maps a diagram element in the editor to one or multiple predefined service components at the component layer. We developed the second tier, the domain model layer, on top of an EMF plug-in to specify the service-creation domain rules and constraints. This tier also enables application validation at the model level. We adopted the Web Tools Platform plug-ins to facilitate the implementation of our own plug-ins for defining service components as J2EE components and Web services. These components and services handle the integration with legacy systems and data storage. We also used WTP to package and deploy the final application.
The Research paper on Wed And Sustainable Development
At the present rate of development, according to many scientists, the world will reach critical mass sometime within the next fifty years. With these doomsday predictions, many development models have come under scrutiny for their shortsightedness and lack of environmental concerns. Over the past thirty years, those affected most, or more appropriately, those who are being forced to bear the brunt ...
Hints for practitioners We also uncovered challenges. First, the lack of good documentation and guidelines for plug-in development results in a rather steep learning curve. Although
w w w . c o m p u t e r. o r g / s o f t w a r e
OPEN SOURCE
Eclipse’s rich features can greatly reduce the amount of coding needed for developing plug-ins, figuring out where these features are and how to use them can take a lot of time. The most helpful resource we found to address these issues is the Eclipse plug-ins site (see the “Eclipse Resources” sidebar).
The site organizes plug-ins into 61 categories and includes a functional description, developer comments and ratings, and location information for each plug-in. Frequent updates of the Eclipse platform and installed plug-ins can also cause incompatibilities. You must have an engineering management process in place to keep the platform and various plug-in tools in sync and to make sure the same development environment is available to all team members. Despite Eclipse’s wide range of plugins, you must often design your own to meet specific requirements and create unique solutions. Before you decide to develop a plug-in, it’s a good practice to decide the level of tool integration for the development environment (see the “Eclipse Integration Levels” sidebar).
Different integration levels determine what tools to use and what extension points to extend for the integration. To check the extension points provided by a particular tool or plug-in, we often rely on the Eclipse framework’s help component. It gives extension points and descriptions for most plug-ins installed on the current Eclipse platform.
VoteProcessor Actions BarChart SendMsg
MobileService ID: EInt MsgService PersistentMgr Load() Save() Config
test plan: A record of the test planning process detailing the degree of tester indedendence, the test environment, the test case design techniques and test measurement techniques to be used, and the rationale for their choice.
Software testing
test case: A set of inputs, execution preconditions, and expected outcomes developed for a particular objective, such as to exercise a particular program path or to verify compliance with a specific requirement. After [I EEE, do178b]
The Essay on Economic Integration Of The Baltic Sea Region
Economic Integration of the Baltic Sea Region and the Passenger Traffic Issues Helsingin Yliopisto Baltic Cities August 2000 Christopher Dahlstrand and Devon Webster Table of Contents: I. Introduction 2 II. Goals of Economic Integration 2 III. VASAB 2010 3 IV. "Oresund vs. Helsinki - Tallinn Link 4 V. Aviation Development in Scandinavia 7 VI.Conclusion 10 VII. Works Cited 11 I. Introduction ...
GMF
EMF
JDT/WTP
TPTP/JUnit
WTP
Eclipse integration platform GMF—Graphical Modeling Framework EFM—Eclipse Modeling Framework JDT—Java Development Tools WTP—Web Tools Platform TPTP— Test and Performance Tools Platform
Figure 2. Tool integration for life-cycle development.
Eclipse Resources
For basic concepts about the Eclipse plug-in architecture, extensions, and examples, see the Eclipse Foundation site (www.eclipse.org), especially www. eclipse.org/articles/Article-Plug-inarchitecture/plugin_architecture.html. Good overviews of existing plug-ins, especially plug-ins in their early development stages, are available at http://eclipse-plugins.info/eclipse/index.jsp and www.eclipseplugincentral.com. Eclipse-related publications are available at www.eclipse.org/resources/ index.php. For detailed information about how to set up Tomcat and JBoss in Eclipse for J2EE development, see www.purposesolutions.com/Resources/EclipseJ2EE.html. The Eclipse Project Resource Center offers many tutorials, articles, magazines, plug-ins, cheat sheets, conference lists, and the latest books at www.deitel.com/ Eclipse.
Eclipse Integration Levels
Eclipse supports a number of integration levels for developers to target specific tool needs.1 Among them, the following levels are especially useful. Invocation integration lets you configure the Eclipse platform to invoke a tool on a specific resource type in a separate window. It can’t integrate with other Eclipse views and editors. Data integration allows data to be exchanged or manipulated by tools. Data integration provides state reuse, but not behavioral reuse. API integration allows applications to be accessed through tool-specific APIs, which simplify client application development by providing data encapsulation and behavioral reuse. UI integration lets a tool participate with other tools as if they were designed as a single application. It requires using the Eclipse UI framework to build the tool’s UI and integrating the result with the Eclipse workbench through its extension points.
O
ur research leads us to believe that Eclipse is a cost-effective, productive development environment to support life-cycle software development through effective tool integration. The flexible plug-in architecture and resource management let organizations customize and extend Eclipse to meet their engineering processes, tool integration, and project management needs.
The Term Paper on Training and Development 2
The ultimate goal of human resource management is to positively impact organizational performance by providing employment security, training and effective communication. Human Resource management is concerned with the need of the organization as well as with the need of its people. HR professionals help prepare the organization to achieve its emerging strategic goals. All HR functions are to be ...
Zhihui Yang is a senior software engineer at Motorola’s
Software and System Engineering Research Lab. Contact her at [email protected].
Michael Jiang is a distinguished member of the techni-
Reference
1. J. Amsden, “Levels of Integration: Five Ways You Can Integrate with the Eclipse Platform,” 25 Mar. 2001; www.eclipse.org/articles/Article-Levels-Of-Integration/levels-of-integration.html.
cal staff at Motorola’s Software and System Engineering Research Lab. Contact him at [email protected].
March/April 2007
IEEE SOFTWARE
89
oject