|
|
unspezifische Tipps, wie man größere Programme schreibt? |
|
propanka |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 25.03.2016, 22:52
Titel: unspezifische Tipps, wie man größere Programme schreibt?
|
 |
Hi.
Ich müsste wohl bald ein größeres Programm schreiben.
Gibt es irgendwelche unspezifischen Tipps, wie man größere Programme in Matlab schreibt, sodass die übersichtlich bleiben?
Wie könnte man eine Aufteilung in mehrere Dateien handhaben?
|
|
|
|
|
DSP |

Forum-Meister
|
 |
Beiträge: 2.117
|
 |
|
 |
Anmeldedatum: 28.02.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2014b
|
 |
|
|
 |
|
Verfasst am: 25.03.2016, 23:07
Titel:
|
 |
Hallo,
groß ist immer relativ . Prinzipiell ist eine Aufteilung in
function
sinnvoll um die Übersichtlichtkeit zu verbessern. Nested functions kann man verwenden, wenn die Funktion nur in ihrer übergeordneten Funktion verwendet wird.
Ansonsten ist es ohne weitere Angaben schwer genauere Tipps zu geben. Soll z.B. eine GUI erstellt werden, bestimmte Vorgaben für einen Datenstrucktur etc.
Gruß DSP
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.499
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 25.03.2016, 23:14
Titel:
|
 |
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 29.03.2016, 00:53
Titel: Re: unspezifische Tipps, wie man größere Programme schreib
|
 |
|
 |
|
Hallo propanka,
- Teile das Programm in überschaubare Funktionen.
- Dokumentiere ausführlich. Wenn ein Programm mehr als 100'000 Zeilen hat, kann nicht mal der Programmierer nach 2 Monaten mehr genau sagen, wie Inputs und Outputs genau definiert sind, wenn dies nicht exakt erklärt wird.
Dokumentiere auch im Code selbst ausführlich, ansonsten wird es später unmöglich zu debuggen oder zu erweitern.
- Trenne Code, Daten und GUIs ganz streng. Am besten finden alle Berechnungen in Funktionen statt, die auch von einem eigenständigen Programm aufgerufen werden können. Falls die Berechnungen in den Callbacks eines GUIs versteckt sind, wird es extrem lästig, sie mal eben mit 1000 verschiedenen Inputs durchlaufen zu lassen. Wenn das GUI eigenständig ist und die externen Rechenfunktionen aufruft, ist das dagegen trivial.
- Konstanten gehören in eigene Funktionen, so dass man sie alle Auf Anhieb findet.
Wir hatten ein mechanisches System simuliert und die Validierung mit einem realen Test-System zeigte signifikante Differenzen. Ein Integrieren mit höherer Genauigkeit brachte keine Verbesserungen. Das Problem war, dass einer der Kollegen die Schwerkraftkonstante als "9.81" hart codiert hatte, was bei einer Integration mit Tol=1e-6 einfach nicht ausreicht. Dies aber in den riesigen Gleichungen zu finden, war zeitraubend.
- Dokumentiere noch ausführlicher.
- Schreibe Code um die elementaren Untereinheiten automatisch zu testen. Das hilft ungemein um zu überprüfen, ob Änderungen am Code, an der Matlab-Version oder des Betriebssystems Auswirkungen haben.
Software-Engineering ist sehr wichtig beim Erstellen größerer Programme. Leider kommt dies bei den Programmierkursen oft viel zu kurz. Man kann ein Programm mit 100'000 Zeilen einfach nicht mit den gleichen Methoden erstellen, wie eines mit 1000 Zeilen. Versionsverwaltung, Qualitätsmanagement, Dokumentations-Methoden, Aufgabenteilung, Unit- und Integration-Tests - dazu gibt es eine Menge Literatur.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|