O curso de arquitetura de software para sistemas embarcados é destinado para os profissionais da área de engenharia eletrônica, desenvolvedores de firmware, sistemas embarcados, técnicos eletrônicos e de desenvolvimento, hobbistas e interessados, cujo objetivo é apresentar como se deve construir um software para sistemas embarcados, levando em conta muitos aspectos importantes de projeto os quais, muitas vezes, são deixados de lado ou ignorados, sendo eles:
- Organização dos diretórios do projeto;
- Adesão de um padrão internacional de desenvolvimento de software como o MISRA-C, por exemplo;
- Criação de convenções de codificação do código e de documentação do projeto e código;
- Estratégia de desenvolvimento do programa;
- Desenvolvimento da arquitetura dividida em camadas;
- Código projetado para ser modular, portátil e reaproveitável, possibilitando assim reduzir o time to market em novos projetos;
- Estabelecendo filosofia de desenvolvimento;
- Facilidade de manutenção e de testes;
- Projeto profissional.
Arquitetura de software para sistemas embarcados - tópicos
O curso de arquitetura de software é dividido da seguinte maneira:
- Organização dos diretórios do projeto;
- Templates;
- Documentação de projeto e convenção de codificação;
- Estruturação de dados e abstração de tipos de dados (ADT);
- Abordagem de regras do MISRA-C:2004;
- Arquitetura de software para sistemas embarcados;
- IDE para desenvolvimento;
- Construção de uma árvore de projeto orientada à arquitetura de software;
- Desenvolvimento do HAL através de ferramenta gráfica;
- Desenvolvimento dos drivers;
- Desenvolvimento das APIs;
- Desenvolvimento da aplicação;
- Depuração do projeto em tempo real;
- Abordagem global do projeto;
- As vantagens e desafios em desenvolver uma arquitetura de software que irá proporcionar reaproveitamento de código para novos projetos.
É importante estabelecer que a arquitetura apresentada neste curso não se restringe a nenhuma IDE ou hardware específicos, ou seja, ela pode ser implementada em qualquer microcontrolador ou ambiente de desenvolvimento.
Ao final do curso
O aluno que participar deste curso, obterá os seguintes aprendizados:
- A importância e o por quê da organização de um projeto;
- A importância de se documentar o código, bem como, o projeto, seja para os desenvolvedores, seja para o cliente;
- Conhecer padrões internacionais de boas práticas utilizadas na indústria;
- A importância e o por quê de criar padrões e convenções de códigos, seja para a empresa, seja para estabelecer uma prática entre os desenvolvedores;
- A importância em se ter uma arquitetura e como ela é concebida;
- Estruturação e código orientado à objeto em linguagem C;
- Como construir um driver;
- Como construir uma API;
- Como construir uma máquina de estados finitos utilizando código orientado à objeto;
- Construção de um código modular e como reaproveitá-lo em novos projetos;
- Percepção da importância de se ter uma arquitetura bem construída nos dias atuais os quais exigem do desenvolvedor;
- Percepção das vantagens dessa arquitetura, bem como, da criação de um projeto totalmente profissional.
Creio que seja do conhecimento da maioria, mas vale ressaltar que atualmente, o ciclo dos projeto de sistemas embarcados tem seu tempo reduzido, visto a grande concorrência no mercado, deste modo, o engenheiro ou desenvolvedor deve ter em mente que criar mecanismos os quais irão ajudá-lo no desenvolvimento é de extrema importância, assim sendo, criar softwares modulares, portáteis e que seja reaproveitáveis é de suma importância para se inserir no mercado e aumentar as chances da companhia na captação de clientes, logo, este curso irá auxiliá-lo muito nesta jornada.