Sistemas críticos para desarrolladores: 7 cosas que deberías saber

El desarrollo de software crítico es una especialización muy interesante para los profesionales del desarrollo, aunque quizá no se conozca tan bien como otros tipos de software. Por eso, en este artículo te respondemos a 7 preguntas que todo desarrollador debería conocer sobre los sistemas críticos.

1. ¿A qué llamamos sistemas de software crítico (safety-critical system)?

Los sistemas críticos (o safety-critical systems) son aquellos en los que un fallo puede conllevar pérdidas de vidas humanas o daños importantes tanto de propiedades como del entorno. Los ejemplos más típicos de este tipo de sistemas los encontramos en la industria aeronáutica y aeroespacial, aunque también es importante en otros sectores como la automoción o el ferroviario, como ya te contamos en este otro artículo.

Pero hay muchas más aplicaciones de las que crees para este tipo de sistemas. Es común su aplicación en infraestructuras que incorporan sistemas de alarmas o sistemas de soporte vital. Muchas centrales de generación y distribución de energía también cuentan con sistemas críticos, especialmente si hablamos de instalaciones de tecnología nuclear.

En medicina existen también muchas aplicaciones en las que la seguridad del sistema puede significar que el paciente no fallezca, como por ejemplo en sistemas de ventilación mecánica, bombas de infusión, máquinas de radioterapia, sistemas robóticos de cirugía, etc.

2. ¿Cuál es la principal característica del software crítico?

La principal característica de este tipo de sistemas es la seguridad, por encima de cualquier otra característica que puede ser habitual en otros tipos de software como la velocidad, usabilidad, etc.

Esta característica puede parecer simple a primera vista pero es la causa por la que el desarrollo de este tipo de software es tan complejo. Es necesario tener en cuenta todos los posibles fallos que pudieran aparecer y crear medidas para evitarlos, algo que en sistemas complejos con multitud de variables, sensores y actuadores es una ardua tarea.

Conseguir esto implica cumplir con todos y cada uno de los puntos mencionados en el estándar, minimizar todos los riesgos hasta el punto en que sea posible y superar la certificación correspondiente (de todo esto te hablamos un poco después).

Sistemas críticos para desarrolladores

3. ¿El Desarrollo de software crítico es muy diferente al de otros software?

La respuesta es sí. El desarrollo de software crítico es un área muy especializada dentro del desarrollo software en general. Normalmente se trabaja bajo estándares (dependiendo del sector) que certifican que se consigue un cierto nivel de seguridad, de forma que los procesos de trabajo deben adecuarse a las indicaciones de estas normas desde fases muy tempranas. Esto hace que los proyectos sean más lentos y costosos en comparación con otros software, siendo necesaria una fuerte inversión en recursos para sacarlos adelante.

4. ¿Cuál es el nivel de seguridad que puede alcanzar un software crítico?

Ya hemos dicho antes que la principal característica de esos sistemas es la seguridad, pero ¿hasta qué punto son seguros?

Hablamos del software más seguro que se puede crear, y así se puede observar de forma cuantitativa si acudimos a lo que indican los estándares. Por ejemplo, si utilizamos el SIL (Safety Integrity Level, muy empleado en ferroviario), la probabilidad de que se produzca un fallo peligroso en el nivel SIL 4 (el más exigente) debe ser menor que 10-8 por cada hora de operación continua, lo que significa menos de un fallo por cada 11400 años. Esto sin duda ilustra muy bien la diferencia existente con otros tipos de software. 

5. ¿Qué recursos son necesarios para desarrollar software crítico?

Los proyectos de desarrollo de software crítico son muy intensivos en recursos. Requieren de profesionales con formación y experiencia, medios económicos y tiempo, algo que normalmente solo pueden ofrecer las grandes empresas.

Es necesario desarrollar el producto de forma muy minuciosa desde los primeros momentos con el objetivo de minimizar los costes asociados a cambios y modificaciones. No superar una certificación implica retrasos y sobrecostes que en muchos casos no son asumibles. Por lo tanto es preferible tener éxito a la primera, para lo que es necesario invertir en recursos.

