SlideShare una empresa de Scribd logo
1 de 83
Descargar para leer sin conexión
INTRODUCCIÓN A LA
INGENIERÍA DEL SOFTWARE




  F.Javier Zarazaga Soria
  Javier Nogueras Iso
  Ingeniería del Software I
  febrero 2.008




                              Departamento de Informática e Ingeniería en Sistemas
Índice

 Introducción y conceptos básicos
 El ciclo de vida
 Herramientas CASE




                                    2
INTRODUCCIÓN A LA
INGENIERÍA DEL SOFTWARE
Introducción y Conceptos Básicos




F.Javier Zarazaga Soria
Javier Nogueras Iso
Ingeniería del Software I




                                   Departamento de Informática e Ingeniería en Sistemas
Intr. y conceptos básicos. Índice

 Historia del software
 Características especiales del software
 Crisis del software e Ingeniería del software
 Mitos del software
 La industria del software
 Sistemas de información
 El analista de sistemas
 Estandarización del desarrollo del software
 Introducción a Métrica 2

                                                 4
Breve sinopsis de la historia del SW (I)

 1ª generación del         2ª generación del
 software                  software
   ???? - 1965               1965 - 1975
   Hardware de propósito     Sistemas multiusuario
   general                   Interactividad (Tiempo
   Software como algo        Real)
   añadido                   Almacenamiento y
   Desarrollo a medida       bases de datos
   Ninguna planificación     La industria del
   Orientación por lotes     software
                             Software de gran
                             volumen
                             Mantenimiento

                                                      5
Breve sinopsis de la historia del SW (II)

 3ª generación del           4ª generación del
 software                    software
   1975 - 1990                 1990 - ????
   Microprocesadores, PCs      Tecnologías Orientadas
   y sistemas distribuidos     a Objeto
   Hardware de bajo coste      Interfaces gráficas de
   Industria planetaria        usuario
                               Sistemas expertos
                               Proceso paralelo
                               Tecnologías de
                               componentes
                               COTS (Commercial Off-
                               The-Shelf )
                               Internet y Servicios
                                                        6
                               Web
Terminología habitual en el software

        Bug:
          Chinche, bicho, microbio
          Fastidiar, molestar
        Patch:
          Parche, remiendo, zurcido
        Desfase de presupuesto
          Costes por encima de lo previsto
        Retrasos en entregas
          No cumplimiento de plazos
        Mantenimiento
          Rehacer la aplicación añadiendo nuevas
          posibilidades y mejorando las existentes   7
Críticas a las aplicaciones Software

 Retrasos no previstos
 Desbordamiento de costes
 Software no acorde con los requisitos
 Errores en los programas
 Sensibilidad a los errores humanos y a las
 averías físicas
 Dificultad de puesta en marcha
 Dificultad de evolución
 Mantenimiento ruinoso

                                              8
Coste de Mantenimiento del Software
Desarrollo              Mantenimiento
               35-40%




             1970
                         Desarrollo                Mantenimiento
                                          40-60%




                                        1980        Desarrollo                Mantenimiento


                                                                     40-60%



                                                                   1990




                                                                                              9
La complejidad del Software (I)




  “La complejidad del software es una
  propiedad esencial, no una propiedad
              accidental”



                                         10
La complejidad del Software (II)

 Motivos que llevan a que el software sea complejo
   Complejidad del dominio del problema
      Imagen que del dominio del problema tiene el cliente
      Imagen que del dominio del problema tiene el
      desarrollador
      El dominio del problema en si
   La dificultad de la gestión del proceso de desarrollo
   La flexibilidad del desarrollo software
      Necesidad de grandes labores de abstracción
      Falta de estándares
   Problemas en la caracterización del comportamiento de
   sistemas discretos
      Gran volumen de variables
      Interacciones entre las mismas                         11
Peculiaridades del Software

 El producto software es enteramente conceptual.
 No tiene propiedades físicas como peso, color o
 voltaje, y, en consecuencia no está sujeto a leyes
 físicas o eléctricas.
 Su naturaleza conceptual crea una distancia
 intelectual entre el software y el problema que el
 software resuelve.
 Difícil para una persona que entiende el problema
 entender el sistema software que lo resuelve.
 Para probar es necesario disponer de un sistema
 físico.
 El mantenimiento no es sólo una substitución de
 componentes.
                                                      12
Fallos en Hardware vs fallos en Software

  nº de fallos           El software se degrada
                         con el tiempo
Hardware
                 edad



  nº de fallos                            cambios
                         nº de fallos
Software
(teórico)               Software
                 edad    (real)
                                        edad


                                                    13
Características de un buen software
 Corrección.           Flexibilidad.
 Completitud.          Facilidad de prueba.
 Concisión.            Portabilidad.
 Robustez              Facilidad de reuso.
 Fiabilidad.           Interoperabilidad.
 Eficiencia.           Facilidad de auditoría.
 Integridad.           Exactitud y precisión de
 Facilidad de uso.     cálculos.
 Facilidad de          Consistencia.
 mantenimiento.        Estandarización de los
 Facilidad de traza.   datos.
 Generalidad.          Independencia del
 Modularidad.          Hardware.
                       Legibilidad.



                                                  14
Origen de la Ingeniería del Software

 Aunque no hay consenso, el origen del
 término se atribuye a dos conferencias
 organizadas por la OTAN en 1967 y 1968.
 Ambas conferencias fueron convocadas para
 tratar la llamada crisis del software.
 La llamada crisis del software es todavía hoy
 un problema no resuelto.




                                                 15
Crisis del software (I)

 Primera Fase. Los albores (1945-1955)
   Programar no es una tarea diferenciada del diseño
   de una máquina.
   Uso de lenguaje máquina y ensamblador.
 Segunda Fase. El florecimiento (1955-1965)
   Aparecen multitud de lenguajes.
   Era posible hacer de todo.
 Tercera Fase. La crisis (1965-1970).
   Desarrollo inacabable de grandes programas.
   Ineficiencia, errores, coste impredecible.
   Nada es posible.

                                                       16
Crisis del software (II)

 Cuarta Fase. Innovación conceptual    (1970-
 1980)
   Fundamentos de programación.
   Verificación de programas.
   Metodologías de diseño.
 Quinta Fase. El diseño es el problema (1980-
 ????)
   Entornos de programación.
   Especificación formal.
   Programación automática.


                                                17
¿Qué es la Ingeniería del Software?

 El IEEE define:
   Ingeniería es la aplicación de un método sistemático,
   estructurado y cuantificable a estructuras, máquinas,
   productos, sistemas o procesos.
   Ingeniería del software es la aplicación de un método
   sistemático, estructurado y cuantificable al desarrollo,
   operación y mantenimiento de software.


 Bauer, 1972
   La IS es el establecimiento y uso de sólidos principios
   de ingeniería y buenas prácticas de gestión, así como la
   evolución de herramientas y métodos aplicables y su
   uso cuando sea apropiado para obtener, dentro de las
   limitaciones de recursos existentes, software que sea
   de alta calidad en un sentido explícitamente definido.
         F.L.Bauer. “Software Engineering”, Information Processing, 71, North Holland Publishing Co.,
                                                                                   Amsterdam 1972.
                                                                                                        18
Comparación con otras ingenierías

 Ingeniería mecánica como buscar un gato
 negro en una habitación iluminada.
 Ingeniería química como buscar un gato
 negro en una habitación oscura.
 Ingeniería software como buscar un gato
 negro en una habitación oscura donde no
 hay ningún gato.
 Ingeniería de sistemas como buscar un gato
 negro en una habitación oscura donde no
 hay gato y alguien dice !!!lo encontré!!!.

                                              19
Desarrollo de Software sin Ingeniería

 Especificación de      ?
  Requerimientos
                                         Producto
                                         Software




 Existencia de un vacío de información entre la
 especificación del producto software y su entrega.
 El producto surge espontáneamente después de un
 largo periodo de oscuridad
 ¿Qué pasa si alguien se va a mitad de un proyecto? ¿y
 si se va todo un equipo?

                                                         20
Ingeniería del SW - Análisis de problemas

 Actividad dirigida a la solución de problemas
 Análisis:
 Comprender la naturaleza del problema
   (descomponerlo)

                    Problema




                    Subproblemas
                                                 21
Ingeniería del SW - Síntesis de problemas

 Síntesis:
   Unir las soluciones parciales componiendo una
   estructura de mayor tamaño

                                            Soluciones
                                            parciales




                    Solución




                                                         22
Objetivos de la Ingeniería del Software

     La ingeniería del software persigue la producción de
     sistemas de calidad a bajo coste y a tiempo

         Sistemas de calidad                               Bajo coste

La calidad de un sistema viene definida          El coste de un sistema debe

  por el cumplimiento de los objetivos         incluir tanto el coste de desarrollo

     establecidos para el sistema                 como el de mantenimiento


                                    A tiempo
                En unos plazos preestablecidos y que vienen
                 garantizados por el establecimiento de una
                  secuencia de actividades a llevar a cabo


                                                                                      23
Definición de Ingeniería del Software


    Técnicas, Metodologías y Herramientas

que ayudan a la producción de un software de alta calidad, con un
determinado presupuesto y antes de una determinada fecha




                                                                    24
Ingeniería del Software vs Informática

 Computer Scientist
   Proves theorems about algorithms, designs
   languages, defines knowledge representation
   schemes
   Has infinite time…
 Engineer
   Develops a solution for an application-specific
   problem for a client
   Uses computers & languages, tools, techniques
   and methods
 Software Engineer
   Works in multiple application domains
   Has only 3 months...
      …while changes occurs in requirements and
      available technology
                                                     25
Ingeniería del Software - Terminología

 Técnica (Método):
   Procedimiento formal para obtener resultados
   utilizando alguna notación bien especificada


 Metodología:
   Colección de métodos aplicados a lo largo del
   ciclo de vida del software y unificados mediante
   alguna aproximación filosófica genérica


 Herramienta
   Instrumento, o sistema automatizado, utilizado
   para poner en práctica un método
                                                      26
Métodos o Técnicas
       Modelado del comportamiento
  haciendo uso de los diagramas de estado
                                                   Diagramas de
                                                   Flujo de Datos

                          Entrevistas


                                              Modelado de sistemas
                                              mediante los diagramas
Modelado de datos mediante el uso             de clases propuestos
  del modelo Entidad-Relación                      por BOOCH
      (o Entidad Asociación)




                       Técnicas matriciales


                                                                       27
Metodologías (I)

         MERISE                                 SSADM
Metodología pública francesa           Metodología pública británica




                            MÉTRICA 2
                    Metodología pública española



     METHOD 1
    Metodología de                                SUMMIT-D
  Andersen Consulting                           Metodología de
                                               Coopers & Lybrand




                                                                       28
Metodologías (II)

 Metodologías estructuradas
   Basadas en técnicas estructuradas
   Algunos ejemplos:
     Gane-Sarson
     Yourdon/DeMarco
     Métrica 2
 Metodologías Orientadas a Objeto
   Basadas en técnicas orientadas a objeto
   Algunos ejemplos:
     OMT
     Booch
     Métrica 3                               29
Herramientas
                 Hojas
               de Cálculo   Procesadores
                              de Texto

    Bases de
     Datos

                                       Rational
                                        Rose

   System
   Achytect



               Easy          Object
               Case         Oriented
                              Tool


                                                  30
Mitos del SW. El gestor

 Ya hay estándares y procedimientos. ¿No
 tiene ya bastante el equipo?
 Tenemos las herramientas de desarrollo más
 avanzadas porque compramos los
 ordenadores más modernos.
 Si fallamos en la planificación, añadimos
 más gente y sanseacabó.




                                              31
Mitos del SW. El cliente

 Una declaración inicial de objetivos es
 suficiente para empezar a escribir
 programas. Ya detallaremos más adelante.
 Los requisitos del proyecto cambian
 continuamente, pero los cambios pueden
 acomodarse fácilmente porque el software
 es flexible.
 La labor del desarrollador consiste
 ÚNICAMENTE en escribir líneas de código
 fuente.

                                            32
Mitos del SW. El desarrollador

 Una vez que escribimos el programa y
 hacemos que funcione, se acabó el trabajo.
 No podemos comprobar la calidad hasta que
 se ejecute el programa.
 Lo que se entrega al terminar el proyecto es
 el programa funcionando




                                                33
La industria del Software



El software es una industria,...




                                   ... no es un arte.




                                                        34
Importancia de la Ingeniería del Software

 La economía de todos los países
 desarrollados depende del software,
 representando cada vez un mayor porcentaje
 de su PIB.
 Cada vez son más los sistemas controlados
 por software.
 Los costes del software llegan, en
 ocasiones, a dominar los costes de todo el
 sistema.



                                              35
Tipos de productos software

 Genéricos. Sistemas autónomos desarrollados por
 una organización y puestos en el mercado para
 cualquier cliente.
 Software a medida (especializado). Sistemas
 pensados para un cliente específico y desarrollados
 específicamente por alguna organización contratada
 a tal efecto.
 Sistemas genéricos adaptados a clientes específicos.



 La mayor parte del volumen de facturación es de
 software genérico (Microsoft), sin embargo el mayor
 número de ingenieros se encuentran trabajando en
 software a medida o adaptando software genérico
 (SAP R3, Meta4).                                       36
Sistemas de Información (I)

 Sistema
   Conjunto de componentes que interaccionan entre sí
   para lograr un objetivo común. Ejemplos: el sistema
   nervioso, el sistema económico.
   Un sistema puede estar compuesto por varios niveles de
   sistemas, también denominados subsistemas.
 Sistemas de Información
   Es un sistema cuyo objetivo principal es el
   procesamiento de información.
   La finalidad de los sistemas de información es procesar
   entradas, mantener archivos de datos relacionados con
   la organización en la que están enmarcados, y producir
   información.
   Los principales componentes de un sistema de
   información son las personas, los equipos y los
   procedimientos.
                                                             37
Sistemas de Información (II)
 Análisis
   Descomposición de un sistema para conocer su
   naturaleza, funciones, relaciones y requerimientos.
 Análisis de Sistemas
   Proceso de clasificación e interpretación de
   hechos, diagnóstico de problemas y empleo de la
   información para recomendar mejoras al sistema.
 Diseño de Sistemas
   Proceso de planificar, reemplazar o complementar
   un sistema organizacional existente.
   El Análisis especifica lo   QUÉ     el sistema debe
   hacer.
   El Diseño establece    CÓMO       alcanzar el objetivo.
                                                             38
Cambios generados por los SI (I)
 Trabajo inteligente
   El ordenador se ocupa de las labores repetitivas y
   rutinarias.
 Fusión global de empresas
   La transformación de información, no de bienes, permite a
   la empresa diversificar su área de negocio.
 Idea e Información
   Antes la base del negocio era el uso del dinero y los
   recursos tangibles.
   Ahora son las ideas y la información.
 Usuarios: trabajadores de la información
   La industria de la manufactura representa el 28% de los
   sueldos, el resto se alojan en empresas de servicios y
   manejo de información.



                                                               39
Cambios generados por los SI (II)
 Soporte tecnológico al crecimiento de la empresa
    Hace 20 años una empresa de distribución generaba 500
    facturas año utilizando máquinas de escribir. Actualmente
    genera 50.000 con ayuda de ordenadores.
 Dependencia legal de los SI
    Una caida en la red de comunicaciones forzo la
    publicación en BOE de una extensión de plazo para
    presentación decñaración de impuestos




                                                                40
Los participantes en el juego de los SI (I)

 El usuario
   heterogéneos
   visión muy sesgada de las problemáticas
 El administrador
   de usuarios - supervisor de los usuarios
   de informática - gestor de proyectos
   general - de la organización, financieros.
   Planificación estratégica.
 El cliente
 El personal de operaciones
   instalaciones
   copias de seguridad
   mantenimiento de infraestructura             41
Los participantes en el juego de los SI (II)
 El auditor
   control de calidad y consultor de proceso
 El analista de sistemas
   es la persona cuyo trabajo consiste en centralizar el
   desarrollo del sistema en su conjunto
 El diseñador
   es la persona que partiendo del análisis de un problema y el
   planteamiento de una solución al mismo libre de trabas
   tecnológicas, construye el diseño de dicha solución
   enmarcandolo dentro de un contexto tecnológico particular
 El programador
   es la persona encargada de codificar el diseño de la
   solución
 Analogía con el mundo de la construcción
   Analista - Arquitecto, Diseñador - Aparejador, Programador -
   Albañil
                                                                  42
El analista de sistemas

 Labores del analista de sistemas
   es arqueólogo y escribano
   es innovador
   es mediador
 Separación de papeles
   Analista, Analista/Diseñador,
   Analista/Diseñador/Programador
   Evolución: Programador ... Analista




                                         43
Más terminología (I)
 Especificación de requerimientos
   Es el proceso de recopilación de las características con
   las que deberá contar el software a desarrollar.
   Términos relacionados:
      Especificación del sistema.
      Requisitos de usuario.
 Codificación / Implementación
   Traducción de las especificaciones de diseño a un
   lenguaje de programación determinado.
 Prueba / Test
   Verificación del funcionamiento requerido del software
 Riesgo
   Problema que puede surgir en un proyecto afectando a
   su correcto desarrollo.
   Los riesgos deberían estar identificados y se debería
   determinar estrategias que permitan mitigarlos.            44
Ejemplos de riesgos

 Tecnología desconocida (ejemplos: lenguaje
 de programación no conocido, nuevo
 hardware, etc.).
 Poca experiencia del equipo de desarrollo.
 Problema mal descrito y/o modificaciones en
 la descripción del problema.
 Retraso en algún determinado proveedor.
 Problemas en módulos que sean cuellos de
 botella en el desarrollo.


                                               45
Más terminología (II)
 Integración
   Unión de los diferentes componentes del software
 Mantenimiento
   Modificaciones que se realizan sobre el software una vez
   que este se ha entregado al cliente. El motivo de estas
   modificaciones puede ser la corrección de defectos
   detectados en su funcionamiento, o la ampliación o
   modificación de la funcionalidad a petición del cliente.
 Contrato o acuerdo del proyecto
   Acuerdo entre desarrollador y cliente en el que se especifica
   QUÉ es lo que se va a entregar como resultado del proyecto,
   CUÁNTO dinero se va a pagar por ello y CUÁNDO se realizara
   esta entrega. Debe estar firmado por las dos partes.
 Transferencia al cliente
   Proceso por el cual se entrega al cliente el resultado del
   proyecto y éste comprueba que el resultado es el que se
   había acordado.                                              46
Más terminología (III)

 Acoplamiento
   Medio de evaluar la relación entre elementos de un
   sistema.
   Es la medida del grado de interdependencia entre
   los elementos de un sistema.
 Cohesión
   Indica el grado de conexión funcional entre
   elementos.
   Es una medida de la fuerza de la relación funcional
   entre elementos de un sistema.



                                                         47
Estandarización del desarrollo del SW
                           Estándares de
                       Ingeniería del Software

                   Objetivo: Garantizar la calidad,
                      presupuesto y plazos de
                       los proyectos software




    ESA                        MIL                             IEEE
Agencia Espacial   Departamento de defensa                 The Institute of
   Europea
                            USA                             Electrical and
                                                      Electronics Engineers, Inc



                                                                                   48
