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

Mina Doroudi

contact me at:
dormina \at cc~dot~gatech~edu
CoWeb Assignment 3

History of Object-Oriented Programming (1 Point)

Ward Cunningham
He invented the CRC cards with Kent Beck. He also invented
the webcite caled WIkiWIkiWbe which are collaborativer webcites.
He is a pioneer in Extreme Programming, and patterns.
<>Ivan Sutherland
The creator of first OO graphical editor called Sketchpad.
He was at MIT. The ideas of sketchpad were the start of inheritance, that
behavoir where passed from one into another.

Questionnaires (1 Point)

we need to wach: wether the questionaire is: summative or formative, Quantitative or qualitative,
Usually inexpensive way to get lots of information.
in order to solve this, first we have to take the survey by our-selve.
try not to make it too long. don't ask questions you don't need to ask.
also the users that take the questionair has to have computer. the language has to be whatched,
so we won't use jargon terminology. also in questionair people answer questions in a certain way
just because that's how they want to think about them. Some questions might be embarrasing to people.
also a questionair is designed for a number of different situation, so many times it does not
cover the whole range of problems, or what is exactly going wrong or right in the applications. Well
designed questions can help you get around this, or open-ended questions that let teh user discuss.
Also it is hard to get the right numbers and data with questionairs. in solving this the quesitons
has to be specific, and ask why the person is answering what they are answering.
Also sometimes the answer to the questonairs only reveal the person't reaction to the question. so
we have to make sure that we only ask the subjective questions, and the performance measurements
only dealth with in the gathering data and observing the facts.


Usability (2 Points)

I am going to compare observing users, and hueristics.
Observing Users is to listen, ask and watch the users as they are using the system.
with video taping every thing we can also watch thingns afterward and discuss them. It might give
the chance for making mistakes, because some times it is difficult to remember.
it can be direct or indirect.
for direct it can be that we are present in the room, we can ask questions, or just watch the user.
we can watch everythin closely and ask quesitns, but at the same time users might feel awkward,
or do not perform if no body was talking to them, or might not be comftable talking aloud.
for indirect, we can use vidoe recording, we might need multiple videoes, so we can see every thing. we can watch every thing over and
over again. On the other hadn it can be expensive, and we have to have a lot of things.
Identifiying erros can be very difficult. A really good way is thin aloud, that user talk about what they are doing, and thinking
as they deel with the system. Doing so can compare the users mental model, with how the designer was thinking they are.

For heuristic evaluation it needs some experts to evaluate them for us, so the company has to
spend more money on this for usability engineers rather than regular people. On the other hand
having a short lecture even non-experts can do a pretty good job on Heuristic evaluation and
if anything else left it can be solved through Think aloud.
Also there should be multiple usability engineers to sit there seperate from each other each
do some of the Heuristic evaluation and compare their answers o each other.
Therefore if we do not have a group of non-experts for think aloud test, we should use heuristic
evaluation. thinking aloud might me more time consuming, and needs more advanced technology.
it might be changed by outside factors, since the users might not be comftable talking about
what they are thinking, or being video taped. Most of ther people can do heuristic evaluation, so
workig at a company some of the people that are working for the compnay can also do this, but think aloud
needs only the right target group. for example if the software is for kids, you have to bring kids
to interact with the system, and sometimes depending on who you want to work with it might get hard.
Also heuristic evaluation has many heuristics that are written and has to be followed, so chances
of missing something is very low. but there might be some part of think aloud that we miss just
because the user hasn't use that part.

CoWeb Assignment 2

How do we use the SimpleChangeSorter and the DualChangeSorter to manage change sets?

SimpleChangeSorter
The SimpleChangeSorter lets us look at the list of the change sets in the current system.
As we can see in the image bellow the listo f all the change sets are in the top left hand corner of the browser, and list of classes that are changed are in the top right hand corner of the file.
The methods in the change sets of those classes is listed in the second row of the window. and the last row shows the code of those classes. So the user can look at the SimpleChangeSorter and change the code of the file.
also with right clicking (yellow-click) on the change sets the user can create new change sets.

DualChangeSorter
DualChangeSorter is basically the same as SimpleChangeSorter, but it has two of the same browsers attacked to each other side by side as you can see in the screen shot down here. Every thing that can be done in SimpleChangeSorter can be also done in DualChangeSorter.
However in DualChangeSorter we can compare two different change sets, and look at them at once.
we can merge two change sets in DualChangeSorter, or we can also take the changes that are in both cs file out from one, basically we can subtract the changes.
Uploaded Image: cw1.JPG
Class-Based Inheritance (1 point)
What is a class?
A class represents a concept. In object oriented programming a software blue print for an object is called a class. It defines how to define new objects of the same kind. It defines the variables and methods common to all objects of the same kind.
In small talk classes are object themselves. They are objects that serves as templates and create instances of themselves.

What is an instance?
An instance is an object of a particular class (blueprint).

How do the two relate?
A class is a blue-print for an instance or an object is an instance of a class.
So we create objects through instantiating classes.
For example we have a student class. Student is a blueprint for all students. So it has its own attributes and services that a student has.
For example a student has attributes such as name and major, and does some kind of service such as sport.
Then Bob and Sarah are two objects of student

Name :Bob
Major: ECE
Sport: soccer

Name: Sarah:
Major: CS
Sport: Tennis

In Smalltalk, what is the difference between class variables and instance variables?
A class variable is a variable associated with a particular class as rather than its instances. They allow common sharing of information across a range of subclasses, and they start with upper case letter. Class variables are good for keeping constants, which are the data that never change across different instances of a class or for variables that we want them to change for all instances once they change. Also a class can keep track of all of its instances through instance variables.
An instance variable is a variable that is associated with an instance of a class (an object). So every instance (Object) of the same type (same class) will have these variables.
Instance variables start with lower case letter, and in order to access them, they have to have a getter and a setter method.

In Smalltalk, what is the difference between class and instance methods?
Class methods are behaviors that only refer to the class itself, so they only refer to the object class. But instance methods refer to the instances of the class.
Class methods start with capital letter, but instance methods start with lower case.





Message Passing (1 point)
What is message passing and how does it fit into the way you program in Smalltalk?
Everything in smalltalk is through message passing. Each message is of the form of .
So in a line of code, the first object is always the receiver object and anything after that is the message. For example
2 + 3 2 is the receiver object, + 3 is the message.
21 printString 21 is the receiver object, printstring is the message.


How does message passing work together with the class-based inheritance?
In a class hierarchy, the parent class has a method that all of its children have that also. So late binding and inheritance hierarchy play an essential roll in message passing.
When you pass a message to two different object of the different child’s of a parent class, at compile-time smalltalk finds out that the parent classes, and the classes themselves have that method and at run-time it decides which instances of the class are using that method. So if child of a class doesn’t have the method that the parent class has, at compile time small talk goes up the hierarchy and finds out that this message can be related to this object, and at run-time it runs the method of the parent on the instance of the child.

What are some of the advantages and disadvantages of method passing?
The advantage of message passing is it makes it very easy to program in smalltalk. It gives a good understanding of objects and messages.
Also message passing is associated with late binding so all the messages will be queued in the system stack. At the same time it increases the working size since its queuing the messages and it can be very inefficient.

Uploaded Image: cw1.JPG

Links to this Page