Diferencia entre revisiones de «Metodologías de desarrollo de software»

Línea 1: Línea 1:
{{Normalizar}}
+
{{Definición
{{Ficha Software
+
|nombre=Metodología de desarrollo
|nombre= Metodologías de Desarrollo de Software
+
|imagen=MD.png
|imagen= MD.png‎
+
|tamaño=
 +
|concepto= Conjunto de procedimiento y pasos que deben ser seguidos para desarrollar un software.
 
}}  
 
}}  
 
<div align="justify">
 
<div align="justify">
'''Metodología de desarrollo.''' Es un conjunto de procedimientos y pasos que deben ser seguidos para desarrollar un [[Software|software]]. Entre las más utilizadas se pueden encontrar a la [[Programación Extrema o XP|Programación Extrema (XP)]], Scrum y el Proceso Unificado de Software ([[RUP|RUP]]).  
+
'''Metodología de desarrollo.''' Las más utilizadas son: La [[Programación Extrema o XP|Programación Extrema (XP)]], Scrum y el Proceso Unificado de Software ([[RUP|RUP]]).  
  
 
== Programación Extrema (Extreme Programming, XP)  ==
 
== Programación Extrema (Extreme Programming, XP)  ==
  
XP es una metodología ágil, centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de [[Image:Xp_logo.png|thumb|right|203x134px|Metodoligía XP]]software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se fundamenta en la realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. La metodología de XP se basa en:  
+
XP es una metodología ágil, centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de [[Image:Xp logo.png|thumb|right|203x134px|Metodoligía XP]][[Software|software]], promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se fundamenta en la realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. La metodología de XP se basa en:  
  
 
*Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal manera que se adelanta en algo hacia el futuro, se puede hacer pruebas de las fallas que pudieran ocurrir. Es como si se adelantara a obtener los posibles errores.  
 
*Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal manera que se adelanta en algo hacia el futuro, se puede hacer pruebas de las fallas que pudieran ocurrir. Es como si se adelantara a obtener los posibles errores.  
*Re fabricación: se desarrolla en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.  
+
*Re fabricación: se desarrolla en la reutilización de [[Código|código]], para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.  
 
*Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento.
 
*Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento.
  
 
== Scrum  ==
 
== Scrum  ==
  
Scrum es un proceso en el que se aplican de manera regular un conjunto de mejores prácticas para trabajar en equipo y obtener&nbsp; [[Image:Scrum_logo.gif|thumb|left|199x83px|Metodología Scrum]]el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos. Scrum, más que una metodología de desarrollo software, es una forma de auto-gestión de los equipos de programadores. Un grupo de programadores deciden cómo hacer sus tareas y cuánto van a tardar en ello. Scrum ayuda a que trabajen todos juntos, en la misma dirección, con un objetivo claro. Scrum permite además seguir de forma clara el avance de las tareas a realizar, de forma que los "jefes" puedan ver día a día cómo progresa el trabajo. “En Scrum se realizan entregas parciales y regulares del resultado final del proyecto, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.” Esta metodología tiene algunas desventajas, como el hecho de que genera muy poca documentación en comparación con otras metodologías, no es apto para todos los proyectos y en muchas ocasiones es necesario completarlo con otros procesos de XP.
+
Scrum es un proceso en el que se aplican de manera regular un conjunto de mejores prácticas para trabajar en equipo y obtener&nbsp; [[Image:Scrum logo.gif|thumb|left|199x83px|Metodología Scrum]]el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos. Scrum, más que una metodología de desarrollo software, es una forma de auto-gestión de los equipos de programadores. Un grupo de programadores deciden cómo hacer sus tareas y cuánto van a tardar en ello. Scrum ayuda a que trabajen todos juntos, en la misma dirección, con un objetivo claro. Scrum permite además seguir de forma clara el avance de las tareas a realizar, de forma que los "jefes" puedan ver día a día cómo progresa el trabajo. “En Scrum se realizan entregas parciales y regulares del resultado final del proyecto, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.” Esta metodología tiene algunas desventajas, como el hecho de que genera muy poca documentación en comparación con otras metodologías, no es apto para todos los proyectos y en muchas ocasiones es necesario completarlo con otros procesos de XP.  
  
 
== Proceso Unificado de Desarrollo de Software (RUP)  ==
 
== Proceso Unificado de Desarrollo de Software (RUP)  ==
  
