Files
bachelor_thesis/Additional_Notes/class_diagram.plantuml
2020-02-03 16:09:35 +01:00

158 lines
3.3 KiB
Plaintext

@startuml
skinparam class {
BackgroundColor White
ArrowColor Grey
BorderColor Black
}
skinparam shadowing false
package API {
class ConfigurationAPI
class RecommenderAPI
class ProductStructureAPI
}
"/config/" ()-- ConfigurationAPI
"/recommender/" ()-- RecommenderAPI
"/product_structure/" ()-- ProductStructureAPI
package Manager {
class RecommendationManager
}
package Model{
class ConfigurationModel
class PreferenceModel
class ProductStructureModel
}
package DAO {
class ConfigurationDAO
class ProductStructureDAO
}
package Scoring {
package List {
class ListFunction
class ListToListFunction
class ListToValueFunction
class Average
class Product
class ForEachValue
}
package Value {
class ValueFunction
class Threshold
}
package Rating {
class RatingToListConverter
class FlatToListConverter
class PerUserToListConverter
class PerFeatureToListConverter
}
class ScoringFunctionFactory{
}
ScoringFunctionFactory --> ScoringFunction : builds
PreferenceScoringFunction --> "1" RatingToListConverter : Stage 1
PreferenceScoringFunction --> "0..*" ListToListFunction : Stage 2
PreferenceScoringFunction --> "1" ListToValueFunction : Stage 3
PreferenceScoringFunction --> "0..*" ValueFunction : Stage 4
ScoringFunction <|-- PreferenceScoringFunction
class PreferenceScoringFunction{
}
ScoringFunction <|-- ConfigurationPenealty
class ConfigurationPenealty{
}
ScoringFunction <|-- SumScoringFunction
SumScoringFunction --* "2..*" ScoringFunction
class SumScoringFunction{
}
abstract class RatingToListConverter {
}
RatingToListConverter <|-- PerFeatureToListConverter
PerFeatureToListConverter --> ListToValueFunction :uses
class PerFeatureToListConverter {
}
RatingToListConverter <|-- PerUserToListConverter
PerUserToListConverter --> ListToValueFunction :uses
class PerUserToListConverter {
}
RatingToListConverter <|-- FlatToListConverter
class FlatToListConverter {
}
abstract class ListFunction {
}
ListFunction <|-- ListToListFunction
abstract class ListToListFunction {
}
ListToListFunction <|-- ForEachValue
ForEachValue --> ValueFunction:uses
class ForEachValue {
}
ListFunction <|-- ListToValueFunction
abstract class ListToValueFunction {
}
ListToValueFunction <|-- Average
class Average {
}
ListToValueFunction <|-- Product
class Product {
}
abstract class ValueFunction{
}
ValueFunction <|-- Threshold
class Threshold {
}
}
RecommendationManager *-- ScoringFunction
ConfigurationAPI --> ConfigurationDAO
ProductStructureAPI --> ProductStructureDAO
RecommenderAPI --> RecommendationManager
RecommendationManager --> ProductStructureDAO
RecommendationManager --> ConfigurationDAO
RecommendationManager --> ScoringFunctionFactory :uses
ConfigurationDAO --> ConfigurationModel
ProductStructureDAO --> ProductStructureModel
@enduml