Consilia je společnost zaměřená na vývoj softwaru pro zákazníky

Díky dlouhodobému vývoji širokého spektra softwarových řešení mohou naši inženýři poskytovat vývoj softwaru na zakázku. Poskytujeme vývoj na klíč nebo poskytujeme podporu pouze v určitých fázích.

Consilia pomáhá svým zákazníkům snížit rozpočet na vývoj softwaru.

Již mnoho let vyvíjíme aplikace a vestavěný firmware.

Denně používáme systém repozitářů Git, ať už pracujeme na aplikacích pro Linux nebo na vestavěném softwaru v reálném čase.

Obvyklou otázkou vývojářů elektronických produktů, kteří si objednávají služby u firmy vyvíjející software, je, jak zabudovat software do hardwaru.

Významnou výhodou spolupráce se společností Consilia R&D je, že máme kompetence jak v oblasti vývoje hardwaru, tak softwaru.

Dokážeme integrovat SW a HW do jednoho vestavného zařízení bez nutnosti řešení problémů s více dodavateli a zajišťujeme také testování systému.

Našim zákazníkům pomáhá snížit rozpočet na vývoj softwaru.

Integrace SW a HW v jednom vestavném zařízení

Služby vývoje softwaru

Váš projekt vývoje softwaru můžeme podpořit v mnoha oblastech.

Vývoj aplikací pro Linux
Vývoj aplikací pro Linux

Vývoj aplikací pro Linux

Aplikace jsou nejvyšší vrstvou celého softwarového balíku běžícího na operačních systémech.

Umíme aplikace, které zvládnou mnohé.

Vyvíjíme například aplikace, které předávají data o poloze prostřednictvím LAN nebo USB, případně jiným aplikacím či daemonům v rámci stejného OS prostřednictvím meziprocesní komunikace.

Portování Linuxu na různé procesory
Portování Linuxu na různé procesory

Portování Linuxu na různé procesory

Výměna procesorové platformy je úkolem pro naše vývojáře hardwaru. Naši softwaroví vývojáři následně vytvoří operační systém (často nazývaný "BSP", tedy Board Support Package) pro nový procesor.

Umíme také hardwarovou abstrakční vrstvu pro různé procesorové platformy.

Testování softwaru
Testování softwaru

Testování softwaru

Testování softwaru provádíme ve všech standardních fázích vývoje.

Testování softwaru poskytujeme také jako zvláštní službu. Pro ten účel vytvoříme testovací plán na základě specifikace produktu, nebo využijeme a rozšíříme stávající testovací plán.

Vývoj frontendu
Vývoj frontendu

Vývoj frontendu

Neustále optimalizujeme naše řešení směrem k vyšší rychlosti a k nižším nárokům na paměť.

Naše frontendy představují aplikace pro webové prohlížeče nebo samostatné zkompilované aplikace s přístupem ke stejnému rozhraní API jako webové prohlížeče.

Vývoj backendu
Vývoj backendu

Vývoj backendu

Vyvíjíme servery (backend) běžící na ARM Cortex-A procesoru a některé z distribucí Linuxu.

Najdeme řešení pro téměř jakoukoli požadovanou funkci nebo rozhraní. Máme zkušenosti s rozhraním REST API, WebSocket nebo použijeme naše vlastní binární datové protokoly nad TCP.

Vývoj ovladačů pro Windows a Linux
Vývoj ovladačů pro Windows a Linux

Vývoj ovladačů pro Windows a Linux

Ovladače jsou významnou součástí softwaru operačních systémů provozovaných na hardwarových platformách připravených na míru.

Vyvíjíme vlastní ovladače pro Linux. V rámci některých náročných projektů realizujeme pro konkrétní zákazníky také ovladače pro Windows 10 a 11.

Vývoj firmwaru
Vývoj firmwaru

Vývoj firmwaru

Vyvíjíme aplikace typu bare metal pro mikrokontroléry, s důrazem na nízkou spotřebu energie a provádění kódu v reálném čase.

Pomáháme klientům z mnoha oblastí využití, např. kompaktní automatizace, Průmysl 4.0, digitalizace domácností, softwarově podporované senzory, užití IoT (Internetu věcí) pro hobíky a hračičky, profesionální nářadí a mnoho dalších.

Co můžeme udělat pro váš produkt

Poskytujeme služby ve všech fázích životního cyklu vývoje softwaru.

Záleží na zákazníkovi, zda potřebuje řešení na klíč, tj. využít celý náš procesní řetězec nebo jen některé z našich služeb, zejména pokud má zákazník vlastní tým s nedostatkem specifických kompetencí (např. testování softwaru).

Studie proveditelnosti

Před realizací projektu pečlivě analyzujeme, zda a jaké technologie mohou splnit všechny požadavky, včetně vyrobitelnosti a výrobních nákladů.

Pro takovou analýzu potřebujeme od zákazníka určité vstupy - např. technické požadavky, cílové náklady a časový plán.

1

Návrh softwarové architektury

Návrh SW architektury považujeme za důležitou část, kde v počáteční fázi vynaložíme přiměřené úsilí a později ušetříme mnoho nákladů.

Definujeme jednotlivé softwarové vrstvy, navrhneme funkční bloky a definujeme vztahy mezi nimi.

2

Ověření konceptu

V některých případech vytvoříme rychlý prototyp, který nám (a samozřejmě zákazníkovi) ukáže, zda má kandidát na architekturu systému velkou šanci splnit klíčové funkce a požadavky.

Na takovém POC (Proof of Concept) také testujeme a měříme kritické body, např. mechanickou stabilitu, odezvu systému, schopnost propustnosti dat a spotřebu energie.

3

Modely datových toků

Na základě softwarové architektury vytváříme podrobné modely toku dat, kde přesně zjišťujeme, zda vyhovují požadavkům.

Výstup z této fáze použijeme jako základ pro tvorbu modulů/jednotek a plánu jejich testování.

4

Výběr řešení

Řadu marketingových představ můžeme realizovat více způsoby.

Vždy analyzujeme více řešení nebo konceptů, abychom mezi nimi podnítili jakousi vnitřní soutěž a vybrali nejlepší z nich.

5

Implementace

Software implementujeme s rozsáhlým využitím systému řízení revizí. Se systémem Git máme již řadu let velmi hluboké zkušenosti.

Při slučování feature větví do větve master nám systém pomáhá zejména při revizích kódu.

6

Modulové Testy

Náš tým dbá na interní testování jednotlivých modulů.

Pomocí jednotkových testů ladíme jednotky/moduly na nejnižší možné úrovni, což je pro nás jedna z nejúspornějších cest ke stabilnímu a spolehlivému softwaru.

7

Vertikální integrace součástí

V projektech, kde je agilní přístup zvolen jako nejlepší, provádíme vertikální integraci komponent dohromady, abychom získali viditelnou funkci nebo funkci každý jeden nebo dva týdny.

To umožňuje vlastníkovi produktu sledovat, zda projekt probíhá rovně, a co nejdříve odhalit případnou kritickou cestu.

8

Integrace s HW

Spolupráce softwarového a hardwarového týmu je naší silnou zbraní.

Naši hardwaroví kolegové mají velké zkušenosti s vytvářením vlastních hardwarových modulů a s plánováním rozhraní mezi hardwarem a softwarem v předstihu.

Abychom se vyhnuli tomu, že kritické systémové chyby odhalíme příliš pozdě, provádíme integraci softwaru a hardwaru průběžně.

9

Funkční testy

V rámci vertikální integrace testujeme funkce systému na základě plánu testování funkcí.

V případě potřeby vytváříme vlastní testovací systém a implementujeme testy tak, aby je bylo možné kdykoli znovu použít a opakovat.

10

Regresní testy

Při přidávání a implementaci nových funkcí testujeme i ty stávající, aby celý systém spolehlivě fungoval ve všech svých částech. Regresní testy jsou pro nás v podstatě pravidelně opakované testy funkcí.

V regresních testech znovu využijeme testovací systém z fáze funkčního testování.

11

Jak můžeme pracovat

Jak můžeme pracovat

Víme, jak řídit náš tým pro vývoj softwaru.

Používáme různé přístupy k vývoji.

