Knock, knock, Embedded Developer...
Wake up

... and follow the Red, Green, Refactor Test-Driven Development cycle

Agilidad y XP para Embebidos

Artesanía e Ingeniería de Software Embebido

¿Puedes evolucionar tu firmware de manera sostenida?

Introducción a 'Unembedding' embedded systems with TDD

Software Embebido Portable y Multi-plataforma

Debemos ser capaces de migrar nuestro producto con un esfuerzo mínimo, prácticamente inexistente

Para ser rentables, las soluciones embebidas deben estar desacopladas de aspectos volátiles, como:

  • La PCB y sus compomentes internos y externos

  • El procesador o microcontrolador usado

  • Cualquier librería de terceros, incluyendo frameworks, herramientas y librerías de frabricante

ADC reading Processor Abstraction Layer

Lectura de una variable analógica a través de la capa PAL (Processor Abstraction Layer) implementada mediante static Template Method

Saber cómo

Debug-on-Hardware prácticamente eliminado del proceso de desarrollo software

El uso del hardware debería ser innecesario para desarrollar nuestra aplicación embebida

  • Desde las Entidades de Negocio hasta las tareas relacionadas con los Registros Especiales de Función (SFRs)
  • Capacidad para desarrollar desde cualquier lugar del mundo

  • Caras herramientas propias del desarrollo hardware (osciloscópios, generadores de señal, etc) innecesarias durante el 99% del tiempo
  • Mayor competitividad gracias a soluciones portables y multi-plataforma
  • Escapa del desarrollo tipo Plug & Pray
  • ¡Abraza un desarrollo Plug & Play real!
Hardware and microcontroller
Saber más

Dual-target Embedded Test-Driven Development

Absolutamente todo cambia cuando aseguramos que nuevo código funciona bajo propósito mientras que el código antiguo continua funcionando como lo hacía un minuto antes

  • Software Embebido desarrollado incrementalmente a través de un bucle de feeedback de duración menor de un minuto

  • 100% comprobado al menos sobre dos arquitecturas de procesador diferentes

  • Exhaustivas especificaciones automatizadas

  • Mejores patrones de sueño y menor burn out en todo el equipo

  • Herramientas Out-of-the-Box: mutation testing, analizadores estáticos y dinámicos

Saber cómo

¿Puedo ayudar?

Experiencia Contrastada

Sobreviviendo entre el hardware y el software desde 2005. 

Sé como de duro puede llegar a ser ...

Lo aprendí por el camino más duro posible: sufrimiento

¡Deja atrás el modo superviviencia aprendiendo como gobernar (de nuevo) el desarrollo de tu sistema embebido!

Ligando Artesanía e Ingeniería del Software

¿Todavía no desarrollas bajo el soporte de un bucle de feedback menor del minuto?

Si no es así, posiblemente aún no conozcas tu mejor versión como desarrollador.  

Utiliza prácticas técnicas avanzadas (SOLID, TDD, Design Patterns, Mutation testing...) incluso en pequeños microcontroladores bare-metal

Cursos articulados bajo C/C++ 

Diseña software embebido portable y menos firmware ligado a un hardware específico

Modernas técnicas de desarrollo de software que facilitan una arquitectura desacoplada, evolutiva y portable.

Proceso de aprendizaje práctico a través de ejemplos que se ejecutan en sistemas embebidos reales

 

  • Principios SOLID y Patrones de Diseño

  • Architectura, Test-Driven Development, dobles de prueba y manejo controlado de acoplamiento y cohesión

  • Tests Unitarios, Integración y de Sistema, ejecutados tanto en el Host de desarrollo (Linux PC) como en el microcontrolador destino

  • Ejemplo práctico de desarrollo TDD (KATA) desde cero

  • Refactoriza código embebido siguiendo la regla del Boy Scout

¿Qué opinan quienes han asistido?