Skip to content
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

[COMPONENTS] Introduce components architecture in the project #111

Closed
svlad-90 opened this issue Sep 13, 2020 · 3 comments · Fixed by #112, #132, #133, #134 or #135
Closed

[COMPONENTS] Introduce components architecture in the project #111

svlad-90 opened this issue Sep 13, 2020 · 3 comments · Fixed by #112, #132, #133, #134 or #135
Assignees
Labels
components enhancement New feature or request
Milestone

Comments

@svlad-90
Copy link
Owner

svlad-90 commented Sep 13, 2020

While creating a class diagram for #51 is was identified, that the structure of classes becomes too coupled. Especially between "DMA base" and the other folders of the project. In order to reduce coupling, it is better to introduce the component abstraction.

CComponentRegistry class should be declared, which will register all components.
The interface IComponent should be declared.
The interface IController should be declared.
Each root-level folder within the project should implement the IComponent interface.
Each class, which is created within the specific component should implement IController and be registered as an internal controller.
Each class, which comes from outside should implement IController and be registered as an external dependency.
IComponent should be able to register multiple IController instances.
IController should be able to register multiple IController instances as well, meaning that we might have sub-controllers ( and sub-sub-controllers, etc. ).

The component is responsible for the creation of its controllers and for the binding of all involved entities.
The controller is responsible for the creation of its sub-controllers and for the binding of all involved entities.

IComponent has reference to all child IController-s. Each IController instance has references to its parent IController, parent IComponent ( if it is a sub-controller ), and child IController-s. Still, only CComponentRegistry has all the data. All IComponent and IController instances are getting dependency data from CComponentRegistry.

The final point would be to create a trace dump, which would represent the dependency map, which we could visualize in plantuml and analyze.

@svlad-90 svlad-90 added enhancement New feature or request components labels Sep 13, 2020
@svlad-90 svlad-90 added this to the v.1.0.24 milestone Sep 13, 2020
@svlad-90 svlad-90 self-assigned this Sep 13, 2020
svlad-90 added a commit that referenced this issue Sep 19, 2020
1. [X] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [X] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [X] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [X] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Introduction of the DMA_Plantuml concept, which allows to declare plantuml metadata within the C++ code
- Integration of DMA_Plantuml concept into the project

>> Verification criteria:

- DMA_Plantuml concept tested on Windows
- All Git hub checks were passed
@svlad-90 svlad-90 linked a pull request Sep 19, 2020 that will close this issue
4 tasks
svlad-90 added a commit that referenced this issue Sep 19, 2020
1. [X] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [X] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [X] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [X] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Introduction of the DMA_Plantuml concept, which allows to declare plantuml metadata within the C++ code
- Integration of DMA_Plantuml concept into the project

>> Verification criteria:

- DMA_Plantuml concept tested on Windows
- All Git hub checks were passed
svlad-90 added a commit that referenced this issue Sep 19, 2020
1. [X] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [X] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [X] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [X] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Introduction of the DMA_Plantuml concept, which allows to declare plantuml metadata within the C++ code
- Integration of DMA_Plantuml concept into the project

>> Verification criteria:

- DMA_Plantuml concept tested on Windows
- All Git hub checks were passed
svlad-90 added a commit that referenced this issue Sep 19, 2020
[ISSUE #111][COMPONENTS] Introduce component architecture to the project
@svlad-90 svlad-90 reopened this Sep 19, 2020
@svlad-90
Copy link
Owner Author

DMA_Plantuml concept was developed to allow declaration of metadata for UML diagrams in the C++ source code: #112
Now we will need to declare metadata for all major DMA classes and generate class diagrams out of that.

@svlad-90 svlad-90 modified the milestones: v.1.0.24, v.1.0.25 Oct 2, 2020
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
@svlad-90 svlad-90 linked a pull request Dec 8, 2020 that will close this issue
4 tasks
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 8, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the analyzer folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 28, 2020
[ISSUE #111][COMPONENTS] Introduce components architecture in the project
@svlad-90 svlad-90 reopened this Dec 29, 2020
svlad-90 added a commit that referenced this issue Dec 29, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the dltWrappers folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 29, 2020
[ISSUE #111][COMPONENTS] Introduce components architecture in the project
@svlad-90 svlad-90 reopened this Dec 29, 2020
svlad-90 added a commit that referenced this issue Dec 31, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the settings folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 31, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the settings folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 31, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the settings folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 31, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the settings folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 31, 2020
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Creation of the separate component from the settings folder of the project
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Dec 31, 2020
[ISSUE #111][COMPONENTS] Introduce components architecture in the project
svlad-90 added a commit that referenced this issue Jan 2, 2021
…ject

1. [x] Have you followed the guidelines in our [Contributing document](../blob/master/CONTRIBUTING.md)?
2. [x] Have you checked to ensure there aren't other open [Pull Requests](../pulls) for the same update/change?
3. [x] Have you built the project, and performed manual testing of your functionality for all supported platforms - Linux and Windows?
4. [x] Is your change backward-compatible with the previous version of the plugin?

>>> Change description:

- Shift of the sources located within the "src" folder into the "plugin" folder
- Adaptation of the project
- Update of the class diagrams
- Update of README

>>> Verification criteria:

- Manually checked on the Windows platform
- All sanity checks on Git Hub were passed
svlad-90 added a commit that referenced this issue Jan 2, 2021
[ISSUE #111][COMPONENTS] Introduce components architecture in the project
@svlad-90
Copy link
Owner Author

svlad-90 commented Jan 2, 2021

2 additional related PR-s:
#143
#144

This task can finally be closed! ))

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment