Ingeniería de Software

Slides:



Advertisements
Presentaciones similares
Ciclo de vida de desarrollo de software
Advertisements

SISTEMAS DE INFORMACIÓN I
Desarrollo en espiral.
Introducción a la Ingeniería del Software
MODELOS ORIENTADOS A OBJETOS
VALORACIÓN Y SELECCIÓN DE INVERSIONES EN RECURSOS INFORMÁTICOS
Ingeniería de Software II
Ingeniería de Software
Metodologías ágiles.
CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Ingeniería de Software
SYSMOTORFLOW PRESENTACIÓN DEL PROCESO Proyecto de Ingeniería de Software 2010.
2. Diseño y Desarrollo del Producto
Modelos de Proceso del Software
Análisis y Diseño de Aplicaciones Ingeniería de Software
Procesos de Software.
M.S.C. Ivette Hernández Dávila
Ingeniería de Software
1 Proyecto de Solución de Problemas con Programación Verano 2008.
Modelo de ciclo de vida en espiral
Ingeniería de Software
CICLO DE VIDA DEL SOFTWARE
Las etapas de un proyecto
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.
Tema 1: Introducción al análisis y diseño de aplicaciones software
Administración Proyectos Jorge Baracaldo Robin Ochoa.
Modelo de espiral Fue originalmente propuesto por Barry Boehm en Es una secuencia de actividades con retrospectiva de una actividad a otra, representado.
Modelos de desarrollo de Software
Técnicas de Programación
Ingeniería del Software
I NTRODUCCIÓN A LA I NGENIERÍA DEL S OFTWARE Ing. Sonia Godoy H Informática empresarial Ing-Sonia Godoy H.
Análisis y diseño detallado de aplicaciones informáticas de gestión
¿Cómo nos ayuda GeneXus a mejorar la calidad en el proceso de desarrollo de Software? Ing. Rosario Estévez Ing. Rafael Mon
Ximena Romano – Doris Correa
Tema 1: Introducción a la Ingeniería de Software
1 Diseño Orientado al Objeto Agustín J. González ELO-326: Seminario de Computadores II 2do. Sem
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.
Análisis y Diseño de Aplicaciones
INGENIERIA DE SOFTWARE
Alexander Aristizabal Ángelo flores herrera
Las etapas de un proyecto Yussef Farran L.
Procesos de Desarrollo de Software
Roles de Open UP.
Ing. José Manuel Poveda.  Muchas personas asocian el término de Software con los programas de PC. Sin embargo, software no son sólo programas, sino todos.
I NTRODUCCIÓN A LA I NGENIERÍA DEL S OFTWARE Ing. Sonia Godoy H Informática empresarial Ing-Sonia Godoy H.
Ingeniería de software
Proceso de desarrollo de software Pablo Gervás F. Informática, UCM, noviembre 2007.
Introducción al proceso de verificación y validación.
Actividades en el Proceso de desarrollo de Software
Simón Esneider Herrera Álvarez Media Técnica Casd 10-2
Modelo Prescriptivos de proceso
Ingeniería del Software I
JHENNIFER SANCHEZ ORTIZ CRISTIAN CAMILO RIASCOS ALEJANDRO PINEDA SANCHEZ FERNANDO JAVIER REBELLON.
Por: Jaime Enrique Melendez Monreal Código: INGENIERÍA DE SOFTWARE.
Ciclo de Vida del Software
Ingeniería de Software
INGENIERIA DE SOFTWARE
 es el conjunto de conocimientos y técnicas científicas aplicadas al desarrollo, implementación, mantenimiento y perfeccionamiento de estructuras (tanto.
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.
Fundamentos de Computación
Software de Comunicaciones
Modelo de procesos de software
1 CICLO DE VIDA. 2 CICLO DE VIDA DE Los Sistemas de Información “ Es un proceso por el cual los analistas de sistemas, los ingenieros computacionales,
Entregables del Proyecto
Transcripción de la presentación:

Ingeniería de Software

Referencias Brookshear: Introducción a las Ciencias de la Computación, Cap 6 Ingeniería de Software Ian Sommerville: Ingeniería de software, 6ª Edición

¿Qué es Software? Programas computacionales y documentación asociada. Los productos de software se pueden desarrollar para un cliente en particular o pueden ser desarrollados para un mercado general. Productos de software pueden ser: Genéricos: desarrollados para ser vendidos a un tipo de clientes. Específicos: desarrollado para un cliente de acuerdo a sus necesidades específicas.

¿Qué es Ingeniería de Software? La Ingeniería de Sofware es una disciplina de la Ingeniería que se preocupa de todos los aspectos de la producción de software. aplicación de los métodos de la ingeniería al proceso de desarrollo de software: Diseño Construcción Mantenimiento

La disciplina – una analogía Diseñar y supervisar la construcción de un edificio de oficinas de varios pisos Recursos? Dinero, tiempo, otros División del proyecto en partes manejables? Asegurar que las partes sean compatibles? Mecanismo de comunicación entre los encargados de las diversas partes? Medición del grado de avance? Muchas otras…..

Diferencias con el software Tolerancias para aceptación Una lavadora que difiere el 2% de su tiempo de trabajo con el deseado vs Sistema de contabilidad cuya exactitud difiere en un 2% ……?

Diferencias con el software Métricas Sistemas de medición de la calidad. Para un sistema electromecánico: Tiempo medio entre fallas (el software no se desgasta)‏ ¿El número de líneas de un programa será una buena medida de su complejidad?

El ciclo de vida del software El software no se desgasta Se modifica por errores no descubiertos en la fase de desarrollo obliga a alterar Por cambios en la aplicación Porque cambios en una modificación anterior provocan problemas en otra parte Ejemplo: cambios de las leyes obliga a cambiar el procedimiento de calculo del sueldo, y ese cambio provoca cambios en otra parte del programa. El proceso de modificación requiere que una persona, usualmente diferente del programador original, estudie el programa y su documentación hasta entenderlo, de otra forma podría introducir mas problemas de los que ya tiene. Muchas veces es preferible desechar el programa y escribirlo de nuevo, que modificarlo. Modificación: para adaptarse a los cambios del entorno. (en otros productos se conoce como reparación o mantención)‏

La fase de desarrollo del ciclo de vida del software Fases de desarrollo Análisis En la organización, se reconoce la necesidad de realizar una aplicación computacional. Tiene que ver mas con la operación de la organización. Identificación de los usuarios y de sus necesidades, es conveniente analizar la situación actual, cuando esta exista. Se debe conocer las necesidades de ,os usuarios de esta función y de sus expectativas. Identificar las salidas de información requeridas, las entradas de información existentes o determinar la forma de obtener la información si no existe, y los procesamientos requeridos de los datos (procesos de transformación)‏ El resultado de la fase de análisis es el conjunto de requerimientos a satisfacer por el nuevo sistema. (ejemplo acceso de datos restringido a personal autorizado)‏ Una vez aclarados los requerimientos, se convierten en especificaciones técnicas del sistema a desarrollar (se debe tener una contraseña de 5 caracteres letras o dígitos)‏ Diseño Desarrollo de los detalles técnicos del sistema propuesto División en módulos Ingeniería Básica o modelamiento conceptual de la solución Construcción e Implantación Escritura de programas, desarrollo de las bases de datos Prueba Pruebas de módulos individuales, pruebas de integración, prueba de sistemas

Algunas herramientas CASE Colaboran con Computer – Aided Software Engineering Ingeniería de software asistida por computador Colaboran con Elaboración de diagramas de flujo Diagramas entidad relación Diccionarios de datos Generadores de código

¿Qué atributos tiene un buen Software? El software debería entregar la funcionalidad y desempeño requeridos por el usuario y debería ser mantenible, confiable y usable. Mantenibilidad El software debe evolucionar para cubrir necesidades cambiantes. Confiabilidad El software debe ser confiable. Eficiencia El software no debe malgastar los recursos del sistema. Usabilidad El software debe ser usable por los usuarios para quienes se diseñó.

Técnicas de desarrollo de software

Modelo de Cascada Diseño de sistemas y software Definición de requerimientos Implementación y prueba de unidades Integración y prueba de sistema Operación y mantenimiento Inconveniente: dificultad para incorporar cambios después de que el proceso parte. 13

Empleo de prototipos Desarrollo de versiones simplificadas Para ser analizadas antes de continuar el desarrollo Facilitan el aprendizaje frente a situaciones nuevas o desconocidas Elimina la necesidad de un desarrollo en cascada o secuencial, permite un desarrollo iterativo o en espiral El prototipo puede ser desechable o evolutivo

Desarrollo evolutivo Desarrollo exploratorio Prototipos desechables El objetivo es trabajar con los clientes y evolucionar hacia un sistema final desde una especificación inicial. Debería partir con requerimientos bien conocidos. Prototipos desechables El objetivo es entender los requerimientos del sistema. Debería comenzar con requerimientos pobremente conocidos. 15

Desarrollo evolutivo Actividades concurrentes Versión inicial Especificación Versión inicial Bosquejo de la descripción Desarrollo Versiones intermedias Validación Versión final

Desarrollo evolutivo Problemas Aplicabilidad Los sistemas a menudo resultan pobremente estructurados. Puede ser necesario contar con habilidades especiales (por ejemplo, lenguajes para prototipos rápidos). Aplicabilidad Para sistemas interactivos pequeños o de mediano tamaño. Para partes de sistemas grandes (por ejemplo, la interfaz del usuario). Para sistemas de corta vida útil.

Diseño descendente o top-down Refinamiento por pasos sucesivos Sistema jerárquico de refinamientos Como resultado puede tenerse directamente una estructura de módulos

Estructura de un sistema de sueldos simplificado Procesar Sueldos Calcular ingresos Calcular descuentos Calcular impuestos Procesar Sueldos Descuentos legales Otros descuentos

Diseño ascendente o bottom-up Identifica las tareas individuales Utiliza las tareas individuales como herramientas abstractas para resolver problemas mas complejos. Estos bloques o módulos individuales podrían ser reutilizados en otras aplicaciones Ej.: filtros de Sistemas operativos familia Unix (Linux)‏

Modelo en espiral del proceso de Software Determinar objetivos, alternativas y restricciones Evaluar alternativas e identificar y resolver riesgos Análisis de riesgos Análisis de riesgos Análisis de riesgos Prototipo operacional Prototipo 3 Análisis de riesgos Prototipo 2 REVISIÓN Proto-tipo 1 Simulaciones, modelos, pruebas comparativas Plan de requerimientos Plan de ciclo de vida Concepto de operación Requerimientos de software Diseño del producto Diseño detallado Validación de requerimientos Plan de desarrollo Código Prueba de unidades Diseño de V&V Integración y plan de prueba Prueba de integración Planear la siguiente fase Prueba de aceptación Desarrollo, verificar producto del siguiente nivel Servicio 21

Sectores del modelo en espiral Fijación de Objetivo Se identifican objetivos específicos para la fase. Identificación de riesgo y reducción Riesgos son identificados y se realizan actividades para reducir los riesgos clave. Desarrollo y validación Se escoge un modelo de desarrollo para el sistema que puede ser cualquiera de los modelos genéricos. Planificación Se revisa el proyecto y se planifica la siguiente fase de la espiral.

Diagramas de flujo de datos Representación gráfica de las trayectorias de los datos en un sistema. Calcular ingresos Calcular descuentos Hojas de asistencia ……………………… Tabla sueldo base Ingresos brutos Base de datos de empleados

Diagramas entidad-relación Representación gráfica de los elementos de información o entidades manipulados por el sistema, y de sus relaciones imparte Asiste a Profesor n clase n n alumno 1

Validación de Software Verificación es mostrar que un sistema adhiere a las especificaciones. Validación: alcanza los requerimientos del cliente del sistema. Involucra los procesos de chequeo y revisión, y las pruebas del sistema. Las pruebas del sistema consideran la ejecución del mismo con casos de prueba que se derivan desde la especificación de datos reales para ser procesados por el sistema.

Documentación La documentación se requiere para los siguientes fines: Aprender a utilizar el sistema Documentación del usuario Realizar modificaciones o mantención Documentación técnica