SlideShare una empresa de Scribd logo
EL PROCESO DE
DESARROLLO DE
  SOFTWARE


                1
¿Que queremos decir con proceso
         de desarrollo?




Deseos,                  Software
necesidades,
Especificaciones,
…
                                    2
Introducción al proceso de
              desarrollo.
   En general, cuando las personas abordan el
    desarrollo de cualquier proyecto evolucionan
    desde ideas abstractas hacia concreciones
    realizables.




                                                   3
Es extraño que alguien diga:

 "Me puse a programar y me salió una contabilidad"
 Algunas aplicaciones da la impresión de que...
         Recordar que la probabilidad de que un mono teclee en una
          maquina de escribir y salga el quijote no es cero




                                                                      4
Normalmente el planteamiento
               es:
   Vamos a desarrollar una contabilidad,
                 Hacer la especificación.
   en Visual BASIC y Access,
                 Realizar el diseño.
   y se codifica la aplicación.




                                             5
El grado de precisión con que se lleve
        a cabo cada paso influirá en el
                  resultado
    ¿Me podrías indicar, por favor, hacia dónde tengo
     que ir?
     Eso depende de adónde quieras llegar, contesto el
     gato.
    A mí no me importa demasiado adónde...-
     empezó a explicar Alicia.
    En ese caso, da igual cualquier dirección -
     interrumpió el Gato.
    ...Siempre que llegue a alguna parte -terminó Alicia
     a modo de explicación.
    Basta que empieces a andar - le aseguro el Gato-,
     dando un paso tras otro.
        Alicia en el país de las maravillas



                                                            6
Ingeniería e Ingeniería del
                Software
   ¿Donde nos encontramos?
   ¿Que hace un Ingeniero?
   Definiciones de Ingeniería del software
   Técnicas básicas utilizadas históricamente




                                                 7
¿Donde nos encontramos?

   Con Problemas, tendremos que disponer de:
     Técnicas de desarrollo que minimicen la complejidad
      de un sistema software.
     Métodos y conceptos que permitan al productor y al
      cliente explorar la naturaleza del sistema software lo
      antes posible.
     Técnicas que minimicen los efectos devastadores de las
      modificaciones durante el desarrollo y la explotación.

                                                          8
¿Que hace un Ingeniero?

   Construir artefactos dentro de unas limitaciones
    de coste, utilizando el conocimiento y las teorías
    de la ciencia sobre la cual se basa el artefacto.




                                                         9
Definición de la ingeniería del
        software (NATO ‘68)
   La ingeniería del software es el establecimiento y
    uso de principios de ingeniería razonables con el
    objetivo de obtener software económicamente,
    que sea de confianza y trabaje eficientemente en
    las maquinas reales.




                                                     10
Definición
                (R.E. Fairley 1985)

   Hemos definido la Ingeniería del Software como la
    disciplina tecnológica concerniente a la producción y
    mantenimiento sistemáticos de productos software
    que son desarrollados y modificados en el tiempo y
    con los costes estimados...
   Además, la Ingeniería del software tiene que ver con
    cuestiones de gestión que caen fuera del dominio de
    la programación tradicional.                       11
Características de la ingeniería del
          software (Van Vliet 1993)
   Construcción de programas grandes
   Controlar la complejidad
   Cooperación entre las personas implicadas
   Evolución del software
   Eficiencia en el desarrollo
   Soporte real a los usuarios



                                                12
Modelo de la Ingeniería del
           software (Thayer 1988)
                                                I n g e n ie r ía
                                              d e l s o ftw a re
 D e s a r r o llo        G e s tió n d e               M e tr ic a s      M a n t e n im ie n to
d e S o ftw a re           p ro y e c to s           d e l s o ftw a re      d e s o ftw a re
 A   n a lis is           P   la n ific a c ió n      F ia b ilid a d         C o r r e c c ió n d e E r r o r e s
 D   is e ñ o             O   r g a n iz a c ió n     U s a b ilid a d        M o d if ic a c io n e s
 C   o d if ic a c ió n   R   e c lu t a m ie n to    F le x ib ilid a d
 P   ru e b a s           D   ir e c c ió n           M a n t e n ib ilid a d
                          C   o n tro l               R e u s a b ilid a d
                                                      E tc .



                                                                                                               13
Técnicas básicas usadas en las
             ingenierías
   Históricamente se han utilizado técnicas como:
     El modelado
     División del Producto

     División del Proceso

   En principio se deberían utilizar estas técnicas,
    también en informática .



                                                        14
