Gerardo LeónPágina 1 La ingeniería de software y los sistemas embebidos Gerardo León.

Slides:



Advertisements
Presentaciones similares
La ingeniería de software y los sistemas embebidos
Advertisements

Clase 09.  Garantizar la calidad de software  La prueba nunca termina, del IS translada se translada al usuario  Las casas de software invierte del.
Javier Benavides Pañeda
Sistemas de Información Enfoques para la Construcción de los Sistemas de Información MBA Luis Elissondo.
CONCEPTO INGENIERÍA DE SOFTWARE  Analiza, diseña y desarrolla productos de sistemas software, proponiendo la plataforma tecnológica más apropiada. Domina.
Lcda. Ingrid Graü Diseño de Sistemas 1. Lcda. Ingrid Graü Diseño de Sistemas 2.
¿Qué es un Diagrama de Flujo? UN DIAGRAMA DE FLUJO, TAMBIÉN LLAMADO FLUJOGRAMA DE PROCESOS O DIAGRAMA DE PROCESOS, REPRESENTA LA SECUENCIA O LOS PASOS.
Lcdo. Eddy Cortez Sistemas II. Ingeniería de Requisitos.
«Título del Trabajo» Ingeniería [Civil] en Computación e Informática Nombre alumnos(s) Guía Empresa: Nombre (en caso de proyectos) Profesor Guía: Grado.
NTC - ISO 9001 NORMA TÉCNICA COLOMBIANA (TERCERA ACTUALIZACIÓN)
La Norma ISO 25000, proporciona una guía para el uso de las series de estándares internacionales llamados requisitos y Evaluación de Calidad de Productos.
TEMA: PSP (Personal Software Process) ANALISIS DE SISTEMAS I ING. EDGAR RAUL MOLINA INTEGRAMTES: HANNSEL E. CORDON AC JESSICA IDALMY KRESS FREDERIC HESTIB.
Pruebas de Funcionalidad de Software: Caja Negra y Caja Blanca Curso: Diseño de Sistemas 9no. Semestre.
Los requisitos para una planificación eficaz ya que es la tarea más importante en cuanto condiciona el hacer y el actuar. Los objetivos deben ser alcanzables.
Análisis de Proyecto de Software.
Ingeniería de Software: Metodologías
Ingeniería de requisitos y
Ciclo de vida del producto y decisiones de selección del proceso
IEEE-std Práctica Recomendada para la Especificación de Requerimientos de Software Fuente: IEEE Recommendad Practice for Software Requirements.
CC4401 – Ingeniería de Software I
SWEBOK.
Metodología de Sistemas Unidad IV: MÉTODOS ÁGILES
Gestión de Software Conferencia # 2 Niveles de PSP: PSP0.1.
CICLO DE VIDA DEL SOFTWARE
Conceptos y definición básicos
Gestión de Proyectos.
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
Presenta: TSU. Yuridia Luna Marcos Asesora de tesis:
Grupo Abigaíl Mejía.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Tema 3. Lenguaje unificado de modelado UML
CICLO DE VIDA DEL SOFTWARE
UNIVERSIDAD NACIONAL DE LOJA Área de la Educación, el Arte y la Comunicación Informática Educativa IV INGENIERIA DE SOFTWARE Taller de Análisis y Diseño.
Ciclo de Vida del Software
PROVEEDOR DATA WAREHOUSE TERADATA
Ingeniería del Software
MODELO CMMI e ISO INTEGRANTES:.
Danny Frank Otero Arrascue Ingeniería de Requisitos / Requerimientos Advisor: MEJIA CABRERA HEBER IVAN.
MF. MARGARITA VALLE LEÓN
Ciclo de vida del Software
I N S T R U C O A L D I S E Ñ O MODELO ADDIE.
Auditoria de Tecnologías de Información PLANIFICACION Ing. Eder Gutiérrez Quispe.
Metodologías de Desarrollo de Software RUP – Proceso Racional Unificado Gilber BASILIO ROBLES I.E.S.T.P. “DANIEL ALCIDES CARRIÓN” Taller de Modelamiento.
ANALISIS DE SISTEMAS ANALISIS ORIENTADO A OBJETOS.
Modelo de madurez del CMMI
CICLO DE VIDA DE SOFTWARE
Es el proceso de subdividir los entregables y el trabajo del proyecto en componentes más pequeños y más fáciles de manejar Se puede dar una visión estructurada.
Tema: Administración de la configuración de software UNIVERSIDAD TECNOLÓGICA ISRAEL CALIDAD DE SOFTWARE.
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
Vicerrectoría Académica Dirección de Formación General Programa de Emprendimiento PROTOTIPOS.
IEEE Estándar para documentación de pruebas de software
1 Introducción al proceso unificado de desarrollo de software.
SOFTWARE PRESENTADO POR: THE APPLE. ¿QUÉ ES LA INGENIERÍA DE SOFTWARE ? La Ingeniería de Software es una disciplina de la Ingeniería que concierne a todos.
IEEE-STD PRÁCTICA RECOMENDADA PARA LA ESPECIFICACIÓN DE REQUERIMIENTOS DE SOFTWARE.
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno. INTRODUCCIÓN A UML  QUE ES UML?  PARA QUE SE UTILIZA  COMPONENTES  DIAGRAMAS.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
Ingeniería de Software: Metodologías
Docente: Mg.Henry Infante Takey Unidad 1 Investigación Operativa 1.
MODELO EN CASCADA Integrantes: Felipe Alemán Lester Blandón.
Desarrollo de Sistemas de Información Contable - Sis USB 1 METODOLOGIAS DE DESARROLLO DE SOFTWARE.
PRUEBAS DE CAJA NEGRA. -Internationa Software Testing Qualification Board (ISTQB) Internationa Software Testing Qualification Board (ISTQB) Técnica de.
Estudio de Viabilidad del Sistema (EVS). Estudio de Viabilidad del Sistema Cuestiones ¿Qué es la viabilidad de un sistema? ¿Cuáles son los objetivos del.
Ha llegado el momento de dar una mirada al interior de los Sistemas Operativos. En las siguientes secciones examinaremos cuatro estructuras distintas.
Estructura de los Sistemas Operativos
Diseñas y elaboras algoritmos para la solución de problemas
PLANIFICACION Diego Hernández.
Ing. Carlos García P. C.I UNIDAD EDUCATIVA “SALINAS INNOVA” P Identifique el contexto para el cual se Planifica un nuevo sistema ÁREA.
ICI 502 Procesos de Software
Transcripción de la presentación:

Gerardo LeónPágina 1 La ingeniería de software y los sistemas embebidos Gerardo León

Página 2 La ingeniería de software n Ingeniería es la aplicación de conocimiento científico, técnico y práctico para resolver problemas humanos.  Problema Requerimientos Restricciones  Solución Diseño adecuado Predicción de resultados Pruebas

Gerardo LeónPágina 3 La ingeniería de software n La ingeniería produce calidad  Calidad = satisfacción de expectativas Requisitos imprecisos Defectos en el proceso Ejemplos: pavimentación de la Alameda n ¿Artesanía o ingeniería de software?  Depende de las expectativas

Gerardo LeónPágina 4 Los sistemas embebidos n Características “especiales”  “Hardware” variable y desconocido  Tiempo real Estricto o permisivo  Dificultad de pruebas  ¡Predicibilidad y variabilidad! n Además cada vez más común  Tamaño importante del software y del equipo  Equipo multidisciplinario  Equipo distribuido n ¡Es importante hablar de ingeniería de software!

Gerardo LeónPágina 5 El proceso de desarrollo Desarrollo de Software RMRM SQASQA SCMSCM Requerimientos PT&OPT&O

Gerardo LeónPágina 6 Ejemplo: Niveles CMM 1. El proceso de software es una caja negra. 2. Los requerimientos del cliente están controlados y prácticas de gestión de proyectos han sido establecidas. 3. Las tareas del proceso de desarrollo de software han sido definidas y son visibles. 4. El proceso de desarrollo de software definido está instrumentalizado y es controlados cuantitativamente. 5. Nuevas maneras y mejores maneras de desarrollar software son probadas continuamente, de forma controlada para mejorar la productividad y la calidad.

Gerardo LeónPágina 7 Actividades en el Desarrollo de Sistemas Embebidos  Determinación de requisitos  Análisis de hardware (*)  Arquitectura o diseño de alto nivel  Análisis de rendimiento (*)  Diseño detallado  Codificación y pruebas unitarias  Integración  Pruebas de sistema, pruebas de aceptación

