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

Rahul Gokulnath

My name is Rahul Gokulnath, I am a 4th year cs major. I currently am working at my own company in alpharetta, filling the IT needs of other small businesses in the north atlanta area. I hope to continue working for myself and see where life takes me.

hobbies: cooking, playing sports, soccer
motivation in life: wife's nagging

WeGLOW '06 Cases

I liked martin's report, because he gave a full preview of what is to come in this class. By explaining all the work they did for each milestone I gathered that most of this class focuses on object oriented development. Also it seems like there is a stress on the process of developing in a team environment.

Flash Gordon Productions

This team had a very detailed listing of what CRC cards are and how to come up with CRC cards. CRC cards seem to be a very interesting tool in software development. I have not yet used them personally but from what I can gather, is that you have to identify things that need to be done from the requirements and then identify which class or aspect of the program is going to handle the task, and also identify all the responsibilities that go along with each task.

Team Hackjob Cases

there is a good explanation on how to do colors in this groups description. I can't believe they handle colors in fractal form with RGB all between 0.0 and 1.0. Squeak is a pretty crazy language. how did they ever expect children to program?

Hmm. Is this really that unreasonable? Is hex really a better format? After all, the usual hex implementation assumes a 24-bit color universe. Is it good OO design to create an interface that specializes on one implementation? BTW, Color fromString: '#FFCC99' will work just fine. —Jeff Rick

Question 1

Refactoring (1 point)
Answer the following questions on refactoring.

Briefly, describe what refactoring is and why would you do it. In your description, include two signs that code should be refactored and how you would go about refactoring the code. How can unit testing be useful when refactoring code?

Refactoring is modifying source code without changing the external behavior of the system. It is good to refactor because it is usually done to clean up the way code looks. Unit Testing insures that the behavior of the code doesn't change during refactoring.

Question 2

User Interfaces (1 point)
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.

The use for separation between the model and the view is useful because you might want to have many different views into the same model. The model encapsulates all the logic into itself. The view then just represents the results of that logic. The model performs all logical operations and the view then allows for a representation of the results of the operations.

New addition


• Where 2 people program side to side. One is the person who is coding and the other person designs the function on how it is going to be added to the code. The person who is coding and the person who is designing switch roles frequently. So both people have a direct understanding of the code and the design. This methodology is shown to increase quality and shortening programming time.

• The reason for unit testing is to be able to test a functional method in the program. So basically test the program at its unit level. In xp the unit tests are created before the program is written so the programmers know what guidelines they are trying to achieve. Unit tests are key in refactoring. Acceptance tests are created from storyboarding the user’s experience with the program.


The gulf of execution is the gap between the user knowing what operation to perform the ability to perform the task. The gulf of evaluation is difference in what the user believes an application is meant for and what the application is actually meant for.


Objects do the work. The work is done in instance methods in the appropriate class.
objects have do the work that needs to be done on themselves. There's no factorial method because Small Integer does factorial itself. Anything that can be done to an object is done by the object itself or by sending messages to another object.

Good objects have clear responsibilities and clear interfaces
Good objects are properly designed Object Oriented Objects.

Clear responsibilities mean that the object themselves have clear responsibilities rather than a mix of different responsibilities. Number objects only do number operations and not string operations

Clear interfaces means that you shouldn’t expose the code to the end user. Just provide interfaces which have clear meanings. The end user shouldn’t have to know how the code is implemented only how to call your object to do some unit of work. You should not create complicated interfaces for simple operations

Link to this Page