mirror of
https://github.com/13hannes11/bachelor_thesis.git
synced 2024-09-04 01:11:00 +02:00
move files in dedicated folder
This commit is contained in:
248
Additional_Notes/uml/class_diagram.plantuml
Normal file
248
Additional_Notes/uml/class_diagram.plantuml
Normal file
@@ -0,0 +1,248 @@
|
||||
@startuml
|
||||
|
||||
skinparam class {
|
||||
BackgroundColor White
|
||||
ArrowColor Grey
|
||||
BorderColor Black
|
||||
}
|
||||
skinparam shadowing false
|
||||
|
||||
package API {
|
||||
class ConfigurationAPI {
|
||||
+ get() : JSON
|
||||
+ post(configuration : JSON) : JSON
|
||||
}
|
||||
class RecommenderAPI {
|
||||
+ post(preferences : JSON, configuration : JSON) : JSON
|
||||
}
|
||||
class ProductStructureAPI {
|
||||
+ put(productStructure : JSON) : JSON
|
||||
+ get() : JSON
|
||||
}
|
||||
}
|
||||
"/config/" ()-- ConfigurationAPI
|
||||
"/recommender/" ()-- RecommenderAPI
|
||||
"/product_structure/" ()-- ProductStructureAPI
|
||||
|
||||
package Manager {
|
||||
class RecommendationManager {
|
||||
+ getRecommentdation(strategy : String, preferences : Preferences, current_configuration : Configuration) : Configuration
|
||||
}
|
||||
}
|
||||
|
||||
package Model{
|
||||
package ConfigurationModel {
|
||||
class Configuration {
|
||||
configuration : List<String>
|
||||
}
|
||||
class ConfigurationVariable {
|
||||
|
||||
}
|
||||
Configuration *-- ConfigurationVariable : variables
|
||||
}
|
||||
package PreferenceModel {
|
||||
class Preferences {
|
||||
+ getAllUserPreferences() : List<UserPreferences>
|
||||
+ getAllRatingsByCode(code : String) : List<Ratings>
|
||||
+ getRatingValue(code : String, user : String) : float
|
||||
}
|
||||
class UserPreference {
|
||||
user : String
|
||||
+ getAllRatings() : List<Rating>
|
||||
}
|
||||
class Rating {
|
||||
code : String
|
||||
value : float
|
||||
}
|
||||
Preferences *-- UserPreference : preferences
|
||||
UserPreference *-- Rating : ratings
|
||||
}
|
||||
|
||||
package ProductStructure {
|
||||
class ProductStructureModel {
|
||||
+ get_list_of_features(self) : List<ProductStructureElementModel>
|
||||
+ get_list_of_characteristics(self) : List<ProductStructureElementModel>
|
||||
+ isCharacteristic(code:String) : bool
|
||||
}
|
||||
class ProductStructureElementModel {
|
||||
elementId : String
|
||||
name : String
|
||||
}
|
||||
enum ProductStructureTypeEnum {
|
||||
CHARACTERISTIC
|
||||
FEATURE
|
||||
CLUSTER
|
||||
VARIABLE
|
||||
}
|
||||
|
||||
ProductStructureModel *-- ProductStructureElementModel
|
||||
ProductStructureElementModel <-- ProductStructureElementModel:children
|
||||
ProductStructureElementModel --> ProductStructureTypeEnum:type
|
||||
}
|
||||
}
|
||||
|
||||
package DAO {
|
||||
class ConfigurationDAO {
|
||||
- {static} instance : ConfigurationDAO
|
||||
+ {static} getInstance() : ConfigurationDAO
|
||||
+ getAll_as_objects() : List<Configuration>
|
||||
+ getAll() : JSON
|
||||
+ add(config : JSON)
|
||||
+ exists(config : JSON) : bool
|
||||
}
|
||||
class ProductStructureDAO {
|
||||
- {static} instance : ProductStructureDAO
|
||||
+ {static} getInstance() : ProductStructureDAO
|
||||
+ get_as_objects() : ProductStructureModel
|
||||
+ get() : JSON
|
||||
+ replace(structure : JSON)
|
||||
- get_highest_id() : Integer
|
||||
}
|
||||
}
|
||||
|
||||
package Scoring {
|
||||
|
||||
|
||||
|
||||
package List {
|
||||
class ListFunction
|
||||
class ListToListFunction
|
||||
class ListToValueFunction
|
||||
class Average
|
||||
class Product
|
||||
class ForEachValue
|
||||
}
|
||||
|
||||
package Value {
|
||||
class ValueToValueFunction
|
||||
class Threshold
|
||||
}
|
||||
|
||||
package RatingConverter {
|
||||
class PreferenceToListFunction
|
||||
class FlatToListConverter
|
||||
class PerUserToListConverter
|
||||
class PerFeatureToListConverter
|
||||
}
|
||||
class ScoringFunction {
|
||||
+ calc_score(currentConfiguration : Configuration, preferences : Preferences, toRate : ConfigurationModel) : float
|
||||
}
|
||||
class ScoringFunctionFactory{
|
||||
+ build_scoring_function(params : List<String>) : ScoringFunction
|
||||
}
|
||||
ScoringFunctionFactory --> ScoringFunction : builds
|
||||
|
||||
|
||||
PreferenceScoringFunction --> "1" PreferenceToListFunction : preferenceToListFunction
|
||||
PreferenceScoringFunction --> "0..*" ListToListFunction : listToListFunctions
|
||||
PreferenceScoringFunction --> "1" ListToValueFunction : listToValueFunction
|
||||
PreferenceScoringFunction --> "0..*" ValueToValueFunction : valueToValues
|
||||
|
||||
ScoringFunction <|-- PreferenceScoringFunction
|
||||
class PreferenceScoringFunction{
|
||||
+ calc_score(currentConfiguration : Configuration, preferences : Preferences, toRate : ConfigurationModel) : float
|
||||
}
|
||||
ScoringFunction <|-- ConfigurationPenealty
|
||||
abstract class ConfigurationPenealty{
|
||||
+ ConfigurationPenealty(product_Structure : ProductStructure)
|
||||
}
|
||||
ConfigurationPenealty <|-- RatioConfigurationPenalty
|
||||
class RatioConfigurationPenalty {
|
||||
+ calc_score(currentConfiguration : Configuration, preferences : Preferences, toRate : ConfigurationModel) : float
|
||||
}
|
||||
ConfigurationPenealty <|-- PreferenceWeightedConfigurationPenalty
|
||||
ListToValueFunction --* "1" PreferenceWeightedConfigurationPenalty
|
||||
class PreferenceWeightedConfigurationPenalty {
|
||||
|
||||
}
|
||||
|
||||
ScoringFunction <|-- ReduceScoringFunction
|
||||
ReduceScoringFunction *-- "2..*" ScoringFunction
|
||||
class ReduceScoringFunction{
|
||||
reduce_operator : Operator
|
||||
+ ReduceScoringFunction(scoringFunctions : List<ScoringFunction>, reduceOperator : Operator)
|
||||
+ calc_score(currentConfiguration : Configuration, preferences : Preferences, toRate : ConfigurationModel) : float
|
||||
}
|
||||
|
||||
interface PreferenceToListFunction {
|
||||
+ convertToList(preferences : Preferences, toRate : Configuration) : List<float>:
|
||||
}
|
||||
|
||||
PreferenceToListFunction <|-- PerFeatureToListConverter
|
||||
PerFeatureToListConverter --> ListToValueFunction :uses
|
||||
class PerFeatureToListConverter {
|
||||
+ PerFeatureToListConverter(listToValueFunction : ListToValueFunction)
|
||||
+ convertToList(preferences : Preferences, toRate : Configuration) : List<float>:
|
||||
}
|
||||
PreferenceToListFunction <|-- PerUserToListConverter
|
||||
PerUserToListConverter --> ListToValueFunction :uses
|
||||
class PerUserToListConverter {
|
||||
+ PerUserToListConverter(listToValueFunction : ListToValueFunction)
|
||||
+ convertToList(preferences : Preferences, toRate : Configuration) : List<float>:
|
||||
}
|
||||
PreferenceToListFunction <|-- FlatToListConverter
|
||||
class FlatToListConverter {
|
||||
+ convertToList(preferences : Preferences, toRate : Configuration) : List<float>:
|
||||
}
|
||||
|
||||
interface ListFunction {
|
||||
|
||||
}
|
||||
|
||||
ListFunction <|-- ListToListFunction
|
||||
abstract class ListToListFunction {
|
||||
+ {abstract} applyToList(list : List[float]) : List[float]
|
||||
}
|
||||
|
||||
ListToListFunction <|-- ForEachValue
|
||||
ForEachValue --> ValueToValueFunction:uses
|
||||
class ForEachValue {
|
||||
+ FoEachValue(valueFunction : ValueToValueFunction)
|
||||
+ applyToList(list : List[float]) : List[float]
|
||||
}
|
||||
|
||||
|
||||
ListFunction <|-- ListToValueFunction
|
||||
abstract class ListToValueFunction {
|
||||
+ {abstract} convertToFloat(list : List<float>) : float
|
||||
}
|
||||
|
||||
ListToValueFunction <|-- Average
|
||||
class Average {
|
||||
+ convertToFloat(list : List<float>) : float
|
||||
}
|
||||
ListToValueFunction <|-- Product
|
||||
class Product {
|
||||
+ convertToFloat(list : List<float>) : float
|
||||
}
|
||||
|
||||
interface ValueToValueFunction{
|
||||
+ applyToValue(value : float) : float
|
||||
}
|
||||
|
||||
ValueToValueFunction <|-- Threshold
|
||||
class Threshold {
|
||||
- threshold : float
|
||||
+ Threshold(threshold : float)
|
||||
+ applyToValue(value : float) : float
|
||||
}
|
||||
}
|
||||
|
||||
RecommendationManager *-- ScoringFunction
|
||||
|
||||
ConfigurationAPI --> ConfigurationDAO
|
||||
ProductStructureAPI --> ProductStructureDAO
|
||||
RecommenderAPI --> RecommendationManager
|
||||
|
||||
RecommendationManager --> ProductStructureDAO
|
||||
RecommendationManager --> ConfigurationDAO
|
||||
RecommendationManager --> ScoringFunctionFactory :uses
|
||||
|
||||
|
||||
ConfigurationDAO --> Configuration
|
||||
ProductStructureDAO --> ProductStructureModel
|
||||
|
||||
Scoring --> Model
|
||||
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user