The ML and its modules are often used in contexts where robustness and reliability are of crucial concern. This is especially true for MeVisLab which uses the ML for image processing in medical applications to a large extent. Therefore remember the following aspects when you develop software based on the ML:
General Software Quality
See Section A.4, “General Rules for ML Programming” for strategies on how to improve software quality, and on how to simplify maintenance of source codes, modules and ML-based applications.
Logging
All tracing information, messages, warnings, and errors are sent
to the ML error manager. Application developers can install a callback
functionality there and redirect all this information to (application)
specific output channels. See Section 5.4, “The Class ErrorOutput
and Configuring Message Outputs” and Section 5.3, “Registering Error Handlers” for details and how an
application and the ML error manager can be configured to receive all
messages from the ML.
Debugging Support
See Chapter 5, Debugging and Error Handling with
subsections Section 5.1, “Printing Debug Information”, and Section 5.4, “The Class ErrorOutput
and Configuring Message Outputs” for information on debugging.
Robustness of Source Codes, and Error Management and Detection
See Section 5.5, “Tracing, Exception Handling and Checked Object Construction/Destruction”, Section 5.2, “Handling Errors”, and Appendix D, Messages and Errors for information on crash-safe function development, safe resource allocation and releasing, available error codes, and their meaning. See Section A.7, “Version Control” for information on how checks for correct ML versions can be implemented.
Memory and Performance Risks
Further potential problems in applications are out-of-memory situations and too slow or even hanging program executions. See Appendix C, Handling Memory Problems for strategies on how to configure the application for safe and limited memory consumption. See Appendix B, Optimizing Image Processing and the subsections Section B.1, “Optimizing Module Code” and Section B.2, “Optimizing Data Flow in Module Networks” for details on performance optimizations in module code and in module networks.
Documentation
The module data base, its use and its maintenance require certain documentation standards on source code level and on user level. See Section A.5, “How to Document an ML Module” for information on the recommended documentation.
© 2024 MeVis Medical Solutions AG