Está en la página 1de 77

Modelos de Procesos de

Desarrollo de Software
NRC: 9386 – Ingeniería de Software

Profesor: Dr. Santiago Jácome


Octubre 2022

22/11/2022 1
22/11/2022 2
Contenido
Unidad 1: Introducción al Proceso de Desarrollo de Software
1. Introducción al proceso de desarrollo de software
2. Modelos de proceso prescriptivo
3. Modelos de proceso especializado
4. Estándares para evaluación y mejora de procesos
5. Metodologías de desarrollo de software (tradicionales-ágiles)
6. Herramientas de modelado

Unidad 2:Ciclo de Vida del Proceso de Desarrollo de Software

1. CMMI
2. Evaluación de CMMI con SCAMPI

Unidad 3: Evaluación del proceso de desarrollo

1. ISO/IEC12207
2. ISO/IEC 15504 (SPICE)
3. ISO/IEC 29910

22/11/2022 3
Unidad 1: Proceso de desarrollo de software

1.1 Introducción al Proceso de


desarrollo de software

22/11/2022 4
Unidad 1: Proceso de desarrollo de software
Evolución del desarrollo de sistemas

22/11/2022 5
Unidad 1: Proceso de desarrollo de software
Tendencias de tecnologías a partir del 2000
 Inteligencia artificial
 Procesamiento de lenguaje natural, big data, automatización, etc.
 Aplicaciones web/móviles
 IoT
 Computación en la nube: IAAS, SAAS, PAAS
 Metodologías: DevOps
 Aplicaciones móviles
 Realidad Virtual – Aumentada
 Lenguajes de programación: aspectos/funcional  Go
 .
 .
 .
 .

22/11/2022 6
Unidad 1: Proceso de desarrollo de software

Tarea 1: Tendencias tecnológicas en el Desarrollo de Software

 En una diapositiva señalar una tendencia de desarrollo de software que considere


relevante. Realizar su descripción.

22/11/2022 7
Unidad 1: Proceso de desarrollo de software
Terminología: evaluación de conceptos
 ¿Qué es un sistema?

 ¿Qué es software?

 ¿Qué es Ingeniería de Software?

 ¿Qué es Proceso de desarrollo de software?

 ¿ Qué es Producto software?

 ¿Qué es Stakeholder?

 ¿Qué es un Estándar?

 ¿Qué es la Abstracción?

 ¿Qué es la Modelado?

 ¿Qué es un Proyecto de software?

Referencia:
ISO/IEC/IEEE 24765:2017 (Systems and software engineering - Vocabulary)
22/11/2022 8
Evaluación de conceptos

 Sistema: una combinación de elementos que interactuan para lograr un


objetivo definido.
 Software: programas, procedimientos, reglas y documentación asociada de
un sistema de procesamiento de información.
 Ingeniería de Software: aplicación sistemática de conocimientos científicos
y tecnológicos, métodos y experiencia al análisis, diseño, implementación,
prueba, operación, mantenimiento y documentación del software.
 Proceso de desarrollo de software: proceso por el cual las necesidades
del usuario se traducen en un producto de software.
 Producto software: conjunto de programas computacionales,
procedimientos con su documentación asociada y sus datos.

22/11/2022 9
Evaluación de conceptos

 Stakholder: individuo u organización que tiene derecho, participación o


interés en un sistema que satisface sus necesidades y expectativas.
 Estándar: un documento que proporciona para uso común, reglas, pautas o
características para actividades o sus resultados, dirigidos al logro del grado
óptimo de orden en un contexto dado.
Ejemplo:
ISO/IEC 12207 - Information Technology / Software Life Cycle Processes
PMBOK® Guide – Guía del Cuerpo de conocimiento de gestión de proyectos.
 Abstracción: una vista de un objeto que se centra en la información
relevante para un propósito particular e ignora el resto de la información.
 Modelo: es una representación de un proceso del mundo real, dispositivo o
concepto.
22/11/2022 10
Evaluación de conceptos
Proyecto de software
 Es un conjunto de actividades laborales, tanto técnicas como gerenciales,
requeridas para satisfacer los términos y condiciones de un acuerdo de
proyecto.
 Un proyecto de software debe tener fechas de inicio y finalización
específicas, objetivos y limitaciones bien definidos, responsabilidades
establecidas y un presupuesto y cronograma.
 Un proyecto de software puede ser autónomo o puede ser parte de un
proyecto más grande.
 En algunos casos, un proyecto de software puede abarcar solo una parte
del ciclo de desarrollo de software.
 En otros casos, un proyecto de software puede abarcar muchos años y
constar de numerosos subproyectos, cada uno de ellos bien definido y
autónomo.

22/11/2022 11
Los proyecto de desarrollo de software
 Exitosos: Son aquellos en los que no hay duda de que fueron un éxito
 Discutidos: Son aquellos en los que hay dudas sobre si tuvieron éxito o
fueron un fracaso
 Fallidos: Son aquellos en los que no hay duda de que fueron un fracaso

En el informe del año 2015 se han estudiado unos 50.000 proyectos de todo el mundo desde
mantenimientos pequeños hasta gigantescos proyectos de reingeniería.
Informe del Caos 2015 (Chaos Report 2015)
22/11/2022 12
Proceso de desarrollo de software
Introducción

Proceso de desarrollo de software

 necesidad
 resultado
 problema
 solución
 idea
(software)
 oportunidad

TRANSFORMACIÓN DIGITAL

A B
Proceso de desarrollo de software: proceso por el cual las
necesidades del usuario se traducen en un producto de software.

22/11/2022 13
Proceso de desarrollo de software
Introducción

 necesidad  resultado
 problema  solución
 idea (software)
 oportunidad

A TRANSFORMACIÓN DIGITAL B
Proceso de desarrollo de software

 qué hacer?
 cómo hacer?
 quién lo realiza?
 qué recursos utilizar?
 qué procesos?
 qué herramientas?
 qué estándares?
22/11/2022
 …. 14
Proceso de desarrollo de software

El proceso de desarrollo de software aborda dos perspectivas:

1. Dominio del Problema: cubre los aspectos relacionados con


el dominio de la aplicación (problema), vinculada a los aspectos
que le interesan al usuario final del sistema.

2. Dominio de la Solución: relacionada con la tecnología


software utilizada para implementar el sistema.

22/11/2022 15
Proceso de desarrollo de software

 necesidad
 problema  resultado
 idea  solución
 oportunidad (software)

A B
Proceso de desarrollo de software

Dominio del Problema Dominio de la Solución

22/11/2022 16
Proceso de desarrollo de software
 El desarrollo de software básicamente consiste en la capacidad de
representar de forma adecuada el dominio del problema, para posteriormente
trasformar esta representación en la implementación del código en una
determinada tecnología (dominio de la solución).

22/11/2022 17
Proceso de desarrollo de software
Evolución de los artefactos software
 Una de las enfoques de desarrollar software es el modelado (utilización de
modelos para representar los diferentes vistas del software).
 En este enfoque, los modelos se utilizan para razonar sobre el dominio de
problema y diseñar un resultado en el dominio de la solución.

En el contexto de MDE (Ingeniería Dirigida por Modelos) el término


abstracción especifica la medida en que un modelo o lenguaje de
modelado está orientado a la tecnología de la solución.
22/11/2022 18
Proceso de desarrollo de software
De manera simplificada, el proceso de desarrollo de software puede verse como
una transformación hacia la solución técnica de determinada problemática u
oportunidad.

 necesidad
 resultado
 problema
 solución
 idea
(software)
 oportunidad
transformación

A B
Proceso de desarrollo de software

Dominio del Problema Dominio de la Solución

22/11/2022 19
Proceso de desarrollo de software
Introducción

Versiones intermedias y finales del producto software

22/11/2022 20
Proceso de desarrollo de software

1. Un proceso de desarrollo de software define quién esta haciendo


qué, cuándo, y cómo alcanzar un determinado objetivo.

2. El objetivo de un proceso de desarrollo de software es desarrollar


software que se ajuste a las necesidades del cliente.

3. Captura y presenta las mejores prácticas que el estado actual de la


tecnología permite.

4. Un proceso efectivo proporciona normas (estándares) para el


desarrollo eficiente de software de calidad.

22/11/2022 21
Proceso de desarrollo de software

Las normas son un modelo, un patrón, ejemplo o criterio a seguir.

22/11/2022 22
Proceso de desarrollo de software

5. Reduce el riesgo y hace el proyecto de desarrollo más


predecible.

6. El efecto global es el fomento de una visión y una cultura


comunes para el desarrollo o mantenimiento de software.

7. Es necesario un proceso que sirva como guía para todos los


participantes: clientes, usuarios, desarrolladores y directores
ejecutivos.

8. Es necesario por tanto, un proceso como un lenguaje (por


ejemplo UML) para poder obtener una aplicación de calidad.

22/11/2022 23
Proceso de desarrollo de software

https://digital.ai/periodic-table-of-devops-tools

22/11/2022 Revisión: https://es.wikipedia.org/wiki/Lenguaje_unificado_de_modelado 24


Unidad 1: Proceso de desarrollo de software

1.2 Modelos de desarrollo de


software

22/11/2022 25
Unidad 1: Proceso de desarrollo de software

1.2.1 Fases del Ciclo de Vida del


desarrollo de Software

22/11/2022 26
Fases del Ciclo de Vida del Desarrollo de Software

¿Qué es un Ciclo de Vida de Desarrollo de Software?

 En inglés Software Development Life Cycle (SDLC).


 Simplemente llamado “Ciclo de desarrollo de software”.
 Es el período de tiempo que comienza con la decisión de desarrollar un
producto de software y termina cuando el software está entregado.
 Considera varias fases o etapas: requisitos, análisis, diseño,
implementación (codificación, construcción, desarrollo), prueba, instalación
(implantación, despliegue), mantenimiento.
 Las fases enumeradas anteriormente pueden superponerse o realizarse de
forma iterativa, dependiendo del enfoque de desarrollo de software utilizado.

22/11/2022 27
Fases del Ciclo de Vida del Desarrollo de Software

22/11/2022 28
Fases del Ciclo de Vida del Desarrollo de Software

22/11/2022 29
Etapas del proceso de solución de problemas

La primera etapa para resolver un problema fue analizarlo.


Para facilitar este estudio, se debe descomponer el
problema en las tres partes ya señaladas.

Posteriormente se deben realizar las siguientes


actividades:

1. Análisis del problema:


(Dominio del Problema)
1. El objetivo de esta etapa es detallar el problema y
especificarlo formalmente (documentarlo).

2. Asociado con la pregunta ¿qué va a hacer el


software?

3. Al terminar, deben estar especificados los


requerimientos funcionales, debe estar establecida la
información del mundo del problema y deben estar
definidos los requerimientos no funcionales.
22/11/2022 30
Etapas del proceso de solución de problemas

 Es importante señalar que el problema puede ser muy grande.


Por ejemplo: sistema de información de una empresa.

 Los requerimientos no funcionales pueden ser críticos.


Por ejemplo, el sistema va a ser utilizado simultáneamente por cincuenta
mil usuarios.
El desarrollo se hace en equipo, entre veinte ingenieros
trabajando al mismo tiempo.

 En ocasiones es necesario adaptar las etapas y la manera de trabajar


dependiendo del proyecto.

 Cada una de las etapas de desarrollo está apoyada por herramientas y


lenguajes.

22/11/2022 31
Especificación de un Problema
En el problema se deben identificar tres aspectos:

1. Requerimiento funcional: hace referencia a un servicio que el


programa debe proveer al usuario.
2. El mundo (contexto) del problema: debe entender algunas
aspectos de la estructura y funcionamiento de la empresa para que
se va a desarrollar.
Ej: políticas para calcular el salario, normas y reglamentos de la empresa.

3. Requerimiento no funcional: al definir un problema , se debe


identificar y registrar las restricciones o condiciones que impone el
cliente al programa que se le va a construir.
Ej: una restricción podría ser el tiempo de entrega del programa o la cantidad
de usuarios simultáneos que lo deben poder utilizar.

22/11/2022 32
Especificación de un Problema

 Analizar un problema es tratar de entenderlo.


 Esta etapa busca garantizar que no tratemos de resolver un
problema diferente al que tiene el cliente.
 Descomponer el problema en sus tres aspectos fundamentales,
facilita la tarea de entenderlo. Esto simplifica el trabajo.
 Además de entender el problema, debemos expresar lo que
entendemos siguiendo algunas convenciones.
 Al terminar la etapa de análisis debemos generar un conjunto de
documentos que contendrán nuestra comprensión del problema.
 Con dichos documentos podemos validar nuestro trabajo,
presentándolo al cliente para discutirlo.

22/11/2022 33
Especificación de un Problema

22/11/2022 34
Etapas del proceso de solución de problemas
2. Diseño de la solución:
(Dominio de Solución – comienza)

 Asociado con la pregunta ¿cómo se va a


solucionar el problema a través del
software?

 El objetivo es detallar, usando algún


lenguaje de modelado (planos, dibujos,
ecuaciones, diagramas, texto, etc.) las
características que tendrá la solución antes
de ser construida.

 Los diseños nos van a permitir mostrar la


solución antes de comenzar el proceso de
construcción propiamente dicho.

 Es importante destacar que dicha


especificación es parte integral de la
solución.
22/11/2022 35
Etapas del proceso de solución de problemas
2. Diseño de la solución

El diseño es una actividad iterativa


hasta encontrar una solución

22/11/2022 36
Etapas del proceso de solución de problemas
2. Diseño de la solución

Entradas y salidas de la etapa de diseño

22/11/2022 37
Etapas del proceso de solución de problemas

3. Construcción de la solución:
 Tiene como objetivo implementar el programa a partir del diseño y probar su
correcto funcionamiento.

22/11/2022 38
3. Construcción de la solución:

22/11/2022 39
Etapas del proceso de solución de problemas

3. Construcción de la solución

22/11/2022 40
Etapas del proceso de solución de problemas
3. Construcción de la solución

Ejemplo de la estructura de directorios dentro


de un proyecto de desarrollo

22/11/2022 41
Fases del Ciclo de Vida del Desarrollo de Software

4. Pruebas
Busca defectos (faltas y fallos) en los productos (Req. Dsñ. Cdg) del desarrollo.

Actividades de control y garantía de


calidad del software

Preventivas Correctivas
(Evaluación de sw)

Buenos hábitos Análisis estático Análisis dinámico


de construcción (pruebas)
del software
(metodologías, - Examen en reposo
etc.) - Aspectos estáticos - Examen resultado
- Cualquier producto sw funcionamiento del sw
- Aspectos dinámicos
22/11/2022 - Solamente código
42
Fases del Ciclo de Vida del Desarrollo de Software

Herramientas de Testing

22/11/2022 43
Fases del Ciclo de Vida del Desarrollo de Software

5. Despliegue (implantación - liberación)


(Dominio de Solución – finaliza)

El Despliegue de software son todas las actividades que hacen que un


sistema de software esté disponible para su uso.

22/11/2022 44
Fases del Ciclo de Vida del Desarrollo de Software

5. Mantenimiento:
 Es la modificación de un producto de software después de la entrega, para
corregir errores, mejorar el rendimiento, u otros atributos.

 El mantenimiento del software es una de las actividades más comunes en la


ingeniería de software.

 La fase de mantenimiento es la fase que viene después del despliegue


(implementación) del software.

22/11/2022 45
Proceso de desarrollo de software

Ingeniería
del software

Desarrollo Gestión de Metricas Mantenimiento


de Software proyectos del software de software
Analisis Planificación Fiabilidad Corrección de Errores
Diseño Organización Usabilidad Modificaciones
Codificación Reclutamiento Flexibilidad
Pruebas Dirección Mantenibilidad
Control Reusabilidad
Etc.

22/11/2022 46
Unidad 1: Proceso de desarrollo de software

1.2.2 Modelo general de proceso


de desarrollo de software
ISO 29110
ISO/IEC/IEEE 12207
ISO/IEC 15504
CMMI
MOPROSOFT
PMBOOK

