33
Modelos de Procesos de desarrollo de Software POR MARIO ROSSAINZ LÓPEZ INGENIERIA DE SOFTWARE OTOÑO 2021

Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

  • Upload
    others

  • View
    6

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelos de Procesos de desarrollo de SoftwarePOR MARIO ROSSAINZ LÓPEZINGENIERIA DE SOFTWAREOTOÑO 2021

Page 2: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelo de Proceso Secuencial Lineal

• Modelo de Cascada

Page 3: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

• Modelo de Cascada (CARACTERÍSTICAS):

• Los requerimientos son bien comprendidos y una vez definidos no cambian.

• El trabajo desde la definición de requerimientos y hasta la etapa de operación y mantenimiento fluyen de manera lineal

• El modelo de cascada sugiere un enfoque sistemático y secuencial

• Es un proceso dirigido por un plan, es decir, se deben planear y programar todas las actividades del proceso antes de comenzar a trabajar con ellas

Modelo de Proceso Secuencial Lineal

Page 4: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelo de Proceso Secuencial Lineal

• Modelo en V (variante de cascada) •Relación entre las acciones para el aseguramientode la calidad y aquellas asociadas con lacomunicación, modelado y construccióntemprana.•A medida que el equipo de software avanza haciaabajo desde el lado izquierdo de la V, losrequerimientos básicos del problema mejoranhacia representaciones técnicas cada vez másdetalladas del problema y de su solución.•Una vez que se ha generado el código, el equiposube por el lado derecho de la V, y en esenciaejecuta una serie de pruebas (acciones paraasegurar la calidad) que validan cada uno de losmodelos creados cuando el equipo fue hacia abajopor el lado izquierdo.

Page 5: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelo de Proceso Incremental

•Combina elementos de los flujos deproceso lineal en paralelo aplicandosecuencias lineales en formaescalonada a medida que avanza elcalendario de actividades. Cadasecuencia lineal produce“incrementos” de softwaresusceptibles de entregarse.

•El modelo de proceso incrementalse centra en que en cadaincremento se entrega un productoque ya opera.

Page 6: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelos de Proceso Evolutivo

• Modelo de Prototipos •Es frecuente que un cliente defina un conjuntode objetivos generales para el software, pero queno identifique los requerimientos detallados paralas funciones y características.

•En otros casos, el desarrollador tal vez no estéseguro de la eficiencia de un algoritmo, de laadaptabilidad de un sistema operativo o de laforma que debe adoptar la interacción entre elhumano y la máquina.

•El rápido desarrollo iterativo del prototipo esesencial, de modo que se controlen los costos, ylos interesados en el sistema experimenten poranticipado con el prototipo durante el proceso desoftware.

Page 7: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelos de Proceso Evolutivo

• Modelo de EspiralPropuesto en primer lugar por Barry Boehm, el modelo espiral es un modelo evolutivo del proceso del software y se acopla con la naturaleza iterativa de hacer prototipos con los aspectos controlados y sistémicos del modelo de cascada. Tiene el potencial para hacer un desarrollo rápido de versiones cada vez más completas. Con el empleo del modelo espiral, el software se desarrolla en una serie de entregas evolutivas.Durante las primeras iteraciones, lo que se entrega puede ser un modelo o prototipo. En las iteraciones posteriores se producen versiones cada vez más completas del sistema cuya ingeniería se está haciendo.

Page 8: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelo de desarrollo basado en componentes

•Incorpora muchas de lascaracterísticas del modeloespiral.

•Es de naturaleza evolutiva ydemanda un enfoque iterativopara la creación de software.

•Construye aplicaciones apartir de fragmentos desoftware prefabricados.

•El modelo del desarrollobasado en componentes lleva ala reutilización del software

Page 9: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelo de Métodos Formales

Requirementsdefinition

Formalspecification

Formaltransformation

Integration andsystem testing

R2Formal

specificationR3

Executableprogram

P2 P3 P4

T1 T2 T3 T4

Proofs of transformation correctness

Formal transformations

R1

P1

•Agrupa actividades que llevan ala especificación matemáticaformal del software decómputo.•Los métodos formalespermiten especificar, desarrollary verificar un sistema basado encomputadora por medio delempleo de una notaciónmatemática rigurosa.

•El modelo de métodosformales promete un softwarelibre de defectos•Con éste modelo, se obtiene unmecanismo para eliminarmuchos de los problemasdifíciles de vencer con otrosparadigmas de la ingeniería desoftware

Page 10: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Proceso Unificado de Desarrollo de Software (PUDS) •Es un proceso de desarrollo de software

impulsado por casos de uso, centrado en laarquitectura, iterativo e incremental

•Es un modelo adhoc para construirsoftware bajo el paradigma de laorientación a objetos

•El PUDS basa su análisis de requisitos ydiseño en el uso del Lenguaje de ModeladoUnificado o UML

•El PUDS ha sido adoptado por la empresaRational Rose la cual ha colocado en elmercado de la Ingeniería de Softwareherramientas CASE para modelado en UMLbasado en la metodología Rational UnifiedProcess (RUP)

Page 11: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Proceso Unificado de Desarrollo de Software (PUDS)

Page 12: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Rational Unified Process (RUP)

Page 13: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Personal Software Process (PSP)•Todo desarrollador utiliza algún procesopara elaborar software de cómputo. Elproceso puede ser caprichoso o ad hoc;quizá cambie a diario; tal vez no seaeficiente, eficaz o incluso no sirva; pero síexiste un “proceso”.

