define the objectives of the software architecture
advise which software design principles shall be adhered to in order to achieve the objectives
describe how the principles shall be implemented
structure the software on a package level in order to support the compliance with the software design principles
This documentation is important for establishing a common understanding of how the software shall be designed on an architectural level.
This documentation does not aim to:
be a Coding Guideline (that would be a different scope)
give a structure of files and directories (this in an implementation detail and may depend on technicalities)
give source code examples (that would be a different level of detail)
Also this PR does not claim that the software architecture documentation shall be complete. It merely suggests some ground rules which are the base for programming the software. The documentation may be extended in the future. Changes to the software architecture documentation may require extensive adjustments in the code.
Technicalities
All figures in the documentation are generated by dot (Graphviz).
A document can be generated using Doxygen
a HTML page is available online here (updated automatically)
a PDF may be generated locally (LaTeX required)
Review Process
I would appreciate if the review would focus on the content and the "big picture". Suggest specific changes in your comments where possible.
In case you would like to improve the language, wording, style or design of figures: I suggest that you draft your changes as a separate pull request. So that we can timely pass this pull request so that further software development can already base on this guideline.
Discussions on the content including potential ambiguities should be discussed and resolved within this pull request.
π π Preview π (updated automatically)
Purpose
This documentation shall be a guideline and:
This documentation is important for establishing a common understanding of how the software shall be designed on an architectural level.
This documentation does not aim to:
Also this PR does not claim that the software architecture documentation shall be complete. It merely suggests some ground rules which are the base for programming the software. The documentation may be extended in the future. Changes to the software architecture documentation may require extensive adjustments in the code.
Technicalities
dot
(Graphviz).Review Process
I would appreciate if the review would focus on the content and the "big picture". Suggest specific changes in your comments where possible.
In case you would like to improve the language, wording, style or design of figures: I suggest that you draft your changes as a separate pull request. So that we can timely pass this pull request so that further software development can already base on this guideline.
Discussions on the content including potential ambiguities should be discussed and resolved within this pull request.