"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

[Req] Ideen bei der Planung

moidaschl 19.07.2006 - 10:53 1104 4
Posts

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Grüß euch!

Für ein Projekt muss ich mir zwangsläufig geganken machen wie es logisch aufgebaut sein soll. Das ganze soll Objektorientiert sein und daher ist Ruby für mich die erste wahl (aber das ist in diesem Thread sowieso egal).

Zum Projekt:
Das ganze nennt sich "NDC" = (Network Device Configurator) und wird ein Frontend für diverse Netzwerkgeräte. Also ein User kann sich zum Gerät verbinden und dann hald diverseste Sachen damit anstellen. Ich hab auch schon mal fleissig zum Programmieren angefangen ("mal so drauflos"), aber es war von vornherein klar dass das irgendwann in die Hose gehen wird. Jetzt ist es soweit und ich hab mich dran gemacht eine Struktur zu entwerfen.

click to enlarge

Zur Erklärung:
Ich habe versucht das Ganze irgendwie logisch zu gliedern und dabei sind bei mir im Kopf drei Segmente entstanden.
Einerseits der access-level wo das GUI sitzen soll und alles übernimmt was mit der Ausgabe auf dem Bildschirm zu tun hat. Laut Lastenheft müssten dann dort auch noch so sachen wie Speichern der Logs usw sitzen.
Dann der core-level wo die Hauptklasse "NDC" sitzt. Sie soll das Herz darstellen und über sie soll jegliche Kommunikation funktionieren. Von dort werden auch, falls nötig, errors behandelt. Die Klasse Modules ist was spezielles da sie in einer Verzeichnisstruktur die Ensprechenden Module je nach Geräteart einbindet (jedes Gerät hat andere Features usw).
Und dann noch der backend-level der dann so sachen Übernimmt wie zu den Geräten verbinden, checken ob alles passt, tftp-server aufmachen wenn nötig usw.

Jetzt meine Fragen an euch
  • Ist so ein Modell überhaupt sinnvoll?
  • Im Backend: wäre es nicht sinnvoller eine Klasse zu erstellen die alle Verbindungen abhandelt und dann die entsprechenden Module einbindet?
  • Habt ihr sonst irgendwelche Ideen oder vorschläge?

Ich freue mich über jeden Kommentar und hoffe ihr könnt mir ein bisschen unter die Arme greifen

lg & tia
daschl

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Eine zweite Möglichkeit auf die mich ein Typ aus einem Rubyforum aumferksam gemacht hat wäre das MVC-Modell (http://de.wikipedia.org/wiki/MVC)

Ich hab mich mal mit der Idee gespielt, grundsätzlich gefällt sie mir sehr gut. Ich bin jetzt von der Datenbankidee wieder abgekommen weil sie viel zu "overkill" wäre. Bin jetzt auf YAML gestoßen was mir persönlich sehr zusagt

click to enlarge

bzw so eher mit klassen:

click to enlarge
Bearbeitet von moidaschl am 19.07.2006, 14:46

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Hm was meinst du mit "Netzwerkgeräte"? Drucker usw.? Bitte schreib noch ein bisschen mehr dazu, was das Ding machen soll.
Ich verstehe auch nicht ganz, wozu du eine Datenbank brauchst, zum Settings speichern? Ansonsten ist MVC immer eine gute Idee ;) Für kleinere Projekte (wie dieses) kannst du aber imho Controller und View zusammenfassen.

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
netzwerkgeräte sind router, switches, access-points,...

und die datenbank wird sich wahrscheinlich in form von YAML äußern. btw das wird kein kleines projekt, sollt schon mid-size werden ;) (ist immerhin ein maturaprojekt)

gue

Addicted
Avatar
Registered: Feb 2003
Location: Linz
Posts: 400
Zitat von moidaschl
Also ein User kann sich zum Gerät verbinden und dann hald diverseste Sachen damit anstellen.
Zitat von moidaschl
netzwerkgeräte sind router, switches, access-points,...
Also man kann mit den Geräten diverseste Sachen anstellen und die Geräte sind so unterschiedlich? Ich schätze mal, das ganze sollte auch für alle möglichen unterschiedlichen Switches usw. funktionieren? Vermutlich war die Aufgabenstellung so gemeint, dass du z.B. eine Basisklasse für Router machst und davon die Klassen, die die einzelnen Router konfigurieren können, ableitest.

Nochmals meine Frage: Wofür die Datenbank? Das Modell sind in dem Fall die Settings der einzelnen Geräte. Willst du einfach was mit YAML machen?

Und ein Maturaprojekt ist ein kleines Projekt ;)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz