HomeStreek ResourcesClient AppsDeveloper ResourcesTalksHowTo Docs
 

Toolset for Object-Oriented Application Development

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:

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

Canoo
Automated testing of web applications. An open-source tool.
JMeter
Performance testing on static and dynamic resources. An Apache-Jakarta project (open-source).

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.