Commits

Trent Houliston committed ed20bac

Spelling

  • Participants
  • Parent commits de06b5d

Comments (0)

Files changed (1)

File Requirements Document.tex

-% Initialization
+% Initialisation
 \documentclass[english,12pt]{scrartcl}
 
 \usepackage[]{babel}
 				affected areas. Some systems have the ability to write their data to the network to be viewed in real
 				time but this is provided on a per-component basis and the exact mechanism differs for each components.
 				
-				For this particular problem trace statements need to be added to the Behavior, Motion and Job systems to determine
+				For this particular problem trace statements need to be added to the Behaviour, Motion and Job systems to determine
 				why this particular job is called and why the robot is kicking it's own goal in the first place. After these statements are added
 				the NUBots team then needs identify the issue through the trace logs, write a fix and then run it live on the robot. If the 
 				fix fails it's back to step 1. Repeat until the bug is fixed.
 				In addition to standard logging capabilities the proposed architecture also provides the ability to capture
 				the entire input sequence for a particular component. This means you can capture the exact inputs that
 				caused the robot to kick an own goal and then breakdance. Once you've captured those inputs you can then
-				turn them into a unit test which in many cases can be run independantly from the robot. 
+				turn them into a unit test which in many cases can be run independently from the robot. 
 				
 				Once you've translated the input into a unit test you then need to write your fix. However you don't
 				need to deploy your fix you can instead simply run the unit test and see if it passes. If the unit test passes
 				you simply deploy to the robot and the problem is solved.
 				
-				This approach also has the benifit of slowly building up a library of unit and regression tests against known bugs.
+				This approach also has the benefit of slowly building up a library of unit and regression tests against known bugs.
 				\todo[inline]{Write how the proposed system would resolve this scenario}
 
 		\subsection{The Robot is used to perform a new task}
 			from the surrounding code may be ignored in favour of rewriting the required
 			functionality.
 
-			The NUBots team have been asked to add dancing capabilites to the robot to help market the 
+			The NUBots team have been asked to add dancing capabilities to the robot to help market the 
 			university. The university wants the robot to be able to dance to a beat and compete in 
-			"So you think you can RoboDance". The NUBots team realizes that some of their existing
+			``So you think you can RoboDance''. The NUBots team realises that some of their existing
 			code can be leveraged to build the dance subsystem.
 
 			\subsubsection{Current System}
 				In the existing architecture reuse of code is primarily achieved by copy+paste. This is 
-				espcially evident in places where there are multiple implementations of the same concept.
+				especially evident in places where there are multiple implementations of the same concept.
 				
-				Allowing the robot to dance requires a new behavior module that contains the dance state
+				Allowing the robot to dance requires a new behaviour module that contains the dance state
 				machine. Additionally the sensor system will need to be modified to provide sound information
 				to the new dance component. 
 				
 				Create a new sound reactor that emits sound events. 
 				Create a new sound analysis reactor that determines the beat and emits
 				the "feel" of the song.
-				Have behavior react to the "feel" data and select an appropriate scripted dance move.
+				Have behaviour react to the "feel" data and select an appropriate scripted dance move.
 				Motion runs the dance.
 				\todo[inline]{Write how the proposed system would resolve this scenario}
 
 			When viewed from far away the existing architecture resembles an intricate spider web
 			woven from good intentions and demonic pacts with the compiler.
 			For a high level overview see Figure~\ref{fig:HighLevelExistingArchitecture} on page~\pageref{fig:HighLevelExistingArchitecture}.
-			It was originally concieved as a purely object-oriented system designed to be easy to understand and extend.
+			It was originally conceived as a purely object-oriented system designed to be easy to understand and extend.
 			However, the ravages of time have taken it's toll and years of having no one responsible for
 			the architecture has heavily impacted it's quality.
 			New engineers working on the system had no one to turn to for advice and resorted to
 			Imagine a group of people each of whom had come up with their own unique language.
 			Now imagine them trying to communicate and you would have a good idea of what communication
 			between components looks like in the existing architecture.
-			Some components communicate through the blackboard or the jobs system, some components communicate throgh
+			Some components communicate through the blackboard or the jobs system, some components communicate through
 			direct function calls, some components communicate through implicit or global state such as singletons and some
 			components communicate through other more arcane means such as inferring information indirectly.