Upload
luis-fernando-aguas-bucheli
View
46
Download
0
Embed Size (px)
Citation preview
Lenguajes de Programación: Hilos, Ciclo de Vida, sincronización, Animación
Autor(es): • Mtr. Luis Fernando Aguas
2
Problemas y Causas
• Problemas– Proyectos fuera de plazo– Desajuste con el
presupuesto– Baja calidad– No cumplir las
especificaciones– Código no mantenible
• Causas– Disciplina joven– Naturaleza del software– Complejidad– Gestión
3
• Para obtener un producto software final se distinguen una serie de fases diferenciadas
• El conjunto de estas fases, cómo se organizan y cómo se relacionan es lo que se conoce como el ciclo de vida del software
• Existen diferentes ciclos de vida
Ciclo de vida
4
Proceso Ingeniería – C. Vida Clásico
Análisis
Especificación
Diseño
Implementación
Pruebas
Mantenimiento
Análisis
Generación
Selección
Especificación
Implementación
Mantenimiento
5
• Análisis y toma de requerimientos (analistas)– Consiste en determinar qué ha de hacer el sistema
• Especificación (analistas)– Formalización de los requerimientos
• Diseño (arquitectos)– Elección de la arquitectura y planificación del sistema
• Implementación (programadores)– Codificación del sistema
• Testing (testers)– Verificación de que todo funcionar conforme a la especificación
• Instalación (deployers)• Mantenimiento (explotación)
Ciclo de vida: algunas definiciones
6
Ciclo de vida en cascada (I)
• El más tradicional• No se empieza una fase
hasta que ha acabado la anterior
• Cada fase genera documentación que es la entrada de la siguiente
• Cada fase puede tener personal especializado
Análisis
Especificación
Diseño
Implementación
Pruebas
Mantenimiento
7
Ciclo de vida en cascada (II)• Ventajas
– Planificación “sencilla”– Calidad del producto– Permite trabajar con perfiles
con grados de especialización (y sueldos) diferentes en cada fase
• Inconvenientes– Normalmente los
requerimientos nunca están al 100% bien definidos
– Si ha habido errores, es difícil volver a una fase anterior
– No hay producto hasta el final– Difícil determinar el progreso
real– Lento– Mayor coste
8
Ciclo de vida iterativo (I)
Análisis
Especificación
Diseño
Implementación
Pruebas
Versión 1
Análisis
Especificación
Diseño
Implementación
Pruebas
Versión 2
9
Ciclo de vida iterativo (II) • Ventajas
– Planificación sencilla– Calidad del producto– Permite trabajar con personal
poco cualificado en algunas etapas
– Se tienen versiones antes de acabar el proyecto
– Disminuye los problemas por toma de requerimientos incorrecta
• Inconvenientes– No hay producto hasta el final– Difícil determinar el progreso
real– Lento– Mayor coste
10
• Se construye un prototipo antes de hacer el producto final
• Útil cuando se usan nuevas tecnologías o que no se conocen o cuando los requerimientos son muy vagos
• Permite evaluar si la solución adoptada es satisfactoria antes de implementar toda la funcionalidad
Prototipaje (I)
11
Prototipaje (II)
Especificaciones incompletas
Selección del prototipo
Desarrollo delprototipo
Evaluación delprototipo
Especificaciones completas
Fase de prototipado
12
Ciclo de vida evolutivo• Se usa en proyectos
donde se van conociendo los requerimientos poco a poco
• En cada iteración se implementa el requerimiento que se conoce
• Al final de cada iteración tenemos una versión
13
Ciclo de vida en espiral
• Conocemos todos los requerimientos al principio (no es evolutivo)
• En cada iteración:– Planificación: selección
de requerimientos– Análisis de riesgos– Implementación– Evaluación por parte del
cliente
14
• Normalmente un sistema se construye por más de una persona (o equipo)
• Cada desarrollador trabaja de formaaislada en su código y su máquina
• En la fase de integración se pone en común el trabajo de todos los desarrolladores
• Muchos problemas: las piezas no “encajan”, el testeo se hace tedioso, se introducen defectos, siempre lleva más tiempo del previsto (a veces MUCHO más), etc.
¿Qué es la integración?
15
• Los desarrolladores integran muy a menudo (al menos una vez al día) todo su trabajo
• Detecta malentendidos rápidamente
• La integración forma parte del trabajodiario conviertiéndolo en un procesomucho más previsible que si fuera un último gran paso
• Generalmente se tiene un entorno de integración automatizado que informa de posibles problemas a los desarrolladores tan pronto se producen
Integración continua
16
• Una llamada o petición síncronabloquea al llamador hasta que la operación invocada no termina
• Una llamada o petición asíncrona devuelve el control inmediatamente al llamador. Tanto el llamador como la operación llamada pueden mantener flujos de ejecución separados y concurrentes
Sincronía y asincronía
17
1. El cliente (llamador) hace la petición asíncrona
2. El servidor encola la petición del cliente en una cola de tareas a hacer
3. El servidor va ejecutando las tareas de la cola según la carga que pueda soportar y las políticas que se hayan definido (número de tareas simultáneas, prioridades, etc.)
¿Cómo implementar la asincronía?
18
Productos
PBS
NQS
IBM - Tivoli Workload Scheduler
JMS