Ingeniería de
     Software


Trabajo de Curso de Aula Virtual
Agenda
1. Introducción
2. Técnicas de desarrollo de
software
3. Modelo de Cascada
4. Modelo Espiral
Técnicas de desarrollo de software
Modelo de Cascada
    Definición de
   requerimientos



                    Diseño de sistemas y
                          software



                                            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.
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
 ◦ 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.
Desarrollo evolutivo
                  Actividades
                 concurrentes


                 Especificación   Versión inicial




Bosquejo de la     Desarrollo      Versiones
 descripción                      intermedias



                   Validación     Versión final
Desarrollo evolutivo

 Problemas
  ◦ 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      Calcular          Calcular   Procesar
 ingresos     descuentos        impuestos   Sueldos




     Descuentos        Otros
       legales      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                                                                              Evaluar alternativas e
 objetivos, alternativas y                                                                   identificar y resolver riesgos
       restricciones                                                           Análisis de
                                                                                riesgos

                                                                        Análisis de
                                                                         riesgos
                                                                 Análisis de                                   Prototipo
                                                                  riesgos                     Prototipo 3     operacional

                                                             Análisis        Prototipo 2
                                           REVISIÓN             de    Proto-
                                                             riesgos tipo 1

                                                                                      Simulaciones, modelos, pruebas
                               Plan de requerimientos       Concepto de                        comparativas
                                Plan de ciclo de vida        operación
                                                                           Requerimientos de
                                                                               software
                                                                                                 Diseño del       Diseño
                                                                                                  producto       detallado
                                                              Validación de
                                          Plan de            requerimientos                                 Código
                                         desarrollo
                                                                                                     Prueba de
                                                               Diseño de                             unidades
                                      Integración y plan                               Prueba de
                                          de prueba               V&V
                                                                                      integración
   Planear la siguiente fase                                          Prueba de
                                                                                                Desarrollo, verificar producto
                                                                      aceptación
                                                                                                    del siguiente nivel
                                                           Servicio
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.

                       ia
                 te nc
           a sis                      Calcular       Calcular
       e                              ingresos
     sd                                             descuentos
 Hoja
                                 se


                                             utos
                             ba




                                                    ………………………
                            do



                                         s br
                           el
                      su




                                      eso
                       a
                    bl
                 Ta




                                  Ingr




                       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


Profesor   1             n           n              n
               imparte       clase       Asiste a       alumno
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

Presentacion pp

  • 1.
    Ingeniería de Software Trabajo de Curso de Aula Virtual
  • 2.
    Agenda 1. Introducción 2. Técnicasde desarrollo de software 3. Modelo de Cascada 4. Modelo Espiral
  • 3.
  • 4.
    Modelo de Cascada Definición de requerimientos Diseño de sistemas y software 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.
  • 5.
    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
  • 6.
    Desarrollo evolutivo Desarrollo exploratorio ◦ 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.
  • 7.
    Desarrollo evolutivo Actividades concurrentes Especificación Versión inicial Bosquejo de la Desarrollo Versiones descripción intermedias Validación Versión final
  • 8.
    Desarrollo evolutivo  Problemas ◦ 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.
  • 9.
    Diseño descendente otop-down Refinamiento por pasos sucesivos Sistema jerárquico de refinamientos Como resultado puede tenerse directamente una estructura de módulos
  • 10.
    Estructura de unsistema de sueldos simplificado Procesar Sueldos Calcular Calcular Calcular Procesar ingresos descuentos impuestos Sueldos Descuentos Otros legales descuentos
  • 11.
    Diseño ascendente obottom-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)
  • 12.
    Modelo en espiraldel proceso de Software Determinar Evaluar alternativas e objetivos, alternativas y identificar y resolver riesgos restricciones Análisis de riesgos Análisis de riesgos Análisis de Prototipo riesgos Prototipo 3 operacional Análisis Prototipo 2 REVISIÓN de Proto- riesgos tipo 1 Simulaciones, modelos, pruebas Plan de requerimientos Concepto de comparativas Plan de ciclo de vida operación Requerimientos de software Diseño del Diseño producto detallado Validación de Plan de requerimientos Código desarrollo Prueba de Diseño de unidades Integración y plan Prueba de de prueba V&V integración Planear la siguiente fase Prueba de Desarrollo, verificar producto aceptación del siguiente nivel Servicio
  • 13.
    Sectores del modeloen 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.
  • 14.
    Diagramas de flujode datos Representación gráfica de las trayectorias de los datos en un sistema. ia te nc a sis Calcular Calcular e ingresos sd descuentos Hoja se utos ba ……………………… do s br el su eso a bl Ta Ingr Base de datos de empleados
  • 15.
    Diagramas entidad-relación Representación gráfica de los elementos de información o entidades manipulados por el sistema, y de sus relaciones Profesor 1 n n n imparte clase Asiste a alumno
  • 16.
    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.
  • 17.
    Documentación La documentación serequiere para los siguientes fines: ◦ Aprender a utilizar el sistema  Documentación del usuario ◦ Realizar modificaciones o mantención  Documentación técnica