*** empty log message ***
authornsimic
Tue, 10 Apr 2007 23:45:07 +0200
changeset 387089b2f3c1efaf
parent 3869 e6f4290e5419
child 3871 441874b4c747
*** empty log message ***
doc/NC/proj-sem.tex
doc/NC/titlepage.tex
doc/bib/from-theses.bib
     1.1 --- a/doc/NC/proj-sem.tex	Tue Apr 10 20:41:56 2007 +0200
     1.2 +++ b/doc/NC/proj-sem.tex	Tue Apr 10 23:45:07 2007 +0200
     1.3 @@ -1,28 +1,33 @@
     1.4 -\documentclass[a4wide]{report}
     1.5 +\documentclass{report}
     1.6  %\documentclass[11pt,a4paper,headline,headcount,twoside,nocenter]{isacdoc}
     1.7  
     1.8  \input{../preamble}
     1.9  
    1.10  \title{A GUI-Component for Interactive Construction of Calculations}
    1.11 -\author{Nebojsa Simic\\
    1.12 -{\tt xxx@ist.tugraz.at}}
    1.13 +\author{bakk. techn. Nebojsa Simic\\
    1.14 +{\tt nelle@sbox.tugraz.at}}
    1.15  \date{\today}
    1.16  
    1.17  \begin{document}
    1.18 -\maketitle
    1.19 +\input{titlepage}
    1.20  \tableofcontents{}
    1.21  \listoffigures
    1.22  %listoftables
    1.23  
    1.24 -\cite{isac:all}
    1.25 +\chapter{Introduction}
    1.26  
    1.27 +The idea of \sisac{} as a tutoring system for mathematics was first described by Walther Neuper in his PhD thesis \cite{wn:diss}. This system uses the theorem prover Isabelle \cite{Isa-ref} and its high order logic HOL as a basis for its knowledge interpreter. 
    1.28 +One of the requirements set for the \sisac{} tutoring system was that the user should be able  to  \begin{quotation} do calculations interactively on a worksheet resembling traditional pencil-\-and-\-paper work \end{quotation} (\cite{AK04:thesis}).
    1.29  
    1.30 +This paper describes the latest phase in development of the Worksheet - a GUI component that implements this requirement. The Worksheet is implemented in Java using SWING Framework and communicates with the rest of the \sisac{} system over Java Remote Method Invocation (RMI) interfaces. The RMI makes the communication over Internet possible and highly transparent.
    1.31 +
    1.32 +First part of this paper describes some architectural considerations, primarily the aspect of communication with the rest of the \sisac{} system, whereas the second part describes how the component was implemented and gives the corresponding UML diagrams.
    1.33  
    1.34  %% NC2301- tag for quicksearch
    1.35  \chapter{Architectural considerations}
    1.36  %% see the survey in \ref{MH->isac-ADD1} on p.\pageref{MH->isac-ADD1}.
    1.37  
    1.38 -The worksheet is the center of user interaction in the \sisac{}
    1.39 +The Worksheet is the center of user interaction in the \sisac{}
    1.40  system. From the Users point of view, the Worksheet is the place
    1.41  where the calculation happens. The \sisac{}'s knowledge base is
    1.42  constantly expanding and the user interface has to be flexible
    1.43 @@ -31,14 +36,14 @@
    1.44  
    1.45  \section{The Presentation Model}
    1.46  
    1.47 -As already mentioned when designing \sisac{}, the entire was split
    1.48 +According to ISAC Team \cite{isac:all}, the entire System was split
    1.49  into components according to the Seeheim Model. The Worksheet
    1.50  component according to this model represents the Presentation
    1.51 -Layer. According to Seeheim Model, the Presentation Layer is the
    1.52 +Layer. According to Green \cite{Seeheim:Green}, the Presentation Layer is the
    1.53  component that serves for the simultaneous interactive
    1.54 -communication with the user. This component defines the user
    1.55 +communication with the user. Green asserts, that this component defines the user
    1.56  interface on a lexical level by specifying the user interface
    1.57 -widgets presented to the user. These user interface widgets serve
    1.58 +widgets presented to the user. He concludes, that these user interface widgets serve
    1.59  the purpose of supplying output to the user and receiving input
    1.60  from the user.
    1.61  
    1.62 @@ -50,11 +55,12 @@
    1.63  
    1.64  \section{Communication between the Presentation and Dialogue Control Layer}
    1.65  
    1.66 -As mentioned in the previous section, the main purpose of the
    1.67 -Worksheet is to translate the user interactions to the requests to
    1.68 -the system. In this section we shall discuss how to implement the
    1.69 -communication between the Dialogue and the Presentation Layer. To
    1.70 -further simplify things, the communication is divided into two
    1.71 +The \sisac{} Architecture Design Document \cite{isac:all}, claims, 
    1.72 +that the main purpose of the Worksheet is to translate the 
    1.73 +user interactions to the requests to the system. In this section 
    1.74 +we shall discuss how to implement the communication between 
    1.75 +the Dialogue and the Presentation Layer. To further simplify 
    1.76 +things, the communication is divided into two
    1.77  categories:
    1.78  
    1.79  \begin{itemize}
    1.80 @@ -67,6 +73,11 @@
    1.81  
    1.82  \end{itemize}
    1.83  
    1.84 +Boger \cite{Boger2001} states that different objects in a local application communicate by calling semantically loaded methods. He further asserts that, for the distributed applications, a similar paradigm should be used. In Java programming environment, such abstraction is provided by the Java Remote Method Invocation (Java RMI) Framework. 
    1.85 +This framework makes the creation of distributed Java applications possible, where the methods of remote Java objects can be invoked from other Java applications. The Worksheet and WorksheetDialog communicate simply by invoking methods of the other object. Moreover, the Java RMI offers full transparency, so that the parameters are serialised, transported over the network layer and deserialised automatically. Boger finally concludes that the programmer has the flexibility of the object oriented programming in a fully distributed enviroment.
    1.86 +
    1.87 +As a side note, in the course of the past few months as the last phase was completed, some of the problems with using the RMI have become apparent. Main problem was that the architectural design of the Worksheet requires that certain events from the server come in the form of callbacks (see Section \ref{NC:CalcEvents}). Translated into RMI calls, this means that the Worksheet acts as a server on the network and the \sisac{} system is the one who initialises the connection to the Worksheet. This is very firewall-unfiendly, since most firewalls do not allow incomming connections per default. The solution to this problem was to hack the network transport layer in the RMI and reverse the direction of the communication so that the Worksheet is the initiator of the network connection.
    1.88 +
    1.89  \subsection {User Interface Events}
    1.90  
    1.91  The most common way to implement this type of communication is to
    1.92 @@ -76,13 +87,13 @@
    1.93  the designers of \sisac{} had to take in the consideration that the
    1.94  Worksheet and the rest of the system are two different and
    1.95  separate applications, meant to run on different computers and
    1.96 -communicate over network. Second consideration was that the
    1.97 +communicate over Java RMI. Second consideration was that the
    1.98  Worksheet application does not necessary need to be an AWT or
    1.99  SWING application, but could be a pure text mode interface or even
   1.100  a 3D enhanced virtual reality interface. Additionally, the
   1.101  components had to be as flexible as possible, but the interface
   1.102  should remain the same, thus allowing for the separate development
   1.103 -of Presentation and Dialogue Layer.
   1.104 +of Presentation and Dialogue Layer. (cf. \cite{isac:all})
   1.105  
   1.106  The logical answer was to use the "command objects" as a practical
   1.107  mean for network transport, because they can be easily serialised.
   1.108 @@ -138,7 +149,7 @@
   1.109  \end{figure}
   1.110  
   1.111  
   1.112 -\subsection {Calculation Events}
   1.113 +\subsection {Calculation Events}\label{NC:CalcEvents}
   1.114  
   1.115  Second part of the communication between the Worksheet and the
   1.116  mathematical engine are the calculation events. They are fired
   1.117 @@ -239,8 +250,8 @@
   1.118  \section{Communication with the WorkSheetDialog}\label{D:DG}
   1.119  %-------------------------------------------------------------------------------
   1.120  The connection to the WorksheetDialog has already been established
   1.121 -at initialization time as described in section \ref{D:SD} step
   1.122 -\ref{conn_DG}. Each Worksheet holds exactly one connection to a
   1.123 +at initialization time as described in \sisac{} Architecture Design Document \cite{isac:all}. 
   1.124 +Each Worksheet holds exactly one connection to a
   1.125  WorksheetDialog and a WorksheetDialog is also connected to exactly
   1.126  one Worksheet (1:1 relation). This relationship is necessary as
   1.127  the WorksheetDialog needs to record the user actions in the user
   1.128 @@ -258,9 +269,9 @@
   1.129  
   1.130  \begin{itemize}
   1.131      \item IToGui - implements the handling of UIActions through
   1.132 -    the \emph{doUIAction(UIAction)} method (see section \ref{AK:IMPLEMENT:COMM:INTER}).
   1.133 +    the \emph{doUIAction(UIAction)} method.
   1.134      \item IToUser - implements the handling of Calculation Events
   1.135 -    through the \emph{calcChanged(CalcChangedEvent )} method (see section \ref{AK:IMPLEMENT:COMM:INTER:itouser}).
   1.136 +    through the \emph{calcChanged(CalcChangedEvent )} method.
   1.137  \end{itemize}
   1.138  
   1.139  These interfaces are implemented by the WorksheetRMI wrapper
   1.140 @@ -274,7 +285,7 @@
   1.141  interface and is responsible for the interaction with the user
   1.142  while doing a calculation. The main task of the Worksheet is the
   1.143  representation of the calculation steps. Each step is stored as a
   1.144 -node in the CalcModelHierarchy (see section \ref{D:CMH}) and these
   1.145 +node in the CalcModelHierarchy (see section \ref{D:NC-CMH}) and these
   1.146  nodes are displayed in a hierarchical structure by the Java JTree
   1.147  component. How detailed each step is displayed on the worksheet is
   1.148  agreed in accordance with the WorksheetDialog and depends on the
   1.149 @@ -294,7 +305,7 @@
   1.150  \begin{figure}[ht]
   1.151    \begin{center}
   1.152     %\includegraphics[width=140mm]{worksheet.eps}
   1.153 -    \psfig{figure=fig/NC-Worksheet_CD.eps,width=11cm}
   1.154 +    \psfig{figure=fig/NC-Worksheet_CD,width=11cm}
   1.155      \caption{The worksheet class and its dependencies.}
   1.156      \label{fig:worksheet}
   1.157    \end{center}
   1.158 @@ -309,55 +320,53 @@
   1.159  
   1.160  The mathematical calculation is represented in ISAC SML core as a
   1.161  hierarchical tree structure. The perfect component for rendering
   1.162 -such structures is the SWING JTree component. However in order to
   1.163 -render such data, this component requires the data provider to
   1.164 -implement the {\tt TreeModel} interface.
   1.165 +such structures is the SWING JTree component. 
   1.166 +Geary \cite{Geary1999} states that it is possible to easily adapt any existing tree structure to a JTree. He asserts that the main reason for it is that the architectural design of the JTree component (as all Swing components) is based on a Model-View-Controller (MVC) architecture. The MVC keeps the tree's data separate from the methods that manipulate and display the data. As a result, in order to render \sisac{} calculation tree, the JTree component requires the data provider to implement the {\tt TreeModel} interface.
   1.167  
   1.168 -In the ISAC system the {\tt TreeModel} Interface is implemented by
   1.169 -an abstract class {\tt AbstractTreeModel}. This class implements
   1.170 +In the ISAC system the TreeModel Interface is implemented by
   1.171 +an abstract class AbstractTreeModel. This class implements
   1.172  the basic functionality of the interface which is universal for
   1.173  all TreeModels, regardles of the data types of their Nodes. The
   1.174 -{\tt AbstractTreeModel} is inherited and extended by the {\tt
   1.175 -CalculatonModel} class which represents the bridge between ISAC's
   1.176 -calculation hierarchy and the JTree display component.
   1.177 +AbstractTreeModel is inherited and extended by the CalculationModel class which represents the Controller part of the JTree and a bridge between ISAC's
   1.178 +calculation hierarchy model and the JTree display component.
   1.179  
   1.180  The Figure~\ref{fig:NC-TreeModel_CD} shows the class diagram of
   1.181  the Tree Model part of the Worksheet.
   1.182  
   1.183  \begin{figure}[ht]
   1.184    \begin{center}
   1.185 -    \psfig{figure=fig/NC-TreeModel_CD.eps,width=11cm}
   1.186 +    \psfig{figure=fig/NC-TreeModel_CD,width=11cm}
   1.187      \caption{The Tree Model class diagram.}
   1.188      \label{fig:NC-TreeModel_CD}
   1.189    \end{center}
   1.190  \end{figure}
   1.191  
   1.192 -The {\tt CalculationModel} class serves as an event wrapper for
   1.193 -the the {\tt CalcModelHierarchy} where all calculation nodes are
   1.194 +The CalculationModel class serves as an event wrapper for
   1.195 +the the CalcModelHierarchy where all calculation nodes are
   1.196  stored.
   1.197  
   1.198  %-------------------------------------------------------------------------------
   1.199  \subsection{CalcModelHierarchy}\label{D:NC-CMH}
   1.200  %-------------------------------------------------------------------------------
   1.201  
   1.202 -As previously mentioned the {\tt CalcModelHierarchy} stores each
   1.203 +As previously mentioned the CalcModelHierarchy stores each
   1.204  node of the calculation tree in a representation that can be
   1.205 -displayed by the standard SWING component {\tt JTree}.
   1.206 +displayed by the standard SWING component JTree.
   1.207  
   1.208  Figure~\ref{fig:NC-TreeModel_WSD2WS_SD} shows the communication
   1.209 -required to propagate data changes to the {\tt JTree}. The
   1.210 -WorksheetDialog sends a {\tt calcChangedEvent()} (over RMI) which
   1.211 +required to propagate data changes to the JTree. The
   1.212 +WorksheetDialog sends a calcChangedEvent() (over RMI) which
   1.213  notifies the Presentation Layer that a node has been added to the
   1.214 -calculation tree. The {\tt CalcModelHierarchy} accepts the added
   1.215 +calculation tree. The CalcModelHierarchy accepts the added
   1.216  node and stores it to its internal tree data structure. After
   1.217 -storing the node, the {\tt CalcModelHierarchy} sends message to
   1.218 -the {\tt CalculationModel} about the added hierarchy node. Finally
   1.219 -the {\tt CalculationModel} notifies all registered listeners
   1.220 -(including the {\tt JTree}) of the inserted node.
   1.221 +storing the node, the CalcModelHierarchy sends message to
   1.222 +the CalculationModel about the added hierarchy node. Finally
   1.223 +the CalculationModel notifies all registered listeners
   1.224 +(including the JTree) of the inserted node.
   1.225  
   1.226  \begin{figure}[ht]
   1.227    \begin{center}
   1.228 -    \psfig{figure=fig/NC-TreeModel_WSD2WS_SD.eps,width=11cm}
   1.229 +    \psfig{figure=fig/NC-TreeModel_WSD2WS_SD,width=11cm}
   1.230      \caption{Communication flow necessary to propagate the
   1.231               node inserting event from the calculation tree
   1.232               to the presentation component.}
   1.233 @@ -367,20 +376,20 @@
   1.234  
   1.235  The communication procedure in the opposite direction is shown on
   1.236  Figure~\ref{fig:NC-TreeModel_WS2WSD_SD}. The User has changed a
   1.237 -node in the {\tt JTree} so the component notifies its listeners.
   1.238 -However, the {\tt CalculationModel} ignores the {\tt
   1.239 -valueForPathChanged()} event, because the user changes are not
   1.240 +node in the JTree so the component notifies its listeners.
   1.241 +However, the CalculationModel ignores the 
   1.242 +valueForPathChanged() event, because the user changes are not
   1.243  stored in the calculation model hierarchy unless they are
   1.244 -authorised by the mathematic engine. The {\tt Worksheet} class is
   1.245 +authorised by the mathematic engine. The Worksheet class is
   1.246  registered as the JTree listener and it propagates the change
   1.247  event to the WorksheetDialog. The WorksheetDialog then checks the
   1.248  result with the mathematical engine and the results of the
   1.249 -requested operation are delivered to the {\tt Worksheet} as a {\tt
   1.250 -calcChangedEvent}.
   1.251 +requested operation are delivered to the Worksheet as a 
   1.252 +calcChangedEvent.
   1.253  
   1.254  \begin{figure}[ht]
   1.255    \begin{center}
   1.256 -    \psfig{figure=fig/NC-TreeModel_WS2WSD_SD.eps,width=11cm}
   1.257 +    \psfig{figure=fig/NC-TreeModel_WS2WSD_SD,width=11cm}
   1.258      \caption{Communication flow necessary to propagate the
   1.259               change of the node in the presentation component
   1.260               to the calculation tree.}
   1.261 @@ -392,16 +401,16 @@
   1.262  CalcModelHierarchy} object in a tree like structure where each
   1.263  node holds references to its children as well as its parent.
   1.264  
   1.265 -The {\tt CalcModelNode} object holds an instance of the formula as
   1.266 -a {\tt CalcElement} as well as the string representations of the
   1.267 -tactic and assumption (used for display purposes). Each {\tt
   1.268 -CalcModelNode} has two {\tt WorksheetPopupHandler} objects which
   1.269 +The CalcModelNode object holds an instance of the formula as
   1.270 +a CalcElement as well as the string representations of the
   1.271 +tactic and assumption (used for display purposes). Each CalcModelNode
   1.272 +has two WorksheetPopupHandler objects which
   1.273  store the available actions the user can perform on a certain
   1.274  formula. These actions are currently rendered as a popup menu
   1.275  accessible with the right click on formula or tactic.
   1.276  
   1.277  
   1.278 -\subsection{CustomTreeCellRenderer}\label{D:CMH}
   1.279 +\subsection{CustomTreeCellRenderer}\label{D:CTCR}
   1.280  
   1.281  The JTree SWING Component provides the programmer with a
   1.282  possibility to customise the rendering of single cells. This
   1.283 @@ -410,7 +419,7 @@
   1.284  consists of two {\tt JLabel} objects which are used to display the
   1.285  corresponding content. In future extensions this class could implement some renderer capable of graphical representation of ISAC formulae.
   1.286  
   1.287 -\subsection{CustomTreeCellEditor}\label{D:CMH}
   1.288 +\subsection{CustomTreeCellEditor}\label{D:CTCE}
   1.289  
   1.290  Similar to the {\tt CustomTreeCellRenderer} the {\tt CustomTreeCellEditor}
   1.291  provides for a way to edit the nodes in the JTree. Currently, the {\tt CustomTreeCellEditor} consists of two {\tt JTextArea} components capable of editing multi-line text. The choice which line of text to edit comes from {\tt Worksheet}. This class catches the mouse events, calculates the position of the mouse click and notifies the {\tt CustomTreeCellEditor}. Needles to say the future enhancements should provide a graphical editor and implement its own mouse click handler.
   1.292 @@ -432,10 +441,8 @@
   1.293  
   1.294  \begin{figure}[ht]
   1.295    \begin{center}
   1.296 -    \psfig{figure=fig/NC-CalcheadPanel_CD.eps,width=11cm}
   1.297 -    \caption{Communication flow necessary to propagate the
   1.298 -             change of the node in the presentation component
   1.299 -             to the calculation tree.}
   1.300 +    \psfig{figure=fig/NC-CalcheadPanel_CD,width=11cm}
   1.301 +    \caption{Class Diagram of the CalcHeadPanel.}
   1.302      \label{fig:NC-CalcheadPanel_CD}
   1.303    \end{center}
   1.304  \end{figure}
   1.305 @@ -472,11 +479,25 @@
   1.306  %WN051234 als Notiz stehen gelassen ...
   1.307  %-------------------------------------------------------------------------------
   1.308  
   1.309 +\chapter{Conclusion}
   1.310  
   1.311 +One of the goals of the \sisac{} project was to create a transparent tool for interaction with the calculation tree. The Worksheet component in the current phase has reached this goal. Currently the Worksheet can do almost everything requreid by the User Requirements Document \cite{isac:all}
   1.312  
   1.313 -% Java, Swing, ...
   1.314 -\bibliography{bib/isac,bib/mybib}
   1.315 -% hier        ~~~~~~~~ ist die Literatur \"uber isac
   1.316 -%                      ~~~~~~~~~~~~~~~ kommt sp\"ater Deine zus\"atzliche Lit hinn
   1.317 +\begin{itemize}
   1.318 +\item A calculation can be started for a pre-defined example from an example collection.
   1.319 +\item A calculation can be started from scratch.
   1.320 +\item Calculations are displayed as a whole, with the possibility of folding and unfolding the hierarchical structure.
   1.321 +\item Calculations can be done stepwise or whole
   1.322 +\item The Worksheet supports context i.e. the current position on the Worksheet last touched.
   1.323 +\item The User can now ask for Intermediate Steps
   1.324 +\item The User can ask for Applied Tactics or Assumptions for a specific formula.
   1.325 +\item The User can enter the Tactic or choose from a list of given Tactics.
   1.326 +\end{itemize}
   1.327 +
   1.328 +The next logical step would be to test the Client Application in some school and evaluate the Human Computer Interface by using some of the already established methods. Moreover, one part of the Worksheet that should be enhanced is the formulae renderer and editor, prefferably with MathML, since \sisac{} currently supports only plain text-mode formulae.
   1.329 +
   1.330 +However, my personal opinion is that, the future development of the Worksheet should go towards a Web 2.0 Browser. Prefferably as a Java component, capable of browser integration. To the future developers, my recommendation would be SOAP over HTTP as the preffered communication method with the rest of the system.
   1.331 +
   1.332 +\bibliography{bib/isac,bib/from-theses}
   1.333  \end{document}
   1.334  
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/doc/NC/titlepage.tex	Tue Apr 10 23:45:07 2007 +0200
     2.3 @@ -0,0 +1,89 @@
     2.4 +\begin{titlepage}
     2.5 +  \fontsize{12pt}{16pt}\selectfont
     2.6 +
     2.7 +  \begin{center}
     2.8 +
     2.9 +  \vspace*{10mm}
    2.10 +
    2.11 +%\textbf{\LARGE{Visualization of Mathematical Knowledge for the \isac-Project}}
    2.12 + \textbf{\LARGE{A GUI-Component for Interactive Construction of Calculations}} \\
    2.13 +  \medskip
    2.14 +   \vspace{15mm}
    2.15 +
    2.16 +  {\large Nebojsa Simic} \\
    2.17 +   \vspace{1mm}
    2.18 +  {\large Student at the Institute for Software Technology (IST), 
    2.19 +Graz University of Technology, Infeldgasse 16b, A-8010 Graz, Austria.}\\
    2.20 +  {\large \verb,nelle@sbox.tugraz.at,}
    2.21 +
    2.22 +  \vspace{10mm}
    2.23 +
    2.24 +  {\large Master Seminar-Project}
    2.25 +
    2.26 +  \vspace{10mm}
    2.27 +  \end{center}
    2.28 +
    2.29 +
    2.30 +  \begin{center}
    2.31 +
    2.32 +  \vspace{5mm}
    2.33 +
    2.34 +\begin{figure}[htb]
    2.35 +\centerline{\includegraphics[width=0.2\textwidth, keepaspectratio=true]{fig/tug}}
    2.36 +\end{figure}
    2.37 +
    2.38 +
    2.39 +  \vspace{5mm}
    2.40 +
    2.41 +  Graz, Oct. 2006 \\
    2.42 +  \end{center}
    2.43 +
    2.44 +  \vspace{30mm}
    2.45 +{\small
    2.46 +\begin{tabular}{ll}
    2.47 +
    2.48 +  Supervisor:    & Univ.Prof. Dipl.-Ing. Dr.techn. Franz Wotawa \\
    2.49 +  Project Coordinator: & Dr.techn. Walther Neuper \\
    2.50 +\end{tabular}
    2.51 +}
    2.52 +
    2.53 +\newpage
    2.54 +%{ }\\  
    2.55 +
    2.56 +\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]}
    2.57 +\let\endchangemargin=\endlist
    2.58 +
    2.59 +{
    2.60 +\verb' '\\
    2.61 +\vspace{20mm}
    2.62 +\verb' '\\
    2.63 +\begin{center}
    2.64 +{\bf Abstract: }
    2.65 +\end{center}
    2.66 +ISAC is a transparent single-stepping system for applied mathematics.
    2.67 +This paper contains
    2.68 +the description about the last development phase of the Worksheet - the
    2.69 +the center of user
    2.70 +interaction in the ISAC system. The assignment of this Seminar-Project
    2.71 +was to create a  GUI
    2.72 +component that will serve as the Presentation Layer for the calculations
    2.73 +performed by the
    2.74 +mathematical engine.
    2.75 +The Worksheet visualises the Calculation Tree stored in the SML Kernel
    2.76 +of the system
    2.77 +and enables the user to effectively manipulate the single entries in
    2.78 +this tree. Additionally, this
    2.79 +component defines the User Interface on a lexical level, by specifying
    2.80 +placement and
    2.81 +look-and-feel of widgets, but without knowing their meaning.
    2.82 +The first part of the Seminar-Project deals with the architectural
    2.83 +considerations of the design,
    2.84 +whereas the second part is based mainly on the implementation issues.
    2.85 +
    2.86 +}
    2.87 +
    2.88 +
    2.89 +
    2.90 +\end{titlepage}
    2.91 +
    2.92 +
     3.1 --- a/doc/bib/from-theses.bib	Tue Apr 10 20:41:56 2007 +0200
     3.2 +++ b/doc/bib/from-theses.bib	Tue Apr 10 23:45:07 2007 +0200
     3.3 @@ -11,6 +11,20 @@
     3.4    year = 	 {2000}
     3.5  }
     3.6  
     3.7 +@Book{Boger2001,
     3.8 +  author = 	 {Boger, Marko},
     3.9 +  title = 	 {Java in Distributed Systems: Concurrency, Distribution and Persistence},
    3.10 +  publisher = 	 {Wiley and Sons},
    3.11 +  year = 	 {2001}
    3.12 +}
    3.13 +
    3.14 +@Book{Geary1999,
    3.15 +	author= {Geary, David M.},
    3.16 +	title={Graphic Java/ Volume 2 : Mastering the JFC - Swing Components},
    3.17 +	publisher= {Prentice Hall International},
    3.18 +	year={1999}
    3.19 +}
    3.20 +
    3.21  @Book{Paulson:91,
    3.22    author = 	 "L. C. Paulson",
    3.23    title = 	 "ML for the Working Programmer",
    3.24 @@ -38,6 +52,16 @@
    3.25    publaddr =     "New York , NY , USA",
    3.26    year =         "1996",
    3.27  }
    3.28 +@inproceedings{Seeheim:Green,
    3.29 +	author = "Green, M",
    3.30 +	title = "Report on Dialogue Specification Tools",
    3.31 +	pages= {9--20},
    3.32 +  editor =       "Pfaff, G.",
    3.33 +  booktitle =        "Seeheim Workshop on User Interface Management Systems",
    3.34 +  year =         "1985",
    3.35 +  publisher =    "Springer",
    3.36 +  category =     "General",
    3.37 +}
    3.38  @proceedings{Seeheim,
    3.39    editor =       "Pfaff, G.",
    3.40    title =        "Seeheim Workshop on User Interface Management Systems",