IEEE - Estándares para Ingeniería del SW

 IEEE 1058 - Standard for Software Project Management
 Plans
 IEEE 828 - Standard for Software Configuration
 Management Plans
 Otros estándares de interés:
   IEEE 610 - Glossary of Software Engineering Terminology
   IEEE 830 - Guide for Software Requirements Specification
   IEEE 1002 - Standard Taxonomy for Software Engineering
   Standards
   IEEE 1074 - Standard for Developing Software Life Cycle
   Processes
   IEEE 1028- Standard for Software Reviews and Audits
 Los estándares son revisados y actualizados cada 5 años
 Reconocidos y aceptados por gran número de
 organismos y empresas                                        49
MIL DOD - STD - 2167A
 Establece los requerimientos del
 Departamento de Defensa USA para el ciclo
 de vida del software
 Actividades de desarrollo del software
   Análisis y Diseño de requerimientos del sistema
   Análisis de los requerimientos software
   Diseño preliminar
   Diseño detallado
   Codificación y testeo de unidades
   Integración y tests de CSC (Computer Software
   Component, se compone de CSC’s y unidades)
   Test de CSCI (Computer Software Configuration
   Item)
   Integración del sistema y tests                   50
Estándares de la ESA
  Conjunto de estándares definidos por la Agencia Espacial Europea
  para la especificación , desarrollo y          mantenimiento del software



      Software Engineering Standards
Definen las obligaciones y recomendaciones
prácticas para la especificación, desarrollo y
         mantenimiento del software

                                           Software Engineering Guides
                                     Discuten su aplicación práctica en mayor
                                    nivel de detalle, y describen los métodos y
                                   herramientas para llevarlos a cabo. También
                                  contienen información para la redacción de los
                                    documentos requeridos por los estándares


                                                                                   51
Estructura de los estándares y guías ESA
                                Software
                               Engineering
                                Standards
               Product Standards              Procedure Standards



          User Requirements                   Software Project
        Definition Phase Guide               Management Guide
      Software Requirements                  Software Configuration
      Definition Phase Guide                  Management Guide
      Architectural Design                    Software Verification
         Phase Guide                          and Validation Guide
      Detail Design and                          Software Quality
   Production Phase Guide                        Assurance Guide
     Transfer Phase
         Guide
      Operations and
 Maintenance Phase Guide
                                                                      52
Otros estándares
ISO (International Organization for Standardization)
  OSI (Open System Interconnection)
  EDI (Electronic Data Interchange)
  ISO 9001 (Estandard para el desarrollo de software)
CCITT (International Consultative Committee on
Telephony and Telegraphy)
  Compuesto por compañías telefónicas de todo el mundo
  X.25 estd. de comunicaciones para servicios del nivel de red
ANSI (American National Standard Institute)
  Representante oficial de USA en ISO y CCITT
  ASCII
OMG (Object Management Group): Comité que busca la
armonización de los fabricantes en dos líneas, la
terminología en la orientación a objeto, y la
estandarización de interfaces
  CORBA (Common Object Request Broker Architecture)              53
Introducción Métrica 2.1 (I)

   Metodología de Planificación y Desarrollo de
   Sistemas Informáticos
       Promovida por el Consejo Superior de Informática
       (órgano encargado de elaborar y desarrollar la
       política informática del Gobierno)
   Objetivos:
Crear un entorno que permita al equipo de trabajo construir
Sistemas, que:
         - Den SOLUCIONES a los objetivos considerados prioritarios en la Administración.
         - Se desarrollen CUANDO EL USUARIO LOS NECESITE y
                   DE ACUERDO A LOS PRESUPUESTOS Y DURACIÓN ESTIMADOS
          - Se MANTENGAN FÁCILMENTE para soportar los cambios futuros en la
organización


                                                                                            54
Introducción Métrica 2.1 (II)

 Métrica versión 2 ofrece un marco de trabajo en el
 que se define:
   Una estructura de proyecto que sirva de guía al equipo
   de trabajo e involucre a los usuarios en su desarrollo y
   en sus puntos decisivos.
   Un conjunto de productos finales a desarrollar.
   Un conjunto de técnicas para obtener los productos
   finales.
   Las diferentes responsabilidades y funciones de los
   miembros del equipo de proyecto y de los usuarios.



 Métrica versión 3
   Basada en técnicas Orientadas a Objetos
   Ya está operativa
                                                              55
Visión general de Métrica 2.1




                                56
INTRODUCCIÓN A LA
INGENIERÍA DEL SOFTWARE
El Ciclo de Vida




 F.Javier Zarazaga Soria
 Javier Nogueras Iso
 Ingeniería del Software I




                             Departamento de Informática e Ingeniería en Sistemas
Ciclo de vida del software. Índice

 Introducción
 Fases, Tareas y Actividades
 Ciclo de Vida de un producto Software
   Ciclo de Vida en Cascada Clásico
   Ciclo de Vida en V
   Ciclo de Vida en Cascada Mejorado
   Ciclo de Vida con Prototipado
   Modelo Incremental
   Ciclo de Vida en Espiral
 Estándares para el desarrollo de Ciclos de
 Vida
                                              58
Introducción al ciclo de vida
 El desarrollo del software atraviesa una sucesión de estados
 (actividades de desarrollo del software)
                                                   del
                                         per ativa are
                                 Fase O to Softw
                                        c
                                  produ




                                                                Jubilación
    Infancia                    Madurez

                de                                       Retirad Fase de
         Ciclo l Software                                       a o Su
                                                                       stitució
               e
        rollo d                                                                n
Desar



                                                                                   59
Ciclo de vida. Terminología I


                   Ciclo de Vida de un Producto Software


 Sucesión de pasos a través de los cuales el producto software va progresando.
Estos pasos abarcan desde el planteamiento del problema a resolver mediante el
producto software, hasta la retirada de dicho producto una vez que ha finalizado
                                 su vida operativa




                                                                                   60
Ciclo de vida. Terminología II


                                   Función   Actividades del
                Proyecto                     Proceso o de
                                   Función   Gestión


         Fase     Fase     Fase


        Tarea    Tarea     Tarea




        Actividades del Producto




                                                               61
Ciclo de vida. Terminología III
                                              Función
          Actividad o conjunto de actividades que abarcan la duración del proyecto
          Ejemplos:
                      Gestión de Configuraciones
                      Gestión del Proyecto

          En IEEE-1074 -> Procesos Integrales

                      Fase                                               Tarea

Mayor unidad de trabajo                            Menor unidad de trabajo sujeta a gestión
Finalizan con los hitos más                        Suficientemente pequeña para una
importantes del proyecto                           adecuada planificación y seguimiento
Ejemplos:                                          Suficientemente grande para permitir
            Definición de los Requerimientos de
usuario                                            micro gestión
            Diseño Arquitectural                   Ejemplos:
                                                               Escribir el manual de usuario
                                                               Test de subsistemas




                                                                                               62
Ciclo de Vida en Cascada Clásico (I)
Requerimientos                                Cambio de
                                            Requerimientos


           Especificación


                            Diseño


                                     Implementación


                                                      Tests de
                                                      Unidades

                             Desarrollo                      Integración y
                                                           Tests del Sistema

                                                                               Modo Operacional
                             Mantenimiento
                                                                                      Retirada
                                                                                                  63
Ciclo de Vida en Cascada Clásico (II)
 Ventajas:
   Fuerza a una aproximación disciplinada fruto de su
   surgimiento a partir del ciclo convencional de una
   ingeniería
   Sencillo de implantar y gestionar (es el preferido por los
   gestores de proyectos)
 Problemática:
   Es linear y el desarrollo del software no lo es
   El cliente debe tener paciencia (no ve resultados hasta el
   final)
   Diferencias en la interpretación de los requerimientos
   entre cliente y desarrollador
   Los proyectos raramente siguen el flujo secuencial que
   propone el modelo (imposibilidad de actividades en
   paralelo)
   Es difícil para el cliente establecer al principio todos los
   requisitos de forma explícita
                                                                  64
Ciclo de Vida en V

             oferta                                    manten.

               especif.                           pru. acep.


                      arquitect.             pru. integ.


                                   módul.1


 Ventajas:
   Supone una mejora respecto al modelo en
   cascada, eliminando parte de la secuencialidad


 Problemas:
   Prácticamente los mismos que los del modelo en
   cascada
                                                                 65
Ciclo de Vida en Cascada Mejorado (I)
                                                      Cambio de
Requerimientos                                      Requerimientos
 Verificación                                         Verificación
           Especificación
                Verificación

                           Planificación
                               Verificación

                                                Diseño
                                              Verificación

                                                         Implementación
                                                              Test

                                                                     Integración
                           Desarrollo
                                                                          Test

                                                                                   Modo Operacional

                           Mantenimiento
                                                                                          Retirada
                                                                                                      66
Ciclo de Vida en Cascada Mejorado (II)
 Mejoras:
   Estipula la documentación que debe acompañar cada fase
   y los requerimientos que todos los productos de cada una
   de las fases deben cumplir
   En los hitos que finalizan cada fase se realiza la
   aprobación de todos los productos de esa fase, incluyendo
   los documentos
   El testing es inherente a cada una de las fases del modelo
   y no se trata como una fase más del mismo a ser realizada
   una vez que se ha construido el producto
   Todos los cambios que se produzcan en las operaciones de
   mantenimiento deben ser reflejados en los documentos de
   las fases a las que afecten
 Problemática:
   Modelo guiado por la documentación (los documentos son
   los hilos conductores del modelo). Esto puede producir
   diferencias en la interpretación de los mismos entre
   cliente y desarrollador                                      67
Ciclo de Vida con Prototipado (I)
           Comienzo
  Parada

                       Recolección y
                      refinamiento de
                         requisitos

     Producto de                         Diseño
      ingeniería                         rápido




                                          Construcción
