Development Infrastructure

Internal Website

     This internal web is the place for the project to share and record knowledge: keep it up to date.

CVS Repositories

     See http://www.cvshome.org/ and How to Use our CVS Repository

WinCVS

    WinCVS is a nice Windows client for CVS.

Eclipse

We use the Eclipse IDE for Java (www.eclipse.org). We are currently using stable build M5 (20020416), and we will all use the same build to ensure engineering consistency.

JUnit

JUnit (www.junit.org) is an excellent unit testing framework and is built-in to Eclipse. We are using JUnit for all out unit tests, and we are writing unit tests for all our code. ALL our code.

Run JUnit in Eclipse using the standard run dialogs. In our code, use the “AllUnitTests” classes to run the entire suite of tests. The Eclipse/JUnit integration is well done and thus one can do things like double-click to find the exact line a test failed, etc.

We have found setting up a new TestCase and a new TestSuite to be non-obvious because we can never quite figure out all the necessary meta-methods. Thus we suggest that you copy an existing test classes or classes when creating a new unit test. And we suggest that a good development habit is to never throw away a test – if you wrote a test once (any once), just keep it around as a JUnit test case.

JUnit catches exceptions in tests and uses it to create useful debugging information, so, in general, don’t catch exceptions as part of the test (unless the throwing of an exception is what you are testing for ).

Fireman

David says: Once we have the 403 fireman running properly, we'll change this link to point there.

We use a Tinderbox-like automatic build system named Fireman (http://www.urbansim.org/fireman). Fireman automatically builds and releases the code each time code is checked in to CVS. Fireman also controls the traffic lights.

JExpress

David says: You'll need to choose an installer. Let me know if you want to use JExpress.

The installer we use is JExpress (www.denova.com) and it’s not very good. Its main advantage is that it has a menu item to automatically update the software to the latest release.

Fireman builds a new install for each successful (green) build and places the install on the download website (http://www.urbansim.org/download/SoftwareDownload.shtml). There are a number of files that are important:

Bugzilla

David says: It would be nice if you have a defect tracking system. Let me know if you want to use Bugzilla.

We plan to use Bugzilla (http://bugzilla.mozilla.org/) for defect tracking, and we even have it installed on either oslo or trondheim. It has not been completely configured yet – that’s one of our tasks. Our goal is to have all bugs and feature requests placed in the bugzilla database in order to automate tracking, etc.

Javadoc

David says: Having the JavaDoc automatically built and put on a web somewhere turns out to be very handy. If you do that for 403, you'll want to update the link to the 403 site.

We use standard Javadoc comments (http://java.sun.com/j2se/javadoc/writingdoccomments/index.html) in all our code (or, rather, in all our code where the behavior of the code is not obvious). Our Javadoc is automatically placed on the website via the Fireman build process: http://www.urbansim.org/docs/greenflash

UML

David says: This is what UrbanSim  decided to do with UML. You are free to follow this, adopt your own guidelines, or not use UML at all.

Communication is one of the key skills we need as an interdisciplinary team. One basis of communication is a common vocabulary. We have chosen UML (http://www.omg.org/gettingstarted/what_is_uml.htm) as our common diagrammatic vocabulary. However, as with most users of UML, we are using a localized variant of UML – specifically, we are using the parts of UML that are valuable and ignoring the parts that are tedious and uninteresting.

 Class Diagrams

Things to know:

Interaction Diagrams

Things to know:

Sequence Diagrams

Things to know:

 


$Id: devinfrastruct.html,v 1.2 2002/06/22 01:09:44 duisberg Exp $