Software Evo Lucio Ning Soft

download Software Evo Lucio Ning Soft

of 52

Transcript of Software Evo Lucio Ning Soft

  • 8/18/2019 Software Evo Lucio Ning Soft

    1/52

    Ingeniería de Software

    Profesor: Patricio Salinas

  • 8/18/2019 Software Evo Lucio Ning Soft

    2/52

    Objetivos:

    Introducción a la Ingeniería de Software

    1.  Identificar las etapas fundamentales

    en el Ciclo de Vida de todo proyecto.

    2.  Identificar los elementos quecomponen la Ingeniería de Software.

  • 8/18/2019 Software Evo Lucio Ning Soft

    3/52

    Software

    El Software no es sólo código,

    sino también las especificaciones del diseño,

    los datos tratados y la documentación quepermite el desarrollo, instalación y

    mantenimiento

  • 8/18/2019 Software Evo Lucio Ning Soft

    4/52

    Software

  • 8/18/2019 Software Evo Lucio Ning Soft

    5/52

    Software: Características

    Es un elemento lógico, no físico.

    Es desarrollado, no fabricado.

    Se deteriora.

    No hay “piezas de repuesto”.

    Se construye a medida.

  • 8/18/2019 Software Evo Lucio Ning Soft

    6/52

    Software: Cualidades

    CorrectoConfiable

    Robusto

    Eficiente

    Amigable

    Verificable

    Reusable

    Portable

  • 8/18/2019 Software Evo Lucio Ning Soft

    7/52

    Software: Un sistema de SW debe ser…

    Fácil de mantener. Construido y documentadopara permitir cambios.

  • 8/18/2019 Software Evo Lucio Ning Soft

    8/52

    Software: Un sistema de SW debe ser…

    Fácil de mantener.  Construido y documentadopara permitir cambios.

    Fiable. Debe hacer lo que se espera de él.

  • 8/18/2019 Software Evo Lucio Ning Soft

    9/52

    Software: Un sistema de SW debe ser…

    Fácil de mantener.   Construido y documentadopara permitir cambios.

    Fiable. Debe hacer lo que se espera de él.

    Eficiente.   No debe hacer uso innecesario derecursos.

  • 8/18/2019 Software Evo Lucio Ning Soft

    10/52

    Software: Un sistema de SW debe ser…

    Fácil de mantener.   Construido y documentadopara permitir cambios.

    Fiable. Debe hacer lo que se espera de él.

    Eficiente.   No debe hacer uso innecesario derecursos.

    Fácil de usar. Interfaz de usuario adecuada.

  • 8/18/2019 Software Evo Lucio Ning Soft

    11/52

    Software: Evolución hacia la ingeniería

  • 8/18/2019 Software Evo Lucio Ning Soft

    12/52

    Software: Progreso de técnicas en su construcción

  • 8/18/2019 Software Evo Lucio Ning Soft

    13/52

    Software: Factores de Calidad

    Corrección¿ Hace lo que quiero ?

  • 8/18/2019 Software Evo Lucio Ning Soft

    14/52

    Software: Factores de Calidad

    Corrección

    MainframeFiabilidad¿ Lo hace de forma fiable

    todo el tiempo ?

  • 8/18/2019 Software Evo Lucio Ning Soft

    15/52

    Software: Factores de Calidad

    Corrección

    Fiabilidad

    Eficiencia¿ Se ejecutará en mi hardware

    lo mejor que pueda ?

  • 8/18/2019 Software Evo Lucio Ning Soft

    16/52

    Software: Factores de Calidad

    Corrección

    Fiabilidad

    Eficiencia

    Seguridad (Integridad)¿ Es seguro ?

  • 8/18/2019 Software Evo Lucio Ning Soft

    17/52

    Software: Factores de Calidad

    Corrección

    Fiabilidad

    Eficiencia

    Seguridad (Integridad)

    Facilidad de uso¿ Esta diseñado para ser

    usado ?

  • 8/18/2019 Software Evo Lucio Ning Soft

    18/52

    Ingeniería de Software: Inicios

    El término Ingeniería de Software nació a finalesde los años 60 en un congreso en Alemania.

    La necesidad de un enfoque de ingeniería en el

    desarrollo de software fue propuesto en estecongreso (OTAN-1968)

    La Ingeniería de Software surge como respuesta ala crisis del software.

  • 8/18/2019 Software Evo Lucio Ning Soft

    19/52

    Ingeniería de Software: Crisis del SW

    La crisis del SW se fundamentó en:

    • El tiempo de creación del SW

    • La no obtención de los resultados deseados

    • La poca flexibilidad

    • El alto costo

  • 8/18/2019 Software Evo Lucio Ning Soft

    20/52

    Crisis del SW: Causas más profundas

    La metodología en cascada linealiza el proceso dedesarrollo

    La metodología de modular estructurada hace que

    el SW sea inflexible y difícil de mantenerLos programadores no tienen formación en Ing.SW

    Las empresas (instituciones) tienen alta inercia aintroducir innovaciones

  • 8/18/2019 Software Evo Lucio Ning Soft

    21/52

    Crisis del SW: Razones

    Bases inestables

    Fallas en el manejo del riesgo

    La complejidad del SW

  • 8/18/2019 Software Evo Lucio Ning Soft

    22/52

    Crisis del SW: Soluciones

    Reforzar las fases de análisis y diseño de SW

    Construir un modelo sencillo, fácil de entender,compatible con muchas herramientas de

    programación y fácil de mantenerUso de metodologías y herramientas en las fasesde construcción del SW

  • 8/18/2019 Software Evo Lucio Ning Soft

    23/52

    Ingeniería de Software: Definición

    “El establecimiento y uso de principios de ingeniería

    robustos, orientados a obtener económicamente

    software que sea fiable y funcione eficientemente

    sobre máquinas reales”

    Fritz Bauer 

  • 8/18/2019 Software Evo Lucio Ning Soft

    24/52

    Ingeniería de Software: Desafíos

    Reducir el costo y mejorar la calidad del SW.

  • 8/18/2019 Software Evo Lucio Ning Soft

    25/52

    Ingeniería de Software: Desafíos

    Reducir el costo y mejorar la calidad del SW.

    Explotar y aprovechar el potencial proporcionadopor el HW.

  • 8/18/2019 Software Evo Lucio Ning Soft

    26/52

    Ingeniería de Software: Desafíos

    Reducir el costo y mejorar la calidad del SW.

    Explotar y aprovechar el potencial proporcionadopor el HW.

    Desarrollar y mantener el SW asegurando:Calidad

    Fiabilidad

    Facilidad de usoImposibilidad de mal uso

  • 8/18/2019 Software Evo Lucio Ning Soft

    27/52

    Ingeniería de Software: Existen muchas clases de SW

    De sistemas

    De tiempo real

    De gestión

  • 8/18/2019 Software Evo Lucio Ning Soft

    28/52

    Ingeniería de Software: Existen muchas clases de SW

    De sistemas

    De tiempo real

    De gestión

    CientíficoDe inteligencia artificial

    Empotrado

    Etc.

  • 8/18/2019 Software Evo Lucio Ning Soft

    29/52

    Ingeniería de Software: Existen muchas clases de SW

    De sistemas

    De tiempo real

    De gestión

    CientíficoDe inteligencia artificial

    Empotrado

    Etc.

    Pero existen métodos y procedimientoscomunes para desarrollar un buen software

  • 8/18/2019 Software Evo Lucio Ning Soft

    30/52

    Ingeniería de Software: Desafíos

  • 8/18/2019 Software Evo Lucio Ning Soft

    31/52

    Ingeniería de Software … sus elementos son:

    Métodos

    Herramientas

    Procedimientos

  • 8/18/2019 Software Evo Lucio Ning Soft

    32/52

    Ingeniería del Software … sus elementos son:

    Herramientas

    Procedimientos

    Definen cómo desarrollar el SW desde elpunto de vista técnico.

    Métodos

  • 8/18/2019 Software Evo Lucio Ning Soft

    33/52

    Ingeniería del Software … sus elementos son:

    Métodos

    Procedimientos

    Herramientas   Proporcionan un soporte automático osemi-automático para los métodos.

    Definen cómo desarrollar el SW desde elpunto de vista técnico.

  • 8/18/2019 Software Evo Lucio Ning Soft

    34/52

    Ingeniería del Software … sus elementos son:

    Métodos

    Herramientas

    PProcedimientos

    Proporcionan un soporte automático osemi-automático para los métodos.

    Definen cómo desarrollar el SW desde elpunto de vista técnico.

    Punto de unión entre métodos yherramientas. Definen la secuencia en laque se aplican los métodos, cómo usar lasherramientas, controles de seguimiento y

    calidad, guías para gestores ydesarrolladores, etc.

  • 8/18/2019 Software Evo Lucio Ning Soft

    35/52

    Ingeniería del Software … sus elementos son:

    Métodos

    Planificación y estimación de proyectos.

    Análisis de requisitos.

    Diseño.

    Codificación.

    Pruebas.

    Mantenimiento.

    Herramientas

    CASECAD…

    Procedimientos

  • 8/18/2019 Software Evo Lucio Ning Soft

    36/52

    Ingeniería del Software … sus elementos son:

  • 8/18/2019 Software Evo Lucio Ning Soft

    37/52

    Ciclo de Vida del Software

    Define el estado de las fases a través de las

    cuales se mueve un proyecto de desarrollo de

    software.

  • 8/18/2019 Software Evo Lucio Ning Soft

    38/52

    Modelo de Ciclo de Vida

    Es una vista de las actividades que ocurren durante

    el desarrollo de software, intenta determinar el orden

    de las etapas involucradas y los criterios de transición

    asociadas entre estas etapas.

  • 8/18/2019 Software Evo Lucio Ning Soft

    39/52

    Ciclo de Vida: Definición

    Ciclo de vida se define como el conjunto de fases

    que transcurren desde que surge la idea de construir 

    una aplicación, hasta que la aplicación deja de tener 

    validez y se desecha.

  • 8/18/2019 Software Evo Lucio Ning Soft

    40/52

    Ciclo de Vida: Etapas fundamentales CV de todo proyecto

  • 8/18/2019 Software Evo Lucio Ning Soft

    41/52

    Ciclo de Vida: Etapas fundamentales CV de todo proyecto

    Etapa de Desarrollo

     Análisis

    Diseño

    Codificación

    Prueba

  • 8/18/2019 Software Evo Lucio Ning Soft

    42/52

    Ciclo de Vida: Etapas fundamentales CV de todo proyecto

    Planificación: en esta fase se hace imprescindible:Conocer el SI, en el que va a estar inmerso el softwareque voy a desarrollar.

    Determinar los objetivos a cumplir

    Definir un plan de acción (proyecto a desarrollar ycalendario que se va a seguir).

    Evaluar los recursos necesarios.

    Determinar un plan de seguimiento con mecanismos deevaluación adecuados (técnicas de análisiscosto/beneficio).

  • 8/18/2019 Software Evo Lucio Ning Soft

    43/52

    Ciclo de Vida: Etapas fundamentales CV de todo proyecto

    Desarrollo. Se divide en cuatro etapas:Análisis. ¿Qué es lo que tenemos que hacer?. Se tratade conocer el conjunto de entradas que necesita elsistema, el conjunto de salidas que se producirán y losprocesos a implantar. Siempre dependiendo de lasespecificaciones marcadas por el Cliente.

    Diseño.   ¿Cómo lo tenemos que hacer?. Cómo losprogramas van a conseguir los objetivos con los datosdisponibles.

    Codificación.  Consiste en traducir los resultados deldiseño a un lenguaje de programación.

    Pruebas.   Consiste en verificar y validar la soluciónobtenida (pruebas unitarias, pruebas de integración).

    i l d id f d l d d

  • 8/18/2019 Software Evo Lucio Ning Soft

    44/52

    Ciclo de Vida: Etapas fundamentales CV de todo proyecto

    Mantenimiento.¿Cómo se gestiona el cambio una vez que el sistema estáen explotación?

    Mantenimiento Correctivo. Corrección de errores.

    Mantenimiento Adaptativo. Cambio en el entorno físico ylógico.

    Mantenimiento Perfectivo. Mejoras y ampliaciones.

    Ci l d Vid E f d l CV d d

  • 8/18/2019 Software Evo Lucio Ning Soft

    45/52

    Ciclo de Vida: Etapas fundamentales CV de todo proyecto

    Mantenimiento.¿Cómo se gestiona el cambio una vez que el sistema estáen explotación?

    Mantenimiento Correctivo. Corrección de errores.

    Mantenimiento Adaptativo. Cambio en el entorno físico ylógico.

    Mantenimiento Perfectivo. Mejoras y ampliaciones.

    Mantenimiento Adaptativo y Perfectivoreinician el Ciclo de Vida.

    Ci l d Vid d l S ft

  • 8/18/2019 Software Evo Lucio Ning Soft

    46/52

    Ciclo de Vida del Software

    Un modelo de Ciclo de Vida del software:Describe las fases principales de desarrollo desoftware.

    Define las fases primarias esperadas de ser ejecutadasdurante esas fases.

    Ayuda a administrar el progreso del desarrollo.

    Provee un espacio de trabajo para la definición de undetallado proceso de desarrollo de software.

    Ti d CV d li ió i f áti

  • 8/18/2019 Software Evo Lucio Ning Soft

    47/52

    Tipos de CV de una aplicación informática

    Ciclo de Vida Clásico (o Cascada).Se desarrolla c/u de las etapas secuencialmente.

    Hay que esperar el término de una etapa para continuarcon la siguiente.

    Ti d CV d li ió i f áti

  • 8/18/2019 Software Evo Lucio Ning Soft

    48/52

    Tipos de CV de una aplicación informática

    Ciclo de Vida en Cascada con vuelta atrás.Es el más conocido y experimentado.

    Contempla la posibilidad de volver atrás desde cualquieretapa.

    Tipos de CV de na aplicación info mática

  • 8/18/2019 Software Evo Lucio Ning Soft

    49/52

    Tipos de CV de una aplicación informática

    Ciclo de Refinamiento de Prototipos.Entendemos por Prototipo   un modelo evolutivo de lasolución final. Poco a poco se irá refinando paraadaptarlo a las necesidades del proyecto.

    Tipos de CV de una aplicación informática

  • 8/18/2019 Software Evo Lucio Ning Soft

    50/52

    Tipos de CV de una aplicación informática

    Ciclo de Vida en Espiral.

    Trata de unir las ventajas de los modelos anteriores,incorporando el análisis de riesgo, con lo que gananimportancia los factores económicos del proyecto.

    Tipos de CV de una aplicación informática

  • 8/18/2019 Software Evo Lucio Ning Soft

    51/52

    Tipos de CV de una aplicación informática

    En general:

    Si el problema es perfectamente

    conocido, en el que el usuario

    define claramente los requisitos,

    y el equipo de desarrollo tiene

    amplia experiencia en la cuestión

    CV en cascada (corregida)

    Si el desarrollo conlleva muchos

    riesgosCV en espiral

    Si es importante ir probando el

    producto a medida que se

    desarrolla para demostrarle al

    usuario y al cliente su utilidad

    CV basado en prototipos

    Sínt sis

  • 8/18/2019 Software Evo Lucio Ning Soft

    52/52

    Síntesis

    –   Software = Programas + Datos + Documentación

    –   Elementos de la Ingeniería de Software:

    •  Métodos, Herramientas, Procedimientos.

    –   Ciclo de Vida:

    •   Conjunto de fases desde idea de desarrollar hasta que sedesecha la aplicación.

    –   Etapas de Ciclo de Vida:

    •  Planificación, Desarrollo, Mantenimiento

    –   Tipos de Ciclo de Vida:

    •   Cascada, Cascada c/vuelta atrás, Prototipo, Espiral.