Está en la página 1de 32

Modelando el proceso y el Ciclo de Vida

Puntos a tratar
El proceso de desarrollar software

(organizacin 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 Tcnicas
* Modelado en la Prctica

07/19/15
CH2-1

Ing. de Software

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
construccin de un producto, a veces
se menciona como Ciclo de Vida (del
producto).
07/19/15

Ing. de Software

Modelando el

Siguiendo un Proceso
Un proceso es un conjunto de
procedimientos (receta), organizado para
construir productos que satisfacen una
seria de objetivos y estndares.
Los procesos son importantes porque
imponen consistencia y estructura en un
conjunto de actividades.
Sabemos cmo hacer algo bien y queremos
forzar que otros lo hagan de la misma
forma.
07/19/15

Ing. de Software

Modelando el

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 estn organizadas en una
secuencia.
Establecer los objetivos de cada actividad.
07/19/15

Ing. de Software

Modelando el

Modelos de Proceso de
Software
Prescripciones de la forma en que el
desarrollo de software debera 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.
07/19/15

Ing. de Software

Modelando el

ANALISIS DE
REQUERIMIENTOS

Modelo Cascada

DISEO DEL
SISTEMA
DISEO DE
PROGRAMAS

IMPLEMENTACION
DE PROGRAMAS
PRUEBA UNITARIA
Y DE INTEGRACION
PRUEBA DEL
SISTEMA
PRUEBA DE
ACEPTACION

07/19/15

Ing. de Software

OPERACION
Y MANTENIMIENTO

Modelando el

(Proceso de desarrollo en la
realidad)
ANALISIS DE
REQUERIMIENTOS

MANTENIMIENTO
DISEO DEL
SISTEMA
LIBRAR AL USO

DISEO DE
PROGRAMAS
PRUEBA DEL
SISTEMA

PRUEBA DE
INTEGRACION

07/19/15

IMPLEMENTACION
DE PROGRAMAS
PRUEBA UNITARIA

Ing. de Software

Modelando el

Espacios del Problema y


de la Solucin
Problema

Solucin
DISEO DEL
SISTEMA

ANALISIS DE
REQUERIMIENTOS

DISEO DE
PROGRAMAS

Restriccione
s
Tecnolgicas

IMPLEMENTACION
DE PROGRAMAS

Intentar solucionar un problema a menudo aclara el


problema
Evaluar los atributos de calidad externos del
software (solucin) requiere que exista
comportamiento

07/19/15

Ing. de Software

Modelando el

Cascada
c/prototipos

ANALISIS DE
REQUERIMIENTOS
DISEO DEL
SISTEMA

Validar

DISEO DE
PROGRAMAS

Verificar

IMPLEMENTACION
DE PROGRAMAS

PROTOTIPADO

PRUEBA UNITARIA
Y DE INTEGRACION
PRUEBA DEL
SISTEMA
PRUEBA DE
ACEPTACION

07/19/15

Ing. de Software

OPERACION
Y MANTENIMIENTO

Modelando el

Modelo V

ANALISIS DE
REQUERIMIENTOS

Validar requerimientos

OPERACION
Y MANTENIMIENTO

PRUEBA DE
ACEPTACION
DISEO DEL
SISTEMA
Verificar diseo

DISEO DE
PROGRAMAS

07/19/15

PRUEBA DEL
SISTEMA

PRUEBA UNITARIA
Y DE INTEGRACION

IMPLEMENTACION
DE PROGRAMAS
Ing. de Software

Modelando el

Modelo de Prototipacin
LISTA DE
REVISIONES

LISTA DE
REVISIONES

LISTA DE
REVISIONES

revisin de
revisar
usuario/
prototipo
cliente

PROTOTIPAR
REQUERIMIENTOS

REQUERIMIENTOS
DEL SISTEMA
(a veces informales
o incompletos)
07/19/15

PROTOTIPAR
DISEO

PROTOTIPAR
SISTEMA

PRUEBA

SISTEMA
LIBRADO
AL USO

Ing. de Software

Modelando el

Especificacin Operacional:

los
requerimientos se ejecutan utilizando un
producto de software
Ejecutar y
Revisar

ESPECIFICACION
ESPECIFICACION
OPERACIONAL
TRANSFORMADA
(orientada al problema) (orientada a la
implementacin)

REQUERIMIENTOS
DEL SISTEMA
(a veces informales
o incompletos)

07/19/15

PRUEBA

SISTEMA
LIBRADO
AL USO

Ing. de Software

Modelando el

Modelo Transformacional
Comparar
con
requerimien
tos;
actualizar si
se necesita

ESPECIFICACION
FORMAL

REGISTRO FORMAL DEL DESARROLLO

Secuencia de transformacio
+ sus justificaciones
TRANSFORM. N
.
.
TRANSFORM. 2

PRUEBA

TRANSFORM. 1

REQUERIMIENTOS
DEL SISTEMA
(a veces informales
o incompletos)

07/19/15

SISTEMA
LIBRADO
AL USO

Ing. de Software

Modelando el

DESARROLLADORES

Desarrollo en Fases

con liberaciones parciales


Sistemas en Desarrollo
Construir
liberacin 1

Construir
liberacin 2

Construir
liberacin 3

USUARIOS

Tiempo

Usar Lib. 1

07/19/15

Usar Lib. 2

Usar Lib. 3

Sistemas
en Produccin
Ing. de Software
Modelando el

DESARROLLADORES

Desarrollo en Fases

con evaluaciones parciales


Sistemas en Desarrollo
Construir
liberacin 1

Construir
liberacin 2

Construir
liberacin 3

USUARIOS

Tiempo

Evaluar Lib. 1

07/19/15

Evaluar Lib. 2

Evaluar Lib. 3

Sistemas
en Evaluacin
Ing. de Software
Modelando el

Incrementos e Iteraciones

DESARROLLO INCREMENTAL

DESARROLLO ITERATIVO

07/19/15

Ing. de Software

Modelando el

Evaluar Alternativ
y Riesgos

Modelo Espiral

is
So d e
ft e o
w
e a
r

Determinar Objetivos,
Alternativas y
iccs 4
r
t
s
Restricciones
Anlisis de Riesgos4
Re
s4
a
iv
ccs 3 An.Riesgos
i
t
r
t
3
s
sRe
3
a
a
n
iv
er
t
t
a
ss2triccs 2
a
Al
n
An.Riesgos2
ve
r
iR
e
t
t
l
n a Re
A
r
st
te A
An. Riesgos
l
1
ProtoProto-ProtoA
lte ric
PresptoPrespto
r na c
4
Prespto
tipo
tipo3 tipo4
3
2
1 2
Presupto
t1ivs1 Prototipo
as
start
1
Requirims, Concepto
dede e
Diseo
. r
s
a
plan ciclo/vida
operacionq
Detallado
Pl
w
e
t
a
.
De n
sR of
r
e
d
Pl
sa
e
qu dosS
an
o, Codificacin
e
r
d
R
r
yP
a
a
oll
d
id
id
l
l
a
a
o
ru e In
V
V
o
d
o
eb
a

as tegr
ise erific Prueba Unitaria
D
ac
yv
io
Prueba del
n
Plan de Prueba de
Sistema
Planificar
Desarrollar y Pro
Implantacin
Aceptacin

07/19/15

Ing. de Software

Modelando el

Modelo de Proceso y de Ciclo de Vida


La preocupacin por el Proceso (fin de
los 80) es ms reciente que la definicin
del Ciclo de Vida (fin de los 60)
En general se asocia a la nocin de
modelo de proceso un mayor detalle y
precisin
Los modelos previos presentan en general
poco nivel de detalle y fueron propuestos
originalmente como modelos de Ciclo de
Vida
07/19/15

Ing. de Software

Modelando el

Herramientas y Tcnicas para


el Modelado de Procesos
Elegir un lenguaje o notacin
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


07/19/15

Ing. de Software

Modelando el

Esquema ETVX
Entry Task Verification eXit
Entry: Condiciones necesarias para poder
cumplir una tarea
Task: Tarea que se lleva a cabo
Quin y con qu responsabilidad

Verification: Criterios para verificar que


concluy de forma adecuada (a veces se
le menciona como Validation)
eXit: Resultados a obtener
07/19/15

Ing. de Software

Modelando el

Notacin de Lai
Artefacto, subartefacto, Actividad,subActividad,
Rol, Operacin, Anlisis
Tablas de estado muestran informacin referida
a cun completo est un artefacto en un
instante dado
Tablas de estado muestran cmo puede operar
el proceso sobre los artefactos
Diagramas de transicin de estado muestran
cmo se relacionan unos estados con otros
(mquina de estados compuestos)
Formularios para definir cada tipo de elemento
(en los que se especifican las relaciones)
07/19/15

Ing. de Software

Modelando el

Lai-

relaciones entre elementos


proceso

Ejecuta
Ro
l

Ejecuta
Ejecuta

artefacto

Subactividad
Actividad
Operaci
n
Anlisis

Subartefacto
Manipula
cambia
Refiere a

compuest
Refiere a
controla
o por
Estado-P(roceso)
07/19/15

Artefac
to

Ing. de Software

EstadoA(rtefact
o)
Modelando el

Lai Formulario para operacin


Componente

Definicin

Pre-Condicin

Predicado en Estado-A para poder


realizarla

Artefacto

El artefacto manipulado por la


operacin

Accin

La funcin a ser relizada por la


operacin

Rol

Lista de roles habilitados

Post-Condicin

Predicados sobre Estado-A

07/19/15

Ing. de Software

Modelando el

Notaciones y herramientas
UML - Diagramas de Acitividad
Editores UML

BPMN Especificacin de Procesos


(no necesariamente de software)
Editores BPMN

SPEM 2
Eclipse Process Framework Composer

07/19/15

Ing. de Software

Modelando el

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
07/19/15

Ing. de Software

Modelando el

Manifiesto por el Desarrollo gil de


Software (2001)

Hemos aprendido a valorar:

Individuos e interaccionessobre procesos y


herramientas
Software funcionandosobre documentacin
extensiva
Colaboracin con el clientesobre negociacin
contractual
Respuesta ante el cambiosobre seguir un plan
aunque valoramos los elementos de la
derecha, valoramos ms los de la izquierda.
07/19/15

Ing. de Software

Modelando el

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 etapastardas del desarrollo. Los
procesos giles aprovechan el cambio para proporcionar ventaja competitiva alcliente.
Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con
preferencia al periodo de tiempo ms 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 individuosmotivados. Hay que darles el entorno
y el apoyo que necesitan, y confiarles la ejecucin del trabajo.
El mtodo ms eficiente y efectivo de comunicarinformacin al equipo de desarrollo y
entre susmiembros es la conversacin cara a cara.
El software funcionando es la medida principal deprogreso.
Los procesos giles promueven el desarrollosostenible. Los promotores, desarrolladores
y usuarios debemos ser capaces de mantener un ritmo constantede forma indefinida.
La atencin continua a la excelencia tcnica y albuen diseo mejora la Agilidad.
La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
Las mejores arquitecturas, requisitos y diseos emergen de equipos auto-organizados.
A intervalos regulares el equipo reflexiona sobre cmo ser ms efectivo para a
continuacin ajustar y perfeccionar su comportamiento en consecuencia.

07/19/15

Ing. de Software

Modelando el

Modelo de Factores que inciden en la


productividad (Abdel-Hamid 96)
Porcin 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
Porcin real de
persona-da
en el proyecto

Prdidas por motivacin


Esfuerzo adicional de comunicac
y comunicacin

Presin del Calendario


Sobre/bajo Tolerancia del trabajo

07/19/15

Ing. de Software

Tamao del equipo

Modelando el

Estructura del Desarrollo de Software


(Abdel-Hamid 96)
PRODUCCION DE SOFTWARE
Prdidas del ProcesoProductividad
Deteccin y
Correccin de
Errores
Esfuerzo
de Q A

potencial
Tasa de
Desarrollo
Productividad
de SW
Real
Tasa de
Errores

Aprendizaje

GESTION DE RRHH
Tasa de
incorporacin
de personal

Tasa de
bajas

Mezcla de experienc
del personal
Personal

Presin del Calendario


Productividad Percibida
Nivel de Personal
Tareas percibidas
percibido como
Nivel de precisin
Fecha Planificada
como terminadas
necesario
en medir el avanc
Ajustes a de Terminacin
Esfuerzo faltante
Personal y
Fecha estimada de
percibido Estado percibido del proyec
Calendario
Terminacin
CONTROL
PLANIFICACION

07/19/15

Ing. de Software

Modelando el

Modelado de Proceso

Para qu?

Entender el proceso (real o propuesto)

Revelar inconsistencias, problemas (base para


la mejora)

Simulacin del proceso y planificacin 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.

Gua en la ejecucin real del proceso


Se precisa agregar mltiples detalles

07/19/15

Ing. de Software

Modelando el

Preguntas
Qu ventajas presenta el modelo en cascada?
Qu problemas presenta este modelo para
atacar proyectos de envergadura?
Qu aporta la construccin 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?
07/19/15

Ing. de Software

Modelando el

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?

07/19/15

Ing. de Software

Modelando el