CS 383 Project Document #1 - Fall 2008

ICU MUD - Idaho Collaborative UML MUD

The ICU MUD, referred to from now on as ICU, will be a multi-user collaborative UML drawing tool that runs in both text-only and graphical modes. Basic idea: let people "run around inside" -- build and edit -- UML-based software projects together.

Overview

Rationale

Flavor

Compare this Rogue screenshot with this UML Ascii Art:

 +--------+       +---------------------+ *
 | Client |------>| Component           |<-----------------------------+
 +--------+       +---------------------+                              |
                  | Operation()         |                              |
                  | Add(Component)      |                              |
                  | Remove(Component)   |                              |
                  | GetChild(int)       |                              |
                  +---------------------+                              |
                            #                                          |
                            |                                          |
                     +----------+--------------+                       |
                     |                         |                       |
                  +------+------+   +----------+----------+  children  |
                  | Leaf        |   | Composite           |O-----------+
                  +-------------+   +---------------------+
                  | Operation() |   | Operation()         |
                  +-------------+   | Add(Component)      |
                                    | Remove(Component)   |
                                    | GetChild(int)       |
                                    +---------------------+
Now mash in: text adventures (every class is a room with a text description and class elements are items in the room), IRC/IM chat (you can see and chat with other users) and Eliza (you can chat with class components) and you have something pretty weird and interesting.

Informal Requirements

  1. Support collaborative UML drawing
  2. Allow users to browse around within their UML-based software projects; provide a focus of attention and a sense of location
  3. Provide real-time awareness of others online; not just who is on-line but what they are doing, and where
  4. ... many more to come

Where to Start?

We will start by building a standalone UML drawing tool. Before that we will build a simple, MS Paint-style drawing tool. These things will come this semester, but we will plan what we are doing before we dive in to coding.