In essence, this thesis is a testament to the importance of CBSE, FLOSS, and LCSD to software engineering in the field of CSE and MNDS in particular. Overall, the three developed frameworks utilize a total of 19 LCSD-based libraries (Table 7.1), whereas several libraries are utilized more than once. This fact further underlines the benefit of decoupling implementations in general, as implementations can be reused in different contexts.
ViennaFEM | ViennaFVM | ViennaMesh | Sum | |
Boost | 3 | |||
Netgen | 1 | |||
Tetgen | 1 | |||
Triangle | 1 | |||
ViennaCL | 2 | |||
ViennaGrid | 3 | |||
ViennaMath | 2 | |||
Sum | 13 | |||
ViennaMini | ViennaMOS | ViennaX | Sum | |
Boost | 3 | |||
deal.II | 1 | |||
Qt | 1 | |||
ViennaCL | 2 | |||
ViennaFVM | 2 | |||
ViennaGrid | 2 | |||
ViennaMaterials | 2 | |||
ViennaMath | 2 | |||
ViennaMesh | 2 | |||
ViennaMini | 1 | |||
VTK | 1 | |||
Sum | 19 | |||
Furthermore, by utilizing and implementing FLOSS as well as by applying CBSE and LCSD techniques for the introduced frameworks, the initially defined research goals (Section 1.4) are tackled. More concretely, not only has the overall goal of developing flexible simulation tools relevant for the field of MNDS been met via the developed frameworks, but also the five established primary requirements of this work, those being reusability, flexibility, usability, maintainability, and expandability, are inherently supported by utilizing FLOSS-based approaches and by applying LCSD as well as CBSE techniques (Table 7.2).
Reusability is provided by implementing and using FLOSS, as software can be accessed by other developers. By applying an LCSD approach libraries can be reused by other libraries and applications. Components of CBSE-based implementations can be reused in different execution contexts.
Flexibility is supported by FLOSS-based tools, as the access to other tools enables to alter an application by developing and using interfaces. Also, LCSD favors flexibility, as the decoupled nature allows to change parts of an implementation with minimized effort. CBSE inherently enables to change the setup of an application via exchanging components.
Usability is improved by LCSD due to the enforced interfaces introduced by the libraries’ APIs, easing the utilization of the functionality provided by the individual libraries, which is particularly relevant for software developers. On the contrary, usability is supported by the applied CBSE approach as is being utilized, for instance, in ViennaMOS, where each module potentially provides its own GUI, allowing a highly usable access to the simulation kernel.
Maintainability is favored by LCSD and CBSE approaches, as the decoupled nature of the software reduces the overall code base of individual tools (Table 7.3) and thus by extension increases the maintainability of each tool.
Finally, expandability is supported by FLOSS in the sense that already available software can be accessed and functionality can be added without reimplementing the code base allowing to add the new functionality in the first place. Also, LCSD and CBSE approaches inherently favor expandability due to their utilized component interface, enabling the addition of further components in a straightforward manner.
These five primary aspects, being reusability, flexibility, usability, maintainability, and expandability, are of particular importance to simulation software in a fast pacing research environment such as MNDS. As the presented frameworks utilize these aspects, they allow to provide modern and long-term simulation platforms to end users and advanced users. Simultaneously, developers can continuously advance the simulation tools with minimum effort, ultimately enabling to stay at the forefront of research.