Skip to content

Commit 9496cf0

Browse files
add UML diagrams in bg
1 parent aa7e057 commit 9496cf0

File tree

93 files changed

+2563
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+2563
-0
lines changed
96.2 KB
Loading
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
@startuml
2+
left to right direction
3+
skinparam packageStyle rectangle
4+
5+
actor Contributor
6+
actor "Core Maintainer" as Maintainer
7+
actor "GitHub CI Server" as CI
8+
actor "NuGet Gallery" as NuGet
9+
10+
rectangle "Testimize Development Workflow" {
11+
usecase UC1 as "Клониране на репозиторито"
12+
usecase UC2 as "Създаване на feature branch"
13+
usecase UC3 as "Разработка и локални тестове"
14+
usecase UC4 as "Push към remote branch"
15+
usecase UC5 as "Създаване на Pull Request"
16+
usecase UC6 as "Одобрение на PR"
17+
usecase UC7 as "Merge към main"
18+
usecase UC8 as "CI билд и тестове (ci.yml)"
19+
usecase UC9 as "Създаване на нов git tag версия"
20+
usecase UC10 as "Одобрение на release"
21+
usecase UC11 as "Публикация в NuGet (publish-nuget.yml)"
22+
}
23+
24+
Contributor --> UC1
25+
Contributor --> UC2
26+
Contributor --> UC3
27+
Contributor --> UC4
28+
Contributor --> UC5
29+
UC5 --> UC6 : <<include>>
30+
UC6 --> UC7
31+
UC7 --> CI : "Trigger CI"
32+
CI --> UC8
33+
CI --> UC11
34+
35+
Contributor --> UC9
36+
UC9 --> UC10 : <<include>>
37+
UC10 --> UC11
38+
UC11 --> NuGet : "Публикуване на пакет"
39+
40+
Maintainer --> UC6
41+
Maintainer --> UC10
42+
@enduml
39.6 KB
Loading

DiagramsBG/1. Use Case Diagrams/usecase-diagram2.txt

Whitespace-only changes.
159 KB
Loading

DiagramsBG/1. Use Case Diagrams/usecase-diagram3.txt

Whitespace-only changes.
35.9 KB
Loading

DiagramsBG/1. Use Case Diagrams/usecase-diagram4.txt

Whitespace-only changes.
157 KB
Loading
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
'https://editor.plantuml.com/
2+
'Клас Диаграма 1: Как работи HybridArtificialBeeColonyTestCaseGenerator
3+
4+
@startuml
5+
' === Визуален стил ===
6+
skinparam classAttributeIconSize 0
7+
skinparam interfaceBackgroundColor #D0E4F5
8+
skinparam classBackgroundColor White
9+
skinparam classBorderColor Black
10+
skinparam interfaceBorderColor Black
11+
skinparam shadowing false
12+
skinparam linetype ortho
13+
skinparam roundcorner 0
14+
skinparam nodesep 2.0
15+
skinparam ranksep 2.5
16+
top to bottom direction
17+
18+
' === Интерфейси ===
19+
interface ITestCaseGenerator {
20+
+GenerateTestCases(parameters: List<object>): HashSet<TestCase>
21+
}
22+
23+
interface ITestCaseEvaluator {
24+
+EvaluatePopulation(population: HashSet<TestCase>): void
25+
+Evaluate(testCase: TestCase, evaluatedTestCases: HashSet<TestCase>): double
26+
+EvaluatePopulationToDictionary(population: HashSet<TestCase>): Dictionary<TestCase, double>
27+
}
28+
29+
interface ITestCaseOutputGenerator {
30+
+GenerateOutput(methodName: string, testCases: IEnumerable<TestCase>, testCaseCategory: TestCaseCategory): void
31+
}
32+
33+
' === Абстрактна база ===
34+
abstract class TestCaseOutputGenerator implements ITestCaseOutputGenerator {
35+
+GenerateOutput(methodName: string, testCases: IEnumerable<TestCase>, testCaseCategory: TestCaseCategory): void
36+
}
37+
38+
' === Имплементации на генератори ===
39+
class PairwiseTestCaseGenerator implements ITestCaseGenerator{
40+
+GenerateTestCases(parameters: List<object>): HashSet<TestCase>
41+
}
42+
43+
class CombinatorialTestCaseGenerator implements ITestCaseGenerator {
44+
+GenerateTestCases(parameters: List<object>): HashSet<TestCase>
45+
}
46+
47+
' === Имплементации на Output ===
48+
49+
class JsonTestCaseOutputGenerator extends TestCaseOutputGenerator{
50+
+GenerateOutput(methodName: string, testCases: IEnumerable<TestCase>, testCaseCategory: TestCaseCategory): void
51+
}
52+
53+
class CsvTestCaseOutputGenerator extends TestCaseOutputGenerator{
54+
+GenerateOutput(methodName: string, testCases: IEnumerable<TestCase>, testCaseCategory: TestCaseCategory): void
55+
}
56+
57+
' === Имплементация на Evaluator ===
58+
class TestCaseEvaluator implements ITestCaseEvaluator {
59+
-_allowMultipleInvalidInputs: bool
60+
+EvaluatePopulation(population: HashSet<TestCase>): void
61+
+Evaluate(testCase: TestCase, evaluatedTestCases: HashSet<TestCase>): double
62+
+EvaluatePopulationToDictionary(population: HashSet<TestCase>): Dictionary<TestCase, double>
63+
}
64+
65+
' === ABC Генератор ===
66+
class HybridArtificialBeeColonyTestCaseGenerator {
67+
-_config: ABCGenerationSettings
68+
-_testCaseEvaluator: ITestCaseEvaluator
69+
-_testCaseGenerator: ITestCaseGenerator
70+
-_outputGenerator: ITestCaseOutputGenerator
71+
-_random: Random
72+
-_initialPopulationSize: int
73+
-_elitCount: int
74+
+GenerateTestCases(methodName: string, parameters: List<object>, testCaseCategory: TestCaseCategory): HashSet<TestCase>
75+
+GetGeneratedTestCases(parameters: List<object>): HashSet<TestCase>
76+
-RunABCAlgorithm(parameters: List<object>): HashSet<TestCase>
77+
}
78+
79+
HybridArtificialBeeColonyTestCaseGenerator --> ITestCaseGenerator : uses
80+
HybridArtificialBeeColonyTestCaseGenerator --> ITestCaseEvaluator : uses
81+
HybridArtificialBeeColonyTestCaseGenerator --> ITestCaseOutputGenerator : uses
82+
HybridArtificialBeeColonyTestCaseGenerator --> ABCGenerationSettings : has
83+
84+
' === Конфигурация ===
85+
class ABCGenerationSettings {
86+
+TotalPopulationGenerations: int
87+
+MutationRate: double
88+
+FinalPopulationSelectionRatio: double
89+
+EliteSelectionRatio: double
90+
+OnlookerSelectionRatio: double
91+
+ScoutSelectionRatio: double
92+
+EnableOnlookerSelection: bool
93+
+EnableScoutPhase: bool
94+
+EnforceMutationUniqueness: bool
95+
+StagnationThresholdPercentage: double
96+
+CoolingRate: double
97+
+AllowMultipleInvalidInputs: bool
98+
+Seed: int
99+
+TestCaseGenerator: ITestCaseGenerator
100+
+TestCaseEvaluator: ITestCaseEvaluator
101+
+OutputGenerator: ITestCaseOutputGenerator
102+
}
103+
104+
@enduml

0 commit comments

Comments
 (0)