Skip to content

Handbook

The software architecture of NUREMICS is illustrated in the diagram below. It follows the layered structure recommended by the IEC 62304 standard, distinguishing between software systems, software items, and software units. This representation provides a clear, high-level view of how the different software components of the project are organized, and how they interact within a structured yet flexible development framework. It also highlights the relationship between the core framework (nuremics) and its domain-specific applications (nuremics-labs), emphasizing the modular and extensible nature of the overall architecture.

In the context of NUREMICS:

  • A software unit corresponds to a single, testable function. It is the smallest building block of logic.

  • A software item typically takes the form of a Python class that encapsulates related functions (units) to serve a specific purpose.

  • A software system refers to a complete application designed to be executed by an end-user, replacing traditional scripts or notebooks.

NUREMICS Architecture

In practice, the core framework nuremics is composed of three foundational software items:

  • The Process class defines a generic process component. It provides a flexible base structure that can be extended to implement domain-specific processes within nuremics-labs.

  • The Workflow class orchestrates the execution of multiple processes in a defined sequential order. It encapsulates the coordination logic and manages the progression of tasks throughout the workflow.

  • The Application class is the top-level component. It instantiates and executes a workflow, acting as the main entry point for any end-user application developed within nuremics-labs.

In nuremics-labs, two main types of software components are developed to build domain-specific applications:

  • Procs (software items) — such as Proc1, Proc2, ..., ProcX — are implemented by subclassing the core Process class. Each Proc is defined as a class that encapsulates several functions (software units), which represent elementary operations (Ops) executed sequentially within the __call__ method of the Proc. This design enables the creation of independent, reusable Procs that can be executed on their own or integrated into larger workflows.

  • Apps (software systems) — such as APP1, APP2, ..., APPX — are the end-user-facing software applications. They import and assemble the required Procs, executing them in a defined order through the Workflow class, by instantiating the Application class. This modular architecture promotes flexibility and reusability, allowing the same Procs to be used across multiple Apps tailored to different scientific purposes.


Explore NUREMICS in: