Mostrando entradas con la etiqueta Introducción. Mostrar todas las entradas
Mostrando entradas con la etiqueta Introducción. Mostrar todas las entradas

miércoles, 25 de junio de 2014

Sistemas Críticos

Introducción a los Sistemas Críticos



Los fallos de funcionamiento del software son relativamente comunes. En la mayoría  de los casos, estos fallos provocan molestias, pero no daños graves ni a largo plazo.  Sin embargo, en algunos sistemas un fallo de funcionamiento puede ocasionar pérdidas económicas significativas, daño físico o amenazas a la vida humana. Estos sistemas se conocen  como sistemas críticos. Los sistemas críticos son sistemas técnicos  o socio-técnicos de los cuales dependen las personas o los negocios. Si estos sistemas no ofrecen  sus servicios de la forma esperada, pueden provocar graves  problemas y pérdidas importantes.


Hay tres tipos principales de sistemas críticos:

  • Sistemas de seguridad críticos: Son sistemas cuyo fallo de funcionamiento puede provocar perjuicio, pérdida de vidas o daños graves al medio ambiente. Un ejemplo de un sistema de seguridad crítico es un sistema de control  para una planta de fabricación de productos químicos.
  • Sistemas de misión críticos: Son sistemas cuyo fallo de funcionamiento puede provocar errores  en algunas  actividades dirigidas por objetivos. Un ejemplo  de un sistema de misión crítico es un sistema de navegación para una nave espacial.
  • Sistemas de negocio críticos: Son sistemas cuyo fallo de funcionamiento puede provocar costes muy elevados para el negocio que utiliza un sistema de este tipo. Un ejemplo de un sistema  de negocio  crítico  es un sistema  de cuentas  bancarias.


La propiedad más importante de un sistema crítico es su confiabilidad. El término confiabilidad fue propuesto por Laprie  (Laprie,  1995) para hacer referencia a las siguientes propiedades relacionadas de los sistemas: disponibilidad, fiabilidad, seguridad y protección. Estas propiedades están enlazadas fuertemente; por lo tanto, tener un único término  para referirse  a todas  ellas tiene  sentido.(Confiabilidad).

Existen  varias  razones  por las que la confiabilidad es la propiedad más importante de los sistemas críticos:

Los sistemas que son no fiables, inseguros o desprotegidos son rechazados a menudo por sus usuarios. Si los usuarios  no confían en un sistema,  se negarán a utilizarlo. Es más , también  rehusarán comprar o utilizar productos de la misma compañía que  produjo  el  sistema  no confiable, puesto  que  creen  que  éstos  tampoco son confiables.

Los costes de los fallos de funcionamiento del sistema pueden ser enormes. En algunas aplicaciones, como un sistema de control  de reactores o un sistema de navegación aérea, el coste  de un fallo en el sistema  es mayor en varios  órdenes  de magnitud que el coste de dicho  sistema  de control.

Los sistemas no confiables pueden provocar pérdida de información. Es muy cara la captura  y mantenimiento de los datos;  algunas  veces cuesta  más que el sistema  informático  que los procesa.  Se tiene que hacer un gran esfuerzo e invertir  mucho  dinero para duplicar  los datos importantes a fin de protegerlos de cualquier corrupción.

El elevado  coste de un fallo de funcionamiento en los sistemas críticos  implica  que se deben usar métodos y técnicas confiables en su desarrollo. Como consecuencia, los sistemas críticos generalmente se desarrollan utilizando técnicas  muy probadas en lugar de técnicas  novedosas que no han sido objeto de una extensa experiencia práctica. En vez de utilizar métodos y técnicas  novedosas, los desarrolladores de sistemas críticos  son conservadores por naturaleza. Prefieren utilizar técnicas  antiguas  cuyas ventajas  e inconvenientes son muy conocidos, en lugar de nuevas  técnicas  que aparentemente son mejores  pero cuyos problemas a largo plazo se desconocen.




Para el desarrollo de sistemas críticos, a menudo se utilizan técnicas de ingeniería del software que por lo general  no son rentables.  Una razón por la que se usan estos  métodos formales es que ayudan  a reducir  la cantidad de pruebas requeridas. Para sistemas críticos, los costes de verificación y validación generalmente son muy elevados más del 50% de los costes  totales  de desarrollo del sistema.


Si bien un número reducido de sistemas se pueden  automatizar completamente, la mayoría de los sistemas críticos  son sistemas socio-técnicos en los que las personas monitorizan y controlan el funcionamiento de dichos  sistemas informáticos. Los costes  de un fallo de funcionamiento de los sistemas críticos  generalmente son tan altos que es necesario contar  con personal adicional en el sistema  que pueda  hacer  frente  a situaciones inesperadas, y que pueda recuperar el funcionamiento normal  del sistema  cuando  las cosas  van mal.

Desde  luego,  a pesar de que los operadores del sistema  pueden  ayudar  a recuperarlo cuando algo va mal. ellos mismos a su vez pueden  generar  problemas si cometen errores. Existen tres tipos de «componentes de sistemas» susceptibles de generar  un fallo en el sistema:

  • El hardware del sistema  puede  fallar debido  a errores  en su diseño,  también debido  a que los componentes fallan  como resultado de errores  de fabricación, o debido  a que dichos componentes  han llegado  al final  de su vida útil.

  • El software del sistema puede fallar debido a errores en su especificación, diseño o implementación.

  • Los operadores del sistema  pueden  provocar  fallos  en el sistema  debido  a un uso incorrecto del mismo.  Así como el hardware y el software son cada vez más fiables,  hoy en día los fallos debidos a un mal uso del sistema  son probablemente la principal causa de fallos de funcionamiento en el sistema.


Estos  fallos  pueden  interrelacionarse. Un  componente hardware que  deja  de  funcionar puede  implicar que los operadores del sistema  tengan  que afrontar una situación inesperada y una carga de trabajo  adicional. Esto hace que los operadores trabajen en estado  de estrés  y las personas que  sufren  estrés  a menudo cometen errores. Esto  puede  ocasionar que  el software falle, lo que supone  más trabajo  para los operadores, más estrés,  y así sucesivamente.

Como resultado de todo lo anterior, es particularmente importante que los diseñadores de los sistemas críticos  adopten una perspectiva holística del sistema  en lugar de centrarse en un único aspecto  del mismo.  SÍ el hardware, el software y las formas  de utilización del sistema se diseñan de forma  separada sin tener en cuenta  los puntos  débiles  potenciales del resto de las partes  del  sistema, entonces será más  probable que  los errores  se produzcan en las interfaces  entre  las distintas partes  del  sistema.