27
Introducción a la Ingeniería de Software Tema 2: Modelos de Proceso

Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Introducción a la

Ingeniería de Software

Tema 2:

“Modelos de Proceso”

Page 2: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Tecnólogo en Informática – Buceo - Latu, 2015

● Significado del Proceso -seguir, escribir...

● Modelos de Proceso de Software

● Metodologías Ágiles

● Herramientas y Técnicas

● Modelado en la Práctica

Agenda

Page 3: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Significado del proceso

•El proceso de desarrollar software (organización y disciplina en las actividades) contribuye a la calidad del software y a la velocidad con que se desarrolla.

•Conjunto ordenado de tareas como Proceso: serie de pasos con actividades, restricciones y recursos que producen una salida de cierto tipo.

•Cuando el proceso involucra la construcción de un producto, a veces se menciona como Ciclo de Vida (del producto).

Page 4: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Siguiendo un Proceso

•Un proceso es un conjunto de procedimientos (receta), organizado para construir productos que satisfacen una serie de objetivos y estándares.

•Los procesos son importantes porque imponen consistencia y estructura en un conjunto de actividades.

•Sabemos cómo hacer algo bien y queremos forzar que otros lo hagan de la misma forma.

Page 5: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Escribiendo un Proceso

(un “programa” que otros deben seguir)

•Prescribir todas las actividades principales

•Usa recursos sujeto a restricciones

•Puede estar compuesto de subprocesos

•Cada actividad tiene un criterio de entrada y otro de salida

•Las Actividades están organizadas en una secuencia.

•Establecer los objetivos de cada actividad.

Page 6: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelos de Proceso de Software

•Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo.

•Descripciones de la forma en que el desarrollo se lleva a cabo realmente.

•Cada modelo de desarrollo de software incluye los requerimientos del sistema como entrada y el producto librado al uso como salida.

Page 7: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Proceso de Abastecimiento

Page 8: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo de Proceso y de Ciclo de Vida

•La preocupación por el “Proceso” (fin de los ’80) es más reciente que la definición del “Ciclo de Vida” (fin de los ’60)

•En general se asocia a la noción de modelo de proceso un mayor detalle y precisión

•Los modelos previos presentan en general poco nivel de detalle y fueron propuestos originalmente como modelos de Ciclo de Vida

Page 9: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo Cascada

Page 10: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Cascada

c/prototipos

ANALISIS DE REQUERIMIENTOS

DISEÑO DEL SISTEMA

DISEÑO DE PROGRAMAS

IMPLEMENTACION DE PROGRAMAS

PRUEBA UNITARIA Y DE INTEGRACION

PRUEBA DEL SISTEMA

PRUEBA DE ACEPTACION

OPERACION Y MANTENIMIENTO

PROTOTIPADO

Validar

Verificar

El prototipado permite al cliente

evaluar en forma temprana el

producto, e interactuar con los

diseñadores y desarrolladores

para saber si se está cumpliendo

con las expectativas y las

funcionalidades acordadas. Los

Prototipos no poseen la

funcionalidad total del sistema

pero si condensa la idea principal

del mismo, Paso a Paso crece su

funcionalidad, y maneja un alto

grado de participación del

usuario.

Page 11: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo Espiral

6. Si el cliente no está de acuerdo se Cubre otra banda de la espiral y se vuelve a la segunda etapa

1. Comunicación entre el cliente y el desarrollador

2. Se definen recursos, tiempo y otra información relacionadas con el proyecto.

3. Se evalúan riesgos técnicos y de gestión

4. Las tareas requeridas para construir una o más representaciones de la aplicación.

5. Las tareas requeridas para construir, probar, instalar y proporcionar soporte al usuario

Page 12: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo V

El lado izquierdo de la V representa la descomposición de las necesidades y la creación de las especificaciones del sistema. El lado derecho de la V representa la integración de las piezas y su verificación.

Page 13: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo iterativo

