diff --git a/Core/Documentation/Doxygen/Concepts/Modularization.dox b/Core/Documentation/Doxygen/Concepts/Modularization.dox index 522fe80167..36ddb66931 100644 --- a/Core/Documentation/Doxygen/Concepts/Modularization.dox +++ b/Core/Documentation/Doxygen/Concepts/Modularization.dox @@ -1,38 +1,42 @@ /** \page ModularizationPage Modular MITK MITK has been designed to be modular and flexible, to facilitate reuse of existing code and functionality if possible. As such there are several levels of modularization which can be chosen when working with MITK, depending on the use case. \section ModularizationPageOverview Overview -The general hierarchy of modularization runs view, plug-in or bundle, module, perspective and finally application. +The general hierarchy of modularization runs micro service, module, view, plug-in, perspective and finally application. -\subsection ModularizationPageViews Views +\subsection ModularizationPageMicroServices Micro Services + +A \ref MicroServices_Overview "micro service" is a reusable component provided by MITK modules. It can be accessed by other MITK modules or MITK plug-ins via its declared interface. + +\subsection ModularizationPageModules Modules -The smallest unit is a view, it is usually part of a plugin or bundle and provides one specific function, such as grouping all gui elements needed for providing segmentation algorithms or loading dicom images. They usually contain any code which communicates with the user, performs input checking and similar, but no advanced algorithms. +Modules can be found in the MITK/Modules directory (with the exception of the core module in MITK/Core). Each module is a shared library that provides algorithms, data structures and similar code. Many modules are gui independent. They are build if plug-ins are build that require them. -\subsection ModularizationPagePlugInBundles Plugins and Bundles +\subsection ModularizationPageViews Views -The next smallest unit is either a CTK Plugin or a BlueBerry Bundle (Following both will be referred to as plugins). They can be found in MITK/Plugins or MITK/BlueBerry/Bundles respectively. Plugins can be individually switched on and off during the CMake configuration. +One of the smallest units in the MITK application framework (BlueBerry) is a \e view. A view is always part of a plug-in and provides one specific function, such as grouping all gui elements needed for providing segmentation algorithms or loading dicom images. Views usually contain any code which communicates with the user, performs input checking and similar, but no advanced algorithms. -A plugin represents a solution to a specific problem, such as segmentation or data management. As such they may consist of any number of views. +\subsection ModularizationPagePlugInBundles Plugins -\subsection ModularizationPageModules Modules +The next smallest unit is a CTK Plug-in (the term \e Bundle is used interchangeably). They can be found in MITK/Plugins or MITK/BlueBerry/Bundles. Plugins can be individually switched on and off during the CMake configuration. -Modules can be found in the MITK/Modules directory (with the exception of the core module in MITK/Core). Each module is a shared library that provides algorithms, data structures and similar code. Many modules are gui independent. They are build if plugins are build that require them. +A plugin usually represents a solution to a specific problem, such as segmentation or data management. As such they may provide any number of views and other contributions to the MITK application framework. \subsection ModularizationPagePerspectives Perspectives -Perspectives represent a configuration for the workbench needed for a specific workflow. They allow the arrangement of different plugins to reflect the usage scenario (such as data loading plugin in the top right, a segmentation plugin to right and a visualization plugin to the bottom right). They are placed within a plugins directory, typically the one configuring an application. +Perspectives represent a configuration for the MITK application framework (specifically, for the \e Workbench) needed for a specific workflow. They allow the arrangement of different views (contributed by different plug-ins) to reflect the usage scenario (such as a data loading view in the top right, a segmentation view to the right and a visualization view to the bottom right). A perspective is provided by arbitrary plug-ins as an extension (contribution) to the application framework. \subsection ModularizationPageApplications Applications -A specific selection of plugins and perspectives can be combined with customized behaviour of the program framework to an application. The application corresponds to an executable and enables very specific program behaviour and configuration. +A specific selection of plug-ins together with custom configuration data defines the functionality for an application. The application corresponds to an executable and enables very specific program behaviour and configuration. -The configuration takes place in two places. In MITK/Applications/ and in the configuring plugin in MITK/Plugins. +Example applications can be found in the MITK/Applications directory. \section ModularizationPageHowTo How to create your own application It is suggested to use the project generator provided by MITK unless one knows what one is doing. See \ref NewPluginWithProject "here" for more information. -*/ \ No newline at end of file +*/