Написано: 10.12.2022

Диаграммы классов

Фреймы договора страхования ОСОПО

@startuml

class TAPOFrame { 
#TOS_RealObserver FObserver 
#TOS_UpdateViewMap FUpdateViewsMap 
#virtual void MakeUpdateViewsMap() 
+void FrameController() 
+void Prepare() 
+void ShowErrors() 
} 

class TOS_RealObserver { 
} 
class TCalc { 
} 
class TPrint { 
} 
class TRekvisit { 
} 
class TCalcDescriptiopn { 
} 
TAPOFrame -> TOS_RealObserver 

TAPOFrame <|-down- TCalc 
TAPOFrame <|-down- TPrint 
TAPOFrame <|-down- TRekvisit 
TAPOFrame <|-down- TCalcDescriptiopn 
@enduml

Диаграммы классов менеджера задач

@startuml

note As N0 
void __fastcall TaskThread::Execute() { 
// если валиден указатель на задачу (FTask), 
// а также менеджер задач (FTask->Manager), 
// тогда 
// увеличивает счетчик ниток менеджера задач, 
// затем в цикле, пока не сброшен флаг Manager->Executed 
// и не завершилась задача FTask->Finished == false, 
// осуществляет вызов FTask->DoSomeWork() 
// по окончании процесса уменьшает счетчик менеджера задач, 
// устанавливается флаг завершенности (FFinished = true) 
} 
end note 

One <|-down- RealTaskManager 
TaskManager <|-down- RealTaskManager 
Creator <|-down- TaskManagerCreator 
TaskManagerCreator -> RealTaskManager 
TaskManager <-down- Task 
TaskThread <-down- Task 
Task <-up- TaskThread 
Task <|-up- GeneralTask 
TaskThread -down- N0 
One <|-up- GeneralTask 
Creator <|-up- GeneralTaskCreator 
GeneralTaskCreator -> GeneralTask 
TThread <|-left- TaskThread 

abstract class One { 
#{abstract} std::string <b>GetFName</b> () 
} 
abstract class Creator { 
+{abstract} One* <b>CreateOne</b>() 
} 
abstract class TaskManager { 
+ __property bool <b>Executed</b> 
+ __property int <b>ThreadCount</b> 
+{abstract} bool <b>AddTask</b>() 
#{abstract} <b>DoExecute</b>() 
#{abstract} <b>DoStop</b>() 
+ <b>IncThread</b> () 
+ <b>DecThread</b> () 
+ <b>Execute</b> () 
+ <b>Stop</b> () 
} 
class RealTaskManager { 
- std::string <b>GetFName</b> () 
- bool <b>AddTask</b>() 
- <b>DoExecute</b>() 
- <b>DoStop</b>() 
} 
abstract class Task { 
- TaskThread* <b>FThread</b> 
+ __property bool <b>Finished</b> 
+ <b>Start</b> (TaskManager* manager) 
# <b>DoInitThread</b> () 
+ {abstract} <b>DoSomeWork</b> () 
+ __property TaskManager* <b>Manager</b> 
# <b>Finish</b> () 
} 

class TaskThread { 
- Task* <b>FTask</b>; 
+ __property bool <b>Finished</b> 
- <b>Execute</b> () 
} 

class GeneralTask { 
- std::string <b>GetFName</b> () 
- <b>DoInitThread</b> () 
- <b>DoSomeWork</b> () 
} 

class TaskManagerCreator { 
+One* <b>CreateOne</b>() 
} 

class GeneralTaskCreator { 
+One* <b>CreateOne</b>() 
}

@enduml