Skip to content
Snippets Groups Projects
Commit 7742bcbc authored by Christopher Schankula's avatar Christopher Schankula :earth_africa:
Browse files

further additions to BioTree, I broke histogram, must fix

parent 944fe14b
No related branches found
No related tags found
No related merge requests found
designSpec/ClassUML.png

853 KiB

No preview for this file type
......@@ -28,7 +28,6 @@
\author{Trawlstars Inc. (Group 11) \\ Lab section: L01 \\ Version: 1.0 \\ SFWRENG 2XB3 \\ \\ Christopher W. Schankula, 400026650, schankuc \\ Haley Glavina, 001412343, glavinhc \\ Winnie Liang, 400074498, liangw15 \\ Ray Liu, 400055250, liuc40 \\ Lawrence Chung, 400014482, chungl1}
\maketitle
\begin{center}
......@@ -118,10 +117,32 @@ Apache tomcat was used to create a webserver which uses the internal functionali
\section{Implementation}
\subsection{Classes and Modules}
The implementation involved over 30 classes implemented in Java. Additional JavaScript and HTML files were used to create a sophisticated web-based user interface. For a description of each class and module used, JavaDoc documentation can be viewed at %INSERT JAVA DOC LINK%
The implementation involved over 30 classes implemented in Java. Additional JavaScript and HTML files were used to create a sophisticated web-based user interface. For a description of each class and module used, JavaDoc documentation can be viewed by opening the \texttt{doc/index.html} folder in the submission archive or by visiting \url{http://trawl.schankula.ca/Trawl/doc}.
\subsection{Class Organization}
The \textit{Trawl Expert} implementation efforts were divided into two subteams: Subteam A and Subteam B.
An overview of the modules included in the \textit{TrawlExpert} is shown in figure \ref{fig:UML}. The \textit{Trawl Expert} implementation efforts were divided into two subteams: Subteam A and Subteam B. Tasks were assigned so as to maximize the parallelization of the development process. As a biproduct, modules were designed to uphold the principles of information hiding, modularity and separation of concerns.
\subsubsection{model Package}
This class represents the model of the \textit{TrawlExpert} platform. It provides wrapper hooks to functionality deeper inside the codebase, which allows different views to be used separately from the internal functionality. Two such views are the command-line interface in \texttt{main/Main.java} and the tomcat server. This design allows any such view to be built upon the foundation of the model, without needing to edit any underlying code.
\subsubsection{data Package}
\subsubsection{search Package}
\subsubsection{sort Package}
\subsubsection{graph Package}
\subsubsection{utils Package}
\subsubsection{web Package}
\begin{figure}
\centering
\includegraphics[angle=90,width=14cm]{ClassUML.png}
\caption{The UML class diagram of TrawlExpert, showing the relationships amongst modules. The full-resolution version is available in the root directory of the submission archive as \texttt{UML.png}.}
\label{fig:UML}
\end{figure}
\subsection{UML State Diagrams}
......
\contentsline {section}{\numberline {1}Project Scope}{4}{section.1}
\contentsline {subsection}{\numberline {1.1}Objective}{4}{subsection.1.1}
\contentsline {section}{\numberline {1}Project Scope}{5}{section.1}
\contentsline {subsection}{\numberline {1.1}Objective}{5}{subsection.1.1}
\contentsline {subsection}{\numberline {1.2}Motivation}{5}{subsection.1.2}
\contentsline {subsection}{\numberline {1.3}Dataset}{5}{subsection.1.3}
\contentsline {subsection}{\numberline {1.4}Final Product}{5}{subsection.1.4}
\contentsline {section}{\numberline {2}Implementation}{5}{section.2}
\contentsline {subsection}{\numberline {2.1}Classes and Modules}{5}{subsection.2.1}
\contentsline {section}{\numberline {2}Implementation}{6}{section.2}
\contentsline {subsection}{\numberline {2.1}Classes and Modules}{6}{subsection.2.1}
\contentsline {subsection}{\numberline {2.2}Class Organization}{6}{subsection.2.2}
\contentsline {subsection}{\numberline {2.3}UML State Diagrams}{6}{subsection.2.3}
\contentsline {subsubsection}{\numberline {2.3.1}Main.java}{6}{subsubsection.2.3.1}
\contentsline {subsubsection}{\numberline {2.3.2}BioTree.java}{6}{subsubsection.2.3.2}
\contentsline {section}{\numberline {3}Algorithmic Opportunities}{8}{section.3}
\contentsline {subsection}{\numberline {3.1}Quick Select}{8}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}kd Tree}{9}{subsection.3.2}
\contentsline {subsection}{\numberline {3.3}Graphing}{9}{subsection.3.3}
\contentsline {section}{\numberline {4}Software Design Principles}{9}{section.4}
\contentsline {subsection}{\numberline {4.1}Robustness}{9}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}Scalability}{10}{subsection.4.2}
\contentsline {subsection}{\numberline {4.3}Generality}{10}{subsection.4.3}
\contentsline {subsubsection}{\numberline {4.3.1}General Compare}{10}{subsubsection.4.3.1}
\contentsline {subsubsection}{\numberline {4.3.2}Field}{10}{subsubsection.4.3.2}
\contentsline {subsubsection}{\numberline {4.3.3}General Range}{10}{subsubsection.4.3.3}
\contentsline {section}{\numberline {5}Internal Review}{11}{section.5}
\contentsline {subsection}{\numberline {5.1}Meeting Functional Requirements}{11}{subsection.5.1}
\contentsline {subsection}{\numberline {5.2}Meeting Non-Functional Requirements}{11}{subsection.5.2}
\contentsline {subsection}{\numberline {5.3}Changes During Development}{11}{subsection.5.3}
\contentsline {subsection}{\numberline {5.4}Future Changes}{11}{subsection.5.4}
\contentsline {subsubsection}{\numberline {5.4.1}Improvements on Development Process}{11}{subsubsection.5.4.1}
\contentsline {subsubsection}{\numberline {5.4.2}Future Functionality}{11}{subsubsection.5.4.2}
\contentsline {subsubsection}{\numberline {2.2.1}model Package}{6}{subsubsection.2.2.1}
\contentsline {subsubsection}{\numberline {2.2.2}data Package}{7}{subsubsection.2.2.2}
\contentsline {subsubsection}{\numberline {2.2.3}search Package}{7}{subsubsection.2.2.3}
\contentsline {subsubsection}{\numberline {2.2.4}sort Package}{7}{subsubsection.2.2.4}
\contentsline {subsubsection}{\numberline {2.2.5}graph Package}{7}{subsubsection.2.2.5}
\contentsline {subsubsection}{\numberline {2.2.6}utils Package}{7}{subsubsection.2.2.6}
\contentsline {subsubsection}{\numberline {2.2.7}web Package}{7}{subsubsection.2.2.7}
\contentsline {subsection}{\numberline {2.3}UML State Diagrams}{7}{subsection.2.3}
\contentsline {subsubsection}{\numberline {2.3.1}Main.java}{7}{subsubsection.2.3.1}
\contentsline {subsubsection}{\numberline {2.3.2}BioTree.java}{7}{subsubsection.2.3.2}
\contentsline {section}{\numberline {3}Algorithmic Opportunities}{10}{section.3}
\contentsline {subsection}{\numberline {3.1}Quick Select}{10}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}kd Tree}{11}{subsection.3.2}
\contentsline {subsection}{\numberline {3.3}Graphing}{11}{subsection.3.3}
\contentsline {section}{\numberline {4}Software Design Principles}{11}{section.4}
\contentsline {subsection}{\numberline {4.1}Robustness}{11}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}Scalability}{12}{subsection.4.2}
\contentsline {subsection}{\numberline {4.3}Generality}{12}{subsection.4.3}
\contentsline {subsubsection}{\numberline {4.3.1}General Compare}{12}{subsubsection.4.3.1}
\contentsline {subsubsection}{\numberline {4.3.2}Field}{12}{subsubsection.4.3.2}
\contentsline {subsubsection}{\numberline {4.3.3}General Range}{12}{subsubsection.4.3.3}
\contentsline {section}{\numberline {5}Internal Review}{13}{section.5}
\contentsline {subsection}{\numberline {5.1}Meeting Functional Requirements}{13}{subsection.5.1}
\contentsline {subsection}{\numberline {5.2}Meeting Non-Functional Requirements}{13}{subsection.5.2}
\contentsline {subsection}{\numberline {5.3}Changes During Development}{13}{subsection.5.3}
\contentsline {subsection}{\numberline {5.4}Future Changes}{13}{subsection.5.4}
\contentsline {subsubsection}{\numberline {5.4.1}Improvements on Development Process}{13}{subsubsection.5.4.1}
\contentsline {subsubsection}{\numberline {5.4.2}Future Functionality}{13}{subsubsection.5.4.2}
<%@ page import="java.util.*, data.Record, model.TrawlExpert, search.BST,search.trawl.BasicSearchResult" %>
<%@ page import="java.util.*, data.Record, model.TrawlExpert, search.RedBlackTree, search.trawl.BasicSearchResult" %>
<%@page import="org.json.simple.JSONArray"%>
<%@page import="org.json.simple.JSONObject"%>
<%@page import="org.json.simple.parser.JSONParser"%>
......@@ -14,7 +14,7 @@
BasicSearchResult result = te.rangeSearch(taxonId, yearLo, yearHi);
BST<Integer, Integer> histogram = result.histogram();
RedBlackTree<Integer, Integer> histogram = result.histogram();
Iterable<Integer> results = histogram.keys();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment