Metodologias de desarrollo

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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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  Utah­EEUU.  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.e­market.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