mirror of
https://github.com/13hannes11/bachelor_thesis.git
synced 2024-09-04 01:11:00 +02:00
add class diagram
This commit is contained in:
Binary file not shown.
@@ -63,9 +63,14 @@ The choice among database systems has to be made between \emph{non-relational} a
|
|||||||
\section{Scoring Functions}
|
\section{Scoring Functions}
|
||||||
\label{sec:DesignImplementation:ScroingFunctions}
|
\label{sec:DesignImplementation:ScroingFunctions}
|
||||||
|
|
||||||
Scoring functions are implemented in a modular fashion. There are different types of scoring functions. Some are meant for evaluating user preferences (and inherit from the class \emph{PreferenceScoringFunction}), others are meant for penalising changes in the current configuration state and therefore inherit from \emph{ConfigurationPenalty}. The last type of scoring function is a composite scoring function that consists of one or multiple scoring functions and combines their scores to one. It uses the \emph{composite design pattern} \cite{gamma2015design}. These functions allow ´the flexible combination of functions and, in addition due to their underlying structure they can use similar components. For example, preference scoring functions use a \emph{pipeline} \cite{gamma2015design} to first convert preferences to a list of values. This is done using \emph{PreferenceToListFunction}. A list can be modified with a \emph{ListToListFunction}. This step is optional. The last mandatory step is to convert the list to a value using \emph{ListToValueFunction}. After this step, the value can be modified further, for example with a threshold function or any other function. All these components allow the easy and quick creation of new scoring functions. A scoring function factory is used to assemble a scoring function based on input parameters. This provides flexibility for quickly implementing new types of scoring functions.
|
\autoref{fig:DesignImplementation:ClassDiagramScoringFunctions}) shows a simplified class diagram for scoring functions which are implemented in a modular fashion. There are different types of scoring functions. Some are meant for evaluating user preferences (and inherit from the class \texttt{PreferenceScoringFunction}), others are meant for penalising changes in the current configuration state and therefore inherit from \texttt{ConfigurationPenalty}. The last type of scoring function is \texttt{ReduceScoringFunction} that consists of one or multiple scoring functions and combines their scores to one. It uses the \emph{composite design pattern} \cite{gamma2015design}. These functions allow ´the flexible combination of functions and, in addition due to their underlying structure they can use similar components. For example, preference scoring functions use a \emph{pipeline} \cite{gamma2015design} to first convert preferences to a list of values. This is done using \texttt{PreferenceToListFunction}. A list can be modified with a \texttt{ListToListFunction}. This step is optional. The last mandatory step is to convert the list to a value using \texttt{ListToValueFunction}. After this step, the value can be modified further, for example with a threshold function or any other function. All these components allow the easy and quick creation of new scoring functions. A factory (\texttt{ScoringFunctionFactory}) is used to assemble a scoring function based on input parameters. This provides flexibility for quickly implementing new types of scoring functions.
|
||||||
|
|
||||||
\todo[]{add class diagramm?}
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/50_design_and_implementation/class_diagram_scoring_functions_simplified.pdf}
|
||||||
|
\caption[Class Diagram: Scoring Functions]{A simplified class diagram of the classes and interface related to scoring functions. }
|
||||||
|
\label{fig:DesignImplementation:ClassDiagramScoringFunctions}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
\section{Technologies}
|
\section{Technologies}
|
||||||
|
|||||||
Reference in New Issue
Block a user