mirror of
https://github.com/13hannes11/bachelor_thesis.git
synced 2024-09-04 01:11:00 +02:00
add sequence diagram showing communication for generating recommendations
This commit is contained in:
Binary file not shown.
@@ -13,7 +13,7 @@ This thesis is looking at a recommendation system for a configurator. Developing
|
|||||||
He only makes changes to M.Customer which is renamed to M.Collab-Customer and introduces a new component M.Collab.
|
He only makes changes to M.Customer which is renamed to M.Collab-Customer and introduces a new component M.Collab.
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
\item[M.Core] provides the base of the configurator. It checks the configuration against all rules in the database, provides possible alternatives if a change invalidates other parts of a configuration. The system relies on a CSP solver for validation and suggestion of alternatives.
|
\item[M.Core] provides the base of the configurator. It checks the configuration against all rules in the database, provides possible alternatives if a change invalidates other parts of a configuration. The system relies on a CSP solver for valida tion and suggestion of alternatives.
|
||||||
\item[M.Model] is the editor to create products and rules. These rules can then be uploaded to M.Core.
|
\item[M.Model] is the editor to create products and rules. These rules can then be uploaded to M.Core.
|
||||||
\item[M.Collab] is a node.js server application that communicates with M.Core via REST-API and with M.Collab-Customer via WebSocket. It sits in between M.Collab-Customer and M.Core and handles all processing regarding collaborative configuration.
|
\item[M.Collab] is a node.js server application that communicates with M.Core via REST-API and with M.Collab-Customer via WebSocket. It sits in between M.Collab-Customer and M.Core and handles all processing regarding collaborative configuration.
|
||||||
\item[M.Collab-Customer] a modified version of M.Customer that does all communication via WebSocket and does communicate with M.Collab instead of M.Core. M.Customer is the customer facing component. It allows a customer to configure a product or solution.
|
\item[M.Collab-Customer] a modified version of M.Customer that does all communication via WebSocket and does communicate with M.Collab instead of M.Core. M.Customer is the customer facing component. It allows a customer to configure a product or solution.
|
||||||
@@ -49,6 +49,18 @@ Another viable solution is adding the recommendation functionality into M.Core.
|
|||||||
\label{fig:DesignImplementation:UserInterface}
|
\label{fig:DesignImplementation:UserInterface}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
When a recommendation is supposed to be generated M.Collab sends a REST request to M.Recommend (see \autoref{fig:DesignImplementation:SequenceDiagramRecommendation}). This request contains preferences and the current configuration. M.Recommend generates a recommendation based on the received data. The recommended finished configuration is now send via broadcast over WebSocket to all M.Customer clients.
|
||||||
|
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[width=1\textwidth]{./figures/50_design_and_implementation/sequence_diagram_generating_recommendation.pdf}
|
||||||
|
\caption{A sequence diagram showing the recommendation process.}
|
||||||
|
\label{fig:DesignImplementation:SequenceDiagramRecommendation}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Scoring Functions}
|
\subsection{Scoring Functions}
|
||||||
|
|
||||||
\section{Software Quality}
|
\section{Software Quality}
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
@startuml
|
||||||
|
skinparam monochrome true
|
||||||
|
skinparam SequenceBoxBackgroundColor #ffffff
|
||||||
|
skinparam ParticipantPadding 5
|
||||||
|
skinparam shadowing false
|
||||||
|
hide footbox
|
||||||
|
|
||||||
|
title generating a recommendation
|
||||||
|
|
||||||
|
box "Client B"
|
||||||
|
participant "M.Customer B"
|
||||||
|
end box
|
||||||
|
|
||||||
|
box "Client A"
|
||||||
|
participant "M.Customer A"
|
||||||
|
end box
|
||||||
|
|
||||||
|
box "Server"
|
||||||
|
participant M.Collab
|
||||||
|
participant M.Recommend
|
||||||
|
end box
|
||||||
|
|
||||||
|
activate "M.Customer A"
|
||||||
|
activate "M.Customer B"
|
||||||
|
activate M.Collab
|
||||||
|
|
||||||
|
M.Collab -> M.Recommend : get_recommendation(configuration, preferences)
|
||||||
|
activate M.Recommend
|
||||||
|
M.Collab <-- M.Recommend : return recommendedFeatures
|
||||||
|
deactivate M.Recommend
|
||||||
|
|
||||||
|
par
|
||||||
|
M.Collab --> "M.Customer A" : broadcast (recommendedFeatures)
|
||||||
|
M.Collab --> "M.Customer B" : broadcast (recommendedFeatures)
|
||||||
|
end
|
||||||
|
@enduml
|
||||||
Reference in New Issue
Block a user