Aktivitäten im Softwareentwicklungsprozeß

Aktivitaeten-im-SW-Entwicklungsprozess

Aus der Spezifikation ergibt sich die Realisierung als Software.
Der Softwareentwicklungsprozeß besteht aus den Schritten:

  • Entwickeln nach den Vorgaben -> Software Spezifikation
  • Fehler finden – Testen der einzelnen C-Funktionen als Unittest
  • Fehler beheben – Im Fehlerfall die Fehlersuche -> ‚Debuggen‘

Diese Schritte werden wiederholt, bis die Software fertiggestellt ist. Ein Teil davon lässt sich automatisieren, z.B. mittels ‚Continuous Integration‘ mit den Tools ‚Hudson‘ oder ‚Jenkins‘. Und hin und wieder werden fertiggestellte Teile in der Softwarekonfiguration abgelegt -> ‚Check In‘, z.B. mit Subversion.

Entwickeln nach den Vorgaben
Die Software wird für den Zielprozessor entwickelt. Mit der internen Maßgabe, die hardwarenahe Schicht getrennt zu halten. Zum einen, um die Software portabel zu machen, zum anderen, um auf dem PC zu ‚Debuggen‘, also Fehler suchen und beheben zu können.

Fehler finden
Damit können dann für jede Software ‚Unit‘ alle erforderlichen Testfälle definiert und geschrieben werden. Die werden dann nach jeder Änderung oder Erweiterung möglichst automatisch ausgeführt.

Fehler beheben
Für jeden Testfall, der einen Fehler findet, muss ich dann zum ‚Debuggen‘ eine Simulation erstellen, die mir den Testfall nachstellt. Insbesondere für eine Hardware auf einem Mikrocontroller in einem embedded System brauche ich so eine Simulation, damit ich ohne Zielhardware auf dem PC arbeiten kann, mit den PC Entwicklungstools und damit nur die logische Funktion teste.
Wenn ich direkt auf der Zielhardware arbeiten will, ist es dann ein ‚In Circuit Emulator‘ (ICE) und ich muss die Hardware direkt manipulieren, um den Testfall nachzustellen. Dann bin ich allerdings schon beim Systemtest und suche den Fehler im gesamten System. Der kann dann auch in der Hardware liegen.

Literaturhinweise und Links

Secure Programming Lint
http://www.splint.org

Testsuite im Unit Test erstellen

Softwareentwicklungsprozeß Übersicht

Spezifikationen schreiben

Dokumentieren ist notwendig

Dokumentation nachträglich erstellen

Arbeiten mit Subversion

Arbeiten mit Secure Programming Lint

Aufräumen und Vereinfachen

Andreas Zeller
– Why Programs Fail

Kathrin Passig / Johannes Jander
– Weniger schlecht programmieren

Martin Fowler
– Refactoring: Improving the Design of Existing Code

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.