Desarrollo de Software Crítico: ¿Cómo se aplica la ingeniería RAMS?

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:

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. Por ejemplo, la normativa CENELEC EN 50128, define acorde al nivel de seguridad y fiabilidad de un proyecto software, la estructura del equipo de trabajo y la gestión sobre las actividades software.

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

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)

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

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.


¿Te interesan nuestros artículos sobre Ingeniería RAMS y Tecnología?

Inscríbete en nuestra newsletter y te mantendremos informado de la publicación de nuevos artículos.