You are on page 1of 32

Modelando el proceso y el Ciclo de Vida

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

* Significado del Proceso - seguir, escribir


* Modelos de Proceso de Software
* Herramientas y Técnicas
* Modelado en la Práctica

03/24/11 Ing. de Software 1


CH2-1
Significado del proceso
• 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).

03/24/11 Ing. de Software Modelando el Proceso -2


Siguiendo un Proceso
• Un proceso es un conjunto de
procedimientos (receta), organizado para
construir productos que satisfacen una
seria 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.
03/24/11 Ing. de Software Modelando el Proceso -3
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.

03/24/11 Ing. de Software Modelando el Proceso -4


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.

03/24/11 Ing. de Software Modelando el Proceso -5


ANALISIS DE

Modelo Cascada
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
03/24/11 Ing. de Software Modelando el Proceso -6
(Proceso de desarrollo en la
realidad) ANALISIS DE
REQUERIMIENTOS
MANTENIMIENTO
DISEÑO DEL
SISTEMA

LIBRAR AL USO

DISEÑO DE
PROGRAMAS
PRUEBA DEL
SISTEMA

IMPLEMENTACION
DE PROGRAMAS
PRUEBA DE
INTEGRACION PRUEBA UNITARIA
03/24/11 Ing. de Software Modelando el Proceso -7
Espacios del Problema y
de la Solución
Problema Solución
DISEÑO DEL
SISTEMA

ANALISIS DE DISEÑO DE Restriccione


REQUERIMIENTOS PROGRAMAS s
Tecnológica
IMPLEMENTACION s
DE PROGRAMAS

• Intentar solucionar un problema a menudo aclara el


problema
• Evaluar los atributos de calidad externos del
software (solución) requiere que exista
“comportamiento”
03/24/11 Ing. de Software Modelando el Proceso -8
ANALISIS DE Cascada
c/prototipos
REQUERIMIENTOS

DISEÑO DEL
SISTEMA
Validar
DISEÑO DE
PROGRAMAS Verificar

IMPLEMENTACION
DE PROGRAMAS

PROTOTIPADO PRUEBA UNITARIA


Y DE INTEGRACION

PRUEBA DEL
SISTEMA

PRUEBA DE
ACEPTACION
OPERACION
Y MANTENIMIENTO
03/24/11 Ing. de Software Modelando el Proceso -9
Modelo V OPERACION
ANALISIS DE Validar requerimientos
Y MANTENIMIENTO
REQUERIMIENTOS

PRUEBA DE
ACEPTACION
DISEÑO DEL
SISTEMA

PRUEBA DEL
Verificar diseño SISTEMA

DISEÑO DE PRUEBA UNITARIA


PROGRAMAS Y DE INTEGRACION

IMPLEMENTACION
03/24/11 DE PROGRAMAS
Ing. de Software Modelando el Proceso -10
Modelo de Prototipación
LISTA DE LISTA DE LISTA DE
REVISIONES REVISIONES REVISIONES

revisar revisión de
prototipo usuario/
cliente

PROTOTIPAR PROTOTIPAR PROTOTIPAR PRUEBA


REQUERIMIENTOS DISEÑO SISTEMA

SISTEMA
REQUERIMIENTOS LIBRADO
DEL SISTEMA AL USO
(a veces informales
o incompletos)
03/24/11 Ing. de Software Modelando el Proceso -11
Especificación Operacional: los
requerimientos se ejecutan utilizando un
producto de software

Ejecutar y
Revisar

ESPECIFICACION ESPECIFICACION
OPERACIONAL TRANSFORMADA PRUEBA
(orientada al problema) (orientada a la
implementación)

SISTEMA
LIBRADO
REQUERIMIENTOS AL USO
DEL SISTEMA
(a veces informales
o incompletos)
03/24/11 Ing. de Software Modelando el Proceso -12
Modelo Transformacional
Comparar
con REGISTRO FORMAL DEL DESARROLLO
requerimien
tos; Secuencia de transformaciones
actualizar si + sus justificaciones
se necesita TRANSFORM. N
.
.

ESPECIFICACION TRANSFORM. 2 PRUEBA