Gerardo LeónPágina 8 Cómo se organizan las actividades n Un ciclo de vida de software es la serie de etapas de un producto de software n Hay muchos modelos de ciclo de vida:  Cascada y V  Entregas incrementales  Entregas incrementales con prototipos  Evolutivo  Espiral  Todo ahora  Exploratorio

Gerardo LeónPágina 9 Modelo de Ciclo de Vida de Cascada Requisitos Diseño Codificación y pruebas Integración Entrega Pruebas de sistema Evolución

Gerardo LeónPágina 10 La Madre de Todos los Ciclos de Vida El ciclo de vida de cascada es sentido común n Define lo que quieres n Determina un método para lograrlo n Ejecuta tu método n Prueba los resultados n Entrega n Repite si quieres más

Gerardo LeónPágina 11 Modelo de Entregas Incrementales  Una serie planificada de cascadas que entregan más y más funcionalidad  Se puede usar un sistema limitado antes de terminar el proyecto  No es útil para productos basados en Rom, pero útil en familias de productos basados en ROM

Gerardo LeónPágina 12 Modelo de Ciclo de Vida Evolutivo  Parecido a las entregas incrementales, pero sólo se planifica la próxima entrega  Con-funde el desarrollo con la evolución  Usa realimentación del uso de las versiones anteriores  Puede ser usado en un ambiente cambiante

Gerardo LeónPágina 13 1-Determinación de requisitos n Propósito: Tener un entendimiento común sobre qué es el sistema y qué hace n Los requisitos sirven de base para construir y evaluar un sistema n Requisitos  Requisitos de interfaces  Requisitos de desarrollo  Requisitos funcionales  Requisitos de prueba (*)  Matriz de requisitos de prueba versus funcionales  Requisitos de calidad (*)

Gerardo LeónPágina 14 El problema de la ingeniería de software: Falta de claridad en los objetivos n Si queremos tener éxito debemos definir claramente qué es el éxito:  costo  plazo  recursos  nivel de satisfacción de requisitos  etc. n Si los objetivos no son claros, no los alcanzaremos claramente

Gerardo LeónPágina 15 Ejemplo requisito de calidad: Tiempo de cambio de canal digital n Si queremos que los datos sean consistentes podemos especificar el grado de consistencia EscalaProbabilidad de que el cambio de canal digital sea menor a 2 segundos PruebaTomar 100 medidas en milisegundos Actual Peor98% Plan99.5% Autoridad Minuta del 25/8/99

Gerardo LeónPágina 16 2-Organización del conocimiento (*) n Propósito: Conocer y comprender el hardware y estándares a usar n Es muy frecuente que usemos sistemas, herramientas interfaces o estándares, con los que no estamos familiarizados n No podemos diseñar bien sin conocer a fondo las capacidades y limitaciones con que vamos a trabajar n Pretender que vamos a aprender durante los “tiempos libres” es ingenuo

Gerardo LeónPágina 17 ¿Por qué detalles ahora? n Va en contra del diseño de arriba hacia abajo (top-down) n En realidad es más bien de abajo hacia arriba (bottom-up) n Después de esto volvemos al diseño top-down n La razones principales son:  Hay una fuerte dependencia en el bajo nivel, incluyendo las capacidades del hardware  Nuestro diseño debe adaptarse al hardware y RTOS disponibles  Debemos aprender lo básico antes de diseñar

Gerardo LeónPágina 18 3-Arquitectura o diseño de alto nivel n Propósito: Crear un modelo del sistema embebido  Incluir las componentes principales y sus interacciones  Puede ser incluido en el documento de requisitos n La arquitectura es la decisión de diseño más crítica n Una arquitectura flexible es la base del desarrollo evolutivo n Las arquitecturas son difíciles de inventar de la nada, pero se pueden reusar de proyectos anteriores o de libros

Gerardo LeónPágina 19 Arquitectura de TVControl TV Set Hardware Control Panel OSD Closed caption Time Base I2CI2C Scheduler Command Interpreter Action RoutinesAutomatic Routines Device Drivers Application Fonts State Machine ScreensTexts Remote Control Estratos

