






Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007
Andrew Orlando
andreworlando.com, an ASP.NET / MySQL based site I coded
Hobbies:
music, movies, (netflix), good food (indian food!), cooking, PC games, video games, a little photography with my Canon A620, reading if I have time, programming, game development, software, Internet, computer hardware, pressing buttons, riding 4-wheelers!
CoWeb Assignment 3:
Extreme Programming
In Extreme Programming there is a brief stand up meeting each day where developers discuss what they are currently doing and hope to accomplish that day.
Then they get into pairs to code, all production code is written in pairs. In pairs they take turns coding and watching the other person code, looking for mistakes and other ways of doing things. Unit tests are written first in Extreme Programming. With the merciless refactoring in Extreme Programming this extensive unit testing is very valuable. All unit tests must pass for an individual small release (it is an iterative process). Design values simplicity most and doesn't add features that aren't immediately needed. Developers only work 40 hours a week in XP. Pair programming is shown to increase the quality of the software without really increasing the time it takes to create the software. Also, if a developer leaves the team there is always at least one other person who understand code he/she worked on.
Garbage Collection
When cycles occur in references Garbage Collection with references can never fully clean up unused objects. You could have two objects that are both pointing to eachother never being deleted. Also, it is a bit slow to update the number of references constantly. On the plus side garbage collection makes it easier to code and adds security/safety. Cons include a performance hit however.
Usability
The Gulf of Execution is the difference between the actions the user wants to take and the actions the system will allow them to take. An example is a user wanting to use Copy (ctrl+c) in an application but finding him/herself unable to do so. Then there is the Gulf of Evaluation. This is about how difficult it is for the user to see the state of the system and how well intended actions are being carried out. One example might be requesting that iTunes convert a video to iPod's format and the user then being unable to find the status of the conversion anywhere.
CoWeb Assignment 2:
User Interfaces
"In the Model-View-Controller paradigm, there is a clear separation between application semantics (the Model) and the input-output behavior (View and Controller). Why is this separation desirable? Describe the mechanics of MVC that allows for minimal dependence between a Model and its View."
Using Model-View separation allows one to easily have multiple views on the same model. For example, say you have a character in a game. The user may see several views on this character. One may be the "main" third person view of the character walking around, fighting, doing what the user instructs. Another view may be an "equipment screen" view detailing every peice of equipment that character is wearing, which shows a different part of the model than the previous view. A third view could just show a portrait along with a health bar, maybe other users can see this in their UI. All of these views are based on the same model, and all three can show up at once.
Refactoring
Refactoring is cleaning up the design/extensibility/readability of currently existing code. It is not about adding new features. The end result is code that may do the exact same thing as what you started with, but is more easily maintained, extended, and understood by other developers.
One major sign indicating a need for refactoring (towards polymorphism) is a large class with lots of switch or if statements relating to some sort of "mode". For example, I refactored a row-reaping system that had a lot of boolean if statements relating to MS SQL Server versus MySQL. You would make a superclass and subclasses, everywhere there are these if statements/switches make sure there is an abstract method in the superclass that the subclasses implement appropriately.
Another sign is having to copy/paste chunks of code for use in many places. This makes that code very hard to maintain, a need to change this code means you have to change it in many places (if you can even remember/find where they all are). This code could be put into a method somewhere for reuse, then all the places that had the code block before can now have a simple method call.
Useful Cases:
- 2006Spring: MusExMachina: Team Productivity Practices
A lot of these Cases seem to apply to specific projects which I will not be doing this semester. However, this case has tons of information on how to work better on a team, which many struggle with. I was wondering how to do concurrent versioning control easily with Squeak, and they've got that in there. It is one of the examples for a reason.
- Video Professor
It couldn't get easier for someone brand new to Squeak to find out how to accomplish basic tasks. I can definitely see myself using this. Great use of youtube, clear voice instructions. You'll need Flash Player 8 installed.
- Spring 2006 Midterm Review Solutions
Looks like a good review, I'll probably take another look when midterms come. I don't really know much about CRC cards at all now so I'm sure I'll be studying them. It's all in a nice pdf.
- Introduction to Squeak, its Tools, and GUI Debugging Case Study
Great intro to Squeak with lots of pictures. Also has a lot of other material like tips on working in teams. Their team name rocks too. Baby seals don't belong in clubs.
-
Mini Java-to-Squeak Tutorial
You're already used to java, this guide has the idea of showing you first how you remember doing something in Java, and then showing you the Squeak version of it. From comments to loops there are a lot of helpful examples.
Links to this Page
- Restauraunt Reviews last edited on 15 May 2006 at 5:11 pm by c-71-56-14-77.hsd1.ga.comcast.net
- Books last edited on 18 May 2006 at 5:26 pm by c-71-56-14-77.hsd1.ga.comcast.net
- Summer 2006 Who's Who last edited on 3 September 2007 at 8:57 pm by adsl-215-134-227.aep.bellsouth.net