FORMAL
TRANSFORM. 1

SISTEMA
LIBRADO
REQUERIMIENTOS AL USO
DEL SISTEMA
(a veces informales
o incompletos)
03/24/11 Ing. de Software Modelando el Proceso -13
DESARROLLA-
Desarrollo en Fases
con liberaciones parciales
Sistemas en Desarrollo
DORES

Construir Construir Construir


liberación 1 liberación 2 liberación 3

Tiempo
USUARIOS

Usar Lib. 1 Usar Lib. 2 Usar Lib. 3

Sistemas en Producción
03/24/11 Ing. de Software Modelando el Proceso -14
DESARROLLA-
Desarrollo en Fases
con evaluaciones parciales
Sistemas en Desarrollo
DORES

Construir Construir Construir


liberación 1 liberación 2 liberación 3

Tiempo
USUARIOS

Evaluar Lib. 1 Evaluar Lib. 2 Evaluar Lib. 3

Sistemas en Evaluación
03/24/11 Ing. de Software Modelando el Proceso -15
Incrementos e Iteraciones
DESARROLLO INCREMENTAL

DESARROLLO ITERATIVO

03/24/11 Ing. de Software Modelando el Proceso -16


Evaluar Alternativa
Modelo Espiral
eterminar Objetivos, y Riesgos
lternativas y
t r ic cs 4
estricciones Res Análisis de Riesgos4

a s4
i v t ri c cs 3 An.Riesgos
a t s R3 es 3

r n v a
te ti i c c s2
l s tr
na aes An.Riesgos2
2
A r R
v
t e a ti Re
Al rn
A
st
ri An. RiesgosProto-
lte l te
r c 1 Proto-Proto-
PresptoPrespto A
Prespto n c
ati s Prototipo tipo tipo3 tipo4
4
3 Presupto
2
1 va 1 1 2
start s1
Requirims, Concepto dede Diseño

ft e o
e

So d eñ
operacion s ar .
Pl plan ciclo/vida q Detallado

r
is
Pl a w

e a
De n s . e ft

D
an

w
sa d e u e r R o ,
yP de rro e q o sS d o
ru l R d a d i d a Codificación
eb n te I l o ali Va do l
as V o
gr
ac i s eñ rifica
io D ve Prueba Unitaria
n y
Prueba del
Plan de Prueba de Sistema
Planificar Implantación Aceptación Desarrollar y Prob
03/24/11 Ing. de Software Modelando el Proceso -17
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

03/24/11 Ing. de Software Modelando el Proceso -18


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)

• Vamos a ver algunos ejemplos…

03/24/11 Ing. de Software Modelando el Proceso -19


Esquema 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

03/24/11 Ing. de Software Modelando el Proceso -20


Notación de Lai
• Artefacto, subartefacto, Actividad,subActividad, Rol,
Operación, Análisis
• Tablas de estado muestran información referida a cuán
completo está un artefacto en un instante dado
• Tablas de estado muestran cómo puede operar el
proceso sobre los artefactos
• Diagramas de transición de estado muestran cómo se
relacionan unos estados con otros (máquina de
estados compuestos)
• Formularios para definir cada tipo de elemento (en los
que se especifican las relaciones)

03/24/11 Ing. de Software Modelando el Proceso -21


Lai- relaciones entre elementos

proceso artefacto

Sub- Sub-
actividad artefacto
Ejecuta
Actividad Manipula
Artefac
Ro Ejecuta to
l Operació
n cambia
Ejecuta Refiere a
Análisis

compuest Estado-
Refiere a
o por controla
A(rtefact
Estado-P(roceso)
o)
03/24/11 Ing. de Software Modelando el Proceso -22
Lai – Formulario para operación
Componente Definición

Pre-Condición Predicado en Estado-A para poder


realizarla

Artefacto El artefacto manipulado por la


operación

Acción La función a ser relizada por la


operación

Rol Lista de roles habilitados

Post-Condición Predicados sobre Estado-A

03/24/11 Ing. de Software Modelando el Proceso -23


Notaciones y herramientas
• UML - Diagramas de Acitividad
Editores UML
• BPMN – Especificación de Procesos
(no necesariamente de software)
Editores BPMN
• SPEM 2
Eclipse Process Framework Composer

03/24/11 Ing. de Software Modelando el Proceso -24


Modelos “pesados” y “livianos”
• Modelos pesados (heavyweight)
Énfasis en pasos, artefactos, roles,
controles…
Ejemplos:
 RUP, MUM
• Modelos livianos (lightweight), ágiles
Manifiesto Ágil
Ejemplos:
 XP, SCRUM, DSDM, FDD

03/24/11 Ing. de Software Modelando el Proceso -25


Manifiesto por el Desarrollo Ágil de
Software (2001)
• Hemos aprendido a valorar:
 Individuos e interacciones sobre procesos y
herramientas
 Software funcionando sobre documentación
extensiva
 Colaboración con el cliente sobre negociación
contractual
 Respuesta ante el cambio sobre seguir un plan

 aunque valoramos los elementos de la


derecha, valoramos más los de la izquierda.

03/24/11 Ing. de Software Modelando el Proceso -26


Principios del Manifiesto Agil
• Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de
software con valor.
• Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos
Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
• Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia
al periodo de tiempo más corto posible.
• Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante
todo el proyecto.
• Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el
apoyo que necesitan, y confiarles la ejecución del trabajo. 
• El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre
sus miembros es la conversación cara a cara.
• El software funcionando es la medida principal de progreso.
• Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y
usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
• La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.
• La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
• Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.
• A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación
ajustar y perfeccionar su comportamiento en consecuencia.

03/24/11 Ing. de Software Modelando el Proceso -27


Modelo de Factores que inciden en la
productividad (Abdel-Hamid 96)

Porción de personal experiente % completado


del proyecto
Productividad potencial
Productividad potencial nominal
nominal de personal nuevo
de personal experiente
Multiplicador
Productividad potencial de aprendizaje
promedio nominal Productividad
potencial

Productividad de Desarrollo

Porción real de Pérdidas por motivación


persona-día y comunicación Esfuerzo adicional de comunicació
en el proyecto
Tamaño del equipo
Presión del Calendario
Sobre/bajo Tolerancia del trabajo

03/24/11 Ing. de Software Modelando el Proceso -28


Estructura del Desarrollo de Software
(Abdel-Hamid 96)
PRODUCCION DE SOFTWARE GESTION DE RRHH
Pérdidas del Proceso Productividad Tasa de Tasa de
Detección y Tasa de potencial incorporación bajas
Corrección de Desarrollo de personal
Productividad Mezcla de experiencia
Errores de SW
Real del personal
Esfuerzo Tasa de Personal
Aprendizaje
de Q A Errores
Presión del Calendario Productividad Percibida
Nivel de Personal
Tareas percibidas
percibido como Fecha Planificada Nivel de precisión
como terminadas
necesario en medir el avance
Ajustes ade Terminación
Esfuerzo faltante
Personal y Fecha estimada de
percibido Estado percibido del proyecto
Calendario Terminación
CONTROL
PLANIFICACION
03/24/11 Ing. de Software Modelando el Proceso -29
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

03/24/11 Ing. de Software Modelando el Proceso -30


Preguntas
• ¿Qué ventajas presenta el modelo en cascada?
• ¿Qué problemas presenta este modelo para
atacar proyectos de envergadura?
• ¿Qué aporta la construcción de prototipos?
• ¿Qué agrega el modelo V respecto al modelo en
cascada?
• ¿Qué ventajas presenta el desarrollo en Fases
con liberaciones parciales?
• ¿Qué diferencias presenta con el desarrollo en
Fases con evaluaciones parciales?
• ¿Qué aspecto introduce el Modelo en Espiral?

03/24/11 Ing. de Software Modelando el Proceso -31


Preguntas (2)
• ¿Para qué sirve el esquema ETVX?
• ¿Para qué nos puede interesar modelar un
proceso?
• ¿Los modelos de Abdel Hamid son descriptivos o
prescriptivos?

03/24/11 Ing. de Software Modelando el Proceso -32

You might also like