Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

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)). 
  
  
  
Projektwerkzeuge