BlueM.Opt Code: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
mNo edit summary |
||
(61 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Der Code besteht den | {{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 | |||
* '''<u>Bluem.Opt.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 | |||
** Monitor.vb: Formular enthält ein Monitor-Diagramm und einen Log | |||
** Scatterplot.vb: Form für die Anzeige einer Scatterplot-Matrix | |||
* '''<u>[[MO_Indicators|Bluem.Opt.MO_Indicators]]</u>''': Assembly zur Berechnung von Multi-Objective Indikatoren wie Hypervolumen, etc. | |||
* '''<u>Bluem.Opt.OptResult</u>''': Assembly verwaltet das Optimierungsergebnis mit zugehöriger Datenbank | |||
* '''<u>Wave</u>''': Zeitreihenverwaltung und -darstellung (siehe [[Wave]]) | |||
==Code Formatting== | |||
===Tab settings=== | |||
[[File:VB tabsettings.png|thumb|400px|center|VB tab settings]] | |||
===Comments=== | |||
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: | |||
<source lang="vbnet"> | |||
#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 | |||
</source> | |||
==Tokens== | |||
Folgende Tokens werden im Code benutzt: | |||
{| cellspacing="0" cellpadding="5" border="0" class="standard stripes" | |||
! 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 | |||
|} | |||
[[Kategorie:BlueM.Opt Code|*]] |
Latest revision as of 04:58, 18 December 2021
BlueM.Opt | Download | Usage | Development
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)
- 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 |