SlideShare una empresa de Scribd logo
Metodologías de Desarrollo Hermenegildo Romero
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.
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.
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
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
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 .
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.
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
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)
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.
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
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
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.
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
Espiral
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.
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.
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
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)
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.
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
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.
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.
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.
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.
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
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.
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.
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
RUP
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
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
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.
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
Metodologías Ágiles Iteraciones cortas Entre 2 y cuatro semanas  Se planifica sólo cuando ha terminado una iteración
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
Metodologías Ágiles Se puede firmar online en agilemanifesto.org
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
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
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
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
Metodologías Ágiles Hay decenas de metodologías ágiles Las mas representativas SCRUM KANBAN eXtreme Programming (XP)
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
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
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
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)
Muchas Gracias Hermenegildo Romero Database Team [email_address] www.db-team.com

Más contenido relacionado

PPTX
Presentación investigacion de operaciones i
ODP
Introduction to Swagger
PPSX
Tipos de redes
PPTX
Replicacion del ADN
PPTX
Metodologia scrum presentacion
PPTX
PREVENCIÓN DE ACCIDENTES DE TRABAJO
PPTX
PPTX
PPT Odoo Open ERP by Kelly Bikie Ondo
Presentación investigacion de operaciones i
Introduction to Swagger
Tipos de redes
Replicacion del ADN
Metodologia scrum presentacion
PREVENCIÓN DE ACCIDENTES DE TRABAJO
PPT Odoo Open ERP by Kelly Bikie Ondo

La actualidad más candente (20)

DOCX
Estándares para el Modelado de Procesos de Negocios
PPTX
Metodologia Incremental
PPTX
Uml lenguaje unificado de modelado
PPTX
Estilos arquitectónicos
PPT
Metodologias De Desarrollo De Software
PDF
Proceso unificado
PPTX
Planificacion de proyecto de software
PPTX
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
DOCX
Ensayo Cliente Servidor
PDF
Sistemas Operativos Moviles, Android y IOs
PPTX
CLASIFICACIÓN DE LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARE
PPTX
Fases del rup
PPTX
cliente servidor
PPTX
Taller de Base de datos - Unidad 1 SGBD introduccion
PPTX
Diagrama de dominio armando
PPTX
Diagrama de despliegue
PPTX
Modelos de software ventajas y desventajas
PPTX
Ventajas y desventajas de las bdoo
PPT
Como Documentar Casos De Uso
Estándares para el Modelado de Procesos de Negocios
Metodologia Incremental
Uml lenguaje unificado de modelado
Estilos arquitectónicos
Metodologias De Desarrollo De Software
Proceso unificado
Planificacion de proyecto de software
Fundamentos de Ingenieria de Software - Unidad 1 modelo de negocios
Ensayo Cliente Servidor
Sistemas Operativos Moviles, Android y IOs
CLASIFICACIÓN DE LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARE
Fases del rup
cliente servidor
Taller de Base de datos - Unidad 1 SGBD introduccion
Diagrama de dominio armando
Diagrama de despliegue
Modelos de software ventajas y desventajas
Ventajas y desventajas de las bdoo
Como Documentar Casos De Uso
Publicidad

Destacado (13)

PPTX
Metodología de desarrollo de software
PDF
Cuadro comparativo entre la metodología estructurada y metodología orientada ...
PPTX
Cuadro comparativo de enfoque estructurado y enfoque orientado
PDF
Metodologia de desarrollo de software
PPT
4 Clase Metodologia De Desarrolo De Software
PPT
Metología Agiles Desarrollo Software (XP)
PPTX
Metodologias agiles Programacion Xtrema
PPTX
Metodología tradicional
PPTX
Clasificación de las metodologías de desarrollo de software
PPTX
Analisis estructurado y Orientado a objeto
PDF
MÉTODOS TRADICIONALES DE TRABAJO SOCIAL
PPTX
Definicion de usuarios
PPTX
Programación Orientada a Objetos vs Programación Estructurada
Metodología de desarrollo de software
Cuadro comparativo entre la metodología estructurada y metodología orientada ...
Cuadro comparativo de enfoque estructurado y enfoque orientado
Metodologia de desarrollo de software
4 Clase Metodologia De Desarrolo De Software
Metología Agiles Desarrollo Software (XP)
Metodologias agiles Programacion Xtrema
Metodología tradicional
Clasificación de las metodologías de desarrollo de software
Analisis estructurado y Orientado a objeto
MÉTODOS TRADICIONALES DE TRABAJO SOCIAL
Definicion de usuarios
Programación Orientada a Objetos vs Programación Estructurada
Publicidad

Similar a Metodologias de desarrollo (20)

PPTX
Metodologias
PPTX
Proceso del software
PPTX
Proceso del software (Metodos Agiles)
DOCX
Carrera de informatica_educativa
PPTX
Jhostin vasquez modelos de software
PPTX
Modelos de Desarrollo del Software
PDF
Modelos del software
PPTX
analisis y modelado de sistemas de informacion
PDF
Metodología de desarrollo de software
DOCX
Metodos del desarrollo de sistema de informacion
PPTX
procesos de desarrollo de software
PPTX
METODOLOGIAS CLASES Y GENERACIONES RUP - SCRUM
PPTX
Análisis de Sistemas
DOCX
Metodologia y prototipo
PPT
4.1 Proceso Unificado De Rational
PPT
Documentacion rational
PPT
Documentacion rational
PPT
Proceso Unificado De Rational
PDF
Metodologia rup
Metodologias
Proceso del software
Proceso del software (Metodos Agiles)
Carrera de informatica_educativa
Jhostin vasquez modelos de software
Modelos de Desarrollo del Software
Modelos del software
analisis y modelado de sistemas de informacion
Metodología de desarrollo de software
Metodos del desarrollo de sistema de informacion
procesos de desarrollo de software
METODOLOGIAS CLASES Y GENERACIONES RUP - SCRUM
Análisis de Sistemas
Metodologia y prototipo
4.1 Proceso Unificado De Rational
Documentacion rational
Documentacion rational
Proceso Unificado De Rational
Metodologia rup

Más de Hermes Romero (17)

PDF
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
PDF
Gestión del talento en la hostelería
PDF
Intalligent - Sistema de gestión del talento ágil
PDF
Agile talent management
PDF
Metodología de gestión del talento ágil
PDF
Intalligent, Agile Talent Management
PDF
Introducción a Microstrategy
PDF
Introduction to Mobile Marketing - The complete tutorial
PDF
Still using marketing from the stone age??
PPT
Manual XML
PPT
Oracle xmldb
PPT
Fundamentos de DataWarehouse
PPT
Introducción a UML
PPT
Desarrollo de sistemas
PPT
Calidad de software
PPT
Proyectos software
PPT
Introducción a Business objects
UNLEASHING INNOVATION Exploring Generative AI in the Enterprise.pdf
Gestión del talento en la hostelería
Intalligent - Sistema de gestión del talento ágil
Agile talent management
Metodología de gestión del talento ágil
Intalligent, Agile Talent Management
Introducción a Microstrategy
Introduction to Mobile Marketing - The complete tutorial
Still using marketing from the stone age??
Manual XML
Oracle xmldb
Fundamentos de DataWarehouse
Introducción a UML
Desarrollo de sistemas
Calidad de software
Proyectos software
Introducción a Business objects

Metodologias de desarrollo

  • 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
  • 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