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

Zajišťujeme kompletní vývoj na klíč nebo nebo poskytujeme podporu 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.

Obvyklá otázka pro vývojáře elektronických produktů, poptávajících služby od softwarové společnosti, je, jak zabudovat software do hardwaru.

Nemusíte jednat s více dodavateli

Umíme integrovat SW a HW do jednoho vestavěného zařízení a zajišťujeme i testování systému.
Dokážeme najít řešení i tam, kde ostatní nemohou.
Náš tým inženýrů sleduje nejnovější trendy ve vývoji softwaru, aby byl náš kód transparentnější, opakovaně použitelný a snadno modifikovatelný.

Služby vývoje softwaru

Můžeme urychlit váš projekt vývoje softwaru v mnoha oblastech.

Zaměřujeme se na vestavěné aplikace.

Navrhujeme také jejich softwarové protějšky pro hostitelské počítače, abychom našim zákazníkům poskytli úplný řetězec služeb (včetně integrace hardwaru a softwaru).

Seznam software služeb

Vývoj backendu
Vývoj aplikací pro Linux
Testování softwaru
Vytvoření BSP pro Linux a portování procesorů
Vývoj firmwaru
Vývoj ovladačů pro Windows a Linux
Vývoj frontendu

Testování embedded systémů

Potřebujete zajistit, aby váš embedded produkt byl stabilní a maximálně spolehlivý a funkční? Naši ISTQB certifikovaní testeři včas odhalí skryté problémy, ušetří vám peníze za pozdější opravy a pomáhají zajistit, že váš produkt bude včas uveden na trh.

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 využít celý náš procesní řetězec nebo jen některou z našich služeb, například pokud vlastnímu týmu chybí některé specifické kompetence (třeba testování softwaru).

Náš typický tok úloh je založen na následujících řízených procesech:

01.

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.

02.

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.

03.

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.

04.

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í.

05.

Výběr řešení

Různé marketingové představy 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.

06.

Implementace

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

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

07.

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.

08.

Vertikální integrace komponent

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

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

09.

Integrace s HW

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

Naši kolegové z hardwarového týmu mají velké zkušenosti s vytvářením vlastních hw 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ě.

10.

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.

11.

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í.

01.

Studie proveditelnosti

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.

02.

Návrh softwarové architektury

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

03.

Ověření konceptu

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.

04.

Modely datových toků

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

05.

Výběr řešení

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

06.

Implementace

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

07.

‍Modulové Testy

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.

08.

Vertikální integrace komponent

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

09.

Integrace s HW

Naši kolegové z hardwarového týmu mají velké zkušenosti s vytvářením vlastních hw 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ě.

10.

Funkční testy

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.

11.

Regresní testy

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í.

Získejte podporu našich odborníků ve všech fázích vývoje softwaru a posuňte svůj projekt na další úroveň.

Technologie a platformy

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 Vývojové nástroje.

Desítky tisíc

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

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