Software-Entwicklung auf Basis des V-Modells
Prozesse, die auf dem V-Modell basieren, werden sehr häufig von größeren Unternehmen benötigt, die streng vorhersehbare und nachvollziehbare Pläne benötigen, die in klar definierte Arbeitsschritte unterteilt sind.
Prozesse auf der Grundlage des V-Modells:
Definition von Anforderungen
Unser Team von Embedded-Software-Ingenieuren sammelt die Anforderungen des Kunden, überprüft sie und klärt mögliche Spezifikationslücken.
Systementwurf
Beim Systementwurf entwickeln wir Ideen und überlegen, wie die Funktionalität auf Hardware- und Softwareressourcen verteilt werden soll. Folglich definieren wir Schnittstellen und Datenbeziehungen im Voraus.
Architektur Design
In dieser Phase analysieren und bewerten wir verschiedene Ansätze auf hohem Niveau, die zu der einfachsten und schnellsten Entwicklung und den geringsten Kosten führen. Wir teilen das Systemdesign in einzelne Module auf, die sich in ihrer Funktionalität unterscheiden.
Modul-Design
Ein Modul- oder Einheitsentwurf ist eine detaillierte interne Entwurfsdefinition auf einer niedrigen Ebene, die sich auf die Kompatibilität zwischen den Modulen konzentriert.
Codierung
Je nach Vereinbarung mit dem Kunden folgen wir entweder den Best-Practice-Richtlinien oder den Standardrichtlinien des Kunden. Code-Reviews und Code-Optimierung sind ebenfalls ein unvermeidlicher Teil dieser Phase.
Einheitliche Prüfung
In diesem Prozess werden Modul- oder Unit-Test-Skripte implementiert und durchgeführt. Sie erkennen den größten Teil der Fehler in einem frühen Stadium.
Integrationsprüfung
Beim Integrationstest werden die Koexistenz und die gegenseitige Kommunikation der Module geprüft.
Systemprüfung
Bei der Systemprüfung wird die Funktionalität des gesamten Systems und die Kommunikation zwischen dem System und externen Systemen überprüft. Auch die Kompatibilität von Hardware und Software wird in dieser Phase geprüft.
Abnahmetests
Das gesamte Softwareprodukt wird anhand der geschäftlichen Anforderungen in der präfinalen Benutzerumgebung getestet. Hier werden schließlich sowohl die Benutzerfreundlichkeit als auch die Systemleistung getestet.
Software-Entwicklung auf Basis von Agile
Agile Softwareentwicklung ist ein evolutionsbasierter Ansatz, der sich in viele vertikale Integrationskampagnen aufteilt. Er unterstützt die kontinuierliche Verbesserung durch selbstorganisierende Teams, die eng mit dem Team des Kunden oder den Endbenutzern zusammenarbeiten.
Wir verwenden weitgehend eines der beiden Softwareentwicklungs-Frameworks:
- Scrum - ein Rahmenwerk, das auf kurzen Sprints basiert (jeder wird in der Regel in zwei Wochen durchgeführt) oder
- Kanban - ein Rahmenwerk mit kontinuierlichem Arbeitsablauf. Im ersten Schritt wird das Backlog mit den Epen/Stories/Problemen/Aufgaben gefüllt, und alle Elemente werden geschätzt.
Typische Scrum-Ereignisse in unserem Team sind:
Sprint
Ein Zeitfenster von in der Regel zwei Wochen, in dem das Entwicklerteam ein brauchbares oder freizugebendes Produkt (oder dessen unterscheidbaren Teil) fertigstellt.
Sprint-Plan
Eine Aktivität, die vom gesamten Team durchgeführt wird und einen machbaren Teil der Arbeit für den Sprint abdeckt.
Tägliches Scrum
Ein tägliches Stand-up-Meeting, um dem Team die Möglichkeit zu geben, den Stand der Dinge zu besprechen, wenn jemand nicht weiterkommt, und welche Probleme das Team gefunden hat.
Sprint Rückblick
Ein Treffen am Ende des Sprints, bei dem die Teammitglieder ihre jüngsten Erfahrungen mit dem Projekt austauschen, die noch nicht abgeschlossene Arbeit überprüfen und mit den Stakeholdern sprechen.
Rückblick auf den Sprint
Eine Gelegenheit zur Selbstverbesserung des Teams.
Interessante externe Ressourcen
Maßgeschneiderte Lösungen
Verwandte Consilia-Projekte