Sei sulla pagina 1di 45

Sistemas Crticos

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide1

Objetivos

Explicar qu se entiende por sistema crtico


en el que el fallo del sistema puede tener
graves consecuencias econmicas o
humanas.
Explicar las cuatro dimensiones de la
confiablidad de un sistema disponibilidad,
fiabilidad, seguridad y proteccin.
Explicar que, para lograr la confiabilidad, es
necesario evitar los errores, detectar y
eliminar los errores y limitar los daos
causados por el fracaso.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide2

Tpicos Expuestos

Un sistema de seguridad crtico


Confiabilidad del sistema
Disponibilidad y fiabilidad
Seguridad
Proteccin

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide3

Sistemas Crticos

Los sistemas crticos de seguridad

Sistemas de misin crtica

Las fallas se traducen en prdida de vidas, lesiones o


daos para el entorno;
Sistema de proteccin de una planta qumica;
La falla da lugar a fallar en actividades dirigidas hacia una
meta;
Sistema de navegacin de naves espaciales;

Los sistemas crticos de negocio

Las fallas se traducen en altas prdidas econmicas;


Sistema de contabilidad de clientes en un banco;

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide4

Confiabilidad del sistema

Para los sistemas crticos, por lo general se da el


caso de que la propiedad ms importante es la
fiabilidad del sistema.
La fiabilidad de un sistema refleja el grado de
confianza en dicho sistema por parte del usuario.
Refleja el grado de confianza del usuario de que el
sistema va a funcionar como los usuarios esperan y
que no fallar' en condiciones normales de uso.
Utilidad y confiabilidad no son la misma cosa. Un
sistema no tiene que ser de confianza para ser til.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide5

Importancia de la fiabilidad

Sistemas que no son fiables y son


desconfiables, inseguros o no protegidos
pueden ser rechazados por sus usuarios.
Los costes de fallo del sistema pueden ser
muy altos.
Sistemas no confiables pueden causar la
prdida de informacin con una consiguiente
recuperacin de alto costo.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide6

Metodologas de desarrollo para sistemas


crticos

Los costos de error de sistemas crticos son


tan elevados que la metodologa de
desarrollo puede ser no rentable para otros
tipos de sistema.
Ejemplos de metodologas de desarrollo

Mtodos formales de desarrollo de software


Anlisis esttico
Garanta externa de la calidad

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide7

Sistemas socio-tcnicos crticos

Fallo de hardware

Fallo de software

El hardware falla debido a errores de diseo y


fabricacin o bien a que stos componentes han
finalizado su periodo de vida til.
Software falla debido a errores en su
especificacin, diseo o implementacin.

Fallo de funcionamiento

Operadores humanos cometen errores.


Actualmente tal vez la principal causa de los fallos
del sistema.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide8

Software de control para una bomba


de insulina

Utilizados por los diabticos para simular la


funcin del pncreas que produce insulina,
una hormona que metaboliza la glucosa en
la sangre.
Mide la glucosa en la sangre (azcar) con
micro-sensores y calcula la dosis de insulina
necesaria para metabolizar la glucosa.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide9

Estructura de la bomba de
insulina

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide10

Modelo de flujo de datos de la


bomba de insulina

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide11

Requerimientos de confiabilidad

El sistema se pondr a disposicin de


entregar la insulina cuando sea necesario
hacerlo.
El sistema actuar confiablemente y
entregar la cantidad correcta de insulina
para contrarrestar el actual nivel de azcar
en la sangre.
El requisito de seguridad esencial es que
excesivas dosis de insulina nunca deben ser
bombeadas ya que estas son
potencialmente mortales.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide12

Confiabilidad

La confiabilidad de un sistema equivale a la


fiabilidad del mismo.
Un sistema fiable es un sistema que es de
confianza para sus usuarios.
Principales aspectos de la confiabilidad son
los siguientes:

Disponibilidad;
Fiabilidad;
Seguridad;
Proteccin

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide13

Aspectos de confiabilidad

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide14

Otras propiedades de
confiabilidad

Reparabilidad

Mantenibilidad

Refleja el grado en que el sistema puede ser adaptado a


las nuevas necesidades;

Supervivencia

Refleja el grado en que el sistema puede ser reparado en


caso de un fracaso

Refleja el grado en que el sistema puede ofrecer servicios


bajo ataque hostil;

Tolerancia de error

Refleja el grado en que los errores introducidos por el


usuario pueden ser evadidos y tolerados.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide15

Mantenibilidad

Un atributo del sistema que se refiere a la facilidad


de reparar el sistema despus de que una falla ha
sido descubierta o cambiar el sistema a fin de incluir
nuevas caractersticas
De gran importancia para los sistemas crticos
puesto que comnmente se introducen fallas al
sistema debido a problemas de mantenimiento
La mantenibilidad es distinta de otros aspectos de la
confiabilidad, porque es un atributo esttico y no
dinmico. No contemplo ello en este curso (El
Autor).

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide16

Supervivencia

La capacidad de un sistema para seguir


prestando sus servicios a los usuarios frente
a un ataque deliberado o accidental
Este es un atributo de cada vez ms
importancia para los sistemas distribuidos,
cuya seguridad personal puede verse
comprometida
La supervivencia incluye la nocin de
resistencia - la capacidad de un sistema
para seguir en funcionamiento a pesar de
los fallos de componentes

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide17

Confiabilidad vs Funcionamiento

Sistemas poco fiables pueden ser rechazados por


sus usuarios
El costo de fallas del sistema puede ser muy alto
Es muy difcil de ajustar los sistemas para hacerlos
ms fiables
Es posible compensar sistemas de funcionamiento
pobre
Los sistemas no confiables pueden causar la
prdida de informacin valiosa

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide18

Confiabilidad y costos

Los costos de funcionamiento eficiente y confiable


tienden a aumentar de forma exponencial al
incrementar los niveles de confiabilidad requeridos
Hay dos razones para ello

El uso de tcnicas de desarrollo y hardware ms caros


que se requieren para alcanzar los niveles ms altos de
fiabilidad
El aumento de las pruebas y la validacin del sistema
que se necesita para convencer al cliente de que el
sistema ha logrado los niveles de fiabilidad requeridos

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide19

Confiabilidad y costos

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide20

La economa de la confiabilidad

Debido a costos muy elevados de logro de


fiabilidad, puede ser ms rentable aceptar
sistemas no confiables y pagar los costes de
fallos del mismo
Sin embargo, esto depende de factores sociales y
polticos. Repudiar supuestos sistemas no
confiables puede dar lugar a futuros negocios
perdidos
Depende del tipo de sistema - para sistemas
empresariales, en particular, los niveles de
confiabilidad modesta puede ser adecuada

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide21

Disponibilidad y fiabilidad

Fiabilidad

Disponibilidad

La probabilidad de fallo libre de la operacin del


sistema durante un perodo de tiempo
determinado en un entorno determinado para un
propsito determinado
La probabilidad de que un sistema, en un punto en
el tiempo, estar en funcionamiento y capaz de
ofrecer los servicios solicitados

Ambos de estos atributos pueden expresarse


cuantitativamente

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide22

Disponibilidad y fiabilidad

A veces es posible incluir la disponibilidad del


sistema en virtud de la fiabilidad del sistema

Obviamente, si un sistema no est disponible no se


hace entrega de los servicios especficos del
sistema

Sin embargo, es posible disponer de sistemas


de baja confiabilidad que deben estar
disponibles. Siempre y cuando los fallos en el
sistema puedan ser reparados rpidamente y
no daar los datos, la baja fiabilidad puede no
ser un problema
La disponibilidad toma en cuenta tiempo de
reparacin

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide23

Terminologa de la fiabilidad

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide24

Defectos y Fallos

Los fallos son por lo general una consecuencia de


los errores del sistema que se derivan de defectos
en el sistema
Sin embargo, los defectos no necesariamente
resultan en errores de sistema

El defectuoso estado del sistema puede ser temporal y


"corregido" antes de que un error surja

Errores no conducen necesariamente a los fallos en


el sistema

El error puede ser corregido por un sistema de deteccin


de errores incorporado, y ser recuperado
Puede protegerse de fallos mediante instalaciones
protectoras incorporadas o sistemas de detecciones.
Estos pueden, por ejemplo, proteger los recursos del
sistema de errores de sistema

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide25

Percepciones de confiabilidad

La definicin formal de la fiabilidad no siempre refleja la


percepcin del usuario acerca de la fiabilidad de un
sistema

Los supuestos que se hacen sobre el entorno en el que un


