Skip to content

Added FEO feature architecture #1109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

marcmo
Copy link
Contributor

@marcmo marcmo commented May 20, 2025

originates from CR #131370

Change-Id: I02acda06a40a14fdb88815f016459f40c97cc90b
@armin-acn armin-acn requested a review from ramceb May 20, 2025 11:25
Copy link

The created documentation from the pull request is available at: docu-html

Copy link
Contributor

@qor-lb qor-lb May 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thinks this mixes component and feature architecture a little bit. The goal of the feature architecture is to allocate the feature requirements towards the involved components, however the implementation behind the components would be expected in the component architecture.

From my point of view, the FEO feature consists of these high-level components:

  • FEO
  • Communication
  • Logging

In the 1.0 I would extend the components with Time and potentially Trace, however these components will be part of FEO in the 0.5, therefore included in the component above.

The feature architecture should make it clear, which use-cases/requirements we allocate (additionally) to the IPC component that was already identified in the IPC Feature. In the end the IPC component needs to implement the requirements identified by the IPC feature, as well as the requirements identified in the FEO feature.

The architecture behind the FEO component is something that I would not expect in the Feature Architecture but the Component Architecture. I.e. Agents, Primary/Secondary Process, Scheduler, .... is something that is component implementation specific and driven by the requirements identified at feature level but should be detailed at the component level.

@armin-acn / @ramceb would you agree or do you see this differently? We discussed a similar situation in communication with @LittleHuba and ended up separating component architecture (later moved to the module repo) and feature architecture (staying in the main score repo).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@qor-lb, I agree that my current proposal of feature architecture looks a bit like a component architecture, but it follows the feature request. The feature request talks about Agents, Primary/Secondary Process, Executor/Scheduler etc. Thus, the feature architecture needs to pick it up somehow.

In the proposal, I tried to show how these entities are related to each other according to the description in the feature architecture. If I would make it even more generic, there wouldn't be much left, I assume, but maybe you have a good idea.

However, I would not agree that the FEO feature consists of FEO, Communication, and Logging. Communication and Logging are their own features according to my understanding, and the FEO implementation will just use components they provide. But maybe I am somehow misunderstanding the concepts here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would agree that we should have a feature architecture focusing on the behavior of the involved components on the (system) boundaries of the features and a component architecture depicting the interaction of the components.

scheduler --> prim: ok

deactivate scheduler

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The diagram depicts nicely the interaction with the user application.
We should add the logical interfaces of external components e.g. mw::com, mw::log. At least this is my understanding of https://eclipse-score.github.io/score/main/process/process_areas/architecture_design/architecture_concept.html#static-view.

Additionally it would be good to indicate the system boundaries of the features as it was is done in https://eclipse-score.github.io/score/pr-1109/features/communication/ipc/architecture/feature_architecture.html#static-architecture

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would agree that we should have a feature architecture focusing on the behavior of the involved components on the (system) boundaries of the features and a component architecture depicting the interaction of the components.

end note

end loop

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is by intention incomplete, correct?
For the failure analysis it would be good to have one complete cycle visible in the diagrams

scheduler -> activity_1: shutdown()
activity_1 -> activity_1: shutdown
activity_1 --> scheduler: ready

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above


Overview
--------
The current implementation of the feature "FEO" (Fixed Execution Order Framework) consists of a main
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we should describe here, what the feature should do even if this does not reflect the current implementations. We could add an own chapter "Limitations/Known Issues" which just reflects, what is not implemented yet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants