You are on page 1of 65

Facultad de Ingeniería

EAP. Ingeniería Informática

Ing. CIP. Eddy Iván Quispe Soto

Preguntas al desarrollo de SW
¿Por qué se consume
tanto tiempo en la
terminación de los
sistemas informáticos?

¿Por qué no se
identifican todos los
errores del software
antes de entregarlo
al cliente?

¿Por qué es tan
elevado el costo
de los Proyectos
de Sistemas?
¿Los usuarios finales están
totalmente satisfechos con
los sistemas informáticos
que utilizan?

¿Por qué es tan difícil
medir el avance del
desarrollo del
software?

Notación
UML

Herramientas
Rational Rose
Poseidon

Proceso
Rational Unified Process
Métrica 3.0 o XP

Mejor Metodología ? .

.

Rational Unified Process .

. Los Objetivos de una iteración se establecen en función de la evaluación de las iteraciones precedentes. la cual consiste en reproducir el ciclo de vida en cascada a menor escala.Rational Unified Process Cada una de estas etapas es desarrollada mediante el ciclo de iteraciones.

Transmisión. En esta etapa el objetivo es determinar la arquitectura óptima. Construcción. El objetivo es llegar a obtener el release del proyecto.Rational Unified Process FASES Inicio. En esta etapa el objetivo es llevar a obtener la capacidad operacional inicial. El Objetivo en esta etapa es determinar la visión del proyecto. . Elaboración.

Implementación: Creando software que se ajuste a la arquitectura y que tenga el comportamiento deseado. Distribución: Hacer todo lo necesario para la salida del proyecto Disciplina de Soporte Ambiente: Administrando el ambiente de desarrollo.Rational Unified Process Bajo dos disciplinas: Workflow Disciplina de Desarrollo Ingeniería de Negocios: Entendiendo las necesidades del negocio. . Pruebas: Asegurándose que el comportamiento requerido es el correcto y que todo los solicitado esta presente. Requerimientos: Trasladando las necesidades del negocio a un sistema automatizado. Análisis y Diseño: Trasladando los requerimientos dentro de la arquitectura de software. Configuración y administración del cambio: Guardando todas las versiones del proyecto. Administrando el proyecto: Administrando horarios y recursos.

Metodologías 100% herramientas y ágiles Para dar una idea de qué metodología podemos utilizar y cual se adapta más a nuestro medio: MSF y XP Cuando los proyectos que se van a desarrollar son de mayor envergadura. y empezamos a buscar cual sería la más apropiada para nuestro caso y para proyectos de menor envergadura están las metodologías ágiles . ahí si toma sentido el basarnos en una metodología de desarrollo 100% herramientas.

minimalismo respecto del modelado y la documentación del sistema La colaboración con el cliente más que la negociación de un contrato Responder a los cambios más que seguir estrictamente una planificación .¿Qué es una Metodología Ágil? Las Metodologías Ágiles valoran: Al individuo y las interacciones en el equipo de desarrollo más que a las actividades y las herramientas Desarrollar software que funciona más que conseguir una buena documentación.

Sofisticadas herramientas CASE y notaciones (UML) Una solución a medida para un segmento importante de proyectos de desarrollo de software .¿Por qué surgen las Metodologías Ágiles (AMs)? Dificultad para implantar metodologías tradicionales.

Comparación Ágil vs No Ágil Metodología Ágil Metodología No Ágil Pocos Artefactos Más Artefactos Pocos Roles Más Roles No existe un contrato tradicional o al menos es bastante flexible Cliente es parte del equipo de desarrollo (además in-situ) Existe un contrato prefijado El cliente interactúa con el equipo de desarrollo mediante reuniones Grupos pequeños (< 10 integrantes) y Grupos grandes trabajando en el mismo sitio Menos énfasis en la arquitectura La arquitectura es esencial .

com DSDM (Dynamic Systems Development Method) www.crystalmethodologies.org Lean Development Feature-Driven Development Extreme Programming www.com FDD (Desarrollo Guiado por Funcionalidad-Feature Driven Development ). .org Scrum www.extremeprogramming.Principales AMs Crystal Methods (Cockburn’s Crystal Family Methodologies) www.dsdm.controlchaos.adaptivesd.org Adaptative Software Development www.

Microsoft Solution Framework MSF .

modelos y prácticas de uso. el desarrollo y la gestión de proyectos tecnológicos.Microsoft Solution Framework (MSF) Flexible e interrelacionada con una serie de conceptos. MSF se centra en los modelos de proceso y de equipo dejando en un segundo plano las elecciones tecnológicas . que controlan la planificación.

así como también. Escalable: puede organizar equipos tan pequeños entre 3 o 4 personas. usado en cualquier parte como un mapa. proyectos que requieren 50 personas a más. . Flexible: es utilizada en el ambiente de desarrollo de cualquier cliente.Microsoft Solution Framework (MSF) MSF características: Adaptable: es parecido a un compás. del cual su uso es limitado a un específico lugar. Tecnología Agnóstica: porque puede ser usada para desarrollar soluciones basadas sobre cualquier tecnología.

Puede ser escalable dependiendo del tamaño del proyecto y del equipo de personas disponibles. Modelo de Equipo: Mejora el rendimiento del equipo de desarrollo. . Proporciona una estructura de pautas a seguir en el ciclo de vida del proyecto. la liberación de versiones y explicando su relación con el Modelo de equipo. y aumentar la calidad y acortando el tiempo de entrega. Modelo de Proceso: Mejorar el control del proyecto. las actividades. Estructura flexible para organizar los equipos de un proyecto.Microsoft Solution Framework Modelos: Modelo de Arquitectura del Proyecto: Diseñado para acortar la planificación del ciclo de vida. describiendo las fases. Este modelo define las pautas para construir proyectos empresariales a través del lanzamiento de versiones. minimizando el riesgo.

EXtreme Programming Metodología Ágil .

. al usuario final.Extreme Programing (XP) La metodología consiste en una programación rápida o extrema. pues es uno de los requisitos para llegar al éxito del proyecto. cuya particularidad es tener como parte del equipo.

Proceso de Desarrollo XP 1. ya que los requisitos no son recolectados en la fase previa del desarrollo. Interacción con el Cliente: Esta relación es diferente a la de otras metodologías. El cliente se encuentra mas cercano al proceso de desarrollo. .

Planeación del Proyecto: * Planificación de entregas * Muchas entregas y muy frecuentes * Mecanismos de revisión .2.

Diseño.3. Desarrollo y Pruebas: * El desarrollo es la pieza clave de todo proceso. (Desarrollo a máxima velocidad) * El diseño debe ser revisado y mejorado de forma continua. * Las pruebas unitarias se implementan a la vez que el código de producción. .

¿Porque XP? Proyectos donde los requisitos tienen gran posibilidad de cambiar (clientes indecisos) Proyectos con alto riesgo. .

¿Qué es XP? Es una metodología ágil Diseñado para entornos dinámicos. Pensado para equipos pequeños (hasta 12 programadores). . Orientado fuertemente hacia la codificación Énfasis en la comunicación informal. verbal.

¿Qué es XP? Es una metodología ágil La programación extrema es una metodología ligera para el desarrollo de software. Hace énfasis en: satisfacción del cliente y trabajo en equipo. esta se puede clasificar dentro de las evolutivas. Dentro de las metodologías ágiles. .

Valores que fomenta XP Comunicación Simplicidad Retroalimentación Coraje .

Satisfacción del programador. Programación organizada.Ventajas XP Simplicidad. . Reciclado continuo de código. Menor traza de errores. Comunicación.

Desventajas XP Dificultad para determinar costos de un proyecto. . Se usa principalmente en proyectos pequeños.

Roles XP Programador Cliente Encargado de pruebas Encargado de seguimiento Entrenador Consultor Gestor NewClass .

Prácticas XP Programación en Parejas Toda el código se escribe en parejas Se produce código de mayor calidad Extiende el conocimiento “Se realizan el trabajo de 1 persona en casi la mitad del tiempo y mejor” (cuestionable) .

Prácticas XP Integración Continua El código se integra y se prueba después de pocas horas Existe una ordenador dedicado para la integración Cada pareja integra su código en dicho ordenador Corrección de todos los errores antes de añadir mejoras .

Extreme Programing (XP) Características Pruebas Unitarias: se basa en las pruebas realizadas a los principales procesos. . siendo más flexible al cambio. Refabricación: se basa en la reutilización de código. de tal manera que adelantándonos en algo hacia el futuro. podamos hacer pruebas de las fallas que pudieran ocurrir. para lo cual se crean patrones o modelos estándares. Es como si nos adelantáramos a obtener los posibles errores.

Cada miembro lleva a cabo la acción que el otro no está haciendo en ese momento.Extreme Programing (XP) Características Programación en pares: una particularidad de esta metodología es que propone la programación en pares. . Es como el chofer y el copiloto: mientras uno conduce. el otro consulta el mapa. la cual consiste en que dos desarrolladores participen en un proyecto en una misma estación de trabajo.

el cliente y los usuarios finales . entre los usuarios y los desarrolladores •La simplicidad. concreta y frecuente del equipo de desarrollo. al desarrollar y codificar los módulos del sistema •La retroalimentación.Extreme Programing (XP) Lo fundamental en este tipo de metodología es: •La comunicación.

Conclusión XP XP es más una filosofía de trabajo que una metodología. .

Scrum .

Todos los jugadores de ambos equipo se agrupan en una formación en la cual lucharán por obtener el balón que se introduce por el centro.¿Que Significa Scrum? Scrum significa melé Melé es un tipo de jugada del deporte Rugby. .

¿Qué es Scrum? • Uno de los métodos Ágiles • Enfocado en el nivel de gestión • Iterativo .Ciclos de entre 2 y 4 semanas llamados Sprints • Incremental -Un incremento en la funcionalidad está listo al final -de cada sprint • Priorizado .Se trabaja en orden de prioridad dado por el cliente • Equipos auto-organizados y multi-funcionales .

¿Qué Es SCRUM?  SCRUM es una metodología ágil de gestión de proyectos cuyo objetivo primordial es elevar al máximo la productividad de un equipo.  Ideal para proyectos con un rápido cambio de requerimientos. .  Reduce al máximo la burocracia y actividades no orientadas a producir software que funcione y produce resultados en periodos muy breves de tiempo (cada 30 días). por medio de iteraciones o Sprints.

. aunque hay gente por ahí que la usa o la quiere usar en otras profesiones y áreas.¿Y EN QUE SE UTILIZA? En el desarrollo del Software concretamente.

Ingeniería De Software Santiago.  Delega completamente en el equipo la responsabilidad de decidir la mejor manera de trabajar para ser lo más productivos posibles y. le da gran protagonismo a las reuniones que realicen a lo largo del proyecto. 16 Diciembre 2005 4/30 .  Sus raíces teóricas están en las teorías de la autoorganización.Contexto SCRUM  Sólo abarca prácticas de gestión sin entrar en las prácticas de desarrollo como puede hacer XP.

.  SCRUM por sus características no es válido para cualquier proyecto ni para cualquier persona o equipo de personas. aunque hay empresas que han utilizado SCRUM con éxito con equipos más grandes.  SCRUM según muchos especialistas de esta metodología. es óptima para equipos de trabajo de hasta 8 personas.¿Y PARA EL DESARROLLO DE SOFTWARE TENEMOS QUE USAR SCRUM?  En realidad NO.

.EXISTEN 2 PARTES IMPORTANTES EN SCRUM ACTORES Product Owner : Propietario del Producto.  Tiene un trato directo con los diferentes directivos (mercadotecnia.  Acepta o rechaza resultados del trabajo. finanzas.  Representa a todos los interesados en el producto final. etc. tecnología.)  Define las características del producto.

 Proteger al equipo de interferencias externas. sugerencias o necesidades.  Esta formado de 5 a 9 integrantes  Habilidades transversales para realizar el trabajo Usuarios o Clientes: Son los beneficiarios finales del producto. y quitar cualquier barrera que lo impida. y son quienes viendo los progresos. y quitar impedimentos  Asegurar que se siga el proceso Scrum Team:  Tienen la responsabilidad de entregar el producto. . pueden aportar ideas.Scrum Master:  Asegurar la cooperación de todos los roles.

Su duración máxima es de 30 días. La tecnología acordada no funciona. Se llevan a cabo las tareas pre-establecidas y no se puede modificar el trabajo acordado en el backlog. Ingeniería De Software Santiago. 16 Diciembre 2005 10/30 . Sólo el ScrumMaster puede abortar un sprint si lo considera no viable por alguna de las sgtes. razones:    Las circunstancias del negocio han cambiado.Artefactos SCRUM Sprint     Es la base del desarrollo SCRUM. El equipo ha tenido interferencias.

El cliente es el responsable de crear y gestionar la lista (con la ayuda del Facilitador y del equipo.Product Backlog La lista de objetivos que representa la visión y expectativas del cliente respecto a los objetivos y entregas del producto o proyecto. quien proporciona el coste estimado de completar cada requisito). .

éste NO puede ser alterado o modificado.Sprint Backlog Corresponde a una o más tareas que provienen del Product Backlog. pero esto debe de ser marcado antes de iniciar el Sprint Backlog. Puede haber Sprint Backlogs de 2 semanas de 4 semanas. Es decir. Una norma fundamental es que mientras un Sprint Backlog se inicia. Las tareas del Sprint Backlog se deben realizar en unas 2 ó 4 semanas. Hay que esperar a que concluya el Sprint Backlog para realizar la correspondiente modificación o alteración cuya tarea. se saca una o más tareas que van a formar parte del Sprint Backlog. formaría parte de otro Sprint Backlog. .

    Qué tareas ha realizado desde la última reunión (que he hecho). Sobre qué se va a trabajar en el día actual (que voy a hacer hoy).Daily Scrum Meeting Es una tarea iterativa que se realiza todos los días que dure el Sprint Backlog con el equipo de desarrollo o de trabajo. informal y ágil. Identificación de obstáculos o riesgos que impiden o pueden impedir el normal avance (que ayuda necesito). en la que se le hace 3 preguntas a cada integrante del equipo. El Scrum Master. . de un máximo de 30 minutos. debe eliminar aquí cualquier obstáculo que encuentre. Se trata de una reunión operativa.

