Fuentes utilizadas por desarrolladores de software en Argentina

Anuncio
Fuentes utilizadas
por desarrolladores de software en Argentina
para elicitar requerimientos
Leandro Antonelli1, Alejandro Oliveros2
1LIFIA,
Facultad de Informática, Universidad Nacional de La Plata,
lanto@sol.info.unlp.edu.ar
2 Departamento de Computación, Facultad de Ingeniería,Universidad de Buenos Aires,
oliveros@fibertel.com.ar
Abstract. Este artículo analiza cuales son las fuentes de requerimientos utilizadas por los desarrolladores de software en la Argentina. Realizamos una
encuesta a 38 personas con formación académica y experiencia en la industria. Estas personas tomaron un curso de ingeniería de requerimientos de la
maestría en Ingeniería de Software de la Universidad Nacional de La Plata en
el año 2001. Al final del curso les pedimos que completen un cuestionario.
Los participantes, basándose en su experiencia y en los conocimientos adquiridos durante el curso, respondieron a preguntas sobre su educación académica, experiencia profesional y, técnicas y fuentes utilizadas para elicitar requerimientos. Los resultados muestran que las fuentes utilizadas son principalmente las personas y los formularios.
Keywords: requerimientos, fuentes, traceability.
1 Introducción
Ackoff [1] es el que mejor describe la importancia de los requerimientos: “Fallamos
más a menudo porque resolvemos el problema incorrecto, que porque obtenemos
una solución deficiente del problema correcto”. Sin embargo, no es el único que
relaciona a los requerimientos y a su gerenciamiento con aspectos de calidad en el
software ([2], [3], [4], ISO/IEC 12207, MIL-STD-498 y DOD-STD-2167A).
Traceability es una característica que debe poseer los requerimientos (la especificación de requerimientos de software) y de su gerenciamiento ([5], [3], [6] y [7]).
Muchas soluciones se han propuesto en esta área ([8], [3], [9] y [10]). Sin embargo,
traceability de requerimientos (RT), en particular pre-traceability backward [10],
permanece como un área de problema ampliamente reportada. Esto se debe a que no
hay un análisis de las fuentes de requerimientos utilizadas en los desarrollos de
software para poder desarrollar una solución de pre-traceability backward adecuada.
Fuentes Utilizadas por Desarrolladores de Software en Argentina 107
En este artículo presentamos una encuesta sobre las fuentes de requerimientos
utilizadas por los desarrolladores de software en la Argentina. Un grupo de 38 profesionales, con formación académica y experiencia en la industria, tomó un curso de
maestría de ingeniería de requerimientos, y al final del mismo les pedimos que completen un cuestionario. Éste último indaga sobre las técnicas de requerimientos (para
inferir las fuentes) y también consulta directamente sobre las fuentes utilizadas.El
contexto de esta investigación es obtener referencias de fuentes utilizadas para elicitar requerimientos a fin de tener basamento real para desarrollar un modelo conceptual de pre-traceability backward. En este contexto resulta relevante apelar al
segmento de la comunidad de desarrolladores que resulta más activo en la utlización
de técnicas de ingeniería de software. Los estudiantes de un curso de maestría en
ingeniería de software constituyen un grupo representativo de dicho segmento.
El cuestionario es descripto en la sección 2. Los participantes son analizados en
la sección 3. Los resultados sobre las técnicas y las fuentes usadas por los profesionales son mostrados en las secciones 4 y 5 respectivamente.
2 Cuestionario
El cuestionario está compuesto por preguntas cerradas divididas en 3 secciones. La
primera sección pregunta datos personales, estudios académicos y experiencia en el
desarrollo de software. Algunas preguntas de esta sección son: ¿Qué edad tiene?
¿Cuándo obtuvo su primer título universitario? ¿Cuánto tiempo ha trabajado en la
industria en el desarrollo de software? ¿Qué tareas ha desempeñado? ¿Cuánto tiempo duró un proyecto de magnitud media en el cual ha trabajado? ¿Cuántas personas
participaron de él? ¿Qué técnicas de elicitación ha utilizado?
La segunda sección recaba información sobre las técnicas de elicitación utilizadas. A partir de las mismas determinamos las fuentes utilizadas. Los participantes
debieron elegir todas las técnicas con los cuales trabajaron. Las mismas se agruparon en 6 grupos [11]:
Técnicas tradicionales
Técnicas de elicitación grupales
Prototipación
Técnicas model-driven
Técnicas cognitivas
Técnicas contextuales
La última sección pregunta los productos (fuentes) de las cuales elicitaron requerimientos. Un total de 29 productos se agruparon en 4 categorías:
Entrevistas
Análisis de formularios
Desarrollos previos
Productos del mundo real.
108 WER 2002
Los participantes debieron indicar la relación que más los involucraba con cada
producto: lo utilizo frecuentemente, lo utilizo ocasionalmente, alguna vez lo usé, lo
conozco o conozco alguien que lo utiliza.
3 Participantes
La cantidad de personas involucradas en la encuesta es relativamente chica (38), sin
embargo ellos conforman un grupo de personas con variada formación académica y
experiencia en la industria, lo que permite que los resultados sean imparciales.
Los participantes provienen de dos ciudades en donde la situación económica y
social es diferente, y por lo tanto poseen distintas prácticas de ingeniería de requerimientos. Las ciudades son La Plata y Córdoba, y se hayan aproximadamente a 700
kilómetros de distancia. En La Plata contestaron la encuesta 21 personas y 17 lo
hicieron de Córdoba.
La formación académica de los participantes también es variada. Participaron
personas que se graduaron entre el año 1973 y el 2000. La mayoría de las personas
se graduaron entre 1996 y 2000. Sin embargo más del 33% lo hizo antes de 1995
(tabla 1), cuando la ingeniería de requerimientos era una disciplina inmadura aún.
Por lo tanto, quienes se graduaron antes del 1995 aprendieron las técnicas de elicitación de requerimientos a través de su propia práctica, y está experiencia es invaluable para nuestra encuesta, ya que establecen que les ha dado resultado en la práctica.
Tabla 1. Año de graduación de los participantes
Año de graduación
1970-1980
1981-1990
1991-1995
1996-2000
Personas
2
5
6
25
La experiencia en el desarrollo de software también ofrece un amplio rango. El
rango incluye personas sin nada de experiencia hasta personas de hasta 25 años de
experiencia. A pesar de ser un rango amplio, en general la mayoría de los participantes poseen vasta experiencia. La mediana de años de experiencia es de 5 años. Y
más del 50% de los participantes tienen 5 o más años de experiencia (tabla 2).
Tabla 2. Años de experiencia
Años de experiencia
0-5
6-10
11-15
16-20
Más de 20
Personas
22
10
3
1
2
Fuentes Utilizadas por Desarrolladores de Software en Argentina 109
Los tamaños de los grupos de desarrollos en los cuales los participantes estuvieron
involucrados también fueron diferentes. Ellos variaron desde 2 personas hasta equipos de 15 personas. Y el tiempo que los proyectos duraron variaron desde 2 meses
hasta 2 años y medio. Estas dos variables permiten determinar la complejidad de los
proyectos.
En resumen, los participantes poseen variedad en conocimientos académicos y
experiencia de desarrollo (tabla 3), esta variedad determina que los resultados sean
imparciales. Además, el predominio de personas con más de 5 años de experiencia
de desarrollo de software en la industria, determinan que el grupo conformado sea
un buen grupo para analizar las fuentes de requerimientos utilizadas.
Tabla 3. Perfil de los participantes
Año de graduación
Experiencia en desarrollo de software
Personas involucradas en un proyecto
mediano
Duración de un proyecto mediano
Mínimo
1973
Máximo
2000
Promedio
1994
7 años y 4
meses
0
25 años
2
15
5
2 meses
2 años y
medio
7 meses
4 Técnicas de elicitación
Utilizamos el framework de Nuseibeh [11] para determinar las técnicas de elicitación utilizadas. El mismo agrupa las técnicas en 6 categorías. Cada participante
debió elegir las técnicas con las cuales tiene experiencia de uso.
La primera categoría refiere a técnicas tradicionales. Comprende las técnicas más
antiguas como encuestas, entrevistas, cuestionarios y análisis de documentación
existente. Las técnicas tradicionales extraen requerimientos de las personas individuales y de los documentos.
La segunda categoría comprende técnicas grupales como brainstorming y focus
group. Estas técnicas intentan promover el consenso entre un grupo de personas para
lograr un entendimiento más rico de las necesidades.
La tercera categoría es prototipación. Cuando las personas no pueden establecer
las necesidades, ya que hay una gran incertidumbre sobre los requerimientos, un
desarrollo temprano de la aplicación puede ayudar en la tarea.
Las últimas 3 categorías agrupan las técnicas desarrolladas recientemente. La
cuarta categoría contiene técnicas model-driven. Estas técnicas están basadas en
objetivos y escenarios, e intentan estudiar profundamente una organización para
extraer requerimientos de sus objetivos y operaciones.
110 WER 2002
Las técnicas cognitivas integran la quinta categoría. La categoría incluye una serie de técnicas, como por ejemplo análisis de protocolo, originalmente desarrolladas
para la tarea de adquisición de conocimiento.
La última categoría contiene técnicas contextuales. Comprende técnicas etnográficas, etnometodologícas y análisis de conversación. Si bien estas técnicas trabajan
sobre las personas, se ocupan del lenguaje tácito a diferencia de las técnicas tradicionales.
Las respuestas muestran que el 100% de las personas usan técnicas tradicionales.
Las técnicas grupales y prototipación se utilizan en un 29%. Las últimas 3 técnicas:
model-driven, cognitivas y contextuales se usan en un 3%, 0% y 16% respectivamente (Tabla 4).
Tabla 4. Técnicas de elicitación
Técnicas de elicitación
Tradicionales: entrevistas, cuestionarios, encuestas y análisis de
formularios.
Grupales: brainstorming y focus group
Prototipación
Model-Driven: goal-based y scenarios.
Cognitivas: análisis de protocolo, laddering, card sorting, repertory
grids
Contextuales: observación de participantes, etnomethodología, análisis de conversación
%
Respuestas
100
38
29
29
3
11
11
1
0
0
16
6
El esfuerzo necesario para llevar adelante estas técnicas no es el mismo. Mientras
las técnicas tradicionales como el análisis de formularios se pueden desarrollar sin
interacción con los stakeholders, las técnicas grupales exigen muchos de ellos. Algunas técnicas, como cuestionarios, demandan poco trabajo previo a las sesiones
mientras que prototipación demanda el desarrollo de una aplicación. Algunas técnicas, como las tradicionales, pueden ser desarrolladas por personas sin ningún tipo de
entrenamiento, sin embargo, técnicas cognitivas y contextuales demandan una especialización de las personas. Por lo tanto, el esfuerzo necesario para aplicar una
técnica puede ser cuantificado en términos de:
Disponibilidad de los stakeholders: cantidad de personas y el tiempo de
disponibilidad
Trabajo de preparación de las sesiones
Entrenamiento de los ingenieros de requerimiento
Las respuestas sugieren que la cantidad de personas que usan una técnica es inversamente proporcional a los esfuerzos necesarios para aplicar una técnica. Este resultado es independiente de los años de experiencia de los participantes y del año de
graduación.
Agrupamos a los participantes de acuerdo a su experiencia en 3 grupos para verificar la independencia. El primer grupo contiene las personas con menos de 2 años
Fuentes Utilizadas por Desarrolladores de Software en Argentina 111
de experiencia, el segundo grupo es de personas entre 3 y 5 años y el último es de
personas con más de 6 años. Los porcentajes obtenidos fueron similares. La única
excepción es las técnicas grupales del grupo de 3-5 años, que está por encima de los
demás grupos (Tabla 5).
Tabla 5. Utilización de las técnicas de elicitación de acuerdo a la experiencia.
Miembros
Experiencia
Técnicas de elicitación
Tradicionales
Grupales
Prototipación
Model-Driven
Cognitivas
Contextuales
Grupo 1
6
<=2 años
Grupo 2
20
3-5 años
Grupo 3
12
>= 6 años
100%
17%
33%
0%
0%
17%
100%
40%
25%
5%
0%
15%
100%
17%
33%
0%
0%
17%
Dividimos los años de graduación en 3 grupos para verificar su independencia. El
primer grupo lo integran los graduados más recientes (años 1999-2000). El segundo
grupo lo integran graduados los años 1994 y 1998. El ultimo grupo lo conforman los
graduados más antiguos (antes del año 1993). El uso de las técnicas, salvo dos excepciones, no varía entre los distintos grupos de graduados. La primera excepción es
la de los graduados entre 1994-1998que se destaca en las técnicas grupales. La segunda excepción es la del grupo hasta el año 1993 que se destaca en las técnicas de
prototipación (Tabla 6)
Tabla 6. Utilización de las técnicas de elicitación de acuerdo al año de graduación.
Miembros
Año de graduación
Técnicas de elicitación
Tradicionales
Grupales
Prototipación
Model-Driven
Cognitivas
Contextuales
Grupo 1
9
1999-
Grupo 2
22
1994-1998
Grupo 3
7
-1993
100%
22%
22%
0%
0%
22%
100%
36%
23%
5%
0%
14%
100%
14%
57%
0%
0%
14%
En conclusión, las técnicas tradicionales son principalmente utilizadas en la elicitación de requerimientos, independiente de la experiencia y de la educación académica de los ingenieros de requerimientos.
112 WER 2002
5 Fuentes de requerimientos
El fin del proceso de elicitación de requerimientos es obtener el conocimiento para
construir una especificación del sistema de software. Aunque el conocimiento es
generalmente obtenido de los usuarios, hay otras fuentes. Loucopoulos [12] propone
seis fuentes de donde elicitar requerimientos.
1.
2.
3.
4.
5.
6.
Expertos del dominio
Literatura sobre el dominio
Software existente acerca del dominio
Software de otros dominios
Estándares nacionales e internacionales
Otros stakeholders del sistema de información que albergarán el sistema de
software
Sin embargo, nosotros usamos una taxonomía de fuentes de 4 categorías, la cual
incluye los 6 de Loucopoulos.
Personas
Formularios
Conocimiento adquirido de desarrollos previos
Productos del mundo real
Las personas conforman distintos tipos de fuentes según el número del cual se elicita, la estructura de la información obtenida de ellos y el autor de esta información.
Es distinto elicitar información de una sola persona, que de dos o tres personas, o de
un grupo. Son distintas fuentes las anotaciones libres que se escriben como resultado
de las entrevistas que las minutas. Y existe diferencia si uno mismo realiza las anotaciones que si las hace un tercero. Se corresponden con las fuentes 1 y 6 de Loucopoulos.
La segunda categoría la integran los formularios de uso en la organización.
El conocimiento adquirido por la organización de desarrollo en desarrollos previos es la tercera categoría. Consideramos los elementos generados a lo largo de
todo el proceso de desarrollo del software: documentos de especificación de requerimientos, diagramas ER, documentos de diseño estructurado, documentos de diseño
orientado a objetos, prototipos, aplicaciones, guías del usuario y guías del operador.
La cuarta categoría la integran productos externos al sistema de software que inciden sobre el sistema de información. Los productos que incluimos son: leyes,
reglamentos, tratados, normas internas, estándares generales, información institucional, publicidad y la opción otros, para que se indique cualquier elemento no tomado en cuenta. Se corresponde con las categorías 2 a 5 de Loucopoulos
Se le pidió a los participantes que califiquen a cada ítem de acuerdo al contacto
con la fuente:
Usó regularmente
Fuentes Utilizadas por Desarrolladores de Software en Argentina 113
Usó ocasionalmente
Usó alguna vez
La conoce
Conoce personas que la usan
Los resultados muestran que las personas individuales son las fuentes favoritas.
Ellas se usan frecuentemente en un 60%. Grupos de a 2 o 3 personas se usan frecuentemente en un 42%. Y grupos mayores sólo se usan en un 0.5%.
Con respecto de los resultados escritos de las entrevistas, las anotaciones personales se usan frecuentemente por el 71% de los participantes. Por el contrario, el 42%
usa frecuentemente minutas y 13% cuestionarios.
Con relación al origen de esta información, 21% de las personas usan productos
redactados por terceros.
Los participantes prefieren elicitar la información directamente de las personas en
lugar de leerla, ya que los documentos son usados con frecuencia en 28%.
El conocimiento es reusado en poca medida. La utilización de productos de proyectos previos es muy baja. Los diagramas ER se reusan en un 42%, documentos de
especificación de requerimientos se reusan en un 28% y las aplicaciones se reusan
en 26%. Los restantes elementos se reusan por debajo del 12% (Fig. 1).
Reuso
14
12
10
8
6
4
2
D
Pr
ot
ot
ip
Ap
os
lic
ac
io
M
ne
an
s
us
M
an uar
io
op
er
ad
or
oc
es
pe
c
re
D
qu
ia
e
gr
am r
O
tro
a
ER
m
od
da
to
C
s
ar
ta
D
de
FD
es
tru
D
ct
ia
ur
g
a
de
cl
as
es
D
ia
g
de
D
ia
es
g
ta
de
do
ac
s
tiv
id
ad
es
0
Fig. 1. Reuso de productos de proyectos previos.
Una curiosa situación ocurre con los diagramas UML de clases, interacciones, estados y actividades. Los participantes conocen estos diagramas en un rango entre 25%
y 50%. Pero, menos del 10% los usa. Y la opción ‘conozco personas que lo usaron’
alcanza 15%. La fig. 2 muestra el porcentaje de reuso de diagramas UML.
114 WER 2002
18
16
14
12
Diag de clases
10
Diag de interacción
8
Diag de estados
6
Diag de actividades
4
2
0
us
a
u
reg
lar
me
us
nte
ao
ca
n
sio
alm
z
ve
na
lgu
a
ó
us
en
te
lo
n
co
co
oc
no
eg
ce
en
t
u
eq
el
ou
sa
Fig. 2. Reuso de diagramas UML.
La categoría formada por productos del mundo real muestra que las normas internas
alcanzan niveles similares a los de las personas individuales. En un nivel más bajo
se encuentran reglamentos y estándares generales.
Las personas y los documentos son las fuentes más utilizadas. Se comparó el uso
de las fuentes contra el mero conocimiento. Para ello se agruparon las respuestas
‘Usó frecuentemente’, ‘Usó ocasionalmente’ y ‘usó alguna vez’, y por otro lado las
respuestas ‘la conoce’y ‘conoce personas que la usan’. En general, las personas
utilizaron en mayor porcentaje las fuentes de lo que conocen su uso por terceros
(Tabla 7).
Tabla 7. Comparación de personas y documentos entre usar y conocer.
Fuente
Usó
Conoce
Una
Dos o tres
Más de tres
71%
68%
39%
11%
21%
26%
Documentos
Leyes
Reglamentos
Tratados
Normas internas
Éstándares generales
Información institucional
Publicidades
Otros
58%
61%
24%
71%
61%
58%
21%
11%
21%
18%
29%
13%
16%
18%
21%
0%
Personas
Fuentes Utilizadas por Desarrolladores de Software en Argentina 115
6 Conclusión
Las fuentes más utilizadas son las personas y los formularios. Se acceden a ellas a
través de entrevistas y de análisis de formularios.
Los participantes prefieren utilizar productos del mundo real que no hayan sido
procesados por otro ingeniero de requerimiento. Las anotaciones personales de entrevistas son preferidas a las de terceros. Son evitados los diagramas. Y el reuso de
cualquier producto de un desarrollo previo es mayormente evitado.
Un dato curioso, es que la opción “otros” de los cuestionarios casi no se usó. Ésta
opción permite incorporar opciones no indicadas. Su bajo uso sugiere que la taxonomía propuesta es completa. Contrariamente, el ítem documentación fue muy utilizado. Así que necesitamos hacer un análisis con detenimiento de este ítem.
7 Futuras investigaciones
Vamos a utilizar consultas directas para verificar los resultados de esta investigación. A partir de estos resultados desarrollaremos un modelo de pre-traceability
backward hacia las fuentes más utilizadas. Como soporte de este modelo, implementaremos en el Baseline Mentor Workbench [13] las herramientas necesarias.
Referencias
[1] Ackoff, R.: Redesigning The Future. Wiley. (1974)
[2] Garvin, D.: “What does product quality really mean?”, Sloan Management Review, Vol 26, No 1 (1984)
[3] Davis, A.: Software Requirements: Objects, Functions and States,
Englewood Cliffs, Prentice Hall, New Jersey (1993)
[4] Mizuno, Y.: “Software Quality Improvement”, IEEE Computer, Vol.
16, No. 3, Marzo (1983) 66-72
[5] Katonya, G., Sommerville, I.: Requirements Engineering Processes
and Techniques, Chichester, John Wiley & Sons (1998)
[6] Sommerville, I., Sawyer, P.: Requirements Engineering, Chichester,
John Wiley & Sons (1997)
[7] Hilburn, T.B., Hirmanpour, I., Khajenoori, S. Turner, R. Qasem, A.:
“A Software Engineering Body of Knowledge”, Version 1.0, SEI, Technical
Report, CMU/SEI-99-TR-004, ESC-TR-99-004 (1999)
[8] Pinheiro, F.A.C.: “Formal and Informal Aspects of Requirements
Tracing”, III Workshop de Engenharia de Requisitos, WER’2000, Rio de
Janeiro, Brasil, Julio (2000)
116 WER 2002
[9] Wieringa, R.: An Introduction to Requirements Traceability, Technical report, Faculty of Mathematics and Computer Science, Vrije Universiteit,
Esprit Project 2RARE, Noviembre 1 (1995)
[10] Gotel, O.C.Z., Finkelstein, A.C.W.: “An Analysis of the Requirements Traceability Problem”, International Conference on Requirements
Engineering, ICRE’94, Los Alamitos, California, Abril (1994) 94-101
[11] Nuseibeh, B., Easterbrook, S.: “Requirements engineering: a roadmap”, International Conference on Software Engineering, ICSE 2000, Future of SE Track 2000 (2000) 35-46
[12] Loucopoulos, P., Karakostas, V.: System Requirements Engineering,
McGraw-Hill (1995)
[13] Antonelli, L., Oliveros, A., Rossi, G.: “Baseline Mentor, An Application that Derives CRC Cards from Lexicon and Scenario” XXVIII JAIO, II
Workshop Iberoamericano en Ingeniería de Requerimientos, WER’99, Buenos Aires, Argentina, Septiembre 9-10 (1999)
Descargar