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

Squeak Squeak

Group Members
Tan Tran
Nhan Le
Viet Nguyen
Uyen T. Le

This is for those of us who are not hard core coders, and did not code the java virtual machine or something like that. Just remember you can still make a good grade in this class. Or at least as of right now (during dead week).

There are instructions on how to run our complete project on the bottom of the page.

Milestone 1:
Recomendation for future students:
You have to believe that this first milestone is important. Make sure that you do this by yourself. This milestone introduces and definitely teaches you the important concepts in squeak. SO DO THIS WORK ... trust us ... we learned this by experience.

We think that is was a good idea because it got us very familiar, or at least learned some of the squeak syntax. It was fun to see the environment that squeak lives in. The amazing thing is that everything is an object, we do not have to worry about declaring types for each variable. It was honestly, a little hard to get used to the whole ALT D and ALT P. Here is the code we used ...

Milestone 2:
Recomendation for future students:
The first thing in this Milestone is that you should pick a good team. A compatible team is significant because this is a long long long project. Did I meantion that this project is long? You should have your team picked out from the beginning, DO NOT wait until that last day to pick a team. Oh and don't forget to pick a good team name. We recomend that you learn and explore more about the GUI components of squeak. There is a lot for useful stuff that we did not learn till later, and if we knew that then our Interface would be more usabel and attractive. Sunit, the main point is that don't ignore it, it is important eventhough it may seem pointless at the beginning. And good senarios == good grades

There were a number of things that we wish we could change. The first being that we should have understood the whole project before starting this. To be honest, the nfo files does not quite explain the project as well as we would like, so asking questions on the newsgroup and to the TAs were a great help for us. We designed our interface, not with usability in mind but with what we were able to do with the new GUI components that we learned (that was not too much). If we had time to explore more, we could have had a easier interface to use. The second thing, is that we did not understand the meaning of a senario. We turned in one long description of our code, yeah ...we quickly learned that that was not right.
Squeak Squeak Group.doc – this is an example of a bad senario.
Instructions for 2 task.doc

This is our first UML, as you can see it is very basic. As this page goes on you will see how our UML has grown and how our skills and knowledge has sharpen. We are hoping that you will just learn from what we did and so not have to make the mistakes that we've made.

As you can see here, we barely have any kind of system clarifications. Our design does not even have all the classes connecting. This diagram really shows how we did not understand the project nor UML class diagram rules.

Milestone 3:
Recomendation for future students:
In this milestone we were assigned to design everything. This is when we finally figured out what the project was all about. We recomend that you should take this milstone very seriously. This is the time for you to really figure out what you are going to do for the project. Many people do not believe in design, but we have to say that it is the one thing that helped us work together but seperate. We were able to divide up work, go work on our own, then come back and put everything together correctly. Since this is the full design of the system, it is important for all the members to sit down togerther and get their ideas on paper. Also, having the group in a concensus on which classes connects with what is important in the future implementation.

What we would like to change is that we would have the designed more clearly. We should have gone to the TA earlier before the due date to ask for his advise. Make sure you take advantage of the TAs because they will help you as much as you can. This is finally when we understood CRC cards and Senarios. The ECode was very usefull. Keeping those cards and senarios seperately was a big hassle. Having it all together in one thing is great. We definately recommend using this in your project.


This is our blind UML disgram. We designed this with out doing any implementation. Of course this will change a lot, along the way, and this is expected, so dpn't panic is this happens to you.

Here you should notice that our multiplicities are not correct. The Guide is out main driver, and where all of our data is stored. The model, such as the Guide window, save window and etc., should have one Guide and of course the guide has an instance of this window. Also notice that, since the GUI knows about the Guide and the Guide does not know about the GUI, the arrow points toward the Guide. This is something we think is important to capture during the UML drawing process.

Milestone 4:
Recomendation for future students:
Anamation is Squeak is fun but slow. It takes up a lot of your computer usage and slows your computer down a lot. At least this is what happened our one of your group memeber's labtop. I don't know what the recommendation here is, but just beware.

In this milestone we were asked to make a GUI and a 3d character that the user will interact with to navigate the guide. Our main problem is that we did not understand too much of how the graphics presentation works in Squek. But we soon learned. If there was more time, we would really like to draw our own charecter to integrate it into our Guide. So duw to time, we used one of the charecters that's in the Wonderland. We thought this was great and it help us concentrate on the important functionality. There us one thing we learned in this milestone, which is that documentation is important. Even further, not just documentation but correct documentation. We made the mistake of not always putting comments in the comments of a class (the ?). THis is very significant since when you go back to read your code two or three milestone later you can have a reminder of what a variable is for. We found this very helpfull.


This is our update UML after some implementation and of course TA input. This is a good representation of our system.

Uploaded Image: M4UML.jpg

After some implementation, we had to add some classes and change other class names. You can notice at the marked red oval, that we had changed our multiplicity to the correct one. Also, at the red rectangle are the new classes that we added due to implementation of the two D GUI. Just remember that developement of software is not a linear process but it is more of a recrusive cycle. You will have to go through the Software Develpement Cycle over and over again.

Milestone 5:
Recomendation for future students:
For this milestone we were suppose to make a demostration engine that will show the user how to do the five tasks that we pick. I have to say, that we were kinda lost. From this we want you to know that even if you are not sure of how to implement something, don't panic too much, just go to the TA. :-)

For this part, we had an option to only implement the requirements for this milestone, but the next milestone is an extension of this one. If we were to take the short cut, we would then have to re-implement this part in Milestone 6. We made the decision to implement it correctly, even though it took a little more work in order to make sure that it will be able to incorporate with the next milestone. We were glad to see in the next last two milestone that our hard worked paid off and we did not have to do as much work in Milestone 6 and 7.


This UML does not have too many changes. We were able to design our system so that we can build on to it and not have to re-do any thing in the old code.

Uploaded Image: M5UML.JPG

You can noctice at the red oval, that we had added a new GUI window for our users to enter the script. We then was able to add messages in some of the classes inorder to make this functionality work. In this milestone, it was great that we can actually go into the code for the language and change certain message to make our scrip run and do the things we needed it to do. In any other language like java, we would never be able to do this.

Milestone 6:
Recomendation for future students:
In this milestone we had to be able to read and write to an xml file. We decided to not take out the options to load a regular text file but we added on the xml file writing. The one thing we want the future students to know is that xml parsing and building is not hard at all. Also we had to make our system do each individual steps. Since our implementation from last milestone for preparation for this one, we were able to achive this easily.

There is one thing we learned in this part that has nothing to do with programming but is useful to know. We realize that if we take advantage of the specialties of each member in the group, we can accomplish out task much easier. If someone in your group is good at something, then make sure to assign the work accordingly, this will save you alot of time.


This is our final UML. we presents our system as a whole.

Uploaded Image: M6UML.jpg

Milestone 7: Final:
Recomendation for future students:
This is our final project as a whole. In this last milestone, the professor provided a list of tasks that our system must be able to show the user how to do. We were able to just look around the code of the language and write a script that allowed us to manipulate the the functions as we needed to.

In this last milestone, we realize why we were able to accomplish our goal. We realize that we were having fun in our group, thus the time we spent working on the system was not always dragging. We very much recommend that you have fun in your groups as much as you can, since you have to be there regarless.

Instructions on how to run our project: User View

You will see the following on your screen:

Uploaded Image: screenshot1.JPG

This is the screen that the a user of Squeak will see as their Guide.

Instructions on how to run our project: Administrator view

you will see the following screen:

Uploaded Image: screenshot2.JPG

Link to this Page