Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
private:mvw:start [2013/05/06 11:07] Patrick Wacker angelegt |
private:mvw:start [2013/05/06 14:52] (aktuell) Patrick Wacker further editing |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Materialverwaltung Version 2.0 ====== | ====== Materialverwaltung Version 2.0 ====== | ||
| - | Überlegungen für die grundlegende Strukturierung. | + | If possible in any way, write your documentation and identifier in English. |
| + | |||
| + | |||
| + | ===== First thoughts about the Design ===== | ||
| + | |||
| + | * The database access should be abstracted from the application. | ||
| + | |||
| + | |||
| + | <graphviz dot center> | ||
| + | digraph abstractionElements { | ||
| + | graph [ rankdir="LR" ]; | ||
| + | node [shape=record, fontname=Helvetica, fontsize=10]; | ||
| + | |||
| + | subgraph cluster1 { | ||
| + | style="plaintext"; color="invis"; label = "Applications"; labelloc=t; labeljust=c; | ||
| + | |||
| + | app1 [ label="Application 1", shape="ellipse", style=filled, fillcolor=lightgray ]; | ||
| + | app2 [ label="Application 2", shape="ellipse", style=filled, fillcolor=lightgray ]; | ||
| + | } | ||
| + | |||
| + | subgraph cluster2 { | ||
| + | style="plaintext"; color="invis"; label = "MVW Librarys"; labelloc=t; labeljust=c; | ||
| + | lib [ label="library", shape="record", height=0.8, style=filled, fillcolor=yellow ]; | ||
| + | } | ||
| + | |||
| + | subgraph cluster3 { | ||
| + | style="plaintext"; color="invis"; label = "MVW Database"; labelloc=t; labeljust=c; | ||
| + | db [ label="Database", shape="record", height=0.8, style=filled, fillcolor=lightblue ]; | ||
| + | } | ||
| + | |||
| + | app1 -> lib [ arrowhead="open", style="solid" ]; | ||
| + | app2 -> lib [ arrowhead="open", style="solid" ]; | ||
| + | lib -> db [ arrowhead="open", style="solid" ]; | ||
| + | db -> lib [ arrowhead="open", style="solid" ]; | ||
| + | |||
| + | } | ||
| + | </graphviz> | ||
| + | |||
| + | |||
| + | |||
| + | * The library should be expanded trough items from the database | ||
| + | * QtScript | ||
| + | * GUIs for QtScript | ||
| + | * Plugins (Extensions for different cases) | ||
| + | |||
| + | |||
| + | <graphviz dot center> | ||
| + | digraph libdatabase { | ||
| + | graph [ rankdir="LR" ]; | ||
| + | node [shape=record, fontname=Helvetica, fontsize=10]; | ||
| + | |||
| + | subgraph cluster1 { | ||
| + | style="plaintext"; color="invis"; label = "MVW Database"; labelloc=t; labeljust=c; | ||
| + | |||
| + | db [ shape="record", height=1.2, style=filled, fillcolor=lightblue, | ||
| + | label="<t1> table: scripts|<t2> table: Guis|<t3> table: plugins"]; | ||
| + | } | ||
| + | |||
| + | subgraph cluster2 { | ||
| + | style="box"; color="yellow"; label = "MVW Libraries"; labelloc=t; labeljust=c; | ||
| + | |||
| + | lib1 [ label="connection", shape="record", style=filled, fillcolor=yellow]; | ||
| + | lib2 [ label="usersettings", shape="record", style=filled, fillcolor=yellow]; | ||
| + | lib3 [ label="programsettings", shape="record", style=filled, fillcolor=yellow]; | ||
| + | lib4 [ label="rights", shape="record", style=filled, fillcolor=yellow]; | ||
| + | lib5 [ label="scripts", shape="record", style=filled, fillcolor=yellow]; | ||
| + | lib6 [ label="guis", shape="record", style=filled, fillcolor=yellow]; | ||
| + | lib7 [ label="plugins", shape="record", style=filled, fillcolor=yellow]; | ||
| + | } | ||
| + | |||
| + | lib1 -> db; | ||
| + | lib2 -> db; | ||
| + | lib3 -> db; | ||
| + | lib4 -> db; | ||
| + | lib5 -> db; | ||
| + | lib6 -> db; | ||
| + | lib7 -> db; | ||
| + | |||
| + | } | ||
| + | </graphviz> | ||
| + | |||
| + | |||
| + | |||
| + | ==== Textual descriptions for the libraries ==== | ||
| + | |||
| + | The libmvw.so should contain classes for the connection and query | ||
| + | to the database. | ||
| + | |||
| + | So that each application can individual access the database and it should be easy to design one commandline version and one GUI version. | ||
| + | |||
| + | The Scripts in the database should extend every function of the library. (prehook_class_function, posthook_class_function) | ||
| + | |||
| + | |||
| + | All details should be hidden between an Interface class, which | ||
| + | should be the only one accessible from the application. | ||
| + | (NO direct connection to the database, except: the user has the | ||
| + | right for that (admin_db)). | ||