Ingeniería de Software

Slides:



Advertisements
Presentaciones similares
EL PROCESO DE DESARROLLO DEL SOFTWARE
Advertisements

Ciclo de vida de desarrollo de software
SISTEMAS DE INFORMACIÓN I
Desarrollo en espiral.
Metodologías ágiles.
CICLO DE VIDA DE LOS SISTEMAS DE INFORMACIÓN
Metodologías de desarrollo
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
ANÁLISIS DE REQUERIMIENTOS
METODOLOGÍAS ÁGILES “PROCESO UNIFICADO ÁGIL (AUP)
10º2 Sergio Posso. Jonatán Agualimpia. Julia Blandón. Docente:
Guia Diseño Robert Echeverria
Modelos de Proceso del Software
Administración de Procesos de Pruebas
M.S.C. Ivette Hernández Dávila
HERRAMIENTAS CASE.
Ingeniería de Software
INGENIERIA DEL SOFTWARE
Ciclo de Vida del Software Paradigmas de Desarrollo
Ingeniería de Requisitos
Gestión de Proyectos Informáticos Sesión N° 5 Ciclo de Vida de un Proyecto Roberto Jijena I.
Ciclo de Vida del Software
Técnicas de Programación
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
VII Congreso de Expotecnología UVM 2007 Jonás A. Montilva C.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Tema 1: Introducción a la Ingeniería de Software
Importancia en la efectividad del:
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
Ciclo de Vida del Software Paradigmas de Desarrollo
¿Qué es la Ingeniería del Software?
ASIGNACIÓN DE ROLES.
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
Capitulo 1 Roger S. Presman
Ciclo de vida de un sistema
Método iterativo Integrantes : Paola Ramón Armando 19 octubre 2011.
Roles de Open UP.
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.
PROCESOS DE DESARROLLO DE SOFTWARE
Actividades en el Proceso de desarrollo de Software
Modelo Prescriptivos de proceso
Ingeniería del Software I
Estructurar tus ideas para hacerlas realidad
Ciclo de Vida del Software
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
Proceso de desarrollo de Software
Ing del Software Libre1 Ingeniería del Software Libre y Modelos de Calidad Instructora: Ing. Erika Veliz Correo Electrónico:
INTRODUCCION AL DESARROLLO DE PROYECTO SOFTWARE. ¿Qué es software? Elemento lógico del sistema.
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.
Capas de ingeniería del Software. Rosendo Antonio Manuel Ingeniería en Sistemas Computacionales.
República Bolivariana de Venezuela Universidad Nacional Experimental Politécnica de la Fuerza Armada (UNEFA) Carrera: Ingeniería de Sistemas Cátedra: Análisis.
Las fases del ciclo de la vida de desarrollo de sistemas
Software de Comunicaciones
Modelo de procesos de software
Fundamentos de Ingeniería de Software
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.
NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
Transcripción de la presentación:

Ingeniería de Software Unidad I Gestión de Proyectos de Software Semana 2 Tema El proceso de software

Objetivos Generales: Comprender correcta y eficientemente los conceptos y principios del espectro de técnicas de Ingeniería de Software que puedan ser aplicadas en proyectos de software. Desarrollar una cultura de ingeniería de software.

Objetivos Específicos: Aplicar correctamente los conceptos y principios relacionados a la Ingeniería de Software en la resolución de casos prácticos para la gestión de proyectos de software de calidad. Utilizar herramientas para el modelado y gestión de proyectos de software. Utilizar metodologías agiles en el desarrollo de software.

Objetivos Instruccionales: Discutir los conceptos de proceso de software. Describir los modelos de proceso de software. Explicar la importancia de la visibilidad de los procesos. Definir y aplicar estándares para la gestión y el desarrollo de proyectos en TI

Implementación de un Robot seguidor de línea … ESCENARIO

Contenidos Visión del proceso de la Ingeniería de software El proceso de software Niveles del proceso de software Modelos de procesos de software Factores que influyen en el desarrollo de software Visibilidad del proceso.

Capas de la Ingeniería de Software Visión del Proceso de I.S. Capas de la Ingeniería de Software Cualquier enfoque de Ingeniería debe apoyarse sobre un compromiso de organización de calidad. El proceso es la unión que mantiene juntos las capas de tecnología y que permite un desarrollo racional y oportuno de la IS. Un enfoque de calidad Proceso Métodos Herramientas Los métodos indican como construir técnicamente el software (incluye análisis de requerimientos, diseño. Construcción de programas, pruebas y mantenimiento). Las herramientas proporcionan un enfoque automático o semiautomático para el proceso y para los métodos. La integración de herramientas, establece un sistema de soporte para el desarrollo del enfoque llamado ‘Ingeniería del software asistida por computadora’ (CASE)

Visión General de la Ingeniería Software Visión del Proceso de I.S. Visión General de la Ingeniería Software Es el análisis, diseño, construcción, verificación y gestión de entidades técnicas. Fases genéricas: Definición Se centra en el que: Información será procesada. Función y rendimiento se desea. Interfaces van a ser establecidas. Restricciones de diseño existen. Criterios de validación se necesitan para definir un sistema correcto.

Visión General de la Ingeniería Software Visión del Proceso de I.S. Visión General de la Ingeniería Software Fases genéricas: Desarrollo Se centra en el como: Han de diseñarse las estructuras de datos. Ha de implementarse la función dentro de una arquitectura de software. Han de implementarse los detalles procedimentales. Han de caracterizarse las interfaces. Ha de traducirse el diseño en un lenguaje de programación. Ha de realizarse la prueba.

Visión General de la Ingeniería Software Visión del Proceso de I.S. Visión General de la Ingeniería Software Fases genéricas: Mantenimiento Se centra en el cambio que va asociado a la corrección de errores: Tipos de cambios: Corrección. Dada la probabilidad de que el cliente descubra defectos. Adaptación. Se ajusta a los cambios de su entorno externo. Mejora. El usuario requiere nuevas funciones adicionales. Prevención. El software se deteriora debido al cambio y por esto el mantenimiento preventivo(reingeniería) debe conducir a permitir que el software sirva para las necesidades de los usuarios finales.

El Proceso de Software Se caracteriza porque: Es un conjunto estructurado de actividades requeridas para desarrollar un sistema de software. Especificación. Diseño. Validación. Evolución. Las actividades varían dependiendo de la organización y del tipo de sistema a desarrollarse. Debe estar explícitamente modelado si va a ser bien administrado.

Características del proceso... El Proceso de Software Características del proceso... Entendible ¿Se encuentra el proceso bien definido y es entendible ?. Visible ¿El proceso es visible al exterior ?. Soportable ¿Puede el proceso ser soportado por herramientas CASE ?. Aceptable ¿El proceso es aceptado por aquellos involucrados en el ?.

...Características del proceso El Proceso de Software ...Características del proceso Confiable ¿Los errores del proceso son descubiertos antes de que se conviertan en errores del producto ? Robusto ¿Puede continuar el proceso a pesar de problemas inesperados? Mantenible ¿Puede el proceso evolucionar para cumplir con los objetivos organizacionales ? Rapidez ¿Que tan rápido puede producirse el sistema ?

Niveles de Madurez del Proceso El Proceso de Software Se definen pocos procesos, y el éxito depende del esfuerzo individual. Nivel 1: Inicial Se establecen procesos de gestión del proyecto para hacer seguimiento del coste de la planificación y de la funcionalidad. Para repetir éxitos anteriores en proyectos similares se aplica la disciplina necesaria para el proceso Nivel 2: Repetible El proceso de software de las actividades de gestión se documenta, se estandariza y se integra dentro de un proceso de software de toda la organización. Todos los procesos utilizan una versión documentada y aprobada para el desarrollo y ,mantenimiento de software Nivel 3:Definido Se recopilan medidas detalladas del proceso y de la calidad del producto. Mediante la utilización de medidas detalladas se comprenden y controlan cuantitativamente tanto los productos como el proceso del software. Nivel 4: Gestionado Mediante una retroalimentación cuantitativa del proceso, ideas y tecnologías innovadoras se posibilita una mejora del proceso. Capacidad de mejoramiento continuo. Nivel 5: Optimización

Enfoques del proceso El Proceso de Software Personas + Tecnología Producción heroica Personas + Tecnología + Procesos Producción Basada en Procesos

Marco de trabajo del proceso… El Proceso de Software Marco de trabajo del proceso… Marco de trabajo del proceso común Base para un proceso de software completo Es como un libro de recetas de cocina La adaptación es esencial

…Marco de trabajo del proceso… El Proceso de Software …Marco de trabajo del proceso… Marco de trabajo del proceso común Aplicables a lo largo del proceso de software Su objetivo: la gestión, el rastreo y el control del proyecto Garantizar la calidad del software Actividades de protección

…Marco de trabajo del proceso… El Proceso de Software …Marco de trabajo del proceso… Marco de trabajo del proceso común Actividades del marco de trabajo Aplicables a todos los proyectos Actividades de protección

