iceoryx
iceoryx copied to clipboard
Improve modularity by creating architecure guidelines
Brief feature description
iceoryx is developed in several CMake packages that aim to be independent. Current state is there are cross dependencies between each of them and no architecture guidelines have been created so far.
Detailed information
Analysed iceoryx repository with Lattix Architect. Attached are the the dependecy structure matrix and the architecture metrixs of Lattix (commit b929aa8d5022471a318cdc8e6994f1cdd6aa3850).
General
- [x] Analyse Lattix
- [x] Dependecy structure matrix (DSM)
- [x] Architectual metrics
- [x] Conceptual architecture
- [x] Namespaces & CMake package/library refactoring
- [x] Add CMake target for quality level 5/playground features and move "maybe obsolote" constructs there
- [x] Add script to compare used namespaces to a whitelist in binary (
nm -C myBinary -f posixwith C++filt for demangling) to make sure no experimental/playground code is baked into releases
- [x] Add script to compare used namespaces to a whitelist in binary (
- [x] ~~RouDi modularisation #539~~
- [x] Create architecture documentation
- [x] PlantUML or plain ASCII art?
- [x] Package view
- [x] Layer view
- [x] ~~Summarise guidelines and write a CI checker~~
- [ ] Remove
iox::helpernamespace
- [ ] Remove
- [ ] Create
iceoryx_posh_coreCMake target and address the@todo #590in the CMake files - [x] Remove unused files and move quality level 2 files to a separate CMake package
Lattix Architect findings
- [x] ~~Move POSH specific errors from iceoryx_utils to iceoryx_posh~~ Moved to #1099
- [x]
roudi_gtest.hppincludesiceoryx_posh/internal/roudi_environment/roudi_environment.hpp - [x] Move
RouDiEnvironmentto test folder & namespace - [x] ~~
iceoryx_hoofsdoes not have a clear architecture and shall be better structured~~ Move to #1391
FYI @dlo-86 Structure101 would be another option besides Lattix to analyse the architecture. However, I've had a glimpse at Lattix last Friday and found the DSM and its metrics quite helpful.
@mossmaurice do you think this is related to iceoryx_hoofs?
do you think this is related to iceoryx_hoofs?
@elBoberido
Nope, I think this issue is mainly iceoryx_posh related. As discussed today, any architecture guidelines and their respective CI checkers should be implemented for a complete basic example like icedelivery and not just for iceoryx_hoofs. The only thing I can think about is to split up the iceoryx_hoofs modules / namspaces into several CMake targets. But that should probably go into a new issue. Shall I create one?
@mossmaurice yes, please create the issue.