En este sentido no hay posibles atajos o vías rápidas. Hace falta talento y experiencia para poder seguir los procesos marcados por las normas y lograr un buen producto que supere la certificación.

Sistemas críticos para desarrolladores

6. ¿Cómo se desarrollan los sistemas de software crítico?

No podemos plasmar aquí todo el trabajo necesario para hacer un desarrollo pero al menos sí un resumen de cuáles son los grandes pasos y etapas del mismo. Por cierto, tienes disponible para descargarte en este enlace un checklist con los puntos clave para la certificación de software crítico.

Partiendo desde cero, en primer lugar debes saber cuál es el estándar que debes cumplir. Este puede venir definido por el sector al que te dediques o por los requisitos que te exija el cliente al que quieres acceder. Esto es importante ya que marcará fuertemente los procesos que deberás seguir durante el desarrollo, del mismo modo que es importante que tu equipo conozca en profundidad la norma para tener éxito.

El siguiente paso es determinar el nivel de seguridad (safety level). Esto depende de cada estándar pero de forma general habrá que definir el nivel de impacto (gravedad de las consecuencias) que tendrá tu sistema en caso de fallo y la probabilidad de que eso ocurra.

Una vez que sepas el nivel que debes cumplir es necesario analizar los procesos y documentación que necesitarás seguir durante cada una de las fases del desarrollo. En el checklist que te dejábamos más arriba puedes ver esta información de algunos estándares para cada fase del proyecto.

Finalmente el producto debe ser certificado antes de su uso o comercialización. Normalmente existen organismos que se encargan de evaluar tu software y emitir la certificación si cumple con todos los requisitos. En algunos casos también puede requerirse de forma adicional una verificación y validación por un organismo independiente.

7. ¿Cumplir con un estándar asegura que no se producirán fallos en el sistema?

Incluso sistemas desarrollados bajo los estándares más altos de seguridad pueden sufrir fallos, como ha ocurrido en estos casos históricos. Seguir los procedimientos marcados por la norma paso a paso no asegura el desarrollo de un buen software por sí mismo. Hace falta un conocimiento y un saber hacer. Es decir, el producto que se crea debe ser certificable pero no hay que olvidar que su fin es otro, como controlar cierta operativa de un avión. La certificación no es el fin, es un paso intermedio.

Los estándares son exigentes pero es necesario ir un paso más allá para crear productos de calidad, certificables y seguros.

Centum, expertos en ingeniería de sistemas críticos.

Para muchas organizaciones es complicado afrontar proyectos de software crítico, bien por la falta de experiencia, por los recursos que son necesarios, etc. Si necesitas ayuda en este sentido, no dudes en contactar con nosotros. En CENTUM Digital contamos con más de 16 años de experiencia ofreciendo servicios de Ingeniería de Sistemas Críticos en los entornos más exigentes, como el Aeronáutico, Naval, Defensa, Ferroviario o Automoción, principalmente orientados a los procesos de Certificación, Safety, Calificación Ambiental y HW/SW Assurance.

Critical Systems Engineering

En CENTUM Digital contamos con más de 16 años de experiencia ofreciendo servicios de Ingeniería de Sistemas Críticos en los entornos más exigentes.
Share on facebook
Share on twitter
Share on linkedin
Centum

Centum

Artículo propiedad de CENTUM Solutions, S.L

¿Quieres saber más? Contacta con nosotros

Somos digitales, y por eso sabemos el valor que tiene una conversación entre dos personas. Por favor, si te ha quedado alguna duda, tienes alguna sugerencia o simplemente quieres hablar con nosotros, contáctanos por cualquiera de los canales que te ofrecemos. Tienes nuestro compromiso de que no vamos a usar tu información para mandarte SPAM, nos gusta tan poco como a ti.
NEWSLETTER

¿Quieres conocer las últimas novedades? Suscríbete.

¿Te gustaría ser el primero en saber lo que está pasando en el sector? En nuestra newsletter lo descubrirás todo.


Loading