Consilia ist ein kundenorientiertes Software-Entwicklungsunternehmen

Als Ergebnis einer langjährigen Entwicklung eines breiten Spektrums von Softwarelösungen können unsere Ingenieure kundenspezifische Softwareentwicklung anbieten. Wir bieten schlüsselfertige Entwicklung oder unterstützen nur in bestimmten Phasen.

Consilia hilft seinen Kunden, ihr Budget für die Softwareentwicklung zu senken.

Wir entwickeln seit vielen Jahren Anwendungen und eingebettete Firmware.

Wir verwenden das Git-Repository-System täglich, ganz gleich, ob wir an Linux-Anwendungen oder eingebetteter Echtzeit-Software arbeiten.

Eine übliche Frage für Entwickler elektronischer Produkte, die Dienstleistungen eines Softwareentwicklungsunternehmens in Anspruch nehmen, ist die Frage, wie man Software in Hardware einbettet.

Ein wesentlicher Vorteil der Zusammenarbeit mit der Firma Consilia R&D ist, dass wir sowohl in der Hardware- als auch in der Softwareentwicklung kompetent sind.

Wir sind in der Lage, SW und HW in einem eingebetteten Gerät zu integrieren, ohne dass es zu Problemen mit mehreren Lieferanten kommt, und wir bieten auch Systemtests an.

Es hilft unseren Kunden, ihr Budget für die Softwareentwicklung zu reduzieren.

Integration von SW und HW in einem eingebetteten Gerät

Software-Entwicklungsdienste

Wir können Ihr Softwareentwicklungsprojekt in vielen Bereichen beschleunigen.

Entwicklung von Linux-Anwendungen
Entwicklung von Linux-Anwendungen

Entwicklung von Linux-Anwendungen

Anwendungen sind die oberste Schicht des gesamten Software-Stacks, der auf Betriebssystemen läuft.

Wir entwickeln Anwendungen, die das Gehirn Arbeit der Funktionen machen.

Z. B. Anwendungen, die GNSS-Daten über die LAN- oder USB-Ports oder den lokalen Host durch Interprozesskommunikation bereitstellen.

Linux BSP-Erstellung und Prozessorportierung
Linux BSP-Erstellung und Prozessorportierung

Linux BSP-Erstellung und Prozessorportierung

Der Austausch der Prozessorplattform ist die Aufgabe unserer Hardware-Entwickler. Unsere Softwareentwickler erstellen daraufhin ein Betriebssystem (oft ein Linux BSP) für den neuen Prozessor.

Darüber hinaus entwickeln wir eine Hardware-Abstraktionsschicht für verschiedene Prozessorplattformen.

Softwaretest
Softwaretest

Softwaretest

Wir führen die Softwaretests in allen bekannten Entwicklungsphasen durch.

Wir bieten Softwaretests auch als spezielle Dienstleistung an. Wir erhalten entweder die Produktspezifikation und erstellen einen Testplan oder erhalten den Testplan zur Überprüfung.

Frontend-Design
Frontend-Design

Frontend-Design

Wir entwickeln uns weiter und optimieren unsere Lösungen im Hinblick auf höhere Geschwindigkeit und geringeren Speicherbedarf.

Unsere Frontends sind Webbrowser-Anwendungen oder separat kompilierte Anwendungen mit Zugriff auf dieselbe API wie Webbrowser.

Backend-Design
Backend-Design

Backend-Design

Wir entwickeln Server (Backends), die auf dem ARM Cortex-A Prozessor und einer der Linux-Distributionen laufen.

Wir finden eine Lösung für fast jede gewünschte Funktionalität oder Schnittstelle. Wir arbeiten mit REST API, Web-Socket oder mit unseren maßgeschneiderten Binärdaten-TCP-Protokollen.

Treiberentwicklung für Windows & Linux
Treiberentwicklung für Windows & Linux

Treiberentwicklung für Windows & Linux

Treiber sind ein wesentlicher Bestandteil der Software für Betriebssysteme, die auf kundenspezifischen Hardwareplattformen laufen.

Wir begeistern uns für die Entwicklung kundenspezifischer Treiber für Linux. Bei bestimmten Projekten unterstützen wir bestimmte Kunden auch mit Treibern für Windows 10 und 11.

Firmwareentwicklung
Firmwareentwicklung

Firmwareentwicklung

Wir entwickeln Bare-Metal-Anwendungen mit dem Schwerpunkt auf kostengünstiger BOM, geringem Stromverbrauch und Codeausführung in Echtzeit.

Wir unterstützen unsere Kunden in vielen Anwendungsbereichen, z. B. in der Kompaktautomatisierung, Industrie 4.0, Haushaltsgeräten, softwaregestützten Sensoren, IoT-Anwendungen (Internet of Things) für den Hobbybereich, professionellen Werkzeugen und vielen anderen.

Was wir für Ihr Produkt tun können

Wir bieten Dienstleistungen in jeder Phase des Lebenszyklus der Softwareentwicklung.

Es hängt vom Kunden ab, ob er eine schlüsselfertige Lösung benötigt, d. h. ob er unsere gesamte Prozesskette oder nur einige unserer Dienstleistungen in Anspruch nehmen möchte, insbesondere wenn der Kunde über ein eigenes Team mit einer Lücke in einer bestimmten Kompetenz verfügt (z. B. Softwaretests).

Durchführbarkeitsstudien

Vor der Realisierung des Projekts analysieren wir sorgfältig, ob und welche Technologien alle Anforderungen erfüllen können, einschließlich der Herstellbarkeit und der Produktionskosten.

Für eine solche Analyse benötigen wir bestimmte Angaben vom Kunden - z. B. technische Anforderungen, Zielkosten und Zeitplan.

1

Entwurf einer Software-Architektur

Wir betrachten den Entwurf der SW-Architektur als einen wichtigen Teil, bei dem wir in der Anfangsphase einen angemessenen Aufwand betreiben und später viele Kosten sparen.

Wir skizzieren die Schichten der Software, schlagen die Funktionsblöcke vor und definieren die Beziehungen zwischen ihnen.

2

Proof of Concept

In einigen Fällen erstellen wir einen schnellen Prototyp, der uns (und natürlich dem Kunden) zeigt, ob der Systemarchitekturkandidat eine große Chance hat, die Schlüsselfunktionalitäten und Anforderungen zu erfüllen.

Bei einem solchen POC (Proof of Concept) testen und messen wir auch kritische Punkte, z. B. die mechanische Stabilität, die Reaktionsfähigkeit des Systems, den Datendurchsatz und den Stromverbrauch.

3

Datenflussmodelle

Auf der Grundlage der Softwarearchitektur erstellen wir detaillierte Datenflussmodelle, bei denen wir genau sehen, ob sie den Anforderungen entsprechen.

Wir verwenden die Ergebnisse dieser Phase als Grundlage für die Erstellung der Module/Einheiten und des Einheitstestplans.

4

Forschung zu Lösungen

Viele Marketingmodelle lassen sich auf verschiedene Weise realisieren.

Wir analysieren immer mehrere Lösungen oder Konzepte, um eine Art internen Wettbewerb zwischen ihnen anzuregen und die beste von ihnen auszuwählen.

5

Umsetzung

Wir implementieren die Software unter weitgehender Verwendung eines Revisionskontrollsystems. Wir haben seit vielen Jahren sehr viel Erfahrung mit Git.

Beim Zusammenführen der Feature-Branches in den Master-Branch unterstützt uns das System insbesondere bei Code-Reviews.

6

Einheitliche Tests

Unser Team kümmert sich intern um die Unit-Tests.

Wir verwenden die Unit-Tests, um die Unit/ das Modul auf der niedrigstmöglichen Ebene zu debuggen, was für uns einer der kostensparendsten Wege zu stabiler und zuverlässiger Software ist.

7

Vertikale Integration der Komponenten

In Projekten, in denen der agile Ansatz als der beste gewählt wurde, führen wir eine vertikale Integration der Komponenten durch, um alle ein bis zwei Wochen ein sichtbares Merkmal oder eine Funktionalität zu erhalten.

So kann der Produktverantwortliche verfolgen, ob das Projekt geradlinig verläuft, und mögliche kritische Pfade so schnell wie möglich aufdecken.

8

Integration mit HW

Die Zusammenarbeit des Software- und Hardwareteams ist unsere Stärke.

Unsere Hardware-Kollegen sind sehr erfahren in der Entwicklung eigener Hardware-Module und der Planung von Hardware-/Software-Schnittstellen im Voraus.

Daher führen wir in der Regel eine nahtlose Hardware-/Software-Integration durch und vermeiden, dass kritische Systemfehler zu spät entdeckt werden.

9

Funktionstests

Im Rahmen der vertikalen Integration testen wir die Systemfunktionen auf der Grundlage des Funktionstestplans.

Wenn es sich anbietet, erstellen wir unser eigenes Testsystem und implementieren die Tests so, dass sie jederzeit wiederverwendet und wiederholt werden können.

10

Regressionstests

Wenn wir neue Funktionen hinzufügen und implementieren, testen wir auch die bestehenden, damit das gesamte System in all seinen Teilen zuverlässig funktioniert. Im Grunde sind Regressionstests für uns regelmäßig wiederholte Funktionstests.

Daher verwenden wir das Testsystem und die Testfälle aus den Funktionstests wieder.

11

Wie wir arbeiten können

Wie wir arbeiten können

Wir wissen, wie wir unser Software-Entwicklungsteam führen.

Wir verwenden verschiedene Entwicklungsansätze.

In den letzten zwanzig Jahren haben wir Erfahrungen mit zwei verschiedenen Softwareentwicklungsprozessen gesammelt: V-Modell und Agile; für Agile können wir sowohl im Scrum- als auch im Kanban-Modus arbeiten.

Wenn Sie sich für diese Softwareentwicklungsprozesse interessieren, erfahren Sie mehr über unsere Arbeit in unserem Artikel Vergleich von V-Modell und agiler Softwareentwicklungsmethodik.

Unsere Erfahrungen und Schwerpunkte

Wir erstellen diese Software-Design-Lösungen.

Bei Prüf- und Messgeräten erstellen wir häufig eine eingebettete Softwareanwendung für das Zielgerät selbst und fügen eine native oder webbasierte Anwendung für das Client-Gerät (PC oder Handy) hinzu. Die Schnittstelle kann eine herkömmliche kabelgebundene (USB oder kabelgebundenes LAN) oder drahtlose (Bluetooth, Wi-Fi, LTE und andere) sein.  

Der gleiche Ansatz gilt häufig für IoT-Anwendungen, bei denen Sensoren auf Bare-Metal-Software laufen und über Bluetooth oder andere IoT-Verbindungen mit einem Gateway kommunizieren.

Das Gateway kann mit einem leichtgewichtigen Linux-Betriebssystem ausgestattet sein und bietet in der Regel eine Webserver-Anwendung für die Verbindung zu einem beliebigen Ort in der Welt. Der Benutzer kann über eine mobile Software mit benutzerfreundlichen Gadgets auf das System zugreifen.

Wichtige Anwendungsbereiche

Wir bieten unsere kundenspezifische Softwareentwicklung für eine Vielzahl von Märkten an.

Wir unterstützen mit unserer Softwareentwicklung die Branchensegmente Test- und Messgeräte, Funkkommunikation, Automotive, Industrie 4.0, Automation.

Unser Team arbeitete für Segmente der Automobil- oder Luftfahrtindustrie, die einen besonderen Bedarf an Softwarezertifizierung haben.

Technologien und Plattformen

Diese Technologien und Plattformen stehen hinter unserer Softwareentwicklung.

Für die Softwareentwicklung verwenden wir immer das Bugtracking-System JIRA und Bitbucket (beide von Atlassian). Alle anderen Technologien unterscheiden sich je nach Anwendung (Embedded, Native, Web), Plattform (ARM Cortex M0 - M4, ARM Cortex A7 - A73, ST32) und Programmiersprache (C, C++, C#, Python, JavaScript).

Weitere Informationen darüber, welche Technologien, Plattformen und Programmiersprachen wir für die Entwicklung von Software verwenden, finden Sie auf der Seite Integrationstechnologien.

Gerätetreiber

Windows - Windows-Treiber-Kit (WDK)
Windows - Kernel-Mode Driver Framework (KMDF)
Linux - Linux-Kernel-Gerätemodell

Tools/Frameworks

ReactJS
Eckig
NodeJS
Express
ElectronJS

Programmiersprachen

C/C++
Python
JavaScript/TypeScript

Codierungstools

MS Visual Studio
Visual Studio-Code
Atom
Eclipse
Clang

Kontinuierliche Integration

Jenkins

Versionskontrolle

Atlassian Bitbucket
SVN
Gitea

Projektleitung

Atlassian JIRA (Kanban und Scrum)

Architekturmodell

Enterprise Architect
PlantUML
MS Visio
Lucid Chart
MS Visual Studio

Informieren Sie uns unter
über Ihr zukünftiges Softwareentwicklungsprojekt.

Hinterlassen Sie uns Ihre Kontaktdaten, damit wir uns mit Ihnen in Verbindung setzen können. Wir werden uns so bald wie möglich per E-Mail bei Ihnen melden, um die Möglichkeiten unserer Zusammenarbeit bei der Beschleunigung Ihres Projekts zu besprechen.

* Erforderliche Felder sind mit einem Sternchen gekennzeichnet.

Vielen Dank! Ihr Beitrag ist eingegangen!
Huch! Beim Absenden des Formulars ist etwas schief gelaufen.
Pavel Vrtík

Pavel Vrtík

Geschäftsentwicklung

E-Mail
pavel.vrtik@consilia-brno.cz

Sie können mich gerne direkt kontaktieren.

Zehntausende

der eingebetteten Quellcodezeilen

Unsere Software-Ingenieure wissen jedoch, dass Software-Entwicklung nicht nur aus Codierung besteht.

Sie befinden sich hier:
SW-Entwicklungsdienste im Überblick