22/11/2022 47
Unidad 1: Proceso de desarrollo de software
Capas de la Ingeniería de Software

22/11/2022 48
Unidad 1: Proceso de desarrollo de software
Modelo general de Proceso de
Desarrollo de Software

Proceso:

 Es una colección de actividades de


trabajo, acciones y tareas que se
realizan cuando va a crearse algún
producto terminado.

 Cada una de las actividades, acciones


y tareas se encuentra dentro de una
estructura o modelo que define su
relación tanto con el proceso como
entre sí.

22/11/2022 49
Unidad 1: Proceso de desarrollo de software
Modelo general de Proceso de
Desarrollo de Software
Proceso:

 La estructura general para la


ingeniería de software define cinco
ACTIVIDADES ESTRUCTURALES:
comunicación, planeación, modelado,
construcción y despliegue.

 Además, a lo largo de todo el proceso


se aplica un conjunto de actividades
sombrilla: seguimiento y control del
proyecto, administración de riesgos,
aseguramiento de la calidad,
administración de la configuración,
revisiones técnicas, entre otras.

22/11/2022 50
Unidad 1: Proceso de desarrollo de software
Proceso del software
Una actividad busca lograr un objetivo
amplio (por ejemplo, comunicación con
los participantes para levantar los
requerimientos) y se desarrolla sin
importar el dominio de la aplicación,
tamaño del proyecto, complejidad del
esfuerzo o grado de rigor con el que se
usará la ingeniería de software.

22/11/2022 51
Unidad 1: Proceso de desarrollo de software
Proceso del software

Una acción (diseño de la


arquitectura) es un conjunto de tareas
que producen un producto importante
del trabajo (por ejemplo, un modelo
del diseño de la arquitectura).

22/11/2022 52
Unidad 1: Proceso de desarrollo de software
Proceso del software

Una tarea se centra en un objetivo


pequeño pero bien definido (por
ejemplo, realizar una prueba unitaria)
que produce un resultado tangible.

22/11/2022 53
Unidad 1: Proceso de desarrollo de software
Flujo del Proceso
El Flujo de Proceso describe la manera en que están organizadas las
actividades estructurales y las acciones, así cómo las tareas que ocurren
con respecto de la secuencia y el tiempo.

Existen varios enfoques:

1. Flujo de Proceso Lineal


2. Flujo de Proceso Iterativo
3. Flujo de Proceso Evolutivo
4. Flujo de Proceso Paralelo

22/11/2022 54
Unidad 1: Proceso de desarrollo de software
Flujo del Proceso

22/11/2022 55
Unidad 1: Proceso de desarrollo de software
Flujo del Proceso

22/11/2022 56
Unidad 1: Proceso de desarrollo de software
Flujo del Proceso

22/11/2022 57
Unidad 1: Proceso de desarrollo de software
Flujo del Proceso

22/11/2022 58
Unidad 1: Proceso de desarrollo de software

1.2.3 Modelos de proceso


prescriptivo

Referencia:
Pressman Roger, “Ingeniería de Software, Un enfoque práctico”, Séptima edición.

22/11/2022 59
Unidad 1: Proceso de desarrollo de software
1.2.3 Modelos de proceso prescriptivo
 Los modelos de proceso prescriptivo fueron propuestos originalmente para
poner orden en el caos del desarrollo de software.

 Se los llama “prescriptivos” porque prescriben (ordenar las cosas) un


conjunto de elementos del proceso: actividades estructurales, acciones de
ingeniería de software, tareas, productos del trabajo, aseguramiento de
la calidad y mecanismos de control del cambio para cada proyecto.

 Cada modelo del proceso también prescribe un flujo del proceso (también
llamado flujo de trabajo), es decir, la manera en la que los elementos del
proceso se relacionan entre sí.

 Todos los modelos del proceso del software pueden incluir las actividades
estructurales generales, pero cada una pone distinto énfasis en ellas y define
en forma diferente el flujo de proceso que invoca cada actividad estructural,
acciones y tareas de ingeniería de software.

