Entre algunas de las metodologías iterativas se tienen: Ganar Ganar (Win Win), FUSION, UP, XP, SCRUM, RUP.
De ellas ustedes deben indicar:
Características, Fases (indicar las actividades), Diagramas que utiliza, Ventajas, Desventajas.
sábado, 10 de abril de 2010
Suscribirse a:
Enviar comentarios (Atom)
lo publicamos aqui o lo mandamos por mail?
ResponderEliminarLuis Padilla.
ResponderEliminar#200706270
Metodología RUP (Rational Unified Process).
1. Características más importantes:
- Dirigido por casos de uso. Estos se especifican, se diseñan y los casos de usos finales son la fuente a partir de la cual los ingenieros de prueba construyen sus casos de prueba.
- Centrado en la arquitectura. Involucra: la estructura y el comportamiento, la funcionalidad, la reutilización, la facilidad de comprensión, la flexibilidad, el rendimiento, la estética y las restricciones y compromisos tecnológicos y económicos.
- Iterativo e incremental. Permite dividir el proyecto en mini proyectos, se basa en la evolución de prototipos ejecutables que se muestran a los usuarios y clientes, a cada iteración se reproduce el ciclo de vida en cascada a menor escala.
2. Fases:
- Inicio: Se desarrolla una descripción del producto final a partir de una buena idea y se presenta el análisis de negocio para el producto. Se define el alcance del proyecto.
- Elaboración: Se especifican en detalle la mayoría de los casos de uso del producto y se diseña la arquitectura del sistema a través de diagramas de modelado de los casos de usos.
- Construcción: Se lleva a cabo la elaboración e implementación del producto a través de numerosas iteraciones.
- Transición: Se corrigen los defectos y el producto se prepara para su entrega al usuario final.
3. Diagramas que utiliza:
- Diagrama de clases.
- Modelo E-R.
- Diagrama de secuencia.
- Diagrama de estado.
- Diagrama de colaboración.
4. Ventajas:
- Se adapta a proyectos grandes.
- Mitigacion temprana de posibles riesgos altos.
- Progreso visible en las etapas tempranas.
- El conocimiento adquirido en una iteración puede aplicarse de iteración a iteración.
- Los usuarios están involucrados continuamente.
5. Desventajas:
- Se requieren muchos participantes en el proyecto.
- Posible sobrecostos.
- Por el grado de complejidad puede no resultar muy adecuado.
- El RUP es generalmente mal aplicado en el estilo cascada.
- Requiere conocimientos del proceso y de UML.
- Demoras y cancelación de proyectos.
Las metodologías tradicionales para el desarrollo de software imponen un proceso definido. Sin embargo, un gran número de procesos de desarrollo no están completamente definidos, aunque se los trata como si lo estuvieran. SCRUM proporciona una metodología que trata a estos procesos como una caja negra controlada aplicando mecanismos apropiados para su control.
ResponderEliminarDEFINICIÓN
SCRUM es una metodología para gestión, mejora y mantenimiento de un sistema nuevo o existente. SCRUM se concentra en como los miembros del equipo deberían funcionar a fin de producir un sistema flexible en un entorno que cambia constantemente. Permite a los equipos de desarrollo adaptarse dentro de un ambiente complejo utilizando procesos imprecisos. El origen de la palabra SCRUM procede del rugby: acto de preparar el avance del equipo en unidad pasando la pelota a uno y otro jugador. Igual que el juego, SCRUM es adaptativo, ágil, auto-organizante y con pocos tiempos muertos.
CARACTERÍSTICAS
• Empírico
• Iterativo
• Flexible
• Equipos auto-organizativos
Los requerimientos se capturan como ítems en un listado (product backlog) SCRUM considera que el proceso del desarrollo de software involucra muchas variables de entorno y técnicas tales como: requerimientos, tiempo, recursos, costo, competencia, calidad y tecnología. Es probable que todas ellas cambien durante el proceso. El entregable se determina durante el proyecto basándose en el entorno. SCRUM utiliza técnicas de orientación a objetos para la construcción de los entregables. Los proyectos SCRUM pueden estimarse empleando el método de function points. Sin embargo, la estimación sirve solo para el comienzo, debido a que el tiempo y el costo son determinados dinámicamente en respuesta a factores del entorno.
PROCESO SCRUM
El proceso de SCRUM se divide en 3 grandes etapas:
Inicio DEFINIDO Desarrollo EMPÍRICO Cierre DEFINIDO
Etapas de SCRUM
SCRUM trata la fase de desarrollo como una caja negra que requiere controles externos. Los controles se ponen en cada iteración de la fase de desarrollo para evitar el caos y a su vez maximizar la flexibilidad.
El proyecto está abierto al entorno hasta la fase de cierre. El entregable puede ser cambiado en cualquier momento durante las fases de inicio y desarrollo del proyecto.
Inicio (Pregame)
ResponderEliminarEsta etapa está conformada por dos
subetapas:
Planeamiento: Consiste en establecer la visión, el presupuesto, forma de financiamiento y el backlog del producto. En esta fase se selecciona que funcionalidad es la más apropiada para desarrollo inmediato. También se establece el equipo de trabajo, se evalúan las herramientas de desarrollo y se define la fecha de entrega (es una fecha aproximada).
Arquitectura : Esta fase consiste en la conceptualización y análisis. Si el proyecto se trata de la mejora de un nuevo sistema, sólo se realiza un análisis limitado. Se realiza un diseño de alto nivel para actualizar los modelos del dominio y reflejar el contexto del nuevo sistema y los requerimientos y las modificaciones necesarias de la arquitectura del sistema. Los diseñadores y arquitectos dividen el proyecto en paquetes basándose en los ítems del backlog. En la jerga de SCRUM se llaman paquetes a los objetos o componentes que necesitan cambiarse en cada iteración.
VENTAJAS
• Al realizar reuniones periódicas y focalizarse en la remoción de los impedimentos recientes, evita los estancamientos en el proyecto.
• Seguimiento del proyecto: debido a las reuniones diarias efectuadas, ya que solo se pregunta lo que se hizo y lo que se hará durante el próximo día, lo cual no genera pérdida de tiempo. El sprint backlog se va actualizando continuamente, lo cual permite conocer exactamente el estado de avance del ciclo.
• Seguimiento del equipo: también se debe a las reuniones diarias efectuadas, se puede ver que está haciendo cada uno de los miembros del equipo.
• Las pruebas y la documentación se realizan en paralelo con el desarrollo y se obtiene software tangible que puede incrementar su funcionalidad en cada sprint.
• Provee mecanismos de control para planear el lanzamiento de un producto y en consecuencia gestionar las variables a medida que avanza el proyecto. Esto posibilita a las organizaciones cambiar el proyecto y los entregables en cualquier punto del tiempo, entregando el lanzamiento
• más apropiado.
• Permite a los desarrolladores encontrar las soluciones más ingeniosas a lo largo del proyecto a medida que van aprendiendo y el entorno cambia.
• Mejora continua: SCRUM permite una reingeniería rápida, ágil y continúa.
• Se logra progresar en el producto aún cuando los requerimientos no son muy estables
• Aumenta la comunicación con el equipo
• El cliente obtiene feedback frecuente de cómo funciona realmente el producto.
DESVENTAJAS
• SCRUM requiere que la gerencia delegue autoridad para la toma de decisiones al equipo SCRUM, incluso permitiéndoles fallar, si es necesario.
• SCRUM es una metodología diferente: las personas suelen ser resistentes al cambio y algunas no se sienten cómodas con la responsabilidad que genera formar parte del equipo SCRUM.
Jimmy Katan
ResponderEliminar200605860
Programación Extrema (XP)
Características:
-Comunicación: Los programadores están en constante comunicación con los clientes para satisfacer sus requisitos y responder rápidamente a los cambios de los mismos. Muchos problemas que surgen en los proyectos se deben a que después de concretar los requisitos que debe cumplir el programa, no hay una revisión de los mismos, pudiendo dejar olvidados puntos importantes.
-Simplicidad: Codificación y diseños simples y claros. Muchos diseños son tan complicados que cuando se quieren ampliar resulta imposible hacerlo y se tienen que desechar y partir de cero.
-Realimentación (Feedback): Mediante la realimentación se ofrece al cliente la posibilidad de conseguir un sistema apto a sus necesidades ya que se le va mostrando el proyecto a tiempo para poder ser cambiado y poder retroceder a una fase anterior para rediseñarlo a su gusto.
-Coraje: Se debe tener coraje o valentía para cumplir los tres puntos anteriores; Hay que tener valor para comunicarse con el cliente y enfatizar algunos puntos, a pesar de que esto pueda dar sensación de ignorancia por parte del programador, hay que tener coraje para mantener un diseño simple y no optar por el camino más fácil y por último hay que tener valor y confiar en que la realimentación sea efectiva.
Fases:
1ª Fase: Planificación del proyecto.
Historias de usuario.
Release planning.
Iteraciones:
Velocidad del proyecto.
Programación en pareja.
Reuniones diarias.
2ª Fase: Diseño.
Diseños simples.
Glosarios de términos.
Riesgos.
Funcionalidad extra.
Tarjetas C.R.C.
3ª Fase: Codificación.
4ª Fase: Pruebas.
El uso de los test en X.P es el siguiente.
Test de aceptación.
Diagramas que utiliza:
-Plan de lanzamiento
-Planes de iteración
-Diseño de pruebas
-Tarjetas CRC
-UML
Ventajas:
-Programación organizada.
-Menor taza de errores.
-Satisfacción del programador.
Desventajas:
-Es recomendable emplearlo solo en proyectos a corto plazo.
-Altas comisiones en caso de fallar.
RUP by Rupo
ResponderEliminarCaracteristicas:
El Rational Unified Process o Proceso Unificado de Rational Inc es una implementación comercial del Proceso Unificado. Es un proceso de ingeniería de software que provee un enfoque para asignar tareas y responsabilidades dentro de una organización de desarrollo. Su objetivo es asegurar la producción de software de alta calidad que satisfaga la necesidad del usuario final dentro de un tiempo y presupuesto previsible.
El RUP mejora la productividad del equipo ya que permite que cada miembro del grupo sin importar su responsabilidad específica acceda a la misma base de datos de conocimiento. Esto hace que todos compartan el mismo lenguage, la misma visión y el mismo proceso acerca de cómo desarrollar software.
• Forma disciplinada de asignar tareas y responsabilidades (quién hace qué, cuándo 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 del software
• Verificación de la calidad del software
Fases:
El ciclo de vida del software está particionado en ciclos, cada ciclo trabaja en una nueva generación del producto. El RUP divide un ciclo de desarrollo en cuatro fases consecutivas.
* Fase de inicio
* Fase de elaboración
* Fase de construcción
* Fase de transición
Cada fase constituye un eslabón bien definido, un punto en el tiempo en el cual ciertas decisiones críticas deben tomarse, y por lo tanto afinar metas debe haber sido alcanzadas.
Diagramas que utiliza:
El modelo incluye seis diagramas:
* Diagrama De clase
* Diagrama Objeto
* Diagrama Estado de transición
* Diagrama La interacción
* Diagrama Módulo
* Diagrama El proceso
Ventajas
*Evaluación en cada fase que permite cambios de objetivos
*Funciona bien en proyectos de innovación.
*Es sencillo, ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el software.
*Seguimiento detallado en cada una de las fases.
Desventajas
*La evaluación de riesgos es compleja
*Excesiva flexibilidad para algunos proyectos
*Estamos poniendo a nuestro cliente en una situación que puede ser muy incómoda para él.
*Nuestro cliente deberá ser capaz de describir y entender a un gran nivel de detalle para poder acordar un alcance del proyecto con él.
Angel gomez
ResponderEliminar200707860
Scrum es una metodología ágil, que puede ser usada para manejar el desarrollo de productos complejos de software , en esta metodología se usan practicas iterativas e incrementales. Scrum a sido usado desde proyectos simples hasta en proyectos de cambios estructurales completos en las empresas para sus negocios. También, incrementa significativamente la productividad y reduce el tiempo de espera para ver los beneficios así como facilitar la adaptación de los sistemas desarrollados. Esta metodología ayuda a que trabajen todos juntos, en la misma dirección, con un objetivo claro.
Sin embargo, Scrum no es una metodología de desarrollo, puesto que no indica qué se debe hacer para hacer el código. Debería, por tanto, complementarse con alguna otra metodología de desarrollo una de ellas puede ser la programación extrema.
Características
• Es un proceso que agiliza el manejo y control del trabajo de desarrollo.
• Es un contenedor de prácticas de ingeniería existentes
• Se enfoca en desarrollo basado en equipos , incrementa el desarrollo cuando los requerimientos cambian rápidamente
• Es un proceso que controla el caos entre los conflictos de interés y las necesidades
• Mejorar las comunicaciones y maximiza r la cooperación
• Ayuda a detectar la causa y solucionar cualquier problema en el desarrollo
• Es escalable desde proyectos simples a proyectos completos organizacionales, esta metodología ha controlado y organizado el desarrollo de productos y proyectos con miles de desarrolladores e implementadores
Fases
El proceso de desarrollo Scrum se compone de 5 actividades importantes
• planes de lanzamientos
• Distribución, revisión y ajuste de los estándares de producto
• Sprint
• revisión del Sprint
• Cierre
Diagramas usados
• Diagramas de Estructura (Clases, Componentes, Objetos, Paquetes, Despliegue)
• Diagramas de Comportamiento (Actividades, Casos de Uso, Estados)
• Diagramas de Interacción (Secuencia, Comunicación)
Ventajas
• Se obtiene software lo más rápido posible y este cumple con los requerimientos más importantes.
• Se trabaja en iteraciones cortas, de alto enfoque y total transparencia.
• Se acepta que el cambio es una constante universal y se adapta el desarrollo para integrar los cambios que son importantes.
• Se incentiva la creatividad de los desarrolladores haciendo que el equipo sea auto administrado.
• Se mantiene la efectividad del equipo habilitando y protegiendo un entorno libre de interrupciones e interferencias.
• Permite producir software de una forma consistente, sostenida y competitiva.
• Las reuniones se dedican a inconvenientes recientes, evitando el estancamiento
Desventajas
• Requiere delegar responsabilidades al equipo, incluso permite fallar si es necesario.
• Es una metodología que difiere del resto, y esto causa cierta resistencia en su aplicación para algunas personas SCRUM.
Fuentes consultadas
http://www.chuidiang.com/ood/metodologia/scrum.php
http://www.ayp.com.uy/site/esp/carpetas/software_factory.pdf
http://www.omitsis.com/scrum-como-metodologia-de-desarrollo
DANIEL DELGADO
ResponderEliminarCARNET 9916730
Modelo de desarrollo evolutivo WinWin
El modelo de desarrollo evolutivo,
Es visto como una variación o una evolución del modelo en espiral
Que utiliza una aproximación cíclica para el desarrollo incremental
De sistemas software.
WinWin literalmente significa “GanarGanar” y hace referencia a que el
Desarrollo del proceso software se basa en una constante negociación
Entre el cliente y el desarrollador en busca del beneficio mutuo y
Constante, o sea, el cliente quiere “ganar” y el desarrollador también
Quiere “ganar”, por lo que el centro de la negociación entre ambos
Adquiere una especial relevancia en la fase de los requisitos del
Sistema.
Cada ciclo envuelve cuatro actividades principales:
• Elaboración del sistema o subsistemas y los objetivos,
Restricciones y alternativas del proceso.
• Evaluar las alternativas respecto a los objetivos y restricciones.
Identificar y resolver el mayor número de fuentes de producto y
Riesgos posibles.
• Elaboración de la definición del producto y del proceso.
• Planificación del próximo ciclo y actualización de la planificación
Del ciclo de vida. Ello incluye, si es necesario, el
Particionamiento del sistema en subsistemas a desplegarse en
Paralelo. Puede incluir, además, la definición de un plan para
Finalizar el proyecto si éste es de riesgo demasiado alto o no es
Factible.
Ventajas
• Minimiza riesgos del proyecto
• Agrega objetivos de calidad
Desventajas
• Genera mucho tiempo en el desarrollo del sistema
• Resulta como un modelo muy costoso
• Requiere de mucha experiencia en la identificación de los riesgos
DANIEL DELGADO
ResponderEliminarCARNET 9916730
Metodología de Fusión
El diseño consiste en desarrollar un modelo abstracto de cómo un sistema lleva a cabo el comportamiento especificado en el análisis.
El diseñador escoge como se va a construir el sistema. Durante este proceso, los métodos
Se unen a las clases. El diseñador también escoge cómo los objetos se relacionan entre ellos y qué relaciones de herencia entre estas clases son apropiadas.
La fase de diseño de Fusión se basa en las CRC y los métodos de Booch.
La salida del diseño es una estructura de software orientado a objeto que contiene la misma información y mantiene las relaciones definidas en el modelo de objetos del sistema.
Durante esta fase se desarrollan los tres modelos siguientes:
• Gráficos de Interacción de Objetos. Describen cómo los objetos interactúan en tiempo de ejecución para conseguir la funcionalidad especificada en el modelo de funcionamiento en la fase
de análisis.
• Descripciones de Clases. Proporciona una especificación de la interface de la clase, atributos de referencia a objetos, y signaturas de los métodos para todas las clases en el sistema.
• Gráficos de Herencia. Describen las estructuras de herencia clases/subclases.
DANIEL DELGADO
ResponderEliminarCARNET 9916730
SCRUM
Scrum es una metodología de desarrollo muy
simple, que requiere trabajo duro porque no se
basa en el seguimiento de un plan, sino en la
adaptación continua a las circunstancias de la
evolución del proyecto.
Scrum es una metodología ágil, y como tal:
-Es un modo de desarrollo de carácter
adaptable más que predictivo.
-Orientado a las personas más que a los
procesos.
-Emplea la estructura de desarrollo ágil:
incremental basada en iteraciones y revisiones
Rational Unified Process (RUP)
ResponderEliminarRUP implementa:
- Desarrollo iterativo del software:
- Permite comprender los requerimientos que hacen crecer el sistema
- Sigue un modelo que busca las tareas más riesgosas, reduciendo así los
riesgos del proyecto
- Administración de requerimientos:
- Describe como se obtienen, organizan, documentan los requerimientos
- Captar y comunicar los requerimientos de la organización
- Documentar las decisiones
- Uso de arquitecturas basadas en componentes:
- Se basa en diseñar una arquitectura que sea flexible, fácil de modificar,
comprensible y que se fundamenta en la reutilización de sus
componentes
- Modelado visual del software:
- Modela visualmente la organización
- Permite analizar la consistencia entre los componentes, el diseño y su
implementación
Ventajas:
- El conocimiento adquirido en una iteración puede aplicarse de iteración a iteración.
- Se adecua a proyectos de gran magnitud
-Es un método muy organizado y detallado
Desventajas:
- Se requieren muchos participantes en el proyecto.
- Es un método con muy costoso.
- Por el grado de complejidad puede no resultar muy adecuado.
- Requiere conocimientos de UML.
Bibliografía para todas mis publicaciones
I. Ingeniería de Software, Un enfoque practico, autor Roger Pressman, Editorial, McGraw-Hill.
II. Ingeniería de software orientada a objetos con UML, Java e Internet, autor Alfredo Weitzenfeld, Editorial Thomson.
Buenas tardes,
ResponderEliminarLa metodología WinWin garantiza la realización de un producto de calidad enfocándose en los intereses particulares de todos los involucrados en un proyecto de ingeniería, los inversores, clientes, desarrolladores, gerentes etc. Está basado en la metodología de espiral, por lo tanto es iterativa y recorre sus diversas etapas una y otra vez hasta lograr los objetivos. A diferencia de otras metodologías tiene como prioridad los intereses y el beneficio de los involucrados, en lugar de métricas como calidad, tiempo de ejecución, errores, etc.
Diagramas que utiliza:
- Diagrama de sistema de bloques:
representa cada ente o parte del sistema en un bloque, así como los elementos del sistema que no pertenecen a él pero que de alguna manera lo afectan.
- Diagramas de clases: vista estática del sistema que proporciona la estructura y relaciones entre las clases.
- Diagramas de secuencia: diagrama que muestra la interacción entre las clases para los diferentes escenarios del sistema.
- Modelo de Casos de Uso: modelo que contiene todos los escenarios a los que debe plegarse el sistema para el caso particular del negocio.
- Diagramas de arquitectura física: diagrama que representa los elementos físicos del sistema.
La metodología tiene las siguientes fases:
1. Identificar los involucrados en el proyecto para la siguiente iteración.
2. Identificar las condiciones de “ganar” de los involucrados.
3. Conseguir un acuerdo entre todas las condiciones de “ganar”.
4. Establecer objetivos, condiciones y alternativas.
5. Evaluar alternativas de producto y de proceso. Resolver riesgos.
6. Definir la siguiente iteración del producto y proceso.
7. Validar las definiciones de producto y de proceso.
8. Revisar y comprometerse a la siguiente iteración.
Cada iteración involucra las siguientes actividades:
- Elaborar los objetivos, alternativas y restricciones del producto y proceso del sistema o subsistema.
- Evaluar las alternativas con respecto a los objetivos y las restricciones.
- Identificar y resolver las primeras causas de riesgo.
- Elaborar la definición de producto y proceso para el proyecto.
- Planificar la iteración siguiente, actualizar el plan de ciclo de vida del proyecto.
- Subdividir el sistema en subsistemas para atenderlos paralelamente en una misma iteración.
Ventajas:
- Flexibilidad: el modelo permite al equipo de proyecto adaptarse a riesgos e incertidumbres, tales como agendas rápidas y equipos de proyecto cambiantes.
- Disciplina: el modelo es lo suficientemente formal como para mantener el enfoque en alcanzar tres hitos importantes: los objetivos de cada iteración, la arquitectura o diseño del ciclo de vida del proyecto y la capacidad operacional inicial del mismo.
- Aumento de la confiabilidad: permite fortalecer la confianza entre los involucrados en el proyecto, permitiéndoles ver el proyecto desde varios puntos de vista, desde un diseño orientado a objetos hasta otros modelos que permiten mayor cooperación y trabajo en conjunto.
Desventajas:
Atender los requerimientos de los involucrados no necesariamente implica alto rendimiento y efectividad del sistema.
- Requiere mucho tiempo para las etapas de análisis y planificación y menos tiempo en la ejecución.
Nicolás Iragorri
Nº 200702660
Características:
ResponderEliminarLas características fundamentales del método son:
• Desarrollo iterativo mejoras unas tras otras.
• Pruebas continuas incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación.
• La programación se hace en parejas.
• Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
• Corrección de todos los errores antes de agregar nuevos módulos.
• en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto.
• Cuanto más simple es el sistema, menos tendrá que comunicar sobre éste, lo que lleva a una comunicación más completa.
Fases:
1) Planificación del proyecto.: Reuniones diarias con los clientes.
2) Fase: Diseño.: Diseños simples para visualizar las ideas.
3) Codificación.: codificación en grupos y arreglos de errores por modulo
4) Pruebas.: test de fallos y prueba final del cliente.
Diagramas que utiliza:
Al ser un método muy ágil y con facilidades, no tiene diagramas predeterminados, aunque se sugiere el uso de almeno el diagrama de clases en la etapa de diseño.
Ventajas:
La calidad de los sistemas basados en XP tiende a ser un poco mejor, en
particular si se utilizan patrones de diseño.
Desventajas:
El problema que más común con los proyectos de XP es que es difícil predecir costo y tiempo de desarrollo.
Pablo Mosquera
#200706500
Luigi Iafigliola
ResponderEliminar#200701650
Características
-Desarrollo iterativo e incremental
-Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión.
-Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto.
-Frecuente integración del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
-Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
-Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento.
-Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto.
-Simplicidad en el código: La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.
Fases
1ª Fase: Planificación del proyecto.
-Historias de usuario.
-Release planning.
-Iteraciones
-Velocidad del proyecto.
-Programación en pareja.
-Reuniones diarias.
• 2ª Fase: Diseño.
-Diseños simples.
-Glosarios de términos.
-Riesgos.
-Funcionalidad extra.
-Tarjetas C.R.C.
• 3ª Fase: Codificación.
• 4ª Fase: Pruebas.
Diagramas
-Tarjetas CRC
-UML
Ventajas:
-Programación organizada.
-Flexibilidad.
-Menor taza de errores.
Desventajas:
-Difícil predecir costo y tiempo de desarrollo.
-Si se utilizan diagramas UML, estos tienden a estar poco actualizados, debido a la constante refactorización.
Daniel Daló
ResponderEliminar#200700250
Metodología de la programación extrema (XP).
Características:
-Desarrollo del software se realiza de manera iterativa e incremental, lo que permite crear pequeñas mejoras durante el ciclo de vida del sistema.
-La programación en pareja es una de las características de esta metodología que facilita la creación de código de calidad (discutido en el momento que se escribe).
-Constante comunicación con el cliente para tener frescos todos los posibles cambios a lo largo del desarrollo del software.
-Se realizan entregas frecuentes para corregir a tiempo los errores de código y planteamiento.
-Simplicidad en el código, es decir, crear un código que funcione de manera simple, sin necesidad de realizar funciones complejas desde el comienzo que quizá nunca se usen por completo.
Fases de la metodología:
-1ra Fase: Planificación del proyecto.
_Historias de usuario: cumplen la función de los casos de uso, pero en un lenguaje no técnico y que permita de manera rápida entender los requerimientos del cliente.
_Plan de publicaciones: estimación de fechas para implementar y entregar versiones que cumplan con las historias de usuario.
_Iteraciones.
_Velocidad del proyecto: es un estimador de cuántas historias de usuario se pueden desarrollar en una sola iteración.
_Programación en pareja (explicado anteriormente).
_Reuniones diarias.
-2da Fase: Diseño.
_Realización de diseños simples.
_Glosario de términos.
_Análisis y reducción de riesgos.
_No incluir funcionalidades extras que quizá nunca sean utilizadas.
_Refactorizar o mejorar trozos del código para hacerlos más eficientes y más entendibles.
_Tarjetas CRC.
-3ra Fase: Codificación.
-4ta Fase: Pruebas.
Diagramas usados por la metodología.
-Esta metodología plantea el desarrollo junto con un representante del cliente, por lo que la documentación no es muy utilizada. Los diagramas usados por lo general son el de UML, los diagramas de secuencia y las tarjetas CRC.
Ventajas:
-Retroalimentación con el cliente.
-Flexibilidad en el sistema.
-Códigos sencillos de entender.
-Alta funcionalidad.
-Reducción del número de errores.
Desventajas:
-Toda funcionalidad extra que se pudiera agregar, habrá que implementarla en el momento, ya que al comienzo del desarrollo estas no se toman en cuenta.
-Al realizarse constante refactorización, los diagramas podrían quedar desactualizados.
-Los tiempos de desarrollo del software podrían variar mucho.
Bibliografía usada:
-http://es.wikipedia.org/wiki/Programaci%C3%B3n_extrema#Caracter.C3.ADsticas_fundamentales
-http://programacionextrema.tripod.com/fases.htm
-http://www.hackerdude.com/2002/10/18/programacion-extrema-mini-introduccion/
METODOLOGÍA XP
ResponderEliminar(Programación Extrema)
Características
------------------
La metodología XP está basada en cuatro principios básicos: simplicidad, comunicación, retroalimentación y valor. Además, es orientada por pruebas y refactorización, se diseña e implementan las pruebas antes de programar la funcionalidad.
Este método es típicamente atribuido a Kent Beck, Ron Jeffries y Ward Cinningham. El objetivo de Xp son grupos pequeños y medianos de construcción de software en donde los requisitos aún son muy ambiguos, cambian rápidamente o son de alto riesgo. La Programación Extrema busca la satisfacción del cliente tratando de mantener durante todo el tiempo su confianza en el producto.
Fases
------------------
1.- Planificación: XP plantea la planificación como un permanente dialogo entre las partes, la empresarial y la técnica. Las personas del negocio necesitan determinar; qué es lo que el software debe de resolver para que este genere valor, qué debe ser hecho en y en qué orden, cuanto tiempo será necesario para realizar las versiones, entre otros.
2.- Diseño: Haz el diseño lo más simple posible borra todo lo que puedas sin violar las siguientes reglas: Funciona con todas las pruebas, no tiene lógica duplicada, manifiesta cada intención importante para los programadores y tiene el menor número de clases y métodos
3.- Codificación: Cada vez que se quiere implementar una parte de código, en XP, se tiene que escribir una prueba sencilla, y después escribir el código para que la pase. Una vez pasada se amplía y se continúa. En XP hay una máxima que dice "Todo el código que puede fallar tiene que tener una prueba".
4.- Pruebas: No debe existir ninguna característica en el programa que no haya sido probada, los
programadores escriben pruebas para chequear el correcto funcionamiento del programa, los
clientes realizan pruebas funcionales. El resultado un programa más seguro que conforme
pasa el tiempo es capaz de aceptar nuevos cambios.
Diagramas
-------------
-Diagramas UML
-Planes de iteración y lanzamiento
-Diseño estructurado de pruebas
-Tarjetas CRC
Desventajas
----------------
- Es recomendado para proyectos pequeños o medianos.
Ventajas
-----------
-El cliente tiene el control sobre las prioridades.
-Se hacen pruebas continuas durante el proyecto.
-La XP es mejor utilizada en la implementación de nuevas tecnologías donde los requerimientos cambian rápidamente.
Angel Gomez 200707860
ResponderEliminarLa programación extrema es una metodología reciente (tiene alrededor de 5 años) en el desarrollo de software. La filosofía de X.P es satisfacer al completo las necesidades del cliente, por eso lo integra como una parte más del equipo de desarrollo.
..........X.P fue inicialmente creada para el desarrollo de aplicaciones dónde el cliente no sabe muy bien lo que quiere, lo que provoca un cambio constante en los requisitos que debe cumplir la aplicación. Por este motivo es necesaria una metodología ágil como X.P que se adapta a las necesidades del cliente y dónde la aplicación se va reevaluando en periodos cortos de tiempo.
..........X.P está diseñada para el desarrollo de aplicaciones que requieran un grupo de programadores pequeño, dónde la comunicación sea más factible que en grupos de desarrollo grandes. La comunicación es un punto importante y debe realizarse entre los programadores, los jefes de proyecto y los clientes.
Caracteristicas de la metodología xp
....Comunicación: Los programadores están en constante comunicación con los clientes para satisfacer sus requisitos y responder rápidamente a los cambios de los mismos. Muchos problemas que surgen en los proyectos se deben a que después de concretar los requisitos que debe cumplir el programa, no hay una revisión de los mismos, pudiendo dejar olvidados puntos importantes.
..........Simplicidad: Codificación y diseños simples y claros. Muchos diseños son tan complicados que cuando se quieren ampliar resulta imposible hacerlo y se tienen que desechar y partir de cero.
..........Realimentación:Mediante la realimentación se ofrece al cliente la posibilidad de conseguir un sistema apto a sus necesidades ya que se le va mostrando el proyecto a tiempo para poder ser cambiado y poder retroceder a una fase anterior para rediseñarlo a su gusto.
..........Coraje: Se debe tener coraje o valentía para cumplir los tres puntos anteriores; Hay que tener valor para comunicarse con el cliente y enfatizar algunos puntos, a pesar de que esto pueda dar sensación de ignorancia por parte del programador, hay que tener coraje para mantener un diseño simple y no optar por el camino más fácil y por último hay que tener valor y confiar en que la realimentación sea efectiva.
• 1ª Fase: Planificación del proyecto.
Historias de usuario.
Release planning.
Iteraciones:
Velocidad del proyecto.
Programación en pareja.
Reuniones diarias.
• 2ª Fase: Diseño.
Diseños simples.
Glosarios de términos.
Riesgos.
Funcionalidad extra.
Tarjetas C.R.C.
• 3ª Fase: Codificación.
• 4ª Fase: Pruebas.
El uso de los test en X.P es el siguiente.
Test de aceptación.
Ventajas:
Programación organizada.
Menor taza de errores.
Satisfacción del programador.
Desventajas:
Es recomendable emplearlo solo en proyectos a corto plazo.
Altas comisiones en caso de fallar.
http://programacionextrema.tripod.com/index.htm
Rational Unified Process (RUP)
ResponderEliminarRUP se basa en UseCase(casos de uso) para describir lo que se tiene y lo que se espera del software, está muy orientado a la arquitectura del sistema a implementarse, documentandose de la mejor manera, basandose en UML (Unified Modeling Language - Lenguage de Modelado Unificado).
La metodología RUP, llamada así por sus siglas en inglés Rational Unified Process, divide en 4 fases el desarrollo del software:
• Preparación Inicial (“Inception”)
• Preparación Detallada (“Elaboration”)
• Construcción (“Construction”)
• Transición (“Transition”)
Caracteristicas
• Guiado/Manejado por casos de uso:
• Centrado en arquitectura: La arquitectura involucra los elementos más significativos del sistema y está influenciada entre otros por plataformas software, sistemas operativos, manejadores de bases de datos, protocolos, consideraciones.
• Desarrollo basado en componentes:
• de desarrollo como sistemas heredados y requerimientos no funcionales
• Pretende implementar las mejores prácticas en Ingeniería de Software
• Desarrollo iterativo
• Administración de requisitos
• Uso de arquitectura basada en componentes
• Permite Control de cambios
• Modelado visual del software
• Verificación de la calidad del software
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.
Alumna: Leila Escalona.
ResponderEliminar1.- Scrum
• Características:
Scrum se enfoca en el hecho de que procesos definidos y repetibles sólo funcionan para atacar problemas definidos y repetibles con gente definida y repetible en ambientes definidos y repetibles.
Scrum divide un proyecto en iteraciones (que ellos llaman carreras cortas) de 30 días. Antes de que comience una carrera se define la funcionalidad requerida para esa carrera y entonces se deja al equipo para que la entregue. El punto es estabilizar los requisitos durante la carrera.
• Fases:
1.-Planeamiento
- Definir el backlog del producto.
- Determinar los próximos releases (objetivos y fechas).
- Determinar los objetivos y el equipo para el primer release.
- Analizar los riesgos.
- Revalidar o ajustar las herramientas e infraestructura.
- Estimar el costo del release.
- Verificar la aprobación del management.
2.-Arquitectura o diseño de alto nivel
- Identificar los cambios necesarios para implementar el backlog.
- Extender o actualizar el modelo de dominio.
- Refinar la arquitectura para soportar los nuevos requerimientos.
- Plantear la estrategia para encarar cada item del backlog.
- Revisar cada diseño y reasignar tareas si es necesario.
3.-Desarrollo (sprints)
- Ciclo de desarrollo iterativo
- “Concurrent Engineering”
- Sprint Planning. En cada sprint se realizan las siguientes tareas:
a) Desarrollo (análisis, diseño, programación, testing y documentación)
b) Empaquetado y despliegue.
c) Revisión.
d) Ajustes.
- Sprint Review.
4.-Arquitectura de Proyectos de IT
- Sprint Planning.
- Daily Work.
- Sprint Review
5.-Cierre
- Se cierra el release.
- Pruebas de integración.
- Pruebas de sistema.
- Documentación para el usuario.
- Preparación del material de entrenamiento.
• Ventajas
- Evita estancamientos en el proyecto.
- Seguimiento del proyecto.
- Seguimiento del equipo.
- SW que incrementa su funcionalidad en cada sprint.
- Mecanismos de control para variables cambiantes con el entorno.
- Progreso en el producto con requerimientos inestables.
- Aumenta comunicación con el equipo.
- Cliente obtiene feedback frecuente sobre el producto.
• Desventajas
- Requiere que la gerencia delegue autoridad para la toma de decisiones al equipo
- Las personas no se sienten cómodas con la responsabilidad que genera formar parte del equipo SCRUM por la manera como trabaja.
Consultas: http://apit.wdfiles.com/local--files/start/01_apit_metodologias.pdf
La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software formulado por Kent Beck, autor del primer libro sobre la materia, Extreme Programming Explained: Embrace Change (1999). Es la más destacada de los procesos ágiles de desarrollo de software. Al igual que éstos, la programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.Se puede considerar la programación extrema como la adopción de las mejores metodologías de desarrollo de acuerdo a lo que se pretende llevar a cabo con el proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.
ResponderEliminarLas características fundamentales del método son:
* Desarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
* Pruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. Véase, por ejemplo, las herramientas de prueba JUnit orientada a Java y DUnit orientada a Delphi e inspirada en JUnit.
* Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe- es más importante que la posible pérdida de productividad inmediata.
* Frecuente interacción del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
* Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
* Refactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.
* Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.
* Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.
Metodología creada a base de prueba y error.
ResponderEliminarSurge considerando 4 valores que pueden mejorar cualquier proyecto de software: Simplicidad, Comunicación, Realimentación, Coraje.
Expresada en forma de 12 prácticas (algunas ya existentes desde hace años), que se soportan las unas a las otras y conforman un conjunto completo.
Los 4 valores
Simplicidad: XP propone el principio de hacer la cosa más simple que pueda funcionar, en relación al proceso y la codificación. Es mejor hacer algo simple hoy, que hacerlo más complicado hoy y probablemente nunca usarlo.
Comunicación: Algunos problemas en los proyectos tienen su origen en que alguien no dijo algo a alguien más sobre algo importante en algún momento. XP hace casi imposible la falta de comunicación.
Realimentación: retroalimentación concreta y frecuente del cliente, del equipo y de los usuarios finales da una mayor oportunidad de dirigir el esfuerzo.
Coraje: se requiere coraje para confiar en que la retroalimentación durante el camino es mejor que tratar de adivinar todo con anticipación. Se requiere valor para comunicarse con los demás cuando eso podría exponer la propia ignorancia. Se requiere valor para mantener el sistema simple, dejando para mañana las decisiones de mañana. Y, sin un sistema simple, comunicación constante y retroalimentación, es difícil ser valeroso.
Retroalimentación a escala fina:
Desarrollo guiado por pruebas
Planificación iterativa
Cliente como parte del equipo
Programación en pares
Proceso continuo:
Integración continua
Refactorización
Liberación pequeña, entregas frecuentes
Algunas de las críticas recopiladas de Xp son:
Xp tiene muchas críticas especialmente contra la programación por parejas por parte de muchos programadores con gran sentimiento de posesión del código, piensan que ellos son los mejores conocedores de las herramientas y lenguajes que utilizan y que si alguien no lo entiende es por que no sabe lo suficiente.
También se critica el mito de las 40 horas semanales ya que es un lujo para las exigencias del mercado.
También hay críticas hacia Xp que dicen que solo puede funcionar con programadores muy buenos, como Kent Beck, que son capaces de hacer un buen diseño, sencillo y fácilmente extensible.
Xp es mas una filosofía de trabajo que una metodología. Por otro lado ninguna de las practicas defendidas por Xp son invención de este método, Xp lo que hace es ponerlas todas juntas.
Xp esta diseñado para grupos de pequeños programadores, más de 10 ya seria muy complicado, y mas aun para que estén en el mismo centro de trabajo.
uhmmm aqui encontre una pagina que explica muy bien las fases de la programacion extrema, intente colocarla aqui pero no me lo permitia el blog por lo de los 4096 caracteres
ResponderEliminarhttp://programacionextrema.tripod.com/fases.htm
Sarino Grasso #200826620
ResponderEliminarMetodología RUP
Características
- Iterativa
- Buen manejo de los requisitos
- Uso de arquitectura basada en componentes
- Modelado visual del software
- Control de la calidad
Fases
- Inicio
o Definir alcance
o Identificar riesgos
o Crear plan de iteraciones
- Elaboración
o Determinar casos de uso
o Definir la arquitectura del sistema
- Desarrollo
o Completar la funcionalidad del sistema
- Cierre
o Corregir errores
o Capacitar usuarios
o Verificar la calidad del software
Diagramas que utiliza
- Diagramas de casos de uso
- Diagrama de clases
- Modelo entidad-relación
- Diagrama de secuencia
Ventajas
Las principales ventajas de utilizar la metodología RUP son la capacidad de adaptarse a los procesos, realizar el trabajo de manera conjunta en equipos, al utilizar la abstracción en el desarrollo se pueden reutilizar muchos conceptos y está enfocado en la calidad del software.
Desventajas
Hacer uso de metodología RUP puede resultar costoso y, en ocasiones, no es conveniente para proyectos pequeños o de poco alcance. Otra desventaja es que es posible que el equipo de trabajo no sea capaz de llevar a cabo los procesos en las distintas etapas del desarrollo.
Daniela Silva
ResponderEliminar#200511500
El Modelo Win Win sugiere la comunicación con el cliente para fijar los requisitos, en que simplemente se pregunta al cliente qué necesita y él proporciona la información para continuar. Sin embargo normalmente el cliente y desarrollador entran en una negociación, se negocia coste frente a funcionalidad, rendimiento, calidad, etc.
Es así que la obtención de requisitos requiere una negociación, que tiene éxito cuando ambas partes ganan.
Las mejores negociaciones se fuerzan en obtener "Ganar & Ganar" (Win Win), es decir que el cliente gane obteniendo el producto que lo satisfaga, y el desarrollador también gane consiguiendo presupuesto y fecha de entrega realista. Evidentemente, este modelo requiere fuertes habilidades de negociación.
El modelo Win-Win define un conjunto de actividades de negociación al principio de cada paso alrededor de la espiral. Se definen las siguientes actividades:
-Identificación del sistema o subsistemas clave de los directivos (qué quieren).
-Determinación de "condiciones de victoria" de los directivos (saber qué necesitan y los satisface)
-Negociación de las condiciones "victoria" de los directivos para obtener condiciones Ganar Ganar (negociar para que ambos ganen).
El modelo Win Win hace énfasis en la negociación inicial, también introduce 3 hitos en el proceso llamados "puntos de fijación", que ayudan a establecer la completitud de un ciclo de la espiral, y proporcionan hitos de decisión antes de continuar el proyecto de desarrollo del software
Daniela Silva
ResponderEliminar#200511500
La Metodologia SCRUM define un marco de gestión para proyectos de desarrollo ágiles. Su principal objetivo es que cada entrega después de cada iteración maximice el valor del negocio para el que el software ha sido construido. Se basa en la realización de iteraciones cada 15 á 30 días (4 semanas típicamente), que en la jerga del modelo se denominan Sprints.
Los equipos de desarrollo son autoorganizados. El plan de trabajo se desarrolla en base a un objetivo o conjunto de objetivos definidos para el Sprint y no a las tareas concretas que inicialmente pueden haber sido previstas. El equipo elige el orden más adecuado en reuniones de 10 a 15 minutos diarias (Scrums) donde se informa de lo avanzado, de las dificultades encontradas y se determinan las acciones a realizar durante el día para cumplir con los objetivos del Sprint.
El equipo se constituye de 4 a 8 persones con los roles siguientes:
-Product Owner: Representa al cliente o al usuario del producto que construye el equipo. Puede ser el mismo cliente, pero cuando no es posible, vela por los intereses del cliente y es el nexo de unión entre el equipo de desarrollo y el cliente.
-Scrump Master: Desempeña el rol de jefe de proyecto. Es el encargado de informar de las prioridades del cliente al equipo y orientarlo en el desarrollo de las tareas que mejor cumplan los objetivos del proyecto. También es el encargado de eliminar los obstáculos que se puedan presentar y que impiden los avances del equipo.
-Team Member: Cualquier otro integrante del equipo. Programadores, arquitectos, testers, administradores de bases de datos, etc.
Scrums emplea el término “backlog” para definir a un conjunto de elementos que están relacionados.
Define tres backlogs en el proceso:
-Product backlog: Representa todos los requisitos que el producto entregado debe cubrir. Los requisitos se recogen definidos muy alto nivel e incluyen una estimación de coste de desarrollo que serán usadas en la definición de los Sprint Backlogs.
-Release backlog: es una lista ordenada por prioridad de los requisitos que aparecen en el Product backlog. No hay prioridades duplicadas y la estimación de coste de desarrollo es más detallada que la del product backlog.
-Sprint backlog: Al comienzo de cada Sprint el equipo del proyecto va extrayendo y descomponiendo los elementos del Release Backlog empezando por los de mayor prioridad y los va introduciendo en el Sprint backlog, hasta que tiene suficientes elementos como para realizar el Sprint. En este momento el Sprint backlog se bloquea de modo que durante el sprint no se admiten modificaciones a los requisitos que se van a cubrir.
El Burndown Chart es otro elemento importante relacionado con los Backlogs. Se emplea para controlar los elementos en el Sprint Backlog pendientes por completar en el Sprint en curso. Se actualiza diariamente con objeto de que el equipo tenga feedback del grado de cumplimiento de los objetivos del Sprint.
Al finalizar un Sprint, se tiene un release que se muestra al cliente y usuarios con objeto de demostrar los avances obtenidos y para evaluar las prioridades del siguiente Sprint. También se informa de los problemas detectados, se analizan las peticiones de cambio y su impacto y se discuten las posibles soluciones.
Scrum no impone prácticas por lo que se combina bien con otras metodologías que sí las proporcionan como RUP o Agile UP y suele combinarse a menudo en proyectos más pequeños con XP.
Daniela Silva
ResponderEliminar#200511500
La Metodologia Agile UP (AUP) se preocupa especialmente de la gestión de riesgos. Propone que aquellos elementos con alto riesgo obtengan prioridad en el proceso de desarrollo y sean abordados en etapas tempranas del mismo. Para ello, se crean y mantienen listas identificando los riesgos desde etapas iniciales del proyecto. Especialmente relevante en este sentido es el desarrollo de prototipos ejecutables durante la base de elaboración del producto, donde se demuestre la validez de la arquitectura para los requisitos clave del producto y que determinan los riesgos técnicos.
Al igual que en RUP, en AUP se establecen cuatro fases que transcurren de manera consecutiva y que acaban con hitos claros alcanzados:
-Concepción: El objetivo de esta fase es obtener una comprensión común cliente/equipo de desarrollo del alcance del nuevo sistema y definir una o varias arquitecturas candidatas para el mismo.
-Elaboración: El objetivo es que el equipo de desarrollo profundice en la comprensión de los requisitos del sistema y en validar la arquitectura.
-Construcción: Durante la fase de construcción el sistema es desarrollado y probado al completo en el ambiente de desarrollo.
-Transición: el sistema se lleva a los entornos de preproducción donde se somete a pruebas de validación y aceptación y finalmente se despliega en los sistemas de producción.
El proceso AUP establece un Modelo más simple que el que aparece en RUP por lo que reúne en una única disciplina las disciplinas de Modelado de Negocio, Requisitos y Análisis y Diseño. El resto de disciplinas (Implementación, Pruebas, Despliegue, Gestión de Configuración, Gestión y Entorno) coinciden con las restantes de RUP.
Daniel Petersen #200859320
ResponderEliminarMetodología iterativa: Desarrollo en espiral
Características:
El desarrollo en espiral es un modelo de ciclo de vida del software definido por primera vez por Barry Boehm en 1988, utilizado generalmente en la Ingeniería de software. Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades. Las actividades no están fijadas a priori, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.
Diagramas que utiliza
- Diagrama de sistema de bloques:
- Diagramas de clases
- Diagramas de secuencia
- Modelo de Casos de Uso
- Diagramas de arquitectura física
Fases
Existen 4 fases principales que representan cada vuelta completa al espiral.
-Determinar o fijar objetivos
Fijar también los productos definidos a obtener: requerimientos, especificación, manual de usuario.
Fijar las restricciones.
Identificación de riesgos del proyecto y estrategias alternativas para evitarlos.
Hay una cosa que solo se hace una vez: planificación inicial o previa.
-Análisis del riesgo
-Desarrollar, verificar y validar
Tareas de la actividad propia y de prueba.
Análisis de alternativas e identificación resolución de riesgos.
Dependiendo del resultado de la evaluación de los riesgos, se elige un modelo para el desarrollo, el que puede ser cualquiera de los otros existentes, como formal, evolutivo, cascada, etc. Así si por ejemplo si los riesgos en la interfaz de usuario son dominantes, un modelo de desarrollo apropiado podría ser la construcción de prototipos evolutivos. Si lo riesgos de protección son la principal consideración, un desarrollo basado en transformaciones formales podría ser el más apropiado.
-Planificar
Revisamos todo lo hecho, evaluándolo, y con ello decidimos si continuamos con las fases siguientes y planificamos la próxima actividad.
Ventajas
El análisis del riesgo se hace de forma explícita y clara. Une los mejores elementos de los restantes modelos.
Reduce riesgos del proyecto
Incorpora objetivos de calidad
Integra el desarrollo con el mantenimiento, etc.
Además es posible tener en cuenta mejoras y nuevos requerimientos sin romper con la metodología, ya que este ciclo de vida no es rígido ni estático.
Desventajas
Genera mucho tiempo en el desarrollo del sistema
Modelo costoso
Requiere experiencia en la identificación de riesgos