Está en la página 1de 46

LENGUAJE DE PROGRAMACIÓN

Sesión 6

• Procesos y metodologías de
desarrollo de software

Mag. Ing. Ricardo Yauri


4/08/2020 13:22 1
Introducción a la Gestión de Proyectos

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.

• A un conjunto de Proyectos orientados a un objetivo superior


se denomina PROGRAMA, y un conjunto de Programas
constituye un PLAN.
3
Introducción a la Gestión de Proyectos
Ejemplos de proyectos:
• Lanzamiento de un nuevo producto.
• Construcción de una nueva Planta
• Realización de un viaje.
• Desarrollo de un programa de entrenamiento.
• Instalación de un nuevo software.

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

• Debemos Transformar esa idea en un OBJETIVO


• Luego alcanzar ese objetivo obteniendo un PRODUCTO
• Ese producto debe dar solución al problema u oportunidad original.
• Esto lo haremos través de la realización de un proyecto dentro el
marco de las ORGANIZACIONES involucradas.

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.

Prof. Ricardo Caro Navarro 7


Introducción a la Gestión de Proyectos

Inicio Planificación Ejecución Control Cierre

Interacción entre los procesos del Proyecto


Nivel de Actividad

Ejecución

Planificación

Inicio Control

Prof. Ricardo Caro Navarro 8


Tiempo
Introducción a la Gestión de Proyectos
• Qué tienen en común los proyectos exitosos?
 Definieron una misión acorde a la visión
 Fijaron OBJETIVOS (claros, medibles)
 Implementaron una ESTRATEGIA
 ADMINISTRACIÓN EFICIENTE => Plan

Misión
Definir el Plan
Objetivos
problema Estratégico
Metas

Prof. Ricardo Caro Navarro 9


Introducción a la Gestión de Proyectos

RAZONES DE FRACASO

1. Planificación Inadecuada
2. Problemas con Recursos Humanos
3. Controles Inapropiados
4. Factores Externos

Prof. Ricardo Caro Navarro 10


Procesos y metodologías de desarrollo de software
1.procesos de desarrollo
1.1. cascada
1.2. iterativo incremental

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

• El modelo en cascada es un proceso de desarrollo secuencial, en el que el desarrollo de software se


concibe como un conjunto de etapas que se ejecutan una tras otra. Se le denomina así por las
posiciones que ocupan las diferentes fases que componen el proyecto.

4/08/2020 13:22 15
1. Proceso de desarrollo
1.2. Desarrollo iterativo

• Es un proceso de desarrollo de software creado en respuesta a las debilidades del modelo


tradicional de cascada. El Desarrollo iterativo y creciente (o incremental) es el tipo de
desarrollo más usado.

• 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

El objetivo del producto Rational Unified Process (RUP) es el


desarrollo correcto de software.
Hay tres elementos centrales que definen RUP:

 Un conjunto de principios para conseguir un desarrollo de software correcto.


 Una infraestructura de bloques de construcción del proceso y contenido del
método reutilizables.
 El método y el lenguaje de definición de procesos.

4/08/2020 13:22 19
2. RUP

• RUP es un proceso de desarrollo de software:


 Forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo (quién hace
qué, cuándo y cómo).

• 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

• RUP pretende implementar las mejores prácticas actuales en ingeniería de software:

i. Desarrollo iterativo del software


ii. Administración de requerimientos
iii. Uso de arquitecturas basadas en componentes
iv. Modelamiento visual del software
v. Verificación de la calidad del software
vi. Control de cambios

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.

2.1.2. Administración de requerimientos


RUP describe cómo:

• Obtener los requerimientos


• Organizarlos
• Documentar requerimientos de funcionalidad y restricciones
• Captar y comunicar requerimientos.

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:

• Flexible y Fácil de modificar


• Intuitivamente comprensible
• Promueve la reutilización de componentes

RUP apoya el desarrollo basado en componentes, tanto nuevos como preexistentes.

2.1.4. Modelamiento visual


UML es la base del modelamiento visual de RUP. Modelamiento visual de la estructura y el
comportamiento de la arquitectura y los componentes mediante Bloques de construcción:

• 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.

Iteración: Una secuencia de actividades


con un plan de línea base y criterios de
4/08/2020 13:22 26
evaluación resultando en una entrega.
2. RUP
2.3. Ciclo de vida. Iteración

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.

Apropiado para cuando:

• El dominio del problema es familiar.


• Los Riesgos se conocen bien.
• El equipo de proyecto tiene experiencia.

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 )

Una actividad lleva entre un par de horas


y un par de días, involucra un solo
trabajador y un número pequeño de
artefactos.

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:

• Un modelo, como el modelo de casos de uso o el modelo de diseño.


• Un documento tal como la Arquitectura del sistema.
• Código fuente.
• Código ejecutable.

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

• Una lista de actividades, trabajadores y


artefactos constituye un proceso.
• Un flujo de trabajo es una secuencia de
actividades que produce un resultado
valioso.
• No siempre es posible representar flujos
de trabajo.

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

2.7.2. Administración de proyectos


• Es el arte de balancear objetivos contrarios, manejar riesgos y producir software que satisface
a clientes y usuarios.
• RUP incluye Guías para planificación, provisión de personal, ejecución y monitoreo de planes
2.7.3. Ambiente
• Ambiente y herramientas de desarrollo que harán posible llevar a cabo el proyecto.
• RUP guía en la configuración de un ambiente de proceso apropiado a cada proyecto.

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

También podría gustarte