Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Ingeniería del Software embebido (página 3)




Enviado por Pablo Turmero



Partes: 1, 2, 3

Monografias.com
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

Monografias.com
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.

Monografias.com
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

Monografias.com
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

Monografias.com
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 decisiones importantes 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

Monografias.com
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.

Monografias.com
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.

Monografias.com
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/)

Monografias.com
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.

Monografias.com
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)

Monografias.com
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.

Monografias.com
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

Monografias.com
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
Eventos

43

Monografias.com
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

Monografias.com
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

Monografias.com
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ía
46

Monografias.com
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

Monografias.com
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

Monografias.com
Lenguajes de programación de sistemas embebidos (cont.)
Lenguajes de Software
Lenguajes de Software describen secuencias de instrucciones para un proceso a ejecutar. Por lo tanto, la lista de la mayoría de 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: Lenguaje ensamblador, C, C++ y Java. Las características de estos lenguajes se muestran en la tabla de abajo.
49

Monografias.com
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

Monografias.com
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=rep1&type=pdf )
51

Monografias.com
52
Cuestiones de control
¿Cuáles son los principales objetivos de la ingeniería del software?
Describir las principales etapas de desarrollo de software para sistemas embebidos.
Comparar el Sistema operativo más popular para dispositivos móviles (posiblemente en forma de tabla).
Comparar los lenguajes más populares utilizados en sistemas embebidos.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter