Ingeniería de Software

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

Desarrollo en espiral.
SISTEMAS II CICLO DE VIDA.
VALORACIÓN Y SELECCIÓN DE INVERSIONES EN RECURSOS INFORMÁTICOS
Ingeniería de Software II
Metodologías ágiles.
Fundamentos de Diseño de Software INFT.1
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
También conocido como Diseño Lógico Rodrigo Salvatierra Alberú.
CICLO DE VIDA DE LOS SISTEMAS DE INFORMACIÓN
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
Fundamentos de la Gestión de Proyectos
Guia Diseño Robert Echeverria
Modelos de Proceso del Software
CALIDAD DE SOFTWARE Alejando Márquez Alejando Vega Claudia Aguilar
Ingeniería del Software
M.S.C. Ivette Hernández Dávila
INGENIERIA DEL SOFTWARE
Ingeniería de Software
Modelo de ciclo de vida en espiral
Ciclo de Vida del Software Paradigmas de Desarrollo
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
Ciclo de Vida del Software
Modelos de desarrollo de Software
Técnicas de Programación
MODELO DE DESARROLLO DE SOFTWARE
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
Ingeniería de Software
Ingeniería del Software
Ingeniería de Requerimiento
EL APORTE DE LA INGENIERIA DE SOFTWARE A LAS ORGANIZACIONES
INGENIERÍA DE SOFTWARE
Tema 1: Introducción a la Ingeniería de Software
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Pruebas y La Vida del Ciclo de Desarrollo del Software
Unidad 3: Adquisición de Paquetes de Software Msc. Lic. Susana I. Herrera - Lic. Paola Budán UNSE 2012.
ASIGNACIÓN DE ROLES.
Metodología de Desarrollo Unidad Educativa Bolívar Sebastián Torres 6° 18°
Alexander Aristizabal Ángelo flores herrera
Capitulo 1 Roger S. Presman
Procesos de Desarrollo de Software
TIPOS DE AUDITORÍAS EN SISTEMAS DE INFORMACIÓN
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007.
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Introducción al proceso de verificación y validación.
Actividades en el Proceso de desarrollo de Software
Ingeniería del Software I
Estructurar tus ideas para hacerlas realidad
JHENNIFER SANCHEZ ORTIZ CRISTIAN CAMILO RIASCOS ALEJANDRO PINEDA SANCHEZ FERNANDO JAVIER REBELLON.
Ciclo de Vida del Software
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
INGENIERIA DE SOFTWARE
Proceso de desarrollo de Software
CONCEPTO DE CICLO DE VIDA 1 En los departamentos de Sistemas se debe definir un marco de referencia común que debe ser:  Pueda ser empleado por todos.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Fundamentos de Computación
Las fases del ciclo de la vida de desarrollo de sistemas
Maestría en Gerencia en Tecnología de la Información Cátedra Ingeniería de Software Profesora: Mary Carmen Milano. Integrantes: Rosa Arellano Osbaldo Goitia.
Software de Comunicaciones
Modelo de procesos de software
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
Objetivos de la prueba Los objetivos principales de realizar una prueba son: Detectar un error. Tener un buen caso de prueba, es decir que tenga más probabilidad.
Integrantes: Mejía Zúñiga Yoselin Taco Apaza Pamela Ychuta Torres John.
Verificación y Validación del Software
Transcripción de la presentación:

Ingeniería de Software UNIDAD Nº 4 LIC. CONTRERAS PAMELA

Ingeniería de Software Es una disciplina de Ingeniería de Sistemas: se ocupa de la aplicación de teorías, métodos, herramientas para hacer que las cosas funcionen: Software que sea fiable y trabaje en maquinas reales. Teniendo en cuenta restricciones financieras, organizacionales y técnicas que comprende todos los aspectos de la producción de software. Desde la especificación inicial al mantenimiento del sistema. Administración y gestión del proceso de producción Principios y metodologías para desarrollo y mantenimiento de sistemas de software.

¿Qué es la Ingeniería de Sistemas? Calculo matemático Almacenamiento y manejo de datos Realización de algoritmos Almacenamiento y manejo de informacion Ejecución de tareas consideradas inteligentes La informática como una ingeniería de software: para la creación de instrumentos que sustituyan o imiten al ser humano. ¿Qué es la Ingeniería de Sistemas? Es el estado actual de la evolución del trabajo de sistemas, desde un clásico concepto artesanal, hacia el logro de la producción industrial de sistemas.- Hacer los planos del Sistemas(Análisis) Sobre los planos aprobados por sus usuarios, generar las instrucciones de fabricación(Diseño) Sobre esas instrucciones aprobadas por los usuarios, proceder a construir el sistema(Desarrollo e implementación) Entregar el sistema funcionando, a sus usuarios. Prepararse a dar apoyo al sistema durante su vida útil(mantenimiento)

