sábado, 16 de abril de 2011

Metodologia RUP

El Proceso Unificado Racional es un proceso de software genérico que puede ser utilizado para una gran cantidad de tipos de sistemas de software, para diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de competencia y diferentes tamaños de proyectos.

Provee un enfoque disciplinado en la asignación de tareas y responsabilidades dentro de una organización de desarrollo.

El Proceso Unificado tiene dos dimensiones:

Un eje horizontal que representa el tiempo y muestra los aspectos del ciclo de vida del proceso a lo largo de su desenvolvimiento.

La primera dimensión representa el aspecto dinámico del proceso conforme se va desarrollando, se expresa en términos de fases, iteraciones e hitos (milestones).


Un eje vertical que representa las disciplinas, las cuales agrupan actividades de una manera lógica de acuerdo a su naturaleza.

La segunda dimensión representa el aspecto estático del proceso: cómo es descrito en términos de componentes del proceso, disciplinas, actividades, flujos de trabajo, artefactos y roles.

domingo, 10 de abril de 2011

modelo de ciclo de vida Scrum

Scrum es una Metodología Ágil[14] para desarrollar el software en equipos. La filosofía en la que se basa es que el proceso de desarrollo software es muy complejo y imprevisible y que la única manera de manejarlo e intentar controlarlo es tratarlo como una caja negra y no como un proceso lineal definido en todas su etapas. Las motivaciones más importantes en las que se enfoca esta idea son las que todos los ingenieros del software conocen: es muy difícil entender bien los requisitos desde las primeras fases del proyecto, los requisitos pueden cambiar durante el desarrollo y la evolución del sistema es imprevisible cuando se necesite cambiar o añadir tecnologías y herramientas en marcha.

En los modelos clásicos de ciclo de vida del software (Modelo en cascada, Modelo incremental,
Modelo de prototipo, Modelo en espiral, ..) las etapas de desarrollo consisten básicamente en cuatro actividades principales:
  • Análisis;
  • Diseño;
  • Desarrollo;
  • Evaluación;
Estas actividades se llevan a cabo con un orden definido que suele vincular el proceso de desarrollo.
Sin embargo, si se opta por seguir la metodología SCRUM, el ciclo de vida no se trata como un flujo lineal en el que se puedan distinguir exactamente estas actividades; además no se precisa seguir un orden preciso en el proceso de desarrollo. El proyecto puede empezar con cualquier actividad y se puede pasar de una actividad a otra en cualquier momento maximizando la flexibilidad y la productividad del equipo. Hay que trabajar en equipos pequeños para reducir
problemas de comunicación y coordinamiento y, a la vez, maximizar la cooperación; se precisa finalmente que todas las actividades y las entregas, tienen que ser flexibles. Data su flexibilidad, esta metodología se puede utilizar incluso como wrapper para modelos de desarrollo ya existentes.


Visión global de SCRUM

El nombre SCRUM deriva de una analogía con el Rugby: en este deporte se llama SCRUM una manera de reiniciar rápidamente el juego cuando se haya interrumpido por alguna infracción accidental. Otras analogías con el Rugby son que el entorno (recursos, requisitos, tecnología,..) determina la evolución y la terminación del proceso de desarrollo; como el Rugby ha nacido violando las reglas del fútbol, así SCRUM se ha desarrollado anteponiendo las prioridades de unos proyectos concretos a las reglas de la Ingeniería del Software. Pero la analogía mas representativa es que el primer objetivo del equipo, bien en SCRUM como en el Rugby, es siempre lo de adelantar la pelota (el proyecto!).

Técnicas usadas en SCRUM

Para aplicar SCRUM y aprovechar su flexibilidad, hay que utilizar las siguientes técnicas:

Creación del Equipo, Definición de Los Backlog, Segmentación del Proyecto, SCRUM Meetings.

Creación del Equipo: un equipos de desarrollo tiene que estar compuesto al maximo por 8 personas; hay un facilitator del equipo (Scrum master) que orquesta los miembros del equipo a lo largo del proceso, actua como interfaz con las influencias externas y intenta resolver los problemas encontrados por los miembros del equipo. El equipo define las practicas, la terminología, la evolución del producto coralmente y el facilitator del equipo se preocupa que se éstos respecten.
Definición de Los Backlogs: los Backlogs definen los trabajos que hay que hacer. Hay 3 diferentes tipologias: los Backlogs del producto, que son los requisitos a cumplir en una dada version del producto; los Backlogs de la release que son los requisitos elejidos para cumplir en una dada release del producto y finalmente los Sprint Backlogs que son los requisitos a realizar en una unidad de trabajo de máximo 4 semanas; mas cada elemento atomico del Sprint Backlog necesita 8-16 horas de trabajo.

domingo, 3 de abril de 2011

MODELO DE CICLO DE VIDA


Modelo en V

Es una derivación del ciclo de vida clásico, presenta las mismas fases que el ciclo de vida en cascada puro, pero a diferencia de aquél, presenta 2 subfases de retroalimentación: la verificación y la validación (pruebas). El modelo en V hace más explícitas las iteraciones y repeticiones de trabajo que quedan ocultas en el modelo en cascada. Mientras el foco del modelo en cascada se sitúa en la documentación y productos desarrollados, el modelo en V se centra en las actividades y la corrección.

Ventajas añadidas con respecto al ciclo de vida en cascada

Además de las ventajas que hereda del modelo en cascada, se suman:

  1. La relación entre el análisis y la validación y entre el diseño y la verificación (retroalimentación) facilitan la localización de fallos.
  2. Logra una mayor corrección.
  3. Minimiza los riesgos del proyecto, a través de la mejora el control y la detección temprana de desviaciones en el proyecto.
  4. Mejora la garantía y la calidad: asegura que los resultados sean completos y presenten la calidad deseada.
  5. Involucra al usuario en las pruebas.
  6. Mejora la comunicación con el cliente.

Desventajas

Sigue presentando algunas desventajas, al igual que el modelo en cascada:

  1. Es difícil que el cliente exponga desde el principio y explícitamente todos los requerimientos.
  2. El cliente debe ser paciente y esperar al final del ciclo de vida para obtener su producto.

Y con respecto a las pruebas:

  1. Puede que las pruebas no sean todo lo suficientemente exhaustivas y constituyen un coste añadido.

Cuando aplicarlo

  • Proyectos que necesiten una confiabilidad muy alta.
  • Proyectos en los que el equipo de desarrollo tiene poca experiencia de trabajo en la aplicación de metodologías de desarrollo.