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 :-)
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.
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).
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.
The first two deliverables do not need a cover page, as they are
short. You must indicate only:
You will need to submit both hard copy AND and electronic copy of each deliverable:
The file name for the same deliverable
should be
"DK-GXX.pdf" where
K is the deliverable number and XX is your group number,
with a leading zero if it's less than 10. PLEASE use this subject line
and file name; otherwise it is difficult for us to organize all of the
submissions.
All submissions must be
in PDF format.