¿Cómo construir un Sistema de Información? Identificar a los usuarios Definir la arquitectura del sistema Definir el software a desarrollar Cada vez mas complejo Desarrollarlo rápidamente Se necesitan métodos mejores de desarrollo Proceso de desarrollo de software Requerimientos de Usuarios Sistema de Software Ofrece un marco de trabajo genérico LOS SISTEMAS INFORMATICOS ESTÁN COMPUESTO DE: SOFTWARE Componente lógico intangible HARDWARE Componente físico tangible Es la mente Es el pensamiento La capacidad de inferencia Es la resolución psíquica Es el cerebro humano

¿Qué es el Software? ACTIVIDADES DE LA INGENIERIA DE SOFTWARE Analizar el problema hasta su total comprensión Diseñar el sistema software que cumpla las expectativas Programarlo, probarlo y mantenerlo hasta que se decida su retiro ¿Qué es el Software? Instrucciones(programa de computadora) que cuando se ejecuta proporcionan la función y el rendimiento deseado Estructura de datos que permiten a los programas manipular adecuadamente la información.- Documentos que describen la construcción y uso de programas. Pressman Programas de ordenador y documentación asociada Los productos de software puede ser Genéricos: desarrollados para clientes muy diversos Hechos a medida: para un cliente particular de acuerdo a su especificación.- Sommerville

Ingeniería de Software e Ingeniería de Sistemas La Ingeniería de Sistemas se refiere a todos los aspectos del desarrollo de sistemas basados en computadora. La Ingeniería de software es solo parte de este proceso. Los especialistas de sistemas se encargan de especificar el sistema, definir su arquitectura, integrar sus partes. Al ser el software muchas veces la parte mas importante, las técnicas de ingeniería de software se aplican en el proceso de ingeniería de sistemas.-

Principios de la Ingeniería de Software Principios de la gestión de Proyectos La calidad debe ser siempre primero, se debe cuantificar Es posible desarrollar software de alta calidad Una buena gestión es mas importante que una buena calidad Las personas y el tiempo no son intercambiables.- Principios técnicos: Seleccionar el modelo de ciclo de vida adecuado Entregar productos al usuario lo antes posible Determinar el problema antes de escribir los requisitos Evaluar la alternativa de diseño Nunca diseñar sin documentación Minimizar la distancia intelectual entre el problema y el mundo real Inspeccionar el código antes de probarlo Principios de actitud y de filosofía profesional: Usar formalismos distintos para las distintas fases Las técnicas son anteriores a las herramientas Primero hazlo correcto, después hazlo rápido La gente es la clave el éxito Introduce las mejoras con cuidado Asunción de responsabilidades de hacerlo bien, o no hacerlo Las complejidad del software es creciente.

Evolución en la construcción de software Años 70 De la programación al ciclo de vida Salto conceptual del programa al producto Ciclo de vida es el conjunto de ESTADOS por los que pasa el producto desde su nacimiento. El programa es un estado mas en el conjunto del desarrollo de software.- Se definieron los demás estados Descripción del problema: Análisis y especificación Diseño: de la arquitectura, de funciones, de datos Codificación e integración Años 80 Del ciclo de vida al Proceso de Software Salto conceptual del producto al proceso. El proceso de software es el conjunto de tareas que realiza el equipo de desarrollo. Definición de la IEEE de un estándar de proceso de proceso de software con la descripción de tareas, independiente del modelo de ciclo de vida.

Proceso de software Años 90 Del Proceso de Software a la evaluación de su madurez. Centro de investigaciones: fiabilidad y calidad del software. Condición necesaria para un Buen Producto Proceso de software Un proceso de software es un conjunto de actividades y resultados asociados que conducen a la creación de un producto de software Proceso de resolución de problema: Decidir que hacer Decidir como hacerlo Hacerlo Probar el resultado Usar el resultado Análisis de requerimientos Diseño de sistema Codificación Pruebas Instalación

Obtención de requisitos Diseñar el sistema Programar el código El Proceso Software Básico debe estar formado por las siguientes 6 etapas: Obtención de requisitos Diseñar el sistema Programar el código Probar el sistema Instalar el sistema Mantener y ampliar. Conjunto de actividades interrelacionadas por diversas estrategias que transforman el producto software Proceso Software Proveen un esquema necesario para planificar, organizar, coordinar, asignar personal, presupuestar y dirigir las actividades de construcción de software Conjunto de estados por los que pasa el producto. Ciclo de transformaciones que el producto sufre a lo largo de su vida. Ciclo de Vida

