Info

El proyecto pretende acelerar el desarrollo de productos que contienen una gran cantidad de software embebido

Agile: desarrollo de software de sistemas embebidos

Marcelino Novo
Responsable Tecnológico de Fagor Automation
15/11/2006
El proyecto europeo Agile, perteneciente al programa Eureka-Itea, pretende acelerar el desarrollo de productos que contienen una gran cantidad de software embebido, lograr un equilibrio entre el tiempo de comercialización y el coste de desarrollo y dar una respuesta más rápida a los cambios que surgen durante la fase de desarrollo. Esto se puede lograr aplicando conceptos Agile (métodos, técnicas, herramientas y prácticas) en el desarrollo de software para sistemas embebidos.
Agile va a definir un marco de desarrollo ágil para el ámbito de sistemas embebidos que tenga en cuenta los estándares existentes. Mediante el posterior despliegue y utilización de dicho marco, se intentará demostrar su funcionalidad y la eficacia del enfoque Agile. Para ello se desarrollarán varios proyectos pilotos y se recolectarán métricas de los mismos.

Problemática de los sistemas embebidos

Un sistema embebido es un sistema especializado en el que la unidad de cálculo está encapsulada en el propio dispositivo que controla. A diferencia de los ordenadores de propósito general, un sistema embebido realiza una serie de tareas determinadas para cumplir unos requerimientos muy específicos. Los sistemas embebidos son parte de la vida diaria y pueden ser de muy diferentes tipos y tamaños. Sólo a modo de ejemplo, mencionaremos algunas de sus posibles aplicaciones:

• Teléfonos móviles, cámaras fotográficas y de vídeo.

• Cajeros automáticos, terminales punto de venta, kioscos de Internet.

• Consolas de juegos, reproductores de MP3.

• Electrodomésticos y domótica (microondas, DVD, televisiones, lavadoras, aire acondicionado, termostatos, sistema de alarmas).

• Equipamiento médico (microscopios, equipos de resonancia magnética, robots quirúrgicos).

• Sistemas de control de vuelo, misiles.

• Calculadoras, PDAs, impresoras, modems, routers.

• Ordenador de a bordo en el automóvil, ABS, GPS.

• Sistemas de control de tráfico, de máquinas herramientas y robots o de células y plantas de fabricación.

El software de los sistemas embebidos es conocido habitualmente con el nombre de firmware y tiene las siguientes características que le diferencian de las aplicaciones normales:

• Interacciona directamente con los sistemas hardware.

• Normalmente tiene recursos limitados (poca memoria, potencia de CPU ajustada, etc.) por razones de costo, ya que muchos de ellos se fabrican en grandes cantidades y los ahorros son importantes.

• En algunos casos no hay ninguna interacción con el usuario, por lo que deben funcionar durante años sin errores y ser capaces de recuperarse por sí mismos en caso de que estos ocurran.

• En otros casos hay interacción con el usuario, que puede ir desde el uso de unas pocas teclas y un simple display hasta un completo interface de usuario basado en ventanas similares a las de un PC.

• En algunas aplicaciones los sistemas embebidos tienen que ser capaces de responder inmediatamente y cumplir requerimientos de tiempo real por razones de seguridad (mission critical systems). A menudo se requieren certificaciones de seguridad y conformidad con determinados estándares.

• Normalmente los sistemas embebidos necesitan ser desarrollados por equipos de diferentes especialidades (software, hardware, mecánica, telecomunicaciones, etc.).

Objetivos del proyecto

El objetivo de Europe de convertir Europa en "la economía más competitiva y dinámica del mundo" (http://europa.eu.int/information_society/eeurope/index_en.htm) para el año 2010 requiere el desarrollo de enormes cantidades de software de alta calidad, la mayor parte del cual será embebido.

Un análisis del estado del desarrollo de software en el mundo muestra que la calidad y la productividad de la industria no han sido capaces de mantenerse al nivel de las necesidades de la sociedad, como se muestra en la figura 1.

La disciplina de la Ingeniería del Software ha estado intentando encontrar la solución de este problema desde los años 80, pero la situación no ha mejorado, conduciendo a una escasez de profesionales de la informática que sólo la desaceleración económica desde finales de 2001 ha sido capaz de disfrazar. El problema es estructural y se hará presente de nuevo cuando la economía se acabe de recuperar.

Algunos modelos de Desarrollo de Software como CMM", Spice, Personal Software Process (PSPSM) o ISO 9001:2000 están diseñados para solucionar estos problemas. Sin embargo, en un reciente estudio de más de 200 proyectos, Michael Mah (QSM Associates) hace notar que no pudieron encontrar ni la mitad de los planes originales contra los que medir los proyectos. Dado que cumplir el plan no es ya el objetivo principal, la satisfacción de los clientes (en la entrega, no al inicio del proyecto) se ha convertido en prioridad.

Las metodologías tradicionales asumen que si el programador se esforzara podría anticipar el conjunto completo de requisitos y reducir el coste eliminando cambios, lo que quizá sea razonable en entornos estables pero no es cierto en muchos proyectos en entornos más dinámicos. En el entorno de cambio rápido en el que se mueven los sistemas embebidos, el cambio no puede ser eliminado. Lo que se propone hacer es adaptar el sistema de tal manera que se reduzca el coste de los cambios pero manteniendo la calidad.

Como consecuencia de todo esto, recientemente han aparecido nuevas metodologías ligeras o ágiles con el objetivo de dar solución a estas necesidades. Entre ellas se pueden incluir eXtreme Programming (XP), Adaptive Software Development (ASD), Lean Development (LD), SCRUM o Crystal Methods (CM). Todas ellas tienen como objetivo la satisfacción del cliente, la adaptabilidad a los cambios, la entrega de productos rápidamente y dentro del presupuesto estipulado. Estas metodologías han demostrado sus beneficios en términos de time-to-market, adaptabilidad a la evolución de los requisitos, satisfacción del cliente y entrega de productos rápidamente y dentro del presupuesto estipulado en un cierto número de dominios. Son prometedoras, pero existe poca experiencia, hasta ahora, en el mundo de los sistemas embebidos.

El enfoque especializado que se desarrollará en este proyecto ayudará a los desarrolladores de sistemas embebidos a ser más eficientes en su trabajo. La obtención de grandes mejoras en el desarrollo de sistemas grandes, distribuidos y generalmente creados como líneas de producto, provocará un salto cualitativo en la capacidad de producción de software embebido y proporcionará a la industria europea una ventaja competitiva significativa en el mercado mundial.

Figura 1
Figura 1
Otros datos del proyecto

Participantes:

• BarcoView Avionics (Bélgica)

• E2S (Bélgica)

• Engisud (Italia)

• Exoftware (Irlanda)

• European Software Institute (España)

• F-Secure (Finlandia)

• FAGOR Automation (España)

• FICOSA (España)

• Free University of Bolzano-Bozen (Italia)

• Hantro (Finlandia)

• Kapion (Eslovenia)

• K.U.Leuven (Bélgica)

• Medius (Eslovenia)

• Nemetschek (Bulgaria)

• Nokia (Finlandia)

• Océ (Francia)

• P4Q Electronics (España)

• Philips (Holanda)

• SQS (España)

• TCP Sistemas e Ingeniería (España)

• VTT Technical Research Centre (Finlandia)

Esfuerzo: 170 años-hombre

Fecha de comienzo: 1 de Abril de 2004

Duración: 33 meses

Líder: Pekka Abrahamsson, VTT (pekka.abrahamsson@vtt.fi)

Web: http://www.agile-itea.org

El proyecto Agile facilitará soluciones innovadoras dirigidas expresamente al dominio embebido. Además, tendrá en cuenta enfoques especializados, como son las “familias de productos” (reutilización) en la producción de software, que se ignoran por los métodos ágiles habituales.

Los objetivos principales del proyecto son:

• Diseñar un marco de desarrollo de software ágil para el dominio de sistemas embebidos. Este marco incluye el propio proceso de desarrollo de software, los procesos de apoyo, la arquitectura del proceso y las herramientas para el desarrollo de software embebido.

• Mantener la conformidad con las normas existentes (ISO9000, CMMITM, DO178b). El tema es muy importante en el dominio de los sistemas embebidos.

• Desarrollar un modelo de implantación para permitir el empleo del marco de desarrollo Agile. El modelo de implantación incluye el proceso de implantación y las directrices de uso del marco de trabajo. Todo esto apoyado por un entorno de trabajo apropiado y experiencias industriales.

• Demostrar la viabilidad operativa del marco desarrollado, del modelo de implantación y de las herramientas en un número de proyectos pilotos de software embebido procedentes de diferentes sectores industriales.

• Demostrar la eficacia del enfoque AGILE mediante métricas para, por ejemplo, convencer a la Dirección, incluyendo un análisis coste-beneficio, un análisis de impacto, etc.

Descripción del trabajo a realizar

En primer lugar se realizará un análisis del dominio que sirva de base para el proyecto completo. De este modo se refuerza el contenido operacional del proyecto Agile, mediante la definición explícita de las áreas pertenecientes al dominio de software embebido para las que se va a desarrollar el marco y el modelo de implantación. El análisis del dominio dará como resultado un conjunto de requisitos que caracterizan el dominio de aplicación y que dirigirán el resto del trabajo en el proyecto. Los requisitos determinan los casos prácticos y los escenarios de aplicación en los que las soluciones de Agile van a ser operativas.

A continuación se elaborará el marco para el desarrollo ágil de software en el dominio de sistemas embebidos. Basándose en los requisitos recogidos, el marco Agile tendrá en cuenta el proceso de desarrollo ágil de software, los procesos de negocio, los procesos de apoyo y la arquitectura de los procesos. El marco se organizará por áreas tecnológicas y de gestión, incluyendo la subcontratación ágil y las líneas de producto software. Proporcionará los medios para identificar dónde y cómo se puede incrementar el nivel de agilidad en el desarrollo de software embebido.

Posteriormente se procederá a la implantación del marco Agile y a la recopilación de experiencias en las aplicaciones industriales. También se desarrollará un proceso de implantación y un método de recopilación de experiencias que facilite una recogida de datos significativos y que permita la comparación, análisis e interpretación de los resultados de los proyectos pilotos.

El marco Agile desarrollado, una vez personalizado con la ayuda de un entorno integrado de desarrollo, se aplicará en la industria para evaluar su efectividad y validez. Los resultados se analizarán y compararán entre sí.

Finalmente, durante el desarrollo del proyecto y especialmente en su etapa final, se realizarán actividades de difusión de los resultados y conclusiones del proyecto Agile. Estas actividades incluyen la publicación de resultados, organización de seminarios y workshops, desarrollo de una página Web del proyecto, de un boletín informativo y otro material publicitario.

Empresas o entidades relacionadas

Fagor Automation, S.Coop.