Refinamiento
del prototipo
                                          del prototipo   Objetivo:
                                                                  Obtener rápidamente un prototipo
                                                                  de la aplicación que permitan al
                                                                  cliente interactuar con ella con
                                                                  el fin de detectar deficiencias en
                      Evaluación del
                                                                  las especificaciones
                      prototipo por el
                                                                  Construimos un rápido boceto de
                          cliente
                                                                  la aplicación


                                                                                                  68
Ciclo de Vida con Prototipado (II)

 Ventajas
   Mejora la comunicación analista - cliente
   Mejor identificación de los requerimientos del
   cliente
   Satisface la curiosidad del cliente (en seguida
   puede ver cosas)


 Problemas:
   Identificación del prototipo con el producto final
   Prototipo no reaprovechable
   Posibles asumpciones técnicas inapropiadas con
   el fin de prototipar más rápidamente
                                                        69
Modelo Incremental (I)
Requerimientos
 Verificación                                                                   Desarrollo
           Especificación
                Verificación

                           Planificación                                        Mantenimiento
                               Verificación

                                       Diseño Arquitectural
                                              Verificación


                                                        Para cada módulo:
                                                        Realizar el diseño detallado,
                                                        implementación, integración
                                                        y test. Transferir al cliente


  “Software is built, not written” [Schach 96]
  Propone la construcción del software paso                                             Modo Operacional
  a paso: realización de software igual a una
  ingeniería incremental
                                                                                               Retirada
                                                                                                           70
Modelo Incremental (II)
 Ventajas:
   Satisface la curiosidad del cliente
   El cliente puede ir “viendo” la aplicación real, no un
   prototipo
   Muy ligado al proceso de sustitución de un sistema por
   otro
   Posibilidad de detener el proyecto sin perder todo lo
   realizado
   Mayor flexibilidad ante cambios en los requerimientos
   durante el desarrollo
 Problemática:
   Cada nuevo módulo se debe integrar en el sistema sin
   afectar a lo que ya está funcionando (datos, interfaces,...)
   El diseño y desarrollo de los diferentes módulos debe ser
   coherente entre sí
   Gran tendencia a la degeneración del control del proyecto
   ante la imposibilidad de verlo como un todo                    71
El Ciclo de Vida en Espiral (I)

                    Determinación de                                                                                    Evaluación de las
                 objetivos, alternativas y                                                                         alternativas identificadas,
                       restricciones                                                                                  solucionando riesgos
                                                                                           Análisis de
                                                                                            riesgos

                                                                                     Análisis de
                                                                                      riesgos


                                                                           Análisis de
                                                                            riesgos

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


                                                                                                   Simulaciones,       modelos,      medidas
                                             Plan de requerimientos
                                              Plan del ciclo de vida      Concepto de
                                                                           operación

                                                                                           Requerimientos
                                                                                                SW
                                                                                                             Diseño del             Diseño
                                                                                                              producto             detallado
                                                                           Validación de
                                                  Plan de desarrollo      requerimientos                                      Codifi-
                                                                                                                              cación

                                                                                   Diseño de la                         Test de
                                                                              verificación y                           unidades
                                             Plan de integración y test        validación                  Test de
                                                                                                         integración
                                                                                             Test de
                                                                                            aceptación
                                                                           Puesta en
                 Siguiente fase del plan                                    servicio
                                                                                                                    Desarrollo y verificación
                                                                                                                del siguiente nivel del producto



Propuesto por Boehm, 1988


                                                                                                                                                   72
El Ciclo de Vida en Espiral (II)

 Identificación de Riesgos
 Asignar prioridades a los riesgos
 Desarrollar una serie de prototipos para los
 riesgos identificados comenzando con el
 más prioritario
 Hacer uso del modelo en cascada para cada
 fase de desarrollo
 Si los riesgos han sido resueltos
 satisfactoriamente, evaluar los resultados
 de la fase y planificar la siguiente
 Si alguno de los riesgos no puede ser
 resuelto, abandonar el proyecto
 inmediatamente                                 73
El Ciclo de Vida en Espiral (III)

 Ventajas:
   Inclusión de de análisis de riesgos a lo largo del
   proceso
   Desarrollo de software = proceso evolutivo
   Uso de prototipos, uso de simulaciones
   El cliente ve evolucionar el proyecto
   Tratamiento del mantenimiento al mismo nivel que
   el desarrollo (se trata de otra espiral más)
 Problemas:
   Difícil de convencer al cliente de su utilidad (hay
   que realizar muchos tests y esto cuesta dinero)
   Implantación muy compleja
   Necesita gran habilidad en la valoración de riesgos
   Método muy nuevo                                      74
IEEE - Std 1074 - 1991

 Std 1074-1991
   Standard for Developing Software Life Cycle Processes
 Alcance
   Indica un conjunto de actividades que constituyen los
   procesos que son obligatorios para el desarrollo y
   mantenimiento del software, tanto por si sólo, como
   formando parte de un sistema
   No incluye actividades para el desarrollo del hardware,
   realización de compras, ...
   No recomienda un ciclo de vida específico
 Aplicabilidad
   Proyectos de desarrollo y mantenimiento de software
   Descomponer proyectos grandes en subproyectos,
   aplicar el estándar a cada uno de ellos y al conjunto
                                                             75
Estándar ESA para el Ciclo de Vida (I)

 Producto




                                         76
Estándar ESA para el Ciclo de Vida (II)

 Proceso




                                          77
INTRODUCCIÓN A LA
INGENIERÍA DEL SOFTWARE
Herramientas y Tecnología CASE




 F.Javier Zarazaga Soria
 Javier Nogueras Iso
 Ingeniería del Software I




                                 Departamento de Informática e Ingeniería en Sistemas
Herramientas CASE. Índice

 Introducción a las herramientas CASE
 Historia de las Herramientas CASE
 Tipos de herramientas CASE




                                        79
Introducción a las herramientas CASE

 CASE: Computer Assisted Software
 Engineering
 Herramienta CASE
   Herramienta de software que automatiza tareas
   particulares del ciclo de vida del software.
     Dibujado de diagramas.
     Prototipado de la interfaz de usuario.
     Utilidades para almacenar y obtener informes,
     así como consultar toda la información de
     desarrollo con la que se cuenta.
     Verificación y corrección de especificaciones.
     Generación de código.
                                                      80
Historia de las herramientas CASE
 A principios de los 80
   dibujado de diagramas
   elaboración de documentación
 A mediados de los 80
   comprobación automática de errores basada en
   especificación de reglas y lenguajes formales
   repositorios o diccionarios para almacenar la
   información del sistema
 Finales 80, principios 90
   generación automática de código partiendo de la
   especificación del diseño
 Actualmente
   ingeniería inversa o reingeniería
   reutilización                                     81
Tipos de herramientas CASE

Herramientas de
  Ingeniería de la Información.
      Manejan datos de negocio, sus relaciones y la forma
      en que fluyen entre distintas áreas de la
      organización.
  planificación y administración de proyectos.
      estimación de esfuerzos y coste de desarrollo del
      software.
      planificación de proyectos.
  análisis de riesgos.
  control de calidad.
  análisis y diseño.
  prototipado y simulación.
  diseño y desarrollo de interfaces de usuario.
  programación.
  ingeniería inversa.
Entornos integrados.                                        82
83

Más contenido relacionado

La actualidad más candente (15)

Evolucion de la programacion
Evolucion de la programacionEvolucion de la programacion
Evolucion de la programacion
 
La evolcion de la programacion
La evolcion de la programacionLa evolcion de la programacion
La evolcion de la programacion
 
Software
SoftwareSoftware
Software
 
Apuntes2
Apuntes2Apuntes2
Apuntes2
 
Alfonso software
Alfonso softwareAlfonso software
Alfonso software
 
Ingenieria inversa
Ingenieria inversaIngenieria inversa
Ingenieria inversa
 
Garcia callejas
Garcia callejas Garcia callejas
Garcia callejas
 
software
softwaresoftware
software
 
marco geronzi soy rre piola
marco geronzi soy rre piolamarco geronzi soy rre piola
marco geronzi soy rre piola
 
actividad 10
actividad 10actividad 10
actividad 10
 
actividad 10
actividad 10actividad 10
actividad 10
 
Equipo 4 Modelos de procesos de Software
Equipo 4 Modelos de procesos de SoftwareEquipo 4 Modelos de procesos de Software
Equipo 4 Modelos de procesos de Software
 
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad TécnicaPresentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
Presentación Proyecto # 54 Premio Eureka 2011 Mención Innovatividad Técnica
 
Tipos de-software II
Tipos de-software IITipos de-software II
Tipos de-software II
 
Presentación de dinámica de fluidos computacional y prácticas de confiabilida...
Presentación de dinámica de fluidos computacional y prácticas de confiabilida...Presentación de dinámica de fluidos computacional y prácticas de confiabilida...
Presentación de dinámica de fluidos computacional y prácticas de confiabilida...
 

Destacado

Validacion de usabilidad de sistema informatico
Validacion de usabilidad de sistema informaticoValidacion de usabilidad de sistema informatico
Validacion de usabilidad de sistema informaticoEmanuel Aquino
 
Seguridad en los sistemas operativos
Seguridad en los sistemas operativosSeguridad en los sistemas operativos
Seguridad en los sistemas operativosjetmu
 
El Abc De La ComputacióN Escolar
El Abc De La ComputacióN EscolarEl Abc De La ComputacióN Escolar
El Abc De La ComputacióN Escolarjpgv84
 
Clase computacion primaria
Clase computacion primariaClase computacion primaria
Clase computacion primariawilder mendez
 
COMPUTACION PARA PEQUES POR LUCIA VILLEGAS
 COMPUTACION PARA PEQUES POR LUCIA VILLEGAS COMPUTACION PARA PEQUES POR LUCIA VILLEGAS
