Please enable JavaScript.
Coggle requires JavaScript to display documents.
Arquitectura de software en tiempo de ejecución, image, Un ejemplo es el…
Arquitectura de software en tiempo de ejecución
Arquitectura de software
¿Es importante?
Genera la documentación técnica.
Define las tecnologías.
Crea una estructura de la aplicación que sea fácilmente escalable.
Nos traza un camino a seguir para lograr cumplir con los requerimientos de la aplicación.
Estructura
etapas principales:
Requerimientos
Se recolecta información y se documenta los requerimientos que influyen en la arquitectura de la aplicación.
Análisis
Se profundiza en los procesos de negocio que se involucran con el sistema.
Diseño
Se define las tecnologías adecuadas para la solución del problema.
Documentación
Documentación creada para referencia y sea el marco de trabajo de todos.
Desarrollo
Los programadores cumplen con sus tareas específicas y el arquitecto estará probando los diferentes módulo para hacer mejoras.
Pruebas
En esto paso se hacen pruebas gracias a la documentación, cave recalcar que si la pate de diseño no funciona esta hace métricas de rendimiento de la aplicación y saber si mejora o no.
Implementación
Se monta el sistema en producción y evaluar su comportamiento, verificando que funciona correctamente.
¿Qué es?
Son patrones o lineamientos que ayudan
a la construcción de un programa(aplicación).
Los arquitectos de software son parte clave de los proyectos de las compañías que emiten software, cave decir que pueden tener casos en donde trabajan en el desarrollo de secciones o aplicaciones especificas.
HW y SW para Manejo de Tiempo Real
Software
✓Calendarios
✓Timeouts
✓Retrasos de procesos: absolutos y relativos.
✓Clock package en ADA
✓Especificación de tiempos :Caracterización.
✓Chequeo de tiempos para la tolerancia de fallos
Harward:
✓Timers
✓Watchdog
✓Procesador
✓Procesador de comunicaciones
✓Reloj
Arquitecturas de tiempo real
Nivel de nodo:
Cada procesador debe proveer velocidad y predecibilidad en la ejecución de tareas de tiempo real, manejo de interrupciones, e interacción con el mundo externo.
Nivel de sistema
Las comunicaciones y la tolerancia a fallos son 2 aspectos que hacen difícil la predictibilidad. De cualquier manera, estos aspectos son inevitables.
Diseño de Software de Arquitectura de Tiempo Real
debe reaccionar a eventos generados por el hardware y emitir señales de control de respuesta a estos eventos
Que es?
es un software cuyo correcto funcionamiento depende de los resultados producidos por el mismo y del instante de tiempo en el que se producen estos resultados.
sistema de tiempo real blando
es un sistema cuyo funcionamiento degrada si los resultados no se producen correctamente de acuerdo con los requerimientos temporales especificados.
sistema de tiempo real duro
Es un sistema cuyo funcionamiento es incorrecto si los resultados no se producen de acuerdo a la especificación temporal.
Estímulos
Periódicos
Son generados normalmente por sensores asociados al sistema.
Aperiódicos
Se generan por actuadores o sensores.
Sistema de tiempo real
Responden a estímulos que ocurren en diferentes instantes de tiempo por lo tanto se tiene que organizar su arquitectura, tan pronto como se reciba un estímulo, el control será transferido al controlador adecuado.
Además son aquellos en los cuales no tiene importancia el usuario, sino los procesos.
Sus facilidades de este sistema operativo es que son accedidas a través del sistema de soporte de tiempo de ejecución( run-time sistema) para el lenguaje adecuado de programación en tiempo real.
Generalización de un estímulo-respuesta
En base a un sistema de tiempo real, esto conduce a un modelo arquitectónico genérico abstracto en el que tres tipos de procesos.
Procesos computacionales:
Calculan la respuesta requerida para el estímulo recibido del sistema.
Procesos de control de actuadores
Controlan el funcionamiento del actuador.
Este modelo permite recoger rápidamente los datos desde el sensor y permite que el procesamiento y su respuesta asociada al actuador se genere mas tarde.
Los lenguajes de programación desarrollados para sistemas de tiempo real, incluyen facilidades para acceder al hardware del sistema, y esto debería ser posible para predecir la duración de operaciones particulares
Un ejemplo es el lenguaje C, que permiten generar código eficiente y también se utilizan en general.