Desarrollo de Sistemas Criticos
Objetivos:
Exponer las técnicas de implementación que se requieren para desarrollar un sistema crítico.
Aprender lo importante que es evitar los errores en la realización de un sistema confiable.
Mostrar los elementos que caracterizan un software confiable.
Debido a que los sistemas críticos tienen funciones como son el control de maquinaria automática,centrales de telecomunicaciones o aviones, sistemas médicos, entre otras, necesitan de forma obligatoria un nivel de confiabilidad alto. Para poder lograr alcanzar estos niveles de confiabilidad, se suele usar varias técnicas de desarrollo que son especiales para asegurar que el sistema cumpla con las características de seguridad, protección y fiabilidad.
Cuando se desea desarrollar un softwareconfiable se puede utilizar dos aproximaciones complementarias que son:
1. Prevención de defectos. En este caso se debe utilizar aproximaciones al desarrollo del software para el proceso de diseño e implementación del sistema. Dichas aproximaciones ayudan a evitar errores de programación y minimizan el número de defectos que se pueden presentar en un programa.
2. Detección de defectos. Esta técnica esutilizada para descubrir y validar los defectos que pueda tener un programa en los procesos de verificación y validación antes de que éste sea desplegado para su uso.
3. Tolerancia a defectos. Por medio de la tolerancia a defectos se logra un sistema diseñado para que los defectos que puedan ocurrir de forma inesperada durante la ejecución en el sistema puedan ser detectados y gestionados, y deeste modo, no provoquen fallos de funcionamiento.
La detección de defectos es un tema importante
Para poder obtener confiabilidad en un sistema, se requiere de redundancia y diversidad, que son estrategias cotidianas para evitar los fallos de ejecución en los sistemas.
Para ejemplificar la diversidad, supongamos que cierta persona quiere realizar una inversión en la bolsa de valores, lo quemás le conviene es colocar sus inversiones en diferentes compañías pues de lo contario podría perderlo todo si lo invierte en una sola y ésta quiebra. Eso es diversidad.
Por otra parte, si una persona guarda en su casa baterías y focos de reserva, podrá recuperarse sin problema de fallos eléctricos. De igual forma y referido al software, se debería realizar siempre copias de seguridad de lascomputadoras para respaldarse en caso de que se presentase un fallo en el disco. Esto ejemplifica el concepto de redundancia.
Cuando se usa la diversidad y redundancia los defectos pueden detectarse antes de que produzcan fallos de funcionamiento, y de este modo, el sistema puede continuar aunque los componentes individuales están fallando.
Por el contrario cuando no hay diversidad, si ocurre unfallo de funcionamiento en el componente duplicado se tendrá como resultado un fallo de funcionamiento en todo el sistema. Cuando se tiene un sistema en el cual la disponibilidad se tiene como requerimiento crítico, regularmente se dispone de servidores que se ponen en funcionamiento de forma automática cuando otro servidor tiene una falla. Éstos pueden ser de diferentes tipos y pueden ejecutarsesobre diferentes sistemas operativos, para asegurar que los ataques sobre el sistema no provoquen vulnerabilidad. Un ejemplo de redundancia y diversidad en el área del software es el uso de diferentes sistemas operativos.
Cuando se desea conseguir procesos confiables también se puede utilizar la diversidad y la redundancia. Pueden usarse como técnicas las inspecciones de programas y el análisisestático para encontrar defectos, tal y como sucede cuando se prueba un programa. También estas técnicas de validación resultan ser complementarias.
El hecho de agregar a los sistemas diversidad y redundancia ocasiona que se conviertan en sistemas más complejos y a la vez son más difíciles de entender. Debido a esto, resulta una mayor probabilidad de que los programadores originen errores y menos...
Regístrate para leer el documento completo.