COMPUTACION PARA PEQUES POR LUCIA VILLEGASLucía Villegas
 
computacion primaria basica 3
computacion primaria basica 3computacion primaria basica 3
computacion primaria basica 3Innovattech
 
Pecha Kucha MOOCs
Pecha Kucha MOOCsPecha Kucha MOOCs
Pecha Kucha MOOCsneusquick
 
Reporte mensual de marcas en Redes Sociales - Octubre - Futuro Labs
Reporte mensual de marcas en Redes Sociales - Octubre - Futuro LabsReporte mensual de marcas en Redes Sociales - Octubre - Futuro Labs
Reporte mensual de marcas en Redes Sociales - Octubre - Futuro LabsNeo Consulting
 
Foire aux Vins de Colmar 2014
Foire aux Vins de Colmar 2014Foire aux Vins de Colmar 2014
Foire aux Vins de Colmar 2014Bâle Région Mag
 
Prospective controleurdegestion
Prospective controleurdegestionProspective controleurdegestion
Prospective controleurdegestionKrichen Anis
 
Diaporama nantesetape1
Diaporama nantesetape1Diaporama nantesetape1
Diaporama nantesetape1ThielaCatic
 
Presentación I MKT+INN Victor Lozano
Presentación I MKT+INN   Victor LozanoPresentación I MKT+INN   Victor Lozano
Presentación I MKT+INN Victor LozanoNeo Consulting
 
4º domingo adviento ciclo b
4º domingo adviento ciclo b4º domingo adviento ciclo b
4º domingo adviento ciclo beducarconjesus
 
Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013
Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013
Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013Vincent DEMULIERE
 
La literatura griega. Apolo y Dafne. paula rufo
La literatura griega. Apolo y Dafne. paula rufoLa literatura griega. Apolo y Dafne. paula rufo
La literatura griega. Apolo y Dafne. paula ruforufasanchez
 
Formulario proyecto nov
Formulario proyecto novFormulario proyecto nov
Formulario proyecto novannsand.ana
 
Construccion email marketing
Construccion email marketingConstruccion email marketing
Construccion email marketingMasterBase®
 
20121108 présentation trendrapport fr - def
20121108 présentation trendrapport   fr - def20121108 présentation trendrapport   fr - def
20121108 présentation trendrapport fr - defLiesbeth Vranckaert
 
Dossier de presse Panasonic série NA
Dossier de presse Panasonic série NADossier de presse Panasonic série NA
Dossier de presse Panasonic série NAAgence Hopscotch
 
Le cloud en toute confiance
Le cloud en toute confianceLe cloud en toute confiance
Le cloud en toute confianceIkoula
 

Destacado (20)

Validacion de usabilidad de sistema informatico
Validacion de usabilidad de sistema informaticoValidacion de usabilidad de sistema informatico
Validacion de usabilidad de sistema informatico
 
Seguridad en los sistemas operativos
Seguridad en los sistemas operativosSeguridad en los sistemas operativos
Seguridad en los sistemas operativos
 
El Abc De La ComputacióN Escolar
El Abc De La ComputacióN EscolarEl Abc De La ComputacióN Escolar
El Abc De La ComputacióN Escolar
 
Clase computacion primaria
Clase computacion primariaClase computacion primaria
Clase computacion primaria
 
COMPUTACION PARA PEQUES POR LUCIA VILLEGAS
 COMPUTACION PARA PEQUES POR LUCIA VILLEGAS COMPUTACION PARA PEQUES POR LUCIA VILLEGAS
COMPUTACION PARA PEQUES POR LUCIA VILLEGAS
 
computacion primaria basica 3
computacion primaria basica 3computacion primaria basica 3
computacion primaria basica 3
 
Pecha Kucha MOOCs
Pecha Kucha MOOCsPecha Kucha MOOCs
Pecha Kucha MOOCs
 
Reporte mensual de marcas en Redes Sociales - Octubre - Futuro Labs
Reporte mensual de marcas en Redes Sociales - Octubre - Futuro LabsReporte mensual de marcas en Redes Sociales - Octubre - Futuro Labs
Reporte mensual de marcas en Redes Sociales - Octubre - Futuro Labs
 
Foire aux Vins de Colmar 2014
Foire aux Vins de Colmar 2014Foire aux Vins de Colmar 2014
Foire aux Vins de Colmar 2014
 
Prospective controleurdegestion
Prospective controleurdegestionProspective controleurdegestion
Prospective controleurdegestion
 
Diaporama nantesetape1
Diaporama nantesetape1Diaporama nantesetape1
Diaporama nantesetape1
 
Presentación I MKT+INN Victor Lozano
Presentación I MKT+INN   Victor LozanoPresentación I MKT+INN   Victor Lozano
Presentación I MKT+INN Victor Lozano
 
4º domingo adviento ciclo b
4º domingo adviento ciclo b4º domingo adviento ciclo b
4º domingo adviento ciclo b
 
Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013
Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013
Les français et le numérique : l’étude 2013_Rapport credoc 2013-dec2013
 
La literatura griega. Apolo y Dafne. paula rufo
La literatura griega. Apolo y Dafne. paula rufoLa literatura griega. Apolo y Dafne. paula rufo
La literatura griega. Apolo y Dafne. paula rufo
 
Formulario proyecto nov
Formulario proyecto novFormulario proyecto nov
Formulario proyecto nov
 
Construccion email marketing
Construccion email marketingConstruccion email marketing
Construccion email marketing
 
20121108 présentation trendrapport fr - def
20121108 présentation trendrapport   fr - def20121108 présentation trendrapport   fr - def
20121108 présentation trendrapport fr - def
 
Dossier de presse Panasonic série NA
Dossier de presse Panasonic série NADossier de presse Panasonic série NA
Dossier de presse Panasonic série NA
 
Le cloud en toute confiance
Le cloud en toute confianceLe cloud en toute confiance
Le cloud en toute confiance
 

Similar a Sistemas

Exposicion unidad 1 ing software
Exposicion unidad 1 ing softwareExposicion unidad 1 ing software
Exposicion unidad 1 ing softwareuniv of pamplona
 
El sofware 1
El sofware 1El sofware 1
El sofware 1yowui1444
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuriyasurimarleni
 
Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software llmdmyn14
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareSergio Sanchez
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitosCarlos Vega Valqui
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el procesojenmer
 
Unidad i ing_soft
Unidad i ing_softUnidad i ing_soft
Unidad i ing_softUCC
 
Introducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareIntroducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareJose Diaz Silva
 
01 el proceso-de_desarrollo_de_software
01 el proceso-de_desarrollo_de_software01 el proceso-de_desarrollo_de_software
01 el proceso-de_desarrollo_de_softwarePaola Galindo
 
Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionarioSamuelSanchez136
 

Similar a Sistemas (20)

Is1 01
Is1 01Is1 01
Is1 01
 
Diapo 2
Diapo 2Diapo 2
Diapo 2
 
Exposicion unidad 1 ing software
Exposicion unidad 1 ing softwareExposicion unidad 1 ing software
Exposicion unidad 1 ing software
 
El sofware
El sofwareEl sofware
El sofware
 
El sofware 1
El sofware 1El sofware 1
El sofware 1
 
Inge de software por jophwa y yasuri
Inge de software por jophwa y yasuriInge de software por jophwa y yasuri
Inge de software por jophwa y yasuri
 
Apuntes2
Apuntes2Apuntes2
Apuntes2
 
Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software Sistemas II- Ingeniería del software
Sistemas II- Ingeniería del software
 
Software
SoftwareSoftware
Software
 
Unidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De SoftwareUnidad 1.1 Que Es La Ing. De Software
Unidad 1.1 Que Es La Ing. De Software
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
El producto y el proceso
El producto y el procesoEl producto y el proceso
El producto y el proceso
 
Unidad i ing_soft
Unidad i ing_softUnidad i ing_soft
Unidad i ing_soft
 
Introducción a la ingenieria del Software
Introducción a la ingenieria del SoftwareIntroducción a la ingenieria del Software
Introducción a la ingenieria del Software
 
01 el proceso-de_desarrollo_de_software
01 el proceso-de_desarrollo_de_software01 el proceso-de_desarrollo_de_software
01 el proceso-de_desarrollo_de_software
 
Evolucion del software crisis y mitos
Evolucion del software crisis y mitosEvolucion del software crisis y mitos
Evolucion del software crisis y mitos
 
Introducción a la ingeniería del software - cuestionario
Introducción a la ingeniería del software -  cuestionarioIntroducción a la ingeniería del software -  cuestionario
Introducción a la ingeniería del software - cuestionario
 

