Your SlideShare is downloading. ×
  • Like
Metodologias de desarrollo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Metodologias de desarrollo

  • 24,511 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
24,511
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
865
Comments
0
Likes
14

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Metodologías de Desarrollo Hermenegildo Romero
  • 2. Metodologías de desarrollo
    • Una metodología de desarrollo de software se refiere al entorno que se usa para estructurar, planificar y controlar el proceso de desarrollo de un sistema de información.
    • Una gran variedad de metodologías se han desarrollado a lo largo de los años, cada una de ellas con sus fortalezas y debilidades.
    • Una determinada metodología no es necesariamente aplicable a todo tipo de proyectos, mas bien cada tipo de proyecto tiene una metodología a la que se adapta mejor.
  • 3. Metodologías de desarrollo
    • Una Metodologia de desarrollo de software consiste en:
      • Una filosofía de desarrollo de sofware con una base de procesos de desarrollo de software
      • Múltiples herramientas, modelos y métodos, para asistir en el proceso de desarrollo de software.
      • Suele estar documentada y alguna clase de documentación formal.
      • Suele estar promovida por algún tipo de organización ya sea esta pública o privada que es la que se encarga de promover esta metodología.
  • 4. Metodologías de desarrollo
    • Diferentes enfoques sobre desarrollo de Software
      • Cada metodología de desarrollo tiene más o menos su propio enfoque de en lo que debería de consistir un proyecto de desarrollo de software.
      • Pero todas ellas se basan en una serie de enfoques generalistas como son:
        • Waterfall Model – Lineal
        • Prototyping – Iterativo
        • Incremental – combinación de iterativo y lineal
        • Spiral – Combinación de iterativo y lineal
        • Rapid Application Development (RAD) -- iterativo
  • 5. Waterfall model
    • Waterfall model
      • El Waterfall Model o modelo en cascada en el cual el desarrollo se ve como una serie de escalones descendentes (como si se tratara de una cascada de agua) a través de las distintas fases.
        • Analisis
        • Diseño
        • Desarrollo
        • Pruebas
        • Integración
        • Mantenimiento
      • Creada en 1970 por Winston W. Royce
  • 6. Waterfall model
    • … Waterfall model
      • Los principios básicos de este modelo son:
        • El proyecto se divide en fases secuenciales , se permite algún tipo de solapamiento entre las distintas fases.
        • Hace enfasis en la planificación, los tiempos, fechas objetivo, presupuestos y en la implantación del sistema completo al mismo tiempo.
        • Se mantiene un férreo control durante la duración del proyecto a través del uso extensivo de documentación así como a través de revisiones y aprobaciones por los usuarios y gestores del proyecto, al final de cada fase antes de comenzar la siguiente .
  • 7. Prototipos
    • Metodología de Prototipos
      • Se conoce así a las actividades de creación de prototipos durante el desarrollo de software , los prototipos son versiones incompletas del producto que va ha ser desarrollado.
      • Los principios básicos son:
        • No es una metodología que funcione por si sóla, es mas una via para manejar determinadas fases de una metodología más tradicional y amplia (Incremental, Espiral o RAD)
        • Intenta reducir el riesgo inherente al proyecto dividiendo el proyecto en partes más pequeñas.
  • 8. Prototipos
    • ...prototipos
      • ...principios básicos
        • El usuario está más involucrado a través del proyecto, y eso hace que se incremente la aceptación final del producto por los usuarios.
        • Se van realizando maquetas a menor escala siguiendo una política de modificaciones hasta culminar los requerimientos de los usuarios.
        • Mientras que la mayoría de los prototipos se desarrollan con la expectativa de ser deshechos, es posible en algunos casos evolucionar los prototipos hacia el sistema final
  • 9. Incremental
    • Incremental
      • Combinación de metodologías iterativas y lineales con el objetivo primario de reducir los riesgos del proyecto, los proyectos se dividen en partes mas pequeñas, de esta manera también se facilitan los cambios durante el proceso de desarrollo.
      • Los principios fundamentales son:
        • Se realizan una serie de mini-waterfalls, donde todas las fases del desarrollo en cascada se completan para una pequeña parte del sistema, antes de abordar la siguiente parte.
        • Los conceptos iniciales del sistema, análisis de requerimientos, diseño de arquitectura, etc. Del sistema completo se definen usando también la técnica de Cascada.
        • Después de esto mediante prototipos se van desarrollando las distintas partes en las que ha sido dividido el proyecto.
        • Finalmente el proceso culmina con la implantación del sistema en su conjunto (otro mini-waterfall)
  • 10. Espiral
    • Espiral (Boehm 1988)
      • Básicamente consiste en una serie de ciclos que se repiten en forma de espiral, comenzando desde el centro. Se suele interpretar como que dentro de cada ciclo de la espiral se sigue un Modelo Cascada, pero no necesariamente debe ser así. Aunque el Espiral puede verse como un modelo evolutivo que conjuga la naturaleza iterativa con los aspectos controlados y sistemáticos del Modelo Cascada, con el agregado de gestión de riegos.
      • Este sistema está indicado en grandes proyectos.
  • 11. Espiral
    • ...Espiral
      • En cada vuelta o iteración hay que tener en cuenta:
        • Los Objetivos: Que necesidad debe cubrir el producto.
        • Alternativas: Las diferentes formas de conseguir los objetivos de forma exitosa, desde diferentes puntos de vista como pueden ser:
          • Características: experiencia del personal, requisitos a cumplir, etc.
          • Formas de gestión del sistema.
          • Riesgo asumido con cada alternativa.
        • Desarrollar y Verificar: Programar y probar el software
  • 12. Espiral
    • ...Espiral
      • Si el resultado no es el adecuado o se necesitan mejoras:
        • Se planifican los siguientes pasos y se comienza un nuevo ciclo de la espiral, la espiral tiene dos dimensiones, la radial y la angular.
          • Angular
            • Indica el avance del proyecto dentro de un ciclo
          • Radial
            • Indica el aumento del coste del proyecto, ya que con cada nueva iteración se pasa más tiempo desarrollado
  • 13. Espiral
    • ...Espiral
      • Al ser un modelo de ciclo de vida orientado a la gestión del riesgo, se dice que uno de los aspectos fundamentales de su éxito radica en que el equipo que lo aplique tenga la necesaria experiencia y habilidad para detectar y catalogar correctamente los riesgos.
  • 14. Espiral
    • Para cada ciclo hay cuatro actividades
      • Determinar o fijar objetivos
        • Fijar los productos definidos a obtener, requerimientos, especificaciones, manual de usuario
        • Fijar las restricciones
        • Identificación de riesgos del proyecto y estrategias alternativas para evitarlos
      • Análisis del riesgo
        • Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas propuestas para reducir o eliminar los riesgos.
      • Desarrollar, verificar y validad (pruebas)
        • Tareas de la actividad propia y prueba
        • Análisis de alternativas e identificación de resolución de riesgos
        • Dependiendo del resultado de la evaluación de riesgos, se elige un modelo para el desarrollo, cascada, iterativo, etc...
      • Planificar
        • Revisamos todo lo realizado, evaluándolo y decidimos si continuamos con las fases siguientes y planificamos la próxima actividad
  • 15. Espiral
  • 16. RAD
    • RAD (James Martin 1980)
      • Este método comprende el desarrollo iterativo, la construcción de prototipos y el uso de herramientas CASE.
      • Aporta la velocidad del desarrollo , principalmente por el uso de las herramientas CASE.
      • La Calidad es otra de sus características, mediante la implicación del usuario en las etapas de análisis y diseño
      • Apropiado para proyectos de pequeña embergadura
      • Al igual que con los anteriores divide un proyecto en piezas más pequeñas
      • Pone énfasis en el cumplimiento de las expectativas del negocio, mientras que las caráctristicas tecnicas o la excelencia del desarrollo tiene menos importancia.
  • 17. RAD
    • ...RAD
      • El control del proyecto da prioridad a las fases de desarrollo y define “deadlines”.
      • Si el proyecto empieza a excederse en tiempos, se considera reducir los requerimientos, no aumentar los tiempos.
      • Los usuarios están especialmente involucrados (esto es imperativo) en las fases de diseño mediante el uso de sesiones de trabajo (workshops)
      • Produce documentación para facilitar la evolución futura del producto y el mantenimiento.
  • 18. Otras Metodologías...
    • Metodologías de desarrollo orientado a objetos según fue diseñado por Grady Booch
      • Este modelo incluye seis diagramas
        • Clases
        • Objetos
        • Transición y estados
        • Interacción
        • Módulos
        • Procesos
  • 19. Otras Metodologías
    • Unified Process
      • Basado en UML
        • Organizado en cuatro fases
          • Inicio
          • Elaboración
          • Construcción
          • Transición
      • Una de las versiones más populares es el RUP (Rational Unified Process)
  • 20. RUP
    • Constituye la metodología estandar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.
    • RUP no es un sistema cerrado, es un conjunto de metodologías adaptables al contexto y necesidades de cada organización.
    • Su ciclo de vida es una implementación del Desarrollo en espiral.
  • 21. RUP
    • Principales características
      • Forma disciplinada de asignar tareas y responsabilidades (quien hace que, cuando y cómo)
      • Pretende implementar las mejores prácticas en Ingeniería de software.
      • Desarrollo Iterativo
      • Administración de requisitos
      • Uso de arquitectura basada en componentes
      • Control de cambios
      • Modelado visual de software
      • Verificación de la calidad del software
  • 22. RUP
    • El RUP es un producto de Rational (IBM).
    • Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por los casos de uso.
    • Incluye artefactos (que son los productos tangibles del proceso, como por ej:
      • El modelo de casos de uso
      • El modelo de clases
      • El código fuente
      • Etc..
    • Incluye también roles que desempeñan acciones en un determinado momento.
      • Una persona puede desempeñar distintos roles a lo largo del proceso.
  • 23. RUP
    • Está basado en 5 principios clave
      • Adaptar el proceso
        • El proceso deberá adaptarse a las características propias del proyecto u organización, El tamaño del mismo, así como su tipo o las regularizaciones que lo condicionen, incluirán en su diseño específico.
        • También se deberá tener en cuenta el alcance del proyecto.
      • Balancear Prioridades
        • Los requerimientos de los distintos participantes pueden ser diferentes, contradictorios o disputarse recursos limitados.
        • Debe encontrarse un balance que satisfaga los deseos de todos.
        • Debido a este balanceo se podrán corregir desacuerdos en el futuro.
  • 24. RUP
    • ...5 principios clave
      • Demostrar valor iterativamente
        • Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas.
        • En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y se refina la dirección del proyecto, así como también los riesgos involucrados.
      • Elevar el nivel de abstracción
        • Persigue el uso de elementos reutilizables tales como los patrones de software, lenguajes 4GL o frameworks.
        • Desarrollo con la mente puesta en la reutilización del código
        • Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones arquitectónicas.
  • 25. RUP
    • ...5 principios clave
      • Enfocarse en la calidad
        • El control de la calidad no debe realizarse al final de cada iteración, sino en todos los aspectos de la producción.
        • El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo independiente.
  • 26. RUP
    • Ciclo de vida
      • El ciclo de vida organiza las tareas en fases e iteraciones.
      • Se divide en cuatro fases, dentro de las cuales se realizan varias iteraciones según el proyecto y en las que se hace un mayor o menor hincapié en las distintas actividades.
        • Iniciación
        • Elaboración
        • Construcción
        • Transición
  • 27. RUP
    • ... Ciclo de vida
      • Las primeras iteraciones (en las fases de inicio y elaboración) se enfocan hacia la comprensión del problema y la tecnología, la delimitación del ámbito del proyecto, la eliminación de los riesgos críticos y al establecimiento de la línea de base de la arquitectura.
      • Fase de Iniciación
        • Las iteraciones hacen mayor énfasis en actividades de modelado del negocio y de requerimientos.
      • Fase de elaboración
        • Las iteraciones se orientan al desarrollo de la línea de base de la arquitectura, abracan más los flujos de trabajo de requerimientos, modelos de negocio, análisis, diseño e implementación orientada a la línea de base de la arquitectura.
  • 28. RUP
    • ... Ciclo de vida
      • Fase de Construcción
        • Se lleva a cabo la construcción del producto mediante series de iteraciones.
        • Para cada iteración se seleccionan algunos casos de uso, se refina su análisis y diseño y se procede a su implementación y pruebas.
        • Se realiza una pequeña cascada para cada ciclo.
        • Se realizan tantas iteraciones como requiera la implementación del producto.
      • Fase de Transición
        • Se pretende garantizar que se tiene un producto preparado para su entrega a los usuarios.
  • 29. RUP
    • Secciones
      • Sección de Proceso
        • Modelado de Negocio
        • Requisitos
        • Análisis y diseño
        • Implementación
        • Pruebas
        • Despliegue
      • Sección de Soporte
        • Gestión del cambio y configuraciones
        • Gestión del proyecto
        • Entorno
  • 30. RUP
  • 31. RUP
    • Artefactos
      • En cada una de sus fases de la estructura estática realiza una serie de artefactos que sirven para comprender mejor tanto el análisis como del diseño del sistema.
      • Fase de Inicio
        • Documento Visión
        • Especificación de requerimientos
      • Fase de elaboración
        • Diagramas de caso de uso
  • 32. RUP
    • ... Artefactos
      • Fase de construcción
        • Trabaja desde cuatro vistas:
          • Vista lógica
            • Diagrama de clases
            • Modelo ER
          • Vista de implementación
            • Diagrama de Secuencia
            • Diagrama de estados
            • Diagrama de colaboración
          • Vista conceptual
            • Modelo de dominio
          • Vista física
            • Mapa de comportamiento HARDWARE
  • 33. Metodologías Ágiles
    • Método para desarrollar Software
      • Característica principal : adaptación al cambio
    • Opuesto a métodos tradicionales (predictivos)
      • Definen de entrada:
        • Alcance (funcionalidad, tecnología, etc..)
        • Costos
        • Tiempos (de inicio a fin del proyecto)
      • Establecen métodos de monitorización y control para prevenir desvíos.
  • 34. Metodologías Ágiles
    • Problema
      • Intangibilidad del software
    • Solución
      • Método tradicional
        • Búsqueda de un acuerdo inmutable previamente negociado
      • Método Ágil
        • Acuerdo iterativo adaptable a los cambios
  • 35. Metodologías Ágiles
    • Iteraciones cortas Entre 2 y cuatro semanas
    • Se planifica sólo cuando ha terminado una iteración
  • 36. Metodologías Ágiles
    • Cuatro valores del manifiesto ágil
      • Individuos e iteraciones
        • VS procesos y herramientas
      • Software funcionando
        • VS documentación extensiva
      • Colaboración con el cliente
        • VS negociación contractual
      • Respuesta ante el cambio
        • VS seguir un plan
  • 37. Metodologías Ágiles
    • Se puede firmar online en agilemanifesto.org
  • 38. Metodologías Ágiles
    • Individuos e iteraciones
      • Prioridad
        • Calidad profesional del equipo
        • Entrega temprana y continua
          • C ada 2 o 4 semanas se entrega software funcional 100% operativo
      • VS (tradicional)
      • Procesos y herramientas
      • Debe servir de ayuda pero no pueden ser el objetivo
  • 39. Metodologías Ágiles
    • Software funcionando
      • Prioridad
        • Satisfacción del cliente
        • Aportar valor al negocio
      • Parte del desarrollo (código documentado) es la documentación del proyecto
      • VS
      • Documentación extensiva
      • Debe servir de complemento pero no ser un impedimento
  • 40. Metodologías Ágiles
    • Colaboración con el cliente
      • Prioridad
        • Participación con el cliente
        • Comunicación directa y continua
      • En XP el cliente está físicamente presente en el momento del desarrollo
      • VS
      • Negociación contractual
      • Sólo el cliente conoce lo que da verdadero valor al negocio
  • 41. Metodologías Ágiles
    • Respuesta ante el cambio
      • Prioridad
        • Aceptar cambios de requerimientos
        • Ventaja competitiva para el negocio
      • VS
      • Seguir un plan
      • El cliente no está realmente seguro hasta que no prueba el software
  • 42. Metodologías Ágiles
    • Hay decenas de metodologías ágiles
      • Las mas representativas
        • SCRUM
        • KANBAN
        • eXtreme Programming (XP)
  • 43. Metodologías Ágiles
    • SCRUM
      • Roles
        • Scrum Master
        • Dueño del producto
        • Equipo
      • Artefactos
        • Backlog del producto
        • Backlog de sprint
        • Incremento de funcionalidad
      • Procesos
        • Planificación
        • Reunión diaria (15 min)
        • Revisión
        • Retrospectiva
  • 44. Metodologías Ágiles
    • KANBAN
      • Origen Japones (TOYOTA)
      • 3 reglas
        • Mostrar el proceso
        • Limitar el trabajo en curso (WIP)
        • Optimizar el flujo de trabajo
        • Tableros físicos con columnas
        • Cola de espera
        • Análisis
        • En cola
        • En curso
        • Desarrollo
        • En cola
        • En curso
        • Implementación
        • En cola
        • En curso
  • 45. Metodologías Ágiles
    • eXtreme Programming (XP)
      • Valores
        • Comunicación
        • Simplicidad
        • Retroalimentación
        • Respeto
        • Coraje
      • Practicas
        • Cliente in-situ
        • Metáfora
        • Refactoring
        • Entregas cortas
        • TDD
        • Semana de 40 horas
        • Propiedad colectiva
        • Código Estándar
        • Programación de a pares
        • Integración continua
        • Juego de planificación
  • 46. Metodologías Ágiles
    • eXtreme Programming
      • Refactoring
        • Modificar el código sin modificar la interfaz ni la experiencia del usuario
      • TDD
        • Primero se realiza el test ese se hace fallar
        • Se acaban los fallos
      • Código estándar
        • Usar las reglas de codificación estándar del lenguaje de programación
      • Pair Programming
        • Programación a pares (2 programadores realizan el mismo trabajo juntos)
  • 47. Muchas Gracias Hermenegildo Romero Database Team [email_address] www.db-team.com