El modelado.
   Simplificación del objeto en el mundo real, pero
    que es suficientemente realista como para dar
    una idea de lo que ocurrirá en la realidad y usarse
    como base del desarrollo.




                                                     15
División del Producto.
   Se fracciona el producto de modo que cada
    fragmento lo puede realizar un miembro del
    grupo de desarrollo.




                                                 16
División del Proceso.

   Implica dividir el desarrollo del artefacto por fases.
    Normalmente se habla de especificación, diseño y
    fabricación.




      ¿Que    ¿Como?      Realización     Pruebas
      ?                                                17
En el desarrollo de software nos encontramos
          con la siguiente situación

   Ciclos de                  Metodologías de
   Vida del                    Desarrollo del
  SOFTWARE                     SOFTWARE




                                            18
Ciclo de Vida del Software
   Consiste en determinar:
     las fases productivas de un proyecto,
     los objetivos de cada fase productiva, y

     los productos obtenidos en cada una de estas fases
      así como sus características.




                                                           19
Ciclos de Vida del Software

   Se han propuesto muchos ciclos de vida para el
    desarrollo del software, pero estos son los más
    representativos:
           Poner la cola al burro.
           Ciclo de vida clásico o en cascada.
           Construcción rápida de Prototipos Desechables
           Incremental
           Evolución de prototipos
           Reutilización de Software
           Síntesis automática de software
           En espiral.
                                                            20
Poner la cola al burro
   Se coge a uno o varios
    informáticos,
   Se les muestra más o menos el
    problema,
   Se les deja solos en un cuarto a
    oscuras,
   Transcurrido un tiempo se abre
    la puerta.


                                       21
Ciclo de vida clásico o en
                cascada.
   La Versión Ideal (Perfecta)
   El Modelo en V
   El Helado de Cucurucho
   El Modelo Real
   Propuesta de Yourdon




                                     22
La Versión Ideal
                      A alguien se le ha ocurrido la Brillante idea de Informatizar
Requerimientos            ¿?
del Sistema                   Investigación Inicial, Identificación de
                              Necesidades, Encuesta, etc.
                               Estudio de Viabilidad
Requerimientos
del Software           Análisis
                                     Especificación
Diseño Preliminar y
                                Diseño
Detallado                                   Especificación de diseño
Codificación y
                                    Codificación
Depuración                                         Aplicación
Test y pruebas previas a la
OPERACIÓN                                   Validación

                                Instalación, Explotación
OPERACIÓN Y MANTENIMIENTO
                                                                              23
El Modelo en V

 Identificación
de Necesidades                                                       Explotación


        Especificación
           Esencial                                           Validación


                  Especificación
                      Física                          Empaquetado



                             Diseño             Integración



                                      Codificación

                                                                               24
El Helado de Cucurucho

                             USUARIOS
 Identificación
de Necesidades                                            Explotación


      Especificación            CLIENTES
         Esencial                                  Validación


            Especificación    ANALISTA
                Física                      Empaquetado


                       Diseño        Integración


       DISEÑADORES Y         Codificación
       CODIFICADORES

                                                                        25
El Modelo Real

 Identificación
de Necesidades                                                 Explotación


       Especificación
         Esencial                                        Validación


              Especificación
                  Física                         Empaquetado



                         Diseño            Integración



                                  Codificación

                                                                       26
Propuesta de Yourdon

Requerimientos del Usuario
                                                                               Sistema
                                                                               Probado
 Encuesta
                                                                                   Prueba de
                                                                                   Sistema
                                                                    Subsistemas
                       Análisis                                     Probados
        Especificación
        Funcional
                                                                      Prueba de
                     Necesidades de                                   subsistema
        diseño       Rendimiento        Estudio
        Preliminar                      del HW
                                                                    Módulos
                                 Configuración                      Probados
        Especificación
        del Sistema    Diseño    Final                  Prueba de
                       Detallado                        Unidad


                       Especificación                   Módulos
                       de los                           Codificados
                                         Codificación
                       Programas
                                                                                         27
Construcción Rápida de
             Prototipos Desechables
   Al igual que otras ingenierías se utilizan los
    prototipos para que el cliente observe, confirme
    y mejore el producto
       Este enfoque es apropiado cuando:
          El cliente no tiene claro lo que quiere,
          Al cliente le gustaría ver algo similar para poder hacerse
           una idea de lo que obtendrá




                                                                        28
