BlueM.Opt Code: Difference between revisions
Jump to navigation
Jump to search
m (→Comments: fix syntax hightlighting) |
(removed IHA.Win and updated assembly names) |
||
Line 3: | Line 3: | ||
[[Bild:Meta wc layout.png|thumb|300px|Layout der working copy nach checkout von der Meta-Repository mit Beschriftung der Repository-Zugehörigkeiten]] | [[Bild:Meta wc layout.png|thumb|300px|Layout der working copy nach checkout von der Meta-Repository mit Beschriftung der Repository-Zugehörigkeiten]] | ||
Der Code besteht aus den folgenden Assemblies (Projekten), welche in einer Projektmappe zusammengeführt werden: | Der Code besteht aus den folgenden Assemblies (Projekten), welche in einer Projektmappe zusammengeführt werden: | ||
* '''<u> | * '''<u>Main</u>''': Startprojekt | ||
** Form1.vb: Hauptformular | ** Form1.vb: Hauptformular | ||
** EVO_Einstellungen.vb: Steuerelement für das Setzen der Optimierungseinstellungen | ** EVO_Einstellungen.vb: Steuerelement für das Setzen der Optimierungseinstellungen | ||
Line 10: | Line 10: | ||
** ... | ** ... | ||
* ''' | * '''BlueM.Opt.Algos''': Unterordner für Algorithmen | ||
** ''<u>IController</u>'': Stellt ein Interface für Controller zur Verfügung | ** ''<u>IController</u>'': Stellt ein Interface für Controller zur Verfügung | ||
** '''<u>ES</u>''': Evolutionsstrategie ([[PES]], [[CES]] und [[HYBRID]]) | ** '''<u>ES</u>''': Evolutionsstrategie ([[PES]], [[CES]] und [[HYBRID]]) | ||
Line 19: | Line 19: | ||
** '''<u>TSP</u>''': [[TSP|Traveling Salesman Problem]] | ** '''<u>TSP</u>''': [[TSP|Traveling Salesman Problem]] | ||
* '''<u> | * '''<u>Bluem.Opt.Apps</u>''': Assembly enthält Klassen für Evaluierungsanwendungen | ||
** Sim.vb: Basisklasse für Simulationsanwendungen | ** Sim.vb: Basisklasse für Simulationsanwendungen | ||
** '''BlueM''': | ** '''BlueM''': | ||
Line 38: | Line 38: | ||
*** Testprobleme.vb | *** Testprobleme.vb | ||
* '''<u> | * '''<u>Bluem.Opt.Common</u>''': Gemeinsam genutzte Objekte | ||
** Constants.vb: Modul enthält Konstanten und Enums | ** Constants.vb: Modul enthält Konstanten und Enums | ||
** Constraint.vb: Klasse für Constraint | ** Constraint.vb: Klasse für Constraint | ||
Line 50: | Line 50: | ||
** Objectivefunction.vb: Klasse für Zielfunktion | ** Objectivefunction.vb: Klasse für Zielfunktion | ||
* '''<u> | * '''<u>Bluem.Opt.Diagramm</u>''': Diagramm- und Zeichenfunktionalitäten | ||
** Diagramm.vb: Klasse, die von Steema.TeeChart.TChart erbt und diese Klasse erweitert | ** Diagramm.vb: Klasse, die von Steema.TeeChart.TChart erbt und diese Klasse erweitert | ||
** Hauptdiagramm.vb: Abkömmling von Diagramm | ** Hauptdiagramm.vb: Abkömmling von Diagramm | ||
Line 56: | Line 56: | ||
** Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix | ** Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix | ||
* '''<u>[[ | * '''<u>[[MO_Indicators|Bluem.Opt.MO_Indicators]]</u>''': Assembly zur Berechnung von Multi-Objective Indikatoren wie Hypervolumen, etc. | ||
* '''<u> | * '''<u>Bluem.Opt.OptResult</u>''': Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank | ||
* '''<u>Wave</u>''': Zeitreihenverwaltung und -darstellung (siehe [[Wave]]) | * '''<u>Wave</u>''': Zeitreihenverwaltung und -darstellung (siehe [[Wave]]) | ||
==Code Formatting== | ==Code Formatting== |
Revision as of 05:53, 3 March 2018
Projektstruktur
Der Code besteht aus den folgenden Assemblies (Projekten), welche in einer Projektmappe zusammengeführt werden:
- Main: Startprojekt
- Form1.vb: Hauptformular
- EVO_Einstellungen.vb: Steuerelement für das Setzen der Optimierungseinstellungen
- EVO_Opt_Verlauf: Steuerelement, dass den Verlauf der Optimierung anzeigt
- EVOMOD.vb:
- ...
- BlueM.Opt.Algos: Unterordner für Algorithmen
- IController: Stellt ein Interface für Controller zur Verfügung
- ES: Evolutionsstrategie (PES, CES und HYBRID)
- DDS: Dynamically Dimensioned Search
- MetaEvo: hybrider Optimierungsalgorithmus
- HookeAndJeeves: Hooke & Jeeves
- SensiPlot: Sensitivitätsanalyse
- TSP: Traveling Salesman Problem
- Bluem.Opt.Apps: Assembly enthält Klassen für Evaluierungsanwendungen
- Sim.vb: Basisklasse für Simulationsanwendungen
- BlueM:
- BlueM.vb: Anbindung an BlueM
- BlueM.dll: BlueM Rechenkern
- IHWB.BlueM.DLLAdapter.dll: .NET Wrapper zum Ansprechen des BlueM Rechenkerns (siehe BlueM.DLLAdapter)
- SKos.vb:
- S_CAN: Anwendung S:CAN (Sonde Graz)
- Scan.vb
- SMUSI:
- Smusi.vb: Anbindung an SMUSI
- IHWB.SMUSI.DLLAdapter.dll: .NET Wrapper zum Ansprechen des SMUSI Rechenkerns
- SWMM
- SWMM.vb: Anbindung an SWMM
- Swmm_Iface.vb
- SWMM5.dll: SWMM Rechenkern
- Testprobleme: Testprobleme (Sinusfunktion, Deb, etc.)
- Testprobleme.vb
- Bluem.Opt.Common: Gemeinsam genutzte Objekte
- Constants.vb: Modul enthält Konstanten und Enums
- Constraint.vb: Klasse für Constraint
- EVO_Settings.vb: Klasse, die die EVO_Einstellungen abbildet (XML-Serialisierbar)
- Individuum.vb: Basisklasse für Individuen
- Problem.vb: Definiert das zu lösende Optimierungsproblem
- Progress.vb: Speichert den Optimierungsverlauf
- OptParameter.vb: Klasse für OptParameter
- Modellparameter.vb: Structure für Modellparameter
- Provider.vb: Modul stellt Provider zur Verfügung (z.B. FortranProvider)
- Objectivefunction.vb: Klasse für Zielfunktion
- Bluem.Opt.Diagramm: Diagramm- und Zeichenfunktionalitäten
- Diagramm.vb: Klasse, die von Steema.TeeChart.TChart erbt und diese Klasse erweitert
- Hauptdiagramm.vb: Abkömmling von Diagramm
- Monitor.vb: Formular enthält ein Monitor-Diagramm und einen Log
- Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix
- Bluem.Opt.MO_Indicators: Assembly zur Berechnung von Multi-Objective Indikatoren wie Hypervolumen, etc.
- Bluem.Opt.OptResult: Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank
- Wave: Zeitreihenverwaltung und -darstellung (siehe Wave)
Code Formatting
Tab settings
Comments
Es sollte die im VS integrierte Code-Dokumentationsfunktion genutzt werden ("XML-Kommentare"). Anleitung dazu bietet folgender Screencast. Further information on using XML comments in Visual Studio can be found here.
Formatierung von Überschriften:
#Region "Überschrift1" 'Überschrift 1 (z.B. Unterteilung zwischen Eigenschaften und Methoden '#################################################################### 'Überschrift 2 (z.B. Größere Gruppen von Funktionen/Subs) 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ''' <summary> ''' XML-Kommentare für Methoden, Eigenschaften, Felder etc. ''' </summary> Sub Beispiel() 'Untertitel 1 'xxxxxxxxxxxx 'Untertitel 2 '============ 'Untertitel 3 '------------ 'Normale Kommentare End Sub #End Region 'Überschrift1
Tokens
Folgende Tokens werden im Code benutzt:
Token | Bedeutung |
---|---|
ACHTUNG | Wichtiger Kommentar |
BUG | Betrifft einen Bug in Bugzilla |
TODO | Noch zu tun |
HACK | Temporäre Lösung |
UNDONE | ??? |
CHECK | ??? |
UPGRADE | Kleine mögliche Erweiterungen innerhalb von Funktionen |
UPGRADE_NOTE | Beim Update von VB6 auf VB generierte Kommentare |
UPGRADE_WARNING | Beim Update von VB6 auf VB generierte Kommentare |
UPGRADE_ISSUE | Beim Update von VB6 auf VB generierte Kommentare |