= Design of solution
:experimental:
:nofooter:
:source-highlighter: pygments
:stem:
:toc:
:xrefstyle: short

#Provide artifacts that help explain the design of your solution. For example, if your solution is multi-paradigm, you may provide a section for each one. The next sections are examples.#

[[object_design]]
== Object-oriented design

#Create UML artifacts using a design tool, e.g: diagrams.net. Export your diagrams to SVG format. Explain your designs in text, e.g: <<class_diagram>>.#

[#class_diagram]
.UML class diagram (click to open original)
image::class_diagram.svg[link="<url-provided-by-your-design-tool>"]



[[procedural_design]]
== Procedural design

#Procedural design can be done using flowcharts or pseudocode. For example, <<pseudocode>> shows an initial pseudocode.#

[#pseudocode]
[source,delphi]
----
include::solution.pseudo[]
----

#Other programming paradigms can be included. E.g: event-oriented can be explained using state-machines. Functional programming using math formulas.#