El ciclo de vida de Prototipos
      Desechables es el siguiente:


                                          Aceptado
Obtención        Construcción                        Ciclo de
                                  Evaluación
Especificación   Prototipo                             Vida
                                   Cliente
                                                     Clásico
                 Mejora de la
                 Especificación   NO Aceptado




                                                                29
Existen dos clases de prototipos

   De INTERFACE.
       Usualmente un modelo de papel o sobre PC en el que se
        muestran pantallas y listados.
   De COMPORTAMIENTO:
     En anchura. Ofrece todos los menús del sistema y simula
      débilmente los procesos.
     En profundidad. Cubre funciones que presentan
      ambigüedades al cliente o a los informáticos.
     Completo pero de baja calidad y rendimiento.
                                                           30
Incremental

                 Requeri   Diseño   Impleme Pruebas
  Bloque 1       mientos            ntación




                                                               Requeri   Diseño     Impleme Pruebas
  Bloque N                                                     mientos              ntación


                                                   o
Requerimientos    Requerimientos                                                        Permite el
                                    Diseño   Impleme Pruebas
                                                                                        desarrollo
   Bloque 1                                  ntación                                    concurrente


                                                                Diseño    Impleme    Pruebas
   Bloque N                                                               ntación


                                                                                                  31
Evolución de Prototipos

 Observación
Requerimientos

            Abstracción
             Validación

                          Especificación
                           Verificación
     Empezamos por los
 requerimientos más claros,             Prototipo
   menos complejos y más               Verificación
        necesarios.
                                                      Experimentar
      Prototipo rápido                                 Validación
                                                                 32
Reutilización de Software
   Tiene como objetivos:
     reducir el coste del software.
     Producir sistemas de mayor calidad.

   Se basa en reutilizar Diseños, programas,
    módulos y datos.
   Es compatible con el prototipo evolutivo.



                                                33
Síntesis automática de software

Requerimientos
Informales       Análisis de                   Especificación Formal
                 Requerimientos                     (Prototipo)


                            Validación

                          Mantenimiento          Optimización
                                                  Mecánica

                    Racionalidad y
                    Decisiones
                                                                     Ajuste
                                                                    (tuning)

                                          Desarrollo     Programa
                                           Formal          Fuete


                                                                         34
En espiral.
   Determinar objetivos,              Evaluar alternativas,
   alternativas, restricciones        identificar y resolver
                                      riesgos


        Acuerdo
REVISIÓN




    Planificar las próximas       Desarrollar, verificar
    fases
                                                           35
Metodologías de Desarrollo del
              Software
   Métodos informales
   Métodos Semiformales
   Métodos Formales




                                     36
Métodos informales
   Joaquín Lucio-Villegas los clasifica como:
     Quick & Dirty (USA)
     Match stick box (Europa)

     Balones p'alante y maricón el último




                                                 37
Métodos Semiformales

   Métodos Estructurados
     SA/SD (structured analysis & structured design)
     Métrica

   Métodos Orientados a Objetos
     OMT
     UML




                                                        38
Métodos Estructurados
   Métodos Orientados a la Estructura de los
    Datos
   Métodos de flujo de datos




              PROCESOS          DATOS
                                                39
Métodos Orientados a Objetos

   Los métodos orientados a objeto describen e
    implementan los sistemas de información desde un
    punto de vista ontológico.




                                                 40
Métodos Formales

 Los métodos formales permiten al ingeniero de software
  especificar, desarrollar y verificar un sistema informático
  mediante la aplicación de una notación matemática rigurosa.
 Utilizando un lenguaje de especificación formal, un método
  formal proporciona los medios de especificar un sistema de
  forma que se aseguren, de forma sistemática, la consistencia,
  la completitud y la corrección.
 Se suelen basar en notaciones matemáticas similares a las del
  álgebra de conjuntos y la lógica


                                                                  41
Madurez del proceso en la
       organización de desarrollo
   La misma industria, diferentes niveles de
    madurez.




                                                42
Madurez del proceso en la
        organización de desarrollo
   Hay factores que no quedan claramente
    reflejados en el ciclo de vida ni en las técnicas de
    desarrollo.
   Los factores no estudiados son:
     El cumplimiento de los plazos de entrega.
     La calidad (número de errores en el Software).

     El coste del proyecto.




                                                       43
