1 \documentclass[titlepage, twoside,
a4paper,
12pt
]{article
}
2 \usepackage[swedish
]{babel
}
3 \usepackage[utf8
]{inputenc}
14 % Include pdf with multiple pages ex \includepdf[pages=-, nup=2x2]{filename.pdf}
15 \usepackage[final
]{pdfpages
}
16 % Place figures where they should be
20 \definecolor{keywordcolor
}{rgb
}{0.5,
0,
0.75}
25 basicstyle=
\scriptsize\ttfamily,
26 stringstyle=
\color{blue
},
27 commentstyle=
\color{red
},
30 numberblanklines=true,
32 showstringspaces=false,
33 keywordstyle=
\color{keywordcolor
}
34 % identifierstyle=\color{identifiercolor}
39 \newfloat{xml
}{H
}{lop
}
44 \def\preTitle{Laboration
4}
45 \def\kurs{Applikationsprogrammering i Java, HT-
08}
47 \def\namn{Andreas Jacobsson
}
48 \def\mail{dit06ajs@cs.umu.se
}
49 \def\namnTva{Anton Johansson
}
50 \def\mailTva{dit06ajn@cs.umu.se
}
52 \def\pathtocode{$
\sim$dit06ajn/edu/apjava/lab4
}
54 \def\handledareEtt{Johan Eliasson, johane@cs.umu.se
}
55 \def\handledareTva{Tor Sterner-Johansson, tors@cs.umu.se
}
56 \def\handledareTre{Daniel Henriksson, danielh@cs.umu.se
}
57 \def\handledareFyra{Johan Granberg, johang@cs.umu.se
}
59 \def\inst{datavetenskap
}
60 \def\dokumentTyp{Laborationsrapport
}
66 \begin{tabular
}{@
{}p
{\textwidth}@
{}}
67 UMEÅ UNIVERSITET
\hfill \today \\
68 Institutionen för
\inst \\
75 \huge{\textbf{\kurs}} \\
85 \large{\textbf{Handledare
}}\\
86 \mbox{\large{\handledareTre}}
87 \mbox{\large{\handledareTva}}
88 \mbox{\large{\handledareEtt}}
89 \mbox{\large{\handledareFyra}}
97 % Dedication goes here
104 \lhead{\footnotesize{\namn,
\mail\\
\namnTva,
\mailTva}}
115 \fancyfoot[LE,RO
]{\thepage}
116 \pagenumbering{arabic
}
118 \section{Problemspecifikation
}\label{Problemspecifikation
}
119 % Beskriv med egna ord vad uppgiften gick ut på. Är det någonting som
120 % varit oklart och ni gjort egna tolkningar så beskriv dessa.
122 Problemspecifikation finns i original på sidan:\\
124 \verb!http://www.cs.umu.se/kurser/
5DV085/HT08/lab4/!
% TODO check
127 \section{Användarhandledning
}\label{Anvandarhandledning
}
128 % Förklara var programmet och källkoden ligger samt hur man kompilerar,
129 % startar och använder det. Förklara även översiktligt vad som händer
130 % när man använder de olika kommandona. Det räcker alltså inte att
131 % skriva "man skriver 'ant' för att kompilera", utan det måste även ingå
132 % en liten förklaring om vad som egentligen händer när man kör ant och
133 % varför det fungerar. Använd Internet eller litteratur för att själva
134 % ta reda på den information ni tycker känns relevant, dels för
135 % rapportens skull och dels för er egen. Kom ihåg att skriva tydliga
136 % (vetenskapliga) referenser!
138 Programmet ligger i katalogen:\\
141 Källkoden ligger i underkatalogen
\verb!src!.
143 Följande kommandon förutsätter att programmet
\textit{Apache
144 Ant
}\footnote{http://ant.apache.org/
} är installerat. Verktyget
145 \textit{Ant
} är ett byggverktyg som använder sig av specifikationen
146 lagrad i en XML-fil, oftast
\textit{build.xml
}, för automatisera alla
147 nödvändiga operationen vid kompilering av ett projekt. Detta kan
148 innefatta all typ av filhantering, det vill säga kopiering,
149 borttagning och flyttning, men även själva kompileringen av
150 projektet. Verktyget kan ses som ett specialanpassat skript för att
151 kompilera hela projekt.
153 Programmet kompileras med kommandot:\\
155 \verb!salt:~/edu/apjava/lab3> ant!
159 Det som händer vid anrop av kommandot ovan är att
\textit{Ant
} läser
160 av filen
\textit{build.xml
} och letar efter standardkommandona att
161 köra. I det här fallet är det operationerna som är definierade i
162 XML-elementet
\verb!<target />! med attributet
\verb!name="dist"!. Se
163 bildaga~
\ref{app:build.xml
} för mer information om vad som händer. Oftast
164 har taggarna i
\textit{build.xml
} relativt självförklarande namn, de
165 motsvarar i många fall direkta kommandon som går att köra i en
168 \section{Systembeskrivning
}\label{Systembeskrivning
}
169 % Beskriv översiktligt hur programmet är uppbyggt och hur det löser
174 \includegraphics[width=
110mm
]{images/Paintables.pdf
}
175 \caption{UML klassdiagram
}
176 \label{fig:image/Paintable
}
180 \subsection{se.umu.cs.dit06ajnajs pakage
}
181 \subsubsection{ATDController
}\label{sec:ATDController
}
182 \subsubsection{ATDModel
}\label{sec:ATDModel
}
183 \subsubsection{ATDSoundPlayer
}\label{sec:ATDSoundPlayer
}
184 \subsubsection{ATDView
}\label{sec:ATDView
}
185 \subsubsection{AntiTD
}\label{sec:AntiTD
}
186 \subsubsection{NoActiveStartSquareException
}\label{sec:NoActiveStartSquareException
}
187 \subsubsection{Paintable
}\label{sec:Paintable
}
188 \subsubsection{Player
}\label{sec:Player
}
190 \subsection{se.umu.cs.dit06ajnajs.agent pakage
}
191 \subsubsection{Agent
}\label{sec:Agent
}
192 \subsubsection{AgentPrototypeFactory
}\label{sec:AgentPrototypeFactory
}
193 \subsubsection{BasicTower
}\label{sec:BasicTower
}
194 \subsubsection{Direction
}\label{sec:Direction
}
195 \subsubsection{FootmanUnit
}\label{sec:FootmanUnit
}
196 \subsubsection{FootmanUnit.java
}\label{sec:FootmanUnit.java
}
197 \subsubsection{TeleportUnit
}\label{sec:TeleportUnit
}
198 \subsubsection{Tower
}\label{sec:Tower
}
199 \subsubsection{Unit
}\label{sec:Unit
}
201 \subsection{se.umu.cs.dit06ajnajs.map pakage
}
202 \subsubsection{BlockedSquare
}\label{sec:BlockedSquare
}
203 \subsubsection{Clickable
}\label{sec:Clickable
}
204 \subsubsection{GoalSquare
}\label{sec:GoalSquare
}
205 \subsubsection{Item
}\label{sec:Item
}
206 \subsubsection{Level
}\label{sec:Level
}
207 \subsubsection{MapSquare
}\label{sec:MapSquare
}
208 \subsubsection{MapSquareFactory
}\label{sec:MapSquareFactory
}
209 \subsubsection{MapSquarePrototypeFactory
}\label{sec:MapSquarePrototypeFactory
}
210 \subsubsection{PathSquare
}\label{sec:PathSquare
}
211 \subsubsection{StartSquare
}\label{sec:StartSquare
}
212 \subsubsection{TowerSquare
}\label{sec:TowerSquare
}
213 \subsubsection{Traversable
}\label{sec:Traversable
}
214 \subsubsection{TurnSquare
}\label{sec:TurnSquare
}
216 \subsection{se.umu.cs.dit06ajnajs.util pakage
}
217 \subsubsection{LevelEditor
}\label{sec:LevelEditor
}
218 \subsubsection{LevelsXMLOutputter
}\label{sec:LevelsXMLOutputter
}
219 \subsubsection{LevelsXMLParser
}\label{sec:LevelsXMLParser
}
220 \subsubsection{LevelsXMLValidator
}\label{sec:LevelsXMLValidator
}
221 \subsubsection{XMLUtil
}\label{sec:XMLUtil
}
222 \subsubsection{XMLValidator
}\label{sec:XMLValidator
}
224 \section{Begränsningar
}\label{Begransningar
}
225 % Vilka problem och begränsningar har din lösning av uppgiften? Hur
226 % skulle de kunna rättas till?
228 \section{Reflektioner
}\label{Reflektioner
}
229 % Reflektioner - Var det något som var speciellt krångligt? Vilka
230 % problem uppstod och hur löste ni dem? Vilka verktyg använde ni? Hur
231 % upplevde ni de verktygen? + Allmänna synpunkter. Om ni har upplevt
232 % problem på grund av olika miljöer (i termer av operativsystem och
233 % liknande) så kan det även vara intressant att nämna det, samt motivera
236 \section{Testkörningar
}\label{Testkorningar
}
237 % Noggranna testkörningar där man ser att programmet fungerar som det
240 \section{Diskussion
}\label{Diskussion
}
241 % Diskutera om laborationen samt allmänt kring Web services och om hur
242 % och när det är användbart (och inte användbart). Saker som kan vara
243 % trevliga att ta upp är interoperabilitet, lite om prestanda, koncepten
244 % lös koppling och så vidare. Den här sektionen ska vara en betydande
245 % del av rapporten. Det är upp till er själva att ta reda på den
246 % information ni behöver, även om föreläsningsmaterialet kan vara
247 % väldigt användbart. Kom även här ihåg att referera till era källor
248 % (även om det är från föreläsningsmaterialet).
250 \bibliographystyle{alpha
}
251 \bibliography{books.bib
}
255 \pagenumbering{arabic
}
256 \section{Källkod
}\label{sec:kallkod
}
257 % Källkoden ska finnas tillgänglig i er hemkatalog
258 % ~/edu/apjava/lab1/. Bifoga även utskriven källkod.
259 Härefter följer utskrifter från källkoden och andra filer som hör till
263 \subsection{AntiTD.java
}\label{AntiTD.java
}
264 \lstinputlisting{../src/se/umu/cs/dit06ajnajs/AntiTD.java
}