BlueM.Opt Code: Difference between revisions

From BlueM
Jump to navigation Jump to search
(aktualisiert r1008)
(→‎Projektstruktur: angepasst an v1.2)
Line 3: Line 3:


==Projektstruktur==
==Projektstruktur==
Der Code besteht aus den folgenden Projekten, welche in einer Projektmappe zusammengeführt werden:
Der Code besteht aus den folgenden Assemblies (Projekten), welche in einer Projektmappe zusammengeführt werden:
* '''<u>EVO:</u>''' Zentrale Verwaltungseinheit.
* '''<u>EVO</u>''': Startprojekt
** '''Diagramm:''' Unterordner für Diagrammfunktionalität
** Form1.vb: Startformular
*** DiagrammForm.vb: Steuerelement, das ein Diagramm und andere Diagramm-Steuerelemente beinhaltet.
*** Diagramm.vb: Klasse, die von TeeChart.TChart erbt und diese Klasse erweitert
*** Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix
** '''Apps:''' Unterordner für Anwendungen
*** 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:''' Anbindung an [[SMUSI]]
**** Smusi.vb
*** '''SWMM:''' Anbindung an [[SWMM]]
**** SWMM.vb
**** Swmm_Iface.vb
**** SWMM5.dll: SWMM Rechenkern
*** '''Testprobleme:''' [[Testprobleme]] (Sinusfunktion, Deb, etc.)
**** Testprobleme.vb
*** SensiPlot.vb: Sensitivitätsanalyse
*** TSP.vb: Traveling Salesman Problem
** EVO_Einstellungen.vb: Steuerelement für das Setzen der Optimierungseinstellungen
** EVO_Einstellungen.vb: Steuerelement für das Setzen der Optimierungseinstellungen
** EVO_Opt_Verlauf: Steuerelement, dass den Verlauf der Optimierung anzeigt
** EVO_Opt_Verlauf: Steuerelement, dass den Verlauf der Optimierung anzeigt
** EVOMOD.vb:
** EVOMOD.vb:
** Form1.vb: zentrales Formular
** ...


* '''<u>EVO.Common:</u>''' Gemeinsame Objekte
* '''<u>EVO.Apps</u>''': 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
** SensiPlot.vb: Sensitivitätsanalyse
** TSP.vb: Traveling Salesman Problem
 
* '''<u>EVO.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
** EVO_Settings.vb: Klasse, die die EVO_Einstellungen abbildet (XML-Serialisierbar)
** EVO_Settings.vb: Klasse, die die EVO_Einstellungen abbildet (XML-Serialisierbar)
** Individuum.vb: Klasse für Individuen
** Individuum.vb: Basisklasse für Individuen
** Manager.vb: Modul verwaltet die Zielfunktionen und Constraints
** Manager.vb: Modul verwaltet die Zielfunktionen und Constraints
** OptParameter.vb: Klasse für OptParameter
** OptParameter.vb: Klasse für OptParameter
** Provider.vb: Modul stellt Provider zur Verfügung (z.B. FortranProvider)
** Provider.vb: Modul stellt Provider zur Verfügung (z.B. FortranProvider)
** Ziel.vb: Klasse für Zielfunktion
** Ziel.vb: Klasse für Zielfunktion
* '''<u>EVO.Diagramm</u>''': Diagramm- und Zeichenfunktionalitäten
** Diagramm.vb: Klasse, die von Steema.TeeChart.TChart erbt und diese Klasse erweitert
** Hauptdiagramm.vb: Abkömmling von Diagramm
** Indicatordiagramm.vb: Abkömmling von Diagramm, zeigt das Hypervolumen an
** Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix
* '''<u>EVO.MO_Indicators</u>''': Assembly zur Berechnung von Multi-Objective Indicators wie Hypervolumen, etc.


* '''<u>EVO.Kern:</u>''' Der Optimierungsalgorithmus selbst.
* '''<u>EVO.Kern:</u>''' Der Optimierungsalgorithmus selbst.
Line 47: Line 54:
** CES.vb: Combinatorial Evolution Strategy ([[CES]])
** CES.vb: Combinatorial Evolution Strategy ([[CES]])


* '''Wave:''' Zeitreihendarstellung (siehe [[Wave]])
* '''<u>EVO.OptResult</u>''': Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank
 
* '''<u>Wave</u>''': Zeitreihenverwaltung und -darstellung (siehe [[Wave]])


* '''IHA.Win:''' Berechnung von IHA-Parametern (siehe [[Zielfunktion IHA]])
* '''<u>IHA.Win</u>''': Berechnung von IHA-Parametern (siehe [[Zielfunktion IHA]])


==Code Formatierung==
==Code Formatierung==

Revision as of 02:29, 22 August 2008

EVO.png BlueM.Opt | Usage | Development

Ablaufdiagramm (EVO-BlauesModell)

Projektstruktur

Der Code besteht aus den folgenden Assemblies (Projekten), welche in einer Projektmappe zusammengeführt werden:

  • EVO: Startprojekt
    • Form1.vb: Startformular
    • EVO_Einstellungen.vb: Steuerelement für das Setzen der Optimierungseinstellungen
    • EVO_Opt_Verlauf: Steuerelement, dass den Verlauf der Optimierung anzeigt
    • EVOMOD.vb:
    • ...
  • EVO.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
    • SensiPlot.vb: Sensitivitätsanalyse
    • TSP.vb: Traveling Salesman Problem
  • EVO.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
    • Manager.vb: Modul verwaltet die Zielfunktionen und Constraints
    • OptParameter.vb: Klasse für OptParameter
    • Provider.vb: Modul stellt Provider zur Verfügung (z.B. FortranProvider)
    • Ziel.vb: Klasse für Zielfunktion
  • EVO.Diagramm: Diagramm- und Zeichenfunktionalitäten
    • Diagramm.vb: Klasse, die von Steema.TeeChart.TChart erbt und diese Klasse erweitert
    • Hauptdiagramm.vb: Abkömmling von Diagramm
    • Indicatordiagramm.vb: Abkömmling von Diagramm, zeigt das Hypervolumen an
    • Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix
  • EVO.MO_Indicators: Assembly zur Berechnung von Multi-Objective Indicators wie Hypervolumen, etc.
  • EVO.Kern: Der Optimierungsalgorithmus selbst.
    • PES.vb: Parametric Evolution Strategy (PES)
    • CES.vb: Combinatorial Evolution Strategy (CES)
  • EVO.OptResult: Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank
  • Wave: Zeitreihenverwaltung und -darstellung (siehe Wave)

Code Formatierung

Es sollte die im VS integrierte Code-Dokumentationsfunktion genutzt werden ("XML-Kommentare"). Anleitung dazu bietet folgender Screencast.

Formatierung von Überschriften: <vbnet>

  1. 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
  1. End Region 'Überschrift1

</vbnet>

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