S1-Modelos de Procesos.pdf

download S1-Modelos de Procesos.pdf

of 10

Transcript of S1-Modelos de Procesos.pdf

  • 8/20/2019 S1-Modelos de Procesos.pdf

    1/24

    Tema 1:

    Introducción a la Ingenieríadel Software

     Este Trabajo está licenciado con Creative Commons License

    http://creativecommons.org/licenses/by-nc/2.0/ 

    http://wwwdi.ujaen.es/~magchttp://wwwdi.ujaen.es/asignaturas/ingprog

    Versión 2.0.0

  • 8/20/2019 S1-Modelos de Procesos.pdf

    2/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 2

    Objetivos Específicos

    • Resumir conceptos generales asociados a la Ingeniería delSoftware y al desarrollo de aplicaciones.

    • Describir qué es el Software y sus características generales.

    • Mostrar las etapas de evolución del Software.

    • Revisar el concepto de Ingeniería del Software y algunasherramientas.

    • Estudiar las fases de la Ingeniería.

    • Revisar Modelos de Proceso o Desarrollo de Software.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    3/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 3

    Conceptos GeneralesProgramación:

    Creación de un programa (un conjunto de instrucciones que unacomputadora puede ejecutar).

    Programa:Secuencia no ambigua, finita y ordenada de instrucciones queresuelven un problema.

    Lenguajes de programación vs. Lenguaje máquina

    Tres objetivos:

    –   Corrección: si hace lo que tiene que hacer.

    –   Eficiencia: consumir la menor cantidad de recursos posibles(tiempo, memoria, CPU).

    –   Claridad : lo más claro posible para facilitar el futuromantenimiento.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    4/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 4

    El Software (I)Características

    – Producto lógico, no físico– Se desarrolla, no se fabrica

    – No se deteriora.

    – Construcción a medida.

    – Mantenimiento complicado

    Aplicaciones del Software– Software de sistemas– Software de tiempo real

    – Software de gestión

    – Software de ingeniería y científico

    – Software empotrado

    – Software de computadoras personales

    – Software de inteligencia artificial

  • 8/20/2019 S1-Modelos de Procesos.pdf

    5/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 5

    El Software (II)

        Í

      n   d   i  c  e

       d  e

       f  a   l   l  o

      s

    Tiempo de uso

    Software

    Hardware

        Í  n   d   i  c  e

       d  e

       f  a   l   l  o  s

       S  o   f   t  w

      a  r  e

    Tiempo de uso

    Ideal

    Cambio Real

  • 8/20/2019 S1-Modelos de Procesos.pdf

    6/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 6

    Evolución del Software

    Veamos algo de Historia reciente...

    No os durmáis …

  • 8/20/2019 S1-Modelos de Procesos.pdf

    7/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 7

    Evolución del Software1ª Época (1950)

    – La programación de las computadores era un arte– No se disponía de métodos sistemáticos para desarrollar software

    – No había planificación

    2ª Época (60-70)

    – El software como producto de distribución genérica– Aparece el concepto de mantenimiento del software

    – Aumento de la complejidad del código

    3ª Época (72-85)– Sistemas multiusuario

    – Sistemas en tiempo real

    – Bases de datos

    – Producto de software

  • 8/20/2019 S1-Modelos de Procesos.pdf

    8/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 8

    Evolución del SoftwareMitos del Software4ª Época (85-)

    – Sistemas personales potentes– Tecnologías orientadas a objetos

    – Sistemas expertos

    – Redes neuronales

    – Computación en paralelo

    – Redes de computadoras

    Mitos del Software– ¿Por qué lleva tanto tiempo terminar los programas?

    – ¿Por qué es el coste de desarrollo tan elevado?

    – ¿Por qué no podemos construir un software sin errores?

    – ¿Por qué existe dificultad en la medición del trabajo y del proceso de desarrollo?

    – ¿Por qué el programa no hace lo que se esperaba?

    – ¿Por qué es difícil modificar los programas?

    – ¿Por qué un aumento del número de personal no ayuda?

  • 8/20/2019 S1-Modelos de Procesos.pdf

    9/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 9

    Ingeniería del Software

    Uno de los objetivos más perseguidos desde los inicios de la informática ha sido la búsquedade técnicas que mejorasen la calidad y permitiesen reducir los costes de las solucionesde software.

    A mediados de los 60, la creación de un producto software se convirtió en una tareaangustiosa (crisis del software), y se hizo por tanto necesario introducir una serie deherramientas y procedimientos que facilitaran por un lado, la labor de creación de nuevosoftware y por otro, la comprensión y el manejo del mismo. Estos fueron los inicios dela ingeniería del software.

    Definición:

    Según Bauer (1969), entendemos por ingeniería del software “el establecimiento y uso

    de principios de ingeniería robustos, orientados a obtener software económico, quesea fiable y funcione eficientemente sobre máquinas reales.”

  • 8/20/2019 S1-Modelos de Procesos.pdf

    10/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 10

    Elementos de laIngeniería del Software1. Herramientas: proporcionan un soporte automático o semiautomático para la

    aplicación de los procedimientos y los métodos.

    2. Métodos: Indican cómo construir técnicamente el software. Abarcan una grancantidad de tareas.

    3. Procedimientos: Un procedimiento software se puede caracterizar por un conjuntode actividades que se pueden aplicar en el desarrollo de cualquier proyecto softwareasí como la forma de abarcarlas durante el desarrollo del mismo.

    Herramientas CASE (Computer-Aided Software Engineering)Conjunto de herramientas para soportar las tareas de Ingeniería del software y diseñadas de

    manera que la información generada por una de ellas sirva de entrada a otras.

    Metodologías de Diseño– Diseño funcional descendente. El sistema se observa en términos de las

    funciones que suministra.

    – Diseño orientado a objetos. El sistema se observa como una sociedad deobjetos, donde cada elemento del sistema (objeto) encapsula datos yoperaciones.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    11/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 11

    Fases de laIngeniería del SoftwareDefinición o Análisis:

    – Se centra en el QUÉ.

    – Se intenta identificar qué información ha de ser procesada, qué función yrendimiento se desea, qué comportamiento del sistema, qué interfaces van a serestablecidas, qué restricciones de diseño existen y qué criterios de validación senecesitan para definir un sistema correcto.

    Desarrollo:– Se centra en el CÓMO.

    – Se definen cómo han de diseñarse las estructuras de datos.– Cómo ha de implementarse la funcionalidad como una arquitectura del

    software.

    – Cómo han de implementarse los detalles de los procedimientos..

    – Cómo traducir el diseño a un lenguaje de programación.

    – Cómo realizar las pruebas sobre el software resultante.

    Mantenimiento:– Se centra en el cambio que va asociado a la corrección de errores.

    – Adaptaciones requeridas a medida que evoluciona el entorno.

    – Cambios debidos a mejoras producidas por los requerimientos del cliente.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    12/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 12

    Pregunta Trivial

    • ¿La fase de Definición se centra en?

    • ¿La fase de Desarrollo se centra en?

  • 8/20/2019 S1-Modelos de Procesos.pdf

    13/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 13

    Respuesta Trivial

    • Definición: QUÉ

    • Desarrollo: CÓMO

  • 8/20/2019 S1-Modelos de Procesos.pdf

    14/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 14

    Análisis del Sistema - Ejemplo

    Visión Funcional

  • 8/20/2019 S1-Modelos de Procesos.pdf

    15/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 15

    Análisis del Sistema - Ejemplo

  • 8/20/2019 S1-Modelos de Procesos.pdf

    16/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 16

    Diseño del Sistema - Ejemplo

    Diagrama de Estructura

  • 8/20/2019 S1-Modelos de Procesos.pdf

    17/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 17

    Diseño del Sistema - Ejemplo

  • 8/20/2019 S1-Modelos de Procesos.pdf

    18/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 18

    Análisis y Diseño del Sistema

  • 8/20/2019 S1-Modelos de Procesos.pdf

    19/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 19

    Modelos de Proceso del Software (I)Modelo lineal secuencial (Ciclo de vida clásico)Enfoque sistemático y secuencial del desarrollo del software que comienza en un nivel de

    sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.

    Actividades:

    1.- Ingeniería y modelado de Sistemas/Información

    – Ubicación del software en el ámbito donde va a funcionar.

    2.- Análisis de los requisitos del software

    – Se deben conocer los aspectos relacionados con la información a tratar, lafunción requerida, comportamiento, rendimiento, etc del software.

    – El cliente debe dar el visto bueno

    3.- Diseño– Estructura del programa y arquitectura del software

    – Representaciones de la Interfaz

    – Detalle Procedimental (algoritmo)

    Análisis Diseño Código Prueba Mantenimiento

  • 8/20/2019 S1-Modelos de Procesos.pdf

    20/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 20

    Modelos de Proceso del Software (II)

    4.- Generación de código o Implementación– Puede automatizarse si el diseño está bien detallado.

    5.- Pruebas

    –  De Caja Blanca: Análisis de los distintos caminos de ejecución de los algoritmos.

    –  De Caja Negra: Análisis de los procesos externos funcionales.

    6.- Mantenimiento

    Gestión de cambios en el software debidos a:

    – Errores durante el desarrollo.

    – Adaptación a nuevos entornos. Ej. Sistema Operativo

    – Mejoras funcionales o de Rendimiento.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    21/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 21

    Modelos de Proceso del Software (III)

    Escuchar

    al ClienteConstruir

    prototipo

    Probar el

    prototipo

    Modelo de construcción de prototipos

    Se dan un conjunto de objetivos generales de entrada, procesamiento y salida.Con ellos se desarrolla un prototipo inicial que sirve para detallar objetivos (requisitos) másconcretos del producto final.

    El prototipo se suele desechar.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    22/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 22

    Modelos de Proceso del Software (IV)Desarrollo Rápido de Aplicaciones (DRA)Es una adaptación a “alta velocidad ” del modelo lineal secuencial en el que se logra el

    desarrollo rápido utilizando un enfoque de construcción basado en componentes.Puede permitir el desarrollo de un sistema completamente funcional en periodos cortos de

    tiempo (de 60 a 90 días).

    Los componentes que se desarrollen se pueden reutilizar en posteriores proyectosRepositorio de componentes.

    El sistema se descompone en un conjunto de bloques que se pueden desarrollar de manera

    independiente por distintos equipos de desarrollo.Sólo puede aplicarse cuando se cumplen una serie de condiciones:

    – Se comprenden muy bien los requisitos del sistema a desarrollar. Ya sea porque los conoce elpropio desarrollador o porque se tiene una experiencia previa en un sistema similar.

    – Se delimita muy bien el ámbito del problema.

    – La interacción del software con el nuevo sistema no es complicada o se utilizan nuevas

    tecnologías que no son dominadas por el equipo de desarrollo.Inconvenientes:– Debe haber un compromiso por parte del equipo de desarrollo y del cliente en el desarrollo

    rápido de actividades.

    – Requiere recursos suficientes para crear el número de equipos necesarios.

  • 8/20/2019 S1-Modelos de Procesos.pdf

    23/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 23

    Modelos de Proceso del Software (V)Modelos Evolutivos Necesidad : El software, al igual que el resto de sistemas evoluciona con el tiempo.

    Necesidad de procedimientos que permitan una evolución del software.Modelo Incremental.

    – Combina elementos del modelo lineal secuencial con la filosofía interactiva de construcciónde prototipos.

    – Entrega por incrementos

    – Fácil adaptación a requerimientos temporales de entrega.

    Análisis Diseño Código Prueba MantenimientoIncremento

    1

    Análisis Diseño Código Prueba MantenimientoIncremento

    2

    Análisis Diseño Código Prueba MantenimientoIncremento

    3

    Entrega de

    incremento

    1

    Entrega de

    incremento

    2

    Entrega de

    incremento3

    Tiempo

  • 8/20/2019 S1-Modelos de Procesos.pdf

    24/24

    Tema 1: Introducción a la Ingeniería del Software

    v 2.0.0 - 24

    Modelos de Proceso del Software (VI)

    Comunicación

    con el Cliente

    Planificación   Análisis de

    Riesgos

    Ingeniería

    Construcción

    y adaptaciónEvaluación

    del Cliente

    Modelos Evolutivos

    Modelo en Espiral.– Combina el modelo lineal secuencial y el de construcción de prototipos aparte de

    proporcionar el potencial para el desarrollo rápido de versiones incrementales del software.

    – Se debe establecer el número de interacciones.