Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DE SOFTWARE
& MODELOS DE PROCESOS
Objetivos
Reconocer el marco de trabajo de la ingeniera de software
(ISW)
Establecer los objetivos de la ISW
Establecer el objeto de estudio de la ISW
Identificar y analizar el producto de ISW
Establecer ventajas y desventajas de los modelos de proceso.
Reconocer a RUP como un modelo importante dentro de ISW.
INGENIERA DE SOFTWARE
Qu es Ingeniera?
Construir una casa para FIDO
Vs.
Construido eficientemente y en un
Requiere:
Modelado mnimo
Requiere:
Proceso simple
Herramientas
simples
Modelado
(de Patricio Lettelier)
Herramientas ms sofisticadas
Qu es Ingeniera?
APLICACIN de conjunto de
conocimientos y tcnicas cientficas
Qu es software?
Elemento lgico de
la computadora
Qu es Ingeniera de Software?
Definicin:
2.
3.
Qu es el Software?
Doc.Especificacin de requerimientos
Documento de diseo
Comprende:
Cdigo
Documentacin
(descripciones,
Manual de usuario
modelos, tablas, etc.)
Manual tcnico
Programas
Datos (texto, nmeros,
imgenes, sonidos,
7
video,etc)
7
10
10
11
60 100x
C
o
s
t
e
1x
Definicin
1,5 6x
Desarrollo
Despus de
la
Entrega
12
12
programa funcionando.
13
13
Qu es Software de Calidad?
Relacin de la
calidad con el
Software
14
MTODOS
PROCESO
UN ENFOQUE DE
CALIDAD
15
Objeto de Estudio de
Ingeniera de SW
Proceso de desarrollo
de Software
18
Proceso de Software
Otra denominacin del Proceso de Software
Al proceso de software tambin se le
conoce como Ciclo de Vida del Software
20
21
Definicin
(QUE)
Diseo
G. de Cdigo
Prueba
Desarrollo
(COMO)
Mant. Correctivo
Mant. Adaptativo
Mant. Perfectivo
Soporte
(CAMBIOS)
Mant. Preventivo o
Reingeniera del Software
23
24
25
Software
26
Construccin de
Prototipos
Incremental
Espiral
DRA
Desarrollo Concurrente
XP
Ensamblaje de Componentes
27
El
problema
es
seleccionar el modelo
de proceso de software
apropiado que debe
aplicar el equipo de
proyecto
?
28
Ing. Sist.
Anlisis
Diseo
Codif.
Prueba
Mant.
29
Investigacin
preliminar
Determinacin
De
requerimientos
Desarrollo
Del sistema
prototipo
Diseo del
sistema
Prueba del
sistema
Puesta en
marcha
30
Crticas:
Ventajas
31
Definir
funcionalidad
prototipo
Desarrollar
prototipo
Evaluar
prototipo
Plan
prototipo
Definicin
prototipo
Prototipo
ejecutable
Reporte
eveluacin
32
Ventajas
Consejo:Cundo usar?
33
Bosquejo de la
Descripcin
Desarrollo
Validacin
Versin
Inicial
Versiones
Intermedias
Versin Final
34
Desventajas
Cundo usar?
corto.
Candidatos: sistemas que se pueden modularizar
36
Equipo # n
Modelo DRA
Modelo de
Negocio
Equipo # 2
Modelo de
Datos
Modelo de
Negocio
Equipo # 1
Qu informacin?
Quin la genera?
A dnde va?
Modelo de
Negocio
Modelo de
Proceso
Modelo de
Datos
Generacin
de Aplic.
Modelo de
Proceso
Modelo de
Datos
Identificacin de
Objetos y relaciones
Descripciones de procesos de
negocio para ABM de objetos de MD
Prueba y
Entrega
Generacin
de Aplic.
Modelo de
Proceso
Prueba y
Entrega
Generacin
de
Aplicacin
T4G + Reusabilidad de
Componentes
Prueba de Comp. Nuevos e interfaces.
Prueba y
Entrega
Tiempo
37
<-------------------------------60-90 das------------------------>
Modelo DRA
Crticas:
38
Modelos Evolutivos
Se adaptan ms fcilmente a los cambios
39
Modelo Incremental
Iteracin de Lineal Secuencial.
Cada iteracin devuelve un Incremento
o versin operativa.
til cuando no se est seguro de cumplir
40
Modelo Incremental
Inc1
Anlisis
Inc2
Anlisi
s
Inc3
Diseo
Diseo
Anlisi
s
Codif.
Codif.
Diseo
Prueba
Entrega 1er
Incremento
Prueba
Codif.
Entrega
2do
Incremento
Prueba
Entrega 3er
Incremento
Tiempo
41
Modelo Incremental
Establecer
entregas del
sistema
Especificar
incremento del
sistema
Costruir
incremento del
sistema
Validacin
incremento
Validacin del
Sistema
Integracin del
Incremento
no
Entrega sistema
completo
si
Sistema
completo?
42
Modelo Incremental
Ventajas:
Ofrece retroalimentacin
Disminuye progresivamente el nmero de errores en las partes que faltan
Disminuye el riesgo del desarrollo, errores se corrigen progresivamente
Disminuye el tiempo de entrenamiento al usuario, que es progresivo
El usuario no tiene que esperar hasta el final para hacer uso del sistema
Problemas:
Definicin del contrato, porque se planifica en forma detallada por
incremento
Los planes y documentacin se entregan con cada incremento del sistema
Una vez que una parte es entregada sus interfaces son congeladas e
incrementos posteriores deben adaptarse a estas
Nota: Una evolucin de este enfoque se conoce como Programacin Extrema (XP
Extreme Programming).
43
Modelo en Espiral
44
Modelo en Espiral
Ventajas:
Crticas:
45
Anlisis de Riesgos
Comunicacin
con el Cliente
Ingeniera,
Construccin y
Entrega
Evaluacin
del Cliente
Construir
Extraer
Colocar en
biblioteca
Construir iteracin
46
Crticas
47
Lenguage de
consulta a BD
Generador de
Pantallas
Planillas de Clculo
Generador de
Informes
Generador de
Cdigo
Cdigo ineficiente.
No mas fciles de usar que L3G.
Mantenimiento cuestionable.
Consejo:
En sistemas grandes, aunque se usen T4G se debe
hacer anlisis, diseo y pruebas.
49
Mtodos Agiles
Manifiesto
Manifiesto gil
gil (2001)
(2001)
Origen de los mtodos giles
En marzo de 2001, 17 crticos de estos modelos, convocados por Kent Beck, que acababa de definir una nueva
metodologa denominada Extreme Programming, se reunieron en Salt Lake City para discutir sobre los modelos
de desarrollo de software.
En la reunin se acu el trmino Mtodos giles para definir a aquellos que estaban surgiendo como
alternativa a las metodologas formales, (CMM-SW, PMI, SPICE) a las que consideraban excesivamente
pesadas y rgidas por su carcter normativo y fuerte dependencia de planificaciones detalladas, previas al
desarrollo.
Los integrantes de la reunin resumieron en cuatro postulados lo que ha quedado denominado como Manifiesto
gil, que capturaba el espritu en el que se basan estos mtodos.
Aunque como se ver ms adelante, en la actualidad hay aproximaciones que combinan lo mejor de ambos
enfoques (formal y gil), hasta 2005, en cada lado sus defensores adoptaron posturas radicales, quiz ms
ocupadas en descalificar a la contraria que en estudiarla y conocerla para mejorar la propia.
50
Mtodos Agiles
Manifiesto
Manifiesto gil
gil (2001)
(2001)
Estamos poniendo al descubierto mejores mtodos para desarrollar
software, hacindolo y ayudando a otros a que lo hagan. Con este
trabajo hemos llegado a valorar:
A los individuos y su
interaccin
El software que funciona
por encima
por encima
por encima
exhaustiva
la negociacin contractual
La respuesta al cambio
por encima
seguimiento de un plan
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward
Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron
Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff
http://agilemanifesto.org/
Sutherland,
Dave Thomas
51
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Este es el mtodo que ms popularidad ha alcanzado entre las metodologas giles, y
posiblemente sea tambin el ms transgresor de la ortodoxia basada en procesos.
Su creador, Kent Beck fue el alma mater del Manifiesto gil.
Extreme Programming (XP) se basa sobre la suposicin de que es posible desarrollar
software de gran calidad a pesar, o incluso como consecuencia del cambio continuo.
Su principal asuncin es que con un poco de planificacin, un poco de codificacin y
unas pocas pruebas se puede decidir si se est siguiendo un camino acertado o
equivocado, evitando as tener que echar marcha atrs demasiado tarde.
FEEDBACK
CORAJE
COMUNICACIN
RESPETO
52
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Definicin:
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Principios
1. Simplicidad: simplifica el diseo. Para que sea
mantenible necesario la refactorizacin del cdigo.
simplicidad +autora colectiva del cdigo + la
programacin por parejas
ms grande el proyecto, todo el equipo
conocer ms y mejor el sistema completo.
54
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Principios
2. Comunicacin:
Cdigo comunica mejor mientras ms simple.
Cdigo autodocumentado ms fiable que comentarios
Pruebas unitarias muestran ejemplos concretos de como utilizar su
funcionalidad.
Programacin por parejas.
Cliente forma parte del equipo de desarrollo.
El cliente decide qu caractersticas tienen prioridad y siempre debe
estar disponible para solucionar dudas.
55
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Principios
3. Retroalimentacin (feedback):
Cliente integrado en el proyecto: su opinin sobre el
estado del proyecto se conoce en tiempo real.
Ciclos que muestran resultados, ayuda a los
programadores a centrarse en lo que es ms importante.
Pruebas unitarias informan sobre el estado de salud del
cdigo.
56
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Principios
4. Coraje o Valenta:
Programacin en parejas puede ser difcil de aceptar, parece como
si la productividad se fuese a reducir a la mitad (beneficia en calidad
sin repercutir en productividad)
Coraje para implementar las caractersticas que el cliente quiere
ahora sin caer en la tentacin de un enfoque ms flexible que permita
futuras modificaciones. No se debe emprender el desarrollo de
grandes marcos de trabajo (frameworks) mientras el cliente espera.
La forma de construir marcos de trabajo es mediante la
refactorizacin del cdigo en sucesivas aproximaciones.
57
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Principios
5. Respeto:
Aadido en la segunda edicin de Extreme Programming
Explained
Programadores no pueden realizar cambios que hacen
que las pruebas existentes fallen que demore el trabajo
de sus compaeros.
Los miembros respetan su trabajo, buscan alta calidad
en el producto y diseo ms ptimo para la solucin a
travs de la refactorizacin del cdigo.
58
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Caractersticas
Desarrollo iterativo e incremental: pequeas mejoras, unas tras otras.
Pruebas unitarias continuas, frecuentemente repetidas y automatizadas,
incluyendo pruebas de regresin. Se aconseja escribir el cdigo de la prueba
antes de la codificacin. Vase, por ejemplo, las herramientas de prueba JUnit orientada a Java, DUnit
orientada a Delphi y NUnit para la plataforma.NET. Estas dos ltimas inspiradas en JUnit.
59
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Caractersticas
Refactorizacin del cdigo, es decir, reescribir ciertas partes del cdigo
para aumentar su legibilidad y mantenibilidad pero sin modificar su
comportamiento. Las pruebas han de garantizar que en la refactorizacin no se ha introducido ningn fallo.
Propiedad del cdigo compartida: en vez de dividir la responsabilidad en
el desarrollo de cada mdulo en grupos de trabajo distintos, este mtodo
promueve el que todo el personal pueda corregir y extender cualquier parte
del proyecto.
Simplicidad en el cdigo: es la mejor manera de que las cosas funcionen.
XP apuesta que es ms sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo
si se requiere, que realizar algo complicado y quizs nunca utilizarlo.
60
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Caractersticas (todas)
Desarrollo iterativo e incremental:
Programacin en parejas
Frecuente integracin del equipo de programacin con el cliente o usuario.
Correccin de todos los errores antes de aadir nueva funcionalidad.
61
Mtodos Agiles
eXtreme
eXtreme Programming
Programming (XP)
(XP)
Conclusiones
La simplicidad y la comunicacin son
extraordinariamente complementarias.
Con ms comunicacin resulta ms fcil
identificar qu se debe y qu no se debe
hacer.
Mientras ms simple es el sistema, menos
tendr que comunicar sobre este, lo que
lleva a una comunicacin ms completa,
especialmente si se puede reducir el equipo
de programadores.
62
Research
Diseo
Verificacin de
consistencia&redundancia
Codificacin
Probar
BackLog
Sprint
Pila de Sprint
BackLog
Determina las prioridades
Una sola persona
Facilitador
Construye el producto
Asesoran y observan
Hito de sprint
Parte del producto desarrollado en un sprint, en
condiciones de ser usada (pruebas, codificacin,
limpia y documentada.
error: Socializar
Proceso gil de desarrollo iterativo e incremental. Origen : artculo The New Product Development Game (Takeuchi y Nonaka, 1986). Jeff Sutherland fue el 1ro en implementarlo en para desarrollo de software (1993, Ken Schwaber es su principal difusor)
63
Juan Palacio
MODELO Anlisis
LINEAL
Diseo
Cdigo
Prueba
Conclusiones& Resumen
A
Escuchar al
cliente
Construir y
revisar la
maqueta
Entrega 1
D
A
MODELO DE
CONSTRUCCION
DE PROTOTIPOS
El cliente
prueba la
maqueta
NUEVO:
MODELO
AGIL
Entrega 2
C
D
P
C
Ent.3
P
Ent4
MODELO
INCREMENTAL
64
Conclusiones
Por qu utilizar uno de los modelos que ya existen ?
En qu se concreta el compromiso de calidad?
Planificacin?
Para planificar el proceso de desarrollo se debe instanciar
un modelo de procesos.
Este modelo puede ser propio o tomar uno de los que ya
existen.
Sin importar el modelo de proceso que utilicemos debemos
basarnos en un compromiso de calidad.
65