Gerardo LeónPágina 20 4-Análisis de rendimiento (*) n Propósito: Asegurar que el sistema tendrá el rendimiento adecuado n Actividades:  Análisis de escenarios: Determinar operaciones a ejecutar y consumo de recursos por operación  Análisis del sistema: Determinar uso de recursos compartidos entre escenarios  Planificación de tareas: Determinar qué componentes son tareas y cómo secuenciarlas (scheduler).

Gerardo LeónPágina 21 De qué se trata n Mirar al diseño en términos de rendimiento n No pasar mucho tiempo aquí pues  No hay información detallada n Mayor parte de problemas de rendimiento debidos a malos diseños  No se trata de arreglarlos en la codificación. n La idea es ver donde poner esfuerzos de optimización

Gerardo LeónPágina 22 Desarrollar escenario de uso n Usar notación del tipo diagrama de flujo Nodo básico Nodo expandible Nodo inicial Control de flujo simple Llamado a función Nodo repetición Nodos identificación de estado

Gerardo LeónPágina 23 Modelo simple de sistema n Análisis basado en uso de recursos  Buses  Discos  Memoria  CPU n Identificar los distintos recursos de nuestro sistema.

Gerardo LeónPágina 24 5-Diseño de Componentes n Propósito: Tomar y registrar decisiones sobre  Responsabilidades de cada módulo  Interfaces de funciones y APIs  Algoritmos y/o máquinas de estado  Estructuras de datos  Variables y constantes  Uso de semáforos, interrupciones, polling n El resultado es una descripción detallada de cada móludo del sistema en uno o varios documentos

Gerardo LeónPágina 25 6-Codificación y pruebas unitarias n Propósito: Transformar el diseño en código ejecutable n La codificación es una actividad poco creativa si el diseño es muy detallado  Es más bien una transcripción del diseño al lenguaje de programación  Sólo te preocupas del lenguaje y las herramientas  También te preocupas de encontrar errores de diseño n La codificación de un módulo termina cuando se ejecutan con éxito las llamadas pruebas unitarias

Gerardo LeónPágina 26 Modelo de ciclo de vida en V Necesidades Requisitos Arquitectura Diseño detallado Pruebas unitarias Codificación Pruebas de integración Pruebas de sistema Certificación

Gerardo LeónPágina 27 Pruebas Unitarias n Propósito: Encontrar defectos en el módulo o función. n Normalmente las pruebas unitarias son hechas por el programador del módulo. n Para probar una función debes:  Llamarla  Tener subfunciones para llamar Test Driver Your function Stub

Gerardo LeónPágina 28 7-Integración n Propósito: Asegurar que no hay errores de interfaces; encontrar defectos en el sistema n La integración debe hacerse lo antes posible: apenas tengamos algunos pedazos de código n Es un proceso formal y planificado n En los sistemas embebidos la integración suele ser más compleja que en los sistemas comunes  Concurrencia (semáforos, tareas, dependencias)  Tiempo real  Hardware inestable

Gerardo LeónPágina 29 8-Pruebas de sistema n Propósito: Asegurar que se cumplen los requisitos n Este es un proceso muy formal  Planificado en el Plan de Pruebas de Sistema  Casos de prueba en la Especificación de Pruebas de Sistema  Resultados en el Acta de Pruebas de Sistema n Cada error encontrado se describe y clasifica en un Informe de Error  La base de datos de errores sirve para aprender

Gerardo LeónPágina 30 9-Pruebas de aceptación n Propósito: Certificar que los requisitos del cliente se han cumplido satisfactoriamente y por lo tanto se puede iniciar la producción n Esta etapa – también llamada “qualification” – debe hacerse por un equipo independiente del desarrollo n Si hay un cliente específico, él puede ejecutar las pruebas n Si el producto es para el mercado, debe haber un equipo en la organización o subcontratado para hacerlas

Gerardo LeónPágina 31 Conclusiones n La ingeniería de software porporciona técnicas y procedimientos que permiten ayudar a asegurar un software de calidad n Cada vez más la ingeniería de software es necesaria en el desarrollo de sistemas embebidos de calidad debido a:  Crecientes posibilidades del hardware  Creciente complejidad y tamaño en el software  Distribución y composición de equipos de trabajo