Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características...

52
Materia: Sistemas Electrónicos Embebidos Profesor: Sangiovanni Dante Ingeniería del Software Embebido

Transcript of Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características...

Page 1: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Materia: Sistemas Electrónicos Embebidos

Profesor: Sangiovanni Dante

Ingeniería del Software

Embebido

Page 2: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

2

¿Qué es un Sistema embebido?

Una definición de uso general de los sistemas

embebidos es que son dispositivos que se utilizan para

controlar, supervisar o ayudar en la operación de

equipos, maquinaria o planta. “Embebido” refleja el

hecho de que son una parte integral del Sistema. En

muchos casos, su “arraigo” puede ser tal que su

presencia está lejos de ser evidente para el observador

casual.

Instituto de Ingeniería Eléctrica (IEE)

Page 3: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

3

Características de los sistemas embebidos (1)

Características básicas:

Número limitado de funciones predefinidas para ejecutar;

Fuente de alimentación limitada y la administración de energía

efectiva;

Disponibilidad de recursos de reserve para situaciones inesperadas.

Funcionamiento en tiempo real (con mayor frecuencia);

Periféricos anchos e interfaces

Interfaces:

Interfaces de operador (Interfaces Máquina-Hombre - HMI) –

teclados, monitores, interruptores, botones, indicadores emisores

individuales o grupales de los diferentes tipos de señales, motores

eléctricos, solenoides y otros.

Interfaces eléctricas (interfaces con otros components y dispositivos)

Interno - I2C, SPI, ISA y otros.

Externos - RS232, TTY, Ethernet, Centronics, FlexRay, CAN, LIN,

RF y otros

Page 4: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

4

Características de los sistemas embebidos (2)

Plataforma de sistemas embebidos:

Microprocesador (MP o P) y los microcontroladores (MCU), que tienen

menos poder de cómputo, pero varios periféricos;

Arquitecturas - Von Neumann y Harvard;

Utilizan P y MCU - CISC (Complex Instruction Set Computer) y más a

menudo RISC (Reduced Instruction Set Computer);

Las populares familias de procesadores RISC: ARC (ARC International),

ARM (ARM Holdings), AVR (Atmel), PIC (Microchip), MSP430 (TI) y otros;

CISC CPUs: Intel y Motorola;

Por lo general en el interior hay una memoria cache y procesamiento de la

canalización de instrucciones;

Memoria para datos e instrucciones: RAM, PROM - OTP (Programable de

una sola vez), EEPROM o memoria Flash;

Periféricos: Propósito general Entrada /Salida - GPIO, temporizadores, ADC,

DAC y más.

Page 5: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

5

Características de los sistemas embebidos (3)

Comunicación:

RS-232, RS-422, RS-485, UART / USART (Receptor / Transmisor universal

síncrono y asíncrono);

I2C (Inter-Integrated Circuit – Circuito integrado), SPI (Serial Peripheral Interface

Bus – Bus de la interfaz de periféricos serie), SSC and ESSI (Enhanced

Synchronous Serial Interface – Interfaz mejorada serie síncrona), USB (Bus

Universal en serie);

Protocolos de comunicación de red: Ethernet, CAN (Controller Area Network –

Controlador del área de red), LonWorks etc.

Software: Popular OS – QNX4 RIOS, Linux embebido y Linux-based (Android,

etc.), iOS, Windows CE, etc.

Herramientas para probar y corregir (depuración)

JTAG (Joint Test Action Group) – una interfaz especializada para la prueba

saturada PCB;

ISP (In-System Programming) – Programación de circuito;

ICSP (circuito de programación en serie) – un método para la programación

directa del microcontrolador, por ejemplo, de la serie PIC y AVR;

BDM (Modo de depuración de fondo) – utilizado principalmente en productos de

Freescale;

Page 6: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

6

Sistemas embebidos: Ejemplos

Page 7: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Ingeniería del Software

Ingeniería del Software (SE): la aplicación de un enfoque disciplinado cuantificable sistemático, con el diseño, desarrollo, operación y mantenimiento de software, y el estudio de estos enfoques;

