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.
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.
Značnou výhodou spolupráce s Consilia je, že máme kompetence v oblasti vývoje hardwaru i softwaru.
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.
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:
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.
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.
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.
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í.
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.
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.
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.
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.
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ě.
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.
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í.
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ň.
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.
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 uživatelské zařízení. 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í.
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.
Náš tým pracoval mimo jiné i 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.