Skip to content

Commit

Permalink
Initial draft of Design.tex which shows the UML Diagram of both the f…
Browse files Browse the repository at this point in the history
…inal and ideal (initial concept) designs.
  • Loading branch information
EmilSoleymani committed Aug 19, 2022
1 parent 8636891 commit a97b6b3
Show file tree
Hide file tree
Showing 4 changed files with 73 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
DOC_DIRS ?= docs/Design/MIS docs/Design/MG docs/Design/SRS Miscellaneous
DOC_DIRS ?= docs/Design docs/Design/MIS docs/Design/MG docs/Design/SRS Miscellaneous
LATEX_AUX_EXTENSIONS ?= aux fdb_latexmk fls log out synctex.gz toc blg bbl

all: run
Expand Down
Binary file added docs/Design/Design.pdf
Binary file not shown.
72 changes: 72 additions & 0 deletions docs/Design/Design.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
\documentclass[11pt,fleqn]{article}

\usepackage{blindtext}
\usepackage{hyperref}
\usepackage{graphicx}
\graphicspath{ {./} }
\hypersetup{
colorlinks=true,
linkcolor=blue,
filecolor=magenta,
urlcolor=cyan,
pdftitle={Overleaf Example},
pdfpagemode=FullScreen,
}
\urlstyle{same}

\newcommand{\indentpar}{\phantom{=}}
\newcommand{\bli}{\begin{itemize}}
\newcommand{\eli}{\end{itemize}}

\begin{document}

%% Title Page %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\title{Design of VDisp Software}
\date{\today}
\author{Emil Soleymani, Dr.~Spencer Smith\\ McMaster University}
\maketitle

\medskip

% Description
\indentpar The \textbf{VDisp} software was carefully designed to adhere to the \href{https://www.digitalocean.com/community/conceptual_articles/s-o-l-i-d-the-first-five-principles-of-object-oriented-design}{\emph{SOLID} software design principles}.
This document aims to outline the initial proposed design (which will be called the ideal design), the actual implemented
design, and the limitations of the Julia programming language that lead to this drastic change.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pagebreak

%% Ideal Design %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section*{Ideal Design}

\indentpar This section aims to describe the \emph{ideal} design which was drafted
for the \textbf{VDisp} software. \\

\begin{figure}[h]
\includegraphics[width=1.3\textwidth]{VDispIdealDesignUML.png}
\centering
\end{figure}

\indentpar The diagram above has been condensed. \emph{InputData} uses many
Custom Exception classes which help identify specific problems in the input file
format allowing for helpful and descriptive messages to be given to the user. Furthermore,
the \textbf{FoundationOutputBehaviour}, \textbf{DisplacementInfoBehaviour}, \textbf{ForcePointBehaviour} and
\textbf{EquilibriumInfoBehaviour} interfaces (and the classes that implement them) have
been left out of the diagram.

\indentpar Examining the \textbf{ModelOutputBehaviour} interface is sufficient
to understand the implementation of the excluded interfaces, while the \textbf{CalculationOutputBehaviour}
is more complex than the other interfaces. The classes that implement \textbf{CalculationOutputBehaviour}
are responsible for making method specific calculations, and return a set of values that is dependant on
the method itself. This is why the \textbf{CalculationOutputBehaviour} \emph{getValue()} function is said to
return a \textbf{Tuple}. This \textbf{Tuple} contains different info based on the specified model, and classes
that access this \textbf{Tuple} must be prepared to parse it.

\indentpar The design pattern of the \emph{Output} class and the interfaces it uses (all the interfaces that
end in "\emph{Behaviour}") is inspired by the \emph{Duck example} in the opening chapter of \href{https://github.com/ksatria/MK-Design-Pattern/blob/master/Ebook/Head%20First%20Design%20Patterns.pdf}{this textbook}
on design patterns.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\end{document}
Binary file added docs/Design/VDispIdealDesignUML.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a97b6b3

Please sign in to comment.