Skip to content

Commit

Permalink
for andre
Browse files Browse the repository at this point in the history
  • Loading branch information
webdestroya committed Mar 29, 2013
1 parent 30fef93 commit 7d76578
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 13 deletions.
9 changes: 7 additions & 2 deletions chapters/conclusion.tex
Expand Up @@ -10,12 +10,17 @@ \section*{Experiences}
% Not sure what should be in here, we never really ``tested'' the new iteration of calico (and I never studied any results). Should I talk about the use in the classroom, and that it was able to support 30+ students working on it at the same time? (I already talked about that in the previous paragraph)


Calico was used primarily in two environments. The first was within office of Professor van der Hoek as a full-time whiteboard. The second environment was in a classroom of about thirty students. These two environments allowed Calico to be heavily tested using a typical usage scenario.
Calico was used primarily in two environments. The first was within the office of Professor van der Hoek and the software design lab as a full-time whiteboard. The second environment was in a classroom of about thirty students. These two environments allowed Calico to be heavily tested using a typical usage scenario.

The first environment to serve as a test installation of Calico was within the office of Professor van der Hoek and within the Software Design and Collaboration Lab. In both locations, we removed the existing whiteboards and replaced them with a Calico setup. Each setup consisted of a dedicated computer running Calico, connected to a Hitachi digital whiteboard. We also mounted short-throw projectors above the digital boards. The short-throw projectors reduced chance that a projector would be touched and the board would need to be recalibrated. For months Calico was the only permanent drawing tool in both locations. By forcing members of the lab to utilize Calico as a replacement for the whiteboards, we were able to receive feedback constantly. It also led to many optimizations for both the drawing backend and the Calico user interface.

In order to properly use Calico within Professor van der Hoek's office, we removed the existing conventional whiteboards and replaced them with two touch-boards and two projectors. By replacing the conventional whiteboards with Calico, we ensured that Calico was utilized constantly. After running for more than a year, Calico has proven to be fairly stable -- having only a few problems related to connectivity.

The classroom environment proved to be far more resource intensive than the office environment. Our first attempt saw a single Calico server instance created for an entire classroom of thirty students to use. During classroom discussions, the students would each be given a tablet computer and were connected to the same Calico instance. During this time, we discovered that Calico was not able to handle thirty users drawing simultaneously, and errors began to appear to users. Users would be randomly dropped by the server causing them to reconnect. This sudden reconnection by many users simultaneously would overwhelm Calico, causing more users to be dropped. To mitigate these problems, we split the class into groups of five students, and created a server instance for each group. With only five users connected to each server instance, Calico was much more stable and was used for the remainder of the course with very few problems.

During the classroom experiment, we were able to locate a rather serious synchronization bug caused by multiple users. We determined that the Calico server was only able to handle fifteen concurrent users before serious performance problems began to appear. We determined that this was a problem with the way Calico was handling incoming network packets. All packets were being placed on a queue and processed by the \texttt{ProcessQueue} class. This was a bottleneck as clients were forced to wait while the queue was emptied before any response was sent to them. The more clients connected to the server, the longer it took for the queue to empty. To solve this problem, we were able to create a queue for each canvas instead of one for the entire server. This meant that clients were only limited by others on the same drawing space. This limit was necessary to prevent conflicting edits.

Calico's use in the classroom provided us with the most insight into how Calico could be used in a collaborative environment. Student teams utilized Calico on many different occasions, and we were able to see many different diagrams and drawings. Students used Calico to collaborate on various design projects during class time. The most common diagrams we observed were class diagrams and architectural diagrams. Students would sketch very informal diagrams that represented how a design functioned (how components connected with each other, or how data flowed between components). In addition to architecture diagrams we saw students creating lists. Lists could be used to represent tasks that needed to be finished, or to assign tasks to various group members, or to list potential ideas that could be considered. Students also created flow charts to represent the flow of logic through a program. With Calico, these diagrams were easy for students to quickly create and modify. Scraps could be used to represent components, while arrows were used to represent data flow. Students could copy scraps (or groups of scraps) and create multiple diagrams.

% 1) used on andre's boards
% 2) classroom use
%
Expand Down
3 changes: 2 additions & 1 deletion for_andre.sh
Expand Up @@ -2,4 +2,5 @@


#./diff.sh ed4e3869813c572fd36a91fed654a631e38444a1
./diff.sh a39fa4fc916a81b77d0884e42d717804c6b88bbe
# ./diff.sh a39fa4fc916a81b77d0884e42d717804c6b88bbe
./diff.sh 30fef9300294d952315c1197130535a5a482610e
1 change: 1 addition & 0 deletions last_to_andre.rev
@@ -1,2 +1,3 @@
ed4e3869813c572fd36a91fed654a631e38444a1
a39fa4fc916a81b77d0884e42d717804c6b88bbe
30fef9300294d952315c1197130535a5a482610e
21 changes: 11 additions & 10 deletions thesis.tex
Expand Up @@ -92,25 +92,26 @@

\acknowledgments
{
Do I need to acknowledge the Hitatchi grant here? Do I even need this section?
I would like to thank my advisor, Professor Andr\'{e} van der Hoek. Without his help and guidance my thesis would not be possible.
I want to thank the members of the Software Design and Collaboration Lab: Nick Mangano, Nicolas Lopez, Gerald Bortis, Alex Baker, Tiago Proenca, and Nilmax Moura. I truly enjoyed my time spent with them, and greatly appreciate the help they have provided over the years.
}

% max 250 words
\thesisabstract
{
Calico is a software-sketching tool that aims to support designers by helping them easily draft potential software systems.
Calico was designed to be used with a multi-touch whiteboard and projector so that it can replicate the role of a traditional whiteboard.

There are three main problems with Calico:
(1) distributed designers are not well supported,
(2) collaboration is not natively supported,
and (3) it is very difficult to add new functionality.
This thesis will examine these problems and present methods of resolving them:
Calico is a software design sketching tool that aims to support software designers by helping them work through a design problem by sketching potential solutions.
Calico was designed to be used with an interactive whiteboard so that it can replicate the feel of a traditional whiteboard while at the same time enabling advanced functionality.

There were three main problems with the original version of Calico:
(1) distributed designers were not well supported,
(2) collaboration was not natively supported,
and (3) it was very difficult to add new functionality.
This thesis examines these problems and presents various solutions:
(1) creating a performance-based network architecture,
(2) centering Calico around collaboration,
and (3) creating a plugin framework to easily add new functionality.

Prior to this work, Calico was unable to meet the demands of designers in the field. By resolving these problems, Calico was able to be deployed for classroom use as well as use by design teams.
Prior to this work, Calico was unable to meet the demands of designers in the field. By resolving these problems, Calico was able to be deployed both in-house in our design lab, as well as in Informatics 122 (a software design course).
}

\preliminarypages
Expand Down

0 comments on commit 7d76578

Please sign in to comment.