22/11/2022 60
Modelos del ciclo de vida de Desarrollo de Software

Modelo en cascada (Waterfall model)

22/11/2022 61
Modelos del ciclo de vida de Desarrollo de Software

Modelo en cascada (Waterfall model)

1. Modelo del proceso de desarrollo de software en el que las actividades a


desarrollar se realizan en forma secuencial.
2. En forma estricta este modelo señala que sólo cuando se finaliza una fase,
comienza la otra.
3. En ocasiones se realiza una revisión antes de iniciar la siguiente fase, lo que
permite la posibilidad de cambios.
4. Este modelo desaconseja volver a revisar fases que ya se han completado.
5. Esta falta de flexibilidad en un modelo de cascada puro ha sido fuente de
crítica de los defensores de modelos más flexibles.

22/11/2022 62
Modelos del ciclo de vida de Desarrollo de Software
Modelo en cascada (Waterfall model)
Ventajas

 Fácil de entender.
 Se definen todos los requisitos antes del diseño.
 Se utiliza para proyectos con plazos simples y estrictos.

Desventajas

 Idealizado.
 Los problemas permanecen ocultos hasta las prueba del
código.
 Entrega tardía.
 No es fácil integrar la gestión de riesgos.
 Difícil de hacer cambios.

22/11/2022 63
Modelos del ciclo de vida de Desarrollo de Software

Modelo V

22/11/2022 64
Modelos del ciclo de vida de Desarrollo de Software

Modelo V
 Es una extensión del modelo en cascada.
 En el modelo en cascada, nos movemos de forma lineal.
 En el modelo V se “dobla” en la etapa de codificación.
 A cada fase del proceso de desarrollo se le asocia su prueba
correspondiente.
 El modelo V se centra más en las pruebas (no solo del código).
 Es un modelo secuencial como el de cascada.
 Los requisitos deben ser muy claros porque es muy costoso volver a los
requisitos y realizar cambios.

22/11/2022 65
Modelos del ciclo de vida de Desarrollo de Software
Modelo V
Ventajas

 Gran cantidad de análisis de riesgos.


 Bueno para proyectos críticos.
 Producción temprana.
 Fácil de manejar debido a la rigidez del modelo.
 Fácil de entender.

Desventajas

 No adecuado para proyectos largos y en curso.


 No es adecuado si los requisitos tienen un alto riesgo de cambio.
 Puede ser un modelo costoso.
 No funciona bien para proyectos pequeños.

22/11/2022 66
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso incremental

22/11/2022 67
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso incremental

 Utilizado cuando exista la necesidad imperiosa de dar rápidamente


cierta funcionalidad limitada de software a los usuarios y aumentarla
en las entregas posteriores de software.

 El modelo incremental aplica secuencias lineales en forma escalonada


a medida que avanza el calendario de actividades.

 Cada secuencia lineal produce “incrementos” de software susceptibles


de entregarse de manera parecida a los incrementos producidos en un
flujo de proceso evolutivo.

22/11/2022 68
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso incremental - EJEMPLO

Software para procesar textos que se elabore con el paradigma


incremental:

 Primer incremento: entregue de las funciones básicas de


administración de archivos, edición y producción del documento.
 Segundo incremento: implementar herramientas más sofisticadas de
edición y producción de documentos.
 Tercer incremento: habrá separación de palabras y revisión de la
ortografía.
 Cuarto incremento: se proporcionará la capacidad para dar formato
avanzado a las páginas.

Debe observarse que el flujo de proceso para cualquier incremento puede


incorporar el paradigma del prototipo.
22/11/2022 69
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso incremental


 Cuando se utiliza un modelo incremental, es frecuente que el primer
incremento sea el producto fundamental. Es decir, se abordan los
requerimientos básicos, pero no se proporcionan muchas características
suplementarias(algunas conocidas y otras no).

 El cliente usa el producto fundamental (o lo somete a una evaluación


detallada).

 Como resultado del uso y/o evaluación, se desarrolla un plan para el


