software-architecture.md
Software Architecture {#softwarearchitecture}
At the highest level, the main_ecological_assessment.cpp
calls the function execute()
of the class EcologicalAssessment
, which inherits from the class Module
(available in the library moduleBasics). EcologicalAssessment
provides access to defined strategies. It will run the functions initialize
, run
, update
, report
and save
of the strategy (inherited from the Module
class in moduleBasics). Additionally, the save
function will save and close the aircraft XML file, as well as close the configuration file.
If you're interested in developing this module, reading this chapter could be helpful. It provides some insights into the software structure and shall help you to find a way around
As you have for sure carefully read our (developer guide)[https://unicado.pages.rwth-aachen.de/unicado.gitlab.io/get-involved/developer-installation/], you already know everything about the modularized structure of the UNICADO and the top, intermediate and low level of its modules. So, here is how the ecological_assessment tool looks like:
-
On the top level, nothing fancy happens. Within the src directory, you will find the
main_ecological_assessment.cpp
which executes the module and theecolocical_assessment.cpp
/ecolocical_assessment.h
, where the class EcologicalAssessment, which is inherited from the class Module, is defined. Therefor, it will run the functionsinitialize
,run
,update
,report
andsave
of the strategy. The save function will save and close the aircraft XML file and close the configuration file. In the class definition, you the RuntimeIO pointer is -
The intermediate level is structured by the implemented strategies.
-
On the low level, you'll find all in (basic concepts)[basic-concepts.md] described methods. The folder structure is like the module structure. So the standard_strategy is subdivided into emission_calculation and impact_calulation.
All submodules have a class IOData, which contains all data from acXML and functions to read or write the data. Additionally, it has a member configuration, which provides access to configuration file data. The submodules are executed via the function run
, which is called by the StandardStrategy
. The run
function shall call functions to
- initialize the data,
- perform the calculation routines
- and update the `ecological_assessment_results.xml` (in case there are results that are needed by other parts of *ecological_assessment*).