Skip to content

Equalize the backends #248

Closed
Closed
@ivanperez-keera

Description

@ivanperez-keera

Description

Currently, the cFS, ROS, F' and standalone backends perform similar functionality and are built around similar ideas, but are built slightly differently. This causes an unnecessary amount of code replication, and makes it hard to factorize code out, to incorporate features from a backend into others, and to connect all 4 backends to the GUI.

To make the code easier to maintain and help introduce new features in Ogma, we should modify the implementation of all four of those backends to have the same structure, use similar types, and ideally use the same auxiliary functions. This will help us meet existing requirements in terms of features that need to be implemented in Ogma, and in terms of code cleaning.

Type

  • Management: Code cleaning and re-architecturing.

Additional context

None.

Requester

  • Ivan Perez.

Method to check presence of bug

Not applicable (not a bug).

Expected result

The cFS, ROS, FPrime and standalone backend use the same types to manage failure, and rely on the same auxiliary functions for the common features they implement.

Desired result

The cFS, ROS, FPrime and standalone backend use the same types to manage failure, and rely on the same auxiliary functions for the common features they implement.

Proposed solution

Make all backends be built around the ExceptT monad, using just ErrorTriplet to capture errors, and use the same auxiliary function to read specs for the backends that support it.

Further notes

None.

Metadata

Metadata

Labels

CR:Status:ClosedAdmin only: Change request that has been completedCR:Type:ManagementAdmin only: Change request for conformance with policies or procedures

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions