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, en el ámbito RAMS, no tienen tasa de fallos: su MBTF (inversa de la tasa de fallos, ver artículo MTBF) podría considerarse como infinito (el MTBF vendría dado, en todo 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 (LCC) de un producto y sin duda más mantenimiento necesita. Además, impacta a la disponibilidad y seguridad de los sistemas e instalaciones.

Ésta situación será 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.  

Se destacan 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 calidad, generación, verificación y validación y 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 en varios equipos o sistemas. Se recomienda el uso de metodologías modulares para fomentar la reutilización del código de forma ordenada y sin errores.

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 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.