Toolset for Object-Oriented Application Development
- Overview
- Distinguishing Tools from Implementation Technologies
- Preference for Open Source
- Tools described in this document
- Tools omitted from this document
- IDE (Integrated Development Environment)
- Testing and Development Tools
- Project Management & Documentation Tools
Overview
* * * * * D R A F T * * * * *
This is a incomplete draft document.
Last Update: 22 April 2005
Distinguishing Tools from Implementation Technologies
A simple rule-of-thumb distinguishing development tools from implementation technologies is this:
- Technologies deployed with the application are part of the implementation technology stack.
- Technologies used in the course of developing the application but not deployed into production are tools.
Preference for Open Source
Use of open-source software "where feasible" is a recommendation of the 2004 California Performance Review. Licensure cost savings, functionality, and integration with the toolset as a whole are all considered in recommending the selected tools listed in this document.
Tools described in this document
Tools described in this document fit into several categories:
- IDE (Integrated Development Environment), within which many of the listed tools are utilized.
- Testing and Development Tools
- Project Tools for tracking, managing, and documenting projects.
Tools omitted from this document
A spectrum of tools are not listed in this document. These include development tools as critical and/or prosaic as:
- whiteboards, meeting rooms, index cards, and napkins
- appropriate IT infrastructure (development workstations, QA and production servers, and a network to connect them)
- reference resources, from books to tutorials to hyperlinked APIs
IDE (Integrated Development Environment)
Eclipse is selected as the platform on which the IDE of choice is built.
Eclipse is an open-source tool with an architecture that integrates hundreds of plug-ins in dozens of categories. The platform's development is directed and supported by industry heavyweights, including Borland, Rational Software, TogetherSoft, IBM, HP, Intel, Fujitsu Hitachi, Oracle, SAP, Sybase, Red Hat, and SuSE (a more complete list can be found here).
Many of the tools listed in this document are available as Eclipse plug-ins; most of them are open-source software and thus incur no licensure costs.
Testing and Development Tools
Unit Testing Tools
- JUnit
- Unit testing of Java code. An open-source tool, integrated into Eclipse.
Container Testing Tools
- Cactus
- Unit testing for server-side java code. An Apache-Jakarta project (open-source).
Web Application Testing Tools
Coding Tools
- Oxygen
- XML editor and XSLT debugger. License required; academic pricing available. An Eclipse plug-in is available.
- Jalopy
- Facilitated adherence to coding standards. An open-source tool for which an Eclipse plug-in is available.
- PMD
- Source code analysis; applies configurable rules to source (Java) files and reports potential problems. An open-source tool for which an Eclipse plug-in is available.
Project Management & Documentation Tools
- CVS
- A mature, widely-adopted open-source version control system, fully-integrated in Eclipse. (Note that Subversion, an next-generation open-source version control system designed to replace CVS, is under active review and monitoring to determine whether and when it ought to supercede CVS as the version control system of choice.)
- Ant
- Project builds, deployments, document assembly, etc. An Apache project (open-source), integrated into Eclipse.
- Maven
- Java project management and comprehension. An Apache project (open-source). Eclipse plug-ins exist, but no choice has been made yet re: which is preferred.
- Forrest
- Project documentation site. An Apache project (open-source). Documentation on running Forrest builds from within Eclipse is available in a HowTo on the Streek Project Site.


