parent
926c6e862a
commit
ed1295e5c1
@ -1 +1,44 @@
|
||||
\chapter{Design}\label{ch:design}
|
||||
|
||||
We now explain the design of Birdvisu in depth. First, we explain some
|
||||
important decisions and present the overall structure of the project, then we
|
||||
look into individual parts of the program.
|
||||
|
||||
Birdvisu is implemented in Python, using PySide6, the official bindings for
|
||||
Qt6, for drawing on screen. We decided to use Qt, because it provides a lot of
|
||||
pre-made widgets and tools and since it is widely used, it is easy to find help
|
||||
for it on the Internet. The decision to use Python was not hard either. Not
|
||||
only Qt has official bindings for it, but we use the language very often and
|
||||
thus are comfortable writing in it. We do not expect the potential slowness of
|
||||
Python to be an issue, because for handling graphics we are using Qt, which is
|
||||
written in C++. Also, as we have analysed in section~\ref{s:areas}, we expect
|
||||
the topologies to be quite small.
|
||||
|
||||
The project comprises of three main parts: data collection, annotation and
|
||||
presentation part. The data collection part is tasked with finding out the
|
||||
current topology and creating a usable representation of such topologies and
|
||||
their combinations. In the annotation part, we add additional information to
|
||||
the topologies like the difference from the expectation or graph properties of
|
||||
the topology. Finally, when we have all the needed information, we draw the
|
||||
topology on the screen, highlighting the relevant information.
|
||||
|
||||
\section{Recurring and general patterns}
|
||||
|
||||
\XXX{dictionaries everywhere, hashable recipes. ospffile with comments as a reusable format. Format of VertexID}
|
||||
|
||||
\section{Data collection: providers and parsing}
|
||||
|
||||
\XXX{sub-parts, why a topology is not a graph, stacking topologies with
|
||||
multiedges, fake-freezing, why is everything static. Graph representation, selection of BIRD's
|
||||
instance}
|
||||
|
||||
\section{Annotations}
|
||||
|
||||
\XXX{scoping, annotator creation, advantages of storing data in annotations and
|
||||
not vertices. Annotator protocol and posibility of export. Various uses of annotators: enhancing, analysis, visualisation}
|
||||
|
||||
\section{Visualisation}
|
||||
|
||||
\XXX{Layouting (nonexistent), why not graphviz, why not consensual metrics, how we are re-using annotations internally. Saving layouts}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue