open source

brazilianchubbySoftware and s/w Development

Jun 8, 2012 (4 years and 10 months ago)

370 views

0740- 7459/07/$25.00 © 2007 I EEE March/April 2007
I EEE SOFTWARE
8 7
open source
E d i t o r: Ch r i s t o f E b e r t

Ve c t o r Co 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
E
clipse is an open source software project ded-
icated to providing a robust, full-featured,
and commercial-quality platform for devel-
oping and supporting highly integrated soft-
ware engineering tools. The Eclipse platform
defines a set of frameworks and common
services that collectively make up the “integration-
ware” required to support a comprehensive tool-
integration platform. Excepting the small Eclipse
runtime kernel, all the platform components are
plug-in tools integrated seamlessly through pre-
defined extension points.
As a universal tool-development platform,
Eclipse supports deliverables throughout the de-
velopment 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 proj-
ect phases and to manage the interactions of
tools and the deliverables they produce.
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 rep-
resentation. XML defines specifications for ex-
pressing application semantics, such as the I/O
behavior and invocation method, to access ser-
vices in a platform-independent manner. For
instance, the Web Services Description Lan-
guage and the SOAP object-invocation proto-
col are widely deployed technologies that rely
on XML to support the integration of applica-
tions, services, and tools.
Various integrated software development en-
vironments enable development tools to work
together seamlessly at different integration lev-
els. Of the existing integration platforms, Net-
Beans (www.netbeans.org) and IntelliJ IDEA
(www.jetbrains.com/idea) are the most compa-
rable to Eclipse for Java developers. From a tech-
nical perspective, these platforms have far more
similarities than differences, and all are extensi-
ble through plug-ins. However, Eclipse benefits
from a larger and growing body of contributors
worldwide. The number of Eclipse plug-ins and
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 il-
luminating the benefits and best practices from their experience. —Christof Ebert
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 frame-
work for plug-ins. Besides its runtime
kernel, the platform consists of the work-
bench, workspace, help, and team com-
ponents. Other tools plug into this basic
framework to create a usable applica-
tion. 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 inter-
face. When you start up the workbench,
you’re not starting up a single Java pro-
gram. You’re activating a platform run-
time that can dynamically discover regis-
tered 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 ex-
tend it to suit the needs of your develop-
ment environment. For example, if a per-
spective is inadequate, you can create
your own perspective or plug in an ap-
propriate 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 eas-
ily 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 “up-
date site project” through the Eclipse
Plug-in Development Environment.
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 uti-
lize GEF’s visual-representation capabil-
ity and EMF’s data-representation capa-
bility 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, Valida-
tion, and Object Constraint Language, to
enable model-level validation.
At Motorola, we experimented with
integrating tools specific to different life-
cycle development phases into the Eclipse
environment. The service-creation frame-
work 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 im-
plements the graphical user interface, let-
ting developers use visual programming
to build applications. The framework
maps a diagram element in the editor to
one or multiple predefined service com-
ponents at the component layer.
We developed the second tier, the do-
main 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 imple-
mentation of our own plug-ins for
defining service components as J2EE
components and Web services. These
components and services handle the in-
tegration with legacy systems and data
storage. We also used WTP to package
and deploy the final application.
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
8 8
I EEE SOFTWARE www.computer.org/software
OPEN SOURCE
Checking
Saving
Validation
and
verification
Requirements
management
import
com.motorola.gama.wizard
s.GAMATemplateWizard;
public class
WizardAction
implements
IWorkbenchWindowActionDe
legate
{
private
IWorkbenchWindow
window;
public WizardAction()
{}
try
{
GAMATemplateWizard gw =
new
Balance: Edouble
Name: Estring
SSN: EString
Account
Create
accounts
Update
accounts
Deposit
Withdraw
Sys
admin
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 N/A Yes Yes Yes
C/C++ N/A Yes Yes No
Project/component integration No Yes No No
Data integration Yes Yes Yes Yes
Function integration Yes Yes Yes Yes
User interface integration No Yes Yes Yes
DSM/DSL support* No Yes Yes No
Available plug-ins

N/A 1,385 71 358
Human languages N/A 23 1 (English) 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.
March/April 2007
I EEE SOFTWARE
8 9
OPEN SOURCE
Eclipse’s rich features can greatly reduce
the amount of coding needed for devel-
oping plug-ins, figuring out where these
features are and how to use them can
take a lot of time. The most helpful re-
source 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, devel-
oper comments and ratings, and location
information for each plug-in.
Frequent updates of the Eclipse plat-
form 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 plug-
ins, 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 in-
stalled on the current Eclipse platform.
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 man-
agement let organizations customize and
extend Eclipse to meet their engineering
processes, tool integration, and project
management needs.
Zhihui Yang
is a senior software engineer at Motorola’s
Software and System Engineering Research Lab. Contact her at
zhihui.yang@motorola.com.
Michael Jiang
is a distinguished member of the techni-
cal staff at Motorola’s Software and System Engineering Re-
search Lab. Contact him at michael.jiang@motorola.com.
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.
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]
MsgService
MobileService
ID: EInt
PersistentMgr
Load()
Save()
VoteProcessor
Actions
Software
testing
BarChart
SendMsg
Config
Eclipse integration platform
WTP—Web Tools Platform
GMF
TPTP/JUnit
EMF JDT/WTP WTP
GMF—Graphical Modeling Framework TPTP— Test and
Performance
Tools Platform
EFM—Eclipse Modeling Framework
JDT—Java Development Tools
Figure 2. Tool integration for life-cycle development.
Eclipse Resources
For basic concepts about the Eclipse plug-in architecture, extensions, and ex-
amples, 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 devel-
opment 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 spe-
cific tool needs.
1
Among them, the following levels are especially useful.
Invocation integrationlets 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 integrationallows data to be exchanged or manipulated by tools. Data
integration provides state reuse, but not behavioral reuse.
API integrationallows applications to be accessed through tool-specific APIs,
which simplify client application development by providing data encapsulation
and behavioral reuse.
UI integrationlets 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.
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.