4 1 personalizacion de metodologias

1,208 views

Published on

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,208
On SlideShare
0
From Embeds
0
Number of Embeds
53
Actions
Shares
0
Downloads
83
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

4 1 personalizacion de metodologias

  1. 1. Metodologías de Ingeniería del software Personalización de metodologías METODOLOGIAS DE DESARROLLO DE SOFTWARE Todos nos hemos hecho esta pregunta al desarrollar un software, ¿Qué metodología debo usar para desarrollar un sistema?. Esto es muy importante ya que como arquitectos de software, debemos tener un plano en donde apoyarnos. Por muchos años han existido cientos de propuestas para buscar una solución y sobre todo asegurar la calidad del software. El software debe ser pensado, diseñado y desarrollado como un producto sujeto a normas de calidad.
  2. 2. Metodologías de Ingeniería del software Personalización de metodologías METODOLOGIAS DE DESARROLLO DE SOFTWARE El software es un producto desarrollado por grupos de personas cuya interacción debe ser gestionada. El énfasis en el proceso de desarrollo asegura un producto adecuado a los requisitos de los clientes. Muchas veces realizamos el diseño de nuestro software de manera rígida, con los requerimientos que el cliente nos solicitó de tal manera que el cliente en la etapa final o de pruebas solicita un cambio se nos hace muy difícil realizarlo.
  3. 3. Metodologías de Ingeniería del software Personalización de metodologías METODOLOGIAS DE DESARROLLO DE SOFTWARE El desarrollo de software no es sin dudas una tarea fácil. Como resultado a este problema ha surgido una alternativa desde hace mucho: la Metodología. Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente. Lo hacen desarrollando un proceso detallado con un fuerte énfasis en la planificación inspirado por otras disciplinas de la ingeniería. Surgen ante la necesidad de utilizar procedimientos, técnicas, herramientas y soporte documental a la hora de desarrollar un producto software
  4. 4. Metodologías de Ingeniería del software Personalización de metodologías METODOLOGIAS DE DESARROLLO DE SOFTWARE  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 interacció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.
  5. 5. Metodologías de Ingeniería del software Personalización de metodologías Metodología RUP El Proceso Unificado Racional (Rational Unified Process- RUP), es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos firmemente establecidos, sino que trata de un conjunto de metodologías adaptables al contexto y necesidades de cada organización, donde el software es organizado como una colección de unidades atómicas llamados objetos, constituidos por datos y funciones, que interactúan entre sí. RUP es un proceso para el desarrollo de un proyecto de un software que define claramente quien, cómo, cuándo y qué debe hacerse en el proyecto
  6. 6. Metodologías de Ingeniería del software Personalización de metodologías RUP – como proceso de desarrollo • RUP es explícito en la definición de software y su trazabilidad, es decir, contempla en relación causal de los programas creados desde los requerimientos hasta la implementación y pruebas. • RUP identifica claramente a los profesionales (actores) involucrados en el desarrollo del software y sus responsabilidades en cada una de las actividades.
  7. 7. Metodologías de Ingeniería del software Personalización de metodologías RUP – Elementos básicos El proceso de desarrollo se representa usando un conjunto de elementos de modelado: roles (el quién), actividades (el cómo), artefactos (el qué) y flujos de trabajo (el cuándo).  Rol expresa quién (individuo o grupo) hace un trabajo  Actividad describe cómo es hecho el trabajo  Artefacto realizado captura el trabajo
  8. 8. Metodologías de Ingeniería del software Personalización de metodologías RUP – Elementos básicos Roles: Un rol es una definición abstracta del conjunto de responsabilidades, para las actividades a ser desempeñadas y artefactos a ser producidos dentro del proyecto por un individuo o grupo.  Analistas: captura de requerimientos -investigan (analista procesos negocios)  Desarrolladores: diseño, implementación (arquitecto de software, el diseñador)  Gerentes: dirección de procesos de ingeniería.(Gte de proyecto, Gte de publicación -deployment).  Producción y Soporte: soporte al proceso de desarrollo del software (escritor técnico, especialista herramientas, administrador de sistema, etc.)  Probadores: dirigen las pruebas (probador, analista de pruebas, etc.)
  9. 9. Metodologías de Ingeniería del software Personalización de metodologías RUP – Elementos básicos Actividades: Una actividad es una unidad de trabajo que se asigna a un rol, la cual se requiere sea ejecutada por el individuo asociado a ese rol. Las actividades están fraccionadas en pasos y estos agrupados en tres categorías: Pasos de Análisis: cuando el individuo que desempeña el rol comprende la naturaleza de la tarea, recolectando y examinando los artefactos de entrada y formulando resultados o solución. Pasos de Ejecución: El rol crea o actualiza algún artefacto. Pasos de Revisión: Donde el rol verifica los resultados contra algún criterio.
  10. 10. Metodologías de Ingeniería del software Personalización de metodologías RUP – Elementos básicos Artefactos: Un artefacto es una pieza de información que es producida o utilizada por procesos. Los artefactos son los elementos tangibles de un proyecto, elementos que el proyecto produce o usa mientras se trabaja en busca del producto final.
  11. 11. Metodologías de Ingeniería del software Personalización de metodologías RUP – Elementos básicos Flujos de trabajo: Un flujo de trabajo es una secuencia de actividades que producen un resultado de valor observable. Una de las grandes dificultades de describir un proceso de software, es que hay muchas formas de organizar el conjunto de actividades dentro de un flujo de trabajo.
  12. 12. Metodologías de Ingeniería del software Personalización de metodologías RUP – fases de desarrollo de software Inicio Elaboración Construcción Transición
  13. 13. Metodologías de Ingeniería del software Personalización de metodologías RUP – fases de desarrollo de software
  14. 14. Metodologías de Ingeniería del software Personalización de metodologías
  15. 15. Metodologías de Ingeniería del software Personalización de metodologías RUP – Fase de inicio Se hace un plan de fases, donde se identifican los principales casos de uso y se identifican los riesgos. Se concreta la idea, la visión del producto, como se enmarca en el negocio, el alcance del proyecto. El objetivo en esta etapa es determinar la visión del proyecto. Modelado del negocio En esta fase el equipo se familiarizará más al funcionamiento de la empresa, sobre conocer sus procesos.  Entender la estructura y la dinámica de la organización para la cual el sistema va ser desarrollado.  Entender el problema actual en la organización objetivo e identificar potenciales mejoras.  Asegurar que clientes, usuarios finales y desarrolladores tengan un entendimiento común de la organización objetivo.
  16. 16. Metodologías de Ingeniería del software Personalización de metodologías RUP – Fase de inicio Requisitos En esta línea los requisitos son el contrato que se debe cumplir, de modo que los usuarios finales tienen que comprender y aceptar los requisitos que especifiquemos. Establecer y mantener un acuerdo entre clientes y otros stakeholders sobre lo que el sistema podría hacer. Proveer a los desarrolladores un mejor entendimiento de los requisitos del sistema. Definir el ámbito del sistema. Proveer una base para estimar costos y tiempo de desarrollo del sistema. Definir una interfaz de usuarios para el sistema, enfocada a las necesidades y metas del usuario.
  17. 17. Metodologías de Ingeniería del software Personalización de metodologías RUP – Fase de inicio
  18. 18. Metodologías de Ingeniería del software Personalización de metodologías RUP – Fase de elaboración Se realiza el plan de proyecto, donde se completan los casos de uso y se mitigan los riesgos. Planificar las actividades necesarias y los recursos requeridos, especificando las características y el diseño de la arquitectura. En esta etapa el objetivo es determinar la arquitectura Óptima. Análisis y Diseño En esta actividad se especifican los requerimientos y se describen sobre cómo se van a implementar en el sistema.  Transformar los requisitos al diseño del sistema.  Desarrollar una arquitectura para el sistema.  Adaptar el diseño para que sea consistente con el entorno de implementación.
  19. 19. Metodologías de Ingeniería del software Personalización de metodologías RUP – Fase de elaboración
  20. 20. Metodologías de Ingeniería del software Personalización de metodologías RUP - Fase de construcción Se basa en la elaboración de un producto totalmente operativo y en la elaboración del manual de usuario. Construir el producto, la arquitectura y los planes, hasta que el producto está listo para ser enviado a la comunidad de usuarios. En esta etapa el objetivo es llevar a obtener la capacidad operacional inicial. Implementación Se implementan las clases y objetos en ficheros fuente, binarios, ejecutables y demás. El resultado final es un sistema ejecutable. Planificar qué subsistemas deben ser implementados y en qué orden deben ser integrados, formando el Plan de Integración. Se decide en qué orden implementa los elementos del subsistema. Si encuentra errores de diseño, los notifica. Se integra el sistema siguiendo el plan.
  21. 21. Metodologías de Ingeniería del software Personalización de metodologías RUP - Fase de construcción Pruebas Este flujo de trabajo es el encargado de evaluar la calidad del producto que estamos desarrollando, pero no para aceptar o rechazar el producto al final del proceso de desarrollo, sino que debe ir integrado en todo el ciclo de vida.  Encontrar y documentar defectos en la calidad del software.  Generalmente asesora sobre la calidad del software percibida.  Provee la validación de los supuestos realizados en el diseño y especificación de requisitos por medio de demostraciones concretas.  Verificar las funciones del producto de software según lo diseñado.  Verificar que los requisitos tengan su apropiada implementación.
  22. 22. Metodologías de Ingeniería del software Personalización de metodologías RUP - Fase de construcción
  23. 23. Metodologías de Ingeniería del software Personalización de metodologías RUP - Fase de transición El objetivo es llegar a obtener el release del proyecto. Se realiza la instalación del producto en el cliente y se procede al entrenamiento de los usuarios. Realizar la transición del producto a los usuarios, lo cual incluye: manufactura, envío, entrenamiento, soporte y mantenimiento del producto, hasta que el cliente quede satisfecho, por tanto en esta fase suelen ocurrir cambios. Despliegue Esta actividad tiene como objetivo producir con éxito distribuciones del producto y distribuirlo a los usuarios. Las actividades implicadas incluyen: Probar el producto en su entorno de ejecución final. Empaquetar el software para su distribución. Distribuir e instalar el software. Proveer asistencia y ayuda a los usuarios. Formar a los usuarios y al cuerpo de ventas. Migrar el software existente o convertir bases de datos.
  24. 24. Metodologías de Ingeniería del software Personalización de metodologías RUP - Fase de transición
  25. 25. Metodologías de Ingeniería del software Personalización de metodologías RUP – Principios clave Adaptación del proceso: El proceso deberá adaptarse a las características propias de la organización. Balancear prioridades: Los requerimientos de los diversos inversores pueden ser diferentes. Debe encontrarse un balance que satisfaga los deseos de todos. Colaboración entre equipos: El desarrollo de software no hace una única persona sino múltiples equipos. Demostrar valor iterativamente: Los proyectos se entregan, aunque sea de modo interno, en etapas iteradas. En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto. Elevar el nivel de abstracción: Este principio dominante motiva el uso de conceptos reutilizables tales como patrón del software. Enfocarse en la calidad: El control de calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción.
  26. 26. Metodologías de Ingeniería del software Personalización de metodologías RUP – características esenciales
  27. 27. Metodologías de Ingeniería del software Personalización de metodologías RUP – características esenciales Proceso Dirigido por los Casos de Uso: La utilización de los Casos de Uso para el desenvolvimiento y desarrollo de las disciplinas con los artefactos, roles y actividades necesarias. Los Casos de Uso son la base para la implementación de las fases y disciplinas del RUP. Proceso Iterativo e Incremental: 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. Proceso Centrado en la Arquitectura: Define la Arquitectura de un sistema, y una arquitectura ejecutable construida como un prototipo evolutivo. Una arquitectura ejecutable es una implementación parcial del sistema, construida para demostrar algunas funciones y propiedades.
  28. 28. Metodologías de Ingeniería del software Personalización de metodologías RUP – Quiénes deben usar RUP? RUP es la metodología indicada para el desarrollo y publicación de proyectos de software críticos dentro de una organización. Esta metodología fue desarrollada pensando en dos grupos de usuarios: • Desarrolladores de software, que trabajan como parte de un equipo de desarrollo de software. • Personas que practican la ingeniería de procesos, específicamente gerentes e ingenieros de procesos de software. Los desarrolladores de software pueden encontrar en RUP una guía, sobre qué es lo requerido de su rol (o de ellos como desarrolladores) en la definición de roles. Esta guía también proporciona el cómo, cada uno de estos roles colaboran entre si, en términos del trabajo detallado que es requerido para establecer el flujo de trabajo dentro de una iteración.
  29. 29. Metodologías de Ingeniería del software Personalización de metodologías RUP – Cuándo usar RUP? RUP puede ser utilizado desde el principio de un proyecto de software y puede continuar usándose en los subsecuentes ciclos de desarrollo del software después que la fase inicial ha finalizado. Sin embargo, la manera en la cual se use RUP, necesita ser trasformada para ajustarse a las necesidades. Existen algunas consideraciones que modifican el cuándo y cómo se utilizarán las diferentes partes de RUP, éstas son:  El ciclo de vida del proyecto (número de iteración, longitud de cada fase, el largo del proyecto).  Los objetivos de negocio del proyecto, visión, alcance y riesgos.  El tamaño del esfuerzo para el desarrollo del software.
  30. 30. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) MSF es una guía de desarrollo de software flexible que permite aplicar de manera individual e independiente cada unos de sus componentes, es escalable pues está diseñada para poder expandirse según la magnitud del proyecto. MSF está basada en un conjunto de principios, modelos, disciplinas, conceptos, directrices y practicas aprobadas por Microsoft, que asegura resultados con menor riesgo y de mayor calidad, centrándose en el proceso y las personas. MSF se introdujo por primera vez en 1994 como un conjunto de las mejores prácticas en los desarrollo de Software de Microsoft y Microsoft Consulting Service.
  31. 31. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) Éste Framework está basado en los modelos espiral y cascada, lo cual indica que toma elementos de los métodos tradicionales que aún son referentes importantes para procesos de software. Es adaptable, flexible y escalable, e independiente de tecnologías, lo cual significa que no se cierra a un sólo modelo de programación sino más bien queda abierto según la naturaleza del proyecto. Usa como referente el DSL (Domain-Specific Language) para realizar el modelado, así como RUP se apoya en UML para hacer el modelado (Microsoft).
  32. 32. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) -Componentes MSF es un FrameWork que contiene tres componentes: Los principios fundamentales, los modelos y las disciplinas. Pueden ser utilizados individuamente o adoptados como un todo integrado según la naturaleza del proyecto. Principios fundamentales Los principios de MSF son 8 valores y normas que son comunes en todo el FrameWork, los cuales contribuyen a mejorar el trabajo en equipo y a centrarse en mantener el objetivo del proyecto siempre en marcha: • Fomentar la comunicación abierta • Trabajar hacia una visión compartida • Empoderar a los miembros del equipo • Establecer la rendición de cuentas claras y la responsabilidad compartida • Centrarse en ofrecer valor empresarial • Mantenerse ágil, en espera de un cambio • Invertir en la calidad • Aprender de todas las experiencias
  33. 33. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) -Componentes Modelos Los modelos describen esquemas a seguir para la organización de los equipos y los procesos del proyecto, y especifica un modelo para el equipo de trabajo y uno para los procesos: a) Equipo de trabajo: Este modelo se encarga de organizar las personas para que realicen el trabajo y se asegura que todas las metas del proyecto se cumplan. Define los principios, los roles y las actividades involucrando al equipo en todas las decisiones fundamentales que rodean el proyecto.
  34. 34. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) -Componentes Modelos b) Proceso: Se encarga de organizar los procesos necesarios para lograr llevar a término una solución. Para esto se divide las tareas del proyecto en cinco fases, las cuales proporcionan herramientas para mejorar el control sobre el proyecto, minimizar el riesgo y aumentar la calidad del producto. Al igual que el proceso RUP, MSF también tiene sus prácticas inherentes al desarrollo de software, tales como la especificación, el desarrollo, la validación y la evolución del software.
  35. 35. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) -Componentes  Fase planificación: Se debe tener la ingeniería de requerimientos, planificación y gestión de riesgos.  Fase desarrollo: En esta fase se codifica y se realizan las respectivas pruebas, también se identifican y mitigan los riesgos existentes.  Fase estabilización: Se realizan pruebas beta, se crea un plan de gestión de incidencias, se revisa la documentación final de la arquitectura y se elabora un plan de despliegue.  Fase implantación: Se libera la solución software, se crea un registro de mejoras y sugerencias, se revisan las guías y manuales de usuario y se entrega el proyecto final.
  36. 36. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) -Componentes Disciplinas MSF presenta un conjunto de métodos para la gestión del proyecto, la gestión del riesgo y la gestión de preparación para el cambio o Gestión de proyecto: Permitir mayor escalabilidad en proyectos pequeños, grandes y complejos, basado en la planificación sobre las entregas cortas, la incorporación de nuevas características sucesivamente, e identificar cambios ajustando el cronograma. o Gestión del riesgo: Ayuda al equipo a tomar las decisiones correctas y controlar las emergencias que puedan presentarse, por medio de un entorno estructurado para la toma de decisiones y acciones, valorando los riesgos que puedan provocar. o Gestión de cambios: Lograr que el equipo sea proactivo en lugar de reactivo, teniendo en cuenta que los cambios deben considerase riesgos y por lo tanto se deben registrar y hacer evidentes.
  37. 37. Metodologías de Ingeniería del software Personalización de metodologías Microsoft Solutions Framework (MSF) En conclusión, la metodología propuesta por MSF tiene como propósito: Lograr entregas con un margen amplio de éxito, basados en la calidad del producto software, teniendo presente las necesidades del cliente y el principio de flexibilidad, así como el cumplimiento con los compromisos adquiridos, la gestión de los costos y la minimización de los riesgos inherentes en todo proyecto de desarrollo de software.
  38. 38. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) La programación extrema es una metodología de desarrollo ligero (o ágil) basada en una serie de valores y de prácticas de buenas maneras que persigue el objetivo de aumentar la productividad a la hora de desarrollar programas. Este modelo da prioridad a los trabajos que dan un resultado directo y que reducen la burocracia que hay alrededor de la programación.
  39. 39. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) Una de las características principales de este método de programación, es que sus ingredientes son conocidos desde el principio de la informática. Los autores de XP han seleccionado aquellos que han considerado mejores y han profundizado en sus relaciones y en cómo se refuerzan los unos con los otros. El resultado de esta selección ha sido esta metodología única y compacta. Por esto, aunque no está basada en principios nuevos, sí que el resultado es una nueva manera de ver el desarrollo de software. El objetivo que se perseguía en el momento de crear esta metodología era la búsqueda de un método que hiciera que los desarrollos fueran más sencillos aplicando el sentido común.
  40. 40. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) La programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.
  41. 41. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) -Prácticas  Equipo completo: Forman parte del equipo todas las personas que tienen algo que ver con el proyecto, incluido el cliente y el responsable del proyecto.  Planificación: Se hacen las historias de usuario y se planifica en qué orden se van a hacer y las mini-versiones. La planificación se revisa continuamente.  Test del cliente: El cliente, con la ayuda de los desarrolladores, propone sus propias pruebas para validar las mini-versiones.  Versiones pequeñas: Las mini-versiones deben ser lo suficientemente pequeñas como para poder hacer una cada pocas semanas. Deben ser versiones que ofrezcan algo útil al usuario final y no trozos de código que no funcionen.  Diseño simple: Hacer siempre lo mínimo imprescindible de la forma más sencilla posible. Mantener siempre sencillo el código.  Pareja de programadores: Los programadores trabajan por parejas (dos delante del mismo ordenador) y se intercambian las parejas con frecuencia (un cambio diario).
  42. 42. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) -Prácticas  Desarrollo guiado por las pruebas automáticas: Se deben realizar pruebas automáticas con mucha frecuencia. Cuantas más pruebas se hagan, mejor.  Integración continua: Deben tenerse siempre un ejecutable del proyecto que funcione y en cuanto se tenga una nueva pequeña funcionalidad, debe recompilarse y probarse.  El código es de todos: Cualquiera puede y debe tocar y conocer cualquier parte del código. Para eso se hacen las pruebas automáticas.  Normas de codificación: Debe haber un estilo común de codificación, de forma que parezca que ha sido realizado por una única persona.  Metáforas: Hay que buscar unas frases o nombres que definan cómo funcionan las distintas partes del programa, de forma que sólo con los nombres se pueda uno hacer una idea de qué es lo que hace cada parte del programa.  Ritmo sostenible: Se debe trabajar a un ritmo que se pueda mantener indefinidamente. Esto quiere decir que no debe haber días muertos en que no se sabe qué hacer y que no se deben hacer un exceso de horas otros días.
  43. 43. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) -Prácticas
  44. 44. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) –Proceso Se desarrolla en 4 fases  Fase de planeación: Inicia con las historias de usuario que describen las características/funcionalidades del software. El cliente asigna un valor o prioridad a la historia; se evalúa cada historia y le asignan un costo que se mide en semanas de desarrollo.  Fase de diseño: Con diseños simples y sencillos para facilitar el desarrollo. Se recomienda la correcta especificación de métodos y clases para facilitar modificaciones, ampliaciones o reutilización de código.  Fase de codificación: Se deben diseñar las pruebas de unidad que ejercitarán cada historia de usuario. Después de tener las pruebas, los desarrolladores trabajarán en parejas en lo que debe implementarse.  Fase de pruebas: Las pruebas de unidad deben implementarse con un marco de trabajo que permita automatizarlas, con la finalidad de realizar pruebas de integración y validación diarias.
  45. 45. Metodologías de Ingeniería del software Personalización de metodologías XP (EXTREME PROGRAMMING ) –Proceso
  46. 46. Metodologías de Ingeniería del software Personalización de metodologías Diferencias RUP y XP
  47. 47. Metodologías de Ingeniería del software Personalización de metodologías Diferencias RUP y XP
  48. 48. Metodologías de Ingeniería del software Personalización de metodologías SCRUM Scrum es un marco de trabajo para la gestión y desarrollo de software basada en un proceso iterativo e incremental utilizado comúnmente en entornos basados en el desarrollo ágil de software. Puede ser utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de programas: Scrum de Scrums. Scrum es una metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto • Es un modo de desarrollo de carácter adaptable más que predictivo. • Orientado a las personas más que a los procesos. • Emplea estructura de desarrollo ágil: incremental basada en iteraciones y
  49. 49. Metodologías de Ingeniería del software Personalización de metodologías SCRUM Se comienza con la visión general del producto, especificando y dando detalle a las funcionalidades o partes que tienen mayor prioridad de desarrollo y que pueden llevarse a cabo en un periodo de tiempo breve (normalmente de 30 días). Cada uno de estos periodos de desarrollo es una iteración que finaliza con la producción de un incremento operativo del producto. Estas iteraciones son la base del desarrollo ágil, y Scrum gestiona su evolución a través de reuniones breves diarias en las que todo el equipo revisa el trabajo realizado el día anterior y el previsto para el día siguiente.
  50. 50. Metodologías de Ingeniería del software Personalización de metodologías SCRUM – Control de evolución del proyecto Scrum controla empírica y adaptablemente la evolución del proyecto usando: Revisión de las Iteraciones: Al fin de cada iteración se lleva a cabo una revisión con todas las personas implicadas en el proyecto. Desarrollo incremental: El desarrollo incremental implica que al final de cada iteración se usa una parte del producto que se puede inspeccionar y evaluar. Desarrollo evolutivo: Los modelos ágiles se emplean para trabajar en entornos de incertidumbre e inestabilidad de requisitos. Intentar predecir en las fases iniciales cómo será el producto final no es realista. Auto-organización: En Scrum los equipos son auto-organizados (no auto-dirigidos), con decisión suficiente para tomar las acciones que consideren oportunas. Colaboración: El entorno de trabajo ágiles facilitan la colaboración del equipo.
  51. 51. Metodologías de Ingeniería del software Personalización de metodologías SCRUM – Visión general del proceso Scrum denomina “sprint” a cada iteración de desarrollo y recomienda realizarlas con duraciones de 30 días. El sprint es por tanto el núcleo central que proporciona la base de desarrollo iterativo e incremental. Los elementos que conforman el desarrollo Scrum son: Las reuniones • Planificación de sprint: Previa al inicio de cada sprint en la que se determina cuál va a ser el trabajo y los objetivos que se deben cumplir en esa iteración. • Reunión diaria: Breve revisión del equipo del trabajo realizado hasta la fecha y la previsión para el día siguiente. • Revisión de sprint: Análisis y revisión del incremento generado.
  52. 52. Metodologías de Ingeniería del software Personalización de metodologías SCRUM
  53. 53. Metodologías de Ingeniería del software Personalización de metodologías SCRUM - Valores Scrum es una ayuda para organizar a las personas y el flujo de trabajo; como lo pueden ser otras propuestas de formas de trabajo ágil. • Delegación de atribuciones (empowerment) al equipo para que pueda autoorganizarse y tomar las decisiones sobre el desarrollo. • Respeto entre las personas. Los miembros del equipo deben confiar entre ellos y respetar sus conocimientos y capacidades. • Responsabilidad y auto-disciplina (no disciplina impuesta). • Trabajo centrado en el desarrollo de lo comprometido. • Información, transparencia y visibilidad del desarrollo del proyecto.
  54. 54. Metodologías de Ingeniería del software Personalización de metodologías SCRUM

×