Es decir, la aplicación de la ingeniería del software.

El plazo es de 45 años: conferencias de la OTAN– Garmisch, Alemania, 7-11 octubre, 1968

– Roma, Italia, 27-31 octubre, 1969

La realidad está finalmente empezando a llegar– La informática como base científica

• ¿Otras bases científicas?

– Muchos aspectos se han hecho sistemáticos: • Métodos / metodologías / técnicas

• Lenguajes

• Herramientas

• Procesos - Instrumentos7

Page 8: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

¿Por qué estas dificultades?

SE es una marca única de la ingeniería

– El Software es maleable

– La construcción del Software es humano-intensivo

– El Software es intangible

– Problemas del Software son complejos sin precedentes

– El Software depende directamente del hardware.

• Está en la parte superior del Sistema de ingeniería “cadena

alimentaria”

Las soluciones del software requieren rigor inusual

– El software tiene carácter operativo discontinuo

8

Page 9: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Ingeniería del software ≠ Programación del Software

Programación del Software

– Desarrollador individual

– Aplicaciones de “juguete”

– Esperanza de vida corta

– Pocos actores o actores individuales

• Arquitecto = Desarrollador = Gerente = Tester = Cliente =

Usuario

– Uno de un Sistema tipo

– Construido desde cero

– Mantenimiento mínimo 9

Page 10: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Ingeniería del software ≠ Programación del Software

Ingeniería del software

– Equipos de desarrolladores con multiples funciones.

– Sistemas complejos

– Vida útil indefinida

– Numerosos grupos interesados

• Arquitecto ≠ Desarrollador ≠ Gerente ≠ Tester ≠ Cliente ≠ Usuario

– Las familias del sistema

– Reutilizar para amortizar costes

– Mantenimiento representa más del 60% de los costos generales de desarrollo

10

Page 11: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Ingeniería del software ≠ Programación del Software

Ingeniería de sistemas

– Campo interdisciplinario de la ingeniería que se centra en cómo los

proyectos complejos de ingeniería deben ser diseñados y gestionados;

– Se ocupa de todos los aspectos del desarrollo del Sistema

informático;

– Identifica las funciones de hardware, software, personas, bases de

datos y otros elementos del Sistema que participan en ese Sistema que

se va a desarrollar.

– Ingeniería del software

– Es una parte de la ingeniería de sistemas a nivel de usuario

– Decir los aspectos prácticos del desarrollo y distribución de software

útil.11

Page 12: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Aspectos de gestión económica y de SE

La produccion de software =mantenimiento + desarrollo (evolución)

Costes de mantenimiento > 60% de todos los costs de desarrollo

– 20% correctivo

– 30% adaptativo

– 50% perfectivo

Desarrollo más rápido no siempre es preferible

– Mayores costos por adelantado pueden sufragar los costos aguas abajo.

– Software mal diseñado / implementado es un factor de coste crítico.

12

Page 13: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Componentes típicos de software embebido

13 of 13

Casi idéntico a los sistemas generales informáticos

Software de aplicación

Controlador de dispositivo

Page 14: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Componentes típicos de software embebido (cont.)

14 of 14

Middleware – ¿Qué es? Middleware es un software que ha sido extraído de la capa de aplicación por una

variedad de razones. Una de las razones es que ya puede ser incluido como parte

del paquete del Sistema operativo fuera de la plataforma OS.

Otras razones para eliminarlo de la capa de aplicación son: permitir la

reutilización en otras aplicaciones, para reducir costes o el tiempo de desarrollo

mediante la compra off-the-shelf a través de un proveedor de terceros, o para

simplificar el código de la aplicación.

En los términos más generales, el software middleware es el software del

Sistema que no es el núcleo OS del Sistema operativo, controladores de

dispositivos, o software de aplicación.

A continuación se muestra el middleware en el Modelo de Sistemas Embebidos

(ver más en http://www.eetimes.com/document.asp?doc_id=1276764

Page 15: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Bus de datos

Memoria

De datos

Memoria

de programa

interrupciones

Digital o/p

Analog o/p

Digital i/p

Analog i/p

ENTRADAS SALIDAS

Links A otros sistemas

Interfaz de Usuario

Bus de direcciones

CPU

Analógico

Front End

Digital

i/p Ports

Módulos Interfaz Usuario

Digital

o/p Puertos

D/A,

Aislamiento

Comms:

ASC, SSC,

USB, IIC,

IrDA, etc.

Soporte:

Temporizad

or de

guarda

15 of 15

Page 16: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Desarrollo del ciclo de vida de software. Modelo Cascada

Requisitos

Diseño

Implementación

Integración

Validación

Despliegue

16

Page 17: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Evaluate alternatives,identify, resolve risks,develop prototypes

Develop, verifynext-level productPlan next phases

Desarrollo de ciclo de vida de software. Modelo espiral

17

Determinar objetivos, alternativas, limitaciones

Evaluar alternativas, identificar, solucionarriesgos, desarrollarprototipos

Planificar lassiguientes fases

Desarrollar, verificarlos productos del siguiente nivel

Page 18: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

18

Hardware-Software Co-Diseño de Sistemas Embebidos

El Software que basa su

funcionalidad en los

productos embebidos de hoy

causan retrasos en la

completitud de los proyectos

si se tiene que esperar al

prototipo de hardware para

empezar el desarrollo de

software y su depuración.

Diseño concurrente y

verificación de hardware y

software es una tendencia que

reduce el tiempo de

lanzamiento al mercado.

(ver más en [4, 5] )

Page 19: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Requisitos

Problema de definición → Especificación de requisitos

– Determinar exactamente qué quiere el cliente y el usuario.

– Desarrollar un contrato con el cliente

– Especificar qué va a hacer el software de producto

Dificultades

– El cliente solicita el producto que no es adecuado

– El cliente no conoce el software

– Las especificaciones son ambiguas, inconsistentes e incompletas.

19

Page 20: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Arquitectura/Diseño

Especificación de requisitos→ Arquitectura/Diseño

– Arquitectura: descomponer el software en módulos con interfaces

– diseño: desarrollo de las especificaciones del módulo (algoritmos, tipos de datos)

– Mantener un registro de las decisiones de diseño y trazabilidad

– Especifica cómo el product de software hace sus tareas.

– Dificultades

– La falta de comunicación entre los diseñadores de módulos

– El diseño puede ser incoherente, incompleto y ambiguo.

20

Page 21: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Arquitectura vs. Diseño[Perry & Wolf 1992]

La Arquitectura tiene que ver con la selección de los

elementos arquitectónicos, sus interacciones y las

limitaciones de los elementos y sus interacciones necesarias

para proporcionar un marco en el que se cumplan los

requisites y que sirva como base para el diseño.

El diseño se ocupa de la modularización y las interfaces

detalladas de los elementos de diseño, sus algoritmos y

procedimientos, y los tipos de datos necesarios para apoyar

la arquitectura y para satisfacer los requisitos.

21

Page 22: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Implementación e Integración

Diseño → Implementación

– Implementar módulos; verificar que cumplen con sus especificaciones

– Combinar módulos de acuerdo con el diseño

– Especifica cómo el product de software realiza sus tareas

Dificultades

– Errores de interacción del módulo

– Orden de integración puede influir en la calidad y la productividad

22

Page 23: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Desarrollo basado en componentes

Desarrollar components generalmente aplicables de un

tamaño razonable y reutilizarlos a través de sistemas.

Asegurarse de que son adaptables a los diferentes contextos

Extender la idea más allá del código en el desarrollo de otros

artefactos

Pregunta: ¿Qué viene primero?

– Integración, a continuación despliegue

– Despliegue, a continuación integración

23

Page 24: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Diferentes componentes

Software de terceros “piezas”

Los Plug-ins de efectos/ complementos

Applets

Frameworks

Sistemas abiertos

Infraestructuras de objetos distribuidos.

Documentos compuestos

Los sistemas heredados

24

Page 25: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Verificación y validación

¿Qué es verificación y validación?

Verificación

La verificación confirma que el trabajo de los productos

reflejan adecuadamente los requisitos prescritos para los

mismos. En otras palabras, la verificación asegura que

“el product se ha construido correctamente”

Validación

La validación confirma que el product, según lo previsto,

cumplirá con su uso previsto. En otras palabras, la

validación asegura que “has construido lo correcto”.

25

Page 26: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Verificación y validación ¿Cómo actúa?

26

Modelo de desarrollo de sistema

Page 27: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Calidades de Software

Exactitud– Óptima calidad

– establecido w.r.t., la especificación de los requisitos

– absoluta

Confiabilidad– Propiedad estadística

– Probabilidad de que el software funcionará como se esperaba durante

un período de tiempo dado

– Relativo

Robustez– Comportamiento “razonable” en circunstancias imprevistas

– subjectiva

– Un requisito especificado es un problema de la corrección;

un requisito no especificado es un problema de robustez.

27

Page 28: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Usabilidad– Capacidad de que los usuarios finales puedan utilizer fácilmente el

software

– Extremadamente subjetivo.

Comprensibilidad– Capacidad de los desarrolladores a entender fácilmente los artefactos

producidos

– La calidad interna del producto

– subjetivo

Verificabilidad– La facilidad de establecer las propiedades deseadas

– Realizado por análisis formal o pruebas

– Calidad interna

Rendimiento – Equiparado con la eficiencia

– Evaluables mediante la medición, el análisis y simulación.

Calidades de software (cont.)

28

Page 29: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Desarrollo– Posibilidad de añadir o modificar la funcionalidad

– Aborda el mantenimiento adaptativo y perfectivo.

– problema: La evolución de la implementación es muy fácil

– La evolución debe comenzar en los requisitos o en el diseño

Reutilización– Capacidad de construir un Nuevo software a partir de piezas existentes

– Debe ser planificado

– Ocurre a todos los niveles: desde la gente a los procesos, desde los

requisitos hasta el código.

Interoperabilidad– Capacidad de los (sub)sistemas de software a cooperar con los demás

– Fácilmente integrable en sistemas más grandes.

– Técnicas communes que incluyen APIs, protocolos plug-in, etc.

Calidades de Software (cont.)

29

Page 30: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Calidad de software (cont.)

Escalabilidad– Capacidad de un Sistema de software para crecer en tamaño, mientras

que mantiene sus propiedades y cualidades.

– Asume el mantenimiento y la capacidad de evolucionar

– Objetivo de desarrollo basado en componentes

Heterogeneidad– Capacidad de componer un Sistema de piezas desarrolladas en varios

lenguajes de programación, en multiples plataformas, por multiples

desarrolladores, etc.

– Necesario para la reutilización.

– Objetivo de desarrollo basado en componentes

Portabilidad– Capacidad de ejecución en entornos nuevos con un mínimo esfuerzo.

– Puede ser planeado mediante el aislamiento de componentes

dependientes del entorno.

– Necesarios para la aparición de los sistemas altamente distribuidos

(por ejemplo, Internet) 30

Page 31: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Evaluar calidades del software

Las calidades deben ser medibles

La medición require que las calidades sean definidas de

forma precisa

La mejora requiere una medición precisa

Actualmente la mayoría de las calidades se definen de

manera informal y son difíciles de evaluar

Page 32: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Ingeniería del Software “Axiomas”

La adición de desarrolladores a un proyecto probablemente

resultará en más retrasos y acumulación de costes.

Tensión básica de la ingeniería de software

– Mejor, más barato, más rápido – elegir cualquiera de los dos¡

– Funcionalidad, escalabilidad, rendimiento – elegir cualquiera de los dos¡

Cuanto más dura un fallo en el software

– Mayores son los costes de la detección y corrección del fallo

– Menos probable es que sea debidamente corregido

Hasta el 70% de todos los fallos detectados en los proyectos

de software a gran escala se introducen en los requerimientos

y el diseño

– La detección temprana de las causas de los fallos puede reducir sus

costos resultantes por un factor de 100 o más.

Page 33: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Despliegue y evolución

Operación → Cambio

– Mantener el software durante / después de la operación del usuario

– Determinar si el product todavía funciona correctamente

Dificultades

– Diseño rígido

– Falta de documentación

– Rotación de personal

33

Page 34: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Principios de la Ingeniería del Software

Rigor y formalidad

La separación de los asuntos de interés

– Modularidad y descomposición

– Abstracción

Anticipación del cambio

Generalidad

Incrementalidad

Escalabilidad

Composicionalidad

Heterogeneidad

34

Page 35: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

35

Arquitectura del Software

Arquitectura del Software es la organización fundamental de

un Sistema, dentro de sus componentes, las relaciones entre

sí y con el entorno, y los principios que rigen su diseño y

evolución.

La arquitectura del Software abarca el conjunto de decisionesimportantes sobre la organización de un Sistema de software

Selección de los elementos estructurales y sus interfaces por los que se compone un Sistema.

Comportamiento como se especifica en las colaboraciones entre esos elementos.

Composición de estos elementos estructurales y de comportamiento en subsistemas más grandes.

El estilo arquitectónico que guía esta organización

Page 36: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

36

Arquitectura del software Embebido

Estructura de Software y la complejidad de un Sistema embebido

pueden variar significativamente según la aplicación

Las arquitecturas de software de uso general incluyen:

Lazos de control simples

Interrupción del Sistema controlado

Sistema multitarea no preferente

La multitarea preventive o multi-threading (incluye los sistemas

operativos en tiempo real – RTOS)

Microkernels - micronúcleos (un paso adelante respecto a un RTOS

para incluir la asignación de memoria, sistemas de archivos, etc)

Kernel Monolitico (un relativo gran kernel con capacidades

sofisticadas, se adaptan a un entorno embebido). Linux embebido y

Windows CE Móviles y embebidos son algunos ejemplos.

Page 37: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

37

Sistemas operativos embebidos

Tradicional OS- Grandes requerimientos de memoria- Arquitectura multiamenazas- Modelo I/O (entrada/salida)- Núcleo y separación de usuario- No hay restricciones de energía- Amplios recursos disponibles

Características deseadas para EOS- Huella de memoria pequeña- Computo eficiente- Protocolos de comunicación- Interfaz fácil de exponer datos- Apoyar el diseño de aplicaciones

diversas- Forma fácil de programar, actualizar y

depurar aplicaciones de red.

Page 38: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

38

Algunos sistemas operativos integrados

RTOSs

pSOS

VxWorks

VRTX (Versátil en tiempo real)

uC/OS-II

Java RTS etc.

Palm OS (fuente: Wikipedia)

Sistema operative embebido desarrollado inicialmente por U.S. Robotics-owned

Palm Computing, Inc. para asistentes digitales personales (PDAs) en 1996

SymbianOS (fuente: Wikipedia)

Sistema operativo diseñado para dispositivos móviles por SymbianLtd. (se

ejecuta generalmente en OMAP (Plataforma de aplicaciones multimedia abierta)

procesadores, los cuales generalmente incluyen un propósito general de

arquitectura en el núcleo del procesador ARM más uno o más coprocesadores

especializados.

Android

Projecto abierto Handset Alliance

Basado en núcleo Linux 2.6 (http://code.google.com/android/)

Page 39: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

39

Algunos sistemas operativos embebidos (cont.)

Windows CE (WinCE) (fuente: Wikipedia)

Sistema operativo de Microsoft para ordenadores minimalistas y sistemas

embebidos

WinCE es un Sistema operative muy diferente, en lugar de una version

abreviada del escritorio de Windows

Linux embebido (uClinux, ELKS, ThinLinux) (fuente: Wikipedia)

El uso de un Sistema operativo Linux en sistemas informáticos integrados

Según la encuesta realizada por Venture Development Corporation, Linux

fue utilizada por el 18% de los ingenieros

Versiones embebidas de Linux están diseñados para dispositivos con

recursos relativamente limitados, tales como teléfonos móviles y

decodificadores

Dado que los dispositivos integrados se utilizan para fines específicos en

lugar de fines generales, los desarrolladores optimizan sus distribuciones de

Linux embebido para conseguir las configuraciones de hardware específicas

y las situaciones de uso.

Page 40: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

40

Sistemas embebidos de tiempo Real

Los sucesos de procesos de sistemas de tiempo real.

Los eventos ocurridos en las entradas externas provocan

el que otros eventos tengan lugar como salidas (outputs)

Minimizar el tiempo de respuesta suele ser un objetivo

principal, o de lo contrario todo el Sistema puede dejar de

funcionar correctamente.

Los tipos de sistemas embebidos en tiempo real

Tiempo real Estricto (Hard) — por ejemplo, sistemas de control de

vuelos

Tiempo real Flexibles (Soft) — por ejemplo, Sistema de

adquisición de datos.

Tiempo real (Real) — por ejemplo Sistema de guía de misiles

Tiempo real firmes (Firm)

Page 41: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

41

Tipos de sistemas en tiempo real

Tiempo Real Estricto (Hard) – sistemas en los que es

absolutamente imperativo que las respuestas ocurran dentro

del plazo requerido. Por ejemplo: Sistemas de control de vuelo.

Tiempo Real Flexible – sistemas en los que los plazos son

importantes pero que todavía funcionarán correctamente si se

determinan plazos que ocasionalmente no se cumplan. Por

ejemplo: El Sistema de adquisición de datos.

Tiempo real (Real) – sistemas que son estrictos en tiempo

real y su tiempo de respuesta es muy corto. Por ejemplo: Sistema

de guía de misiles

Tiempo real Firme (Firm)– sistemas que son en tiempo real

flexible pero en el que no haya beneficio de una entrega tardía

del servicio. Un solo Sistema puede tener todos los subsistemas de

tiempo real estricto, flexibles y reales. En realidad muchos sistemas

tendrán una función de coste asociada con el incumplimiento de los plazos.

Page 42: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Arquitectura Prism en sistemas embebidos

Durante las últimas décadas los investigadores de software

y profesionales han propuesto diversos enfoques, técnicas

y herramientas para el desarrollo de sistemas de software

a gran escala. Los resultados de estos esfuerzos han sido

caracterizados como de programación a gran escala

programming-in-the-large (PitL).

Un nuevo conjunto de desafíos que ha surgido con la

aparición del barato, pequeño y heterogéneo,

posiblemente integrado, altamente distribuido, así como las

plataformas de computación móviles. Nos referimos al

desarrollo del software en programación a pequeña escala

programming-in-the-small-and-many (Prism). 42

Page 43: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Arquitectura Prism en sistemas embebidos (cont.)

Propiedades de Prism: Recursos muy limitados

Potencia limitada

Ancho de banda bajo

Velocidad de la CPU lenta, memoria limitada

Tampaño pequeño del display

Middleware

– Desarrollado para apoyar la implementación de Arquitectura de Software en el entornog

– Proporciona conceptos de nivel de arquitectura

Componentes

Conector

Configuración

Eventos43

Page 44: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Arquitectura Prism en sistemas embebidos (cont.)

Proporciona:

– Flexibilidad

– Eficiencia (Tamaño, velocidad, sobrecarga)

– Escalabilidad (Número de componentes, conectores, eventos, hilos, dispositivos de hardware)

– Extensibilidad (Soporte relativo a los nuevos desarrollos)

Investigar los siguientes temas:

– Límites de dispositivos móviles (potencia, tamaño, memoria, ..)

– Modelado

– Análisis

– Simulación

Prism está caracterizado por la compañía OS’s (Palm, Symbian)

Prism está relacionado con la arquitectura del Software (arquitectura basada en el desarrollo) 44

Page 45: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Prism – ejemplo de aplicación

45

TDS (Despliegue de Tropas y simulación)

– Distribución del despliegue de personal

Cuartel general

– Recopila información de campo y muestra el estado actual de campo de batalla

– Red a través de enlaces seguros a PDA’s

Comandantes

– Conectado a soldados

– Dar órdenes a los soldados

Soldados

– Ver segmentos del campo de batalla y recibir órdenes

Más sobre las características PRISM, ver en:

http://sunset.usc.edu/~softarch/Prism/ y

Prism-MW – CS 795 / SWE 699, Sam Malek, Spring 2010

Page 46: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Programación de Sistemas embebidos

Normalmente se tiene que ser mucho más consciente de

los recursos que se consumen en la programación de

sistemas embebidos que los que son necesarios en los

programas ordinaries

Tiempo

Espacio

Canales de comunicación

Archivos

ROM (Read-Only Memory)

Memoria Flash

Se debe tomar el tiempo para aprender acerca de la forma

en que las características del lenguaje de programación se

implementan para una plataforma en particular.

• Hardware

Sistema operativo

Librería46

Page 47: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Programación de Sistemas embebidos

Una gran cantidad de éste tipo de programación es:

Mirar con atención las características especializadas de un RTOS

(Sistema Operativo en Tiempo Real)

El uso de un “entorno non-hosted” (que es una forma de decir “ un

lenguaje de programación justo en lo alto (right on top) del hardware

sin un Sistema operativo”)

Incluye (a veces complejas) arquitecturas de controladores de

dispositivos

El trato directo con interfaces de dispositivos hardware

No entraremos en detalles aquí

Para eso están los cursos y manuales específicos.

47

Page 48: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Lenguajes de programación de sistemas embebidos

Lenguajes Hardware

Verilog y VHDL son los lenguajes más populares para la

descripción del hardware y su modelización (ver las

características de abajo)

48

Page 49: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Lenguajes de programación de sistemas embebidos(cont.)

Lenguajes de Software

Lenguajes de Software describen secuencias de instruccionespara un proceso a ejecutar. Por lo tanto, la lista de la mayoríade las instrucciones imperativas se ejecutan para comunicar a través de la memoria: un array de almacenamiento de localizaciones que mantienen sus valores hasta que son modificados. Los lenguajes más populares son: Lenguajeensamblador, C, C++ y Java. Las características de estoslenguajes se muestran en la tabla de abajo.

49

Page 50: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Lenguajes de programación de sistemas embebidos(cont.)

C++ se extiende C con los mecanismos de estructuración para grandes

programas: los tipos de datos indefinidos, una manera de reutilizer código

con tipos diferentes, espacios de nombres a los grupos de objetos y evitar

conflictos de nombres accidentales cuando se ensamblan las piezas del

programa, y las excepciones para manejar errores. La librería standard C++

incluye una colección de datos polimórficos eficientes, tales como arrays

(matrices), árboles, cadenas para las que el compilador genera

implementaciones personalizadas.

Lenguaje Java Sun se asemeja al C++ pero es incompatible. Al igual que

C + +, Java está orientado a objetos, que proporciona clases y herencia. Es

un lenguaje de más alto nivel que C++, ya que utiliza las referencias a

objetos, matrices y cadenas en lugar de punteros. La recogida automática

de basura de Java libera al programador de la gestión de memoria. Java

proporciona subprocesos simultáneos.

50

Page 51: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

Lenguajes de programación de sistemas embebidos(cont.)

Otro tipo de lenguaje de Sistemas Embebidos son languages de flujo de

datos y languajes Híbridos. Los lenguajes de flujo de datos son un

complemento perfecto para los algoritmos de procesamiento de señales,

que utilizan grandes cantidades de aritmética derivada de la teoría de

sistemas lineales de decodificación, comprimen o filtran corrientes de datos

que representan muestras periódicas de los valores continuamente

cambiantes, como el sonido o el video.

(Acerca de los lenguajes de sistemas embebidos, ver más en:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.26.4735&rep=rep

1&type=pdf )

51

Page 52: Ingeniería del Software Embebido web/pagina de practicos... · 2020. 8. 25. · 3 Características de los sistemas embebidos (1) Características básicas: Número limitado de funciones

52

Cuestiones de control

1. ¿Cuáles son los principales objetivos de la ingeniería del software?

2. Describir las principales etapas de desarrollo de software para

sistemas embebidos.

3. Comparar el Sistema operativo más popular para dispositivos

móviles (posiblemente en forma de tabla).

4. Comparar los lenguajes más populares utilizados en sistemas

embebidos.