Metodologia Ágil Scrum (5)
Ciclo de Vida do Processo Scrum
Fase de
planejamento

Atualizações
regulares

Product
backlog

Fase de estágio

Fase de desenvolvimento

Fase de liberação

Inspeção
24 hours

Prioriza
requisitos

Versão
final
Incremento do
produto

Sprint
backlog

Documentação

Estimativa de
esforço

Iteração

– O product owner cria e prioriza um backlog inicial de produto.
– A equipe realiza a estimativa de esforço (máximo 3-pessoas-dia).
– A equipe implementa novas funcionalidades e melhora o sistema.
– O sistema é colocado em uso prático e documentação necessária é criada.

Ciclo Básico
Trabajo
Diario
Pila de Producto
Priorizada por el
Dueño de Producto
Sprint :
2-4 semanas
Pila de Sprint

Tareas sacadas de
la Pila de Producto
La nueva funcionalidad
se muestra al final de
cada sprint

Source: Adapted from Agile Software
Development with Scrum by Ken
Schwaber and Mike Beedle.

Roles en Scrum

Hay dos categorías
- Pigs (comprometidos con el proceso)
- Chickens (no son parte del proceso pero hay que considerarlos)

Un cerdo y una gallina se encuentran en la calle

Metodologías clásicas .

2 Documentación. . Producción.1 Construcción. 3.Metodología CASE Etapas en el método CASE La metodología CASE se basa en un análisis y desarrollo del tipo descendiente ("topdown") en que el ciclo de vida de un sistema se compone de las siguientes etapas: 1. Estrategia. Diseño. 4. 6. Análisis. Transición. 2. 4. 5.

Metodología CASE .

Metodología CASE 1. etc . A nivel directivo: costo. tecnología. personal. Estrategia Necesidades de la organización y del ambiente en que operará el sistema o sistemas a implantar. tiempos.

Metodología CASE 2. Análisis Entrevistas ya no a un nivel directivo como en la anterior. se definen las restricciones que tendrá el sistema y la estrategia que se seguirá en la etapa de transición . sino a un nivel Operativo y técnico Modelo de entidad relación y el funcional (servicios).

y en especificaciones de almacenamiento y el modelo de funcional. en módulos y manuales de procedimientos . El modelo entidad relación será transformado en un diseño de base de datos. datos del ambiente técnico y las decisiones previas en los niveles requeridos de automatización. Diseño Logrando niveles de servicios acordados.Metodología CASE 3.

1. en la siguiente figura se muestra el proceso de esta etapa .Metodología CASE 4. pruebas de arriba a abajo (prueba del sistema) control de versiones del sistema y pruebas Programas probados y las bases de datos afinada. diseño de la estructura del sistema. Construcción Planeación. codificación de abajo a arriba (prueba de unidades y enlaces).

1. Documentación Uso y un mantenimiento efectivos y eficientes de los sistemas programados son los manuales Los manuales. resultados de esta etapa. de los programas realizados y del análisis del estilo de trabajo y nivel de competencia de los usuarios y operadores de los sistemas .Metodología CASE 4. se elaboran a partir de las especificaciones de diseño.

Transición Incluir la alimentación de la nuevas bases de datos. El resultado final de esta etapa es un reporte que muestre que las pruebas fueron satisfactorias . la capacitación de los usuarios y el desarrollo de pruebas La transición debe llevarse a cabo con una interrupción mínima de la organización. y debe dejar a los usuarios confiados y listos para explotar el nuevo sistema.Metodología CASE 5.

y con intervención mínima de los administradores del sistema. Producción Asegura que el sistema funcione correctamente en la mayoría de los casos. Se reevaluan los resultados y se hacen refinamientos del sistema. .Metodología CASE 6. El resultado de esta etapa un sistema listo para su operación. los cambios necesarios deberán ser introducidos sin afectar a los usuarios. y deberá conseguirse la máxima confianza de los usuarios.

Metodología CASE Fortalezas: * Transición * Documentación Debilidad: * No hay Etapa de mantenimiento permanente * Optimo para sistemas que trabajan sobre procesos ya definidos y algunos automatizados .

Metodología Espiral 6 FASES Metodología o Modelo? .

Ingeniería Informática Ing. CIP.Facultad de Ingeniería EAP. Eddy Iván Quispe Soto .