General Project Information

The following is adapted from the project description from the Fall 2010 incarnation of this course taught by Mike Godfrey (MWG) and Daniel Berry (DMB). Sometimes ``I'' is one of these two

The Project

The course project for this term is your SE 490 prototype system.


You will be working in groups of 3 through 7 students, and have several incremental deliverables to co-operatively implement. While some semi-formal models will be created, you will not write any executable source code in this course.

Spread Work Over the Entire Term

The strong piece of advice that we give every year – and is often ignored – is to start early and to iterate repeatedly over your work. The actual deliverables seem small, almost trivial. Indeed, the first two deliverables might be a single page each! However, the difference between a good model and a bad one is one of the things you will be learning, and we will assign the marks accordingly :-)


Your deliverables will be a combination of UML diagrams and text documents. We don't really care what tools you use, as long as the end results looks reasonably good. We do have some recommendations, though.

UML tools

Probably, you should just download and install a copy of MagicDraw, which is a pure Java application that runs on Windows, OSX, and Linux. We have a site license that lets you install it on your own computer, as long as you promise to use it only for course work (it's a professional tool widely used in industry). To download, see this web page; you will need to use your WatIAM ID and password.

MagicDraw is what's called a modelling tool. It's somewhat heavyweight to use, but it also knows you are trying to make a UML diagram of some kind, and offers nice support. I like to contrast a modelling tool such as MagicDraw, with a drawing tool, such as MS-Visio, OmniGraffle (OSX) or dia (Linux), each of which also provides support for creating UML diagrams. Drawing tools are often easier to learn, and may take less time to draw quick diagrams, but they don't really understand the picture you are drawing. A drawing tool will let you draw just about anything: you could draw an inheritance arrow between a class and a use-case (which makes no sense in UML). A modelling tool will constrain what you draw as best it can, but it requires more investment in learning how to use it. Whatever you decide, make sure that your tool can generate PDF versions of your models for handing in.

Personally, I use both kinds of tools. I find that OmniGraffle draws the nicest looking UML diagrams I know of, but I use MagicDraw for anything more complex than a simple example (MWG).

Text processing tools

I'm sure most of you have used MS-Word or something similar (e.g., Open Office), so you know how that works. It's WYSIWYG, easy to learn, easy to paste diagrams into, etc. However, for structured documents it has many shortcomings. Like most professors, I (MWG) use Word only when I have to and for short documents; I (DMB) use Word only when I am working with a coauthor who uses it and does all the actuall writing; for anything substantial, we use LaTeX (pronounced: Lah-Tech). LaTeX is a markup language not unlike HTML (although LaTeX is a LOT more powerful). It's free, it's been around for many years, and there's lots of documentation on the web. You can write macros for it, and have very fine control over layout. If you want to try it out, here's a sample LaTeX file. An example of a LaTeX document that is divided into components is available as a sample main file and a sample component file.

However, you are free to use whatever word processing software you like.

Deliverable General Rules