CMM (Capability Maturity
               Model)
   Proporciona una Guía sobre como
       controlar los procesos:
          de desarrollo del software.
          de mantenimiento.

       Hacer evolucionar hacia una cultura de:
          Ingeniería del software.
          Gestión eficiente.




                                                  44
Evolución de las organizaciones
         según el CMM
                                  Control
                                  del
                                  Proceso   Optimización
                       Medición
                       del
                       Proceso    Gestionado
          Definición
          del
          Proceso             Definido
Control
Básico
              Repetible
   Inicial
                                                     45
Correlación entre estimaciones y
      niveles de madurez




                                   46
Nivel Inicial.

   Según las circunstancias utilizamos un proceso
    distinto. (algunos caóticos)
   A medida,
   Poco formalizado,
   Uso de herramientas informales.
   Pocos procesos definidos.
   El éxito depende del esfuerzo individual.
                                                     47
Nivel de Repetición.

   Se tiene procesos estables de desarrollo, con
    control estadístico.
   Uso de datos historicos
   Establecimiento de procesos de gestión de
    proyecto, para hacer seguimiento de:
     Coste.
     Planificación.

     Funcionalidad.
                                                    48
Nivel de Definición.
   Proceso de desarrollo perfectamente definido y
    estandarizado.
   Integrado en la organización.
   Bien documentado.
   Todos los proyectos utilizan una versión
    documentada y aprobada de proceso.



                                                     49
Nivel de Gestión.
   Mejoras de calidad sustanciales.
   Control cuantitativo de productos y proceso a
    través de
     Mediciones del proceso comprensibles.
     Mediciones de la calidad




                                                    50
Nivel de Optimización.
   A través de mediciones del proceso utilizando
    ideas y tecnologías innovadoras obtenemos:
       Mejoras en calidad y cantidad.




                                                    51
Resumen
   Hemos visto:
     Como trabajan los ingenieros,
     Definiciones de ingeniería del software,

     El ciclo de vida del software,

     Metodológicas de desarrollo

     Madurez del proceso de desarrollo.




                                                 52

Más contenido relacionado

PPT
Tema 3 proseso de desarrollo del software
PPTX
PPTX
Equipo3 presentacion1 agile
PPT
Software
PPT
2. introduccion a la_ing_de_software
PPT
introduccion a la ing.de software
PPT
Elproceso de desarrollo de software
Tema 3 proseso de desarrollo del software
Equipo3 presentacion1 agile
Software
2. introduccion a la_ing_de_software
introduccion a la ing.de software
Elproceso de desarrollo de software

La actualidad más candente (19)

PPT
Elproceso de desarrollo de software
PPT
Modelos d (1)
PDF
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
PPT
Material Apoyo Ingenieria del Software USAL Argentina
PPT
Proceso de dasarrollo de software
PPTX
Introducción a la ingeniería de software
PPT
GESTION DE PROYECTOS INFORMATICOS
PDF
Como implementar La Automatización De Pruebas y No Morir En El Intento
PPTX
Taller ingenieria de software
PDF
La importancia de la Arquitectura de Soluciones en el Ecosistema Latinoameric...
PDF
Cursotdd 141202105217-conversion-gate01
PPT
GESTION DE PROYECTOS INFORMATICOS
DOCX
Programador O Ingeniero
PPTX
Inge de software por jophwa y yasuri
PPT
Modelos de desarrollo
PPT
Tecnicas.de.ingenieria.de.software
PPTX
Trabajo diapositiva modulo 3 de josue
ODP
PPT
Administracion y Gestion de Proyectos
Elproceso de desarrollo de software
Modelos d (1)
Desconferencia Barcamp Cali 2009 - Ingeniería de Software
Material Apoyo Ingenieria del Software USAL Argentina
Proceso de dasarrollo de software
Introducción a la ingeniería de software
GESTION DE PROYECTOS INFORMATICOS
Como implementar La Automatización De Pruebas y No Morir En El Intento
Taller ingenieria de software
La importancia de la Arquitectura de Soluciones en el Ecosistema Latinoameric...
Cursotdd 141202105217-conversion-gate01
GESTION DE PROYECTOS INFORMATICOS
Programador O Ingeniero
Inge de software por jophwa y yasuri
Modelos de desarrollo
Tecnicas.de.ingenieria.de.software
Trabajo diapositiva modulo 3 de josue
Administracion y Gestion de Proyectos
Publicidad

Destacado (20)