Actualmente no existe una metodología de desarrollo de software que sea global, es decir que encierre características que puedan&nbsp;[[Image:MD.png|thumb|right|Metodología RUP]] aplicarse a cualquier tipo de proyecto. Las características de cada proyecto conjuntamente con su equipo de desarrollo, recursos, y requisitos exigen que se escoja una que se adapte en la mayor medida posible a estas características. Su ciclo de vida se caracteriza por:  
+
Actualmente no existe una metodología de desarrollo de software que sea [[Globalización|global]], es decir que encierre características que puedan&nbsp;[[Image:MD.png|thumb|right|Metodología RUP]] aplicarse a cualquier tipo de proyecto. Las características de cada proyecto conjuntamente con su equipo de desarrollo, recursos, y requisitos exigen que se escoja una que se adapte en la mayor medida posible a estas características. Su ciclo de vida se caracteriza por:  
  
 
*Está dirigido por Casos de Usos: Los casos de uso reflejan lo que los usuarios futuros necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a través de los requerimientos. A partir de aquí los casos de uso guían el proceso de desarrollo ya que los modelos que se obtienen, como resultado de los diferentes flujos de trabajo, representan la realización de los casos de uso (cómo se llevan a cabo).  
 
*Está dirigido por Casos de Usos: Los casos de uso reflejan lo que los usuarios futuros necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a través de los requerimientos. A partir de aquí los casos de uso guían el proceso de desarrollo ya que los modelos que se obtienen, como resultado de los diferentes flujos de trabajo, representan la realización de los casos de uso (cómo se llevan a cabo).  
*Centrado en la arquitectura: La arquitectura muestra la visión común del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.  
+
*Centrado en la [[Arquitectura Informática|arquitectura]]: La arquitectura muestra la visión común del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.  
 
*Iterativo e Incremental: Es el modelo utilizado por RUP para el desarrollo de un proyecto de software. Este modelo plantea la implementación del proyecto a realizar en Iteraciones, con lo cual se pueden definir objetivos por cumplir en cada iteración y así poder ir completando todo el proyecto iteración por iteración, con lo cual se tienen varias ventajas, entre ellas se puede mencionar la de tener pequeños avances del proyectos que son entregables al cliente el cual puede probar mientras se está desarrollando otra iteración del proyecto, con lo cual el proyecto va creciendo hasta completarlo en su totalidad.
 
*Iterativo e Incremental: Es el modelo utilizado por RUP para el desarrollo de un proyecto de software. Este modelo plantea la implementación del proyecto a realizar en Iteraciones, con lo cual se pueden definir objetivos por cumplir en cada iteración y así poder ir completando todo el proyecto iteración por iteración, con lo cual se tienen varias ventajas, entre ellas se puede mencionar la de tener pequeños avances del proyectos que son entregables al cliente el cual puede probar mientras se está desarrollando otra iteración del proyecto, con lo cual el proyecto va creciendo hasta completarlo en su totalidad.
  
Línea 32: Línea 33:
 
*ProyectosAgiles.org. [en línea] Qué es SCRUM/ proyectoÁgiles. [fecha de consulta: 20 de enero de 2010.] Disponible en Internet: http://www.proyectosagiles.org/que-es-scrum  
 
*ProyectosAgiles.org. [en línea] Qué es SCRUM/ proyectoÁgiles. [fecha de consulta: 20 de enero de 2010.] Disponible en Internet: http://www.proyectosagiles.org/que-es-scrum  
 
*Solís, Manuel Calero. Una explicación de la programación extrema (XP). [en línea]. ExplicaXP.pdf. [Fecha de consulta: 5 de febrero de 2010]. Disponible en Internet: &lt; http://www.willydev.net/descargas/prev/ExplicaXp.pdf &gt;
 
*Solís, Manuel Calero. Una explicación de la programación extrema (XP). [en línea]. ExplicaXP.pdf. [Fecha de consulta: 5 de febrero de 2010]. Disponible en Internet: &lt; http://www.willydev.net/descargas/prev/ExplicaXp.pdf &gt;
 +
 +
== Véase también  ==
 +
 +
*[[Herramientas para el desarrollo del software|Herramientas para el desarrollo de software]].
 +
 +
<br>
 
</div>  
 
</div>  
 
[[Category:Metodologías_de_desarrollo_de_software]]
 
[[Category:Metodologías_de_desarrollo_de_software]]

Revisión del 08:47 29 abr 2011

