reqs update
authorMart Lubbers <mart@martlubbers.net>
Sat, 22 Nov 2014 12:21:06 +0000 (13:21 +0100)
committerMart Lubbers <mart@martlubbers.net>
Sat, 22 Nov 2014 12:21:06 +0000 (13:21 +0100)
thesis2/1.introduction.tex
thesis2/2.requirementsanddesign.tex
thesis2/5.discussion.tex
thesis2/Makefile

index c3c3588..6b37652 100644 (file)
@@ -265,6 +265,7 @@ venues often use a CMS for their website to allow users with no programming or
 website background be able to post news items and event information.
 
 \section{Why RSS/Atom}
+\label{sec:whyrss}
 Information from venues comes in various different format with for each format
 several positive and negative points. For this project we chose to focus on
 RSS feeds. RSS feeds are, as explained earlier, very structured and consistent
index a1dff98..c6ee8f7 100644 (file)
@@ -1,3 +1,104 @@
 \section{Requirements}
+\subsection{Introduction}
+As almost every other computer starts with a set of requirements so will this
+application. Requirements are a set of goals within different categories that
+will define what the application has to be able to do and they are
+traditionally defined at the start of the project and not expected to change
+much. In the case of this project the requirements were a lot more flexible
+because there was only one person doing the programming and there was a weekly
+meeting to discuss the matters and most importantly discuss the required
+changes. Because of this a lot of initial requirements are removed and a some
+requirements were added in the process. The list below shows the definitive
+requirements and also the suspended requirements.
+
+The two types of requirements that are formed are functional and non-functional
+requirements. Respectively they are requirements that describe a certain
+function and the latter are requirements that describe a certain property such
+as efficiency or compatibility. To make us able to refer to them we give the
+requirements unique codes. We also specify in the list with active requirements
+the reason for the choice.
+
+\subsection{Functional requirements}
+\subsubsection{Original functional requirements}
+\begin{itemize}
+       \item[F1:] Be able to crawl several source types.
+               \begin{itemize}
+                       \item[F1a:] Fax/email.
+                       \item[F1b:] XML feeds.
+                       \item[F1c:] RSS feeds.
+                       \item[F1d:] Websites.
+               \end{itemize}
+       \item[F2:] Apply low level matching techniques on isolated data.
+       \item[F3:] Insert the data in the database.
+       \item[F4:] User interface to train crawlers must be usable by non computer
+               science people.
+       \item[F5:] There must be a control center for the crawlers.
+\end{itemize}
+
+\subsubsection{Definitive functional requirements}
+Requirements F2 is the sole requirement that is dropped completely. All other
+definitive requirements are formed out of the original functional requirements.
+Together they make the following definitive requirements:
+\begin{itemize}
+       \item[F6:] Be able to crawl RSS feeds only.
+
+               This requirement is an adapted version of the compound requirements
+               F1a-F1d. We stripped down from crawling four different sources to only one
+               source because of the scope of the project. Most sources require an
+               entirely different strategy. The full reason why we chose RSS feeds can be
+               found in Section~\ref{sec:whyrss}.
+               
+       \item[F7:] Export the data to a strict XML feed.
+
+               This requirement is an adapted version of requirement F3, this to done to
+               make the scope smaller. We chose to no interact with the database or the
+               \textit{Temporum}. The application will have to be able to output XML data
+               that is formatted following a string XSD scheme so that it is easy to
+               import the data in the database or \textit{Temporum}.
+       \item[F8:] A control center interface that is usable by non computer
+               science people.
+
+               This requirement is a combination of F4 and F5. At first the user interface
+               for adding and training crawlers was done via a webinterface that was user
+               friendly and usable for non computer science people as the requirement
+               stated. However in the first prototypes the control center that could test,
+               edit and remove crawlers was a command line application and thus not very
+               usable for the general audience. This combined requirements asks for a
+               single control center that can do all previously described task with an
+               interface that is usable by almost everyone.
+       \item[F9:] Report to the user or maintainer when a source has been changed
+               too much for successful crawling.
+
+               This requirement was also present in the original requirements and hasn't
+               changed. When the crawler fails to crawl a source, this can be due to any
+               reason, a message is sent to the people using the program so that they can
+               edit or remove the faulty crawler. This is a crucial component because the
+               program, a non computer science person can do this task and is essential in
+               shortening the feedback loop explained in Figure~\ref{fig:1.1.2}.
+\end{itemize}
+
+\subsection{Non-functional requirements}
+\subsubsection{Original functional requirements}
+\begin{itemize}
+       \item[N1:] Integrate in the original system.
+       \item[N2:] Work in a modular fashion, thus be able to, in the future, extend
+               the program.
+\end{itemize}
+
+\subsubsection{Active functional requirements}
+\begin{itemize}
+       \item[N2:] Work in a modular fashion, thus be able to, in the future, extend
+               the program.
+
+               The modularity is very important so that the components can be easily
+               extended and components can be added. Possible extensions are discussed in
+               Section~\ref{sec:discuss}.
+       \item[N3:] Operate standalone on a server.
+
+               Non-functional requirement N1 is dropped because we want to keep the
+               program as modular as possible and via an XML interface we still have a
+               very stable connection with the database but we avoided getting entangled
+               in the software managing the database.
+\end{itemize}
 
 \section{Design}
index e69de29..aa03e7c 100644 (file)
@@ -0,0 +1 @@
+\label{sec:discuss}
index cd58e30..d68058a 100644 (file)
@@ -1,5 +1,5 @@
 SHELL:=/bin/bash
-VERSION:=0.2
+VERSION:=0.3
 
 all: thesis