From a910f049b525497d3a461c5e40fd66e4855ab90a Mon Sep 17 00:00:00 2001 From: Riley McGee <mcgeer@mcmaster.ca> Date: Wed, 30 Nov 2016 15:25:09 -0500 Subject: [PATCH] Updated MG for REV1 --- Doc/Design/MG/MG.pdf | Bin 153476 -> 154212 bytes Doc/Design/MG/MG.tex | 51 +++++++++++++++++++++++++++---------------- 2 files changed, 32 insertions(+), 19 deletions(-) diff --git a/Doc/Design/MG/MG.pdf b/Doc/Design/MG/MG.pdf index 45c0a26cf63179436f1742ac87830211a177755b..182cac2c788509c6776b148412d33c15ad68bd92 100644 GIT binary patch delta 25150 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�#CWu^Oq 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 a8|N=vJb(5@JerF1k6Kt>KKc0i!v6s|y^inz delta 24314 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�!%4aCx;2a>Zzy3d_#Q^Xrvr=GSpzd&>QCSSk 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 diff --git a/Doc/Design/MG/MG.tex b/Doc/Design/MG/MG.tex index 8346e3d..e159478 100644 --- a/Doc/Design/MG/MG.tex +++ b/Doc/Design/MG/MG.tex @@ -32,9 +32,9 @@ \title{SE 3XA3: Module Guide\\Gifitti} \author{Team \#2, Gifitti - \\ Riley McGee, mcgeer \\ Pavle Arezina, arezinp \\ Nicolai Kozel, kozeln + \\ Riley McGee, mcgeer } \date{\today} @@ -55,11 +55,10 @@ \begin{tabularx}{\textwidth}{p{3cm}p{2cm}X} \toprule {\bf Date} & {\bf Version} & {\bf Notes}\\ \midrule -November 9th 2016 & 1.0 & Added Module Hierarchy\\ -November 9th 2016 & 1.1 & Added Module Decomposition\\ -November 11th 2016& 1.2& Added Section 2 and 6\\ -November 13th 2016& 2.0& Spelling and grammatical issues addressed\\ -... & ... & ... \\ +November 9th 2016 & 1.0 & Added Module Hierarchy \\ +November 9th 2016 & 1.1 & Added Module Decomposition \\ +November 11th 2016 & 1.2 & Added Section 2 and 6 \\ +November 13th 2016 & 2.0 & Spelling and grammatical issues addressed \\ \bottomrule \end{tabularx} \end{table} @@ -88,12 +87,19 @@ Our design follows the rules laid out by \citet{ParnasEtAl1984}, as follows: structures must obtain it by calling access programs belonging to that module. \end{itemize} +Gifitti is a software solution for allowing users with a varying knowledge base on image +manipulation, as well as technical experience with computers to be able to load, decompose, +and modify GIF images. \\ +The following document outlines the Module Guide for Gifitti ahdhering to the document +description above. + After completing the first stage of the design, the Software Requirements Specification (SRS), the Module Guide (MG) is developed~\citep{ParnasEtAl1984}. The MG specifies the modular structure of the system and is intended to allow both designers and maintainers to easily identify the parts of the software. The potential readers of this document are as follows: + \begin{itemize} \item New project members: This document can be a guide for a new project member to easily understand the overall structure and quickly find the @@ -271,7 +277,7 @@ selected. \subsection{Behaviour-Hiding Module (\mref{mBH})} \begin{description} -\item[Secrets:]The contents of the required behaviours. +\item[Secrets:]The contents of the required software system behaviours. \item[Services:]Includes programs that provide externally visible behaviour of the system as specified in the software requirements specification (SRS) documents. This module serves as a communication layer between the @@ -283,23 +289,25 @@ selected. \subsubsection{Image Processing Module (\mref{mIP})} \begin{description} -\item[Secrets:] The format and structure of GIF, TIFF, JPEG, PNG, and BMP image types. +\item[Secrets:] The format and structure of GIF, TIFF, JPEG, PNG, and BMP image types, + and Image Meta data parsing is handled by this module. \item[Services:]Converts the input images into a system usable form. -\item[Implemented By:] -- +\item[Implemented By:] ImageMagick.NET \end{description} \subsubsection{Image Loading Module (\mref{mIL})} \begin{description} -\item[Secrets:] Utilizes the Image Processing Module to read in image data and return a useable form. -\item[Services:] Converts system paths to images to a useable form in the software. -\item[Implemented By:] Gifitti +\item[Secrets:] Utilizes the Image Processing Module to read in image data and return a system useable form. +\item[Services:] Converts system paths of images to a useable form in the software. +\item[Implemented By:] Gifitti GIF Model Module (\mref{mGM}) \end{description} \subsubsection{GIF Model Module (\mref{mGM})} \begin{description} -\item[Secrets:] GIF images are represented in a Frame-By-Frame manner to establish easy handling of GIFs. the Images themselves are not strictly of the GIF format they are used to model the GIF image. +\item[Secrets:] GIF images are represented in a Frame-By-Frame manner to establish easy + handling of GIFs. The images themselves are represented as Bitmaps to keep \item[Services:] \begin{itemize} %Brute Force Formatting Leave here @@ -315,14 +323,19 @@ selected. \subsubsection{View-Model Module (\mref{mVM})} \begin{description} -\item[Secrets:] Links Views to the ViewModels using C Sharp partial class declarations to separate view-model, and view aspects of the system. +\item[Secrets:] Views are connected to View-Models via C\# partial class declarations. +View-Models are a C\# architecture, to allow Views to connect to their Model representation +with a loose coupling. This allows for Views and their Models to be developed independently +from each other, in a parallel fashion. The partial class connection of the View-Model and View +elements is what keeps Views and View-Models in the same Module, although they are +abstracted from each other. \item[Services:] Controls View elements, as well as system interactions by the user. \item[Services:] \begin{itemize} %Brute Force Formatting Leave here \end{itemize} \begin{itemize} -\item Controls View elements, as well as system interactions by the user. +\item Controls View elements, as well as system interactions by the user (View-Models). \item Essential link for View elements and Models \end{itemize} \item[Implemented By:] Gifitti @@ -344,19 +357,19 @@ selected. \subsubsection{GIF Transformation Module (\mref{mGT})} \begin{description} -\item[Secrets:] Frame-By-Frame Manipulation of GIF Models to obtain desired results. +\item[Secrets:] Frame-By-Frame Manipulation of GIF Models to obtain modified GIFs. \item[Services:] Converts GIFs into a new GIF based on desired transformations. Transformations include: Reset, Resize, Add Frame(s), Remove Frame(s), Rotate, Modify Speed ... -\item[Implemented By:] Gifitti +\item[Implemented By:] Gifitti \end{description} \subsubsection{Image Conversion Module (\mref{mIC})} \begin{description} -\item[Secrets:] Converts GIF Models into specific Image types. +\item[Secrets:] Converts GIF Models into specific Image types, using ImageMagick.NET \item[Services:] Allows a GIF in the system to be exported as a desired image type. Image types include GIF, TIFF, JPEG, PNG, and BMP. -\item[Implemented By:] Gifitti +\item[Implemented By:] Gifitti GIF Model Module, ImageMagick.Net (\mref{mGM}) \end{description} \section{Traceability Matrix} \label{SecTM} -- GitLab