add sequence diagram showing communication for generating recommendations

This commit is contained in:
hannes.kuchelmeister
2020-03-27 14:49:50 +01:00
parent 6dd9879f7e
commit af62f14fa4
3 changed files with 52 additions and 1 deletions

View File

@@ -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.
\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.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.
@@ -49,6 +49,18 @@ Another viable solution is adding the recommendation functionality into M.Core.
\label{fig:DesignImplementation:UserInterface}
\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}
\section{Software Quality}

View File

@@ -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