Está en la página 1de 68

SISTEMAS

INFORMATICOS
ANÁLISIS Y DISEÑO DE SISTEMAS II

METODOLOGÍAS ÁGILES DE DESARROLLO DE


SOFTWARE
Lic. María Magdalena Callizaya
PROTOTIPOS
• Un prototipo del sistema de
información, a usted le interesan
mucho las reacciones que tendrán los
usuarios y la administración con
respecto al prototipo.
• Debe anticipar con precisión cómo
reaccionarán al trabajar con el
prototipo y qué tan bien se adaptarán a
sus necesidades las características del
sistema previstas.
• Las reacciones se recopilan a
través de la observación,
entrevistas y hojas de
retroalimentación
(posiblemente cuestionarios)
diseñadas para obtener la
opinión de cada persona
sobre el prototipo a medida
que interactúa con él.
DESARROLLO DE UN PROTOTIPO
• Los prototipos son un medio excelente para obtener
retroalimentación sobre el sistema propuesto y el grado en
que cumple con las necesidades de información de sus
usuarios.
• El primer paso de la creación de un prototipo es estimar los
costos involucrados en la construcción de un módulo del
sistema.
• Si los costos del tiempo de los programadores y del analista,
así como los costos del equipo están dentro del presupuesto,
se puede continuar con la construcción del prototipo.
MODIFICAR EL PROTOTIPO
• Un tercer lineamiento para desarrollar el prototipo es que su
construcción debe admitir modificaciones. Para lograr esto hay que
crearlo en módulos que no tengan un alto grado de
interdependencia.
• Si cumplimos con este lineamiento encontraremos menos resistencia
cuando haya que modificar el prototipo.
• Por lo general el prototipo se modifica varias veces, para lo cual pasa
a través de varias iteraciones. Los cambios en el prototipo deben
acercar más el sistema a lo que los usuarios dicen que es importante.
HACER ÉNFASIS EN LA INTERFAZ DE USUARIO
• La interfaz del usuario con el prototipo (y con el sistema, en última
instancia) es muy importante. Como lo que realmente tratamos de
lograr con el prototipo es hacer que los usuarios articulen con más
detalle sus requerimientos de información, deben ser capaces de
interactuar con facilidad con el prototipo del sistema.
• También deben ser capaces de ver cómo el prototipo les permitirá
realizar sus tareas.
Desventajas de los prototipos
• Al igual que sucede con cualquier otra
técnica de recopilación de información, el
uso de prototipos presenta varias
desventajas. La primera es que puede ser
bastante difícil administrar la creación de
un prototipo como un proyecto dentro
del esfuerzo más grande de sistemas. La
segunda es que los usuarios y analistas
pueden adoptar.
• Los analistas necesitan trabajar para
asegurarse de que la comunicación
con los usuarios sea clara en cuanto a
la agenda para interactuar con el
prototipo y mejorarlo.
• El analista debe comparar estas
desventajas contra las ventajas
conocidas al decidir si va a crear un
prototipo, cuándo se va a crear y qué
tanto del sistema se va a incluir en el
prototipo.
Ventajas de los prototipos
• La utilización de prototipos no es necesaria o apropiada en
todos los proyectos de sistemas, como hemos visto.
• Sin embargo, las ventajas también se deben tener en
consideración al decidir si debemos o no crearlos. Las tres
principales ventajas de los prototipos son el potencial de
cambiar el sistema durante las primeras etapas de su
desarrollo, la oportunidad de detener el desarrollo en un
sistema que no está funcionando y la posibilidad de
desarrollar un sistema que cumpla mejor con las
necesidades y expectativas de los usuarios.
• La creación de prototipos exitosos depende de la
retroalimentación oportuna y frecuente de los
usuarios, que los analistas pueden usar para
modificar el sistema y hacerlo más sensible a las
necesidades actuales. Al igual que con cualquier otro
esfuerzo de sistemas, los cambios en las primeras
etapas son menos costosos que los cambios tardíos.
• En la última parte del capítulo verá cómo la
metodología ágil para el desarrollo utiliza una forma
extrema de prototipos, en la que se requiere un
cliente en el sitio de trabajo para que provea
retroalimentación durante todas las iteraciones.
El papel que desempeñan los usuarios en los
prototipos
• El papel de los usuarios en los prototipos se puede resumir en dos
palabras: participación honesta.
• Sin la participación de los usuarios, los prototipos no tienen mucho
sentido. Los comportamientos precisos necesarios para interactuar
con un prototipo pueden variar, pero está claro que el usuario es
fundamental para el proceso de creación de prototipos.
• Teniendo en cuenta la importancia del usuario para el éxito del
proceso, los miembros del equipo de análisis de sistemas deben
fomentar y agradecer la entrada y protegerse contra su propia
resistencia natural a cambiar el prototipo.
• Hay tres formas principales en las
que un usuario puede ayudar con
los prototipos:
1. Experimentar con el prototipo.
2. Ofrecer reacciones abiertas al
prototipo.
3. Sugerir lo que se puede agregar o
quitar en el prototipo.
• Los usuarios deben tener la libertad de experimentar con el
prototipo. A diferencia de una simple lista de características
del sistema, el prototipo permite a los usuarios interactuar
en forma práctica con el sistema.
• Los analistas tienen que estar presentes por lo menos parte
del tiempo cuando ocurre la experimentación.
• De esta forma pueden observar las interacciones de los
usuarios con el sistema y llegar a ver interacciones que
nunca planearon.
• El tercer aspecto del papel que desempeñan los
usuarios en los prototipos es su disposición para
sugerir elementos que se puedan agregar o quitar en
base a las características que hayan experimentado.
• La función del analista es obtener tales sugerencias al
asegurar a los usuarios que la retroalimentación que
ellos proveen se toma en serio, al observar a los
usuarios a medida que interactúan con el sistema y al
llevar a cabo entrevistas cortas y específicas con los
usuarios en relación con sus experiencias con el
prototipo.
MODELADO ÁGIL
• Los métodos ágiles son una colección de
metodologías innovadoras para el
desarrollo de sistemas, las cuales se
centran en los usuarios. En esta sección
aprenderá sobre valores y principios,
actividades, recursos, prácticas,
procesos y herramientas asociadas con
las metodologías ágiles.
Valores y principios del modelado ágil
• La metodología ágil se basa no sólo en resultados, sino también en
valores, principios y prácticas.
• Los valores y principios establecidos son esenciales para la
programación ágil; estos valores y principios crean el contexto para la
colaboración entre programadores y clientes
CUATRO VALORES DEL MODELADO ÁGIL
• Hay cuatro valores que crean un entorno en el que
tanto los desarrolladores como las empresas pueden
obtener el mismo servicio.
• Como a menudo hay tensión entre lo que hacen los
desarrolladores a corto plazo y lo comercialmente
deseable a largo plazo, es importante propugnar en
forma deliberada los valores que formarán la base
para actuar en conjunto en un proyecto de software
Los cuatro valores son:
comunicación, simpleza, retroalimentación y valor
• Empecemos con la comunicación. En todo esfuerzo
humano existe la posibilidad de una mala comunicación.
• Los proyectos de sistemas que requieren de una constante
actualización y diseño técnico son especialmente
propensos a dichos errores
• El segundo valor de la metodología ágil es la simpleza.
Cuando trabajamos en un proyecto de desarrollo de
software, nuestra primera tendencia es abrumarnos con la
complejidad y tamaño de la tarea. Sin embargo, no
podemos correr sino hasta aprender a caminar, ni
podemos caminar hasta no aprender a erguirnos
• El valor ágil de la simpleza nos pide hacer la cosa
más sencilla hoy, a sabiendas de que tal vez mañana
tengamos que cambiarla un poco. Para ello debemos
estar enfocados claramente en los objetivos del
proyecto, lo cual es en realidad un valor básico.
• La retroalimentación es el tercer valor básico
importante cuando usamos una metodología de
programación extrema. Al considerar la
retroalimentación en este contexto, es bueno tener
en cuenta que está implicada con el concepto del
tiempo.
LOS PRINCIPIOS BÁSICOS DEL MODELADO ÁGIL
• trabajamos para derivar los principios básicos que
pueden ayudarnos a verificar que lo que realmente
estamos haciendo en nuestro proyecto de software
sea estar a la altura de los valores que compartimos.
• Los principios ágiles son reflejos y especificaciones de
los valores ágiles. Sirven como lineamientos que los
desarrolladores pueden seguir al desarrollar
sistemas.
• Estos principios se pueden expresar en una serie de dichos
tales como:
1. Satisfacer al cliente por medio de la entrega de software
funcional.
2. Adoptar el cambio, incluso si se introduce en las últimas etapas
del desarrollo.
3. Seguir entregando software funcional en incrementos y con
frecuencia.
4. Fomentar a los clientes y analistas a que trabajen juntos a
diario.
5. Confiar en los individuos motivados para que realicen su
trabajo.
6. Promover la conversación cara a cara.
7. Concentrarse en hacer que el software funcione.
8. Fomentar el desarrollo continuo, regular y sostenible.
9. Adoptar la agilidad con especial atención en un diseño
lúcido.
10. Apoyar a los equipos autoorganizados.
11. Proveer retroalimentación rápida.
12. Fomentar la calidad.
13. Revisar y ajustar el comportamiento de vez en cuando.
14. Adoptar la simpleza.
Actividades, recursos y prácticas del modelado
ágil
•El modelado ágil
involucra una serie de
actividades a
completar en cierto
momento durante el
proceso de desarrollo
ágil
CUATRO ACTIVIDADES BÁSICAS DEL
DESARROLLO ÁGIL
• codificar, probar, escuchar y diseñar
• La codificación es la actividad indispensable. Un autor establece que
lo más valioso que recibimos del código es el “aprendizaje”.
• El proceso es fundamentalmente el siguiente: elija una idea,
codifíquela, pruébela y compruebe si la idea era lógica.
• La prueba es la segunda actividad básica del desarrollo. La
metodología ágil considera que las pruebas automatizadas son
imprescindibles. La metodología ágil aboga por la escritura de
pruebas para verificar codificación, funcionalidad, rendimiento y
cumplimiento.
• Escuchar es la tercera actividad básica del desarrollo
• En la metodología ágil, el proceso de escuchar se lleva al extremo.
Los desarrolladores utilizan la escucha activa para oír a su socio de
programación. En el modelado ágil hay menos dependencia de la
comunicación formal por escrito, por lo que escuchar se convierte
en una habilidad de suma importancia.
• El desarrollador también utiliza la escucha activa con
el cliente. Los desarrolladores asumen que no saben
nada sobre las empresas a las que están ayudando,
por lo que deben escuchar con cuidado a los
empresarios para obtener las respuestas a sus
preguntas.
• El desarrollador necesita llegar a comprender lo que
es la escucha efectiva.
• Si usted no escucha, no sabrá qué codificar o probar.
• La cuarta actividad básica en el desarrollo
es el diseño, que es una forma de crear
una estructura para organizar toda la
lógica en el sistema.
• El diseño es evolutivo, y por ende los
sistemas que se diseñan mediante el
método ágil se conceptualizan como
sistemas que siempre están en evolución y
siempre están siendo diseñados.
• A menudo es simple lograr un buen diseño
CUATRO VARIABLES DE CONTROL DE
RECURSOS DEL MODELADO ÁGIL
• El analista sacrifica algunas ventajas por otras. Algunas veces el costo
puede estar predeterminado, mientras que otras veces el tiempo
puede llegar a ser el factor más importante.
A continuación hablaremos sobre estas variables de control de recursos
• Tiempo
• Costo
• Calidad
• alcance
• TIEMPO Hay que asignar tiempo suficiente para completar
el sistema, y entender que lo necesita para varias
actividades distintas: escuchar a los clientes, diseñar,
codificar y probar.
• COSTO El costo es la segunda variable que podríamos
ajustar.
• Suponga que las actividades de codificación, diseño,
prueba y escucha están sobrecargando el proyecto y los
recursos que invertimos en el tiempo, alcance y la calidad
no son suficientes, incluso aunque dediquemos una
cantidad normal al costo para equilibrar el proyecto
• CALIDAD La tercera variable de control de recursos es
la calidad. Si los sistemas ideales son perfectos, ¿por
qué hay que poner tanto esfuerzo en dar
mantenimiento a los sistemas? ¿Acaso estamos
practicando ya el desarrollo ágil al sacrificar la calidad
en el desarrollo de software?
• ALCANCE Por último tenemos el
alcance. En la metodología ágil,
para determinar el alcance hay
que escuchar a los clientes y
hacer que escriban sus
historias, que se examinan
después para determinar
cuánto se puede hacer en un
tiempo dado para satisfacerlos.
El proceso de desarrollo ágil
• El modelado es una palabra clave en los
métodos ágiles. El modelado ágil aprovecha la
oportunidad de crear modelos que pueden ser
lógicos, como los dibujos de los sistemas, o
maquetas de tamaño natural como los
prototipos.
Un proceso ordinario de modelado ágil podría
ser el siguiente:
1. Escuchar las historias de los usuarios por medio del cliente.
2. Dibujar un modelo del flujo de trabajo lógico para apreciar
las decisiones de negocios representadas en la historia de un
usuario.
3. Crear historias de usuarios con base en el modelo lógico.
4. Desarrollar algunos prototipos de visualización. Para ello hay
que mostrar a los clientes el tipo de interfaz que tendrán.
5. Usar la retroalimentación de los prototipos y los diagramas
del flujo de trabajo lógico para desarrollar el sistema hasta
crear un modelo físico de datos.
Scrum
• Scrum es una metodología ágil y flexible
para gestionar el desarrollo de software,
cuyo principal objetivo es maximizar el
retorno de la inversión para su empresa
(ROI). Se basa en construir primero la
funcionalidad de mayor valor para el
cliente y en los principios de inspección
continua, adaptación, auto-gestión e
innovación.
• Con la metodología Scrum el cliente
se entusiasma y se compromete con el
proyecto dado que lo ve crecer
iteración a iteración. Asimismo le
permite en cualquier momento
realinear el software con los objetivos
de negocio de su empresa, ya que
puede introducir cambios funcionales
o de prioridad en el inicio de cada
nueva iteración sin ningún problema.
• Esta metódica de trabajo promueve la
innovación, motivación y compromiso del
equipo que forma parte del proyecto, por lo
que los profesionales encuentran un ámbito
propicio para desarrollar sus capacidades.
Ventajas
• Cumplimento de expectativas: El cliente establece sus
expectativas indicando el valor que le aporta cada requisito.
• Flexibilidad a cambios: Alta capacidad de reacción ante los
cambios de requerimientos generados por necesidades del
cliente o evoluciones del mercado.
• Reducción del Time to Market: El cliente puede empezar a
utilizar las funcionalidades más importantes del proyecto antes
de que esté finalizado por completo.
• Mayor calidad del software: La metódica de trabajo y la
necesidad de obtener una versión funcional después de cada
iteración, ayuda a la obtención de un software de calidad
superior.
• Mayor productividad: Se consigue entre otras razones, gracias
a la eliminación de la burocracia y a la motivación del equipo.
• Maximiza el retorno de la inversión (ROI): Producción de
software únicamente con las prestaciones que aportan mayor
valor de negocio gracias a la priorización por retorno de
inversión.
• Predicciones de tiempos: Mediante esta metodología se
conoce la velocidad media del equipo por sprint .
• Reducción de riesgos: El hecho de llevar a cabo las
funcionalidades de más valor en primer lugar y de conocer la
velocidad con que el equipo avanza en el proyecto, permite
despejar riesgos eficazmente de manera anticipada.
Fases del Scrum
ANTES DEL DESARROLLO (PREGAME)
• La planificación y diseño de la arquitectura de alto nivel que
son representado por los dos símbolos rectángulo negro
• El proceso de planificación define una nueva versión basada
en cartera actualmente conocido, junto con una estimación
de su coste y el calendario (prioridades y estimaciones de
esfuerzo).
• Este proceso consiste tanto en la conceptualización y el
análisis de si una se está desarrollando el nuevo sistema.
FASE DEL DESARROLLO (DEVELOPMENT
PHASE)
• En esta fase se espera que ocurran cosas impredecibles.
Para evitar el caos Scrum define prácticas para observar y
controlar las variables técnicas y del entorno, así también
como la metodología de desarrollo que hayan sido
identificadas y puedan cambiar. Este control se realiza
durante los Sprints. Dentro de variables de entorno
encontramos: tiempo, calidad, requerimientos, recursos,
tecnologías y herramientas de implementación.
DESPUES DEL DESARROLLO (POSTGAME)
• Para ingresar a esta fase se debe llegar a un
acuerdo respecto a las variables del entorno por
ejemplo que los requerimientos fueron
completados. El sistema está listo para ser
liberado y es en esta etapa en la que se realiza
integración, pruebas del sistema y
documentación.
METODOLOGÍA KANBAN
• Kanban es una de las llamadas metodología ágiles, aquellas
que buscan gestionar de manera generalizada cómo se
van completando las tareas.
• Kanban es una palabra japonesa que se compone de dos
partes: Kan, que significa visual, y Ban, que hace referencia a
tarjeta, de modo que como podemos deducir la metodología
utiliza tarjetas para gestionar, de manera visual, la realización
de determinados procesos y tareas.
•El Kanban es un sistema de trabajo just in
time, lo que significa que evita sobrantes
innecesarios de stock, que en la gestión de
proyectos multimedia equivale a la inversión
innecesaria de tiempo y esfuerzo en lo que
no se necesitara y evita sobrecargar al
equipo
Características de Kanban
FASES DEL KANBAN
PROGRAMACIÓN EXTREMA (XP)
• La programación extrema se basa en una serie
de reglas y principios que se han ido gestando a
lo largo de toda la historia de la ingeniería del
software.
• XP es una metodología ágil centrada en
potenciar las relaciones interpersonales como
clave para el éxito en el desarrollo de software
Ciclo de Vida de XP
• El ciclo de vida de XP se enfatiza en el carácter
interactivo e incremental del desarrollo, una
iteración de desarrollo es un período de tiempo
en el que se realiza un conjunto de
funcionalidades determinadas que en el caso de
XP corresponden a un conjunto de historias de
usuarios.
METODO DE DESARROLLO DE SOFTWARE RUP
(Proceso Racional Unificado)
• El RUP es una metodología sólida, con
documentación que apoya el ciclo de vida
evolutivo incremental, además de orientarse al
desarrollo de componentes secundando el
desarrollo orientado a objetos
CARACTERÍSTICAS DEL RUP
• Interactivo. Refinamiento sucesivo
• Controlado. Gestión de requisitos y control de cambios
• Construcción de modelos
• Centrado en arquitectura
• Desarrollo de software basado en componentes
• Conducido por los casos de uso
• Soporta técnicas OO (Orientadas a objetos) uso del UML
• Configurable
• Fomenta al control de calidad del software
• Soportado por herramientas
Ciclo de vida de RUP
METODOLOGÍA CRYSTAL

