diff --git a/doc/ClassDiagramDraft.uxf b/doc/ClassDiagramDraft.uxf index 1a1da0a..b2cad2c 100644 --- a/doc/ClassDiagramDraft.uxf +++ b/doc/ClassDiagramDraft.uxf @@ -1,92 +1,92 @@ -10UMLClass7203010030MainUMLClass1240250300140<<Interface>> -PlantDatabase --- -+ getPlantList(zone: HardinessZone): List<Plant> -+ getPlant(id: long): Optional<Plant>UMLClass94058022040TaskListControllerUMLClass124010300180<<Record>> -Plant --- -+ id: long -+ name: String -+ description: String -+ spacing: int -+ lifecycle: List<GrowthPhase> --- -+ calculateStartDate(harvestDate: Date): Date -+ generateTasks() -UMLClass1210580210120TaskListModel --- -- tasks: ListProperty<Task> -- taskDb: TaskDatabase --- -+ getTask(id: long): Optional<Task> -+ saveTask(task: Task) -+ removeTask(task: Task)UMLClass590560250110GardenPlanModel --- -- tasks: ListProperty<Task> -- gardenPlan: GardenPlan --- -+ savePlanting(planting: UserPlanting) -+ removePlanting(planting: UserPlanting)UMLClass34055018080GardenPlanControllerUMLClass1660720490240Task --- -+ id: long -+ name: String {readOnly} -+ description: String {readOnly} -+ startDate: Date {readOnly} -+ isReadOnly: boolean {readOnly} -- interval: int -- endDate: Date --- -+ Task(name: String, description: String, startDate: String, isReadOnly: boolean): Task -+ withInterval(interval: int): Task -+ withEndDate(endDate: Date): Task -+ withId(id: long): Task --- -+ getInterval(): Optional<int> -+ getEndDate(): Optional<Date>UMLClass1170760280140<<Interface>> -TaskDatabase --- -+ getTaskList(start: Date, end: Date): List<Task> -+ saveTask(Task task) throws ??Exception -+ removeTask(Task task) throws ??ExceptionUMLClass780310100100MainWindowUMLClass440180180130MainWindowControllerUMLClass1340107021070NotificationService --- -- taskDb: TaskDatabase --- -+ tick()UMLClass16401210240140<<Interface>> -WeatherProvider --- -+ getWeatherForecast: WeatherForecastUMLClass16201040400100WeatherService --- -- weatherPovider: WeatherProvider -- taskDb: TaskDatabase --- -+ WeatherService(provider: WeatherProvider, taskDb: TaskDatabase) -- updateTasks()UMLClass162010260150<<Record>> -GrowthPhase --- -+ startDate: Date -+ endDate: Date -+ type: GrowthPhaseType - -Relation15308011030lt=<->>>>>90;10;10;10Text420019070Note: --- -{final, readOnly} omitted on public data fields in <<Record>> Entities for clarity -style=wordwrapRelation144082024030lt=<.220;10;10;10Relation13006903090lt=<.10;70;10;10UMLClass600980210120<<Record>> -UserPlanting --- -+ plantId: long -+ asSowing: boolean -+ startDate: Date -+ area: intRelation13801803090lt=<.10;10;10;70UMLClass195010140120<<Enumeration>> -GrowthPhaseType --- -SOW -PLANT -HARVESTRelation18707010030lt=<->>>>80;10;10;10Relation11505908030lt=<->>>>60;10;10;10Relation70089030110lt=<.10;90;10;10Relation51058010030lt=<->>>>80;10;10;10UMLClass570760280140<<Interface>> -GardenPlan --- -+ getPlantings(): List<UserPlanting> -+ addPlanting(plantId: long, startDate) -+ savePlanting(planting: UserPlanting) -Relation69066030120lt=<.10;100;10;10UMLClass6039018080PlantingCell -{extends ListCell<>}UMLClass054029080PlantingCellFactory +10UMLClass7203010030MainUMLClass1240250300140<<Interface>> +PlantDatabase +-- ++ getPlantList(zone: HardinessZone): List<Plant> ++ getPlant(id: long): Optional<Plant>UMLClass94058022040TaskListControllerUMLClass124010300180<<Record>> +Plant +-- ++ id: long ++ name: String ++ description: String ++ spacing: int ++ lifecycle: List<GrowthPhase> +-- ++ calculateStartDate(harvestDate: Date): Date ++ generateTasks() +UMLClass1210580210120TaskListModel +-- +- tasks: ListProperty<Task> +- taskDb: TaskDatabase +-- ++ getTask(id: long): Optional<Task> ++ saveTask(task: Task) ++ removeTask(task: Task)UMLClass590560250110GardenPlanModel +-- +- tasks: ListProperty<Task> +- gardenPlan: GardenPlan +-- ++ savePlanting(planting: UserPlanting) ++ removePlanting(planting: UserPlanting)UMLClass34055018080GardenPlanControllerUMLClass1660720490240Task +-- ++ id: long ++ name: String {readOnly} ++ description: String {readOnly} ++ startDate: Date {readOnly} ++ isReadOnly: boolean {readOnly} +- interval: int +- endDate: Date +-- ++ Task(name: String, description: String, startDate: String, isReadOnly: boolean): Task ++ withInterval(interval: int): Task ++ withEndDate(endDate: Date): Task ++ withId(id: long): Task +-- ++ getInterval(): Optional<int> ++ getEndDate(): Optional<Date>UMLClass1170760280140<<Interface>> +TaskDatabase +-- ++ getTaskList(start: Date, end: Date): List<Task> ++ saveTask(Task task) throws ??Exception ++ removeTask(Task task) throws ??ExceptionUMLClass780310100100MainWindowUMLClass440180180130MainWindowControllerUMLClass1340107021070NotificationService +-- +- taskDb: TaskDatabase +-- ++ tick()UMLClass16401210240140<<Interface>> +WeatherProvider +-- ++ getWeatherForecast: WeatherForecastUMLClass16201040400100WeatherService +-- +- weatherPovider: WeatherProvider +- taskDb: TaskDatabase +-- ++ WeatherService(provider: WeatherProvider, taskDb: TaskDatabase) +- updateTasks()UMLClass162010260150<<Record>> +GrowthPhase +-- ++ startDate: Date ++ endDate: Date ++ type: GrowthPhaseType + +Relation15308011030lt=<->>>>>90;10;10;10Text420019070Note: +-- +{final, readOnly} omitted on public data fields in <<Record>> Entities for clarity +style=wordwrapRelation144082024030lt=<.220;10;10;10Relation13006903090lt=<.10;70;10;10UMLClass600980210120<<Record>> +UserPlanting +-- ++ plantId: long ++ asSowing: boolean ++ startDate: Date ++ area: intRelation13801803090lt=<.10;10;10;70UMLClass195010140120<<Enumeration>> +GrowthPhaseType +-- +SOW +PLANT +HARVESTRelation18707010030lt=<->>>>80;10;10;10Relation11505908030lt=<->>>>60;10;10;10Relation70089030110lt=<.10;90;10;10Relation51058010030lt=<->>>>80;10;10;10UMLClass570760280140<<Interface>> +GardenPlan +-- ++ getPlantings(): List<UserPlanting> ++ addPlanting(plantId: long, startDate) ++ savePlanting(planting: UserPlanting) +Relation69066030120lt=<.10;100;10;10UMLClass6039018080PlantingCell +{extends ListCell<>}UMLClass054029080PlantingCellFactory {implements Callback<ListView<UserPlanting> >}Relation14046030100lt=<.10;10;10;80Relation1750113030100lt=<.10;80;10;10Relation1350890120200lt=<.10;10;100;180Relation1380890260220lt=<.10;10;240;200UMLClass1090106020050JsonTaskDatabaseRelation118089030190lt=<<-10;10;10;170UMLClass162031020050JsonPlantDatabaseRelation153032011030lt=<<-10;10;90;10UMLClass30080020050JsonGardenPlanRelation49081010030lt=<<-80;10;10;10Relation2805708030lt=<.10;10;60;10Relation850400220200lt=<.200;180;10;10Relation440400390170lt=<.10;150;370;10UMLClass85012016060PlantListControllerRelation7605090280lt=<.70;260;10;10Relation610230190140lt=<.10;10;170;120Relation87017080210lt=<.60;10;10;190UMLClass102029016060PlantListModelRelation1000150110160lt=<.90;140;10;10Relation11703109030lt=<.70;10;10;10 \ No newline at end of file diff --git a/doc/LE02_Unterrichtsaufgabe_Kontextszenario_PM3.docx b/doc/LE02_Unterrichtsaufgabe_Kontextszenario_PM3.docx new file mode 100644 index 0000000..b0bcf8f Binary files /dev/null and b/doc/LE02_Unterrichtsaufgabe_Kontextszenario_PM3.docx differ diff --git a/doc/LE02_Unterrichtsaufgabe_Kontextszenario_PM3_Giavarini,Guler,Hutter,Schenk.pdf b/doc/LE02_Unterrichtsaufgabe_Kontextszenario_PM3_Giavarini,Guler,Hutter,Schenk.pdf new file mode 100644 index 0000000..0f83cc9 Binary files /dev/null and b/doc/LE02_Unterrichtsaufgabe_Kontextszenario_PM3_Giavarini,Guler,Hutter,Schenk.pdf differ diff --git a/doc/LE03_Unterrichtsaufgabe_Anforderungsanalyse2.docx b/doc/LE03_Unterrichtsaufgabe_Anforderungsanalyse2.docx new file mode 100644 index 0000000..b8475c5 Binary files /dev/null and b/doc/LE03_Unterrichtsaufgabe_Anforderungsanalyse2.docx differ diff --git a/doc/LE03_Unterrichtsaufgabe_Anforderungsanalyse_PM3_Giavaphi,Guler,Hutter,Schenk.pdf b/doc/LE03_Unterrichtsaufgabe_Anforderungsanalyse_PM3_Giavaphi,Guler,Hutter,Schenk.pdf new file mode 100644 index 0000000..26c28e4 Binary files /dev/null and b/doc/LE03_Unterrichtsaufgabe_Anforderungsanalyse_PM3_Giavaphi,Guler,Hutter,Schenk.pdf differ diff --git a/doc/LE04_Domänenlogik.docx b/doc/LE04_Domänenlogik.docx new file mode 100644 index 0000000..72a02c3 Binary files /dev/null and b/doc/LE04_Domänenlogik.docx differ diff --git a/doc/LE04_Domänenlogik_V1.pdf b/doc/LE04_Domänenlogik_V1.pdf new file mode 100644 index 0000000..6c793ee Binary files /dev/null and b/doc/LE04_Domänenlogik_V1.pdf differ diff --git a/doc/LE04_Domänenlogik_V1.png b/doc/LE04_Domänenlogik_V1.png new file mode 100644 index 0000000..01f7cde Binary files /dev/null and b/doc/LE04_Domänenlogik_V1.png differ diff --git a/doc/LE04_Domänenlogik_V1.uxf b/doc/LE04_Domänenlogik_V1.uxf new file mode 100644 index 0000000..e69de29 diff --git a/doc/LE04_Domänenlogik_V2.png b/doc/LE04_Domänenlogik_V2.png new file mode 100644 index 0000000..541ef65 Binary files /dev/null and b/doc/LE04_Domänenlogik_V2.png differ diff --git a/doc/LE04_Domänenlogik_V2.uxf b/doc/LE04_Domänenlogik_V2.uxf new file mode 100644 index 0000000..e69de29 diff --git a/doc/SSD UC1.uxf b/doc/SSD UC1.uxf new file mode 100644 index 0000000..e69de29 diff --git a/doc/plant_db-erm.uxf b/doc/plant_db-erm.uxf index 9983ebf..b454e71 100644 --- a/doc/plant_db-erm.uxf +++ b/doc/plant_db-erm.uxf @@ -1,11 +1,11 @@ -10UMLClass45018016060Plant -valign=centerUMLClass90014016060HardinessZone -valign=centerUMLClass29045016060Lifecycle -valign=centerUMLUseCase3201209040_plant_id_UMLUseCase1404109040_lc_id_UMLUseCase1090709040_zone_id_UMLUseCase430807040nameUMLUseCase5206010040descriptionUMLUseCase28019010040spacingUMLUseCase111015010040nameUMLUseCase24036010040sow_startUMLUseCase36036010040sow_endUMLUseCase49047010040plant_startUMLUseCase46054010040plant_endUMLUseCase36058010040harvest_startUMLUseCase22057010040harvest_endRelation37020010030lt=-10;10;80;10Relation3901308070lt=-13;18;60;50UMLUseCase31011011060layer=0UMLUseCase10806011060layer=0UMLUseCase13040011060layer=0Relation46010060100lt=-13;18;40;80Relation5608040120lt=-13;18;10;100Relation10509010070lt=-73;18;10;50Relation10501509040lt=-63;18;10;20Relation21043011060lt=-83;38;10;10Relation3003907080lt=-43;58;10;10Relation3803904080lt=-13;58;20;10Relation4404607050lt=-13;18;50;30Relation4404806080lt=-13;18;40;60Relation38049040110lt=-13;18;20;90Relation27049090100lt=-63;18;10;80UMLSpecialState72034022090PlantLifecycle -type=decisionRelation88029018090lt=-160;10;10;70UMLUseCase10402809040zone_idUMLUseCase10403309040plant_idUMLUseCase10404009040lc_idUMLUseCase1020270130110layer=0Relation92034014060lt=-120;10;10;40Relation90039016050lt=-140;30;10;10Relation44039034090lt=- -m1=m -m2=m10;60;320;10Relation590230220140lt=- -m1= 1 -m2=m10;10;200;120Relation850190140180lt=- -m1=1 +10UMLClass45018016060Plant +valign=centerUMLClass90014016060HardinessZone +valign=centerUMLClass29045016060Lifecycle +valign=centerUMLUseCase3201209040_plant_id_UMLUseCase1404109040_lc_id_UMLUseCase1090709040_zone_id_UMLUseCase430807040nameUMLUseCase5206010040descriptionUMLUseCase28019010040spacingUMLUseCase111015010040nameUMLUseCase24036010040sow_startUMLUseCase36036010040sow_endUMLUseCase49047010040plant_startUMLUseCase46054010040plant_endUMLUseCase36058010040harvest_startUMLUseCase22057010040harvest_endRelation37020010030lt=-10;10;80;10Relation3901308070lt=-13;18;60;50UMLUseCase31011011060layer=0UMLUseCase10806011060layer=0UMLUseCase13040011060layer=0Relation46010060100lt=-13;18;40;80Relation5608040120lt=-13;18;10;100Relation10509010070lt=-73;18;10;50Relation10501509040lt=-63;18;10;20Relation21043011060lt=-83;38;10;10Relation3003907080lt=-43;58;10;10Relation3803904080lt=-13;58;20;10Relation4404607050lt=-13;18;50;30Relation4404806080lt=-13;18;40;60Relation38049040110lt=-13;18;20;90Relation27049090100lt=-63;18;10;80UMLSpecialState72034022090PlantLifecycle +type=decisionRelation88029018090lt=-160;10;10;70UMLUseCase10402809040zone_idUMLUseCase10403309040plant_idUMLUseCase10404009040lc_idUMLUseCase1020270130110layer=0Relation92034014060lt=-120;10;10;40Relation90039016050lt=-140;30;10;10Relation44039034090lt=- +m1=m +m2=m10;60;320;10Relation590230220140lt=- +m1= 1 +m2=m10;10;200;120Relation850190140180lt=- +m1=1 m2=m120;10;10;160 \ No newline at end of file diff --git a/doc/ssd.png b/doc/ssd.png new file mode 100644 index 0000000..6af0749 Binary files /dev/null and b/doc/ssd.png differ diff --git a/doc/use-case-diagramm.png b/doc/use-case-diagramm.png new file mode 100644 index 0000000..4987196 Binary files /dev/null and b/doc/use-case-diagramm.png differ