Skip to content
Snippets Groups Projects
Commit 51cc1344 authored by Jeremy Klotz's avatar Jeremy Klotz
Browse files

Updated section 5 (module decomposition). Some minor touches still to be added here.

parent b5527020
No related branches found
No related tags found
No related merge requests found
......@@ -17,6 +17,10 @@
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces \bf Revision History}}{i}{table.1}}
\citation{ParnasEtAl1984}
\citation{Parnas1972a}
\citation{ParnasEtAl1984}
\citation{ParnasEtAl1984}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{section.1}}
\@writefile{toc}{\contentsline {section}{\numberline {2}Anticipated and Unlikely Changes}{2}{section.2}}
\newlabel{SecChange}{{2}{2}{Anticipated and Unlikely Changes}{section.2}{}}
......@@ -28,47 +32,44 @@
\newlabel{acSprites}{{4}{2}{\refstepcounter {acnum} \actheacnum :}{acnum.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Unlikely Changes}{2}{subsection.2.2}}
\newlabel{SecUchange}{{2.2}{2}{Unlikely Changes}{subsection.2.2}{}}
\newlabel{ucIO}{{1}{3}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.1}{}}
\newlabel{ucArchitecture}{{2}{3}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.2}{}}
\newlabel{ucGraph}{{3}{3}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.3}{}}
\newlabel{ucNodeIdentification}{{4}{3}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.4}{}}
\newlabel{ucPathfinder}{{5}{3}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Module Hierarchy}{3}{section.3}}
\newlabel{SecMH}{{3}{3}{Module Hierarchy}{section.3}{}}
\newlabel{ucIO}{{1}{2}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.1}{}}
\newlabel{ucArchitecture}{{2}{2}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.2}{}}
\newlabel{ucGraph}{{3}{2}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.3}{}}
\newlabel{ucNodeIdentification}{{4}{2}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.4}{}}
\newlabel{ucPathfinder}{{5}{2}{\refstepcounter {ucnum} \uctheucnum :}{ucnum.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Module Hierarchy}{2}{section.3}}
\newlabel{SecMH}{{3}{2}{Module Hierarchy}{section.3}{}}
\citation{ParnasEtAl1984}
\newlabel{mHH}{{1}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.1}{}}
\newlabel{mHH}{{2}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.2}{}}
\newlabel{mHH}{{3}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.3}{}}
\newlabel{mHH}{{4}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.4}{}}
\newlabel{mHH}{{5}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.5}{}}
\newlabel{mHH}{{6}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.6}{}}
\newlabel{mHH}{{7}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.7}{}}
\newlabel{mHH}{{8}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.8}{}}
\newlabel{mHH}{{9}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.9}{}}
\newlabel{mHH}{{10}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.10}{}}
\newlabel{mHH}{{11}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.11}{}}
\newlabel{mHH}{{12}{4}{\refstepcounter {mnum} \mthemnum :}{mnum.12}{}}
\newlabel{mHH}{{13}{4}{\refstepcounter {mnum} \mthemnum :}{mnum.13}{}}
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Module Hierarchy}}{4}{table.2}}
\newlabel{TblMH}{{2}{4}{Module Hierarchy}{table.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Connection Between Requirements and Design}{4}{section.4}}
\newlabel{SecConnection}{{4}{4}{Connection Between Requirements and Design}{section.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Module Decomposition}{4}{section.5}}
\newlabel{SecMD}{{5}{4}{Module Decomposition}{section.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Hardware Hiding Modules (M\ref {mHH})}{5}{subsection.5.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Behaviour-Hiding Module}{5}{subsection.5.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Input Format Module (M\ref {mInput})}{5}{subsubsection.5.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}Etc.}{6}{subsubsection.5.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Software Decision Module}{6}{subsection.5.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Etc.}{6}{subsubsection.5.3.1}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Traceability Matrix}{6}{section.6}}
\newlabel{SecTM}{{6}{6}{Traceability Matrix}{section.6}{}}
\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Trace Between Requirements and Modules}}{6}{table.3}}
\newlabel{TblRT}{{3}{6}{Trace Between Requirements and Modules}{table.3}{}}
\newlabel{mBH}{{2}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.2}{}}
\newlabel{mSD}{{3}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.3}{}}
\newlabel{mIF}{{4}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.4}{}}
\newlabel{mOF}{{5}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.5}{}}
\newlabel{mM}{{6}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.6}{}}
\newlabel{mGS}{{7}{3}{\refstepcounter {mnum} \mthemnum :}{mnum.7}{}}
\@writefile{lot}{\contentsline {table}{\numberline {2}{\ignorespaces Module Hierarchy}}{3}{table.2}}
\newlabel{TblMH}{{2}{3}{Module Hierarchy}{table.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4}Connection Between Requirements and Design}{3}{section.4}}
\newlabel{SecConnection}{{4}{3}{Connection Between Requirements and Design}{section.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {5}Module Decomposition}{3}{section.5}}
\newlabel{SecMD}{{5}{3}{Module Decomposition}{section.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.1}Hardware Hiding Module}{4}{subsection.5.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2}Behaviour-Hiding Module(M\ref {mBH})}{4}{subsection.5.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Input Formatting Module (M\ref {mIF})}{4}{subsubsection.5.2.1}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}Output Formatting Module (M\ref {mOF})}{4}{subsubsection.5.2.2}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.3}Model Module (M\ref {mM})}{4}{subsubsection.5.2.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Software Decision Module}{5}{subsection.5.3}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.1}Game State Module}{5}{subsubsection.5.3.1}}
\@writefile{toc}{\contentsline {section}{\numberline {6}Traceability Matrix}{5}{section.6}}
\newlabel{SecTM}{{6}{5}{Traceability Matrix}{section.6}{}}
\@writefile{lot}{\contentsline {table}{\numberline {3}{\ignorespaces Trace Between Requirements and Modules}}{5}{table.3}}
\newlabel{TblRT}{{3}{5}{Trace Between Requirements and Modules}{table.3}{}}
\citation{Parnas1978}
\bibstyle{plainnat}
\bibdata{MG}
\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces Trace Between Anticipated Changes and Modules}}{7}{table.4}}
\newlabel{TblACT}{{4}{7}{Trace Between Anticipated Changes and Modules}{table.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Use Hierarchy Between Modules}{7}{section.7}}
\newlabel{SecUse}{{7}{7}{Use Hierarchy Between Modules}{section.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Use hierarchy among modules}}{7}{figure.1}}
\newlabel{FigUH}{{1}{7}{Use hierarchy among modules}{figure.1}{}}
\@writefile{lot}{\contentsline {table}{\numberline {4}{\ignorespaces Trace Between Anticipated Changes and Modules}}{6}{table.4}}
\newlabel{TblACT}{{4}{6}{Trace Between Anticipated Changes and Modules}{table.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {7}Use Hierarchy Between Modules}{6}{section.7}}
\newlabel{SecUse}{{7}{6}{Use Hierarchy Between Modules}{section.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Use hierarchy among modules}}{6}{figure.1}}
\newlabel{FigUH}{{1}{6}{Use hierarchy among modules}{figure.1}{}}
\contentsline {figure}{\numberline {1}{\ignorespaces Use hierarchy among modules}}{7}{figure.1}
\contentsline {figure}{\numberline {1}{\ignorespaces Use hierarchy among modules}}{6}{figure.1}
This diff is collapsed.
\contentsline {table}{\numberline {1}{\ignorespaces \bf Revision History}}{i}{table.1}
\contentsline {table}{\numberline {2}{\ignorespaces Module Hierarchy}}{4}{table.2}
\contentsline {table}{\numberline {3}{\ignorespaces Trace Between Requirements and Modules}}{6}{table.3}
\contentsline {table}{\numberline {4}{\ignorespaces Trace Between Anticipated Changes and Modules}}{7}{table.4}
\contentsline {table}{\numberline {2}{\ignorespaces Module Hierarchy}}{3}{table.2}
\contentsline {table}{\numberline {3}{\ignorespaces Trace Between Requirements and Modules}}{5}{table.3}
\contentsline {table}{\numberline {4}{\ignorespaces Trace Between Anticipated Changes and Modules}}{6}{table.4}
......@@ -5,11 +5,12 @@
\BOOKMARK [1][-]{section.3}{Module Hierarchy}{}% 5
\BOOKMARK [1][-]{section.4}{Connection Between Requirements and Design}{}% 6
\BOOKMARK [1][-]{section.5}{Module Decomposition}{}% 7
\BOOKMARK [2][-]{subsection.5.1}{Hardware Hiding Modules \(M??\)}{section.5}% 8
\BOOKMARK [2][-]{subsection.5.2}{Behaviour-Hiding Module}{section.5}% 9
\BOOKMARK [3][-]{subsubsection.5.2.1}{Input Format Module \(M??\)}{subsection.5.2}% 10
\BOOKMARK [3][-]{subsubsection.5.2.2}{Etc.}{subsection.5.2}% 11
\BOOKMARK [2][-]{subsection.5.3}{Software Decision Module}{section.5}% 12
\BOOKMARK [3][-]{subsubsection.5.3.1}{Etc.}{subsection.5.3}% 13
\BOOKMARK [1][-]{section.6}{Traceability Matrix}{}% 14
\BOOKMARK [1][-]{section.7}{Use Hierarchy Between Modules}{}% 15
\BOOKMARK [2][-]{subsection.5.1}{Hardware Hiding Module}{section.5}% 8
\BOOKMARK [2][-]{subsection.5.2}{Behaviour-Hiding Module\(M2\)}{section.5}% 9
\BOOKMARK [3][-]{subsubsection.5.2.1}{Input Formatting Module \(M4\)}{subsection.5.2}% 10
\BOOKMARK [3][-]{subsubsection.5.2.2}{Output Formatting Module \(M5\)}{subsection.5.2}% 11
\BOOKMARK [3][-]{subsubsection.5.2.3}{Model Module \(M6\)}{subsection.5.2}% 12
\BOOKMARK [2][-]{subsection.5.3}{Software Decision Module}{section.5}% 13
\BOOKMARK [3][-]{subsubsection.5.3.1}{Game State Module}{subsection.5.3}% 14
\BOOKMARK [1][-]{section.6}{Traceability Matrix}{}% 15
\BOOKMARK [1][-]{section.7}{Use Hierarchy Between Modules}{}% 16
No preview for this file type
No preview for this file type
......@@ -132,18 +132,13 @@ below, which are leaves in the hierarchy tree, are the modules that will
actually be implemented.
\begin{description}
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Hardware-Hiding Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Behaviour-Hiding Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Software Decision Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Graph Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Node Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Unit Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Weapon Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Player Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Game State Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Damage Calculations Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Game Function Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Game Construction Module
\item [\refstepcounter{mnum} \mthemnum \label{mHH}:] Mouse Handler Module
\item [\refstepcounter{mnum} \mthemnum \label{mBH}:] Behaviour-Hiding Module
\item [\refstepcounter{mnum} \mthemnum \label{mSD}:] Software Decision Module
\item [\refstepcounter{mnum} \mthemnum \label{mIF}:] Input Formatting Module
\item [\refstepcounter{mnum} \mthemnum \label{mOF}:] Output Formatting Module
\item [\refstepcounter{mnum} \mthemnum \label{mM}:] Model Module
\item [\refstepcounter{mnum} \mthemnum \label{mGS}:] Game State Module
\end{description}
......@@ -157,19 +152,12 @@ actually be implemented.
\midrule
{Hardware-Hiding Module} & ~ \\
\midrule
\multirow{7}{0.3\textwidth}{Behaviour-Hiding Module}
& Graph Module\\
& Node Module\\
& Unit Module\\
& Weapon Module\\
& Player Module\\
& Game State Module\\
& Damage Calculations Module\\
\multirow{3}{0.3\textwidth}{Behaviour-Hiding Module}
& Input Formatting Module\\
& Output Formatting Module\\
& Model Module\\
\midrule
\multirow{4}{0.3\textwidth}{Software Decision Module} & Game Module\\
& Game Function Module\\
& Game Construction Module\\
& Mouse Handler Module\\
\multirow{1}{0.3\textwidth}{Software Decision Module} & Game State Module\\
\bottomrule
\end{tabular}
\caption{Module Hierarchy}
......@@ -183,21 +171,17 @@ The design of the system is intended to satisfy the requirements developed in
the SRS. In this stage, the system is decomposed into modules. The connection
between requirements and modules is listed in Table \ref{TblRT}.
\section{Module Decomposition} \label{SecMD}
Modules are decomposed according to the principle of ``information hiding''
proposed by \citet{ParnasEtAl1984}. The \emph{Secrets} field in a module
decomposition is a brief statement of the design decision hidden by the
module. The \emph{Services} field specifies \emph{what} the module will do
without documenting \emph{how} to do it. For each module, a suggestion for the
implementing software is given under the \emph{Implemented By} title. If the
entry is \emph{OS}, this means that the module is provided by the operating
system or by standard programming language libraries. Also indicate if the
Modules are decomposed according to the principle of ``information hiding'' proposed by \citet{ParnasEtAl1984}. The \emph{Secrets} field in a module decomposition is a brief statement of the design decision hidden by the module. The \emph{Services} field specifies \emph{what} the module will do
without documenting \emph{how} to do it. For each module, a suggestion for the implementing software is given under the \emph{Implemented By} title. If the
entry is \emph{OS}, this means that the module is provided by the operating system or by standard programming language libraries. Also indicate if the
module will be implemented specifically for the software.
Only the leaf modules in the
hierarchy have to be implemented. If a dash (\emph{--}) is shown, this means
that the module is not a leaf and will not have to be implemented. Whether or
not this module is implemented depends on the programming language
selected.
\subsection{Hardware Hiding Modules (\mref{mHH})}
\subsection{Hardware Hiding Module}
\begin{description}
\item[Secrets:]The data structure and algorithm used to implement the virtual
hardware.
......@@ -206,36 +190,45 @@ selected.
software. So, the system can use it to display outputs or to accept inputs.
\item[Implemented By:] OS
\end{description}
\subsection{Behaviour-Hiding Module}
\subsection{Behaviour-Hiding Module(\mref{mBH})}
\begin{description}
\item[Secrets:]The contents of the required behaviours.
\item[Secrets:]The behavioural process of the software.
\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
hardware-hiding module and the software decision module. The programs in this
module will need to change if there are changes in the SRS.
\item[Implemented By:] --
the system as specified in the software requirements specification (SRS) document. This module serves as a representation of the software decision module. The programs in this module will need to be modified if there are changes in the SRS document.
\item[Implemented By:] \mref{mIF}, \mref{mOF} , \mref{mC}.
\end{description}
\subsubsection{Input Formatting Module (\mref{mIF})}
\begin{description}
\item[Secrets:]The format and structure of the input data that manipulates the software.
\item[Services:]Converts the input data into the data structure used by the Game State Module.
\item[Implemented By:] MouseHandler.cs, Button.cs
\end{description}
\subsubsection{Input Format Module (\mref{mInput})}
\subsubsection{Output Formatting Module (\mref{mOF})}
\begin{description}
\item[Secrets:]The format and structure of the input data.
\item[Services:]Converts the input data into the data structure used by the
input parameters module.
\item[Implemented By:] [Your Program Name Here]
\item[Secrets:] The result of input data.
\item[Services:] Receives data from the Game State Module, and updates the software accordingly.
\item[Implemented By:] DamageCalculations.cs, GameFunction.cs
\end{description}
\subsubsection{Model Module (\mref{mM})}
\begin{description}
\item[Secrets:] The design decisions that implement the structure of the software.
\item[Services:]Includes data structures that update based on user interaction.
\item[Implemented By:] Game.cs, Graph.cs, Node.cs, Unit.cs, Weapon.cs, Player.cs
\end{description}
\subsubsection{Etc.}
\subsection{Software Decision Module}
\begin{description}
\item[Secrets:] The design decision based on mathematical theorems, physical
facts, or programming considerations. The secrets of this module are
\emph{not} described in the SRS.
\item[Services:] Includes data structure and algorithms used in the system that
do not provide direct interaction with the user.
\item[Secrets:] The design decisions that determine \emph{how} the software updates.
\item[Services:] Includes data structure used in the system that do not directly interact with the user.
% Changes in these modules are more likely to be motivated by a desire to
% improve performance than by externally imposed changes.
\item[Implemented By:] --
\item[Implemented By:] \mref{mGS}
\end{description}
\subsubsection{Game State Module}
\begin{description}
\item[Secrets:]The design decisions that hold all possible states of the software.
\item[Services:]Retrieves user input and updates the current state of the software. From here, the module sends the current state to the output formatting module.
\item[Implemented By:]GameState.cs
\end{description}
\subsubsection{Etc.}
\section{Traceability Matrix} \label{SecTM}
This section shows two traceability matrices: between the modules and the
requirements and between the modules and the anticipated changes.
......
......@@ -2,14 +2,15 @@
\contentsline {section}{\numberline {2}Anticipated and Unlikely Changes}{2}{section.2}
\contentsline {subsection}{\numberline {2.1}Anticipated Changes}{2}{subsection.2.1}
\contentsline {subsection}{\numberline {2.2}Unlikely Changes}{2}{subsection.2.2}
\contentsline {section}{\numberline {3}Module Hierarchy}{3}{section.3}
\contentsline {section}{\numberline {4}Connection Between Requirements and Design}{4}{section.4}
\contentsline {section}{\numberline {5}Module Decomposition}{4}{section.5}
\contentsline {subsection}{\numberline {5.1}Hardware Hiding Modules (M\ref {mHH})}{5}{subsection.5.1}
\contentsline {subsection}{\numberline {5.2}Behaviour-Hiding Module}{5}{subsection.5.2}
\contentsline {subsubsection}{\numberline {5.2.1}Input Format Module (M\ref {mInput})}{5}{subsubsection.5.2.1}
\contentsline {subsubsection}{\numberline {5.2.2}Etc.}{6}{subsubsection.5.2.2}
\contentsline {subsection}{\numberline {5.3}Software Decision Module}{6}{subsection.5.3}
\contentsline {subsubsection}{\numberline {5.3.1}Etc.}{6}{subsubsection.5.3.1}
\contentsline {section}{\numberline {6}Traceability Matrix}{6}{section.6}
\contentsline {section}{\numberline {7}Use Hierarchy Between Modules}{7}{section.7}
\contentsline {section}{\numberline {3}Module Hierarchy}{2}{section.3}
\contentsline {section}{\numberline {4}Connection Between Requirements and Design}{3}{section.4}
\contentsline {section}{\numberline {5}Module Decomposition}{3}{section.5}
\contentsline {subsection}{\numberline {5.1}Hardware Hiding Module}{4}{subsection.5.1}
\contentsline {subsection}{\numberline {5.2}Behaviour-Hiding Module(M\ref {mBH})}{4}{subsection.5.2}
\contentsline {subsubsection}{\numberline {5.2.1}Input Formatting Module (M\ref {mIF})}{4}{subsubsection.5.2.1}
\contentsline {subsubsection}{\numberline {5.2.2}Output Formatting Module (M\ref {mOF})}{4}{subsubsection.5.2.2}
\contentsline {subsubsection}{\numberline {5.2.3}Model Module (M\ref {mM})}{4}{subsubsection.5.2.3}
\contentsline {subsection}{\numberline {5.3}Software Decision Module}{5}{subsection.5.3}
\contentsline {subsubsection}{\numberline {5.3.1}Game State Module}{5}{subsubsection.5.3.1}
\contentsline {section}{\numberline {6}Traceability Matrix}{5}{section.6}
\contentsline {section}{\numberline {7}Use Hierarchy Between Modules}{6}{section.7}
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