incremento. El plan incluye la modificación del producto fundamental para
cumplir mejor las necesidades del cliente, así como la entrega de
características adicionales y más funcionalidad.

 Este proceso se repite después de entregar cada incremento, hasta terminar


el producto final.

22/11/2022 70
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso incremental


 El modelo de proceso incremental se centra en que en cada incremento se
entrega un producto que ya opera.

 Los primeros incrementos son versiones limitadas del producto final, pero
proporcionan capacidad que sirve al usuario y también le dan una plataforma
de evaluación.

 El desarrollo incremental es útil en particular cuando no se dispone de


personal para la implementación completa del proyecto en el plazo establecido
por el negocio.

 Los primeros incrementos se desarrollan con pocos trabajadores. Si el


producto básico es bien recibido, entonces se agrega más personal (si se
requiere) para que labore en el siguiente incremento.

22/11/2022 71
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso evolutivo: Prototipado y Espiral

Evolutivo: Prototipado Evolutivo: Espiral

22/11/2022 72
Modelos del ciclo de vida de Desarrollo de Software

Modelo de proceso evolutivo

 El software como todos los sistemas complejos, evoluciona en el tiempo.

 Es frecuente que los requerimientos del negocio y del producto cambien


conforme avanza el desarrollo, lo que hace que no sea realista, el trazar una
trayectoria rectilínea hacia el producto final.

 En estas situaciones y otras parecidas se necesita un modelo de proceso


diseñado explícitamente para adaptarse a un producto que evoluciona con el
tiempo.

 Los modelos evolutivos son iterativos, ya que permiten desarrollar versiones


cada vez más completas del software.

22/11/2022 73
Modelos del ciclo de vida de Desarrollo de Software

Modelo de Prototipado (Prototyping Model)


 Ideal cuando se conocen los objetivos del
software pero no plenamente sus
requerimientos.
 Es un modelo de proceso evolutivo.
 Son modelos de tipo iterativo.
 El desarrollador puede desarrollar una
versión cada vez más completa del software.
 El desarrollador tiene que diseñar
rápidamente el software después de reunir
los requisitos.
 Permitir la retroalimentación permanente y el
soporte del proceso de desarrollo.
 El ideal es que el prototipo sirva como
mecanismo para identificar los
requerimientos del software.
Un Prototipo es una técnica de desarrollo de software en la que se desarrolla
una versión preliminar de parte o la totalidad del software para permitir la
retroalimentación de los usuarios y poder determinar su viabilidad.
22/11/2022 74
Modelos del ciclo de vida de Desarrollo de Software

Modelo de Prototipado (Prototyping Model)


Ventajas

 Visibilidad temprana.
 Mejores resultados.
 Reducción de costos.
 El cliente realmente puede constatar el
sistema para realizar la retroalimentación
(feedback) que se considere.
 Diseño temprano.

Desventajas

 No apto para grandes sistemas.


 El prototipo sirve como “el primer sistema”, un
 Gestión un tanto complicada sistema evolutivo; es decir, poco a poco se
(versionamiento de artefactos). transforman en el sistema real.

 En ocasiones este prototipo es desechado.

22/11/2022 75
Modelos del ciclo de vida de Desarrollo de Software

Modelo en espiral (Spiral model)


 Desarrollado a fines de la década
de 1980 (Barry Boehm).
 Es un modelo evolutivo e
iterativo.
 El desarrollo es iterativo hasta
que el software se completa.
 Introduce el análisis de
riesgos.
 Integración de otros modelos:
cascada, incremental y
prototipado evolutivo.
 Tiene propiedades de todos los
modelos mencionados
anteriormente. También conocido
como metamodelo.
22/11/2022 76
Modelos del ciclo de vida de Desarrollo de Software

Modelo en espiral (Spiral model)


Ventajas
 Se obtiene un nuevo
prototipo en cada iteración.
 Reutilización de
capacidades.
 Mejor productividad.
 Tiene un enfoque sistemático
por pasos.
 Eliminación de errores en la
etapa inicial.

Desventajas
 No permite la estimación
adecuada de costo y tiempo.
 El análisis del costo del
riesgo es alto en grandes
proyectos.

22/11/2022 77

También podría gustarte