Metodología de desarrollo
Información sobre la plantilla
MD.png
Concepto:Conjunto de procedimiento y pasos que deben ser seguidos para desarrollar un software.

Metodología de desarrollo. Las más utilizadas son: La Programación Extrema (XP), Scrum y el Proceso Unificado de Software (RUP).

Programación Extrema (Extreme Programming, XP)

XP es una metodología ágil, centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de
Archivo:Xp logo.png
Metodoligía XP
software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se fundamenta en la realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. La metodología de XP se basa en:
  • Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos, de tal manera que se adelanta en algo hacia el futuro, se puede hacer pruebas de las fallas que pudieran ocurrir. Es como si se adelantara a obtener los posibles errores.
  • Re fabricación: se desarrolla en la reutilización de código, para lo cual se crean patrones o modelos estándares, siendo más flexible al cambio.
  • Programación en pares: una particularidad de esta metodología es que propone la programación en pares, la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo. Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento.

Scrum

Scrum es un proceso en el que se aplican de manera regular un conjunto de mejores prácticas para trabajar en equipo y obtener 
Metodología Scrum
el mejor resultado posible de un proyecto. Estas prácticas se apoyan unas a otras y su selección tiene origen en un estudio de la manera de trabajar de equipos altamente productivos. Scrum, más que una metodología de desarrollo software, es una forma de auto-gestión de los equipos de programadores. Un grupo de programadores deciden cómo hacer sus tareas y cuánto van a tardar en ello. Scrum ayuda a que trabajen todos juntos, en la misma dirección, con un objetivo claro. Scrum permite además seguir de forma clara el avance de las tareas a realizar, de forma que los "jefes" puedan ver día a día cómo progresa el trabajo. “En Scrum se realizan entregas parciales y regulares del resultado final del proyecto, priorizadas por el beneficio que aportan al receptor del proyecto. Por ello, Scrum está especialmente indicado para proyectos en entornos complejos, donde se necesita obtener resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad y la productividad son fundamentales. Scrum también se utiliza para resolver situaciones en que no se está entregando al cliente lo que necesita, cuando las entregas se alargan demasiado, los costes se disparan o la calidad no es aceptable, cuando se necesita capacidad de reacción ante la competencia, cuando la moral de los equipos es baja y la rotación alta, cuando es necesario identificar y solucionar ineficiencias sistemáticamente o cuando se quiere trabajar utilizando un proceso especializado en el desarrollo de producto.” Esta metodología tiene algunas desventajas, como el hecho de que genera muy poca documentación en comparación con otras metodologías, no es apto para todos los proyectos y en muchas ocasiones es necesario completarlo con otros procesos de XP.

Proceso Unificado de Desarrollo de Software (RUP)

Actualmente no existe una metodología de desarrollo de software que sea global, es decir que encierre características que puedan 
Metodología RUP
aplicarse a cualquier tipo de proyecto. Las características de cada proyecto conjuntamente con su equipo de desarrollo, recursos, y requisitos exigen que se escoja una que se adapte en la mayor medida posible a estas características. Su ciclo de vida se caracteriza por:
  • Está dirigido por Casos de Usos: Los casos de uso reflejan lo que los usuarios futuros necesitan y desean, lo cual se capta cuando se modela el negocio y se representa a través de los requerimientos. A partir de aquí los casos de uso guían el proceso de desarrollo ya que los modelos que se obtienen, como resultado de los diferentes flujos de trabajo, representan la realización de los casos de uso (cómo se llevan a cabo).
  • Centrado en la arquitectura: La arquitectura muestra la visión común del sistema completo en la que el equipo de proyecto y los usuarios deben estar de acuerdo, por lo que describe los elementos del modelo que son más importantes para su construcción, los cimientos del sistema que son necesarios como base para comprenderlo, desarrollarlo y producirlo económicamente.
  • Iterativo e Incremental: Es el modelo utilizado por RUP para el desarrollo de un proyecto de software. Este modelo plantea la implementación del proyecto a realizar en Iteraciones, con lo cual se pueden definir objetivos por cumplir en cada iteración y así poder ir completando todo el proyecto iteración por iteración, con lo cual se tienen varias ventajas, entre ellas se puede mencionar la de tener pequeños avances del proyectos que son entregables al cliente el cual puede probar mientras se está desarrollando otra iteración del proyecto, con lo cual el proyecto va creciendo hasta completarlo en su totalidad.

Fuentes

Véase también