PPTX
Modelo de prototipo
PPTX
Ciclo de vida por prototipos
PPTX
Caracterización de los procesos
PDF
Construccion de prototipos_de_software
PPTX
Prototipos en el ciclo de vida de un Sistema
PPTX
Presentación prototipo
PPT
Prototipado del software
PPT
Métodos y Modelos de Proyectos
DOCX
2 modelos de la ingenieria de software
PPTX
Modelo de prototipos
PPTX
Modelos en la ingeniería de software
PPTX
Modelo iterativo
PPT
Prototipos
PPTX
Ciclo de vida de un sistema de informacion
PPT
Prototipos
PPT
Prototipo
PPT
Ciclos de Vida de los Sistemas de Información
PPT
Prototipos
PPT
Tipos de ciclos de vida
PPTX
Modelos de Ciclos de Vida
Modelo de prototipo
Ciclo de vida por prototipos
Caracterización de los procesos
Construccion de prototipos_de_software
Prototipos en el ciclo de vida de un Sistema
Presentación prototipo
Prototipado del software
Métodos y Modelos de Proyectos
2 modelos de la ingenieria de software
Modelo de prototipos
Modelos en la ingeniería de software
Modelo iterativo
Prototipos
Ciclo de vida de un sistema de informacion
Prototipos
Prototipo
Ciclos de Vida de los Sistemas de Información
Prototipos
Tipos de ciclos de vida
Modelos de Ciclos de Vida
Publicidad

Similar a Tecnicasdedesarrollo (20)

PPT
Introducción al Desarrollo de Software
PPT
Que queremos decir con Proceso de Desarrollo de Software.ppt
PPT
Tm01 el modelado en el desarrollo de software
PPTX
Desarrollo INGENIERIA EN SOFTWARE.pptx
PPT
metodologias de software y procesos en desarrollo
PPT
4- EL PROCESO DE DESARROLLO DE SOFTWARE.ppt
PPTX
Tecnicas en ing.de software
PDF
01 el proceso-de_desarrollo_de_software
PPTX
Diapox
PPTX
Diapox
PPTX
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
PPTX
PPTX
Ingenieria de Software
PPTX
Paula guia
PPTX
SeccióN De TéCnicas De IngenieríA De Software(2007)
PPT
El Proceso De Desarrollo De Software
PDF
procesos de desarrollo de sw
PPT
Selección de técnicas de ingeniería de software
PPSX
Modelos Del ciclo de vida del Software
Introducción al Desarrollo de Software
Que queremos decir con Proceso de Desarrollo de Software.ppt
Tm01 el modelado en el desarrollo de software
Desarrollo INGENIERIA EN SOFTWARE.pptx
metodologias de software y procesos en desarrollo
4- EL PROCESO DE DESARROLLO DE SOFTWARE.ppt
Tecnicas en ing.de software
01 el proceso-de_desarrollo_de_software
Diapox
Diapox
SELECCIÓN DE TECNICAS DE INGENIERIA DE SOFTWARE.
Ingenieria de Software
Paula guia
SeccióN De TéCnicas De IngenieríA De Software(2007)
El Proceso De Desarrollo De Software
procesos de desarrollo de sw
Selección de técnicas de ingeniería de software
Modelos Del ciclo de vida del Software

Último (20)

PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
PDF
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
PDF
ciencias-1.pdf libro cuarto basico niños
DOCX
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
DOCX
Tarea De El Colegio Coding For Kids 1 y 2
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Metodologías Activas con herramientas IAG
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Lección 6 Escuela Sab. A través del mar rojo.pdf
PDF
Escuelas Desarmando una mirada subjetiva a la educación
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
PDF
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
PDF
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
biología es un libro sobre casi todo el tema de biología
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
benveniste-problemas-de-linguistica-general-i-cap-6 (1)_compressed.pdf
ciencias-1.pdf libro cuarto basico niños
III Ciclo _ Plan Anual 2025.docx PARA ESTUDIANTES DE PRIMARIA
Tarea De El Colegio Coding For Kids 1 y 2
Fundamentos_Educacion_a_Distancia_ABC.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
GUIA DE: CANVA + INTELIGENCIA ARTIFICIAL
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Metodologías Activas con herramientas IAG
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Lección 6 Escuela Sab. A través del mar rojo.pdf
Escuelas Desarmando una mirada subjetiva a la educación
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Cronograma de clases de Práctica Profesional 2 2025 UDE.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Didactica de la Investigacion Educativa SUE Ccesa007.pdf
TRAUMA_Y_RECUPERACION consecuencias de la violencia JUDITH HERMAN