Sistemas

  • 1. INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniería del Software I febrero 2.008 Departamento de Informática e Ingeniería en Sistemas
  • 2. Índice Introducción y conceptos básicos El ciclo de vida Herramientas CASE 2
  • 3. INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE Introducción y Conceptos Básicos F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniería del Software I Departamento de Informática e Ingeniería en Sistemas
  • 4. Intr. y conceptos básicos. Índice Historia del software Características especiales del software Crisis del software e Ingeniería del software Mitos del software La industria del software Sistemas de información El analista de sistemas Estandarización del desarrollo del software Introducción a Métrica 2 4
  • 5. Breve sinopsis de la historia del SW (I) 1ª generación del 2ª generación del software software ???? - 1965 1965 - 1975 Hardware de propósito Sistemas multiusuario general Interactividad (Tiempo Software como algo Real) añadido Almacenamiento y Desarrollo a medida bases de datos Ninguna planificación La industria del Orientación por lotes software Software de gran volumen Mantenimiento 5
  • 6. Breve sinopsis de la historia del SW (II) 3ª generación del 4ª generación del software software 1975 - 1990 1990 - ???? Microprocesadores, PCs Tecnologías Orientadas y sistemas distribuidos a Objeto Hardware de bajo coste Interfaces gráficas de Industria planetaria usuario Sistemas expertos Proceso paralelo Tecnologías de componentes COTS (Commercial Off- The-Shelf ) Internet y Servicios 6 Web
  • 7. Terminología habitual en el software Bug: Chinche, bicho, microbio Fastidiar, molestar Patch: Parche, remiendo, zurcido Desfase de presupuesto Costes por encima de lo previsto Retrasos en entregas No cumplimiento de plazos Mantenimiento Rehacer la aplicación añadiendo nuevas posibilidades y mejorando las existentes 7
  • 8. Críticas a las aplicaciones Software Retrasos no previstos Desbordamiento de costes Software no acorde con los requisitos Errores en los programas Sensibilidad a los errores humanos y a las averías físicas Dificultad de puesta en marcha Dificultad de evolución Mantenimiento ruinoso 8
  • 9. Coste de Mantenimiento del Software Desarrollo Mantenimiento 35-40% 1970 Desarrollo Mantenimiento 40-60% 1980 Desarrollo Mantenimiento 40-60% 1990 9
  • 10. La complejidad del Software (I) “La complejidad del software es una propiedad esencial, no una propiedad accidental” 10
  • 11. La complejidad del Software (II) Motivos que llevan a que el software sea complejo Complejidad del dominio del problema Imagen que del dominio del problema tiene el cliente Imagen que del dominio del problema tiene el desarrollador El dominio del problema en si La dificultad de la gestión del proceso de desarrollo La flexibilidad del desarrollo software Necesidad de grandes labores de abstracción Falta de estándares Problemas en la caracterización del comportamiento de sistemas discretos Gran volumen de variables Interacciones entre las mismas 11
  • 12. Peculiaridades del Software El producto software es enteramente conceptual. No tiene propiedades físicas como peso, color o voltaje, y, en consecuencia no está sujeto a leyes físicas o eléctricas. Su naturaleza conceptual crea una distancia intelectual entre el software y el problema que el software resuelve. Difícil para una persona que entiende el problema entender el sistema software que lo resuelve. Para probar es necesario disponer de un sistema físico. El mantenimiento no es sólo una substitución de componentes. 12
  • 13. Fallos en Hardware vs fallos en Software nº de fallos El software se degrada con el tiempo Hardware edad nº de fallos cambios nº de fallos Software (teórico) Software edad (real) edad 13
  • 14. Características de un buen software Corrección. Flexibilidad. Completitud. Facilidad de prueba. Concisión. Portabilidad. Robustez Facilidad de reuso. Fiabilidad. Interoperabilidad. Eficiencia. Facilidad de auditoría. Integridad. Exactitud y precisión de Facilidad de uso. cálculos. Facilidad de Consistencia. mantenimiento. Estandarización de los Facilidad de traza. datos. Generalidad. Independencia del Modularidad. Hardware. Legibilidad. 14
  • 15. Origen de la Ingeniería del Software Aunque no hay consenso, el origen del término se atribuye a dos conferencias organizadas por la OTAN en 1967 y 1968. Ambas conferencias fueron convocadas para tratar la llamada crisis del software. La llamada crisis del software es todavía hoy un problema no resuelto. 15
  • 16. Crisis del software (I) Primera Fase. Los albores (1945-1955) Programar no es una tarea diferenciada del diseño de una máquina. Uso de lenguaje máquina y ensamblador. Segunda Fase. El florecimiento (1955-1965) Aparecen multitud de lenguajes. Era posible hacer de todo. Tercera Fase. La crisis (1965-1970). Desarrollo inacabable de grandes programas. Ineficiencia, errores, coste impredecible. Nada es posible. 16
  • 17. Crisis del software (II) Cuarta Fase. Innovación conceptual (1970- 1980) Fundamentos de programación. Verificación de programas. Metodologías de diseño. Quinta Fase. El diseño es el problema (1980- ????) Entornos de programación. Especificación formal. Programación automática. 17
  • 18. ¿Qué es la Ingeniería del Software? El IEEE define: Ingeniería es la aplicación de un método sistemático, estructurado y cuantificable a estructuras, máquinas, productos, sistemas o procesos. Ingeniería del software es la aplicación de un método sistemático, estructurado y cuantificable al desarrollo, operación y mantenimiento de software. Bauer, 1972 La IS es el establecimiento y uso de sólidos principios de ingeniería y buenas prácticas de gestión, así como la evolución de herramientas y métodos aplicables y su uso cuando sea apropiado para obtener, dentro de las limitaciones de recursos existentes, software que sea de alta calidad en un sentido explícitamente definido. F.L.Bauer. “Software Engineering”, Information Processing, 71, North Holland Publishing Co., Amsterdam 1972. 18
  • 19. Comparación con otras ingenierías Ingeniería mecánica como buscar un gato negro en una habitación iluminada. Ingeniería química como buscar un gato negro en una habitación oscura. Ingeniería software como buscar un gato negro en una habitación oscura donde no hay ningún gato. Ingeniería de sistemas como buscar un gato negro en una habitación oscura donde no hay gato y alguien dice !!!lo encontré!!!. 19
  • 20. Desarrollo de Software sin Ingeniería Especificación de ? Requerimientos Producto Software Existencia de un vacío de información entre la especificación del producto software y su entrega. El producto surge espontáneamente después de un largo periodo de oscuridad ¿Qué pasa si alguien se va a mitad de un proyecto? ¿y si se va todo un equipo? 20
  • 21. Ingeniería del SW - Análisis de problemas Actividad dirigida a la solución de problemas Análisis: Comprender la naturaleza del problema (descomponerlo) Problema Subproblemas 21
  • 22. Ingeniería del SW - Síntesis de problemas Síntesis: Unir las soluciones parciales componiendo una estructura de mayor tamaño Soluciones parciales Solución 22
  • 23. Objetivos de la Ingeniería del Software La ingeniería del software persigue la producción de sistemas de calidad a bajo coste y a tiempo Sistemas de calidad Bajo coste La calidad de un sistema viene definida El coste de un sistema debe por el cumplimiento de los objetivos incluir tanto el coste de desarrollo establecidos para el sistema como el de mantenimiento A tiempo En unos plazos preestablecidos y que vienen garantizados por el establecimiento de una secuencia de actividades a llevar a cabo 23
  • 24. Definición de Ingeniería del Software Técnicas, Metodologías y Herramientas que ayudan a la producción de un software de alta calidad, con un determinado presupuesto y antes de una determinada fecha 24
  • 25. Ingeniería del Software vs Informática Computer Scientist Proves theorems about algorithms, designs languages, defines knowledge representation schemes Has infinite time… Engineer Develops a solution for an application-specific problem for a client Uses computers & languages, tools, techniques and methods Software Engineer Works in multiple application domains Has only 3 months... …while changes occurs in requirements and available technology 25
  • 26. Ingeniería del Software - Terminología Técnica (Método): Procedimiento formal para obtener resultados utilizando alguna notación bien especificada Metodología: Colección de métodos aplicados a lo largo del ciclo de vida del software y unificados mediante alguna aproximación filosófica genérica Herramienta Instrumento, o sistema automatizado, utilizado para poner en práctica un método 26
  • 27. Métodos o Técnicas Modelado del comportamiento haciendo uso de los diagramas de estado Diagramas de Flujo de Datos Entrevistas Modelado de sistemas mediante los diagramas Modelado de datos mediante el uso de clases propuestos del modelo Entidad-Relación por BOOCH (o Entidad Asociación) Técnicas matriciales 27
  • 28. Metodologías (I) MERISE SSADM Metodología pública francesa Metodología pública británica MÉTRICA 2 Metodología pública española METHOD 1 Metodología de SUMMIT-D Andersen Consulting Metodología de Coopers & Lybrand 28
  • 29. Metodologías (II) Metodologías estructuradas Basadas en técnicas estructuradas Algunos ejemplos: Gane-Sarson Yourdon/DeMarco Métrica 2 Metodologías Orientadas a Objeto Basadas en técnicas orientadas a objeto Algunos ejemplos: OMT Booch Métrica 3 29
  • 30. Herramientas Hojas de Cálculo Procesadores de Texto Bases de Datos Rational Rose System Achytect Easy Object Case Oriented Tool 30
  • 31. Mitos del SW. El gestor Ya hay estándares y procedimientos. ¿No tiene ya bastante el equipo? Tenemos las herramientas de desarrollo más avanzadas porque compramos los ordenadores más modernos. Si fallamos en la planificación, añadimos más gente y sanseacabó. 31
  • 32. Mitos del SW. El cliente Una declaración inicial de objetivos es suficiente para empezar a escribir programas. Ya detallaremos más adelante. Los requisitos del proyecto cambian continuamente, pero los cambios pueden acomodarse fácilmente porque el software es flexible. La labor del desarrollador consiste ÚNICAMENTE en escribir líneas de código fuente. 32
  • 33. Mitos del SW. El desarrollador Una vez que escribimos el programa y hacemos que funcione, se acabó el trabajo. No podemos comprobar la calidad hasta que se ejecute el programa. Lo que se entrega al terminar el proyecto es el programa funcionando 33
  • 34. La industria del Software El software es una industria,... ... no es un arte. 34
  • 35. Importancia de la Ingeniería del Software La economía de todos los países desarrollados depende del software, representando cada vez un mayor porcentaje de su PIB. Cada vez son más los sistemas controlados por software. Los costes del software llegan, en ocasiones, a dominar los costes de todo el sistema. 35
  • 36. Tipos de productos software Genéricos. Sistemas autónomos desarrollados por una organización y puestos en el mercado para cualquier cliente. Software a medida (especializado). Sistemas pensados para un cliente específico y desarrollados específicamente por alguna organización contratada a tal efecto. Sistemas genéricos adaptados a clientes específicos. La mayor parte del volumen de facturación es de software genérico (Microsoft), sin embargo el mayor número de ingenieros se encuentran trabajando en software a medida o adaptando software genérico (SAP R3, Meta4). 36
  • 37. Sistemas de Información (I) Sistema Conjunto de componentes que interaccionan entre sí para lograr un objetivo común. Ejemplos: el sistema nervioso, el sistema económico. Un sistema puede estar compuesto por varios niveles de sistemas, también denominados subsistemas. Sistemas de Información Es un sistema cuyo objetivo principal es el procesamiento de información. La finalidad de los sistemas de información es procesar entradas, mantener archivos de datos relacionados con la organización en la que están enmarcados, y producir información. Los principales componentes de un sistema de información son las personas, los equipos y los procedimientos. 37
  • 38. Sistemas de Información (II) Análisis Descomposición de un sistema para conocer su naturaleza, funciones, relaciones y requerimientos. Análisis de Sistemas Proceso de clasificación e interpretación de hechos, diagnóstico de problemas y empleo de la información para recomendar mejoras al sistema. Diseño de Sistemas Proceso de planificar, reemplazar o complementar un sistema organizacional existente. El Análisis especifica lo QUÉ el sistema debe hacer. El Diseño establece CÓMO alcanzar el objetivo. 38
  • 39. Cambios generados por los SI (I) Trabajo inteligente El ordenador se ocupa de las labores repetitivas y rutinarias. Fusión global de empresas La transformación de información, no de bienes, permite a la empresa diversificar su área de negocio. Idea e Información Antes la base del negocio era el uso del dinero y los recursos tangibles. Ahora son las ideas y la información. Usuarios: trabajadores de la información La industria de la manufactura representa el 28% de los sueldos, el resto se alojan en empresas de servicios y manejo de información. 39
  • 40. Cambios generados por los SI (II) Soporte tecnológico al crecimiento de la empresa Hace 20 años una empresa de distribución generaba 500 facturas año utilizando máquinas de escribir. Actualmente genera 50.000 con ayuda de ordenadores. Dependencia legal de los SI Una caida en la red de comunicaciones forzo la publicación en BOE de una extensión de plazo para presentación decñaración de impuestos 40
  • 41. Los participantes en el juego de los SI (I) El usuario heterogéneos visión muy sesgada de las problemáticas El administrador de usuarios - supervisor de los usuarios de informática - gestor de proyectos general - de la organización, financieros. Planificación estratégica. El cliente El personal de operaciones instalaciones copias de seguridad mantenimiento de infraestructura 41
  • 42. Los participantes en el juego de los SI (II) El auditor control de calidad y consultor de proceso El analista de sistemas es la persona cuyo trabajo consiste en centralizar el desarrollo del sistema en su conjunto El diseñador es la persona que partiendo del análisis de un problema y el planteamiento de una solución al mismo libre de trabas tecnológicas, construye el diseño de dicha solución enmarcandolo dentro de un contexto tecnológico particular El programador es la persona encargada de codificar el diseño de la solución Analogía con el mundo de la construcción Analista - Arquitecto, Diseñador - Aparejador, Programador - Albañil 42
  • 43. El analista de sistemas Labores del analista de sistemas es arqueólogo y escribano es innovador es mediador Separación de papeles Analista, Analista/Diseñador, Analista/Diseñador/Programador Evolución: Programador ... Analista 43
  • 44. Más terminología (I) Especificación de requerimientos Es el proceso de recopilación de las características con las que deberá contar el software a desarrollar. Términos relacionados: Especificación del sistema. Requisitos de usuario. Codificación / Implementación Traducción de las especificaciones de diseño a un lenguaje de programación determinado. Prueba / Test Verificación del funcionamiento requerido del software Riesgo Problema que puede surgir en un proyecto afectando a su correcto desarrollo. Los riesgos deberían estar identificados y se debería determinar estrategias que permitan mitigarlos. 44
  • 45. Ejemplos de riesgos Tecnología desconocida (ejemplos: lenguaje de programación no conocido, nuevo hardware, etc.). Poca experiencia del equipo de desarrollo. Problema mal descrito y/o modificaciones en la descripción del problema. Retraso en algún determinado proveedor. Problemas en módulos que sean cuellos de botella en el desarrollo. 45
  • 46. Más terminología (II) Integración Unión de los diferentes componentes del software Mantenimiento Modificaciones que se realizan sobre el software una vez que este se ha entregado al cliente. El motivo de estas modificaciones puede ser la corrección de defectos detectados en su funcionamiento, o la ampliación o modificación de la funcionalidad a petición del cliente. Contrato o acuerdo del proyecto Acuerdo entre desarrollador y cliente en el que se especifica QUÉ es lo que se va a entregar como resultado del proyecto, CUÁNTO dinero se va a pagar por ello y CUÁNDO se realizara esta entrega. Debe estar firmado por las dos partes. Transferencia al cliente Proceso por el cual se entrega al cliente el resultado del proyecto y éste comprueba que el resultado es el que se había acordado. 46
  • 47. Más terminología (III) Acoplamiento Medio de evaluar la relación entre elementos de un sistema. Es la medida del grado de interdependencia entre los elementos de un sistema. Cohesión Indica el grado de conexión funcional entre elementos. Es una medida de la fuerza de la relación funcional entre elementos de un sistema. 47
  • 48. Estandarización del desarrollo del SW Estándares de Ingeniería del Software Objetivo: Garantizar la calidad, presupuesto y plazos de los proyectos software ESA MIL IEEE Agencia Espacial Departamento de defensa The Institute of Europea USA Electrical and Electronics Engineers, Inc 48
  • 49. IEEE - Estándares para Ingeniería del SW IEEE 1058 - Standard for Software Project Management Plans IEEE 828 - Standard for Software Configuration Management Plans Otros estándares de interés: IEEE 610 - Glossary of Software Engineering Terminology IEEE 830 - Guide for Software Requirements Specification IEEE 1002 - Standard Taxonomy for Software Engineering Standards IEEE 1074 - Standard for Developing Software Life Cycle Processes IEEE 1028- Standard for Software Reviews and Audits Los estándares son revisados y actualizados cada 5 años Reconocidos y aceptados por gran número de organismos y empresas 49
  • 50. MIL DOD - STD - 2167A Establece los requerimientos del Departamento de Defensa USA para el ciclo de vida del software Actividades de desarrollo del software Análisis y Diseño de requerimientos del sistema Análisis de los requerimientos software Diseño preliminar Diseño detallado Codificación y testeo de unidades Integración y tests de CSC (Computer Software Component, se compone de CSC’s y unidades) Test de CSCI (Computer Software Configuration Item) Integración del sistema y tests 50
  • 51. Estándares de la ESA Conjunto de estándares definidos por la Agencia Espacial Europea para la especificación , desarrollo y mantenimiento del software Software Engineering Standards Definen las obligaciones y recomendaciones prácticas para la especificación, desarrollo y mantenimiento del software Software Engineering Guides Discuten su aplicación práctica en mayor nivel de detalle, y describen los métodos y herramientas para llevarlos a cabo. También contienen información para la redacción de los documentos requeridos por los estándares 51
  • 52. Estructura de los estándares y guías ESA Software Engineering Standards Product Standards Procedure Standards User Requirements Software Project Definition Phase Guide Management Guide Software Requirements Software Configuration Definition Phase Guide Management Guide Architectural Design Software Verification Phase Guide and Validation Guide Detail Design and Software Quality Production Phase Guide Assurance Guide Transfer Phase Guide Operations and Maintenance Phase Guide 52
  • 53. Otros estándares ISO (International Organization for Standardization) OSI (Open System Interconnection) EDI (Electronic Data Interchange) ISO 9001 (Estandard para el desarrollo de software) CCITT (International Consultative Committee on Telephony and Telegraphy) Compuesto por compañías telefónicas de todo el mundo X.25 estd. de comunicaciones para servicios del nivel de red ANSI (American National Standard Institute) Representante oficial de USA en ISO y CCITT ASCII OMG (Object Management Group): Comité que busca la armonización de los fabricantes en dos líneas, la terminología en la orientación a objeto, y la estandarización de interfaces CORBA (Common Object Request Broker Architecture) 53
  • 54. Introducción Métrica 2.1 (I) Metodología de Planificación y Desarrollo de Sistemas Informáticos Promovida por el Consejo Superior de Informática (órgano encargado de elaborar y desarrollar la política informática del Gobierno) Objetivos: Crear un entorno que permita al equipo de trabajo construir Sistemas, que: - Den SOLUCIONES a los objetivos considerados prioritarios en la Administración. - Se desarrollen CUANDO EL USUARIO LOS NECESITE y DE ACUERDO A LOS PRESUPUESTOS Y DURACIÓN ESTIMADOS - Se MANTENGAN FÁCILMENTE para soportar los cambios futuros en la organización 54
  • 55. Introducción Métrica 2.1 (II) Métrica versión 2 ofrece un marco de trabajo en el que se define: Una estructura de proyecto que sirva de guía al equipo de trabajo e involucre a los usuarios en su desarrollo y en sus puntos decisivos. Un conjunto de productos finales a desarrollar. Un conjunto de técnicas para obtener los productos finales. Las diferentes responsabilidades y funciones de los miembros del equipo de proyecto y de los usuarios. Métrica versión 3 Basada en técnicas Orientadas a Objetos Ya está operativa 55
  • 56. Visión general de Métrica 2.1 56
  • 57. INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE El Ciclo de Vida F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniería del Software I Departamento de Informática e Ingeniería en Sistemas
  • 58. Ciclo de vida del software. Índice Introducción Fases, Tareas y Actividades Ciclo de Vida de un producto Software Ciclo de Vida en Cascada Clásico Ciclo de Vida en V Ciclo de Vida en Cascada Mejorado Ciclo de Vida con Prototipado Modelo Incremental Ciclo de Vida en Espiral Estándares para el desarrollo de Ciclos de Vida 58
  • 59. Introducción al ciclo de vida El desarrollo del software atraviesa una sucesión de estados (actividades de desarrollo del software) del per ativa are Fase O to Softw c produ Jubilación Infancia Madurez de Retirad Fase de Ciclo l Software a o Su stitució e rollo d n Desar 59
  • 60. Ciclo de vida. Terminología I Ciclo de Vida de un Producto Software Sucesión de pasos a través de los cuales el producto software va progresando. Estos pasos abarcan desde el planteamiento del problema a resolver mediante el producto software, hasta la retirada de dicho producto una vez que ha finalizado su vida operativa 60
  • 61. Ciclo de vida. Terminología II Función Actividades del Proyecto Proceso o de Función Gestión Fase Fase Fase Tarea Tarea Tarea Actividades del Producto 61
  • 62. Ciclo de vida. Terminología III Función Actividad o conjunto de actividades que abarcan la duración del proyecto Ejemplos: Gestión de Configuraciones Gestión del Proyecto En IEEE-1074 -> Procesos Integrales Fase Tarea Mayor unidad de trabajo Menor unidad de trabajo sujeta a gestión Finalizan con los hitos más Suficientemente pequeña para una importantes del proyecto adecuada planificación y seguimiento Ejemplos: Suficientemente grande para permitir Definición de los Requerimientos de usuario micro gestión Diseño Arquitectural Ejemplos: Escribir el manual de usuario Test de subsistemas 62
  • 63. Ciclo de Vida en Cascada Clásico (I) Requerimientos Cambio de Requerimientos Especificación Diseño Implementación Tests de Unidades Desarrollo Integración y Tests del Sistema Modo Operacional Mantenimiento Retirada 63
  • 64. Ciclo de Vida en Cascada Clásico (II) Ventajas: Fuerza a una aproximación disciplinada fruto de su surgimiento a partir del ciclo convencional de una ingeniería Sencillo de implantar y gestionar (es el preferido por los gestores de proyectos) Problemática: Es linear y el desarrollo del software no lo es El cliente debe tener paciencia (no ve resultados hasta el final) Diferencias en la interpretación de los requerimientos entre cliente y desarrollador Los proyectos raramente siguen el flujo secuencial que propone el modelo (imposibilidad de actividades en paralelo) Es difícil para el cliente establecer al principio todos los requisitos de forma explícita 64
  • 65. Ciclo de Vida en V oferta manten. especif. pru. acep. arquitect. pru. integ. módul.1 Ventajas: Supone una mejora respecto al modelo en cascada, eliminando parte de la secuencialidad Problemas: Prácticamente los mismos que los del modelo en cascada 65
  • 66. Ciclo de Vida en Cascada Mejorado (I) Cambio de Requerimientos Requerimientos Verificación Verificación Especificación Verificación Planificación Verificación Diseño Verificación Implementación Test Integración Desarrollo Test Modo Operacional Mantenimiento Retirada 66
  • 67. Ciclo de Vida en Cascada Mejorado (II) Mejoras: Estipula la documentación que debe acompañar cada fase y los requerimientos que todos los productos de cada una de las fases deben cumplir En los hitos que finalizan cada fase se realiza la aprobación de todos los productos de esa fase, incluyendo los documentos El testing es inherente a cada una de las fases del modelo y no se trata como una fase más del mismo a ser realizada una vez que se ha construido el producto Todos los cambios que se produzcan en las operaciones de mantenimiento deben ser reflejados en los documentos de las fases a las que afecten Problemática: Modelo guiado por la documentación (los documentos son los hilos conductores del modelo). Esto puede producir diferencias en la interpretación de los mismos entre cliente y desarrollador 67
  • 68. Ciclo de Vida con Prototipado (I) Comienzo Parada Recolección y refinamiento de requisitos Producto de Diseño ingeniería rápido Construcción Refinamiento del prototipo del prototipo Objetivo: Obtener rápidamente un prototipo de la aplicación que permitan al cliente interactuar con ella con el fin de detectar deficiencias en Evaluación del las especificaciones prototipo por el Construimos un rápido boceto de cliente la aplicación 68
  • 69. Ciclo de Vida con Prototipado (II) Ventajas Mejora la comunicación analista - cliente Mejor identificación de los requerimientos del cliente Satisface la curiosidad del cliente (en seguida puede ver cosas) Problemas: Identificación del prototipo con el producto final Prototipo no reaprovechable Posibles asumpciones técnicas inapropiadas con el fin de prototipar más rápidamente 69
  • 70. Modelo Incremental (I) Requerimientos Verificación Desarrollo Especificación Verificación Planificación Mantenimiento Verificación Diseño Arquitectural Verificación Para cada módulo: Realizar el diseño detallado, implementación, integración y test. Transferir al cliente “Software is built, not written” [Schach 96] Propone la construcción del software paso Modo Operacional a paso: realización de software igual a una ingeniería incremental Retirada 70
  • 71. Modelo Incremental (II) Ventajas: Satisface la curiosidad del cliente El cliente puede ir “viendo” la aplicación real, no un prototipo Muy ligado al proceso de sustitución de un sistema por otro Posibilidad de detener el proyecto sin perder todo lo realizado Mayor flexibilidad ante cambios en los requerimientos durante el desarrollo Problemática: Cada nuevo módulo se debe integrar en el sistema sin afectar a lo que ya está funcionando (datos, interfaces,...) El diseño y desarrollo de los diferentes módulos debe ser coherente entre sí Gran tendencia a la degeneración del control del proyecto ante la imposibilidad de verlo como un todo 71
  • 72. El Ciclo de Vida en Espiral (I) Determinación de Evaluación de las objetivos, alternativas y alternativas identificadas, restricciones solucionando riesgos Análisis de riesgos Análisis de riesgos Análisis de riesgos Prototipo operacional Análisis Prototipo 2 Prototipo 3 de REVISIÓN riesgos Proto- tipo 1 Simulaciones, modelos, medidas Plan de requerimientos Plan del ciclo de vida Concepto de operación Requerimientos SW Diseño del Diseño producto detallado Validación de Plan de desarrollo requerimientos Codifi- cación Diseño de la Test de verificación y unidades Plan de integración y test validación Test de integración Test de aceptación Puesta en Siguiente fase del plan servicio Desarrollo y verificación del siguiente nivel del producto Propuesto por Boehm, 1988 72
  • 73. El Ciclo de Vida en Espiral (II) Identificación de Riesgos Asignar prioridades a los riesgos Desarrollar una serie de prototipos para los riesgos identificados comenzando con el más prioritario Hacer uso del modelo en cascada para cada fase de desarrollo Si los riesgos han sido resueltos satisfactoriamente, evaluar los resultados de la fase y planificar la siguiente Si alguno de los riesgos no puede ser resuelto, abandonar el proyecto inmediatamente 73
  • 74. El Ciclo de Vida en Espiral (III) Ventajas: Inclusión de de análisis de riesgos a lo largo del proceso Desarrollo de software = proceso evolutivo Uso de prototipos, uso de simulaciones El cliente ve evolucionar el proyecto Tratamiento del mantenimiento al mismo nivel que el desarrollo (se trata de otra espiral más) Problemas: Difícil de convencer al cliente de su utilidad (hay que realizar muchos tests y esto cuesta dinero) Implantación muy compleja Necesita gran habilidad en la valoración de riesgos Método muy nuevo 74
  • 75. IEEE - Std 1074 - 1991 Std 1074-1991 Standard for Developing Software Life Cycle Processes Alcance Indica un conjunto de actividades que constituyen los procesos que son obligatorios para el desarrollo y mantenimiento del software, tanto por si sólo, como formando parte de un sistema No incluye actividades para el desarrollo del hardware, realización de compras, ... No recomienda un ciclo de vida específico Aplicabilidad Proyectos de desarrollo y mantenimiento de software Descomponer proyectos grandes en subproyectos, aplicar el estándar a cada uno de ellos y al conjunto 75
  • 76. Estándar ESA para el Ciclo de Vida (I) Producto 76
  • 77. Estándar ESA para el Ciclo de Vida (II) Proceso 77
  • 78. INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE Herramientas y Tecnología CASE F.Javier Zarazaga Soria Javier Nogueras Iso Ingeniería del Software I Departamento de Informática e Ingeniería en Sistemas
  • 79. Herramientas CASE. Índice Introducción a las herramientas CASE Historia de las Herramientas CASE Tipos de herramientas CASE 79
  • 80. Introducción a las herramientas CASE CASE: Computer Assisted Software Engineering Herramienta CASE Herramienta de software que automatiza tareas particulares del ciclo de vida del software. Dibujado de diagramas. Prototipado de la interfaz de usuario. Utilidades para almacenar y obtener informes, así como consultar toda la información de desarrollo con la que se cuenta. Verificación y corrección de especificaciones. Generación de código. 80
  • 81. Historia de las herramientas CASE A principios de los 80 dibujado de diagramas elaboración de documentación A mediados de los 80 comprobación automática de errores basada en especificación de reglas y lenguajes formales repositorios o diccionarios para almacenar la información del sistema Finales 80, principios 90 generación automática de código partiendo de la especificación del diseño Actualmente ingeniería inversa o reingeniería reutilización 81
  • 82. Tipos de herramientas CASE Herramientas de Ingeniería de la Información. Manejan datos de negocio, sus relaciones y la forma en que fluyen entre distintas áreas de la organización. planificación y administración de proyectos. estimación de esfuerzos y coste de desarrollo del software. planificación de proyectos. análisis de riesgos. control de calidad. análisis y diseño. prototipado y simulación. diseño y desarrollo de interfaces de usuario. programación. ingeniería inversa. Entornos integrados. 82
  • 83. 83