Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
M1 - Design 1
The final project is to complete a preliminary port of ECODE, the software support for the Ectropic Environment. The preliminary port just means we are going to recreate a portion of the ECODE system on squeak. You will be NOT actually using any of the old code. Just look at the documentation to get an understanding of what the original program did and how it functioned.
Take a look at:
Ectropic Project Page: http://www-static.cc.gatech.edu/computing/ectropic/
Ectropic Design Page http://coweb.cc.gatech.edu/cs2340/4015
Ectropic-Squeak Page http://swiki.cc.gatech.edu:8080/ectropic
The users manual should be useful in seeing how the original application worked.
Our project will be to support the following functionality:
- Create Goals. These can be thought of as high-level features. These are supported (or met) by some combination of classes and scenarios.
- Create Scenarios. These are our standard scenarios of use for a system, represented as a sequence of steps.
- Create Candidate Classes. Just like your other design projects, need to brainstorm a candidate list of classes.
- Create CRC Cards. For the classes selected, Create CRC cards that allow you to enter a Class Name, a list of responsibilities and a list of Collaborators for that responsibility.
- Roleplay the scenarios. When a scenario is selected for roleplaying, each step in the scenario should relate to a card and responsibility being performed. (Obviously not every step may have a card at the analysis stage, because we have not yet done the application objects that represent the UI (view/controller/appmodel) elements. This roleplaying should be done by graphically laying out the cards in a view with arrows moving from responsibility to responsibility.
- Create application objects. Allow users to add to the class list classes that support the implementation.
- Draw a simple UML Diagram. Create a graphical representation of the design, so that classes are shown in rectangles, and their relationships are shown via association (line) or inheritance (triangle).
- Unsupported for our class project.
Information should be persistent (load and save projects) so that you do not have to recreate the data everytime you start.
- Apply graph layout algorithms to the cards and UML diagram to minimize line crossing and layout the diagrams in a visually pleasing manner.
- Implement part of the Implementation phase such that smalltalk classes are stubbed out from the design.
- Add attributes and methods to your UML class diagram drawing.
- Add networking so that the application is usable concurrently by multiple designers.
- Use a database backend for the data
- Implement drag and drop of classes and cards in the graphical views.
- Form a 3-4 Person Team
- Identify Domain classes
- Create CRC Cards and Scenarios for the Candidate classes
- Assign Role Sterotypes and Responsibilities to classes
- Roleplay scenarios to clarify responsibilities and collaborations
- Meet with your assigned TA (after submission grading) to discuss your design and possible improvements
M1 is 4% of your grade. Criteria Breakdown:
Domain Object Identification 10
CRC Cards 30
Role Stereotypes/Responsibilities 10
Team Page Setup 10
TA Meeting 20
Questions and Clarifications, M1 Fall 2006
Link to this Page