Neben der Algorithmen-Entwicklung bieten wir zusätzlich reine Software-Entwicklung für unsere Kunden an. Dadurch können wir die von uns entwickelten Algorithmen direkt in Ihr Zielsystem integrieren und aufbauend auf der prototypischen Implementierung zu validieren. Auch können wir während der Algorithmen-Entwicklung softwaretechnische Anforderung berücksichtigen und die Algorithmen entsprechend dieser auslegen.
Wir erstellen individuelle Software-Lösungen, die genau auf die Anforderungen und Bedürfnisse unserer Kunden aus den unterschiedlichsten Branchen angepasst sind.
Knowtion bietet Software-Entwicklung nach definierten Standards und Prozessen an, um ein hohes Maß an Software-Qualität – und damit Fehlerfreiheit – zu garantieren. Dies beinhaltet alle Phasen des Software-Entwicklungs-Prozesses, von der Aufnahme der Anforderungen bis zur Wartung.
Wir erstellen individuelle Software-Lösungen, die genau auf die Anforderungen und Bedürfnisse unserer Kunden aus den unterschiedlichsten Branchen angepasst ist. Hierbei reicht unser Leistungsspektrum von Embedded-Software bis zu skalierbaren Server- Architekturen, basierend auf unterschiedlichen Plattformen, Entwicklungsumgebungen, Technologien und Standards. Knowtion unterstützt Sie bei einzelnen Software-Modulen oder übernimmt die Entwicklung gesamter Software-Produkte.
Zur Sicherstellung der Software-Qualität setzen wir u.a. die folgenden Techniken ein:
Je nach Projekt kann es bei unserem Entwicklungsprozesse große Unterschiede geben, allerdings haben alle gemein, dass dieser Prozess im Vorfeld mit Ihnen abgestimmt und dokumentiert ist. Dabei umfassen unsere Software-Entwicklungs-Dienstleistungen den kompletten Entwicklungsprozess, von der Aufnahme der kundenspezifischen Anforderungen, über die Softwareentwicklung und der Qualitätssicherung, bis hin zur Installation und Inbetriebnahme der Anwendung.
Die optimale Wahl des Entwicklungs-Prozess in Abstimmung mit Ihnen hängt von den folgenden Aspekten ab:
Durch einen passenden Entwicklungsprozess entwickeln wir in kürzester Zeit Software-Module die die entsprechenden Qualitätsansprüchen genügen.
Bei der agilen Softwareentwicklung wird versucht die Transparenz und Flexibilität zu erhöhen und zu einem schnelleren Einsatz der entwickelten Systeme zu kommen, um dadurch die Risiken im Entwicklungsprozess zu minimieren. Kleine lauffähige und nützliche Software wird also schnell und kontinuierlich in Rahmen von Releases an den Kunden geliefert und führt dadurch neben der Risikominimierung zu einer höheren Akzeptanz und Zufriedenheit. Wichtigste Eigenschaft aller agilen Ansätze sind selbstorganisierende Teams sowie eine iterative und inkrementelle Vorgehensweise. Die wohl bekanntesten Vertreter der agilen Softwareentwicklung sind Scrum und Extreme Programming.
Im Gegensatz zu phasenorientierten Vorgehensmodellen wie beispielsweise das Wasserfallmodell werden im V-Modell lediglich Aktivitäten und Ergebnisse definiert und keine strikte zeitliche Abfolge gefordert. Die Entwicklung erfolgt nicht in einer linearen Achse, stattdessen drehen sich die Stufen nach Abschluss der Codierungsphase wieder nach oben. Dieser Entwicklungsprozess erlaubt es Software-Entwicklern und -Testern parallel zu arbeiten. Beispielsweise werden basierend auf den Anforderungen bereits zu einer frühen Projektphase die Testspezifikationen vorbereitet.
Ein Wasserfallmodell bei der Software-Entwicklung ist ein lineares Vorgehensmodell, das den gesamten Entwicklungsprozess in aufeinander folgenden Projektphasen organisiert. Dabei gehen die Ergebnisse der Phasen wie bei einem Wasserfall immer als bindende Vorgabe für die nächsttiefere Phase ein. Zum Beispiel müssen alle Anforderungen aufgestellt sein bevor zur Design-Phase übergegangen wird oder die Software muss komplett implementiert sein bevor diese in der Test-Phase evaluiert werden kann. Die Dokumentation erfolgt am Ende jeder Phase damit eine hohe Projektqualität sichergestellt werden kann.