Page 14: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo Incremental

Page 15: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones
Page 16: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodologías ÁGILES de Desarrollo de Sw.

•Los modelos de proceso tradicionales trabajan en un contexto de ficción para representar una imagen ideal del sistema, bajo control.

•En la realidad dichas “utopías”, ignoran la verdadera dinámica del desarrollo de software y generan resultados con altísimos costos de retrabajo.

•Un grupo de desarrolladores comenzó a trabajar con una nueva filosofía, centrada en las personas, la cuál llamaron “Metodologías Ágiles”

Page 17: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodologías ÁGILES de Desarrollo de Sw.

•Manifiesto Ágil (http://www.agilemanifesto.org/iso/es/

Estamos descubriendo mejores maneras de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de esta experiencia hemos aprendido a valorar:

Individuos e interacciones sobre procesos y herramientas

Software que funciona sobre documentación exhaustiva

Colaboración con el cliente sobre negociación de contratos

Responder ante el cambio sobre seguimiento de un plan

Esto es, aunque los elementos a la derecha tienen valor, nosotros valoramos por encima de ellos los que están a la izquierda.

Page 18: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodologías ÁGILES de Desarrollo de Sw.

•Principios Ágiles

1)Nuestra mayor prioridad es satisfacer al cliente a través de la entrega temprana y continua de software con valor.

2)Aceptamos requisitos cambiantes, incluso en etapas avanzadas.

3)Entregamos software frecuentemente.

4)Los responsables de negocio y los desarrolladores deben trabajar juntos diariamente a lo largo del proyecto.

5)Construimos proyectos con profesionales motivados.

Page 19: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodologías ÁGILES de Desarrollo de Sw.

6. Conversación cara a cara.

7. Software que funciona es la principal medida de progreso.

8. Los procesos ágiles promueven el desarrollo sostenible.

9. La atención continua a la excelencia técnica y los buenos diseños mejoran la agilidad.

10.Simplicidad es esencial.

11.Las mejores arquitecturas, requisitos y diseños surgen de equipos que se auto-organizan.

12.A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo.

Page 20: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodologías ÁGILES de Desarrollo de Sw.

Entonces un Método es Ágil cuando el desarrollo es:

• Incremental

Liberaciones pequeñas y ciclos rápidos.

• Cooperativo

Clientes y desarrolladores trabajando juntos.

• Simple y Directo

El método es fácil de aprender y modificar.

• Adaptativo

Es posible realizar cambios de último momento.

Page 21: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodología SCRUM.

Page 22: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Metodologías ÁGILES (SCRUM)

Page 23: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Ejemplo Practico

Page 24: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Ejemplo Practico

Page 25: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Herramientas y Técnicas para el

Modelado de Procesos

Elegir un lenguaje o notación

•Tener claro objetivos del modelo

Detalle (granularidad)

Describir-prescribir

Predecir (requiere agregar relaciones cuantitativas entre elementos)

Ejecutar (asistir en el uso)

Page 26: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelo ETVX

•Entry Task Verification eXit

•Entry: Condiciones necesarias para poder cumplir una tarea

•Task: Tarea que se lleva a cabo

Quién y con qué responsabilidad

•Verification: Criterios para verificar que concluyó de forma adecuada (a veces se le menciona como Validation)

•eXit: Resultados a obtener

Page 27: Introducción a la Ingeniería de Software...Modelos de Proceso de Software •Prescripciones de la forma en que el desarrollo de software debería llevarse a cabo. •Descripciones

Modelado de Proceso

¿Para qué?

•Entender el proceso (real o propuesto) Revelar inconsistencias, problemas (base para la mejora)

•Simulación del proceso y planificación del proyecto Poco nivel de detalle adicional necesario

Factores que afectan la productividad global.

Relaciones (cuantificadas) entre los factores.

Soportados por sw que simulan el proceso.

•Guía en la ejecución real del proceso Se precisa agregar múltiples detalles