sistema ser utilizado pueden ser incorrectos
El uso de un sistema en un entorno de oficina puede ser muy
diferente de la utilizacin del mismo sistema en un entorno
universitario

Las consecuencias de los fallos en el sistema afecta a la


percepcin de confiabilidad
Limpiaparabrisas poco confiables de un coche pueden ser
irrelevantes en un clima seco
Las fallas que tienen consecuencias serias (tales como una avera
en el motor de un automvil) tienen mayor peso por parte de los
usuarios que otras fallas inadecuadas.

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide26

Logros de Confiabilidad

Evitacin de la culpa

Deteccin y eliminacin de defectos

Tcnica empleada en el desarrollo que se utiliza ya sea


para reducir al mnimo la posibilidad de errores o trampas
antes de que resulten introducindose errores al sistema
Son usadas tcnicas de verificacin y validacin que
aumentan la probabilidad de detectar y corregir errores
antes de que el sistema entre en servicio

Tolerancia a fallos

Tcnicas en tiempo de ejecucin que se utilizan para


garantizar que los defectos del sistema no dan lugar a
fallos de sistema y / o que los errores de sistema que no
dan lugar a fallos en el sistema

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide27

Modelado Confiable

Puede modelarse un sistema como un mapa de


entrada-salida donde algunas entradas se
traducirn en resultados errneos
La fiabilidad del sistema es la probabilidad de que
una determinada entrada estar dentro de un
conjunto de entradas que causan salidas
errneas
Diferentes personas utilizan el sistema en
diferentes formas, por lo que esta probabilidad no
es un atributo esttico del sistema, pero depende
del entorno del sistema

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide28

Correspondencia entre entradas


y salidas

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide29

Patrones del uso de Software

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide30

Mejora de la confiabilidad

X% de la eliminacin de los defectos en un sistema no


necesariamente mejoran la fiabilidad en un X%. Un
estudio de IBM demostr que la eliminacin del 60% de
los defectos de los productos result en un 3% de mejora
en la fiabilidad
Los defectos del programa pueden estar en las secciones
raramente ejecutadas del cdigo, de manera que tal vez
nunca sean encontrados por los usuarios. La eliminacin
de estos no afecta a la percepcin de fiabilidad
Un programa con defectos conocidos todava puede ser
visto como fiable por sus usuarios

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide31

Seguridad

La seguridad es una propiedad de un sistema que


refleja la capacidad del sistema para operar
normalmente o anormalmente, sin peligro de causar
lesiones o la muerte humana y sin dao para el
entorno del sistema
Es cada vez ms importante considerar seguridad del
software pues los dispositivos incorporan cada vez
ms sistemas de control basados en software
Los requisitos de seguridad son exclusivos, es decir
que excluyen situaciones indeseables en lugar de
especificar los servicios requeridos del sistema

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide32

Seguridad-criticidad

Sistemas de seguridad crticos primarios

Sistemas de seguridad crticos secundarios

Sistemas de software embebido cuyo fallo puede hacer


que el hardware asociado falle y amenace directamente a
la gente.
Sistemas cuyo fallo se traduce en fallas de otros
sistemas que pueden amenazar a la gente

Se hace un enfoque en los sistemas de seguridad


crticos primarios

Los sistemas de seguridad-crticos secundarios se


pueden considerar solamente sobre una base nica

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide33

La seguridad y la fiabilidad

La seguridad y la fiabilidad estn relacionadas


pero son distintas

En general, la fiabilidad y la disponibilidad son


condiciones necesarias pero no suficientes para un
sistema de seguridad

La fiabilidad se refiere a la conformidad con un


pliego de condiciones y la entrega de servicio
Seguridad hace referencia a que el
aseguramiento del sistema no pueda causar
dao alguno, independientemente de si
se ajusta a su especificacin o no

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide34

Sistemas confiables no seguros

Especificacin de los errores

Fallas de hardware que generan entradas


falsas

Si la especificacin del sistema es incorrecta,


entonces el sistema puede comportarse tal
como se especifica causando as un accidente

Difciles de prever en la especificacin

Comandos sensibles al contexto, es decir


que publican el comando correcto en el
momento inadecuado

A menudo es resultado de los errores de los


operadores

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide35

La terminologa de seguridad

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide36

Logros de seguridad

Evitar los peligros

