47
© 2009 DATABASE TEAM -- www.db-team.com © 2009 Hermenegildo Romero -- [email protected] Metodologías de Desarrollo Hermenegildo Romero

Metodologias de desarrollo

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Metodologías de Desarrollo

Hermenegildo Romero

Page 2: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 3: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 4: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 5: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 6: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 7: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 8: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 9: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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)

Page 10: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 11: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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:

1.Características: experiencia del personal, requisitos a cumplir, etc.

2.Formas de gestión del sistema.3.Riesgo asumido con cada alternativa.

• Desarrollar y Verificar: Programar y probar el software

Page 12: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 13: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 14: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 15: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Espiral

Page 16: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 17: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 18: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 19: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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)

Page 20: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 21: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 22: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 23: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 24: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 25: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 26: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 27: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 28: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 29: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 30: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

RUP

Page 31: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 32: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 33: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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.

Page 34: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 35: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Metodologías Ágiles

• Iteraciones cortas Entre 2 y cuatro semanas • Se planifica sólo cuando ha terminado una

iteración

Page 36: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 37: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Metodologías Ágiles

• Se puede firmar online en agilemanifesto.org

Page 38: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Metodologías Ágiles

• Individuos e iteraciones– Prioridad

• Calidad profesional del equipo• Entrega temprana y continua

– Cada 2 o 4 semanas se entrega software funcional 100% operativo

VS (tradicional)

Procesos y herramientasDebe servir de ayuda pero no pueden ser el objetivo

Page 39: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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 extensivaDebe servir de complemento pero no ser un impedimento

Page 40: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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 contractualSólo el cliente conoce lo que da verdadero valor al negocio

Page 41: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Metodologías Ágiles

• Respuesta ante el cambio– Prioridad

• Aceptar cambios de requerimientos• Ventaja competitiva para el negocio

VS

Seguir un planEl cliente no está realmente seguro hasta que no prueba el software

Page 42: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Metodologías Ágiles

• Hay decenas de metodologías ágiles– Las mas representativas

• SCRUM• KANBAN• eXtreme Programming (XP)

Page 43: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 44: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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 columnasCola de esperaAnálisis En cola

En curso Desarrollo En cola En curso Implementación En cola En curso

Page 45: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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

Page 46: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

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)

Page 47: Metodologias de desarrollo

© 2009 DATABASE TEAM -- www.db-team.com© 2009 Hermenegildo Romero -- [email protected]

Muchas GraciasHermenegildo Romero

Database Team

[email protected]

www.db-team.com