View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Basketball Guzzlers

Introduction

Our group did the StockTrader project that simulates a stock market where account holders can create portfolios, and buy or sell investments such as stock, bond, REIT.

By Linh Le & Joseph Jo.

M4 - Final Project Domain Analysis, CRC Cards, Scenarios

Summary
M4 is a huge milestone. Be prepared to spend a lot of time on this with your group. Find a nice empty room with a large whiteboard to brainstorm your classes. Then, after brainstorming, decide which classes you want to keep and think of what kind of domain you want. After all this is done you will have to make CRC cards for each of your classes. Just think of what each class does and give it a service provider. After all that, a scenario shouldn't be too hard. M4 isn't too hard, it just takes a long time. Remember to plan out a couple of hours to work on this and all your team members must be here so that they can understand that this the domain. Remember, this is a team project. This is probably the most crucial part of the project.

Requirements

Files

What worked
Set up to meet in the Klaus building. Hashed out project and overall classes that we were likely to use. It helped to have one person write on the board what we were going to do while one of us would do the CRC cards at the same time. For all of us, this was the first time that we met so it was a chance to see how we work together and get to know each other.

What didn't work
For most of us, this was the first time that we had practiced object oriented design. We did not implement any design ideas, such as using patterns or using a different architecture.

What could be done differently
Appoint positions at the very beginning. It will save you a small bit of whatever large bit of work that you do. You will need to:
These are secondary roles that the team will need in order for the team to shave off some work later on.

In addition, know what everybody's interest level in coding will be. There are three components: design, programming, and documentation. Everybody's interest and expertise will be different. If you can't code, then you can document.

M5 - Final Project Detailed Design, UML, Architecture

Summary
M5 takes a really really long time. Plan a lot of time for this one and start early. As soon as possible. You might have to split this up into a couple of days and it might be easy to split up some of the work like we did. You can have all your team members each do a contract, and then delegate the exception handling strategy, UI prototypes, application/utility class identification, and architecture/trust boundaries. For the latter two, have the group take a look at it because it's important. Then the next day after the small stuff is completed, as a group, you can work on updating any CRC cards/scenarios from what the TA said, and then make your UML class diagram and the UML sequence diagrams. These take quite a while. We drew them on the board first in shorthand and then we used a software called OmniGraffle to make it. You can use any software you want. Make sure all your team members are there and agree with one another. There's a lot of requirements for M5 so make sure you have all of them done. Our StockTrader project from the first meeting was a general plan on how to implement the project. In this meeting, the GUI, UML diagrams, and Architecture was discussed. This meeting is crucial because it is ultimately what the final design will come out to be.

What worked

What didn't work

What could be done differently

Files

M6 - Domain Object Coding and Unit Tests

Summary
We ran into numerable problems updating the code. We usually met in a group to code and the VisualWorks repository did not work this semester so we had to email it back and forth for a couple of weeks, which was a huge pain. Late into M6, we set up a CVS repository (maybe we should have gone with Subversion?). After working with CVS for a couple of weeks we noticed that once in a while some of our code was missing. It turns out that a lot of our code was being deleted when another team member was updating their code. Eventually, late into M7, we had to file out all our individual classes and then update using CVS, and then file the classes back into our main package. What a pain! Find a good system for multi-users. Remember to start this as early as possible because you will run into problems. Also, not all team members can code, so give them something else to do, or have them work more on the other modules. At this stage, it is relatively simple to create the domain objects identified in M4 (and perhaps modified in M5) and comment the code. This is also the stage for the initial GUI development.

Requirements

What worked
Smalltalk (gasp) in creating the domain objects. This is the only time it ever worked.

What didn't work
Our team set-up a CVS repository so that each of us could code separately. The repository set-up did not work and made programming take even longer after we identified errors in the merging. It was a hassle to constantly check for the latest version and the program coming up with errors. In the end, pair programming with somebody else saved us more time then the CVS repository did.

What could be done differently
If the group hasn't met to code before, this is the part where they should. Everybody needs to code together before they can code separately. Also, bounce around ideas on how the program should work.
Files

M7 - Complete UI and Application

Summary
Don't underestimate the GUI. It can be sticky. The M7 is the full application. It jumps quite a few steps from programming the domain objects to programming the technical, services, and application layers.

Requirements

What worked

What didn't work

What could be done differently

Files

M8 - User Interface Evaluation

Summary
Pick one of the methods for evaluating the UI (we picked heuristic evaluation as it was most common) and just do it. We have all four team members do separate evaluations on another team's project and then after collecting the data, we picked three of the heinous crimes against UI heuristics and then gave severity warnings. It's easier if one person just writes the report. M8 is ensconced in-between M7 and M9 so you might forget about it as it's still worth a lot of points. Also, contact the other team ASAP so they can give you their code to evaluate. Be nice and give the team who is evaluating you, your code. Remember to be prompt in communicating and give instructions on how to run your code. P.S. Don't send the whole image, just send the package. ;)

Requirements

What worked

What didn't work

What could be done differently

Files

M9 - Design Surprise Twist!

Summary
Nope, it's not over. There's more. The surprise twist wasn't that much of a surprise (hint hint, show up to class) and it was a lot easier than M6 or M7. Just spend a couple of days and it'll be easy. Make a website using HTML and CSS. Insert Smalltalk into a SSP file. Use includes and session handling, along with query strings. Don't forget to use forms. After all that you get a dynamic web page with server-side scripting. If you have a graphic designer on your team, make a nice website and get extra credit.

Requirements

What worked

What didn't work

What could be done differently

Files

Design Review

Files

General Comments

Lessons Learned:

Link to this Page