Tecnicasdedesarrollo

  • 1. EL PROCESO DE DESARROLLO DE SOFTWARE 1
  • 2. ¿Que queremos decir con proceso de desarrollo? Deseos, Software necesidades, Especificaciones, … 2
  • 3. Introducción al proceso de desarrollo.  En general, cuando las personas abordan el desarrollo de cualquier proyecto evolucionan desde ideas abstractas hacia concreciones realizables. 3
  • 4. Es extraño que alguien diga:  "Me puse a programar y me salió una contabilidad"  Algunas aplicaciones da la impresión de que...  Recordar que la probabilidad de que un mono teclee en una maquina de escribir y salga el quijote no es cero 4
  • 5. Normalmente el planteamiento es:  Vamos a desarrollar una contabilidad,  Hacer la especificación.  en Visual BASIC y Access,  Realizar el diseño.  y se codifica la aplicación. 5
  • 6. El grado de precisión con que se lleve a cabo cada paso influirá en el resultado  ¿Me podrías indicar, por favor, hacia dónde tengo que ir?  Eso depende de adónde quieras llegar, contesto el gato.  A mí no me importa demasiado adónde...- empezó a explicar Alicia.  En ese caso, da igual cualquier dirección - interrumpió el Gato.  ...Siempre que llegue a alguna parte -terminó Alicia a modo de explicación.  Basta que empieces a andar - le aseguro el Gato-, dando un paso tras otro.  Alicia en el país de las maravillas 6
  • 7. Ingeniería e Ingeniería del Software  ¿Donde nos encontramos?  ¿Que hace un Ingeniero?  Definiciones de Ingeniería del software  Técnicas básicas utilizadas históricamente 7
  • 8. ¿Donde nos encontramos?  Con Problemas, tendremos que disponer de:  Técnicas de desarrollo que minimicen la complejidad de un sistema software.  Métodos y conceptos que permitan al productor y al cliente explorar la naturaleza del sistema software lo antes posible.  Técnicas que minimicen los efectos devastadores de las modificaciones durante el desarrollo y la explotación. 8
  • 9. ¿Que hace un Ingeniero?  Construir artefactos dentro de unas limitaciones de coste, utilizando el conocimiento y las teorías de la ciencia sobre la cual se basa el artefacto. 9
  • 10. Definición de la ingeniería del software (NATO ‘68)  La ingeniería del software es el establecimiento y uso de principios de ingeniería razonables con el objetivo de obtener software económicamente, que sea de confianza y trabaje eficientemente en las maquinas reales. 10
  • 11. Definición (R.E. Fairley 1985)  Hemos definido la Ingeniería del Software como la disciplina tecnológica concerniente a la producción y mantenimiento sistemáticos de productos software que son desarrollados y modificados en el tiempo y con los costes estimados...  Además, la Ingeniería del software tiene que ver con cuestiones de gestión que caen fuera del dominio de la programación tradicional. 11
  • 12. Características de la ingeniería del software (Van Vliet 1993)  Construcción de programas grandes  Controlar la complejidad  Cooperación entre las personas implicadas  Evolución del software  Eficiencia en el desarrollo  Soporte real a los usuarios 12
  • 13. Modelo de la Ingeniería del software (Thayer 1988) I n g e n ie r ía d e l s o ftw a re D e s a r r o llo G e s tió n d e M e tr ic a s M a n t e n im ie n to d e S o ftw a re p ro y e c to s d e l s o ftw a re d e s o ftw a re A n a lis is P la n ific a c ió n F ia b ilid a d C o r r e c c ió n d e E r r o r e s D is e ñ o O r g a n iz a c ió n U s a b ilid a d M o d if ic a c io n e s C o d if ic a c ió n R e c lu t a m ie n to F le x ib ilid a d P ru e b a s D ir e c c ió n M a n t e n ib ilid a d C o n tro l R e u s a b ilid a d E tc . 13
  • 14. Técnicas básicas usadas en las ingenierías  Históricamente se han utilizado técnicas como:  El modelado  División del Producto  División del Proceso  En principio se deberían utilizar estas técnicas, también en informática . 14
  • 15. El modelado.  Simplificación del objeto en el mundo real, pero que es suficientemente realista como para dar una idea de lo que ocurrirá en la realidad y usarse como base del desarrollo. 15
  • 16. División del Producto.  Se fracciona el producto de modo que cada fragmento lo puede realizar un miembro del grupo de desarrollo. 16
  • 17. División del Proceso.  Implica dividir el desarrollo del artefacto por fases. Normalmente se habla de especificación, diseño y fabricación. ¿Que ¿Como? Realización Pruebas ? 17
  • 18. En el desarrollo de software nos encontramos con la siguiente situación Ciclos de Metodologías de Vida del Desarrollo del SOFTWARE SOFTWARE 18
  • 19. Ciclo de Vida del Software  Consiste en determinar:  las fases productivas de un proyecto,  los objetivos de cada fase productiva, y  los productos obtenidos en cada una de estas fases así como sus características. 19
  • 20. Ciclos de Vida del Software  Se han propuesto muchos ciclos de vida para el desarrollo del software, pero estos son los más representativos:  Poner la cola al burro.  Ciclo de vida clásico o en cascada.  Construcción rápida de Prototipos Desechables  Incremental  Evolución de prototipos  Reutilización de Software  Síntesis automática de software  En espiral. 20
  • 21. Poner la cola al burro  Se coge a uno o varios informáticos,  Se les muestra más o menos el problema,  Se les deja solos en un cuarto a oscuras,  Transcurrido un tiempo se abre la puerta. 21
  • 22. Ciclo de vida clásico o en cascada.  La Versión Ideal (Perfecta)  El Modelo en V  El Helado de Cucurucho  El Modelo Real  Propuesta de Yourdon 22
  • 23. La Versión Ideal A alguien se le ha ocurrido la Brillante idea de Informatizar Requerimientos ¿? del Sistema Investigación Inicial, Identificación de Necesidades, Encuesta, etc. Estudio de Viabilidad Requerimientos del Software Análisis Especificación Diseño Preliminar y Diseño Detallado Especificación de diseño Codificación y Codificación Depuración Aplicación Test y pruebas previas a la OPERACIÓN Validación Instalación, Explotación OPERACIÓN Y MANTENIMIENTO 23
  • 24. El Modelo en V Identificación de Necesidades Explotación Especificación Esencial Validación Especificación Física Empaquetado Diseño Integración Codificación 24
  • 25. El Helado de Cucurucho USUARIOS Identificación de Necesidades Explotación Especificación CLIENTES Esencial Validación Especificación ANALISTA Física Empaquetado Diseño Integración DISEÑADORES Y Codificación CODIFICADORES 25
  • 26. El Modelo Real Identificación de Necesidades Explotación Especificación Esencial Validación Especificación Física Empaquetado Diseño Integración Codificación 26
  • 27. Propuesta de Yourdon Requerimientos del Usuario Sistema Probado Encuesta Prueba de Sistema Subsistemas Análisis Probados Especificación Funcional Prueba de Necesidades de subsistema diseño Rendimiento Estudio Preliminar del HW Módulos Configuración Probados Especificación del Sistema Diseño Final Prueba de Detallado Unidad Especificación Módulos de los Codificados Codificación Programas 27
  • 28. Construcción Rápida de Prototipos Desechables  Al igual que otras ingenierías se utilizan los prototipos para que el cliente observe, confirme y mejore el producto  Este enfoque es apropiado cuando:  El cliente no tiene claro lo que quiere,  Al cliente le gustaría ver algo similar para poder hacerse una idea de lo que obtendrá 28
  • 29. El ciclo de vida de Prototipos Desechables es el siguiente: Aceptado Obtención Construcción Ciclo de Evaluación Especificación Prototipo Vida Cliente Clásico Mejora de la Especificación NO Aceptado 29
  • 30. Existen dos clases de prototipos  De INTERFACE.  Usualmente un modelo de papel o sobre PC en el que se muestran pantallas y listados.  De COMPORTAMIENTO:  En anchura. Ofrece todos los menús del sistema y simula débilmente los procesos.  En profundidad. Cubre funciones que presentan ambigüedades al cliente o a los informáticos.  Completo pero de baja calidad y rendimiento. 30
  • 31. Incremental Requeri Diseño Impleme Pruebas Bloque 1 mientos ntación Requeri Diseño Impleme Pruebas Bloque N mientos ntación o Requerimientos Requerimientos Permite el Diseño Impleme Pruebas desarrollo Bloque 1 ntación concurrente Diseño Impleme Pruebas Bloque N ntación 31
  • 32. Evolución de Prototipos Observación Requerimientos Abstracción Validación Especificación Verificación Empezamos por los requerimientos más claros, Prototipo menos complejos y más Verificación necesarios. Experimentar Prototipo rápido Validación 32
  • 33. Reutilización de Software  Tiene como objetivos:  reducir el coste del software.  Producir sistemas de mayor calidad.  Se basa en reutilizar Diseños, programas, módulos y datos.  Es compatible con el prototipo evolutivo. 33
  • 34. Síntesis automática de software Requerimientos Informales Análisis de Especificación Formal Requerimientos (Prototipo) Validación Mantenimiento Optimización Mecánica Racionalidad y Decisiones Ajuste (tuning) Desarrollo Programa Formal Fuete 34
  • 35. En espiral. Determinar objetivos, Evaluar alternativas, alternativas, restricciones identificar y resolver riesgos Acuerdo REVISIÓN Planificar las próximas Desarrollar, verificar fases 35
  • 36. Metodologías de Desarrollo del Software  Métodos informales  Métodos Semiformales  Métodos Formales 36
  • 37. Métodos informales  Joaquín Lucio-Villegas los clasifica como:  Quick & Dirty (USA)  Match stick box (Europa)  Balones p'alante y maricón el último 37
  • 38. Métodos Semiformales  Métodos Estructurados  SA/SD (structured analysis & structured design)  Métrica  Métodos Orientados a Objetos  OMT  UML 38
  • 39. Métodos Estructurados  Métodos Orientados a la Estructura de los Datos  Métodos de flujo de datos PROCESOS DATOS 39
  • 40. Métodos Orientados a Objetos  Los métodos orientados a objeto describen e implementan los sistemas de información desde un punto de vista ontológico. 40
  • 41. Métodos Formales  Los métodos formales permiten al ingeniero de software especificar, desarrollar y verificar un sistema informático mediante la aplicación de una notación matemática rigurosa.  Utilizando un lenguaje de especificación formal, un método formal proporciona los medios de especificar un sistema de forma que se aseguren, de forma sistemática, la consistencia, la completitud y la corrección.  Se suelen basar en notaciones matemáticas similares a las del álgebra de conjuntos y la lógica 41
  • 42. Madurez del proceso en la organización de desarrollo  La misma industria, diferentes niveles de madurez. 42
  • 43. Madurez del proceso en la organización de desarrollo  Hay factores que no quedan claramente reflejados en el ciclo de vida ni en las técnicas de desarrollo.  Los factores no estudiados son:  El cumplimiento de los plazos de entrega.  La calidad (número de errores en el Software).  El coste del proyecto. 43
  • 44. CMM (Capability Maturity Model)  Proporciona una Guía sobre como  controlar los procesos:  de desarrollo del software.  de mantenimiento.  Hacer evolucionar hacia una cultura de:  Ingeniería del software.  Gestión eficiente. 44
  • 45. Evolución de las organizaciones según el CMM Control del Proceso Optimización Medición del Proceso Gestionado Definición del Proceso Definido Control Básico Repetible Inicial 45
  • 46. Correlación entre estimaciones y niveles de madurez 46
  • 47. Nivel Inicial.  Según las circunstancias utilizamos un proceso distinto. (algunos caóticos)  A medida,  Poco formalizado,  Uso de herramientas informales.  Pocos procesos definidos.  El éxito depende del esfuerzo individual. 47
  • 48. Nivel de Repetición.  Se tiene procesos estables de desarrollo, con control estadístico.  Uso de datos historicos  Establecimiento de procesos de gestión de proyecto, para hacer seguimiento de:  Coste.  Planificación.  Funcionalidad. 48
  • 49. Nivel de Definición.  Proceso de desarrollo perfectamente definido y estandarizado.  Integrado en la organización.  Bien documentado.  Todos los proyectos utilizan una versión documentada y aprobada de proceso. 49
  • 50. Nivel de Gestión.  Mejoras de calidad sustanciales.  Control cuantitativo de productos y proceso a través de  Mediciones del proceso comprensibles.  Mediciones de la calidad 50
  • 51. Nivel de Optimización.  A través de mediciones del proceso utilizando ideas y tecnologías innovadoras obtenemos:  Mejoras en calidad y cantidad. 51
  • 52. Resumen  Hemos visto:  Como trabajan los ingenieros,  Definiciones de ingeniería del software,  El ciclo de vida del software,  Metodológicas de desarrollo  Madurez del proceso de desarrollo. 52