






Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
M3 Practice Design Summer 2007
General
For M3, you will form a 4 person team and do a part of the design process that you will follow for the final project.
Create a Team Page for your group that lists Team Name, all Member Names, and all Member Email addresses. Link it off of: Project Team Pages, Summer 2007
Project
We will design the Graph Algorithm package from Spring 2007. Your team turn in the following:
- A full list of all brainstormed classes.
- Some indication (like crossouts) of those classes eliminated during filtering.
- A set of CRC Cards (actual cards not electronic versions) for the Candidate classes. Be sure to do both sides of the card (ie don't forget the purpose and role stereotype on the back)
- 2 scenarios that you have role-played with the cards.
- A brief description of how the role-playing affected your Candidate class list
SmallGraph
You should provide the following functionality:
1 Graph Model: A data structure and supporting classes that represents a graph (a set of nodes and edges). Each node and edge should have the ability to hold an object reference that is defined by the programmer using your package. You may assume that the object will respond to the asString message by returning a string representation of the object. You should be able to load and save the graph model.
2 Graph Algorithms: A set of algorithms that can be run on either undirected or directed graphs. The following algorithms should be supported:
- Breadth-First Traversal
- Shortest Path Between 2 nodes
- Minimum Spanning Tree
- Max Flow
- Graph Connectivity (are all nodes reachable?)
3 Graph Editor: A graphical interface that allows users to interact with the graph. The following functionality should be provided:
- Add node
- Remove node
- Add edge
- Remove edge
- Resize node
- Run Algorithm
- Display the graph. Nodes should display their label or id (user option) and edges should display their label or weight (user option).
- Edit graph layout. User should be able to move nodes around on screen by dragging with mouse. Edges should also move in conjunction with their node.
Display Algorithm results. For example, the shortest path or minimum spanning tree edges could be darker.
Due:
In hardcopy to instructor by end of class period, Wednesday June 13th.
Grading Criteria
Brainstormed Classes.......................... 20
CRC Cards..................................... 30
Scenarios..................................... 20
Role Stereotypes, Purpose and Responsibilities 20
Team page setup............................... 10
Link to this Page