Během posledních dvaceti let jsme získali zkušenosti se dvěma různými procesy vývoje softwaru: V-model a Agile; v případě Agile můžeme pracovat v režimu Scrum i Kanban.

Pokud vás tyto procesy vývoje softwaru zajímají, přečtěte si více o naší práci v článku Srovnání metodiky vývoje softwaru založené na V-modelu a agilní metodiky.

Naše zkušenosti a zaměření

Vytváříme tato softwarová řešení.

V případě testovacích a měřicích zařízení často vytváříme vestavěnou softwarovou aplikaci pro samotné cílové zařízení a přidáváme nativní nebo webovou aplikaci pro klientské zařízení (PC nebo mobilní telefon). Rozhraní může být tradiční kabelové (USB nebo kabelová LAN) nebo bezdrátové (Bluetooth, Wi-Fi, LTE a další).  

Stejný přístup se často uplatňuje u aplikací internetu věcí, kde senzory běží na holém softwaru a komunikují s bránou prostřednictvím Bluetooth nebo jiných připojení internetu věcí.

Brána může být vybavena lehkým operačním systémem Linux a obvykle může poskytovat aplikaci webového serveru pro připojení kamkoli na světě. Uživatel může k systému přistupovat prostřednictvím mobilního softwaru s uživatelsky přívětivými miniaplikacemi.

Klíčové oblasti použití

Poskytujeme vlastní návrh softwaru pro různé trhy.

Naším softwarovým vývojem podporujeme průmyslové segmenty Testovací a měřicí zařízení, Radiokomunikace, Automobilový průmysl, Průmysl 4.0, Automatizace.

Náš tým pracoval pro segmenty automobilového nebo leteckého průmyslu, které jsou speciální z hlediska potřeby certifikace softwaru.

Technologie a platformy

Tyto technologie a platformy stojí za vývojem našeho softwaru.

Pro vývoj softwaru vždy používáme systém sledování chyb JIRA a bitbucket (oba od společnosti Atlassian). Všechny ostatní technologie se liší v závislosti na aplikaci (embedded, nativní, webová), platformě (ARM Cortex M0 - M4, ARM Cortex A7 - A73, ST32) a programovacím jazyku (C, C++, C#, Python, JavaScript).

Další informace o technologiích, platformách a programovacích jazycích, které používáme k vývoji softwaru, naleznete na stránce Integrační technologie.

Ovladače zařízení

Windows - Sada ovladačů systému Windows (WDK)
Windows - Kernel-Mode Driver Framework (KMDF)
Linux - Model zařízení jádra Linuxu

Nástroje/rámce

ReactJS
Angular
NodeJS
Expresní
ElectronJS

Programovací jazyky

C/C++
Python
JavaScript/TypeScript

Nástroje pro kódování

MS Visual Studio
Kód aplikace Visual Studio
Atom
Zatmění
Clang

Kontinuální integrace

Jenkins

Řízení verzí

Atlassian Bitbucket
SVN
Gitea

Řízení projektu

Atlassian JIRA (Kanban a Scrum)

Model architektury

Enterprise Architect
PlantUML
MS Visio
Lucidní graf
MS Visual Studio

Dejte nám vědět
o svém budoucím projektu vývoje softwaru.

Napište nám své kontaktní údaje, abychom se s vámi mohli spojit. Ozveme se vám prostřednictvím emailu co nejdříve s naší nabídkou a probereme, co můžeme udělatpro váš projekt. 
Můžete vyplnit formulář nebo neváhejte kontaktovat našeho obchodního manažera přímo prostřednictvím e-mailu naadrese pavel.vrtik@consilia-brno.cz.

* Povinná pole jsou označena hvězdičkou.

Děkujeme! Váš příspěvek byl přijat!
Ups! Při odesílání formuláře se něco pokazilo.
Pavel Vrtík

Pavel Vrtík

Obchodní manažer

e-mail
pavel.vrtik@consilia-brno.cz

Neváhejte mě kontaktovat.

Desítky tisíc

vložených řádků zdrojového kódu

Naši programátoři ale chápou, že vývoj softwaru není jen kódování.

Nacházíte se zde:
Přehled služeb vývoje SW