Designing Critical Software: ¿How is RAMS engineering applied?

29/04/2018

Desde un punto formal, el conjunto de sub-sistemas software no tienen tasa de fallos, es decir su MBTF es infinita (la MTBF vendría dada, en todo el caso, por el equipo electrónico que ejecuta el software).

En cambio, es conocido que el software es uno de los sub-sistemas que más problemas conlleva durante el ciclo de vida de un producto y, sin duda más mantenimiento necesita, impactando a la disponibilidad y seguridad de los sistemas e instalaciones.

Esta situación cada vez será más preponderante. Estamos frente a una macro tendencia tecnológica donde cada vez más el software es el responsable del cumplimiento de los requisitos de los sistemas y productos.

El mundo se está digitalizando: la educación reglada y no reglada, los profesionales, los productos, los sistemas, las comunicaciones M2M, generando un círculo virtuoso (o vicioso) a favor de la digitalización y el software.

De este modo el software (y su desarrollo) es cada vez es más complejo generando fallos en su desarrollo.  

Hasta la fecha sólo hay cinco maneras de mitigar y reducir la tasa de fallos de los componentes software desarrollados por seres humanos:


1. Gestión: control de los procesos de generación, validación y trazabilidad de los componentes software así como generar una estructura de equipo de trabajo adecuada, ordenada y jerarquizada debidamente,

2. Reaprovechar: Reutilizar código para no añadir potencialmente nuevos fallos (los conocidos bugs) y, en el caso que se encuentren se pueda apalancar la actualización (coste) en varios equipos o sistemas, 

3. Diversidad: introducir diferentes actores dentro de un proceso de desarrollo y validación e incluso tener diferentes equipos de desarrollo en sistemas redundados (= redundar en proceso), 

 4. Generación automática de código: es decir, que un ente que no se equivoca (como un programador) genere el código, 

5. Verificación automática: utilizar herramientas que permitan verificar de forma estática y dinámica el código desarrollado.


Leedeo Engineering da soporte a las empresas que deben desarrollar software crítico, tanto en el propio desarrollo software, como en el diseño de los procesos y de la organización: Ingenieros especialistas en diseño y codificación software crítico, así como ingenieros RAMS para la validación y verificación (V&V) del producto software, colaborando integrados en sus equipos de trabajo in-house o como proyecto llaves en mano.  

Para más información sobre nuestros servicios, no duden en contactar con nosotros >>