…Marco de trabajo del proceso El Proceso de Software …Marco de trabajo del proceso Marco de trabajo del proceso común Actividades del marco de trabajo Conjunto de tareas: Actividades que hacen que el marco de trabajo se adapte a las características particulares de cada proyecto de software y define el trabajo real a cumplirse TAREAS HITOS, ENTREGAS PUNTOS SQA (Software Quality Assurance) Actividades de protección

Marco de trabajo genérico del proceso El Proceso de Software Marco de trabajo genérico del proceso Comunicación Planeación Modelado Construcción Despliegue Marco de trabajo del proceso común Actividades de protección

¿Que involucra el desarrollo de una actividad? El Proceso de Software ¿Que involucra el desarrollo de una actividad? HERRAMIENTAS tiene-sub tiene-sub emplea tiene-entrada ACTIVIDAD PRODUCTO tiene-intermedio RECURSOS tiene-salida obedece necesita DESARROLLADOR ROL DIRECCION juega ORGANIZACION

Actividades sombrilla El Proceso de Software Actividades sombrilla Seguimiento y control Gestión del riesgo Aseguramiento de la calidad del software Revisiones técnicas formales Gestión de la configuración del software Gestión de la reutilización Preparación y producción del producto Actividades de protección

El Proceso se realiza a nivel… Niveles del Proceso de Software El Proceso se realiza a nivel… Conceptual Se considera como un análisis de actividades y consiste en la solución de negocios para el usuario Lógico Traduce los escenarios creados en el diseño conceptual en un conjunto de objetos de negocio y sus servicios. El diseño lógico se convierte en parte en la especificación funcional que se usa en el diseño físico. El diseño lógico es independiente de la tecnología. El diseño lógico refina, organiza y detalla la solución de negocios y define formalmente las reglas y políticas específicas de negocios. Físico Traduce el diseño lógico en una solución implementable y costo-efectiva o económica.

Modelo de Ingeniería del Proceso Modelos de Procesos de Software Modelo de Ingeniería del Proceso Especificación - establecer los requerimientos y restricciones del sistema Diseño - Producir un modelo en papel del sistema Manufactura - construir el sistema Prueba - verificar que el sistema cumpla con las especificaciones requeridas Instalación - entregar el sistema al usuario y asegurar su operacionalidad Mantenimiento - reparar fallos en el sistema cuando sea descubiertos

Problemas en el Modelo de Ingeniería del Proceso Modelos de Procesos de Software Problemas en el Modelo de Ingeniería del Proceso Normalmente, las especificaciones son incompletas o anómalas No existe una distinción precisa entre la especificación, el diseño y la manufactura Solo hasta que el sistema se ha producido se puede probar El software no se puede reemplazar siempre durante el mantenimiento

Modelos Genéricos de Desarrollo de Software Modelos de Procesos de Software Modelos Genéricos de Desarrollo de Software Modelo de Cascada Separar en distintas fases de especificación y desarrollo. Desarrollo Evolutivo La especificación y el desarrollo están intercalados. Prototipado Un modelo sirve de prototipo para la construcción del sistema final. Transformación Formal Un modelo matemático del sistema se transforma formalmente en la implementación. Desarrollo basado en Reutilización El sistema es ensamblado a partir de componentes existentes.

Modelos de Procesos de Software Modelo de Cascada Definición de Requerimientos Diseño del Software y del Sistema Implementación y Prueba de unidades Integración y Prueba del Sistema Operación y Mantenimiento

Fases del Modelo de Cascada Modelos de Procesos de Software Fases del Modelo de Cascada Ingeniería de Modelado de Sistemas-Información. Abarca los requisitos que se recogen en el nivel de empresa estratégico y en el nivel de área de negocio. Análisis de requisitos del software. Se intensifica en la comprensión del dominio de información del software. Diseño del software. Se centra en: estructura de datos, arquitectura del software, representaciones de interfaz y detalle procedimental (algoritmos). Implementación - Generación de código. Se traduce en una forma legible por la maquina. Integración - Pruebas. Se asegura que la entrada definida produce resultados reales de acuerdo a los resultados esperados. Operación - Mantenimiento. El software indudablemente sufrirá cambios después de ser entregado

Problemas y Riesgos del Modelo en Cascada. Modelos de Procesos de Software Problemas y Riesgos del Modelo en Cascada. Los proyectos reales raras veces siguen el modelo secuencial que propone el modelo. A menudo es difícil que el cliente exponga explícitamente todos los requisitos. El cliente debe tener paciencia. Una versión del trabajo no estará disponible hasta que el proyecto este muy avanzado.

Documentos del Modelo de Cascada Modelos de Procesos de Software Documentos del Modelo de Cascada