•Watts Humphrey sugiere que a fin decambiar un proceso personal ineficaz, unindividuo debe pasar por cuatro fases, cadauna de las cuales requiere capacitación einstrumentación cuidadosa .

•El proceso personal del software (PPS) poneel énfasis en la medición personal tanto delproducto del trabajo que se genera como desu calidad

Page 14: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

• ACTIVIDADES ESTRUCTURALES:

Personal Software Process (PSP)

Page 15: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Team Software Process (TSP) El objetivo del TSP es construir un equipo“autodirigido” para el proyecto, que seorganice para producir software de altacalidad. Humphrey define los objetivossiguientes para TSP:1. Formar equipos autodirigidos que

planeen y den seguimiento a sutrabajo, que establezcan metas y quesean dueños de sus procesos yplanes.

2. Mostrar a los gerentes cómo dirigir ymotivar a sus equipos y cómoayudarlos a mantener unrendimiento máximo.

3. Acelerar la mejora del proceso delsoftware.

4. Brindar a las organizaciones muymaduras una guía para la mejora.

5. Facilitar la enseñanza universitaria deaptitudes de equipo con gradoindustrial.

Page 16: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Capability Maturity Model Integration - CMMI

Page 17: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

• Es el Modelo de Madurez delas Capacidades del Personalen una organización que llevaa cabo el desarrollo deprocesos relativos aldesarrollo e implementacióndel software

• Fue desarrollado por laUniversidad de Carnigie-Mellon para el SoftwareEngineering Institute en elaño de 1986

Capability Maturity Model Integration - CMMI

Page 18: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

PSP

TSP

P-CMM

CMMI

Personas

Equipos de trabajo

Trabajadores

Empresa

Capability Maturity Model Integration - CMMI

Page 19: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Se caracterizan por ser la negación de lascaracterísticas de los ciclos de vidaconvencionales.

Modelos de Procesos Ágiles

Page 20: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

AÑO 2001: 16 notables desarrolladores,escritores y consultores conocidos como la“Alianza Ágil” firman el “Manifiesto para eldesarrollo ágil del software” centrado en 4valores.

MANIFIESTO ÁGIL DE SOFTWARE.

Page 21: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Los 12 principios:

MANIFIESTO ÁGIL DE SOFTWARE.

Page 22: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Tres suposiciones clave sobre los proyectos software:

1. Resulta difícil predecir cuáles requisitos del softwarepersistirán y cuáles cambiarán (cambio en las prioridades

delacliente)

2. El diseño y la construcción del software estánintercalados

3. El análisis, diseño y construcción no son predecibles(desde el punto de vista de la planeación)

¿QUÉ ES UN PROCESO AGIL?.

Page 23: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿QUÉ ES UN PROCESO AGIL?.

Factores Humanos:

“El desarrollo ágil se centra en los talentos y las habilidades de los individuos, puesto que el proceso se ajusta a personas y a equipos específicos”

Page 24: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿QUÉ ES UN PROCESO AGIL?.

Factores Humanos:

Page 25: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿QUÉ ES UN PROCESO AGIL?.

Factores Humanos:

Page 26: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿QUÉ ES UN PROCESO AGIL?.

Factores Humanos:

Page 27: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Combina una filosofía y un conjunto de directrices de desarrollo

Ingeniería de Software Ágil

Filosofía:

- Busca la satisfacción del cliente y la entrega temprana delsoftware incremental

- Equipos de proyecto pequeños y con alta motivación

- Métodos informales

- Mínimo de productos de trabajo

- Simplicidad general del desarrollo

Page 28: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿Quiénes la hacen?

Ingeniería de Software Ágil

-Ingenieros de software-Gerentes-Clientes-Usuarios finales

Trabajan juntos en un equipo con organización propia yque controla su propio destino, fomenta la comunicación ycolaboración entre todos los que trabajan en él: EQUIPOÁGIL.

Page 29: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿Porqué es importante?

Ingeniería de Software Ágil

Actualmente los sistemas basados en computadoras y los productos de software están acelerados y en un cambio continuo.

La Ingeniería de Software Ágil representa una alternativa a la Ingeniería convencional para ciertas clases de software y ciertos tipos de proyectos

Page 30: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿Cuáles son los pasos?

Ingeniería de Software Ágil

1. Comunicación con el cliente2. Planeación3. Modelado4. Construcción5. Entrega6. Evolución

Lo anterior como un conjunto mínimo de tareas que empuja al equipo del proyecto hacia la construcción y la entrega

Page 31: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿Cuál es el producto obtenido?

Ingeniería de Software Ágil

El único producto de trabajo realmente importante es “un incremento de software” en funcionamiento, el cual se entrega al cliente en una fecha prometida

Page 32: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

¿Cómo puedo estar seguro de que se ha hecho correctamente?

Ingeniería de Software Ágil

Si el equipo de software esta de acuerdo en que el proceso funciona y dicho equipo produce incrementos de software entregables que satisfacen al cliente, entonces el trabajo esta bien hecho.

Page 33: Modelos de Procesos de desarrollo de Softwarerossainz.cs.buap.mx/ingSw/2_Diapositivas_Otonio2021/2... · 2021. 7. 24. · Modelo de Proceso Secuencial Lineal •Modelo en V (variante

Modelos ágiles de procesos