Está en la página 1de 8

Integrando Casos de uso 2.

0 y el Desarrollo Ágil de Software con


procesos metacognitivos

Girbal Ernesto R., Gardella Carlos H., Peñalva Mirta del Carmen
Universidad Tecnológica acional, Facultad Regional La Plata

Abstract que permita integrar conceptualmente la


El desarrollo de software se ve afectado conforme se captura de requerimientos con una
modifican las necesidades del negocio. Los
requerimientos cambian siguiendo las exigencias del
metodología ágil de desarrollo de software.
mismo y su mercado, en este contexto, la En la resolución de todo problema
planificación de proyectos y la administración de ingenieril la elección de un método o una
recursos en términos de tiempo, personas, y costos técnica no sólo implica la aplicación del
resulta altamente impactada. La importancia de los conocimiento adquirido, sino que subyacen
requerimientos manifestada en estudios sobre
fracasos del software [1][2] y la evolución de la
otros aspectos como el desarrollo de una
Ingeniería de Requerimientos han impulsado a las actividad metacognitiva [6] que presupone
metodologías de desarrollo de software al la capacidad que los sujetos tienen para
tratamiento exhaustivo de los mismos como base planificar qué estrategias han de utilizar
fundamental de la producción de software de ante una situación, saber qué objetivos se
calidad. Han surgido nuevos enfoques denominados
“métodos ágiles” como una respuesta que
quieren conseguir (saber qué), y saber
privilegia la adaptabilidad por sobre la cómo conseguirlos (saber cómo),
predictibilidad permitiendo entregas tempranas y aplicando, controlando, y evaluando el
progresivas de software de valor. proceso para consolidarlo o modificarlo.
*uevos paradigmas irán emergiendo como solución Existen varias formas de transitar un
a este y otros problemas, en consecuencia surge la
necesidad de una continua adaptación del sujeto que
proceso de aprendizaje, en uno el sujeto
aprende. Esto implica la responsabilidad de una cuenta con los conocimientos para enfrentar
intervención pedagógica adecuada para procurar se una situación particular y estar en
desarrollen procesos cognitivos no sólo para condiciones de resolverla
aprender sino para aprender mejor, es decir con metodológicamente. En este aprendizaje
menor esfuerzo y mejor rendimiento[3].
Al integrar Casos de Uso 2.0 con un enfoque
que denominamos asociativo [7], las
metodológico ágil, pretendemos que los estudiantes habilidades o técnicas aplicadas resultan
construyan una nueva experiencia, que básicas: repetir, memorizar, copiar, etc. No
transfirieran los resultados del aprendizaje, a hay en este caso cambios estructurales
nuevas situaciones, logrando un “aprendizaje sobre el saber adquirido. Consideramos
significativo”[4]. La metacognición se ve
representada en la resolución de problemas, como
adecuado un modelo pedagógico donde el
la capacidad que adquiere el sujeto, observando objetivo sea el aprendizaje superador, por
procesos de pensamiento propios implicados al reestructuración [7] que permita la
ejecutar una tarea, reflexionando y autorregulando organización y la elaboración del
su aprendizaje y como consecuencia transfiriendo conocimiento a través de otras habilidades
ese capital a nuevas acciones.
tales como: hacer analogías, generar mapas
Palabras Clave: conceptuales, redes de conceptos,
Requerimientos cambiantes, métodos ágiles, Casos identificar estructuras, definir palabras
de Uso 2.0, metacognición. claves, etc.
De la misma manera que la aplicación de
Introducción Casos de Uso 2.0 es extensiva a otras
El objetivo del presente artículo es metodologías de desarrollo de software:
presentar una nueva aplicabilidad de los Cascada, RAD, RUP, etc., también es
Casos de Uso (C.U.) definidos en UML [5] utilizable en otros abordajes como por
y su integración con metodologías ágiles,
ejemplo la modelización de procesos de A partir de esto, consideramos un aspecto
negocios. A través de la interacción entre central la incorporación de procesos de
docente y alumno se pretende motivar y pensamiento sobre la actividad específica
estimular el proceso metacognitivo, de desarrollada en la integración de los dos
forma tal que el estudiante pueda, sobre la enfoques planteados, que denominaremos
base del conocimiento adquirido y la procesos metacognitivos.
experiencia previa del caso planteado, Algunos indicadores sugeridos para evaluar
visualizar y comprender la extensibilidad y el proceso metacognitivo:
la aplicabilidad de este nuevo enfoque de a) Buena ejecución de tareas
los Casos de Uso en nuevos escenarios. cognitivas complejas.
b) Flexibilidad y perseverancia en la
PROCESO METACOG+ITIVO solución de la tarea.
c) Aplicación conciente de habilidades
En todo proceso de enseñanza y aprendizaje intelectuales.
es necesario contar con sujetos activos y d) Autointerrogación y crítica.
pensantes para una apropiación exitosa del e) Buena gestión de recursos
conocimiento. Mientras el rol del docente personales (motoras, percepción,
incluye activar el pensamiento del sujeto, lenguaje, creencias, conocimientos
éste deberá esforzarse mejorando la calidad previos, memoria, destrezas de
de su trabajo intelectual a través de aprendizaje) para lograr el objetivo
procesos de autorreflexión y crítica, es decir
pondrá en ejecución procesos BASE CO+CEPTUAL DE CASOS DE
metacognitivos. Comenzaremos expresando USO 2.0
que es la metacognición. Entre sus varias
acepciones, el término metá, significa en El sujeto que aprende tomará conocimiento
griego “posterior a” o “que acompaña”, por de los principales conceptos básicos de la
lo que podemos pensarlo como “lo que aplicación de Casos de Uso 2.0 con
acompaña a la cognición”. Desde las relación a los requerimientos. Esto
primeras investigaciones a fines de la comprende en primer término, conocer una
década de 1960 hasta la actualidad se ha serie de criterios que se deben considerar en
revelado a la metacognición como un relación a los mismos, para posteriormente
atributo del ser humano para supervisar y ver los artefactos principales que lo
controlar su propia cognición. Es una constituyen. [9]
actividad recursiva del pensamiento donde
el sujeto, ante un problema, piensa sobre lo Criterios fundamentales:
que conoce, planifica estrategias de Mantener los Casos de Uso simples
solución, las aplica y evalúa la Los Casos de Uso proveen una forma
productividad de las mismas para mejorar simple y comprensiva de identificar y
su desempeño en futuras situaciones. Pero capturar las historias narradas por los
la metacognición va más allá, y además stakeholders, permitiendo que los
abarca el conocimiento interior de la requerimientos del sistema sean fácilmente
persona: sus valores, sistemas de ideas, capturados, compartidos y comprendidos,
fortalezas y debilidades, es decir debe tener además de ser ejecutables y testeables.
conciencia de los recursos con que cuenta. Entender el todo
La visión actual de la psicología cognitiva Los Casos de Uso que modelan el sistema
asocia la motivación, la autorregulación, el permiten rápidamente descubrir qué está
interés por la meta y la metacognición incluido y que no lo está, creando una
como un sistema cooperante que facilita la visión global del sistema fácilmente
eficacia ante nuevos aprendizajes [8]. comprensible del contexto y los objetivos
del sistema.
Enfocarse en el valor
Es importante determinar qué valor el
sistema proveerá a los usuarios. Esto
solamente se genera si el mismo es
utilizado productivamente en el logro de
sus metas. Los casos de uso que permiten
capturar los requerimientos facilitan que los
de mayor valor sean identificados
inicialmente.
Construir el sistema en porciones
Figura 2. Mapa conceptual Casos de Uso 2.0
Identificar los requerimientos de mayor
valor y uso, luego cortarlos en porciones, Ciclo de vida de un Caso de Uso
definir los casos de prueba que representen Un C.U. sufre muchos cambios de estado
la aceptación de dichas porciones. Elegir la desde su identificación inicial hasta su
porción que constituye el núcleo que viaja a realización por el sistema. Los estados
través del ciclo de desarrollo, de extremo a constituyen un punto importante en la
extremo del mismo y comenzar a comprensión y el desarrollo de los mismos,
construirlo. Porciones adicionales pueden dichos estados se describen en la Figura 3:
ser tomadas del Caso de Uso e
implementadas hasta que haya suficientes
para proveer una solución usable a un
usuario particular tal como se muestra en la
Figura 1.

Figura 3. Ciclo de vida de un Caso de Uso

Figura 1. Casos de Uso, Porciones de Casos de Uso, El modelo de Caso de Uso es


Incrementos y Entregas complementado por información de
Contenidos Casos de Uso 2.0 soporte, que captura la definición de los
Los Casos de Uso 2.0 comprenden los términos usados en el modelo y en las
Casos de Uso, las historias de usuarios, y la historias que describen el caso [10] [11].
“porción de caso de uso”. El mapa Ciclo de vida de una porción de Caso de
conceptual de C.U. 2.0 descripto en la Uso
Figura 2 permite visualizar la relación Los casos de uso cubren muchas historias
existente entre los distintos conceptos que varían en importancia y prioridad.
involucrados en el ciclo de desarrollo de Existen demasiadas historias para ser
software. entregadas en forma total y generalmente
demasiadas para trabajar en un solo
incremento. Por esto se debe dividir el
C.U. en piezas más pequeñas llamadas
porciones, las cuales constituyen la
característica más importante de los Casos
de Uso 2.0 ya que conducen el desarrollo
del sistema hasta completarlo. Esta Uso correcta y para determinar los Casos de
estrategia permite seleccionar qué piezas Prueba que verifican esas historias. Si se
entregar, provee unidades adecuadas para requiere se pueden listar las historias del
desarrollar y probar, manejar piezas de Caso de Uso como una sección extra en el
trabajo pequeñas y de tamaño similar, que relato del mismo. Si es necesaria mayor
pueden ser rápidamente codificadas. formalidad en el relato, se puede utilizar
Los estados de las porciones de Casos de cualquier herramienta de documentación
Uso permiten evaluar el progreso que se que se considere apropiada.
está realizando en comprender e
implementar un Caso de Uso. Mientras una
porción está siendo verificada, otra porción
se puede estar implementando y una tercera
siendo analizada como se describe en la
Figura 4.

Figura 4. Estados de una porción de Caso de Uso Figura 5. Ejemplificación de Flujos de actividades

Historias Defectos y Cambios


Los Casos de Uso se exploran relatando Si bien no son una parte directa de C.U. 2.0,
historias, donde cada historia de valor para resulta importante comprender como los
los clientes, usuarios, y otros stakeholders defectos y los cambios son tratados en los
es un hilo de uno de los casos de uso. Las Casos de Uso y en las porciones. Los
historias en su naturaleza pueden ser cambios requeridos se deben analizar contra
funcionales o no funcionales. Son descritas el modelo de Caso de Uso, el Caso de Uso,
como un conjunto de flujos, esto puede ser y la porción de Caso de Uso. Esto permite
complementado por un conjunto de que la magnitud del cambio sea
requerimientos especiales que pueden rápidamente comprendida. Adicionar un
influir en las historias, permitiendo asignar nuevo Caso de Uso al sistema es un cambio
las historias correctas a la porción de Caso mayor ya que cambia los objetivos totales
de Uso para su posterior implementación y del sistema y el propósito del mismo. Un
además definir los casos de prueba cambio en un Caso de Uso existente es más
correctos. El flujo básico es mostrado como pequeño, particularmente si se refiere a una
una secuencia lineal de pasos y los flujos historia que no ha sido destinada a una
alternativos son mostrados como porción, o preparada, o analizada, o
desviaciones de este conjunto de pasos. En implementada, o verificada.
la Figura 5 se presenta un caso práctico Los defectos son manejados mediante el
correspondiente a la extracción de fondos seguimiento de la porción de Caso de Uso,
en un cajero automático, mostrando el flujo como resultado de su detección durante la
básico y los alternativos. implementación o la verificación de la
Las historias constituyen una herramienta misma. La porción no puede continuar
útil para encontrar la porción de Caso de
implementándose hasta que el defecto sea
tratado y superado. 3. Preparar una porción de Casos de Uso
Una vez que una porción es seleccionada
E+FOQUE METODOLÓGICO PARA para ser desarrollada:
LA CAPTURA DE REQUERI- • Prepararla para la implementación.
MIE+TOS Y EL DESARROLLO • Claramente definir que significa
SOFTWARE E+ C.U. 2.0 implementar exitosamente la porción.
• Definir las características del
Comprendidos los conceptos básicos, el requerimiento.
sujeto que aprende tendrá una visión • Enfocar el desarrollo del software hacia
integradora de “Casos de Uso aplicando las pruebas que debe afrontar
porciones”, a través de una serie de
actividades, desde la determinación de los 4. Analizar porción de Caso de Uso
casos de uso hasta la implementación y Antes de codificar se debe analizar la
prueba del software tal se describen en la porción para:
Figura 6: • Comprender su impacto sobre los
elementos del sistema que serán
utilizados para implementarlo.
• Definir las responsabilidades de los
elementos del sistema afectados.
• Definir como los elementos del sistema
interactuarán para llevar a cabo el Caso
de Uso.

