Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
CAPITULO ICAPITULO I
1.1 CONCEPTOS BASICOS
Resumen preparado por Miguel Cotaña
Ingeniería del SoftwareINF - 163
Mg. Sc. Miguel Cotaña M.
La Paz - Bolivia
Los métodos ágiles se desarrollaron en
un intento por superar las debilidades
advertidas y reales en IS convencional.
El desarrollo ágil proporciona
beneficios importantes, pero es
imposible aplicarlo en todos los
proyectos, productos, personas y
situaciones.
2. DESARROLLO ÁGIL2. DESARROLLO ÁGIL
El desarrollo ágil puede llamarse con
mayor precisión “ingeniería de software ligera”. Las actividades
básicas del marco de trabajo se
conservan, pero éstas se conforman
como un conjunto mínimo de tareas que
empujan al equipo de proyecto hacia la
construcción y la entrega.
Alistair Cockburn, argumenta que los
modelos prescriptivos de procesotienen una falla importante: olvidan las fragilidades de las personas que construyen el software de ordenador.
Asimismo, establece “como la consistencia
en la acción es una debilidad humana, las
metodologías que exigen un alto grado de
disciplina son frágiles”.
Un equipo ágil es un equipo rápido que
responde de manera apropiada a los
“cambios”.Para quienes quieren alcanzar la agilidad,
se define 12 principios:
1) La mayor prioridad es satisfacer al
cliente mediante la entrega temprana
del Software.
2) Bienvenidos los requisitos cambiantes,
incluso en fases tardías del desarrollo.
Qué es la agilidad?Qué es la agilidad?
3) Entregar Sw en funcionamiento, con
escala de tiempo lo más corta posible.
4) La gente de negocios y los
desarrolladores deben trabajar juntos a
diario.
5) Construir proyectos alrededor de
individuos motivados.
6) Incentivar la conversación cara a cara
7) El Sw en funcionamiento es la medida
primaria de progreso.
8) Los procesos ágiles promueven el
desarrollo sustentable.
9) La atención continúa a la excelencia
técnica y al buen diseño mejora la
agilidad.
10) La simplicidad es esencial
11) Las mejores arquitecturas, requisitos
y diseños emergen de equipos
autoorganizados.
12) Los equipos se vuelven más efectivos
a intervalos regulares.
Según Fowler. Cualquier proceso ágil de
software, se caracteriza por 3
suposiciones:
1. Resulta difícil predecir cuáles
requisitos del software persistirán y
cuáles cambiarán. También es difícil
presagiar cómo cambiarán las
prioridades del cliente mientras se
ejecuta un proyecto.
Qué es un proceso ágil ?Qué es un proceso ágil ?
2. El diseño y la construcción se deben
realizar de manera conjunta, de
modo que los modelos de diseño
sean probados conforme se crean.
Difícil predecir cuanto diseño se
necesita antes de que la
construcción se utilice para probar el
diseño.
3. El análisis, diseño y la construcción
no son predecibles.
Qué es un proceso ágilQué es un proceso ágil
Un proceso ágil de software debe ser
adaptable en forma incremental.
Para la adaptación incremental, un
equipo ágil requiere de retroalimentación
con el cliente. Un catalizador efectivo
para la retroalimentación del cliente es
un prototipo operacional o una
porción de un sistema operacional. Por lo
tanto, debe instituirse una estrategia
incremental de desarrollo.
Los incrementos de software (prototipos)
deben entregarse en cortos periodos para
que la adaptación mantenga un buen ritmo
con el cambio. Este enfoque iterativo le
permite al cliente evaluar el incremento del
software de manera regular, proporcionar
la retroalimentación necesaria al equipo de
software, e influir sobre las adaptaciones
del proceso que se realizan para adecuar la
retroalimentación.
Existe un debate en la actualidad sobre los
beneficios y la aplicabilidad del desarrollo
ágil del software como alternativa a
procesos de IS más convencionales.
Los tradicionalistas, prefieren producir
documentación nada fluida. Y los ágiles
dan sorpresas agradables en el negocio,
en base a un conjunto de ideas (tareas de
trabajo).
Políticas del desarrollo ágil:Políticas del desarrollo ágil:
El desarrollo ágil, según Cockburn, se
centra en los talentos y las habilidades de
los individuos, puesto que el proceso se
ajusta a personas y equipos específicos.
Si los miembros del equipo de software
van a manejar las características del
proceso que se aplica para construirlo,
debe existir rasgos clave entre los “ágiles”
y los demás miembros del equipo
Factores humanosFactores humanos
Los rasgos son los siguientes:
Competencia
Enfoque común
Colaboración
Habilidad para la toma de
decisiones
Capacidad de resolución de
problemas confusos
Confianza y respeto mutuo
Organización propia.
Modelos ágiles de procesoModelos ágiles de proceso
La historia de la IS está llena de decenas
de descripciones y metodologías, métodos
de modelado y notaciones, herramientas y
tecnologías obsoletas. Cada elemento
surgió con notoriedad y después lo eclipsó
algo nuevo y mejor.
Los modelos ágiles se ajustan al manifiesto
para el desarrollo de software y a los 12
principios detallados con anterioridad.
La PE utiliza un enfoque OO, como su
paradigma de desarrollo preferido. La PE
abarca un conjunto de reglas y prácticas
que ocurren en el contexto de 4
actividades del marco de trabajo:
Planeación
Diseño
Codificación
Prueba
Programación extrema (PE)Programación extrema (PE)
Planeación
diseño
codificación
prueba
Incremento de software
velocidad calculada
del proyecto
Lanzamiento
Historias del usuario
valores
criterios de las pruebas de iteración
Plan de iteración
Diseño simple
cartas CRC
Soluciones pico
prototipos
Programación
en pareja
Integración continua
Prueba de unidad
Pruebas de aceptación
refabricación
El proceso de la PEEl proceso de la PE
Lo propuso Highsmith, como una técnica
para construir software y sistemas
complejos. Los apoyos filosóficos del DAS
se enfocan en la colaboración humana y la
organización propia del equipo.
Argumenta que un enfoque de desarrollo
ágil y adaptativo basado en la colaboración
es “tanto como una fuente de orden en las
complejas interacciones entre disciplina e
ingeniería”.
Desarrollo adaptativo de software (DAS)Desarrollo adaptativo de software (DAS)
especulación
colaboración
aprendizaje
Incremento de software
ajuste para ciclos subsecuentes
Lanzamiento
Planeación del ciclo adaptativo
enunciado de la misión
restricciones del proyecto
requisitos básicos
Plan de lanzamiento en el tiempo
Recopilación de requisitos
JAD
especificaciones mínimas
Componentes implementados/probados
grupos de enfoque para retroalimentación
revisiones técnicas formales
Post morten
Desarrollo Adaptativo de SoftwareDesarrollo Adaptativo de Software
Es un modelo (propuesto por Schwaber y
Beedle) ágil de proceso. Los principios de
la melé son consistentes con el manifiesto
ágil:
Los equipos de trabajo pequeños
están organizados para “maximizar la
comunicación, minimizar los gastos
generales y maximizar el hecho de
compartir conocimiento tácito e
informal”.
MeléMelé
El proceso debe adaptarse a los
cambios técnicos y de negocios “para
asegurar que se produzca el mejor
producto posible”.
El proceso produce incrementos
frecuentes de software “los cuales se
pueden inspeccionar, ajustar, probar,
documentar y construir”.
El trabajo de desarrollo y la gente que
lo realiza están divididos en “particiones
o paquetes de bajo acoplamiento”.
Conforme se construye el producto se
realizan pruebas y documentación
constantes.
Los procesos de melé proporcionan la
“capacidad de declarar un producto como
´realizado´ siempre que esto se requiera
(porque la competencia acaba de hacer
un lanzamiento, porque la compania
necesita dinero, porque el usuario/cliente
necesita las funciones, porque ya se está
en el momento en que se prometió…….
Flujo del proceso meléFlujo del proceso melé
Melé: reunión diaria de 15 minutos
Los miembros del equipo responden
a las preguntas básicas:
1.- ¿Qué hiciste desde la última reunión?
2.- ¿Tienes algún obstáculo?
3.- ¿Qué harás antes de la próxima reunión?
La nueva funcionalidad
se demuestra
al final del sprint
Retraso del producto:
Características del producto deseadas por
el cliente que han recibido prioridad
Elementos de
retraso expandidos
por el equipo
Retraso de Sprint:
Características
Asignadas al Sprint
30 días
Cada 24
horas
Beedle y sus colegas presentan un
análisis completo de estos patrones y
establecen:
“La melé supone la existencia del caos…..”
El patrón de proceso de la melé permite
que un equipo de desarrollo de software
trabaje de manera exitosa en un mundo
donde la eliminación de la incertidumbre
es imposible.
Modelado ágil (MA)Modelado ágil (MA)
En muchas situaciones los IS deben
construir sistemas grandes y críticos para
los negocios. El ámbito y la complejidad de
dichos sistemas se deben modelar de
forma que:1) Todas las circunscripciones entiendan mejor
lo que se debe lograr.
2) El problema se divida de manera efectiva
entre la gente que lo debe resolver.
3) La calidad se evalúe en cada paso conforme
el sistema se desarrolla y construye.
El modelado ágil es una colección de
valores, principios y prácticas para el
modelado de software que puede
aplicarse en un proyecto de desarrollo de
software de una manera efectiva y
ligera.
Ambler, sugiere valor y humildad. Un
equipo ágil debe tener el valor para
tomar decisiones que ocasionarán el
rechazo y la refabricación de un diseño
Debe tener humildad de reconocer que
quienes manejan la tecnología no tienen
todas las respuestas, y que los expertos
en negocios y otros participantes de la
empresa son dignos de respeto y
consideración.
A pesar de que el MA sugiere un arreglo
amplio de principios de modelado
“esenciales” y “suplementarios”.
Los responsables de que el MA sea único
son los siguientes:
Modelar con un propósito
Usar múltiples modelos
Viajar ligero
El contenido es más importante
que la representación
Conocer modelos y herramientas
Adaptarse en forma local.