Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Metodologías de Desarrollo de Software

No description
by

Daniel Santamaria

on 16 February 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Metodologías de Desarrollo de Software

Ingeniería de Software
Politécnico Grancolombiano Adaptive Software Development (ASD)
Iterativo, orientado a los componentes software más que a las tareas y tolerante a los cambios.
El ciclo de vida que propone tiene tres fases esenciales:
especulación, inicia el proyecto y se planifica la características del software
Colaboración se desarrollan las características del software
Aprendizaje, se revisa la calidad del software y se entrega al cliente. Metodologías ágiles SCRUM
La segunda característica importante son las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración. Metodologías ágiles SCRUM
Define un marco para la gestión de proyectos, que se ha utilizado con éxito durante los últimos 10 años. Está especialmente indicada para proyectos con un rápido cambio de requisitos. Metodologías ágiles Metodologías ágiles vs tradicionales I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de software que le aporte un valor.
II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una ventaja competitiva.
II. Entregar frecuentemente software que funcione desde un par de semanas a un par de meses, con el menor intervalo de tiempo posible entre entregas.
IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
V. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que necesitan y confiar en ellos para conseguir finalizar el trabajo.
VI. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información dentro de un equipo de desarrollo. 12 Principios del Manifiesto ágil

Responder a los cambios más que seguir estrictamente un plan. La habilidad de responder a los cambios que puedan surgir a los largo del proyecto (cambios en los requisitos, en la tecnología, en el equipo, etc.) determina también el éxito o fracaso del mismo. Por lo tanto, la planificación no debe ser estricta sino flexible y abierta. El manifiesto ágil

La colaboración con el cliente más que la negociación de un contrato. Se propone que exista una interacción constante entre el cliente y el equipo de desarrollo. Esta colaboración entre ambos será la que marque la marcha del proyecto y asegure su éxito. El manifiesto ágil
Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. La gente es el principal factor de éxito de un proyecto software. Es más importante construir un buen equipo que construir el entorno. Muchas veces se comete el error de construir primero el entorno y esperar que el equipo se adapte automáticamente. Es mejor crear el equipo y que éste configure su propio entorno de desarrollo en base a sus necesidades. El manifiesto Ágil Las metodologías tradicionales ponen mucho énfasis sobre el plan de proyecto. En tenerlo todo bien especificado antes de comenzar, en seguir fielmente el camino planificado y en documentar exhaustivamente todo lo realizado.
Las metodologías ágiles, por el contrario, ponen el énfasis en entregar buen código al cliente. En obtener resultados que satisfagan al cliente, adaptándose a sus siempre cambiantes necesidades.
Metodologías tradicionales vs Metodologías Ágiles La metodología debe poder emplearse en un entorno amplio de proyectos software
Complejidad. La metodología debe servir para sistemas de distinta complejidad, es decir puede abarcar un departamento, varios de departamentos o varias empresas. Metodologías de Desarrollo de Software La metodología debe poder emplearse en un entorno amplio de proyectos software
Las metodologías deberán ser capaces de abordar sistemas de distintos tamaños y rangos de vida. Metodologías de Desarrollo de Software
La metodología debe ser la base de una comunicación efectiva, no sólo entre el analista y el usuario sino en todos los implicados en el proyecto, es decir no sólo en la determinación de los requisitos sino en la comunicación de los avances y decisiones tomados en la ejecución del proyecto.

La clave del éxito es que todas las partes implicadas han de intercambiar información libremente. Metodologías de Desarrollo de Software Metodologías de desarrollo de software TSP Team Software Process
Provee un equilibrio entre el proceso, el producto y la gestión del equipo de trabajo.
Principios
Aprender es más efectivo que seguir procesos definidos, se basa en la evaluación y retroalimentación constante de los resultados de cada iteración.
El éxito del equipo se basa en la definición de objetivos claros, liderazgo y entrenamiento constante. Metodologías de desarrollo de software Dynamic Systems Development Method (DSDM)
Es un proceso iterativo e incremental y el equipo de desarrollo y el usuario trabajan juntos.
Propone cinco fases:
estudio viabilidad,
estudio del negocio,
modelado funcional,
diseño y construcción,
implementación.

Las tres últimas son iterativas, además de existir retroalimentación a todas las fases. Metodologías ágiles Crystal Methodologies
Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos.
El equipo de desarrollo es un factor clave, por lo que se deben invertir esfuerzos en mejorar sus habilidades y destrezas, así como tener políticas de trabajo en equipo definidas. Estas políticas dependerán del tamaño del equipo, estableciéndose una clasificación por colores, por ejemplo Crystal Clear (3 a 8 miembros) y Crystal Orange (25 a 50 miembros). Metodologías ágiles SCRUM
El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. Metodologías ágiles PROGRAMACIÓN EXTREMA (EXTREME PROGRAMMING, XP)
Se base en:
retroalimentación continua entre el cliente y el equipo de desarrollo,
comunicación fluida entre todos los participantes,
simplicidad en las soluciones implementadas y agilidad 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. Metodologías ágiles VII. El software que funciona es la medida principal de progreso.
VIII. Los procesos ágiles promueven un desarrollo sostenible. Los promotores, desarrolladores y usuarios deberían ser capaces de mantener una paz constante.
IX. La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
X. La simplicidad es esencial.
XI. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí mismos.
XII. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y
según esto ajusta su comportamiento. 12 Principios del Manifiesto ágil

Desarrollar software que funciona más que conseguir una buena documentación. La regla a seguir es “no producir documentos a menos que sean necesarios de forma inmediata para tomar un decisión importante”. Estos documentos deben ser cortos y centrarse en lo fundamental. El manifiesto ágil La metodología debe poder emplearse en un entorno amplio de proyectos software
Entorno. La metodología debe servir con independencia de la tecnología disponible en la empresa. Metodologías de Desarrollo de Software La metodología debe poder emplearse en un entorno amplio de proyectos software
Una empresa deberá adoptar una metodología que sea útil para un gran número de sistemas que vaya a construir. Por esta razón no es práctico adoptar varias metodologías en una misma empresa. Metodologías de Desarrollo de Software La metodología debe soportar la determinación de la exactitud del sistema a través del ciclo de desarrollo, es decir que los métodos usados para análisis y especificación del sistema deberían facilitar el entendimiento del problema por parte de todos los interesados.

Esto implica una comunicación entre usuario y técnico amigable y sencilla, exenta de consideraciones técnicas. Metodologías de Desarrollo de Software Debe cubrir el ciclo completo de desarrollo de software.
La metodología debe integrar las distintas fases del ciclo de desarrollo permitiendo
Rastreabilidad. Es importante poder referirse a otras fases de un proyecto y fusionarlo con las fases previas. Es importante poder moverse no sólo hacia adelante en el ciclo de vida, sino hacia atrás de forma que se pueda comprobar el trabajo realizado y se puedan efectuar correcciones.
Fácil interacción entre etapas del ciclo de desarrollo. Es necesaria una validación formal de cada fase antes de pasar a la siguiente. La información que se pierde en una fase determinada queda perdida para siempre, con un impacto en el sistema resultante.
La metodología debe incluir la realización de validaciones Metodologías de Desarrollo de Software

Las metodologías no son buenas o malas per se, se deben adoptar de acuerdo con los objetivos y el contexto del proyecto a desarrollar y adaptarse a él. Metodologías de Desarrollo de Software Fin de la presentación: Pero no es lo único...

Ahora un ejercicio...

Metodologías ágiles
Full transcript