BlueM.Opt Code: Difference between revisions

From BlueM
Jump to navigation Jump to search
(→‎Code Formatierung: XML-Kommentare)
mNo edit summary
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Bild:EVO_Ablaufdiagramm.png|thumb|Ablaufdiagramm (EVO-BlauesModell)]]
{{EVO.NET_nav}}
==Projektstruktur==
[[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:
* '''<u>Main</u>''': 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
** ''<u>IController</u>'': Stellt ein Interface für Controller zur Verfügung
** '''<u>ES</u>''': Evolutionsstrategie ([[PES]])
** '''<u>DDS</u>''': [[DDS|Dynamically Dimensioned Search]]
** '''<u>MetaEvo</u>''': [[MetaEvo|hybrider Optimierungsalgorithmus]]
** '''<u>HookeAndJeeves</u>''': [[Hooke & Jeeves]]
** '''<u>SensiPlot</u>''': [[SensiPlot|Sensitivitätsanalyse]]
** '''<u>TSP</u>''': [[TSP|Traveling Salesman Problem]]
 
* '''<u>Bluem.Opt.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
 
* '''<u>Bluem.Opt.Common</u>''': 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


==Projektstruktur==
* '''<u>Bluem.Opt.Diagramm</u>''': Diagramm- und Zeichenfunktionalitäten
Der Code besteht aus den folgenden Projekten, welche in einer Projektmappe zusammengeführt werden:
** Diagramm.vb: Klasse, die von Steema.TeeChart.TChart erbt und diese Klasse erweitert
* '''EVO:''' Zentrale Verwaltungseinheit.
** Hauptdiagramm.vb: Abkömmling von Diagramm
** [[EVO_Einstellungen.vb]]: Steuerelement für das Setzen der Optimierungseinstellungen
** Monitor.vb: Formular enthält ein Monitor-Diagramm und einen Log
** [[EVO_Opt_Verlauf]]: Steuerelement, dass den Verlauf der Optimierung anzeigt
** Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix
** [[EVOMOD.vb]]:
 
** [[Form1.vb]]: zentrales Formular
* '''<u>[[MO_Indicators|Bluem.Opt.MO_Indicators]]</u>''': Assembly zur Berechnung von Multi-Objective Indikatoren wie Hypervolumen, etc.  
** '''Diagramm:''' Unterordner für Diagrammfunktionalität
*** [[DiagrammForm.vb]]: Steuerelement, das ein Diagramm und andere Diagramm-Steuerelemente beinhaltet.
*** [[Diagramm.vb]]: Klasse, die alle TeeChart-Funktionalitäten zur Verfügung stellt.
*** [[Scatterplot.vb]]: 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
**** [[BlueM.DLLAdapter|IHWB.BlueM.DLLAdapter.dll]]: .NET Wrapper zum Ansprechen des BlueM Rechenkerns
**** [[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.Kern:''' Der Optimierungsalgorithmus selbst.
* '''<u>Bluem.Opt.OptResult</u>''': Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank
** [[PES.vb]]: Parametric Evolution Strategy (PES)
** [[CES.vb]]: Combinatorial Evolution Strategy (CES)
** [[Module_dll.vb]]:


* '''Wave:''' Zeitreihendarstellung (siehe [[Wave]])
* '''<u>Wave</u>''': Zeitreihenverwaltung und -darstellung (siehe [[Wave]])


* '''IHA.Win:''' Berechnung von IHA-Parametern (siehe [[Zielfunktion IHA]])
==Code Formatting==
===Tab settings===
[[File:VB tabsettings.png|thumb|400px|center|VB tab settings]]


==Code Formatierung==
===Comments===
Es sollte die im VS integrierte Code-Dokumentationsfunktion genutzt werden ("XML-Kommentare"). Anleitung dazu bietet folgender [[Screencast XML-Kommentare|Screencast]].
Es sollte die im VS integrierte Code-Dokumentationsfunktion genutzt werden ("XML-Kommentare"). Anleitung dazu bietet folgender [[Screencast XML-Kommentare|Screencast]]. Further information on using XML comments in Visual Studio can be found [http://msdn.microsoft.com/en-us/magazine/dd722812.aspx here].


Formatierung von Überschriften:
Formatierung von Überschriften:
<vbnet>
<source lang="vbnet">
#Region "Überschrift1"
#Region "Überschrift1"


Line 73: Line 98:


#End Region 'Überschrift1
#End Region 'Überschrift1
</vbnet>
</source>


==Tokens==
==Tokens==
Folgende Tokens werden im Code benutzt:
Folgende Tokens werden im Code benutzt:
{| class="standard" cellspacing="0" cellpadding="5" border="0"
{| cellspacing="0" cellpadding="5" border="0" class="standard stripes"
! Token !! Bedeutung
! Token !! Bedeutung
|-  
|-  
Line 101: Line 126:
|}
|}


[[Kategorie:EVO Code|*]]
[[Kategorie:BlueM.Opt Code|*]]

Latest revision as of 05:58, 18 December 2021

EVO.png BlueM.Opt | Usage | Development

Projektstruktur

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:

  • 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.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.OptResult: Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank
  • Wave: Zeitreihenverwaltung und -darstellung (siehe Wave)

Code Formatting

Tab settings

VB 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