Deteccin y eliminacin de peligros

El sistema est diseado de modo que algunas clases de


peligro no puede surgir.
El sistema est diseado de manera que los peligros se
detectan y se retiran antes de resultar en un accidente

Limitar los daos

El sistema incluye caractersticas de proteccin que


minimicen los daos que pueden derivarse de un
accidente

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide37

Accidentes normales

Los accidentes en los sistemas complejos raramente


tienen una nica causa, ya que estos sistemas estn
diseados para ser resistentes a un nico punto de fallo

Disear sistemas de forma que un nico punto de fallo no


provoque un accidente, es un principio fundamental del
diseo de sistemas de seguridad

Casi todos los accidentes son el resultado de


combinaciones de fallos de funcionamiento
Es probablemente el caso de que la previsin de todas
las combinaciones del problema, sobre todo, en
sistemas controlados por software es imposible, as que
alcanzar de manera completa la seguridad es imposible

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide38

Proteccin

La proteccin de un sistema es una


propiedad del sistema que refleja la
capacidad del sistema para protegerse de un
ataque exterior accidental o deliberado
La proteccin es cada vez ms importante a
medida que los sistemas emplean redes,
debido a la posibilidad de acceso externo al
sistema a travs de Internet.
La proteccin es un requisito previo esencial
para la disponibilidad, fiabilidad y seguridad

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide39

Proteccin Fundamental

Si un sistema es un sistema de red, es inseguro,


luego las declaraciones acerca de su fiabilidad y
su proteccin no son fiables
Estas declaraciones dependen de que el sistema
de ejecucin y el sistema que se desarroll sean
el mismo. Sin embargo, la intrusin puede
cambiar el sistema de ejecucin y / o sus datos
Por lo tanto, la fiabilidad y la garanta de
proteccin ya no son vlidas

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide40

La terminologa de proteccin

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide41

Los daos provocados por la


inseguridad

Denegacin de servicio

La corrupcin de los programas o datos

El sistema se ve obligado a un estado donde no se


dispone de los servicios normales de prestacin de
servicios o cuando es degradado
Los programas o datos en el sistema pueden ser
modificados de manera no autorizada

Divulgacin de informacin confidencial

Informacin que es administrada por el sistema puede


estar expuesta a personas que no estn autorizadas a
leer o utilizar esa informacin

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide42

Garanta de Proteccin

Evitar la vulnerabilidad

Ataque de deteccin y eliminacin

El sistema est diseado de modo que la vulnerabilidad


no se produzcan. Por ejemplo, si no hay ninguna
conexin de red externa a continuacin, las agresiones
externas son imposibles
El sistema est diseado para que los ataques a las
vulnerabilidades se detectan y neutralizan antes de que
deriven en una exposicin. Por ejemplo, detectores de
virus encuentran y eliminan los virus antes de infectar un
sistema

Limitacin de la exposicin

El sistema est diseado para que las consecuencias


adversas de un ataque con xito se reducen al mnimo.
Por ejemplo, una copia de seguridad de la informacin
permite que se restablezca informacin daada

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide43

Puntos clave

Un sistema crtico es un sistema donde el fracaso


puede conducir a altas prdidas econmicas, daos
fsicos o de amenazas a la vida.
La confiabilidad en un sistema refleja la confianza
del usuario en ese sistema
La disponibilidad de un sistema es la probabilidad
de que pueda estar disponible para prestar servicios
cuando se solicite
La fiabilidad de un sistema es la probabilidad de que
los servicios del sistema sern entregados, tal como
se especifica
Fiabilidad y disponibilidad son generalmente vistos
como condiciones necesarias pero no suficientes
para la seguridad y la proteccin

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide44

Puntos clave

La fiabilidad se relaciona con la probabilidad de que se


produzca un error en el uso operativo. Un sistema con
fallas conocidas puede ser fiable
La proteccin es un atributo del sistema que refleja la
capacidad del sistema para funcionar sin poner en
peligro las personas o el entorno
La seguridad es un atributo del sistema que refleja la
capacidad del sistema para protegerse de las
agresiones externas
La mejora de la fiabilidad requiere un enfoque sociotcnico para el diseo, en la que considera a los seres
humanos, as como el hardware y el software

IanSommerville2004

SoftwareEngineering,7thedition.Chapter3Slide45

Potrebbero piacerti anche