•Las metodologías Crystal son una familia


de metodologías ágiles, donde cada una
de ellas está adecuada para un tipo de
proyecto. Su creador es el popular
Cockburn uno de los firmantes del
manifiesto ágil.
•Las metodologías Crystal también sirven
para gestionar proyectos ágiles, con la
diferencia de que estás dos últimas son
menos extremas y están pensadas para más
tipologías de proyectos y organizaciones,
destacando especialmente proyectos y
empresas grandes
• El nombre de metodologías Crystal viene de que
cada proyecto software puede caracterizarse
según dos dimensiones, tamaño y criticidad, al
igual que los minerales se caracterizan por dos
dimensiones, color y dureza. Y esta es una de las
bases de las metodologías Crystal
• La otra gran clave de metodologías Crystal,
común a casi todas las metodologías ágiles,
es que lo más determinante para el éxito, o
fracaso, de un proyecto son las persona. Una de
las claves que determinan el éxito (o fracaso) de
un proyecto software.
•En las metodologías Crystal, proyectos
grandes, que necesitan más
coordinación y comunicación, se asocian
con colores más oscuros. Proyectos en
los que un fallo pueda causar mayores
problemas, también se asocian con
colores más oscuros.
Las 7 propiedades de las metodologías
Crystal
1 – Entregas frecuentes, en base a un ciclo de vida iterativo e
incremental. En función del proyecto puede haber desde entregas
semanales hasta trimestrales. Para los que conozcan Scrum: en Scrum
las entregas son, máximo, cada 4 semanas, en las Crystal se
contemplan muchas más opciones.
2 – Mejora reflexiva. Que viene a ser mejora continua. Las iteraciones
ayudan a ir ajustando el proyecto, a ir mejorándolo.
3 – Comunicación osmótica. Traducido al castellano, que el equipo esté
en una misma ubicación física, para lograr la comunicación cara a cara.
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.
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, 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. Prácticas comunes en casi todas
las metodologías ágiles,
PROCESO UNIFICADO AGIL (AUP)
• 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
iníciales 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.
• 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.
Cuestionario
1. ¿Cuáles son los cuatro tipos de información que busca el analista por medio de la
creación de prototipos?
2. ¿Qué significa el término prototipo de parches?
3. Defina un prototipo que sea un modelo a escala no funcional.
4. Dé un ejemplo de un prototipo que sea un primer modelo a escala completa.
5. Defina lo que significa un prototipo que es un modelo con ciertas características
esenciales, pero no todas.
6. Haga una lista de las ventajas y desventajas de usar prototipos
7. Describa cómo se pueden usar los prototipos para mejorar el SDLC tradicional.
8. ¿Cuáles son los criterios para decidir si debemos crear el prototipo de un sistema?
9. Haga una lista de los cuatro lineamientos que debe observar el analista al desarrollar
un prototipo.
10. ¿Cuáles son los dos principales problemas implicados en la creación de prototipos?
11. Haga una lista de las tres principales ventajas de usar prototipos.
12. ¿Cómo puede un prototipo montado en un sitio Web interactivo
facilitar el proceso de creación del mismo? Responda en un párrafo.
13. ¿Cuáles son las tres formas en que puede ayudar un usuario en el
proceso de creación del prototipo?
14. ¿De donde proviene la palabra Kanban?
15. ¿Cuáles son las fases de la metodología SCRUM?
16. ¿Cuáles son los cuatro valores que deben compartir el equipo de
desarrollo y los clientes de la empresa al utilizar una metodología ágil?
17. ¿Qué son los principios ágiles? Mencione cinco ejemplos.
18. ¿Cuáles son las cuatro prácticas básicas de la metodología ágil?
19. ¿explique las fases o etapas de la metodología XP?
20.¿Explique las fases o etapas de la metodología SCRUM?
21. ¿Mencione las características de la metodología Crystal?
22. ¿Mencione las características de la metodología AUP?
23. ¿Mencione las características de la metodología RUP?
24. ¿Qué es una arquitectura del sistema?
25. ¿ Mencione las características de la metodología KANBAN?

También podría gustarte