Modelos de Procesos de Software Modelo de Prototipos Construir – Revisar La maqueta Escuchar al cliente El cliente prueba la maqueta Prototipado exploratorio El objetivo es trabajar con clientes hasta evolucionar a un sistema final, a partir de una especificación inicial. Se debe comenzar con unas especificaciones bien entendidas. Prototipado de “throw-away”. El objetivo es entender los requerimientos del sistema. Se puede comenzar con especificaciones poco entendidas.

Modelos de Procesos de Software Modelo de Prototipos La iteración ocurre cuando el prototipo se pone a punto para satisfacer las necesidades del cliente, permitiendo al desarrollador comprender mejor lo que se necesita hacer. Se aplica cuando: El cliente a menudo define un conjunto de objetivos generales para el software, pero no identifica los requisitos detallados de entrada, proceso o salida. El responsable del desarrollo de software no puede estar seguro de la eficacia de un algoritmo, de las capacidades de adaptación del sistema operativo.

Problemas y Riesgos del Modelo de Prototipos. Modelos de Procesos de Software Problemas y Riesgos del Modelo de Prototipos. Lo ideal seria que el prototipo sirviera como un mecanismo para identificar los requisitos del software. El cliente ve lo que parece ser una versión de trabajo del software (no tiene en cuenta que el software esta junto al “chicle” y el cable de embalaje). El desarrollador, a menudo, hace compromisos de implementación para hacer que el prototipo funcione rápidamente. El desarrollador no tiene una gran visibilidad de lo que el cliente necesita.

Modelos de Procesos de Software Trabajo Individual Investigue sobre los siguientes modelos: Modelos Evolutivos: Modelo Incremental. Modelo Espiral. Modelo Espiral WinWin (Victoria-Victoria). Modelo de Desarrollo Concurrente. Modelo Basado en Componentes: Modelo de los Métodos Formales: Nota: Se evaluara estos temas la siguiente sesión.

Técnicas de 4ta Generación Abarca un amplio espectro de herramientas de software que tienen algo en común: Facilitan al Ingeniero de Software la especificación de alguna característica del software a alto nivel. La herramienta genera automáticamente el código fuente basándose en las especificaciones. El paradigma T4G para la ingeniería de software se orienta hacia la posibilidad de especificar el software usando formas de lenguajes especializados o notaciones graficas que describa el problema que hay que resolver en términos que el cliente entienda.

Técnicas de 4ta Generación Una T4G incluye: Lenguaje no procedimental de consulta a BD. Generación de informes. Manejo de datos. Interacción y definición de pantallas. Generación de código. Capacidad grafica de alto nivel. Generación automatizada de html.

Técnicas de 4ta Generación Ventajas: Reducción drástica en el tiempo de desarrollo. Mejora significativa en la productividad de quienes construyen el software. Desventajas: Las herramientas de T4G no son mas fáciles de utilizar que los lenguajes de programación. El código fuente generado es ineficiente. El mantenimiento de grandes sistemas de software desarrollados mediante T4G es cuestionable.

Factores que influyen en el Proceso de Software Podemos mencionar Calidad Habilidad individual Comunicación del equipo Complejidad del producto Notación apropiada Enfoque sistemático Nivel de tecnología Confiabilidad requerida Tiempo disponible Entendimiento del problema

Visibilidad del Proceso Los sistemas de software son intangibles por lo que los administradores necesitan documentación para identificar el progreso en el desarrollo. Esto puede causar problemas.. El tiempo planeado para entrega de resultados puede no coincidir con el tiempo necesario para completar una actividad. La necesidad de producir documentos restringe la iteración entre procesos. .El tiempo para revisar y aprobar documentos es significativo.

Visibilidad del Proceso

El proceso… Que es… Quien lo hace… Porque es importante… En resumen Serie de pasos predecibles Una guía que ayuda a obtener el resultado en términos de calidad y en forma oportuna Quien lo hace… Los Ingenieros de software y sus gestores adaptando el proceso a sus necesidades Porque es importante… Proporciona estabilidad, control y organización, evitandose el caos si es que se controla

Cual es el producto obtenido… En resumen El proceso… Cuales son los pasos… El proceso adoptado dependerá del tipo de software que se pretende construir Cual es el producto obtenido… Programas, documentos y datos como consecuencia de las actividades definidas en el proceso Como estar seguro que se ha hecho correctamente… Los mejores indicadores de eficiencia son: calidad, oportunidad y viabilidad a largo plazo del producto.

Ingeniería de Software Unidad I Gestión de Proyectos de Software Semana 2 Tema El Proceso de Software