Individuelle Softwareentwicklungsleistungen nach Maß

Das erste Software Entwicklungsprojekt wurde bereits vor über 20 Jahren in den Jahren 1988 bis 1990 realisiert, einige Zeit vor der Gründung der Firma SPIDERSOFT GmbH. Es handelte sich damals um ein integriertes Verwaltungssystem für eine sehr große Videothek.

Wir realisieren seit vielen Jahren die unterschiedlichsten Software Projekte, teils in enger Kooperation mit den jeweiligen Auftraggebern, teils auch als "Standalone" Projekte in unseren eigenen Räumen. Dabei bieten wir alle projektrelevanten Leistungen für alle Phasen des Software-Projekt-Lifecycles an: von der Requirements- und Risikoanalyse über die Spezifikation, Architektur und Design bis hin zur Programmierung, Test und Abnahme.

 

Was ist eigentlich Software Entwicklung?

Software Entwicklung (Software Engineering) ist nicht nur Programmieren oder wie es so schön heißt "Codieren". Nachfolgend eine grobe Übersicht der einzelnen Schritte, die ein Software Entwicklungsprojekt durchläuft:

Ein Projekt beginnt in der Regel mit einer oder mehreren Anforderungen durch den Auftraggeber. Häufig ist dieser nicht in der Lage, seine Anforderungen so präzise zu spezifizieren, dass daraus direkt das fertige System entstehen kann. Hier kommt zuerst die Anforderungsanalyse (Requirements Analyse). Nach der Spezifikation und Dokumentation der Anforderungen, welche meist noch relativ abstakt formuliert sind, kommt die Erstellung des Pflichtenhefts und/oder der Entwicklungsdokumentation. Daraus abgeleitet wird die Software Architektur und das Design erstellt. Auf Basis der Architektur und des Designs werden dann die einzelnen Software Module programmiert, die Modul-Tests erstellt und die Software Dokumentation geschrieben. Sobald die Software Module fertig gestellt sind und die Modul-Tests erfolgreich durchlaufen sind, werden die Module zum fertigen System integriert. Über das Integrationssystem laufen dann Integrationstests und es kommt zur Abnahme.

 

Softwareentwicklung ist:

  • Erstellen der Entwicklungsdokumentation
  • Spezifikation einer Software Architektur und eines Software Designs
  • Programmieren der Software Module entsprechend des Designs
  • Programmieren von Unit-Tests
  • Erstellen einer Software Dokumentation
  • Behebung von Programmierfehlern

Wenn wir nun alle Punkte als 100% der Tätigkeit ansehen, bleiben für das eigentliche Programmieren normalerweise nur ca. 20% - 30% übrig. Leider ist es in der Praxis oftmals so, dass das Programmieren einen Rahmen von 80% - 90% einnimmt und für die anderen wichtigen Punkte nicht genügend Zeit bleibt.

 

Vorgehensmodelle und Methoden der Softwareentwicklung

Auszug aus Wikipedia:
Ein Vorgehensmodell organisiert einen Prozess in verschiedene, strukturierte Phasen, denen wiederum entsprechende Methoden und Techniken der Organisation zugeordnet sind.

Es gibt verschiedene Vorgehensmodelle zur Softwareentwicklung, jedes Vorgehensmodell hat dabei auch wieder seine eigenen Methoden.

Beispiele für Vorgehensmodelle zur Softwareentwicklung:

  • Agile Softwareentwicklung, z.B. Scrum oder Extreme Programming
  • V-Modell
  • Wasserfallmodell

Beispiele für Methoden zur Softwareentwicklung:

  • Use-Case Analyse
  • Pair Programming
  • Test Driven Development
  • Refactoring

 

Fünf Punkte für Software Entwickler

Es gibt einen interessanten Online Vortrag von Kevlin Henney: "Five Considerations for Software Developers", in dem folgende fünf einfache Punkte herausgearbeitet werden:

Simplicity
Schreibe jedes Software System so einfach als möglich, vermeide unnötige Komplexität. Ein anderer Software Entwickler sollte ohne größere Mühen schnell in der Lage sein, das Software System zu verstehen und bei Bedarf verändern zu können.

Economy
Schreibe jedes Software System so ökonomisch als möglich, vermeide unnötigen Resourcenverbrauch. Die zur Verfügung stehenden Systemresourcen werden immer größer, dennoch sollte jedes Software System so effektiv als möglich programmiert sein.

Symmetrie
Achte auf Symmetrien bei der Implementierung. Wenn ein Interface eine "Prüfe auf Gleichheit" Methode anbietet, dann soll es auch eine "Prüfe auf Ungleichheit" Methode geben.

Spacing
Schreibe den Programmcode mit Leerzeichen und Leerzeilen so, dass eine übersichtliche und lesbare Struktur entsteht. Der Platz innerhalb des Programmcodes ist nicht verschwendet, er dient der besseren Übersichtlichkeit und kann durchaus als Strukturierungsmerkmal verwendet werden.

Emergence
Entwickle neue Eigenschaften aus den bereits vorhandenen Eigenschaften und vermeide, für jede neue Eigenschaft unnötige Redundanzen zu erzeugen. Versuche beim Entwickeln von Software Systemen bereits vorhandene Bausteine zu verwenden.

 

 
Über uns | Impressum