From fb08993361ac067e709644463a85dbdf7fbe0596 Mon Sep 17 00:00:00 2001
From: Bibi Aysha Enaitullah
<bibi_aysha.enaitullah@student.reutlingen-university.de>
Date: Wed, 25 Jun 2025 10:13:16 +0000
Subject: [PATCH] Klassendiagram stand 25.06
---
Klasssendiagram Stand 25.06 | 113 ++++++++++++++++++++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 Klasssendiagram Stand 25.06
diff --git a/Klasssendiagram Stand 25.06 b/Klasssendiagram Stand 25.06
new file mode 100644
index 0000000..ae20f15
--- /dev/null
+++ b/Klasssendiagram Stand 25.06
@@ -0,0 +1,113 @@
+@startuml
+
+ ' MODEL LAYER
+ package "Model Layer" {
+ class Project {
+ + ObjectID ID
+ + UUID UUID
+ + String ProjectID
+ + String Shortcut
+ + String Name
+ + String Description
+ + Date StartDate
+ + Date EndDate
+ + UUID CreatedBy
+ + Date CreatedAt
+ + Date UpdatedAt
+ + ProjectToUpdate ToUpdate()
+ }
+
+ class RequirementSummary {
+ + ObjectID ID
+ + UUID UUID
++ String RequirementID
+ + String Shortcut
+ + String Condition
+ + String System
+ + String Requirement
+ + String Status
+ + Date CreatedAt
+ }
+
+ class ProjectToCreate {
+ + String ProjectID
+ + String Shortcut
+ + String Name
+ + String Description
+ + Date StartDate
+ + Date EndDate
+ + UUID CreatedBy
+ }
+
+ class ProjectToUpdate {
+ + ObjectID ID
+ + String Shortcut
+ + String Name
+ + String Description
+ + Date StartDate
+ + Date EndDate
+ }
+
+ class ProjectWithRequirements {
+ + Project *Project
+ + List<RequirementSummary> Requirements
+ + int RequirementCount
+ }
+ }
+
+ ' SERVICE LAYER
+ package "Service Layer" {
+ class ProjectService {
+ - ProjectRepository repo
+
+ + Project CreateProject(ProjectToCreate)
+ + List<Project> GetProjectsByUser(UUID)
+ + ProjectWithRequirements GetProjectWithRequirements(ObjectID)
+ + Project UpdateProject(ProjectToUpdate)
+ + void DeleteProject(ObjectID)
+ + List<Project> SearchProjects(String, UUID)
+ + ProjectWithRequirements FindWithRequirements(ObjectID)
+ + Project Update(ProjectToUpdate)
+ + void Delete(ObjectID)
+ + List<Project> Search(String, UUID)
+ + void CloneRequirement(ObjectID, String, String)
+ }
+
+ class MongoProjectRepository {
+ - Database db
+
+ + Project Create(ProjectToCreate)
+ + Project FindByID(ObjectID)
+ + Project FindByProjectID(String)
+ + Project FindByShortcut(String)
+ + List<Project> FindByCreatedBy(UUID)
+ + ProjectWithRequirements FindWithRequirements(ObjectID)
+ + Project Update(ProjectToUpdate)
+ + void Delete(ObjectID)
+ + List<Project> Search(String, UUID)
+ + void CloneRequirement(ObjectID, String, String)
+ }
+ }
+
+ ' INFRASTRUCTURE LAYER
+ package "Infrastructure Layer" {
+ class MongoManager {
+ - Client client
+ - Database db
+
+ + Database GetDatabase()
+ + void Close()
+ }
+ }
+
+ ' RELATIONSHIPS
+ Project "1" -- "0.." RequirementSummary : contains
+ ProjectWithRequirements *-- "1" Project : aggregates
+ ProjectWithRequirements -- "0.." RequirementSummary : aggregates
+ ProjectService --> ProjectRepository : uses
+ MongoProjectRepository ..|> ProjectRepository : implements
+ MongoManager ..> MongoProjectRepository : provides database
+ ProjectToCreate ..> Project : creates
+ ProjectToUpdate ..> Project : updates
+
+ @enduml
--
GitLab