METODOLOGIA DE DESARROLLO DEL SOFTWARE Fecha de comienzo: 09/10/2008 Fecha de entrega: 15/10/2008 Grupo11 Isaías Ca
Views 123 Downloads 5 File size 358KB
METODOLOGIA DE DESARROLLO DEL SOFTWARE
Fecha de comienzo: 09/10/2008 Fecha de entrega: 15/10/2008
Grupo11 Isaías Carrillo Pérez Rodrigo Pérez González Aureliano David Rodríguez Martín
INDICE
1.1 Metodologías de Desarrollo de Software. 1.2 Metodologías Pesadas. 1.2.1 Introdución. 1.2.2 Filosofía RUP. 1.2.3 Disciplina de Desarrollo RUP. 1.2.4 Disciplina de Soporte RUP. 1.2.5 Elementos del RUP. 1.3 Metodologías Ágiles. 1.3.1 Introdución. 1.3.2 Programación Extrema o XP (Extreme Programming). 1.3.3 Roles de la Programación Extrema. 1.4 Referencias Web o bibliografía utilizada.
METODOLOGIAS DE DESARROLLO DE SOFTWARE 1.1 Metodologías de Desarrollo de Software. Las Metodologías de Desarrollo de Software surgen ante la necesidad de utilizar una serie de procedimientos, técnicas, herramientas y soporte documental a la hora de desarrollar un producto software. Dichas metodologías pretenden guiar a los desarrolladores al crear un nuevo software, pero los requisitos de un software a otro son tan variados y cambiantes, que ha dado lugar a que exista una gran variedad de metodologías para la creación del software. Se podrían clasificar en dos grandes grupos:
Las metodologías orientadas al control de los procesos, estableciendo rigurosamente las actividades a desarrollar, herramientas a utilizar y notaciones que se usarán. Estas metodologías son llamadas Metodologías Pesadas. Las metodologías orientadas a la interactuacción con el cliente y el desarrollo incremental del software, mostrando versiones parcialmente funcionales del software al cliente en intervalos cortos de tiempo, para que pueda evaluar y sugerir cambios en el producto según se va desarrollando. Estas son llamadas Metodologías ligeras/ágiles.
1.2 Metodologías Pesadas. 1.2.1 Introducción. Son las más tradicionales, se centran en la definición detallada de los procesos y tareas a realizar, herramientas a utilizar, y requiere una extensa documentación, ya que pretende prever todo de antemano. Este tipo de metodologías son mas eficaces y necesarias cuanto mayor es el proyecto que se pretende realizar respecto a tiempo y recursos que son necesarios emplear, donde una gran organización es requerida. Una de las metodologías pesadas más conocidas y utilizadas es la Metodología RUP (Rational Unified Process) que divide el desarrollo en 4 fases que definen su ciclo de vida: − − − −
Inicio : El objetivo es determinar la visión del proyecto y definir lo que se desea realizar. Elaboración : Etapa en la que se determina la arquitectura óptima del proyecto. Construcción : Se obtiene la capacidad operacional inicial. Transmisión : Obtener el producto acabado y definido.
1.2.2 Filosofía RUP. La metodología RUP tiene 6 principios clave: −
− −
−
− −
Adaptación del proceso : El proceso debe adaptarse a las características de la organización para la que se esta desarrollando el software. Balancear prioridades : Debe encontrarse un balance que satisfaga a todos los inversores del proyecto. Colaboración entre equipos : Debe haber una comunicación fluida para coordinar requerimientos, desarrollo, evaluaciones, planes, resultados, etc.,... Demostrar valor iterativamente : Los proyectos se entregan, aunque sea de una forma interna, en etapas iteradas. En cada iteración se evaluará la calidad y estabilidad del producto y analizará la opinión y sugerencias de los inversores. Elevar el nivel de abstracción : Motivar el uso de de conceptos reutilizables. Enfocarse en la calidad : La calidad del producto debe verificarse en cada aspecto de la producción.
1.2.3 Disciplina de desarrollo de RUP. Determina las etapas a realizar durante el proyecto de creación del software. −
− −
− − −
Ingeniería o modelado del negocio: Analizar y entender las necesidades del negocio para el cual se está desarrollando el software. Requisitos: Proveer una base para estimar los costos y tiempo de desarrollo del sistema. Análisis y diseño: Trasladar los requisitos analizados anteriormente a un sistema automatizado y desarrollar una arquitectura para el sistema. Implementación: Crear software que se ajuste a la arquitectura diseñada y que tenga el comportamiento deseado. Pruebas: Asegurarse de que el comportamiento requerido es correcto y que todo lo solicitado está presente. Despliegue: Producir distribuciones del producto y distribuirlo a los usuarios.
Diagrama del esfuerzo de actividades según la etapa del proyecto:
1.2.4 Disciplina de soporte RUP. Determina la documentación que es necesaria realizar durante el proyecto.
Configuración y administración del cambio: Guardar todas las versiones del proyecto. Administración del proyecto: Administrar los horarios y recursos que se deben de emplear. Ambiente: Administrar el ambiente de desarrollo del software. Distribución: Hacer todo lo necesario para la salida del proyecto. 1.2.5 Elementos del RUP.
Actividades: Procesos que se han de realizar en cada etapa/iteración. Trabajadores: Personas involucradas en cada actividad del proyecto. Artefactos: Herramientas empleadas para el desarrollo del proyecto. Puede ser un documento, un modelo, un elemento del modelo, etc.,...
1.3 Metodologías Ágiles. 1.3.1 Introducción. Esta metodología nace en febrero del 2001 en una reunión celebrada en UtahEEUU. Principales ideas de la metodología ágil: Se encarga de valorar al individuo y las iteraciones del equipo más que a las herramientas o los procesos utilizados. Se hace mucho más importante crear un producto software que funcione que escribir mucha documentación. El cliente está en todo momento colaborando en el proyecto. Es más importante la capacidad de respuesta ante un cambio realizado que el seguimiento estricto de un plan. 1.3.2 Programación Extrema o XP (EXTREME PROGRAMMING). Es una metodología para el desarrollo de software y consiste basicamente en ajustarse estrictamente a una serie de reglas que se centran en las necesidades del cliente para lograr un producto de buena calidad en poco tiempo. La Programación Extrema es una metodología ágil centrada en potenciar las relaciones interpesonales como clave para el éxito en el desarrollo de software. Promueve el trabajo en equipo, preocupandose en todo momento del aprendizaje de los desarrolladores y estableciendo un buen clima de trabajo. Este tipo de método se basa en una realimentación continuada entre el cliente y el equipo de desarrollo con una comunicación fluida entre todos los participantes, también busca simplificar las soluciones implementadas y coraje para los múltiples cambios. Este tipo de programación es la adecuada para los proyectos con requisitos imprecisos, muy cambiantes y con un riesgo técnico excesivo.
1.3.3 Roles de la Programación Extrema (XP). Según la propuesta de Beck los roles que nos podemos encontrar son los siguientes:
Programador : El programador escribe las pruebas unitarias y produce el código del sistema. Cliente : Escribe las historias de los usuarios y las pruebas funcionales para validar su implementación. El cliente da una gran prioridad a las historias de usuarios y decide cual implementar en cada iteración centrandose en aportar mayor valor al negocio. Encargado de Pruebas (Tester) : Ayuda al cliente a escribir las pruebas funcionales. Se encarga de ejecutar las pruebas con regularidad, difunde los resultados obtenidos al equipo y es el responsable de las herramientas que dan soporte a las pruebas. Encargado de Seguimiento (Tracker) : Es el que proporciona la realimentación al equipo. Realiza el seguimiento del proceso de cada iteración y verifica el grado de acierto entre las estimaciones realizadas y el tiempo real dedicado en ello para la mejora de futuras estimaciones. Entrenador (Coach) : Es el responsable del proceso global. Se encarga de proveer guias al equipo de forma que se apliquen las practicas XP y se vaya siguiendo el proceso correctamente. Consultor : Es un miembro externo del equipo con un conocimiento especifico en algún tema que es necesario para el proyecto, en el que surgan problemas. Gestor (Big boss) : Es el vinculo entre clientes y programadores, ayuda a que el equipo trabaje efectivamente creando las condiciones adecuadas. Su labor esencial es la de coordinación.
1.4 Referencias Web o bibliografía utilizada. Archivo .pdf de la Universidad Politécnica de Valencia con una amplia explicación sobre metodologías ágiles y la programación extrema (XP). http://www.willydev.net/descargas/prev/TodoAgil.pdf Página web en la que habla de las metodologías mas utilizadas RUP, XP y MSF. http://www.informatizate.net/articulos/metodologias_de_desarrollo_de_software_07062004.html Página de wikipedia sobre Metodología RUP. http://es.wikipedia.org/wiki/RUP Clara e interesante web sobre RUP. http://www.scribd.com/doc/297224/RUP Presentación de las Metodologías Agiles en la que habla de la programación extrema (XP). http://www.emarket.cl/dir/umayor/ingsw/Apoyo/GRUPO_1_PROGRAMACION_AGIL.ppt Archivo pdf que nos habla de las ventajas que existen al utilizar las metodologías Agiles. http://www.willydev.net/InsiteCreation/v1.0/descargas/prev/metodologiasagiles.pdf