Wir lieben die Herausforderungen von komplexen geschäftskritischen Softwareprojekten

Softwareentwicklung

Auf Basis von erprobten Methoden, Prozessen und Werkzeugen schaffen wir es jedes Projekt in geordneten Bahnen abzuwickeln.



Software Development Life Cycle (SDLC)

Wir unterstützen unsere Kunden auf Wunsch in allen Phasen der Softwareentwicklung und bringen sowohl herkömmliche, als auch agile Softwareentwicklungsmodelle zum Einsatz.

Alle Softwareentwicklungsmodelle haben unterschiedliche Ansätze, aber die grundlegenden Phasen und Aktivitäten bleiben für alle Modelle gleich.

1. Analyse und Planung

Was sie wollen und nicht wollen

Eine detaillierte und umfassende Anforderungsanalyse sowie Planung ist die Basis für erfolgreiche Softwareprojekte.

Dabei ist die Mitarbeit aller Stakeholder erforderlich.

Kosten und erforderliche Ressourcen sind natürlich zu berücksichtigen.

In dieser Phase werden unter anderem:

  • Der Bedarf und aktuelle Probleme identifiziert
  • Stärken und Schwächen aktueller Systeme ermittelt
  • Grundlegende Projektplanung und Machbarkeitsstudie erstellt
  • Verbundene Risiken identifiziert
  • Technische Ansätze ermittelt

2. Requirements Engineering 

Was sie wirklich benötigen

Grundlage für erfolgreiches Requirements Engineering (RE) ist sowohl die Einbeziehung der richtigen Stakeholder als auch die Einbettung der vier Haupttätigkeiten des Requirements Engineering (Ermitteln, Dokumentieren, Prüfen und Abstimmen sowie Verwalten von Anforderungen) in den Softwareentwicklungsprozess.

Im Allgemeinen unterscheidet man zwischen drei Arten von Anforderungen: Funktionale Anforderungen, Qualitätsanforderungen und Randbedingungen.

Wir legen dabei im Entwicklungsprozess möglichst frühzeitig ein besonderes Augenmerk auf die Qualitätsanforderungen, um den Projekterfolg oder die spätere Akzeptanz der entwickelten Lösung nicht zu gefährden.

Das Ergebnis des Requirements Engineering ist die Anforderungsspezifikation (Lastenheft) des Softwaresystems.

In dieser Phase werden unter anderem:

  • Geeignete Ermittlungstechniken gewählt
  • Anwendungsfälle dargestellt
  • Informationsstrukturen modelliert
  • Prototypen zur Veranschaulichung erstellt
  • Abnahmekriterien dokumentiert

3. Design 

Wie wir zum Ergebnis kommen

Während der Entwurfsphase beginnen Entwickler und technische Architekten mit dem Grobentwurf der Software und des Systems, um jede Anforderung erfüllen zu können.

Die technischen Details des Designs werden mit den Stakeholdern besprochen und Parameter wie Risiken, zu verwendende Technologien, Expertise, Rahmenbedingungen, Zeit und Budget werden überprüft. In Abhängigkeit davon wird der beste Designansatz für das Produkt ausgewählt.

Das ausgewählte Architekturdesign definiert alle Komponenten, die entwickelt werden müssen, wie die Kommunikation mit Diensten von Drittanbietern, Benutzerflüsse und Datenbankkommunikation sowie Front-End-Darstellungen und Verhalten der einzelnen Komponenten. Das Design wird in der Systemspezifikation (Pflichtenheft) festgehalten.

In dieser Phase werden unter anderem definiert:

  • Kommunikation mit Diensten von Drittanbietern
  • User Flow (UI/UX) und Datenbankkommunikation
  • Front-End-Darstellungen
  • Verhalten von Komponenten

4. Umsetzung 

Erstellen, was sie wollen

Ist der Entwurf fertiggestellt, dann erfolgt in der Implementierungsphase die Umsetzung der Architektur in den Programmcode.

Je besser in den bisherigen Phasen gearbeitet wurde, desto geringer ist der Aufwand für die Umsetzung.

Es kommen dabei die ausgewählten Frameworks, Sprachen oder Werkzeuge zum Einsatz.

Kontinuierliche Tests der umgesetzten Funktionalitäten in dieser Phase, helfen rechtzeitig Probleme zu erkennen und Kosten zu sparen.

Diese Phase wird umgesetzt auf Basis von:

  • Kodierungsrichtlinien (Coding Guidelines)
  • Vorgehensmodelle wie Wasserfallmodell, V-Modell, Scrum, Kanban, Extreme Programming, usw.
  • Software Frameworks
  • Plattformen und Programmiersprachen wie Ruby, Kotlin, JAVA, JavaScript, usw.

5. Test und Integration 

Haben sie bekommen, was sie wollen?

In modernen Softwareentwicklungsmethoden ist das Testen bereits ein integraler Bestandteil aller Phasen. Diese Phase bezieht sich auf die Abnahme des Systems, in der Fehler gemeldet, verfolgt, behoben und erneut getestet werden, bis die Lösung die in der Spezifikation definierten Qualitätsstandards erreicht.

Das fertig gestellte Softwaresystem muss nun auf die Zielrechner verteilt und installiert sowie eingeführt werden – Verteilung und Installation werden oft als Deployment oder Rollout bezeichnet.

Diese Phase besteht unter anderem aus folgenden Aktivitäten:

  • Testplanung und Teststeuerung
  • Testdatenmanagement
  • Testdurchführung (funktionale / nicht-funktionale Test)
  • Erstellung Testbericht

6. Wartung 

Was sie wirklich wollen

Der Markt ändert sich oder Feedback zeigt, dass Änderungen oder Erweiterungen an der Software notwendig sind. Im Rahmen der Wartung wird die Software an diese Bedürfnisse angepasst.

Sobald eine Version der Software für die Produktion freigegeben ist, gibt es normalerweise ein Wartungsteam, das sich um alle Probleme aus der Produktion kümmert.

Wenn in der Produktion ein Problem auftritt, wird das Entwicklungsteam informiert. Je nachdem, wie schwerwiegend das Problem ist, ist möglicherweise entweder ein Hotfix erforderlich, der in kurzer Zeit erstellt und ausgeliefert wird, oder das Problem wird mit der nächsten Version der Software behoben.

Das alles geschieht natürlich wiederum unter Einhaltung der hier beschriebenen Phasen.

In dieser Phase erfolgt unter anderem:

  • Korrigierende Wartung
  • Adaptive Wartung
  • Präventive Wartung
  • Funktionserweiterung
  • Unterstützung und Betreuung