Está en la página 1de 38

Modelos del Proceso de

Desarrollo de Software
Prof. Maria A. Pérez de Ovalles
mariapovalles@gmail.com
Objetivo
¡ Identificar y describir las
características de los
diferentes modelos del
procesos de desarrollo de
software
Contenido
¡ Proceso de Desarrollo de Software
¡ Modelos de Proceso de Desarrollo de Software
¡ Lineal
¡ Iterativo
¡ Evolutivo
¡ Paralelo
¡ UML
Proceso de Desarrollo de
Software

¡ Proceso es la colección de actividades de trabajo,


acciones y tareas que se realizan cuando va a
crearse un producto determinado.
¡ Es un conjunto de tareas relacionadas que generan
un resultado de valor para el cliente. Aquí las
palabras claves son: grupo, relacionadas, resultado y
cliente.
Proceso de Desarrollo de
Software
¡ Grupo: es decir en un proceso siempre
participa mas de una persona.
¡ Relacionadas: estas personas deben
comunicarse, colaborar y cooperar durante
la ejecución del proceso.
Proceso de Desarrollo de
Software
¡ Resultado: todo proceso debe generar algo.
Un documento, artefacto, producto, etc.
¡ Cliente: Todo proceso es iniciado por alguien
(cliente) quien lo invoca. Por ejemplo cuando
Usted entra en un Banco para abrir una
cuenta de ahorros, se inicia un proceso
donde Usted es el cliente
Proceso de Desarrollo de
Software
¡ Debido a que el software, como todo
capital, es conocimiento incorporado y este
conocimiento típicamente se halla disperso,
tácito, latente e incompleto en gran medida,
el desarrollo de software es un proceso de
aprendizaje social. (Baetjer, 1998)
Proceso de Desarrollo de
Software
¡ Es un proceso de desarrollo de software es complejo
y como toda actividad intelectual y creativa
depende mucho de las personas. (Somerville, 2010)
¡ No hay proceso ideal de desarrollo de software, por
regla general es afectado por el tipo de software
que se desarrolla, por quien lo desarrolla y para quien
se desarrolla.
Modelo
Que es un modelo?
¡ El término “modelo” es polisémico (tiene mas de
un significado) por lo que da lugar a
ambigüedades.

¡ Algunos de esos significados:


¡ un objeto que se reproduce al imitarlo
¡ a la muestra de un producto que se expone
para su venta
¡ búsqueda de una “perfección ideal” (los
Santos)
Que es un modelo?
¡ En la perspectiva epistemológica:
¡ El modelo puede considerarse como una
especie de descripción o representación de la
realidad (hechos, situaciones, fenómenos,
procesos, estructuras y sistemas, entre otros),
que, por lo general, está en función de unos
supuestos teóricos o de una teoría (suele
presentarse en diferentes grados de abstracción)
Que es un modelo?

¡ Por tanto, el modelo es incompleto y


nunca es el mundo real.

¡ El modelo se construye como un medio


de ayuda para estudiar la realidad.
Proceso de desarrollo del
Software
¡ Volvamos al concepto de Proceso.
¡ El que nos interesa en este curso: el proceso
de software.
¡ Un proceso de software es una secuencia de
actividades que conduce a la producción de
un producto de software.
¡ Este proceso se puede llevar a cabo de
diferentes maneras.
Proceso de desarrollo del
Software

¡ Hay cuatro actividades fundamentales que son


comunes a todos los procesos de software.

¡ Especificación del software, donde los clientes e


ingenieros definen el software que se va a producir y
las restricciones de su funcionamiento.

¡ Desarrollo del software, donde el software es diseñado


y programado.
Proceso de desarrollo del
Software

¡ Hay cuatro actividades fundamentales que


son comunes a todos los procesos de
software.

¡ Validación del software, donde se verifica el


software para garantizar que es lo que el
cliente requiere.
¡ Evolución del software, donde el software se
modifica para reflejar los requisitos
cambiantes de los clientes y del mercado.
Modelos de Proceso de
Desarrollo de Software

¡ Entonces:
¡ El desarrollo del software sigue un
proceso.
¡ Este proceso es una secuencia de
actividades.
¡ Esta secuencia se puede organizar de
diferentes maneras.
¡ A fin de optimizarla y entenderla mejor,
se formulan modelos de este
proceso….
Modelos de Proceso de
Desarrollo de Software

¡ En la historia del desarrollo del software se


han propuestos muchos modelos del
proceso de desarrollo del software.
¡ Los podemos clasificar en:
¡ Lineal
¡ Iterativo
¡ Evolutivo
¡ Paralelo
Modelo de Proceso: Lineal

•  Es el mas conocido.
•  También lo llaman “cascada”
•  Muy útil para:
•  proyectos pequeños.
•  cuando se sabe muy bien que es lo que se
quiere construir.
•  cuando se domina muy bien el lenguaje con
el cual se va a construir.
Modelo de Proceso: Iterativo

•  Son pequeñas cascadas.


•  Para proyectos grandes rebanados en trozos
•  Muy útil para:
•  cuando no se tiene claro lo que se va a construir.
•  poner en funcionamiento el software por partes.
•  cuando no se domina bien el lenguaje.
•  Es la base del desarrollo ágil.
•  Cada “cascadita” se puede conocer como un Sprint
(SCRUM) o una historia (XP).
Modelo de Proceso:
Evolutivo
Análisis de riesgo
basados en los
Recolección Planificació Análisis de Riesgo requisitos iniciales
de requisitos y n
planificación Análisis de riesgo
del proyecto basados en los
iniciales reacción del
Planificación cliente
basada en los
Decisión de seguir o
comentarios no
del cliente Hacia el sistema
final
Evaluación Prototipo inicial del
del cliente software
Evaluación Ingeniería Prototipo del
siguiente nivel
Modelo de Proceso: Evolutivo
¡  Aunque no lo parezca, es uno de los mas
viejos…..

¡  También se le conoce como modelo


“espiral” Planificación Análisis de
Riesgo

¡  Lo propuso un científico Boehn en 1972!!!!!!!

¡  Contempla cuatro fases:


¡  Planificar
¡  Analizar el riesgo
¡  Ingeniería (aquí va la cascada) Ingeniería
Evaluación
¡  Evaluación

¡  Noten, que Boehn incorpora al proceso


actividades propias de un proyecto en
general.
Modelo de Proceso: Evolutivo
¡  Cada recorrido por las cuatro fases, es lo
que hoy se conoce como una iteración.

¡  Cuando lo propuso lo consideraron un


loco….
¡  T iene las siguientes características
consideradas como inauditas en ese
momento
¡  Este modelo plantea que todo proceso de Planificación Análisis de
desarrollo de software debe ser planificado. Riesgo
Eso era una verdadera novedad!
¡  Riesgos?? Que se pensara en los riesgos??
Jamás! Hoy día ninguna metodología de
planificación de proyectos obvia los riesgos!

Ingeniería
Evaluación
Modelo de Proceso: Evolutivo
¡  Evaluar? Si, cada recorrido de la espiral
contempla que el software debe ser
evaluado como proyecto. Para decidir si se
continua o no
¡  Una espiral?? Que no termina nunca?
Como es eso? Hoy todos los software son
muestra de ello. Una pagina web por
ejemplo cada día tiene algo nuevo.
¡  Las separaciones entre las fases: son para Planificaci
ón
Análisis de
Riesgo
p l a n t e a r s e s i e l p ro y e c t o d e b e s e r
cancelado. Como???? Si, después de
planificarlo debes evaluar si el proyecto
debe seguir o no. Y así al terminar cada
fase.

¡  Boehn es considerado hoy día un genio en Ingeniería


Ingeniería de Software…. Evaluación
Modelo de Proceso:
Paralelo
Modelo de Proceso:
Paralelo

¡ Es el mas utilizado en “fabricas de software”


¡ Se basa en aquellos desarrollo que utilizan
“frameworks” de un dominio en particular. Por
ejemplo un ambiente de desarrollo para ambientes
WEB.
¡ El desarrollo de este ambiente(Que es un software)
es lo que corresponde en el modelo de Ingeniería
de Dominio, aquí el dominio es Web.
Modelo de Proceso:
Paralelo

¡ Al utilizar este ambiente de desarrollo o Framework e


instanciarlo para un software WEB para un cliente en
particular es la parte del modelo Ingeniería de
Producto.
¡ Este ambiente para desarrollos WEB solo sirve para
desarrollos WEB
¡ Si queremos especializarnos en juegos, este ambiente
no sirve…..
En resumen
¡ Hasta ahora se ha explicado qué es el proceso de
desarrollo de software.
¡ Este proceso es complejo y amerita que se hagan
modelos de él para entenderlo, mejorarlo,
optimizarlo etc.
¡ Se describieron cuatro tipos de modelos: lineal,
iterativo, evolutivo y paralelo.
¡ Además cuando desarrollemos un software
debemos seguir una metodología para su
construcción.
¡ Tooooodas las metodologías se inspiran en algún
modelo o combinación de estos!!!.
En resumen
¡ Como cada modelo tiene sus ventajas y
desventajas, cuando seleccionamos una
metodología estamos seleccionando un modelo o
combinación de estos para desarrollar software.
¡ Por ejemplo: si decidimos desarrollar el software
siguiendo una metodología como XP, estamos
implementando el modelo iterativo
¡ Eso puede traernos beneficios o no, depende del
proyecto.
En resumen

¡ Otra MEJOR PRACTICA que debemos ir


aprendiendo en este curso es el Modelado
visual de nuestro software.
¡ Por ello es que hoy comenzamos a
introducir a UML
Si no puedo dibujarlo, no lo
entiendo.

Albert Einstein
UML

u  UnifiedModeling Language (UML) es un lenguaje de


modelado visual de propósito general para sistemas.
u  No es una metodología.

u  Provee una sintaxis visual que se utiliza para construir


modelos.
u  No está “enlazado” a ninguna metodología.
UML
UML propone 13 diferentes diagramas
UML
¡  Por que 13???
¡  Representar a un software (sus planos) no puede ser en
un solo diagrama.
¡  Un software tiene mucha información sobre su
composición.

¡  De los trece son de dos tipos


¡  Diagramas Estructurales (en azul)
¡  Diagramas Dinámicos (en verde)
UML
¡ Estructural: me da información de cómo esta
organizado el código. En papel. También conocidos
como diagramas en tiempo de compilación.
¡ Dinámico: representa el comportamiento del software
en tiempo de ejecución.
UML

¡ Estructurales:
¡ Diagrama de Clases
¡ Diagrama de Componentes
¡ Diagrama de Estructura Compuesta
¡ Diagrama de Paquetes
¡ Diagrama de Despliegue
¡ Diagrama de Objetos
UML
¡ De Comportamiento:
¡ Diagrama de Casos de Uso
¡ Diagrama de Actividades
¡ Diagrama de Estados
¡ Diagrama de Iteración Global
¡ Diagrama de Secuencia
¡ Diagrama de Comunicación
¡ De tiempos
UML
¡ No los vamos a aprender todos!!!
¡ Solo los indispensables!!
¡ Deben ir instalando en sus laptos o PC una
ambiente de diagramación de UML, tal como
StarUML o LucidChart.
¡ Nuestra universidad tiene una alianza con
LucidChart
¡ Así que si se registran con el correo institucional
tendrán una buena versión.

También podría gustarte