Ciclo de vida: Determina el orden de las fases del proceso Un marco de referencia que contiene los procesos, las actividades y las tareas involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de requisitos hasta la finalización de su uso. ISO 12207-1 Determina el orden de las fases del proceso Establece los criterios de transición de una fase a otra Probar el sistema Obtención de requisitos Diseñar el sistema Programar el código Instalar, mantener ampliar Actividades del Proceso Necesidad Especific. de requisitos Diseño Programa Sistema a Software Estados del Producto

Modelos de ciclos de vida Tradicional Desarrollo incremental Desarrollo con prototipado Espiral Alternativos Cascada Refinamiento sucesivo Cascada Refinamiento sucesivo

Modelo de ciclo de vida en cascada Requisitos Diseño Codificación Prueba Operación Características: Obliga a especificar lo que el sistema debe hacer antes de construir el sistema Obliga a definir como van a interactuar los componentes. Permite detectar y resolver desviaciones sobre la planificación inicial Requiere que el proceso de desarrollo genere una serie de documentos que posteriormente pueden utilizarse para la validación y el mantenimiento del sistema Ventajas: Las etapas están organizadas de un modo lógico Cada etapa incluye cierto proceso de revisión. Esta organizado de modo que se pase el menor numero de errores de una etapa a la siguiente El ciclo es interactivo. El flujo básico es de arriba hacia abajo, no obstante, reconoce que los problemas de etapas inferiores afectan a las decisiones de las etapas superiores.-

Visión alternativa del ciclo de vida en Cascada Requerimiento sistema global sistema software Diseño Preliminar detallado Código Integración software y hardware Prueba del sistema software Integración del software Prueba de componente Prueba de unidad Visión alternativa del ciclo de vida en Cascada Los requisitos del sistema global se dividen en requisitos del hw y requisitos del sw Modelo alternativo que enfatiza en la validación de los productos.

Requisitos Diseño de sistema Diseño detallada Implementación / pruebas unitarias Pruebas de componentes Pruebas de integración Pruebas de aceptación Valida requisitos Verifica diseño Modelo en cascada en V Muestra la relación de las actividades de prueba con el análisis y diseño

Modelo incremental ……… A. Requisitos del sistema A. Requisitos del software Diseño Codificación ……… Mantenimiento Modelo incremental El desarrollo incremental es el proceso de construir una implementación parcial del sistema global y posteriormente ir aumentando la funcionalidad del sistema. Ventaja: Facilita la incorporación de nuevos requisitos, por lo tanto el software es fácil de mejorar.- Desventaja: El equipo de desarrollo sacrifica la etapa de análisis a favor de una obtención rápida de la 1º versión, generando un 1º producto alejado de las necesidades del usuario.-

Modelo de ciclo de vida Prototipo Recolección y refinamiento de requisitos Producto de ingeniería Diseño rápido Construcción del prototipo Evaluación del prototipo por el cliente Refinamiento del prototipo Parada Comienzo Sigue el ciclo de vida tradicional , solo que su tiempo de desarrollo será bastante mas reducido. El usuario, mediante a utilización del prototipo, descubrirá los aspectos o requisitos no captados.

Modelo del ciclo de vida en Espiral En este modelo el radio representa el costo El ángulo representa el progreso obtenido en casa fase del espiral Una distinción importante es que el producto estará terminado al finalizar el espiral, no al terminal el ciclo Ventajas: Su rango de opciones permite utilizar los modelos de proceso de construcción de software tradicional, mientras su orientación al riesgo evita muchas dificultades. Se centra en la eliminación de errores y alternativas poco atractivas.

El Proceso Unificado Es un proceso configurable aunque un único proceso no es adecuado para todas las organizaciones de desarrollo de software, el UP es adaptable y puede configurarse para cubrir las necesidades de proyectos pequeños y grandes.

Métodos agiles Tratan de resolver el problema de los tiempos de desarrollo y de l evolución de los requerimientos Livianos : no se detienen en la planificación y documentación. Adaptativos: rápida reacción a los cambios. Iterativos: ciclos muy cortos, con entregables pequeños. Principios agilistas: Entrega temprana al cliente Los requerimientos cambiantes son parte del desarrollo Usuarios y desarrolladores trabajan juntos Motivación de los desarrolladores Los ejecutables entregados son la medida de avance La simplicidad es primordial Limitaciones: Difícil de implementar en equipos de trabajo dispersos físicamente o demasiado grandes Dificultad para desarrollar software grandes y complejos No contemplan la reutilización de componentes Problemas para utilizar herramientas CASE.