5. Implementar software para una


porción
Figura 6. Mapa conceptual de actividades Diseñar, codificar, probar la unidad, e
integrar los componentes de software
1. Encontrar Casos de Uso y Actores
Se necesita encontrar actores y Casos de necesarios para implementar la porción de
Uso que permiten: Caso de Uso.
• Acordar sobre los objetivos del sistema.
6. Probar el sistema para la porción
• Acordar sobre el comportamiento del
Probar el software independientemente para
sistema.
verificar que la porción de Caso de Uso ha
• Definir el alcance de las entregas del sido implementada exitosamente. Cada
sistema. porción necesita ser probada antes de que
• Acordar con el valor que el sistema pueda ser considerada completa y
provee. verificada. Esto se logra ejecutando los
• Identificar formas de usar y probar el Casos de Prueba de la porción, la
sistema. independencia de las porciones permite
probarlas tan pronto como son
2. Cortar los Casos de Uso implementadas y provee un feedback
Para crear la primera porción de Casos de inmediato.
Uso:
• Crear una porción de tamaño adecuado 7. Probar el sistema como un todo
para trabajar. Cada incremento del sistema de software
• Ajustar el tiempo y el presupuesto necesita ser probado para verificar que
disponible. implementa correctamente todas las nuevas
• Entregar el valor más alto a los porciones de Casos de Uso sin afectar
usuarios. ninguna otra parte del mismo. Cada vez que
se genere un incremento, no es suficiente La estructura del relato del Caso de Uso que
probar la porción implementada, sino que los define, asegura que los mismos son
se debe también probar el sistema como un estimables y negociables y que el
todo para asegurar que las porciones mecanismo de corte permite obtener
implementadas sean compatibles con el porciones de los Casos de Uso lo más
software generado. pequeñas posible, tanto como sea necesario.
En este enfoque el ProductBacklog no está
8. Inspeccionar y adaptar los Casos de construido por adelantado, sino que es
Uso continuamente trabajado y refinado a través
Se necesita continuamente refinar y evaluar de las porciones de Casos de Uso.
los Casos de Uso y sus porciones para:
• Manejar los cambios. Cabe destacar que las actividades que
• Seguir el progreso. contribuyen al desarrollo metacognitivo se
• Adecuar el trabajo en el tiempo y el llevan adelante durante todo el proceso de
presupuesto disponible. producción de software razón por la cual su
• Refinar el tamaño de las porciones para carácter es transversal, tal como se describe
incrementar el rendimiento del trabajo. en la Figura 7:

CASOS DE USO 2.0 Y SU


APLICACIÓ+ E+ U+ MÉTODO
ITERATIVO CO+DUCIDO POR EL
PRODUCTBACKLOG

El desarrollo ágil de software dentro de sus


premisas prioriza [12]:
• El software que funciona, por encima de
la documentación exhaustiva
• La respuesta al cambio, por encima del
seguimiento de un plan.
El enfoque de Casos de Uso 2.0 permite
establecer una correspondencia directa con Figura 7. Secuencia de actividades en enfoque ágil
los llamados métodos ágiles para el
desarrollo de software en la cual el sujeto “Encontrar actores y Casos de Uso” se
que aprende verá cómo los contenidos utiliza para construir el modelo inicial de
previos y las actividades de los Casos de Casos de Uso y ambientar el sistema.
Uso 2.0 se integran particularmente con “Cortar los Casos de Uso” es usado para
una metodología ágil como Scrum, un crear el conjunto inicial más importante de
marco de trabajo para la gestión y porciones de Casos de Uso para alimentar
desarrollo de software basado en un proceso el ProductBacklog.
iterativo e incremental [13] [14]. “Preparar porción de Casos de Uso” es
En el marco de Scrum, el ProductBacklog usado para conseguir uno o más de estos,
es una lista ordenada de todos los listos para ser desarrollados en la primera
requerimientos y representa la única fuente iteración.
de los mismos. Una vez que el ProductBacklog está listo se
Cuando se usa Casos de Uso 2.0 las puede comenzar el primer desarrollo
porciones son los ítems primarios del iterativo.
ProductBacklog, el uso de las porciones Toda iteración comienza con algún
asegura que los ítems del mismo están bien planeamiento, durante este planeamiento
construidos, y que naturalmente sean puede ser necesario usar “Cortar el Caso de
independientes, valorizables y testeables. Uso” para promover porciones que sean lo
suficientemente pequeñas para completar en
la iteración.
Para desarrollar los cortes identificados y
agregarlos al sistema, se usa “Preparar
porción de Casos de Uso”, “Analizar Casos
de Uso, “Implementar software para la
porción”, y “Probar el sistema para la
porción”.
Mientras se ejecuta el desarrollo también se
utiliza “Inspeccionar y adaptar el Caso de
Uso”, “Cortar los Casos de Uso”, y
“Preparar un corte de Caso de Uso” para
mantener el ProductBacklog, manejar
cambios, y asegurar que hay suficientes
ítems listos para ser manejados en la
próxima iteración.
Se debe “Probar el sistema como un todo”
para ver el grado de avance logrado, e
“Inspeccionar y adaptar el Caso de Uso”
para analizar la calidad y la efectividad de
los Casos de Uso y de las porciones
implementadas. Al final de cada iteración
se necesita hacer al análisis retrospectivo Tabla 1. Tabla de Identificación de Capacidades y
Destrezas en Actividades Ingenieriles
que permita definir la visibilidad del
proyecto.
En el desarrollo de las actividades, el
Conclusión
docente pondrá en ejecución acciones
La presentación de este nuevo abordaje para
tendientes a estimular y facilitar el
la captura de requerimientos basado en los
desarrollo del proceso metacognitivo, de
Casos de Uso y su integración con una
tal manera que el sujeto que aprende pueda
metodología ágil, está pensado como una
reflexionar sobre su propio aprendizaje,
prueba de concepto para que el sujeto que
regular y organizar el conocimiento
aprende a través del proceso de aprendizaje
adquirido, identificar las destrezas
incorpore conceptos teóricos y de
aplicadas, generar nuevo conocimiento en
modelización de la Ingeniería de
base a los conocimientos previos y esbozar
Requerimientos y la aplicación de las
una medida de valor sobre su proceso de
metodologías ágiles como una solución a la
aprendizaje.
necesidad actual de la entrega temprana de
A tal fin proponemos una herramienta que
código.
asista a la autoevaluación en la cual el
El proceso cognitivo si bien proporciona en
sujeto que aprende marcará qué
este caso un conocimiento útil para una
capacidades y destrezas puso en juego en
situación puntual, de no tener asociado un
cada proceso del desarrollo de software al
proceso metacognitivo no resulta en un
integrar Casos de Uso 2.0 con una
aprendizaje adecuado que permita enfrentar
metodología ágil, este cuadro estará
nuevas situaciones reelaborando el saber.
asociado a una temporalidad acordada para
En este caso se han integrado actividades de
que ambos, alumnos y docente puedan
la disciplina ingenieril de sistemas de
monitorear los avances del proceso de
información, con actividades de
adquisición del conocimiento, tal como se
estimulación del pensamiento, el análisis, y
describe en la Tabla 1:
la reflexión, a través del cambio de unos de
los miembros del par integrador, en este
caso la metodología de desarrollo. Si el [7] Pozo, J.I., Estrategias de aprendizaje,
sujeto es capaz de realizar el proceso Desarrollo psicológico y educación, 1990 - Alianza
Madrid
metacognitivo, éste se evidencia en las
nuevas relaciones que pueda establecer en [8] Angulo Delgado, F. (2002). Aprender a enseñar
el caso modificado y haber generado otros Ciencias: Análisis de una propuesta para la
conocimientos a partir del mismo. formación inicial del profesorado de Secundaria,
La integración de dos tópicos como Casos basada en la metacognición. Universidad Autónoma
de Barcelona.
de uso 2.0 y el Desarrollo Ágil de Software
prevé el mapeo de conceptos de un enfoque [9] Jacobson I., Spencer I., Bittner Kurt (2011).
hacia el otro, la vinculación de ideas, la Use-Case 2.0 The Guide to Succeeding with Use
correspondencia de artefactos y promueve Cases. Ivar Jacobson International.
la consolidación conceptual a través de una
[10] Jacobson I., Christerson M., Jonsson P.,
visión totalizadora, enriquecida por la Overgaard G., Object Oriented Software
inducción del proceso metacognitivo. Engineering: A Use Case Driven Approach
La puesta en ejecución de la presente Addison-Wesley Professional (1992)
propuesta, consideramos será fuente de
motivación y contribuirá al proceso de [11] Jacobson I., Ng Pan-Wei, Aspect-Oriented
Software Development with Use Cases
conocimiento del sujeto que le permitirá Addison-Wesley Professional (2005)
autoevaluarse y optimizar el uso de los
recursos con que cuenta, e ir en busca de [12] Kent Beck, Mike Beedle, Arie van Bennekum,
aquellos deficitarios o en desarrollo. Alistair Cockburn, Martin Fowler, Jeff Sutherland et
Asimismo sostenemos que la contribución al. Manifesto for Agile Software Development
excede el ámbito ingenieril contextualizado [13] Schwaber, K. Advanced Development
ya que consiste en una forma universal de Methods. SCRUM Development Process Retrieved
aprender y ser. (2010)

Referencias [14] Schwaber, K., Agile Project Management with


Scrum, Microsoft Press (2004)
[1] Gibbs W. Wayt, Software’s Chronics Crisis.
(1994). Scientific American Datos
Datos de Contacto:
[2] The Standish Group Report – Chaos. (1996)
Ernesto R. Girbal, Universidad Tecnológica
[3] Allueva P., Desarrollo de habilidades *acional, Facultad Regional La Plata. Calle 60 y
metacognitivas: programa de intervención. 124. La Plata. E-mail: ergirbal@yahoo.com.ar
Zaragoza, Consejería de Educación y Ciencia.
Diputación general de Aragón. (2002). Hugo Gardella, Universidad Tecnológica *acional,
Facultad Regional La Plata. Calle 60 y 124. La
[4] Ausubel, D. Teoría del Aprendizaje significativo Plata. E-mail: hugarde2002@yahoo.com.ar
extraído de http://www.docstoc.com/docs/20972313/
La-Teoria-del-aprendizaje-significativo-de-David- Mirta del Carmen Peñalva, Universidad
Ausubel. Tecnológica *acional, Facultad Regional La Plata.
Calle 60 y 124. La Plata.
[5] Booch G., Jacobson I., Rumbaugh J. (2006). El E-mail: mirpenalva@hotmail.com
lenguaje unificado de Modelado. Ed. Pearson
Educación, 2da. Edición.

[6] González Fredy E. Acerca de la metacognición.


(1996). Universidad Pedagógica Experimental
Libertador, Venezuela.

También podría gustarte