Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sesión 6
• Procesos y metodologías de
desarrollo de software
Lo que explica la Línea de Lo que entiende el Gerente Lo que diseña el Analista Lo que interpreta el Lo que describe el CIO al
Negocio de Proyecto de Negocios desarrollador de TI negocio
Nueva Aplicación
Nueva Aplicación
Nueva Aplicación
Cómo se documenta el Lo que realmente se Lo que el presupuesto El soporte proporcionado Lo que realmente quería el
proyecto utiliza puede comprar trabajador del proceso
4/08/2020 13:22 2
Introducción a la Gestión de Proyectos
• ¿Que es un proyecto?
Conjunto de actividades interdependientes orientadas a un fin
específico, con una duración establecida
• ¿Qué significa terminar con éxito un proyecto?
• Cumplir con los objetivos dentro de las especificaciones técnicas, de costo y de plazo de
término.
4
Introducción a la Gestión de Proyectos
¿cómo nace un proyecto?
A partir de un problema, oportunidad, necesidad se genera una IDEA
5
Introducción a la Gestión de Proyectos
6
Figura 1-2 Interacción de las áreas del conocimiento
Introducción a la Gestión de Proyectos
• Gestión del Alcance del Proyecto, describe los procesos requeridos para asegurar que el proyecto incluya
todo el trabajo requerido, y sólo el trabajo requerido, a fin de completar el proyecto exitosamente. Esta
consiste en la iniciación, planificación del alcance, definición del alcance.
• Gestión de Duración (Tiempo) del Proyecto, describe los procesos requeridos para asegurar el término a
tiempo del proyecto. Esta consiste en la definición de las actividades, la secuencia de las actividades,
estimación de la duración de las actividades.
• Gestión de Costos del Proyecto, describe los procesos requeridos para asegurar la ejecución total del
proyecto dentro del presupuesto aprobado.
• Gestión de Calidad del Proyecto, describe los procesos requeridos para asegurarse de que el proyecto
satisfará las necesidades para las cuales fue ejecutado. Esta consiste en la planificación de la calidad,
aseguramiento de la calidad y control de calidad.
Ejecución
Planificación
Inicio Control
Misión
Definir el Plan
Objetivos
problema Estratégico
Metas
RAZONES DE FRACASO
1. Planificación Inadecuada
2. Problemas con Recursos Humanos
3. Controles Inapropiados
4. Factores Externos
2. RUP
2.1. Mejores practicas
2.2. ciclos y fases
2.3. Ciclo de vida. Iteracion
2.4. Fases de RUP
2.5. Definiciones
2.6. Flujos de trabajo del RUP
4/08/2020 13:22 11
1. Proceso de desarrollo
¿Qué es un proceso de desarrollo de software?
• Es un marco de trabajo que permite la programación de las tareas
necesarias para construir un software de alta calidad.
4/08/2020 13:22 12
1. Proceso de desarrollo
¿Cómo debe administrarse un
proyecto de Ing. Software?
A menudo la administración de proyectos se concentra en el cumplimiento de un
cronograma de actividades….
4/08/2020 13:22 13
1. Proceso de desarrollo
1.1. Desarrollo en cascada
4/08/2020 13:22 14
1. Proceso de desarrollo
1.1. Desarrollo en cascada
4/08/2020 13:22 15
1. Proceso de desarrollo
1.2. Desarrollo iterativo
• Básicamente este modelo de desarrollo, que no es más que un conjunto de tareas agrupadas
en pequeñas etapas repetitivas (iteraciones).
• Para apoyar el desarrollo de proyectos por medio de este modelo se han creado frameworks
(entornos de trabajo), de los cuales los dos más famosos son el Rational Unified Process y el
Dynamic Systems Development Method.
4/08/2020 13:22 16
1. Proceso de desarrollo
1.2. Desarrollo iterativo
4/08/2020 13:22 17
1. Proceso de desarrollo
1.2. Desarrollo iterativo
Centrarse Continuamente en Calidad
4/08/2020 13:22 18
2. RUP
4/08/2020 13:22 19
2. RUP
• Objetivos:
Asegurar la producción de software de calidad dentro de plazos y presupuestos predecibles.
Dirigido por casos de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental
(versiones).
• Es también un producto:
Actualizado constantemente para tener en cuenta las mejores prácticas de acuerdo con la
experiencia.
4/08/2020 13:22 20
2. RUP
2.1. Mejores prácticas
4/08/2020 13:22 21
2. RUP
2.1. Mejores prácticas
2.1.1. Desarrollo iterativo del software
• Un proceso iterativo permite una comprensión creciente de los requerimientos a la vez que se va
haciendo crecer el sistema. RUP sigue un modelo iterativo que aborda las tareas más riesgosas
primero.
• Con esto se logra reducir los riesgos del proyecto y tener un subsistema ejecutable tempranamente.
4/08/2020 13:22 22
2. RUP
2.1. Mejores prácticas
2.1.3. Arquitecturas basadas en componentes
El proceso se basa en diseñar tempranamente una arquitectura base ejecutable. La arquitectura debe ser:
• Ocultan detalles
• Permiten la comunicación en el equipo de desarrollo
4/08/2020 13:22 23
2. RUP
2.2. Ciclos y fases
• RUP divide el proceso de desarrollo en ciclos, teniendo un producto al final de cada ciclo.
Cada ciclo se divide en cuatro Fases:
o Inicio
o Elaboración
o Construcción
o Transición
• Cada fase concluye con un hito bien definido donde deben tomarse ciertas decisiones.
4/08/2020 13:22 24
2. RUP
2.2. Ciclos y fases
4/08/2020 13:22 25
2. RUP
2.3. Ciclo de vida. Iteración
En una iteración
participan todas
las disciplinas.
4/08/2020 13:22 27
2. RUP
2.3. Ciclo de vida. Iteración
Qué es un release?
• Un release o versión del producto puede ser interno o externo. Un release interno es usado únicamente
por la organización o el equipo de desarrollo o a manera de demostración para los usuarios o
consumidores.
• Un release externo (o entregable) es entregado a los usuarios finales.
• Un release no es necesariamente un producto terminado
4/08/2020 13:22 28
2. RUP
2.3. Ciclo de vida. Iteración
2.3.1. Estrategias del desarrollo iterativo
a) Ciclo de Vida “Incremental”. La estrategia incremental determina las necesidades de los usuarios, define
los requerimientos del sistema y como consecuencia realiza el resto del desarrollo en una secuencia de
construcciones.
4/08/2020 13:22 29
2. RUP
2.3. Ciclo de vida. Iteración
2.3.1. Estrategias del desarrollo iterativo
a) Ciclo de Vida “Incremental”.
• En la concepción la iteración es corta y establece el alcance, la visión y los casos de uso del negocio.
• En la elaboración normalmente existe una única iteración donde se definen los requerimientos y se
establece la arquitectura.
• En la construcción hay varias iteraciones donde se realizan los casos de uso y la arquitectura se
completa.
• En la transición existen varias iteraciones para migrar el producto a la comunidad de usuarios.
4/08/2020 13:22 30
2. RUP
2.3. Ciclo de vida. Iteración
2.3.1. Estrategias del desarrollo iterativo
b) Ciclo de Vida “evolutivo”.
• Esta estrategia difiere de la incremental en que no se tiene el total conocimiento de lo que el usuario
necesita y en que no todos los requerimientos se conocen desde el inicio sino mas bien, se refinan en
sucesivas iteraciones.
4/08/2020 13:22 31
2. RUP
2.3. Ciclo de vida. Iteración
2.3.1. Estrategias del desarrollo iterativo
c) Ciclo de Vida “entregas incrementales”.
• Esta estrategia es requerida cuando existen presiones de entrega-a-tiempo, donde la entrega rápida de
ciertas características clave puede reportar beneficios significativos.
• La transición tiene el mayor número de iteraciones y debe comenzar mas temprano.
• Es apropiado cuando: El dominio del problema es familiar y el equipo es experimentado.
4/08/2020 13:22 32
2. RUP
2.3. Ciclo de vida. Iteración
Cada Iteración consiste en una “Mini Cascada”
4/08/2020 13:22 33
2. RUP
2.4. Fases de RUP
4/08/2020 13:22 34
2. RUP
2.5.Definiciones
2.5.1. Trabajador
Un trabajador define el comportamiento y las responsabilidades de un individuo. Es como un
“sombrero” que la persona usa durante el proyecto. Es el rol que desempeña una persona en un
momento dado
Responsabilidades:
• Hacer una serie de actividades
• Ser el responsable de una serie de artefactos
4/08/2020 13:22 35
2. RUP
2.5.Definiciones
2.5.2. Actividades
Una actividad es una unidad de trabajo que se asigna a un trabajador (Crear o modificar un
artefacto )
4/08/2020 13:22 36
2. RUP
2.5.Definiciones
2.5.3. Artefactos
• Elementos de información producidos, modificados o usados por el proceso.
• Son los productos tangibles del proyecto.
• Son usados por los trabajadores para realizar nuevas actividades y son el resultado de esas
actividades.
Ejemplos:
4/08/2020 13:22 37
2. RUP
2.5.Definiciones
4/08/2020 13:22 38
2. RUP
2.6. Flujos de trabajo de RUP
4/08/2020 13:22 39
2. RUP
2.6. Flujos de trabajo de RUP
4/08/2020 13:22 40
2. RUP
2.6. Flujos de trabajo de RUP
2.6.1. Modelamiento del negocio
• Se enfoca en identificar los procesos de negocio para la mejora.
• RUP proporciona un lenguaje y proceso común de comunicación entre ingenieros de
desarrollo e ingenieros de relacionados al negocio.
2.6.2. Requerimientos
• Los desarrolladores y clientes deben acordar
qué es lo que el sistema debe hacer:
o Relevar requerimientos
o Documentar funcionalidad y restricciones
o Identificar actores y casos de uso (Los
casos de uso describen la funcionalidad)
4/08/2020 13:22 41
2. RUP
2.6. Flujos de trabajo de RUP
2.6.3. Análisis y diseño
• Descripción de cómo se implementará el sistema. En esta etapa se debe:
o Ejecutar las tareas y funciones descritas en los casos de uso
o Satisfacer todos los requerimientos
o Describir etapas flexible a cambios
2.6.4. Implementación
• Propósito:
o Definir la organización del código
o Implementar la solución (fuente, ejecutables, etc.)
o Probar los elementos desarrolladas
o Integrar las componentes en un sistema ejecutable
4/08/2020 13:22 42
2. RUP
2.6. Flujos de trabajo de RUP
2.6.5. Pruebas
Propósito:
• Verificar la interacción e integración apropiada de componentes del sistema
• Verificar que se satisfacen los requerimientos
• Identificar los defectos y corregirlos antes de la instalación
• RUP describe como planear y ejecutar estas pruebas.
2.6.6. Distribución
• Producir un producto y hacerlo llegar a sus usuarios finales.
• La mayor parte de la distribución ocurre durante la transición.
• Este es uno de los flujos de trabajo menos documentados en RUP.
4/08/2020 13:22 43
2. RUP
2.7. Flujos de trabajo de apoyo en RUP
4/08/2020 13:22 44
2. RUP
2.7. Flujos de trabajo de apoyo en RUP
2.7.1. Administración de configuración y cambios
• Forma de controlar los artefactos producidos por las personas que trabajan en el proyecto.
Algunos problemas habituales son: Actualizaciones simultáneas y Múltiples versiones
4/08/2020 13:22 45
Referencias
• DEITEL, Harvey M.; DEITEL, Paul J. Cómo programar en C+. Pearson
Educación, novena edición, 2014.
• JOYANES AGUILAR, Luis; SANCHEZ GARCIA, LUCAS. Programación en C++: un
enfoque práctico. 2006.
4/08/2020 13:22 46