Documentos de Académico
Documentos de Profesional
Documentos de Cultura
RUP XP
Rational Unified Process. La programación extrema o Xtreme Programming (XP) es
El Proceso Racional Unificado o RUP es un proceso de una metodología de desarrollo de la ingeniería de software
desarrollo de software desarrollado por la empresa Rational formulada por Kent Beck, autor del primer libro sobre la
Software, actualmente propiedad de IBM. materia, Extreme Programming Explained: Embrace
Change (1999). Es el más destacado de los procesos ágiles
Características: de desarrollo de software.
RUP se utiliza para forma disciplinada de asignar tareas y
responsabilidades en una empresa de desarrollo (quién hace Características:
qué, cuándo y cómo). Se puede considerarla programación extrema como la
• Desarrollo iterativo adopción de las mejores metodologías de desarrollo de
• Administración de requisitos acuerdo a lo que se pretende llevar a cabo con el proyecto, y
• Uso de arquitectura basada en componentes aplicarlo de manera dinámica durante el ciclo de vida del
• Control de cambios software.
• Modelado visual del software Se diferencia de las metodologías tradicionales
• Verificación de la calidad del software principalmente en que pone más énfasis en la
• Pretende implementar las mejores prácticas en adaptabilidad que en la previsibilidad.
Ingeniería de Software, de forma que se adapte a Se aplica de manera dinámica durante el ciclo de
cualquier proyecto vida del software.
Junto con el Lenguaje Unificado de Modelado (UML), Es capaz de adaptarse a los cambios de requisitos.
constituye la metodología estándar más utilizada para el Los individuos e interacciones son más importantes
análisis, diseño, implementación y documentación de que los procesos y herramientas.
sistemas orientados a objetos. Al individuo y las interacciones del equipo de
desarrollo sobre el proceso y las herramientas
Fases: Pasos:
• La estructura dinámica de RUP es la que permite
que éste sea un proceso de desarrollo Desarrollo iterativo e incremental: Pequeñas
fundamentalmente iterativo, y en esta parte se ven mejoras, unas tras otras.
inmersas las cuatro fases: Pruebas unitarias continuas: Son frecuentemente
1. Inicio (también llamado Incepción o Concepción). repetidas y automatizadas, incluyendo pruebas de
2. Elaboración. regresión. Se aconseja escribir el código de la
3. Desarrollo (también llamado Implementación, prueba antes de la codificación.
Construcción). Programación en parejas: Se recomienda que las
4. Cierre (también llamado Transición). 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 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. Las pruebas han de garantizar que
en la refactorización no se ha introducido ningún
fallo.
Propiedad del código compartido: 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 del 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.
MSF SCRUM
Microsoft Solutions Framework (MSF) es un enfoque Proyectos de Desarrollo Ágil
personalizable para entregar con éxito soluciones Es un proceso en el que se aplican de manera regular un
tecnológicas de manera más rápida, con menos recursos conjunto de buenas prácticas para trabajar
humanos y menos riesgos, pero con resultados de más colaborativamente, en equipo, y obtener el mejor resultado
calidad. MSF ayuda a los equipos a enfrentarse posible de un proyecto. Estas prácticas se apoyan unas a
directamente a las causas más habituales de fracaso de los otras y su selección tiene origen en un estudio de la manera
proyectos tecnológicos y mejorar así las tasas de éxito, la de trabajar de equipos altamente productivos.
calidad de las soluciones y el impacto comercial.
Características:
Características: Se realizan entregas parciales y regulares del producto final,
Principios fundamentales y actitudes en el contexto de MSF priorizadas por el beneficio que aportan al receptor del
para orientar y guiar a los equipos y sus miembros en el proyecto.
trabajo en colaboración para entregar una solución
Por ello, Scrum está especialmente indicado para proyectos
El modelo de equipo de MSF permite escalar los proyectos, en entornos complejos, donde se necesita obtener resultados
garantiza que los equipos satisfacen diversas necesidades de pronto, donde los requisitos son cambiantes o poco
las partes interesadas y define roles y responsabilidades definidos, donde la innovación, la competitividad,
controlados por objetivos la flexibilidad y la productividad son fundamentales.
CASCADA CRYSTAL
La metodología en cascada es un modelo lineal de diseño de esta forma se pretende obtener mayor rentabilidad en el
software que emplea un proceso de diseño secuencial. desarrollo de proyectos de software, Los métodos Crystal
no prescriben prácticas concretas, porque están en continuo
Características: cambio.
El desarrollo fluye secuencialmente desde el punto inicial
hasta el punto final, con varias etapas diferentes: Características:
planteamiento, iniciación, análisis, diseño, construcción, Se tiene en cuenta que Crystal da vital importancia a las
pruebas, implementación y mantenimiento. personas que componen el equipo de un proyecto, y por
La metodología en cascada supera algunas de las tanto sus puntos de estudio son: Aspecto humano del
limitaciones de otros métodos, como: A/ Scrum: los equipo, Tamaño de un equipo (número de componentes),
procesos de desarrollo que siguen la metodología en Comunicación entre los componentes, Distintas políticas a
cascada tienden a ser más seguro, ya que existe una firme seguir, Espacio físico de trabajo. Compuesta por una
orientación al plan. A diferencia del método Scrum, donde características importantes como lo son Crystal aconseja
el abandono de uno de los miembros del equipo puede que el tamaño del equipo sea reducido (Pocos componentes)
suponer un grave problema, con la metodología en cascada También La mejora de la comunicación entre los miembros
no lo sería, ya que se dispone de una completa planificación del equipo del proyecto, El Mismo lugar de trabajo à
y documentación que permite suplir este tipo de pérdidas. Disminuye el coste de la comunicación y Mejora individual
De esta forma, un nuevo diseñador puede fácilmente tomar à Mejora global del equipo, de esta forma se tienen en
la posición vacante siguiendo el plan de desarrollo sin cuenta las políticas de equipo “Se utilizarán políticas
ningún problema. B/ Ágil: aunque altamente flexible, el diferentes para equipos diferentes” Codificación por colores
enfoque ágil no tiene la estructura que tiene la metodología de Crystal: esto Dependiendo del tamaño del equipo.
en cascada, lo que implica algunos inconvenientes. Los más
significativos son los que tienen que ver con la dificultad Pasos:
para predecir los presupuestos a partir de líneas de tiempo. 1 – Entregas frecuentes, en base a un ciclo de vida
Y es que, sin una planificación completa, todos los aspectos iterativo e incremental. En función del proyecto puede
quedan vagamente definidos y son susceptibles de generar haber desde entregas semanales hasta trimestrales. Para los
confusión. que conozcan Scrum: en Scrum las entregas son, máximo,
cada 4 semanas, en las Crystal se contemplan muchas más
Pasos: opciones.
1. Análisis de requisitos. 2 – Mejora reflexiva. Que viene a ser mejora continua. Las
2. Diseño del sistema. iteraciones ayudan a ir ajustando el proyecto, a ir
3. Diseño del programa. mejorándolo.
4. Codificación. 3 – Comunicación osmótica. Traducido al castellano, que
5. Pruebas. el equipo esté en una misma ubicación física, para lograr la
6. Implementación del programa. comunicación cara a cara.
7. Mantenimiento. 4 – Seguridad personal. Todo el mundo puede expresar su
opinión sin miedos, teniéndosele en cuenta, considerándose
su opinión, etc.
5- Enfoque. Períodos de no interrupción al equipo (2h
horas), objetivos y prioridades claros, definiendo así tareas
concretas. Si llevas desde hace tiempo pasando por este
blog, recordarás ya comentábamos, tiempo a, aquello de
que el entorno físico afecta al rendimiento del desarrollador
software (te dejo aquel post).
6 – Fácil acceso a usuarios expertos. Las Crystal (a
diferencia de otras como XP) no exigen que los usuarios
estén continuamente junto al equipo de proyecto (no todas
las organizaciones pueden hacerlo), sí que, como mínimo,
semanalmente debe haber reuniones y los usuarios deben
estar accesibles.
7 – Entorno técnico con pruebas automatizadas, gestión
de la configuración e integración continua.
ESPIRAL KANBAN
Inicialmente fue propuesto por un ingeniero en informática, Kanban es una palabra japonesa que significa algo así como
llamado Barry W. Boehm, dentro de un artículo publicado “tarjetas visuales” (kan significa visual, y ban tarjeta). Esta
en 1986, como una mejora del modelo de desarrollo en técnica se creó en Toyota, y se utiliza para controlar el
cascada. avance del trabajo, en el contexto de una línea de
Características: producción.
Cada ciclo comienza con la elaboración de objetivos Creada por Toyota para mejorar su producción usando
funcionales y de rendimiento y las formas posibles de técnicas just-in-time (JIT).
alcanzar estos objetivos.
Puede combinarse con otros modelos, como el de cascada o Características:
el evolutivo. Kanban no es una técnica específica del desarrollo software,
Es un modelo centrado en los riesgos. su objetivo es gestionar de manera general como se van
Se utiliza para sistemas complejos. completando tareas, pero en los últimos años se ha utilizado
Se empieza un nuevo ciclo cada vez que el cliente quiera en la gestión de proyectos de desarrollo software, a menudo
hacer mejoras en el software, así, se vuelven a evaluar con Scrum (lo que se conoce como Scrumban).
nuevas alternativas y riesgos hasta que el sistema sea
aceptado. Pasos:
El trabajo se divide en partes, normalmente cada una de
Fases: esas partes se escribe en un post-it y se pega en una pizarra.
Los post-it suelen tener información variada, si bien, aparte
Los Objetivos: qué necesidad debe cubrir el de la descripción, debieran tener la estimación de la
producto. duración de la tarea.
Alternativas: las diferentes formas de conseguir los
objetivos de forma exitosa, desde diferentes puntos 1. Petición de tareas.
de vista como pueden ser: 2. Selección de tareas
1. Características: experiencia del personal, 3. Desarrollo
requisitos a cumplir, etc. 4. Prueba
2. Formas de gestión del sistema. 5. Terminado
3. Riesgo asumido con cada alternativa.
Desarrollar y Verificar: Programar y probar el
software.
Fases: Proceso:
• Cada fase de una iteración es rígida y no se Desarrollar un modelo global
superponen con otras. Construir una lista
Planear
• Pueden surgir problemas referidos a la arquitectura Diseñar
del sistema porque no todos los requisitos se han Construir
reunido, ya que se supone que todos ellos se han
definido al inicio
RAD ASD
Modelo de Desarrollo Rápido de Aplicaciones (RAD) El método ágil ASD (Adaptive Software Development)
Es un proceso de desarrollo de software, desarrollado traducido en español significa Desarrollo Adaptable de
inicialmente por James Martin en 1980. Software es un modelo de implementación de patrones
ágiles para desarrollo de software.
Características: El método comprende el desarrollo iterativo
(que repite), la construcción de prototipos y el uso de Características:
utilidades caso. Tradicionalmente, el desarrollo rápido de Sus principales características del ASD son:
aplicaciones tiende a englobar también la usabilidad, 1. Iterativo.
utilidad y la rapidez de ejecución. 2. Orientado a los componentes de software (la
funcionalidad que el producto va a tener,
Fases: características, etc.) más que a las tareas en las que
se va a alcanzar dicho objetivo.
Modelado de gestión: el flujo de información 3. Tolerante a los cambios.
entre las funciones de gestión se modela de forma 4. Guiado por los riesgos
que responda a las siguientes preguntas: ¿Qué 5. La revisión de los componentes sirve para
información conduce el proceso de gestión? ¿Qué aprender de los errores y volver a iniciar el ciclo de
información se genera? ¿Quién la genera? ¿A desarrollo
dónde va la información? ¿Quién la proceso?
Modelado de datos: el flujo de información Ciclo de vida:
definido como parte de la fase de modelado de ASD utiliza un "cambio orientado hacia el ciclo de vida",
gestión se refina como un conjunto de objetos de que tiene tres componentes que son: especular colaborar y
datos necesarios para apoyar la empresa. Se aprender.
definen las características (llamadas atributos) de
Especular
cada uno de los objetos y las relaciones entre
Una primera fase de iniciación para establecer los
estos objetos.
Modelado de proceso: los objetos de datos
principales objetivos y metas del proyecto en su conjunto y
definidos en la fase de modelado de datos quedan comprender las limitaciones (zonas de riesgo) con las que
transformados para lograr el flujo de información operará el proyecto.
necesario para implementar una función de
gestión. Las descripciones del proceso se crean En ASD se realizan estimaciones de tiempo sabiendo que
para añadir, modificar, suprimir, o recuperar un pueden sufrir desviaciones. Sin embargo, estas son
objeto de datos. Es la comunicación entre los necesarias para la correcta atención de los trabajadores que
objetos. se mueven dentro de plazos de forma que puedan priorizar
Generación de aplicaciones: El DRA asume sus tareas.
la utilización de técnicas de cuarta generación. En
lugar de crear software con lenguajes de Se decide el número de iteraciones para consumir el
programación de tercera generación, el proceso proyecto, prestando atención a las características que
DRA trabaja para volver a utilizar componentes pueden ser utilizadas por el cliente al final de la iteración.
de programas ya existentes (cuando es posible) o Son por tanto necesarios, marcar objetivos prioritarios
a crear componentes reutilizables (cuando sea dentro de las mismas iteraciones.
necesario). En todos los casos se utilizan
herramientas automáticas para facilitar la
Estos pasos se pueden volver a examinar varias veces antes
construcción del software.
de que el equipo y los clientes están satisfechos con el
Pruebas de entrega: Como el proceso DRA
enfatiza la reutilización, ya se han comprobado
resultado.
muchos de los componentes de los programas.
Esto reduce tiempo de pruebas. Sin embargo, se Colaborar
deben probar todos los componentes nuevos y se Es la fase donde se centra la mayor parte del desarrollo
deben ejercitar todas las interfaces a fondo. manteniendo una componente cíclica. Un trabajo importante
es la coordinación que asegure que lo aprendido por un
equipo se transmite al resto y no tenga que volver a ser
aprendido por los otros equipos.
Aprender
La última etapa termina con una serie de ciclos de
colaboración, su trabajo consiste en capturar lo que se ha
aprendido, tanto positivo como negativo. Es un elemento
crítico para la eficacia de los equipos.
Etapas: Etapas
Recolección y refinamiento de requisitos
Modelado, diseño rápido
Construcción del Prototipo
Desarrollo, evaluación del prototipo por el cliente
Refinamiento del prototipo
Producto de Ingeniería
DSDM
Dynamic Systems Development Method
Método Dinámico de desarrollo de sistemas
DSDM fue creado en los años 90 por un consorcio de
proveedores y de expertos en la materia software de
creación de sistemas de información (IS).
Características:
DSDM se centra en los proyectos de sistemas de
información que son caracterizados por presupuestos y
agendas apretadas.
DSDM se centra en:
Entornos web especialmente sensibles al tiempo.
La colaboración entre los departamentos implicados en el
proyecto web.
Iteración funcional:
Iteración funcional del modelo:
Se soluciona a detalle aspectos funcionales del negocio.
Iteración de diseño y construcción:
El producto se vuelve apto para los usuarios.
Las dos fases consisten en ciclos de 4 actividades:
Identificación
Planificación
Producción
Validación
PUA
(Proceso Unificado Ágil)
Fue desarrollado Scott Ambler.
Su objetivo es mejorar la productividad.
Tiene un enfoque intermedio XP y RUP.
Características:
Para el Proceso Unificado Ágil, hay algunas razones válidas
para crear documentación, resumidas en la siguiente lista:
Los promotores del proyecto lo requieren.
Para definir un modelo de contrato.
Como soporte a la memoria organizacional. Ya que es
necesario contar con documentación apropiada para su uso,
soporte técnico y mantenimiento a lo largo del tiempo.
Para labores de auditoría.
Para ayudar a pensar sobre algo. El simple acto de escribir
ideas en un papel puede contribuir a consolidarlas y a
descubrir problemas en ellas.
Fases:
• Cuenta con 4 fases (Son iguales que las de RUP)
Iniciación: identificar el alcance inicial del
proyecto, una arquitectura potencial para el sistema
y obtener financiación y aceptación de los
promotores
Elaboración: Identificar y validar arquitectura del
sistema
Construcción
Transición: En esta fase se valida y despliega el
sistema en el entorno de producción.