MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.
-
Upload
quique-murillo -
Category
Documents
-
view
223 -
download
0
Transcript of MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.
![Page 1: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/1.jpg)
MEI – SEiU Q1 2012/2013Felipe CaicedoDaniel Yuste
![Page 2: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/2.jpg)
• ¿Qué es un Sistema Crítico?
• Requisitos de un lenguaje para SC
• Lenguajes de programación para SC
• Demo-Comparativa
• Conclusiones
Contenido
2
![Page 3: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/3.jpg)
¿Qué es un sistema crítico?
3
•Sistema cuyo fallo o mal funcionamiento puede dar lugar a:
oDaños:PersonalesAmbientales
oPérdidas
•No se puede detener ante un fallo o error del sistema
![Page 4: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/4.jpg)
Características de un SC
• Seguro (safety)
• Fiable (reliability)
• Protegido
• Redundante
•Estable
4
![Page 5: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/5.jpg)
Características de un SC
• Prevención y detección de defectos
• Detección de defectos
• Tolerante a defectos
•Determinista
5
![Page 6: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/6.jpg)
Requisitos de un lenguaje para SC
• Robusto
• Redundante
• Concurrente
• Facilidad para verificarlo (análisis estático y dinámico)
• Mantenibilidad
• Entorno de programación
6
Capaz de implementar las características de los SC
![Page 7: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/7.jpg)
Lenguajes de programación
Haskell
Erlang(Ericsson
LANGuage)
SPARK(SPADE
ADA Kernel)
ADA (Advanced
Data Analysis)
C/C++
Eiffel
MISRA C+
+
7
![Page 8: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/8.jpg)
Lenguajes de programación
ADA• Diseño de software robusto y fiable• Énfasis en la reutilización del software
• Ada 83 (basado en objetos)• Legibilidad• Tipado estricto• Construcción de grandes programas• Manejo de excepciones y verificaciones en tiempo de
ejecución• Abstracción de datos• Procesamiento paralelo• Unidades genéricas
• Ada 95 (orientado a objetos)• Herencia• Interface con otros lenguajes
8
![Page 9: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/9.jpg)
9
Lenguajes de programación
ADA• Es uno de los mas utilizados (recomendado por muchos estándares de seguridad)
• Grupo de trabajo ISO que se encarga de definir y revisar las directrices para su uso
• Semántica bien definida
• Sintaxis con grado de redundancia elevado
![Page 10: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/10.jpg)
with Ada.Text_IO, Ada.Strings.Unbounded; use Ada.Text_IO, , Ada.Strings.Unbounded;
procedure Hola_Mundo is Rist : Unbounded_String :=
To_Unbounded_String ("¡Hola, mundo!"); begin
Put (Rist);end
Hola_Mundo;
10
Lenguajes de programación
ADA
![Page 11: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/11.jpg)
• Herramientas de análisis y simple
• Comprueba propiedades complejas de su código
• Herramientas interactivas durante el desarrollo
• Ejecutar análisis en programas incompletos
11
Lenguajes de programación
SPARK
![Page 12: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/12.jpg)
12
Lenguajes de programación
SPARK• Es un subconjunto de ADA
• Elimina características consideradas peligrosas en los sistemas críticos
• Proporciona herramientas para el análisis del flujo de datos e información
![Page 13: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/13.jpg)
with Spark_IO;--# inherit Spark_IO;--# main_program;
procedure Hola_Mundo is --# global in out Spark_IO.Outputs;
begin spark_IO.Put_Line(Spark_IO.Standard_
Output, “Hola Mundo!”, o);end Hola_Mundo;
13
Lenguajes de programación
SPARK
![Page 14: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/14.jpg)
•Es un lenguaje de programación concurrente
•Es un lenguaje funcional, con evaluación estricta, asignación única, y tipado dinámico
•Fue diseñado en la compañía Ericsson para realizar aplicaciones distribuidas, tolerantes a fallos, soft-real-time y de funcionamiento ininterrumpido
14
Lenguajes de programación
Erlang
![Page 15: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/15.jpg)
15
Lenguajes de programación
Erlang• Potente conjunto de primitivas para crear procesos y comunicar entre los mismos
• Cambio en caliente de código
• Creación y gestión de procesos es trivial
![Page 16: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/16.jpg)
-module(hola2). -export([hola_mundo/0, saludar/0, saludar/1]). hola_mundo() ->
io:format("Hola mundo~n"). saludar(Nombre) ->
io:format("Hola ~s ~n ", [Nombre] ). saludar() ->
saludar("tu").
16
Lenguajes de programación
Erlang
![Page 17: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/17.jpg)
17
Lenguajes de programación
Eiffel• Lenguaje Orientado a objetos
• Centrado en la construcción de software robusto
• Permite diseño por contrato
• Soporta herencia
• Implementa administración automática de memoria
![Page 18: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/18.jpg)
18
Lenguajes de programación
Eiffel• Protección estática contra referencias nulas
• SCOOP (Simple Concurrent-Oriented Programming)
• Tiene la intención de promover una respuesta sencilla, extensible, reutilizable y confiable
• Proporciona técnicas de optimización extensas
![Page 19: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/19.jpg)
class HELLO_WORLDcreate makefeature make is do io.put_string ("Hola Mundo!%N") endend
19
Lenguajes de programación
Eiffel
![Page 20: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/20.jpg)
Demo-Comparativa
20
![Page 21: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/21.jpg)
Conclusiones
21
ADA SPARKS Erlang Eiffel
Robusto Mucho Mucho Normal Normal
Redundante Mucho Mucho Mucho Mucho
Concurrente Mucho Mucho Mucho Normal
Verificación Baja Mucho Mucho Mucho
Mantenibilidad
Mucho Mucho Mucho Mucho
Entorno de programación
Mucho Mucho Normal Mucho
![Page 22: MEI – SEiU Q1 2012/2013 Felipe Caicedo Daniel Yuste.](https://reader035.fdocuments.net/reader035/viewer/2022062315/5665b4411a28abb57c906d0d/html5/thumbnails/22.jpg)
Gracias
22