Course Project: General Information

Overview

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 course project for this term concerns the specification of a bi-direction word processor that is an extension of Mac OS/X's Text Edit, Microsoft's WordPad, NotePad, or Word, at your choice. See a description of how bi-drectional word processing works. See the course lecture slides for some more details. Your job will be to understand the correct behavior of a Unicode compliant bi-directional word processor and to reflect that understanding into an enhancement of the word processor you have chosen. You will be working in groups of 3 or 4 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.

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 :-)

Resources

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

The first two deliverables do not need a cover page, as they are short. You must indicate only:

Deliverable 2 and those that follow will be longer documents, in two cases much longer; for each of these, you must provide a cover page that clearly indicates:

You will need to submit both hard copy AND and electronic copy of each deliverable: