Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniera de Requisitos
para Sistemas de Informacin
Memoria de la tesis doctoral dirigida por el doctor Jos Miguel Toro Bonilla
y desarrollada por Amador Durn Toro para optar al grado de
Doctor en Informtica por la Universidad de Sevilla
HACE CONSTAR
que don Amador Durn Toro, Licenciado en Informtica por la Universidad de Sevilla, ha realizado bajo mi supervisin el trabajo de investigacin titulado
Un Entorno Metodolgico de
Ingeniera de Requisitos
para Sistemas de Informacin
Una vez revisado, autorizo el comienzo de los trmites para su presentacin como Tesis Doctoral al tribunal que ha de juzgarlo.
Yo, Amador Durn Toro, con Documento Nacional de Identidad nmero 27.308.303S,
ser el autor del trabajo que se presenta en la memoria de esta tesis doctoral que tiene por ttulo
Un Entorno Metodolgico de
Ingeniera de Requisitos
para Sistemas de Informacin
Agradecimientos
A mi director de tesis, Miguel Toro, por iniciarme en el mundo de la
investigacin y convencerme de continuar mi trabajo a pesar de todas las
dificultades.
A Beatriz, Corchu y Antonio por su ayuda en mis investigaciones y por
su continuo apoyo y nimos durante todo el largo proceso, as como por
las discusiones sobre mis ideas.
A mis compaeros de asignaturas de ingeniera del software, Fran y
Manolo, por aguantar mis impertinentes, continuas y muchas veces desordenadas sugerencias.
A mis amigos de la Universidad de Extremadura, Fernando, Juanma y
su familia, Juan y todos los dems, por tratarme como uno ms en todo
momento y por su sincera amistad.
A mis amigos de la Universidad de Granada, Mara Jos y Miguel, Patricia, Pepe y todos los dems, por ser los mejores.
A mis amigos de la Universidad Politcnica de Valencia, Pele, Pepe,
Hilario y el resto de los menhires, por su inters y por su apoyo.
A Miguel ngel Laguna, de la Universidad de Valladolid, y a Francisco Jos Garca Pealvo, de la Universidad de Salamanca, por aplicar
mis propuestas con su alumnos cuando an no eran ms que un conjunto
desordenado de ideas y proporcionarme una realimentacin importantsima.
A Jon Iturrioz y a Oscar Daz por compartir sus conocimientos conmigo
y apostar por una ingeniera de requisitos prctica.
A todos los integrantes del proyecto MENHIR, que han compartido sus
conocimientos en las distintas reas de la ingeniera de requisitos, y que sin
su presencia, la presente tesis probablemente habra sido muy distinta.
Resumen
En esta tesis se describe un entorno metodolgico para la ingeniera de
requisitos de sistemas de informacin compuesto por:
un modelo de procesos iterativo en el que se identifican tres actividades principales: elicitacin, anlisis y validacin.
una metodologa para la elicitacin de requisitos de sistemas de informacin, incluyendo las tareas a realizar, los productos a obtener
y las tcnicas a emplear, principalmente plantillas y patrones de requisitos, as como la posibilidad de introducir la reutilizacin en el
proceso.
una metodologa para el anlisis de requisitos de sistemas de informacin, incluyendo las tareas a realizar, los productos a obtener y las
tcnicas a emplear, basadas en el estndar UML y con relaciones de
rastreabilidad hacia los productos de la actividad anterior que facilita la reutilizacin de elementos complejos.
una metodologa para la validacin de requisitos de sistemas de informacin, incluyendo las tareas a realizar, los productos a obtener y
las tcnicas a emplear, basadas en la combinacin de los walkthrough
o recorridos con el prototipado de sistemas.
un prototipo de una herramienta CASE de ingeniera de requisitos
como complemento a la metodologa descrita.
ndice General
1 Introduccin
1.1
1.2
Motivacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1
1.1.2
1.1.3
1.1.4
Estructura de la tesis . . . . . . . . . . . . . . . . . . .
1.2.1
1.3
1.4
1.5
10
El concepto de requisito . . . . . . . . . . . . . . . . . . . . .
11
1.3.1
12
1.3.2
15
1.3.3
16
23
1.4.1
Clasificacin de la tesis . . . . . . . . . . . . . . . . . .
24
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
2.2
29
Ciclos de iteracin . . . . . . . . . . . . . . . . . . . .
31
2.1.2
32
2.1.3
37
38
2.2.1
El modelo de Pohl . . . . . . . . . . . . . . . . . . . .
39
2.2.2
El modelo espiral . . . . . . . . . . . . . . . . . . . . .
41
2.2.3
El modelo SWEBOK . . . . . . . . . . . . . . . . . . .
43
46
2.4
47
2.5
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
2.6
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
2.3
3 Elicitacin de Requisitos
55
3.1
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . .
55
3.2
La elicitacin de requisitos . . . . . . . . . . . . . . . . . . . .
56
3.3
57
3.3.1
Problemas de articulacin . . . . . . . . . . . . . . . .
58
3.3.2
Problemas de comunicacin . . . . . . . . . . . . . . .
59
3.3.3
60
3.3.4
61
3.3.5
Problemas tcnicos . . . . . . . . . . . . . . . . . . . .
62
63
3.4.1
Entrevistas . . . . . . . . . . . . . . . . . . . . . . . . .
63
3.4.2
66
3.4.3
Brainstorming . . . . . . . . . . . . . . . . . . . . . . .
70
3.4.4
Casos de uso . . . . . . . . . . . . . . . . . . . . . . .
72
76
3.4
3.5
3.5.1
77
78
3.5.3
78
3.5.4
79
3.5.2
ii
3.6
3.7
3.5.5
80
3.5.6
81
3.5.7
82
3.5.8
82
85
3.6.2
87
3.6.3
89
3.6.4
90
3.6.5
94
3.6.6
95
96
97
3.7.2
99
3.7.3
3.7.1
3.8
3.9
3.8.2
3.8.3
3.8.4
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Anlisis de Requisitos
127
4.1
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
4.2
4.3
4.4
4.3.1
4.3.2
4.3.3
4.3.4
4.4.2
4.4.3
4.4.4
4.5
4.6
4.7
4.8
4.9
4.6.1
4.6.2
4.6.3
4.6.4
4.6.5
4.7.2
4.8.2
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
189
5.1
Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5.2
5.3
5.4
5.5
5.3.1
5.3.2
5.3.3
Walkthroughs . . . . . . . . . . . . . . . . . . . . . . . 200
5.4.2
5.5.2
5.5.3
5.6
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
5.7
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
6.2
6.3
213
Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
6.1.1
6.1.2
6.1.3
6.1.4
6.2.2
6.2.3
6.2.4
Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
225
253
B.2.2
B.2.3
B.2.4
B.2.5
B.2.6
Entrevistas . . . . . . . . . . . . . . . . . . . . . . . . . 267
B.4.2
B.4.3
Brainstorming . . . . . . . . . . . . . . . . . . . . . . . 268
B.4.4
B.4.5
B.5.2
B.5.3
B.5.4
293
355
361
E.2.2
E.2.3
E.2.4
E.4.2
E.4.3
E.4.4
E.4.5
viii
ndice de Figuras
1.1
1.2
1.3
10
1.4
11
1.5
13
1.6
15
1.7
1.8
18
20
1.9
2.1
19
30
33
2.3
39
2.4
42
2.5
43
2.6
48
3.1
73
3.2
74
3.3
75
2.2
ix
3.4
76
3.5
79
3.6
81
3.7
83
3.8
83
3.9
85
86
88
90
91
93
93
95
95
97
98
99
99
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5.2
6.1
6.2
xiv
Captulo 1
Introduccin
1.1
1.1.1
Motivacin
Crisis del software
Captulo 1. Introduccin
1.1. Motivacin
1.1.2
1.1.3
da.
Captulo 1. Introduccin
Usado despus
de cambios: 3%
Pagado pero no
entregado: 28.7%
Cancelado durante
el desarrollo: 31.1%
1.1. Motivacin
Salvando las distancias, podra decirse lo mismo de la elaboracin de una tesis doctoral: "La parte ms difcil en la elaboracin de una tesis doctoral es decidir qu investigar. Ninguna
otra parte del trabajo afecta ms negativamente al resultado final si se realiza de manera incorrecta.
Ninguna otra parte es ms difcil de rectificar despus."
Captulo 1. Introduccin
1.1. Motivacin
la financiacin de proyectos nacionales como el proyecto CICYT MENHIR (Metodologas, Entornos y Nuevas Herramientas para la Ingeniera de
Requisitos)
la red europea RENOIR (Requirements Engineering Network Of International cooperating Research groups)
Una vez asumida la necesidad de una ingeniera de requisitos, el reto
al que se enfrenta la comunidad investigadora es identificar claramente
los problemas a los que se enfrenta y dotar a dicha ingeniera de las herramientas tericas y prcticas necesarias para solucionarlos, teniendo en
cuenta la dificultad aadida de lo costoso de la obtencin de datos empricos tanto en ingeniera del software en general, como en ingeniera de
requisitos en particular.
La motivacin del trabajo que se describe en esta memoria es realizar
aportaciones a la ingeniera de requisitos, especialmente en los aspectos
metodolgicos y de herramientas que soporten el proceso. Dentro de las
posibles clases de sistemas informticos4 (sistemas de informacin, sistemas
empotrados y sistemas de control [Sawyer y Kontoya 1999]), este trabajo se
centra en la ingeniera de requisitos de sistemas de informacin.
Captulo 1. Introduccin
En el captulo 3 se estudian los problemas relacionados con las actividades de elicitacin de requisitos, las tcnicas ms habituales y se describen
la propuesta metodolgica para la elicitacin de requisitos, las plantillas
y patrones de elicitacin de requisitos y los patrones de reutilizacin de
requisitos.
En el captulo 4 se estudian las alternativas estructuradas y orientadas
a objetos para el anlisis de requisitos y se describe la metodologa propuesta para el anlisis de requisitos junto con las plantillas y patrones de
reutilizacin para esta actividad de la ingeniera de requisitos.
En el captulo 5 se describe la propuesta metodolgica para la validacin de requisitos y se estudian algunas tcnicas para la validacin de
requisitos de sistemas de informacin.
Por ltimo, en el captulo 6 se exponen las conclusiones y se describen
posibles lneas de trabajo futuro.
A estos cuatro captulos les acompaan los siguientes apndices:
A : La ingeniera de requisitos en algunas normas de desarrollo de software
En este apndice se incluye un estudio comparativo de las actividades relacionadas con la ingeniera de requisitos en distintas normas
oficiales de desarrollo de software.
B : Metodologa para la Elicitacin de Requisitos de Sistemas de Informacin
En este apndice se incluye la metodologa desarrollada para la actividad de elicitacin de requisitos. La versin que se incluye en este
trabajo en la evolucin de la presentada en [Durn et al. 1998].
C : Metodologa para el Anlisis de Requisitos de Sistemas de Informacin
En este apndice se incluye la metodologa desarrollada para la actividad de anlisis de requisitos, en la que se propone el uso de tcnicas orientadas a objetos basadas en UML [Booch et al. 1999] siguiendo las propuestas descritas en [DSouza y Wills 1999].
D : Metodologa para la Validacin de Requisitos de Sistemas de Informacin
En este apndice se incluye la metodologa desarrollada para la actividad de validacin de requisitos, en la que se propone el prototipado como principal tcnica de validacin.
E : Una Herramienta CASE para la Ingeniera de Requisitos
En este apndice se describe el prototipo de herramienta CASE de
ingeniera de requisitos que se ha realizado para dar soporte a la
metodologa presentada en esta tesis.
1.2
10
Captulo 1. Introduccin
Ingeniera
Ingeniera
de
de
Requisitos
Requisitos
Resto
Restodel
del
ciclo
ciclode
de
vida
vida
11
Complecin
oss
ssitito
i
ui
eeqquAcuerdo
R
ddee R
a
er a
nni ier
e
g
InInge vista
comn
completa
media
vaga
vistas
personales
E sp ecificaci n
in icial
Formalidad
informal
semi-formal
formal
Los nombres originales de las dimensiones descritas en [Pohl 1994, Pohl 1997] son
specification, representation y agreement, que se han traducido libremente como complecin,
formalidad y acuerdo respectivamente.
12
Captulo 1. Introduccin
1.3.1
En nuestra opinin, la gran cantidad de calificativos que se aplican al trmino requisito muestran distintos aspectos ortogonales que ha menudo se
consideran aisladamente.
Para intentar clarificar la situacin, hemos identificado tres dimensiones en las que se pueden clasificar los requisitos (ver figura 1.5). Estas tres
dimensiones son:
mbito: esta dimensin indica en qu mbito se debe entender el requisito. En general, y siguiendo entre otras las propuestas de [IEEE
1997], [DoD 1994] y [Davis 1993], un mbito de sistema indica que el
13
-- No funcional
m b ito
l
C
y
tes
n
lie
s
r io
ua
us
D
l
res
o
d
lla
rro
a
es
A u d ien c ia
14
Captulo 1. Introduccin
15
Desde este punto de vista, la ingeniera de requisitos puede considerarse como el proceso iterativo de exploracin [Gause y Weinberg 1989] para
determinar las restricciones correctas, es decir los requisitos, que determinen adecuadamente el espacio de sistemas vlidos.
Sp
R1
R2
Sv
OK
OK
OK
R3
16
Captulo 1. Introduccin
17
18
Captulo 1. Introduccin
Sp
R1
R2
Sv
OK
OK
R4
OK
OK
R3
Sv - Sv
19
R2
R3
OK
Sv
OK
OK
Sv - Sv
20
Captulo 1. Introduccin
OK
OK
R3
OK
21
22
Captulo 1. Introduccin
1.4
23
En [Zave 1997], se establece una clasificacin de los esfuerzos de investigacin en ingeniera de requisitos. Segn dicho trabajo, los problemas
en ingeniera de requisitos pueden encuadrarse dentro de los siguientes
grupos:
1 Problemas de investigacin de los objetivos, funciones y restricciones de un
sistema software: recoleccin de informacin, anlisis de la informacin y generacin de estrategias alternativas.
1.1 Superar barreras de comunicacin: los ingenieros de requisitos deben tratar con un amplio abanico de personas con distintos conocimientos, intereses y objetivos personales. Cmo comunicarse con personas con conocimientos, intereses y objetivos diferentes al nuestro?
1.2 Generar estrategias para convertir requisitos imprecisos en propiedades o conductas especficas: un ejemplo de este tipo de requisitos
imprecisos suelen ser la amigabilidad con el usuario, seguridad, precisin, fiabilidad, etc.
1.3 Entender prioridades y rangos de satisfaccin: muchos requisitos
no son absolutos, sino que pueden satisfacerse parcialmente o
si los recursos lo permiten.
1.4 Generar estrategias para asignar requisitos al sistema o a los distintos
agentes de su entorno: dado que los requisitos reales siempre se
refieren al mundo real en el que se explotar el sistema software
a desarrollar, antes de especificarlo se deben asignar objetivos,
funciones y restricciones a los componentes y agentes que contribuirn a satisfacerlos. En otras palabras, decidir el mbito del
sistema: qu aspectos quedan dentro y qu aspectos se asignan
al entorno.
1.5 Estimar costes, riesgos y duracin: es muy importante para decidir sobre los requisitos opcionales, que se satisfacen segn los
recursos de desarrollo.
1.6 Asegurar la complecin: cmo asegurarse de que no se han dejado
de lado personas, puntos de vista, hechos, etc. en la investigacin del sistema.
24
Captulo 1. Introduccin
1.4.1
Clasificacin de la tesis
25
1.5. Bibliografa
Actividad
Elicitacin
Anlisis
Elicitacin
Elicitacin
no contemplado
Validacin
Anlisis
no contemplado
Anlisis
Validacin
Anlisis
Gestin de requisitos
Elicitacin
no contemplado
Abordado?
1.5
Bibliografa
[Bass et al. 1998] L. Bass, P. Clements, y R. Kazman. Nonfunctional Requirements Is a Dysfunctional Term. En Software Architecture in Practice,
pginas 7677. AddisonWesley, 1998.
[Boehm et al. 1994] B. W. Boehm, P. Bose, E. Horowitz, y M.-J. Lee. Software Requirements as Negotiated Win Conditions. En Proceedings of
the First International Conference on Requirements Engineering, 1994. Disponible en http://sunset.usc.edu/TechRpts/Papers/NGPMRequirements93.ps.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Brackett 1990] J. W. Brackett. Software Requirements. Curriculum Module SEICM191.2, Software Engineering Institute, Carnegie Mellon
University, 1990. Disponible en http://www.sei.cmu.edu.
[Brooks 1995] F. P. Brooks, Jr. The Mythical ManMonth: Essays on Software
Engineering Anniversary Edition. AddisonWesley, 1995.
[Christel y Kang 1992] M. G. Christel y K. C. Kang. Issues in Requirements Elicitation. Technical Report CMU/SEI92TR12, Software Engineering Institute, Carnegie Mellon University, 1992. Disponible en
http://www.sei.cmu.edu.
26
Captulo 1. Introduccin
1.5. Bibliografa
27
[Goguen 1994] J. A. Goguen. Requirements Engineering as the Reconciliation of Social and Technical Issues. En Requirements Engineering: Social
and Technical Issues, pginas 165199. Academic Press, 1994. Disponible
en http://www.cse.ucsd.edu/goguen.
[Hsia et al. 1993] P. Hsia, A. Davis, y D. Kung. Status Report: Requirements Engineering. IEEE Software, 10(6), Noviembre 1993.
[IEEE 1990] IEEE. IEEE Standard Glossary of Software Engineering Terminology. IEEE Standard 610.121990, Institute of Electrical and Electronics Engineers, 1990.
[IEEE 1993] IEEE. IEEE Recommended Practice for Software Requirements Specifications. IEEE/ANSI Standard 8301993, Institute of Electrical and Electronics Engineers, 1993.
[IEEE 1996] IEEE. IEEE Guide for Developing System Requirements Specifications. IEEE/ANSI Standard 12331996, Institute of Electrical and
Electronics Engineers, 1996.
[IEEE 1997] IEEE. IEEE Software Engineering Standards Collection. Institute
of Electrical and Electronics Engineers, 1997.
[MAP 1995] MAP. Metodologa de Planificacin y Desarrollo de Sistemas de
Informacin. MTRICA Versin 2.1. Tecnos/Ministerio para las Administraciones Pblicas, 1995.
[Mazza et al. 1994] C. Mazza, J. Fairclough, B. Melton, D. de Pablo,
A. Scheffer, y R. Stevens. Software Engineering Standards. PrenticeHall,
1994. Disponible en http://dxsting.cern.ch/sting/ESA.txt.
[Paulk et al. 1993] M. C. Paulk, B. Curtis, M. B. Chrissis, y C. V. Weber.
Capability Maturity Model for Software, Version 1.1. Technical Report
CMU/SEI93TR024, Software Engineering Institute, Carnegie Mellon University, 1993. Disponible en http://www.sei.cmu.edu.
[Pohl 1994] K. Pohl. The Three Dimensions of Requirements Engineering:
A Framework and its Application. Information Systems, 3(19), Junio
1994.
[Pohl 1997] K. Pohl. Requirements Engineering: An Overview. Encyclopedia of Computer Science and Technology, 36, 1997.
Disponible en http://sunsite.informatik.rwth-aachen.de/CREWS
/reports96.htm.
28
Captulo 1. Introduccin
[Pressman 1997] R. S. Pressman. Ingeniera del Software. Un Enfoque Prctico. McGrawHill, 4a edicin, 1997.
[Rombach 1990] H. D. Rombach. Software Specifications: A Framework. Curriculum Module SEICM112.1, Software Engineering
Institute, Carnegie Mellon University, 1990. No est disponible en
http://www.sei.cmu.edu, aunque aparece en [Dorfman y Thayer
1990].
[Sawyer et al. 1997] P. Sawyer, I. Sommerville, y S. Viller. Requirements
Process Improvement through The Phased Introduction of Good Practice. Software Process Improvement and Practice, 3(1), 1997. Disponible en
http://www.comp.lancs.ac.uk/computing/research/cseg/
reaims/publications.html.
[Sawyer y Kontoya 1999] P. Sawyer y G. Kontoya. SWEBOK: Software Requirements Engineering Knowledge Area Description. Informe Tcnico Versin 0.5, SWEBOK Project, 1999.
Disponible en
http://www.swebok.org.
[Sommerville y Sawyer 1997] I. Sommerville y P. Sawyer. Requirements
Engineering: A Good Practice Guide. Wiley, 1997.
[Thayer y Dorfman 1990] R. H. Thayer y M. Dorfman, editores. System
and Software Requirements Engineering. IEEE Computer Society Press,
1990.
[TSG 1995] TSG. The CHAOS Report. The Standish Group, 1995. Disponible en http://www.standishgroup.com/chaos.html.
[Wieringa 1996] R. J. Wieringa. Requirements Engineering: Frameworks for
Understanding. John Wiley & Sons, 1996.
[Zave 1997] P. Zave. Classification of Research Efforts in Requirements
Engineering. ACM Computing Surveys, 29(4), 1997.
Captulo 2
Modelos de procesos de
ingeniera de requisitos
En este captulo se expone el modelo de procesos de ingeniera de requisitos que servir de base para el resto de la tesis, se comparar con algunas
propuestas similares y se comentar su relacin con el modelo de madurez
de procesos de ingeniera de requisitos REAIMS [Sawyer et al. 1997]. Para
ms informacin sobre la presencia de la ingeniera de requisitos en las
principales normas de desarrollo de software puede consultarse el apndice A.
2.1
30
Ingeniera
Ingenierade
deRequisitos
Requisitos
Elicitacin
Elicitacin
de
de
Requisitos
Requisitos
Ciclo
Ciclo
Secundario
Secundario
si
Anlisis
Anlisis
de
de
Requisitos
Requisitos
se
detectan
se
detectan
conflictos
enen
el el
conflictos
anlisis?
anlisis?
Ciclo
Ciclo
Principal
Principal
no
Validacin
Validacin
de
de
Requisitos
Requisitos
se
detectan
se
detectan
conflictos
enen
la la
conflictos
validacin?
validacin?
si
no
Resto
Resto
del
del
Desarrollo
Desarrollo
31
Ciclo elicitacinanlisis
El segundo ciclo interno, elicitacinanlisis, se trata de un ciclo que indica la posibilidad de que durante la realizacin del anlisis de los requi-
32
sitos elicitados se descubran conflictos o deficiencias en dichos requisitos, lo que puede provocar la necesidad de nuevas reuniones de elicitacin/negociacin y el posterior anlisis de sus resultados.
2.1.1.3
Elicitacin de requisitos
33
(QWUDGDV
(QWUDGDV
$FWLYLGDGHV
$FWLYLGDGHV
6DOLGDV
6DOLGDV
&OLHQWHV8VXDULRV
5HTXLVLWRV&>L@
5HTXLVLWRV'>L@
(OLFLWDFLyQ
(OLFLWDFLyQ
GH
GH
5HTXLVLWRV
5HTXLVLWRV
5HTXLVLWRV&>L@
3URWRWLSR>L@
&RQIOLFWRV>L@
&OLHQWHV8VXDULRV
&RQIOLFWRV>L@
5HTXLVLWRV&>L@
$QiOLVLV
$QiOLVLV
GH
GH
5HTXLVLWRV
5HTXLVLWRV
5HTXLVLWRV'>L@
5HTXLVLWRV'>L@
3URWRWLSR>L@
3URWRWLSR>L@
&OLHQWHV8VXDULRV
&RQIOLFWRV>L@
3
5HTXLVLWRV&>L@
5HTXLVLWRV'>L@
9DOLGDFLyQ
9DOLGDFLyQ
GH
GH
5HTXLVLWRV
5HTXLVLWRV
5HTXLVLWRV&>L@
3
5HTXLVLWRV'>L@
3
3URWRWLSR>L@
3URWRWLSR>L@
34
En la figura 2.2 se asume que la iteracin actual es la isima, de forma que los productos de la iteracin anterior tienen el subndice i-1 y los de la iteracin actual i.
35
Esta participacin opcional est indicada en la figura 2.2 por un asterisco en el icono
de clientes y usuarios. No tiene sentido que aquellos clientes y usuarios que no conozcan
las tcnicas de modelado participen en esta actividad.
36
sin costuras (seamless process en ingls), es decir, una evolucin gradual de los modelos abstractos de anlisis hacia modelos ms cercanos a la implementacin.
Entradas y salidas
Entradas: las entradas de esta actividad son los requisitosC elicitados en la actividad anterior, los requisitosD y el prototipo de la
iteracin previa e informacin proveniente de clientes y usuarios en
el caso de que tengan conocimientos de la tcnicas de anlisis apropiadas.
Salidas: la salida de esta actividad es una nueva versin (o la primera si se trata de la primera iteracin) de los requisitosD y del prototipo, que en el caso de que se utilicen especificaciones formales ejecutables para expresar los requisitosD puede generarse automticamente, as como posibles conflictos encontrados en los requisitos
C analizados, lo que provocara que se repitiese el ciclo elicitacin
anlisis.
2.1.2.3
Validacin de Requisitos
En esta actividad se debe confirmar que los requisitosC, una vez analizados y resueltos los posibles conflictos, corresponden realmente a las
necesidades de clientes y usuarios. Se trata de una actividad que debe
ser realizada principalmente por clientes y usuarios, aunque los ingenieros de requisitos pueden ayudar en el proceso mediante las explicaciones
oportunas o mediante el uso de prototipos [Pohl 1997, Sawyer y Kontoya
1999].
Los objetivos principales de esta actividad y sus entradas y salidas son
los siguientes:
Objetivos
Asegurarse de que los requisitos describen el producto deseado:
aunque las actividades de elicitacin y anlisis se hayan realizado
correctamente, siempre es necesario confirmar que los requisitos obtenidos se corresponden realmente con los que los clientes y usuarios
37
38
natural, que a priori es el nico lenguaje comn entre todos los participantes. Para evitar los problemas inherentes al uso del lenguaje
natural se propone el uso de plantillas y de patrones que faciliten
su uso. En el captulo 3 se describen con detalle todos los aspectos
relacionados los requisitosC.
RequisitosD: los requisitosD, es decir, los requisitos desde el punto de vista del desarrollador, junto con el prototipo y los posibles
conflictos, son el resultado principal de la actividad de anlisis. La
forma de expresar estos requisitos suele consistir en la elaboracin
de un modelo del sistema a desarrollar basado en los requisitos
C. Los modelos pueden realizarse mediante tcnicas estructuradas
[Yourdon Inc. 1993], tcnicas orientadas a objetos [Rumbaugh et al.
1991, Booch et al. 1999], lenguajes formales [Ratcliff 1994] o mezclas
de varios de ellos.
Prototipo: la construccin de un prototipo del sistema a desarrollar
puede facilitar enormemente tanto la validacin de los requisitos por
parte de los clientes y usuarios como la elicitacin de nuevos requisitos. Los prototipos suelen ser de dos tipos, de usar y tirar o evolutivos
[Gomaa 1990]. Los prototipos de usar y tirar suelen utilizarse principalmente para elicitar y validar requisitos relacionados con la interfaz de usuario, mientras que los evolutivos suelen centrarse ms en
los requisitos funcionales.
Conflictos: es importante registrar los conflictos que vayan surgiendo para poder acometer su resolucin de forma organizada, involucrando a los participantes en el proceso de negociacin. En el modelo propuesto, se asume que los conflictos aparecern principalmente
durante la actividad de anlisis y se resolvern mediante negociacin en las actividades de elicitacin.
39
2.2.1
El modelo de Pohl
en exp
m er
a r to
ke s
tin
g
Negociacin
Validacin y
Verificacin
Especificacin y
Documentacin
o
pr
r
og
d
ma
gr
u
ca po d
lid e
ad
re s
clientes
usuarios
Elicitacin
director
del proyecto
40
puestas tambin por Pohl (ver figura 1.4 en la pg. 11), esta actividad hara
avanzar el proceso en la dimensin de complecin, ya que incrementa el
conocimiento sobre el sistema a desarrollar.
Aunque implcitamente, en este modelo se asume que durante la realizacin de las actividades de elicitacin es necesario identificar a las fuentes
de informacin, conocer lo mejor posible el dominio del problema, reutilizar especificaciones de requisitos similares en la medida de lo posible y
utilizar las tcnicas habituales de elicitacin como son las entrevistas, casos de uso, cuestionarios, prototipos, etc.
2.2.1.2
Negociacin de requisitos
El objetivo de esta actividad es alcanzar acuerdos entre todos los participantes sobre los requisitos elicitados en la actividad anterior, avanzando
en la dimensin de acuerdo del proceso. Para ello, Pohl propone tener en
cuenta cuatro factores:
Hacer explcitos los conflictos y evitar los conflictos emocionales entre los participantes, de forma que quede claro qu es lo que se negocia y que dicha negociacin no se vea afectada por motivos personales.
Hacer explcitos para cada conflicto las alternativas, las argumentaciones y las razones subyacentes que los provocan, de forma que la
negociacin pueda basarse en las races del conflicto.
Asegurarse de que se toman las decisiones correctas, de forma que
la mayora de los participantes estn de acuerdo en los resultados de
la negociacin y no se sientan desplazados del proceso.
Asegurarse de involucrar a las personas adecuadas en el momento
adecuado, para evitar tener que volver a replantear las negociaciones porque alguno de los participantes afectados no particip en las
negociaciones oportunas.
2.2.1.3
Especificacin/Documentacin de requisitos
En esta actividad deben documentarse los requisitos elicitados y negociados, para lo que Pohl propone que no se utilice una sola notacin sino
tantas como sea necesario para que todos los participantes los entiendan,
41
2.2.1.4
Validacin/Verificacin de requisitos
El propsito de esta actividad es comprobar que los requisitos documentados corresponden con las necesidades de los clientes y usuarios (validacin) y comprobar que la especificacin cumple los criterios de calidad
oportunos (verificacin), haciendo avanzar el proceso en las tres dimensiones descritas en [Pohl 1994] y en la seccin 1.2.1 en la pgina 10.
Para los aspectos de validacin puede recurrirse a prototipos, mientras
que para la verificacin pueden utilizarse verificaciones formales u otro
tipo de tcnicas.
42
A n lis is y
V alid aci n
d e re q u isito s
E lic itaci n
d e re q u isito s
Conflictos de
los requisitos
Documento
de requisitos
N eg o ciac i n
d e req u isito s
43
2.2.3
El modelo SWEBOK
El proyecto SWEBOK (Software Engineering Body of Knowledge) es un proyecto conjunto del IEEE y de la ACM para producir un cuerpo de conocimiento sobre ingeniera de software que siente las bases de dicha ingeniera como una profesin [Bourque et al. 1999]. Dentro de las 10 reas de
conocimiento que han establecido, la novena corresponde a la ingeniera
de requisitos [Sawyer y Kontoya 1999], dentro de cuya descripcin se propone el modelo de procesos que puede verse en la figura 2.5, al que hay
que aadir las actividades de gestin de requisitos que no se recogen en el
grfico.
2.2.3.1 Elicitacin de requisitos
Esta actividad se considera como la primera que es necesario realizar para lograr entender los problemas que hay que resolver, y es fundamentalmente una actividad humana. Para acometerla con ciertas garantas es
necesario tener en cuenta los siguientes puntos:
Los objetivos: pueden considerarse como los requisitos de alto nivel
que deber cumplir el sistema a desarrollar, por lo que es especialmente crtica su identificacin en los comienzos del proceso.
Conocimiento del dominio: es fundamental conocer el dominio del
problema para poder inferir el conocimiento tcito que los participantes no suelen hacer explcito, adems de para facilitar la comunicacin.
Elicitacin
Elicitacin
de
de
Requisitos
Requisitos
Anlisis y
Anlisis y
Negociacin
Negociacin
de Requisitos
de Requisitos
Documentacin
Documentacin
de
de
Requisitos
Requisitos
Validacin
Validacin
de
de
Requisitos
Requisitos
Requisitos
Acordados
Documento de
Requisitos
44
Participantes (stakeholders): es preciso identificar a todos los participantes que tengan algn tipo de inters en el desarrollo y tener en
cuenta los puntos de vista de los distintos grupos.
Entorno operacional: el sistema a desarrollar deber funcionar en
un entorno que es necesario conocer para poder identificar las necesidades de interoperabilidad con otros sistemas ya existentes.
Entorno organizacional: adems del entorno operacional, el sistema afectar al entorno organizacional, que es necesario conocer para
evitar que surjan problemas con los procesos de negocio.
Para la realizacin de esta actividad se puede recurrir a tcnicas como las entrevistas, la observacin mediante inmersin en el negocio del
cliente [Goguen y Linde 1993], el uso de escenarios o casos de uso y la utilizacin de prototipos, que tambin suelen utilizarse para las actividades
de validacin.
2.2.3.2 Anlisis y negociacin de requisitos
En esta actividad se pretende detectar y resolver los conflictos entre los
requisitos, determinar los lmites del sistema y cmo interactuar con su
entorno y transformar los requisitos de usuario5 en requisitos software6 .
En este modelo se propone que en esta actividad se clasifiquen los requisitos, se realicen modelos conceptuales y se negocien los conflictos detectados, tareas que se describen a continuacin.
Clasificacin de requisitos
Los autores consideran importante clasificar los requisitos para ayudar en las labores de negociacin. Los criterios de clasificacin son:
capacidad/restriccin, prioridad, coste/impacto, volatilidad/estabilidad
y requisito de producto/requisito de proceso.
Modelado conceptual
El objetivo del modelado conceptual es ayudar a la comprensin del
problema, aunque normalmente no puede evitarse iniciar el diseo
de la solucin. Existen mltiples tcnicas de modelado conceptual,
5
6
45
por lo que los autores proponen considerar factores como la naturaleza del problema, la experiencia del ingeniero de requisitos en el
uso de una determinada tcnica, si el cliente impone como requisito
la utilizacin de una determinada metodologa o la disponibilidad
de metodologas y herramientas que soporten una determinada notacin.
Independientemente de la notacin de modelado utilizada, los autores proponen realizar siempre un modelo de los lmites del sistema
para entender mejor el entorno y las interfaces necesarias.
Negociacin de requisitos
La negociacin de requisitos, tambin denominada resolucin de conflictos, se ocupa de resolver los problemas que puedan surgir en los
requisitos, bien porque haya peticiones por parte de clientes y usuarios que sean incompatibles, bien porque no se disponga de los recursos necesarios para la realizacin de ciertos aspectos del sistema,
etc.
Para resolver estos conflictos es necesario consultar con todos los
participantes afectados y registrar las decisiones tomadas y quin las
tom. Es necesario aadir que los autores asumen que los conflictos
pueden aparecer no slo durante el anlisis, sino tambin durante la
validacin.
2.2.3.3 Documentacin de requisitos
Los documentos de requisitos son el medio habitual para el registro y la
comunicacin de los requisitos. Los autores consideran deseable que los
requisitosC y los requisitosD vayan en documentos separados.
Dentro de las actividades relacionadas con la documentacin, los autores se remiten a la gestin de requisitos para aspectos como el control de
versiones debido a los cambios en los requisitos.
2.2.3.4
Validacin de requisitos
46
Para realizar esta actividad se proponen revisiones tcnicas de los requisitos basadas en listas de comprobacin, el uso de prototipos, verificacin formal de especificaciones, etc.
2.2.3.5 Gestin de requisitos
La gestin de requisitos, aunque no est reflejada en la figura 2.5, se realiza durante todas las actividades de ingeniera de requisitos. Su objetivo
es gestionar los cambios y el mantenimiento de los requisitos para que
representen el sistema que se va a desarrollar o que se ha desarrollado.
Para conseguir estos objetivos, adems de definir procedimientos para
controlar los cambios y utilizar tcnicas de gestin de configuracin, los
autores apuntan como factores importantes los atributos de los requisitos
(identificadores, justificacin, las fuentes del requisito, etc.) y la rastreabilidad para poder realizar anlisis de impacto cuando se produce un cambio.
Coinciden con Davis [Davis 1995b], en que a pesar de la sencillez terica del concepto de rastreabilidad (construir un grafo dirigido acclico entre
los requisitos), a menos que se automatice el proceso no suele llevarse a la
prctica.
2.3
47
48
Nivel 3: Definido
Nivel 3: Definido
Proceso de ingeniera de
Proceso de ingeniera de
requisitos definido explcitamente
requisitos definido explcitamente
y basado en las mejores prcticas
y basado en las mejores prcticas
Programa de mejora del proceso
Programa de mejora del proceso
en marcha
en marcha
Nivel 2: Repetible
Nivel 2: Repetible
Estndares definidos para los
Estndares definidos para los
documentos de requisitos y para
documentos de requisitos y para
las actividades del proceso
las actividades del proceso
Pocos problemas con los
Pocos problemas con los
requisitos, especialmente para
requisitos, especialmente para
sistemas conocidos
sistemas conocidos
Nivel 1: Inicial
Nivel 1: Inicial
Ingeniera de requisitos ad-hoc
Ingeniera de requisitos ad-hoc
Los problemas con los
Los problemas con los
requisitos son comunes
requisitos son comunes
49
50
2.5 Conclusiones
En este captulo se ha definido un modelo de procesos para ingeniera
de requisitos, se han comentado brevemente otros modelos de procesos
similares, se han comparado los modelos entre si y se ha introducido el
modelo de madurez de proceso de ingeniera de requisitos REAIMS.
En el resto de la tesis se estudiar cada actividad del modelo propuesto
en profundidad proponiendo metodologas que cubran la mayor parte de
las guas del modelo de madurez de proceso REAIMS. En las conclusiones
del captulo 6 se comentan los resultados alcanzados.
2.6 Bibliografa
[Boehm et al. 1994] B. W. Boehm, P. Bose, E. Horowitz, y M.-J. Lee. Software Requirements as Negotiated Win Conditions. En Proceedings of
the First International Conference on Requirements Engineering, 1994. Disponible en http://sunset.usc.edu/TechRpts/Papers/NGPMRequirements93.ps.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Bourque et al. 1999] P. Bourque, R. Dupuis, y A. Abran. The Guide to the
Software Engineering Body of Knowledge. IEEE Software, 16(6), Septiembre/Diciembre 1999.
[Christel y Kang 1992] M. G. Christel y K. C. Kang. Issues in Requirements Elicitation. Technical Report CMU/SEI92TR12, Software Engineering Institute, Carnegie Mellon University, 1992. Disponible en
http://www.sei.cmu.edu.
[Davis 1995a] A. M. Davis.
McGrawHill, 1995.
2.6. Bibliografa
51
52
[Pohl 1997] K. Pohl. Requirements Engineering: An Overview. EncyDisponiclopedia of Computer Science and Technology, 36, 1997.
ble en http://sunsite.informatik.rwth-aachen.de/CREWS
/reports96.htm.
[Potts et al. 1994a] C. Potts, K. Takahashi, y A. Anton. InquiryBased Requirements Analysis. IEEE Software, 11(2), 1994.
[Potts et al. 1994b] C. Potts, K. Takahashi, y A. Anton. InquiryBased
Scenario Analysis of System Requirements. Informe Tcnico GIT
CC94/14, Georgia Institute of Technology, 1994. Disponible en
http://www.cc.gatech.edu/computing/SW Eng/reqts.html.
[Raghavan et al. 1994] S. Raghavan, G. Zelesnik, y G. Ford. Lecture Notes
on Requirements Elicitation. Educational Materials CMU/SEI94EM
10, Software Engineering Institute, Carnegie Mellon University, 1994.
Disponible en http://www.sei.cmu.edu.
[Ratcliff 1994] B. Ratcliff. Introducing Specification Using Z: A Practical Case
Study Approach. International Series in Software Engineering. McGraw
Hill, 1994.
[Rumbaugh et al. 1991] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, y
W. Lorensen. Object-Oriented Modeling and Design. PrenticeHall, 1991.
[Sawyer et al. 1997] P. Sawyer, I. Sommerville, y S. Viller. Requirements
Process Improvement through The Phased Introduction of Good Practice. Software Process Improvement and Practice, 3(1), 1997. Disponible en
http://www.comp.lancs.ac.uk/computing/research/cseg/
reaims/publications.html.
[Sawyer y Kontoya 1999] P. Sawyer y G. Kontoya. SWEBOK: Software Requirements Engineering Knowledge Area Description. Informe Tcnico Versin 0.5, SWEBOK Project, 1999.
Disponible en
http://www.swebok.org.
[Sommerville y Sawyer 1997] I. Sommerville y P. Sawyer. Requirements
Engineering: A Good Practice Guide. Wiley, 1997.
[Thayer y Dorfman 1990] R. H. Thayer y M. Dorfman, editores. System
and Software Requirements Engineering. IEEE Computer Society Press,
1990.
2.6. Bibliografa
53
[Thayer y Dorfman 1997] R. H. Thayer y M. Dorfman, editores. Software Requirements Engineering. IEEE Computer Society Press, 2a edicin,
1997. Es la 2a edicin de [Thayer y Dorfman 1990].
[Yourdon Inc. 1993] Yourdon Inc. Yourdon Systems Method: ModelDriven
Systems Development. PrenticeHall, 1993.
54
Captulo 3
Elicitacin de Requisitos
3.1
Introduccin
56
57
Nuestra visin de la elicitacin de requisitos es considerarla como la actividad de la ingeniera de requisitos en la que los ingenieros de requisitos
interactan con el resto de participantes para obtener, registrar, y si es necesario negociar, los requisitos que deber satisfacer el sistema a desarrollar
desde el punto de vista de clientes y usuarios, es decir, los requisitosC.
Precisamente por la necesidad de esta interaccin es por lo que los aspectos sociales son fundamentales durante esta actividad, por encima de
los puramente tcnicos. En palabras de J. Goguen [Goguen y Linde 1993]:
"Los problemas de la elicitacin de requisitos no pueden resolverse de
una forma puramente tecnolgica porque el contexto social es mucho
ms crucial que en las fases de programacin, especificacin o diseo."
Dentro del modelo de procesos iterativo presentado en el captulo 2,
las actividades de elicitacin pueden realizarse varias veces. En la primera iteracin, la elicitacin consistir bsicamente en obtener la mayor
cantidad posible de informacin, asumiendo que lo ms probable es que
dicha informacin sea incompleta, ambigua y contenga contradicciones.
En las siguientes iteraciones, la elicitacin consistir principalmente en
la resolucin de conflictos encontrados en la informacin elicitada durante
las actividades de anlisis o de validacin. La resolucin de estos conflictos se llevar a cabo, normalmente, mediante algn tipo de negociacin
entre los participantes [Pohl 1997, Boehm et al. 1994, Parets-Llorca y Grnbacher 1999, Damian et al. 2000].
3.3
58
problemas dentro de la elicitacin: problemas de articulacin, de comunicacin, de limitaciones cognitivas, de conducta humana y tcnicos. Nosotros
adoptaremos tambin esta clasificacin como gua para exponer las principales caractersticas de los problemas en la elicitacin de requisitos.
3.3.1
Problemas de articulacin
59
alternativas que se les plantea. En otras ocasiones no se toman decisiones porque no hay una sola persona que tenga una visin global,
por lo que puede haber varios puntos de vista que tengan que integrarse [Kontoya y Sommerville 1996, Nuseibeh et al. 1994].
Algunos desarrolladores no escuchan apropiadamente a los clientes
y usuarios, bien porque creen haber entendido sus necesidades rpidamente, bien porque se dedican a pensar inmediatamente sobre
aspectos de implementacin y no se ponen en el lugar de clientes y
usuarios.
60
El medio de comunicacin que se utilice debe ser entendible por todos los participantes. Se suele utilizar lenguaje natural porque es el
nico medio de comunicacin comn a todos los participantes, a pesar de su inherente ambigedad. La utilizacin de otro tipo de tcnicas como diagramas o lenguajes artificiales puede presentar problemas de compresin5 .
En este trabajo seguiremos las propuestas actuales, por ejemplo las
de [Sawyer y Kontoya 1999] o [Davis 1995], en las que se recomienda
usar distintos lenguajes segn la audiencia. En concreto, lenguaje natural para la audiencia de clientes y usuarios (requisitosC) y modelos conceptuales para la audiencia de los desarrolladores (requisitos
D).
La comunicacin puede verse afectada tambin por sus aspectos puramente sociales. El ingeniero de requisitos debe ser capaz de comunicarse y tratar con todo tipo de personas y ser capaz de manejar
conflictos personales y polticos [Goguen 1994, Macaulay 1998, Macaulay 1999]. En [Damian et al. 2000] se exponen los resultados de
utilizar reuniones mediante vdeo conferencia o mediante discusiones por ordenador para evitar los problemas de posibles enfrentamientos cara a cara entre los participantes.
3.3.3
61
3.3.4
La naturaleza social de la elicitacin de requisitos provoca que surjan problemas de conducta humana, algunos de los cuales son los siguientes:
Puede haber conflictos y ambigedades en los roles que cada persona debe jugar en el proceso de elicitacin. Dentro del grupo de
clientes y usuarios, algunos pueden pensar que, aunque conozcan
ciertas necesidades o ciertos aspectos importantes, es responsabilidad de otros participantes ms afectados el hacerlas explcitas, con
lo que el resultado final es que nadie dice nada.
Otra situacin similar puede producirse si algunos clientes y usuarios piensan que los desarrolladores les harn todas las preguntas
necesarias sobre el dominio del problema y los desarrolladores piensan que los clientes y usuarios les proporcionarn toda la informacin necesaria sin necesidad de preguntar por su parte, con lo que
pueden quedar aspectos sin tratar.
La suposicin o el temor a que el sistema a desarrollar cambie su
forma de trabajar o incluso ponga en peligro su puesto de trabajo,
puede provocar que algunos usuarios retengan informacin o incluso saboteen el desarrollo, por ejemplo proporcionando informacin
falsa.
62
3.4
63
Las tcnicas ms habituales en la elicitacin de requisitos son las entrevistas, el Joint Application Development (JAD) o Desarrollo Conjunto de Aplicaciones, el brainstorming o tormenta de ideas y la utilizacin de escenarios
[Weidenhaput et al. 1998, Rolland et al. 1998], ms conocidos como casos de
uso [Jacobson et al. 1993, Booch et al. 1999].
A estas tcnicas, que se describen en los siguientes apartados, se las
suele apoyar con otras tcnicas complementarias como la observacin in
situ, el estudio de documentacin, los cuestionarios, la inmersin en el negocio del cliente [Goguen y Linde 1993] o haciendo que los ingenieros de
requisitos sean aprendices del cliente [Beyer y Holtzblatt 1995].
Aunque la construccin de prototipos puede considerarse tambin como una tcnica de elicitacin, en esta tesis se le prestar especial atencin
como herramienta de validacin de requisitos, sin dejar de reconocer que
durante la validacin mediante casos de uso y prototipos pueden elicitarse
nuevos requisitos (ver captulo 5).
3.4.1
Entrevistas
Preparacin de entrevistas
64
3.4.1.2
65
Realizacin de entrevistas
66
Una vez realizada la entrevista es necesario leer las notas tomadas, pasarlas a limpio, reorganizar la informacin, contrastarla con otras entrevistas
o fuentes de informacin, etc.
Una vez elaborada la informacin, se puede enviar al entrevistado para
confirmar los contenidos. Tambin es importante evaluar la propia entrevista para determinar los aspectos mejorables.
67
68
Patrocinador ejecutivo: es el que tiene la decisin final de que se lleve a cabo el desarrollo. Debe proporcionar a los dems participantes
informacin sobre la necesidad del nuevo sistema y los beneficios
que se espera obtener de l.
Representantes de los usuarios: durante el JAD/Plan, suelen ser directivos con una visin global del sistema. Durante el JAD/Design
suelen incorporarse futuros usuarios finales.
Representantes de sistemas de informacin: son personas expertos
en sistemas de informacin que deben ayudar a los usuarios a comprender qu es o no factible con la tecnologa actual y el esfuerzo que
implica.
Especialistas: son personas que pueden proporcionar informacin
detallada sobre aspectos muy concretos, tanto del punto de vista de
los usuarios porque conocen muy bien el funcionamiento de una parte de la organizacin, como desde el punto de vista de los desarrolladores porque conocen perfectamente ciertos aspectos tcnicos de
la instalacin hardware de la organizacin.
3.4.2.2
Dentro de la tcnica del JAD se distinguen tres fases [Raghavan et al. 1994]:
1 Adaptacin: es responsabilidad del jefe del JAD, ayudado por uno
o dos analistas, adaptar la tcnica del JAD para cada proyecto. La
adaptacin debe comenzar por definir el proyecto a alto nivel, para
lo cual pueden ser necesarias entrevistas previas con algunos clientes
y usuarios. Tambin suele ser necesario recabar informacin sobre la
organizacin para familiarizarse con el dominio del problema, por
ejemplo utilizando tcnicas complementarias como el estudio de documentacin o la observacin in situ.
Una vez obtenida una primera idea de los objetivos del proyecto, es
necesario seleccionar a los participantes, citarles para las reuniones
y proporcionarles una lista con los temas que se van a tratar en las
reuniones para que las puedan preparar.
El jefe del JAD debe decidir la duracin y el nmero de sesiones a
celebrar, definir el formato de la documentacin sobre la que se trabajar y preparar transparencias introductorias y todo el material audiovisual que considere oportuno.
69
2 Celebracin de las sesiones JAD: durante las sesiones, los participantes exponen sus ideas y se discuten, analizan y refinan hasta alcanzar un acuerdo. Los pasos que se recomienda seguir para este
proceso son los siguientes:
2.1 Presentacin: se presenta y se da la bienvenida a todos los participantes por parte del patrocinador ejecutivo y del jefe del JAD.
El patrocinador ejecutivo expone brevemente las necesidades
que han llevado al desarrollo y los beneficios que se esperan
obtener. El jefe del JAD explica la mecnica de las sesiones y la
planificacin prevista.
2.2 Definir objetivos y requisitos: el jefe del JAD promueve la discusin para elicitar los objetivos o requisitos de alto nivel mediante preguntas como: "Por qu se construye el sistema?", "Qu
beneficios se esperan del nuevo sistema?", "Cmo puede beneficiar a
la organizacin en el futuro?", "Qu restricciones de recursos disponibles, normas o leyes afectan al proyecto?", "Es importante la seguridad de los datos?", . . .
A medida que se van elicitando requisitos, el analista los escribe en transparencias o en algn otro medio que permita que
permanezcan visibles durante la discusin. Una posibilidad es
utilizar para ello las plantillas descritas en la seccin 3.6.
2.3 Delimitar el mbito del sistema: una vez obtenido un nmero
importante de requisitos, es necesario organizarlos y llegar a un
acuerdo sobr el mbito del nuevo sistema.
En el caso de los sistemas de informacin, es til identificar a los
usuarios potenciales (actores) y determinar qu tareas les ayudar a realizar (casos de uso).
2.4 Documentar temas abiertos: aquellas cuestiones que hayan surgido durante la sesin que no se han podido resolver, deben documentarse para las siguientes sesiones y ser asignadas a una
persona responsable de su solucin para una fecha determinada, para lo cual puede utilizarse la plantilla de conflictos descrita en la seccin 3.6.6.
2.5 Concluir la sesin: el jefe del JAD concluye la sesin revisando
con los dems participantes la informacin elicitada y las decisiones tomadas. Se da la oportunidad a todos los participantes
de expresar cualquier consideracin adicional, fomentando por
parte del jefe del JAD el sentimiento de propiedad y compromiso de todos los participantes sobre los requisitos elicitados.
70
3 Conclusin: una vez terminadas las sesiones es necesario transformar las transparencias, notas y dems documentacin generada en
documentos formales. Se distinguen tres pasos:
3.1 Completar la documentacin: los analistas recopilan la documentacin generada durante las sesiones en documentos conformes a las normas o estndares vigentes en la organizacin
para la que se desarrolla el proyecto.
3.2 Revisar la documentacin: la documentacin generada se enva a todos los participantes para que la comenten. Si los comentarios son lo suficientemente importantes, se convoca otra
reunin para discutirlos.
3.3 Validar la documentacin: una vez revisados todos los comentarios, el jefe del JAD enva el documento al patrocinador ejecutivo para su aprobacin. Una vez aprobado el documento se
envan copias definitivas a cada uno de los participantes.
3.4.3 Brainstorming
El brainstorming o tormenta de ideas es una tcnica de reuniones en grupo
cuyo objetivo es la generacin de ideas en un ambiente libre de crticas
o juicios [Gause y Weinberg 1989, Raghavan et al. 1994]. Las sesiones
de brainstorming suelen estar formadas por un nmero de cuatro a diez
participantes, uno de los cuales es el jefe de la sesin, encargado ms de
comenzar la sesin que de controlarla.
Como tcnica de elicitacin de requisitos, el brainstorming puede ayudar a generar una gran variedad de vistas del problema y a formularlo
de diferentes formas, sobre todo al comienzo del proceso de elicitacin,
cuando los requisitos son todava muy difusos.
Frente al JAD, el brainstorming tiene la ventaja de que es muy fcil
de aprender y requiere poca organizacin, de hecho, hay propuestas de
realizacin de brainstorming por vdeoconferencia a travs de Internet
[Raghavan et al. 1994]. Por otro lado, al ser un proceso poco estructurado,
puede no producir resultados con la misma calidad o nivel de detalle que
otras tcnicas.
3.4.3.1
71
72
para que los participantes tengan visibles las ideas que se van generando.
3 Consolidacin: en esta fase se deben organizar y evaluar las ideas
generadas durante la fase anterior. Se suelen seguir tres pasos:
3.1 Revisar ideas: se revisan las ideas generadas para clarificarlas.
Es habitual identificar ideas similares, en cuyo caso se unifican
en un solo enunciado.
3.2 Descartar ideas: aquellas ideas que los participantes consideren
excesivamente avanzadas se descartan.
3.3 Priorizar ideas: se priorizan las ideas restantes, identificando
las absolutamente esenciales, las que estaran bien pero que no
son esenciales y las que podran ser apropiadas para una prxima versin del sistema a desarrollar.
4 Documentacin: despus de la sesin, el jefe produce la documentacin oportuna conteniendo las ideas priorizadas y comentarios generados durante la consolidacin.
73
se propone la utilizacin de los casos de uso como tcnica tanto de elicitacin como de especificacin de los requisitos funcionales del sistema. Para
la descripcin concreta de los casos de uso se proponen plantillas, en las
que las interacciones se numeran siguiendo las propuestas de [Cockburn
1997], [Schneider y Winters 1998] y [Coleman 1998] y se describen usando
lenguaje natural en forma de patrones lingsticos (ver seccin 3.6.4, pg.
90).
Caso de uso A
Actor 1
Caso de uso B
Actor 2
Caso de uso C
Sistema
74
B
<<includes>>
<<includes>>
<<includes>>
<<extends>>
75
3.4.4.3
En la mayora de sistemas, el nmero de casos de uso es lo suficientemente elevado como para que sea oportuno organizarlos de alguna forma en
lugar de tener una lista plana por la que no es fcil navegar.
Una posible forma de organizar los casos de uso es recurrir a los paquetes descritos en la propuesta de UML [Booch et al. 1999]. De esta forma,
los casos de uso pueden organizarse en niveles, facilitando as su comprensin. Cada paquete contiene a otros paquetes o a varios casos de uso.
En el caso de que los casos de uso se agrupen por criterios funcionales, los paquetes que los agrupan pueden estereotiparse como subsistemas
[Schneider y Winters 1998], tal como puede verse en el ejemplo de la figura
3.3.
A
<<subsistema>>
B
<<subsistema>>
Actor 1
Actor 2
C
<<subsistema>>
Sistema
76
Elicitacin
Elicitacinde
deRequisitos
Requisitos
Obtener
Obtener
informacin sobre
informacin sobre
el dominio del
el dominio del
problema y el
problema y el
sistema actual
sistema actual
Preparar y
Preparar y
realizar las
realizar las
sesiones de
sesiones de
elicitacin/
elicitacin/
negociacin
negociacin
Identificar/
Identificar/
revisar los
revisar los
objetivos
objetivos
del sistema
del sistema
Identificar/
Identificar/
revisar los
revisar los
requisitos
requisitos
de
de
informacin
informacin
Identificar/
Identificar/
revisar los
revisar los
requisitos
requisitos
funcionales
funcionales
Identificar/
Identificar/
revisar los
revisar los
requisitos
requisitos
no
no
funcionales
funcionales
Priorizar
Priorizar
objetivos y
objetivos y
requisitos
requisitos
77
3.5.1
78
79
3.5.4
El objetivo de las tareas 4, 5 y 6 es identificar, o revisar en funcin de posibles conflictos, los requisitosC a partir de la informacin obtenida en las
tareas anteriores. La divisin en tres tareas se ha realizado por simplicidad, no porque se asuma que esa deba ser la secuencia de realizacin, ya
que habitualmente se realizan en paralelo.
80
81
Caso de uso A
Actor 1
Caso de uso B
Actor 2
Caso de uso C
Sistema
82
Los productos de esta tarea son los requisitos no funcionales expresados mediante la plantilla propuesta en la seccin 3.6.5.
3.5.7
En esta ltima tarea se deben asignar prioridades a los objetivos y requisitos estableciendo su importancia y su urgencia, de forma que en el caso de
que se desarrolle incrementalmente se tengan los criterios suficientes para saber qu requisitos deben implementarse en cada versin que se vaya
entregando.
Los productos de esta tarea son los objetivos y requisitos identificados/revisado en las tareas anteriores con su prioridad establecida.
83
Portada
Lista de cambios
ndice
Lista de figuras
Lista de tablas
1 Introduccin
2 Participantes en el proyecto
3 Descripcin del sistema actual [opcional]
4 Objetivos del sistema
5 Catlogo de requisitos del sistema
5.1 Requisitos de almacenamiento de informacin
5.2 Requisitos funcionales
5.2.1 Diagramas de casos de uso
5.2.2 Definicin de actores
5.2.3 Casos de uso del sistema
5.3 Requisitos no funcionales
6 Matriz de rastreabilidad objetivos/requisitos
7 Conflictos pendientes de resolucin [opcional, pueden ir
en un documento aparte]
8 Glosario de trminos [opcional]
Apndices [opcionales]
RI01
RI02
...
RF01
RF02
...
...
OBJ01
OBJ02
...
OBJ-n
84
lidad entre objetivos y requisitos no funcionales. Normalmente los objetivos son del tipo "El sistema deber gestionar un <determinado aspecto de la
organizacin>", dnde los aspectos de la organizacin pueden ser la gestin del almacn, gestin de clientes, etc. No parece sencillo asociar a unos
objetivos de este tipo requisitos que, por ejemplo, indiquen la necesidad
de una determinada fiabilidad o portabilidad.
En la estructura propuesta se han incluido los conflictos en el DRS, como se propone en la plantilla para documentos de requisitos de Volere
[Robertson y Robertson 1999], aunque tambin puede optarse por mantenerlos en un documento aparte, el Registro de Conflictos por ejemplo, que
se actualizara durante todo el proceso de ingeniera de requisitos.
3.6
85
3.6.1
Los objetivos del sistema pueden considerarse como requisitos de alto nivel
[Sawyer y Kontoya 1999], de forma que los requisitos propiamente dichos
seran la forma de alcanzar los objetivos. La plantilla propuesta para los
objetivos puede verse en la figura 3.10.
El significado de los campos que la componen, cuya mayora est presente tambin en las plantillas para los requisitos, es el siguiente:
86
OBJ<id>
Versin
Autores
Fuentes
Descripcin
Subobjetivos
Importancia
Urgencia
Estado
Estabilidad
Comentarios
<nombre descriptivo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
El sistema deber <objetivo a cumplir por el sistema>
OBJx <nombre del subobjetivo>
...
<importancia del objetivo>
<urgencia del objetivo>
<estado del objetivo>
<estabilidad del objetivo>
<comentarios adicionales sobre el objetivo>
87
88
RI<id>
Versin
Autores
Fuentes
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Intervalo temporal
Importancia
Urgencia
Estado
Estabilidad
Comentarios
<nombre descriptivo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
El sistema deber almacenar la informacin correspondiente
a <concepto relevante>. En concreto:
<datos especficos sobre el concepto relevante>
...
{ pasado y presente, slo presente }
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
89
3.6.3
90
ACT<id>
Versin
Autores
Fuentes
Descripcin
Comentarios
<nombre descriptivo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
Este actor representa a <rol que representa el actor>
<comentarios adicionales sobre el actor>
3.6.4
Los sistemas de informacin no slo almacenan informacin, tambin deben proporcionar servicios usando la informacin que almacenan. La plantilla de requisitos funcionales, que puede verse en la figura 3.13, describe
casos de uso y ayuda a los clientes y usuarios a responder a la pregunta "qu debe hacer el sistema con la informacin almacenada para alcanzar los
objetivos de su negocio?".
El significado de los campos especficos de esta plantilla es el siguiente
(los campos comunes con la plantilla para requisitos de almacenamiento
de informacin tienen el mismo significado):
Identificador y nombre descriptivo: igual que en la plantilla anterior, excepto que los identificadores de los requisitos funcionales
empiezan con RF y que el nombre descriptivo suele coincidir con el
objetivo que los actores esperan alcanzar al realizar el caso de uso.
No se debe confundir este objetivo con los objetivos del sistema. El
objetivo que los actores esperan alcanzar al realizar un caso de uso
es de ms bajo nivel, por ejemplo registrar un nuevo socio o consultar
los pedidos pendientes.
Descripcin: para los requisitos funcionales, este campo contiene un
patrnL que debe completarse de forma distinta en funcin de que
el caso de uso sea abstracto o concreto (ver seccin 3.4.4.2, pg. 74).
Si el caso de uso es abstracto, deben indicarse los casos de uso en los
que se debe realizar, es decir, aquellos desde los que es incluido o a los
que extiende. Si, por el contrario, se trata de un caso de uso concreto,
se debe indicar el evento de activacin que provoca su realizacin.
En versiones anteriores de este patrnL, aparecan las expresiones
caso de uso abstracto y caso de uso concreto. La experiencia durante la
RF<id>
Versin
Autores
Fuentes
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Importancia
Urgencia
Estado
Estabilidad
Comentarios
91
<nombre descriptivo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
El sistema deber comportarse tal como se describe en el siguiente caso de uso { durante la realizacin de los casos de uso
<lista de casos de uso>, cuando <evento de activacin> }
<precondicin del caso de uso>
Paso Accin
p1
{El actor <actor>, El sistema} <accin/es realizada/s por
actor/sistema>
p2
Se realiza el caso de uso <caso de uso (RFx)>
p3
Si <condicin>, {el actor <actor>, el sistema} <accin/es
realizada/s por actor/sistema>
p4
Si <condicin>, se realiza el caso de uso <caso de uso
(RFx)>
...
...
<postcondicin del caso de uso>
Paso Accin
pi
Si <condicin de excepcin>, {el actor <actor>, el sistema} <accin/es realizada/s por actor/sistema>, a continuacin este caso de uso {contina , termina}
pj
Si <condicin de excepcin>, se realiza el caso de uso
<caso de uso (RFx)>}, a continuacin este caso de uso
{contina , termina}
...
...
Paso Cota de tiempo
q
m <unidad de tiempo>
...
...
<no de veces> veces / <unidad de tiempo>
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
92
Otro ejemplo puede ser especificar que el usuario puede intentar conectarse al sistema un mximo de tres veces. Una posible especificacin sera la que puede verse en la figura 3.14, bastante ms natural y
fcil de entender que la que puede verse en la figura 3.15 utilizando
la propuesta descrita en [Coleman 1998].
Secuencia
normal
Paso
1
2
3
4
5
Excepciones
Paso
4
93
Accin
El sistema solicita al usuario su nombre de usuario y su
clave de acceso
El usuario proporciona el sistema su nombre y su clave
de acceso
El sistema comprueba si el nombre de usuario y la clave
de acceso son correctas
Si el nombre de usuario y la clave no son correctas, el
sistema permite al usuario repetir el intento (pasos 13)
hasta un mximo de tres veces
Si el nombre de usuario y la clave son correctas, el sistema
permite el acceso al usuario
Accin
Si el usuario ha intentado tres veces acceder sin xito, el
sistema rechaza el acceso del usuario, a continuacin este
caso de uso termina
94
95
<nombre descriptivo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJx <nombre del objetivo>
...
Rxy <nombre del requisito>
...
El sistema deber <capacidad del sistema>
<importancia del requisito>
<urgencia del requisito>
<estado del requisito>
<estabilidad del requisito>
<comentarios adicionales sobre el requisito>
<nombre descriptivo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
<fuente de la versin actual> (<organizacin de la fuente>)
...
OBJ-x/Rx-y <nombre del objetivo o requisito en conflicto>
...
<descripcin del conflicto>
<descripcin alternativa de solucin> (<autores alternativa>)
...
<descripcin de la solucin adoptada (si se ha acordado)>
<importancia de la resolucin del conflicto>
<urgencia de la resolucin del conflicto>
<estado del resolucin del conflicto>
<comentarios adicionales sobre el conflicto>
96
97
en un elevado nmero de ocasiones. A dichos requisitos los hemos denominado patrones de reutilizacin de requisitosC, o abreviadamente, patrones
RC .
Los campos de las plantillas para patronesRC son los mismos que para
las plantillas para requisitos a excepcin de los campos cuya informacin
slo tiene sentido dentro del contexto de un determinado proyecto.
3.7.1
Dentro de los requisitos de almacenamiento de informacin se han identificado varios patronesRC que aparecen en un elevado nmero de los
casos estudiados. Por un lado se ha cuantificado el nmero de veces que
cada patrnRC ha aparecido, y por otro, para cada patrnRC se ha cuantificado el nmero de veces que cada dato especfico ha aparecido.
Siguiendo la clasificacin de reutilizacin descrita en [Keepence et al.
1995] y [Mannion et al. 1999], en la que los requisitos se clasifican como
no reutilizables, directamente reutilizables por composicin y basados en parmetros para reutilizar por generacin, los patronesRC de requisitos de
almacenamiento de informacin seran directamente reutilizables, aunque
probablemente necesitaran adaptaciones especficas en cada caso.
90,00%
Cliente/Socio
80,00%
70,00%
60,00%
50,00%
40,00%
30,00%
20,00%
Producto/Artculo
Empleado
Venta/Factura
Proveedor
Pedido a proveedor
Albarn
10,00%
0,00%
98
RIx
Descripcin
Datos
Especficos
99
3.7.2
100
Postcondicin
Excepciones
101
Postcondicin
Excepciones
102
idea del patrn Especificar de [Creel 2000], en el que no se especifica la forma en que el usuario selecciona una determinada informacin almacenada
en el sistema, dejando la puerta abierta a distintas implementaciones.
Aparte de la situacin excepcional en la que el usuario cancela la operacin, tambin se ha contemplado el caso en que la informacin no pueda
eliminarse por motivos de integridad, por ejemplo que un cliente tenga
pagos pendientes o que un socio de un vdeoclub tenga pelculas alquiladas.
3.7.2.3
PatrnRC Modificar/Editar
Postcondicin
Excepciones
103
RFx
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Consultar <X>
El sistema deber comportarse tal como se describe en el siguiente
caso de uso cuando { se considere oportuno consultar una determinada
informacin, . . . }
Ninguna
Paso Accin
1
El <actor> solicita al sistema comenzar el proceso de consultar la informacin correspondiente a { un, una } <X>
2
El sistema solicita que se identifique { al, a la, a los } <X> a
consultar
3
El <actor> identifica { el, la, a los } <X> a consultar
4
El sistema muestra los siguientes datos correspondientes { al,
a la, a los } <X> a consultar: <datos mostrados por el sistema>
en <un orden determinado> e informa al <actor> de que el proceso ha terminado con xito
La informacin correspondiente { al, a la, a los } <X> a consultar no
ha cambiado
Paso Accin
3
Si el <actor> solicita cancelar la operacin, el sistema cancela
la operacin, a continuacin este caso de uso termina
104
Posibles variaciones de este patrnRC pueden contemplar la necesidad de que el actor proporcione alguna informacin al sistema para que
ste seleccione la informacin a mostrar en lugar de identificar una determinada informacin, contemplar la posibilidad de que el actor solicite la
impresin en papel del resultado mostrado o que se indique fuera de la
plantilla el formato deseado en el que se desea que se muestre la informacin.
Sistema operativo
El sistema deber poder ejecutarse bajo el sistema operativo <sistema
operativo>
Metodologas de elicitacin
En general, la propuesta de tareas especficas para la elicitacin de requisitos es escasa en la bibliografa sobre ingeniera de requisitos. Respecto
a la metodologa de elicitacin propuesta, los trabajos ms relacionados
son principalmente la estructura de actividades/tareas, los productos y algunas de las actividades propuestas en el mdulo de Anlisis de Requisitos
105
del Sistema (ARS) de Mtrica [MAP 1995], cuya relacin con la actividades
propuestas es la siguiente:
1 Establecer el mbito y alcance del proyecto: esta actividad coincidira con la tarea 1 (Obtener informacin sobre el dominio del problema),
aunque en la propuesta se incluye tambin el estudio del sistema actual, de forma que se cuente con ms informacin antes de mantener
las reuniones de elicitacin/negociacin.
2 Identificar y definir requisitos: esta actividad coincidira con las
tareas 2 a 6 de la metodologa propuesta, ya que abarca tanto las
reuniones con los clientes y usuario como la identificacin de los
requisitosC y la elaboracin del catlogo de dichos requisitos.
3 Disear el modelo lgico actual: esta actividad est incluida en la
tarea 1, como ya se ha comentado.
4 Estudiar alternativas de construccin: esta actividad no tiene ninguna tarea asignada en la metodologa propuesta porque se ha considerado que en esta fase de desarrollo es excesivamente prematuro proponer alternativas de posibles implementaciones, sobre todo
cuando an no se ha realizado el anlisis de los requisitos propuestos por clientes y usuarios.
Otro modelo de procesos para la elicitacin, mucho ms detallado que
el presentado en este trabajo, es Volere, propuesto en [Robertson y Robertson 1999] y cuyo esquema original puede verse en la figura 3.27.
En Volere se denomina proceso de requisitos a las actividades de elicitacin de requisitos, diferencindolas claramente de las de anlisis. Dentro
de este proceso de requisitos se definen las siguientes tareas:
1 Lanzamiento del proyecto: en esta tarea se comienza el proyecto,
normalmente con sesiones JAD, para determinar si es o no viable, si
merece la pena invertir en su desarrollo y si hay un acuerdo general
entre todos los participantes de la necesidad de abordar el desarrollo de un nuevo sistema. Tambin se debe establecer el contexto del
problema a tratar, establecer el propsito del producto a desarrollar
y realizar unas primeras estimaciones de costes y de tiempo de desarrollo.
En la metodologa propuesta en esta tesis no se contempla explcitamente la toma de decisiones sobre la viabilidad del proyecto, que se
106
107
108
3.8.2
109
110
Campos incluidos
Identificador
Nombre
Versin
Autores
Objetivo
Objetivos asociados
Descripcin
Actores
Evento activacin
Precondicin
Postcondicin
Pasos
Variaciones
Excepciones
Include/extend
Rendimiento
Frecuencia
Importancia
Prioridad
Estado desarrollo
Estabilidad
Requisitos asociados
Modelos asociados
Conflictos pendientes
Criterio de aceptacin
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
(j)
(k)
(l)
(m)
(n)
(o)
(p)
Cockburn
s
s
no
no
s
s(f)
s(g)
s
s
s
s
s
s
si(i)
s
s
no
no
s
no
no
s(l)
no
s
no
Coleman
s
s
s(b)
no
s(c)
no
s
s
no
s
no
s
s
no
s
s
s
no
s
no
no
no
no
s
no
Volere
s
s(a)
s(b)
no
s(d)
s(a)
s
no
no
no
no
no
no
no
no
no
no
s(j)
no
no
no
s
s
s
s(o)
Rumbaugh
no
s
no
no
no
no
s
no
no
no
no
no
no
no
s
no
no
no
no
no
no
no
no
no
no
Schneider
no
s
no
no
s(e)
no
no
s(g)
s(g)
s
s
s
no
no
s
s
no
no
s
no
no
s
s
no
no
Propuesta
s
s
s
s
s(e)
s
s
s(g)
s(c)
s
s
s
no(h)
s
s
s
s
s
s(k)
s
s
s
s(m)
s(n)
no(p)
111
SG1
SG2
SG3
SG4
SG5
SG6
escribir la secuencia normal del caso de uso como una lista de acciones discretas de la forma <no accin><descripcin de la accin>. Cada descripcin de
accin debe empezar en una nueva lnea. Dado que cada accin es atmica,
evitar frases con ms de dos clusulas.
usar el orden secuencial de las descripciones de acciones (y por lo tanto su
identificadores numricos nicos) para indicar una secuencia estricta entre las
acciones. Las variaciones deben escribirse en una seccin separada
las iteraciones y las acciones concurrentes deben expresarse en la misma seccin del caso de uso, mientras que las acciones alternativas deben escribirse
en una seccin diferente
usar nombres consistentes para los agentes (actores), objetos y acciones en
todas las descripciones de casos de uso. Evitar el uso de sinnimos y homnimos as como pronombres como l, ella, ellos, ello, etc. Ser consistente en el
uso de la terminologa
usar el presente de indicativo y voz activa en la descripcin de las acciones
evitar el uso de negaciones, adverbios y verbos modales en las descripcin de
las acciones
112
CG1
CG2
CG3
CG4
CG5
CG6
CG7
CG8
3.8.4
Patrones de reutilizacin
113
114
Crear X
Modificar X
<<includes>>
<<includes>>
Usuario
Eliminar X
<<includes>>
Identificar X
Consultar X
115
116
En [Maiden et al. 1998] tambin se propone una clasificacin de patrones en las cuatro siguientes categoras:
Patrones de diseo de sistemas: capturan elementos de buenos diseos de sistemas, por ejemplo el patrn TransaccinInseguraSegura.
Patrones de diseo de dispositivos: describen buenos diseos de
dispositivos de interaccin, por ejemplo el patrn RecogerPrimero
Objetivoltimo.
Patrones de diseo de software: son los patrones de diseo recogidos, entre otros, en [Gamma et al. 1995].
Patrones de diseo de especificaciones: estos patrones capturan elementos de diseo de los documentos de requisitos que facilitan que
los diseadores realicen diseos satisfactorios, por ejemplo el patrn
MquinaFuncin o los anteriormente comentados de [Creel 2000].
3.9 Conclusiones
En este captulo se ha presentado una propuesta metodolgica para la elicitacin de requisitos, que se incluye como apndice de este trabajo. Se
han presentado tambin plantillas y patrones lingsticos para la elicitacin y especificacin de requisitosC y se han indicado las posibilidades
de reutilizacin que ofrecen dichas plantillas en forma de patronesRC .
Las ideas expuestas en este captulo se ha utilizado en ms de 80 prcticas acadmicas correspondientes a las asignaturas de Ingeniera del Software
I e Ingeniera del Software de Gestin I de las titulaciones de Ingeniero en Informtica e Ingeniero Tcnico en Informtica de Gestin impartidas en la
Universidad de Sevilla. Los resultados han sido, aparte de una homogenizacin de los documentos resultantes, una mayor comprensin por parte
de los alumnos del proceso general de la ingeniera de requisitos, una mayor facilidad para describir el sistema a desarrollar y una sustancial mejora
del proceso de revisin de sus trabajos por parte de los profesores responsables.
Resultados muy similares se han obtenido en la universidades de Valladolid y Salamanca, donde tambin han adoptado las plantillas descritas
en este trabajo para realizar las prcticas de las asignaturas de Ingeniera
3.9. Conclusiones
117
del Software II de la Ingeniera Tcnica de Informtica de Gestin y de Ingeniera del Software de la Ingeniera Tcnica de Informtica de Sistemas
respectivamente.
Tambin se han utilizado en tres proyectos de Sadiel S.A.: Reintegros por
pagos indebidos a personal de la Junta de Andaluca, Gestin y control de subvenciones de la Junta de Andaluca y Gestin y control de pensiones no contributivas
de la Junta de Andaluca, que se encuentran an en desarrollo. La aplicacin
de las plantillas descritas en este captulo ha supuesto una mejora sustancial en la comunicacin con los clientes y usuarios, que no han tenido
dificultades en comprender su uso y que han participado activamente en
la redaccin y revisin de los requisitos al encontrar en las plantillas una
forma fcil de hacerlo.
Dado que los tres proyectos anteriores tenan como cliente a la Junta de
Andaluca, que exige la aplicacin de Mtrica V2.1 [MAP 1995] en los desarrollos que contrata, se ha realizado tambin la integracin de las ideas
expuestas con dicha metodologa [Durn et al. 1999].
An no se han podido obtener resultados empricos de la aplicacin
de los patrones de reutilizacin, aunque la posibilidad de reutilizacin de
requisitos individuales (reutilizacin horizontal) es prometedora. Ms prometedora an si cabe es la reutilizacin vertical (ver figura 3.33), tambin
denominada downstream reuse [DSouza y Wills 1999, pg. 455], en la que
al reutilizar un elemento se reutilizan tambin los elementos de nivel inferior asociados por las relaciones de rastreabilidad en forma de mecano
[Garca 2000].
118
3.10. Bibliografa
119
3.10 Bibliografa
[Beyer y Holtzblatt 1995] H. R. Beyer y K. Holtzblatt. Apprenticing with
the Customer. Communications of the ACM, 38(5), Mayo 1995.
[Blaha y Premerlani 1998] M. Blaha y W. Premerlani. Object-Oriented Modeling and Design for Database Applications. PrenticeHall, 1998.
[Boehm et al. 1994] B. W. Boehm, P. Bose, E. Horowitz, y M.-J. Lee. Software Requirements as Negotiated Win Conditions. En Proceedings of
the First International Conference on Requirements Engineering, 1994. Disponible en http://sunset.usc.edu/TechRpts/Papers/NGPMRequirements93.ps.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Brackett 1990] J. W. Brackett. Software Requirements. Curriculum Module SEICM191.2, Software Engineering Institute, Carnegie Mellon
University, 1990. Disponible en http://www.sei.cmu.edu.
[Christel y Kang 1992] M. G. Christel y K. C. Kang. Issues in Requirements Elicitation. Technical Report CMU/SEI92TR12, Software Engineering Institute, Carnegie Mellon University, 1992. Disponible en
http://www.sei.cmu.edu.
[Cockburn 1997] A. Cockburn. Structuring Use Cases with Goals. Journal
of ObjectOriented Programming, Sept. y Nov./Dic. 1997. Disponible en
http://members.aol.com/acockburn/papers/usecases.htm.
[Coleman 1998] D. Coleman.
A Use Case Template: Draft for
Fusion Newsletter, Abril 1998.
Discussion.
Disponible en
http://www.hpl.hp.com/fusion/md newletters.html.
[Creel 2000] C. Creel. Requirements by Pattern. Software Development,
Diciembre 2000. Disponible en http://www.sdmagazine.com/
breakrm/features/s9912f4.shtml.
[Damian et al. 2000] D. E. H. Damian, A. Eberlein, M. L. G. Shaw, y B. R.
Gaines. Using Different Communication Media in Requirements Negotiation. IEEE Software, 17(3):2836, Mayo/Junio 2000.
[Davis 1985] F. Davis. La comunicacin no verbal, volumen 616 de El Libro
de Bolsillo. Alianza Editorial, 1985.
120
3.10. Bibliografa
121
122
[Jacobson et al. 1993] I. Jacobson, M. Christerson, P. Jonsson, y G. vergaard. ObjectOriented Software Engineering: A Use Case Driven Approach.
AddisonWesley, 4a edicin, 1993.
[Jacobson et al. 1997] I. Jacobson, M. Griss, y P. Jonsson. Software Reuse: Architecture, Process and Organization for Business Success. AddisonWesley,
1997.
[Jarke 1998] M. Jarke. Requirements Tracing. Communications of the ACM,
41(12), Diciembre 1998.
[Keepence et al. 1995] B. Keepence, M. Mannion, y S. Smith. SMARTRe
Requirements: Writing Reusable Requirements. En Proceedings of the
IEEE Symposium on Engineering of ComputerBased Systems, 1995.
[Kontoya y Sommerville 1996] G. Kontoya y I. Sommerville. Requirements Engineering with Viewpoints. Software Engineering Journal, 11(1),
Enero 1996.
[Laguna et al. 1999] M. A. Laguna, J. M. Marqus, y F. J. Garca. Una Herramienta para la Captura de Requisitos de Usuario. En Actas de las
JISBD99, Cceres, 1999.
[Lam et al. 1997] W. Lam, J. A. McDermid, y A. J. Vickers. Ten Steps Towards Systematic Requirements Reuse. Requirements Engineering Journal, 2:102113, 1997.
[Lilly 2000] S. Lilly. How to Avoid UseCase Pitfalls. Software Development, Enero 2000. Disponible en http://www.sdmagazine.com/
breakrm/features/s0001f4.shtml.
[Macaulay 1998] L. A. Macaulay. The Role of the Facilitator in Requirements Engineering. En Fifth International Conference on Requirements Engineering, 1998.
[Macaulay 1999] L. A. Macaulay. SevenLayer Model of the Role of the
Facilitator in Requirements Engineering. Requirements Engineering Journal, 4(1), 1999.
[Maiden et al. 1998] N. A. Maiden, M. Cisse, H. Perez, y D. Manuel.
CREWS Validation Frames: Patterns for Validating Systems Requirements.
En Fourth International Workshop on Requirements Engineering:
Foundation for Software Quality (RESFQ),
1998.
Disponible en http://sunsite.informatik.rwthaachen.de/CREWS/reports98.htm.
3.10. Bibliografa
123
[Mannion et al. 1999] M. Mannion, H. Kaindl, y J. Wheadon. Reusing Single System Requirements from Application Family Requirements. En
Proceedings of the International Conference on Software Engineering, 1999.
[Manso et al. 1999] M. E. Manso, M. P. Romay, y F. J. Pealvo. Repository
Asset Audit. En Actas de las IV Jornadas de Trabajo Menhir, Sedano (Burgos), 1999. Universidad de Valladolid.
[MAP 1995] MAP. Metodologa de Planificacin y Desarrollo de Sistemas de
Informacin. MTRICA Versin 2.1. Tecnos/Ministerio para las Administraciones Pblicas, 1995.
[Mazza et al. 1994] C. Mazza, J. Fairclough, B. Melton, D. de Pablo,
A. Scheffer, y R. Stevens. Software Engineering Standards. PrenticeHall,
1994. Disponible en http://dxsting.cern.ch/sting/ESA.txt.
[Nuseibeh et al. 1994] B. Nuseibeh, J. Kramer, y A. Finkelstein. A Framework for Expressing the Relationships between Multiple Views in
Requirements Specification. IEEE Transactions on Software Engineering,
20(10), Octubre 1994.
Developing ObjectOriented Software:
[OOTC 1996] IBM OOTC.
ExperienceBased Approach. PrenticeHall, 1996.
An
[Parets-Llorca y Grnbacher 1999] J. Parets-Llorca y P. Grnbacher. Capturing, Negotiating, and Evolving System Requirements: Bridging Win
Win and the UML. En Proceedings of 25th EUROMICRO Conference, Milan, 1999.
[Piattini et al. 1996] M. G. Piattini, J. A. Calvo-Manzano, J. Cervera, y
L. Fernndez. Anlisis y Diseo Detallado de Aplicaciones Informticas de
Gestin. rama, 1996.
[Pohl 1994] K. Pohl. The Three Dimensions of Requirements Engineering:
A Framework and its Application. Information Systems, 3(19), Junio
1994.
[Pohl 1997] K. Pohl. Requirements Engineering: An Overview. EncyDisponiclopedia of Computer Science and Technology, 36, 1997.
ble en http://sunsite.informatik.rwth-aachen.de/CREWS
/reports96.htm.
[Potts et al. 1994] C. Potts, K. Takahashi, y A. Anton. InquiryBased Requirements Analysis. IEEE Software, 11(2), 1994.
124
[Pressman 1997] R. S. Pressman. Ingeniera del Software. Un Enfoque Prctico. McGrawHill, 4a edicin, 1997.
[Raghavan et al. 1994] S. Raghavan, G. Zelesnik, y G. Ford. Lecture Notes
on Requirements Elicitation. Educational Materials CMU/SEI94EM
10, Software Engineering Institute, Carnegie Mellon University, 1994.
Disponible en http://www.sei.cmu.edu.
[Robertson y Robertson 1998] J. Robertson y S. Robertson.
Volere
Requirements Specification Template Edition 6.0.
Informe tcnico, Atlantic Systems Guild, 1998.
Disponible en http://
www.atlsysguild.com/GuildSite/Robs/Templsects.html.
[Robertson y Robertson 1999] S. Robertson y J. Robertson. Mastering the
Requirement Process. AddisonWesley, 1999.
[Rolland et al. 1998] C. Rolland, C. Ben Achour, C. Cauvet, J. Ralyt, A. Sutcliffe, N. A. M. Maiden, M. Jarke, P. Haumer, K. Pohl,
E. Dubois, y P. Heymans.
A Proposal for a Scenario Classification Framework.
Requirements Engineering Journal, 3(1),
1998.
Disponible en http://sunsite.informatik.rwthaachen.de/CREWS/reports98.htm.
[Rolland y Achour 1998] C. Rolland y C. Ben Achour.
Guiding
Data &
the Construction of Textual Use Case Specifications.
Knowledge Engineering Journal, 25(12), 1998.
Disponible en
http://sunsite.informatik.rwth-aachen.de/CREWS/reports98.htm.
[Rombach 1990] H. D. Rombach. Software Specifications: A Framework. Curriculum Module SEICM112.1, Software Engineering
Institute, Carnegie Mellon University, 1990. No est disponible en
http://www.sei.cmu.edu, aunque aparece en [Dorfman y Thayer
1990].
[Ruggier 1998] M. Ruggier. PSS05 User Requirements Document Template,
1998. Disponible en http://framemaker.cern.ch/pss05.
[Rumbaugh 1994] J. Rumbaugh. Getting Started: Using Use Cases to Capture Requirements. Journal of ObjectOriented Programming, Septiembre
1994.
3.10. Bibliografa
125
126
Captulo 4
Anlisis de Requisitos
4.1
Introduccin
128
En [Yourdon Inc. 1993] se denominan a los tres aspectos viewpoints. En este trabajo
no se ha utilizado este trmino debido a las distintas acepciones que existen de l en la
bibliografa consultada, por ejemplo: [Leite y Freeman 1991], [Kontoya y Sommerville
1996] o [Nuseibeh et al. 1994].
129
Eventos
Funciones
130
En el modelado de sistemas de informacin, el sistema puede considerarse como un objeto compuesto que reacciona ante eventos o estmulos
externos y que genera eventos o respuestas hacia su entorno, tal como se
describe, por ejemplo, en [Coleman et al. 1994, pg. 25], en [Cook y Daniels
1994, pg. 134] o en [Iturrioz 1998].
Los eventos generados son una funcin de los eventos de entrada y del
estado abstracto, , del sistema. A la vez que genera una respuesta hacia
su entorno, el sistema experimenta una transicin hacia otro estado 0 . En
el caso de las consultas, y 0 coinciden.
Durante la elicitacin, el estado abstracto del sistema y las transiciones
eran implcitas. En anlisis, el estado abstracto y las transiciones se hacen
explcitas.
131
En cualquier caso, es fundamental mantener las relaciones de rastreabilidad entre los requisitosC y requisitosD para una correcta gestin,
tanto de los requisitos como del proyecto de desarrollo [Davis 1995, Sawyer y Kontoya 1999] y para favorecer la reutilizacin [Garca 2000].
132
ERDs
ERDs++
Descripcin
Descripcinde
de
entidades
entidadesee
interrelaciones
interrelaciones
HVEs
HVEs++
Catlogo
Catlogode
de
eventos
eventos
DFDs
DFDs++
Diccionario
Diccionario
de
dedatos
datos
Eventos
Funciones
4.3.1
Modelado esttico
La tcnica ms habitual para el modelado esttico dentro de las metodologas estructuradas son los diagramas entidadinterrelacin (ERDs, Entity
Relationship Diagrams) descritos originalmente en [Chen 1976] y con varias
propuestas de variaciones posteriores (por ejemplo [Yourdon Inc. 1993],
[Nijssen y Halpin 1989], etc.).
atributoa
atributob
Entidad1
atributoc
(0,n)
(1,1)
interrelacin
atributod
Entidad2
atributoe
133
Los conceptos bsicos de los ERDs son las entidades, que representan los
conceptos relevantes sobre los que el sistema debe almacenar informacin,
y las interrelaciones entre dichas entidades (ver figura 4.4).
Las entidades poseen atributos que las caracterizan. Las interrelaciones, que tambin pueden tener atributos, llevan asociadas cardinalidades
que indican el nmero mnimo y mximo de instancias de entidades que
pueden participar en dichas interrelaciones. En el ejemplo de la figura
4.4, las cardinalidades de la interrelacin indican que cada instancia de la
Entidad1 deber relacionarse con una y slo una instancia de la Entidad2 ,
mientras que cada instancia de la Entidad2 podr relacionarse con cualquier nmero de instancias de la Entidad1 , incluyendo la posibilidad de
que no se relacione con ninguna.
Aparte de los diagramas, son necesarias tambin descripciones textuales de la entidades, de sus atributos y de las interrelaciones. Un ejemplo
de descripciones de este tipo puede consultarse en [Yourdon Inc. 1993].
Para una definicin ms completa de estos conceptos, as como otras
representaciones grficas, pueden consultarse, entre otros [Piattini et al.
1996] o [Wieringa 1996].
134
Entidad Externa1
flujo5
flujo1
flujo3
Proceso1
flujo2
Entidad Externa2
Proceso2
flujo4
Almacn de datos
135
Estado inicial
actividad1
evento1
accin1
condicin2
Estado de
decisin
condicin1
Estado final
actividad2
Entidad
evento inicial
(creacin)
Nodo intermedio1
evento final
(destruccin)
Nodo intermedio2
evento1
evento2
evento3
136
En [Yourdon Inc. 1993, pgs. 497499] se realiza una interesante comparacin sobre las ventajas e inconvenientes del uso de la descomposicin funcional descendiente
(TDFD, TopDown Functional Decomposition) y el particionamiento de eventos para construir el modelo funcional de un sistema utilizando DFDs.
137
Plano eventos/funciones
El plano eventos/funciones indica qu funciones realiza el sistema como respuesta a los eventos del entorno. Como ya se coment, el particionamiento
de eventos es el enfoque que ofrece una mayor integracin entre ambas dimensiones, al ir identificando los procesos (funciones) como respuesta a
los eventos.
Siguiendo la tcnica del particionamiento de eventos, cuando se produzca un evento al que el sistema tenga que responder, se realizar el proceso, normalmente primitivo, de los DFDs asociado a dicho evento en el
catlogo de eventos. En dicho catlogo se describen los eventos a los que
debe responder el sistema y se indican los procesos que deben realizarse
como respuesta a cada evento.
Normalmente la relacin entre eventos y procesos es 1:1, aunque puede
haber situaciones en la que un mismo proceso se realice como respuesta a
ms de un evento3 .
3
138
139
yacente muy similar al resultado de aplicar a los ERDs las heursticas para
la obtencin de esquemas relacionales [Date 1995] o a un supuesto sistema
de ficheros COBOL. De hecho, el propio nombre de almacn de datos implica aspectos de implementacin de la persistencia del estado del sistema
que, como ya se discuti en el captulo 1, deben evitarse.
La nica opcin para evitar estos problemas y conseguir una integracin plena de ambas tcnicas es utilizar DFDs degenerados [Wieringa 1996,
pg. 205] en los que haya un nico almacn de datos que contenga todas
las instancias de entidades e interrelaciones, es decir, todo el estado del
sistema.
Dado que esta opcin no es la habitual, la integracin de ambas modelos no puede considerarse satisfactoria en las tcnicas estructuradas. De
hecho, no hace sino reflejar la tradicional divisin entre los partidarios de
los mtodos conducidos por los datos y los mtodos conducidos por los procesos
[DSouza 1996].
4.4
Las tcnicas orientadas a objetos de modelado han recibido especial atencin en la ltima dcada. La evolucin que han experimentado ha llevado
incluso a establecer generaciones dentro de los mtodos propuestos.
Mtodos de primera generacin: se desarrollan principalmente en
la primera mitad de los 90, algunos como una evolucin de las tcnicas de modelado de datos, por ejemplo OOA (ObjectOriented Analysis) [Coad y Yourdon 1990] u OMT (Object Modeling Technique) [Rumbaugh et al. 1991], otros basados en aspectos funcionales como OOSE
(ObjectOriented Software Engineering) [Jacobson et al. 1993] y otros
basados en conceptos cercanos a la programacin orientada a objetos como el mtodo de Booch [Booch 1991, Booch 1994].
Mtodos de segunda generacin: son tcnicas que se han basado en
las anteriores y que se han popularizado durante la segunda mitad
de la dcada de los 90, como Fusion [Coleman et al. 1994], Syntropy
[Cook y Daniels 1994], UML [Booch et al. 1999] o Catalysis [DSouza
y Wills 1999], aunque esta ltima tambin se denomina de tercera
generacin al estar basada en las anteriormente citadas Fusion, Syntropy y UML.
140
Datos
Diagramas
Diagramasde
de
Tipos
Tipos++
Descripcin
de
Descripcin de
tipos,
tipos,
asociaciones,
asociaciones,......
Statecharts
Statecharts
Eventos
Diagramas
Diagramasde
de
Secuencia/Colaboracin
Secuencia/Colaboracin
++Descripcin
Descripcinde
de
operaciones
operaciones
Funciones
4.4.1
Modelado esttico
La tcnica utilizada por todas las propuestas orientadas a objetos para modelar el estado del sistema es, con pequeas variaciones en cada caso particular, el diagrama de clases (ver figura 4.9), tambin denominado diagrama
de tipos en las propuestas ms recientes [Cook y Daniels 1994, DSouza y
Wills 1999]4 .
Los elementos bsicos de estos diagramas son los tipos de objetos, un
concepto muy similar al de entidad en las tcnicas estructuradas. Estos
tipos pueden tener atributos y participar en asociaciones con otros tipos
de objetos (al igual que las entidades de los ERDs tienen interrelaciones).
A las instancias de los tipos se les denomina objetos y a las instancias de las
asociaciones enlaces.
En este trabajo se utilizar el trmino tipo en el mismo sentido que se utiliza en [Cook
y Daniels 1994] o en [DSouza y Wills 1999], dejando el trmino clase para los aspectos
relacionados con la implementacin de los tipos identificados durante el anlisis de requisitos.
141
Tipo1
atributo1
atributo2
Tipo3
Operacin1()
Operacin2()
Tipo2
142
del sistema, la mayor parte de las tcnicas orientadas a objetos de primera generacin utilizan la especificacin de operaciones y los diagramas de
secuencia o de colaboracin para describir esta dimensin del sistema. En
las figuras 4.10 y 4.11 pueden verse dos ejemplos semnticamente equivalentes de estos dos tipos de diagramas.
obj1
obj2
m1(...)
obj3
m2(...)
m3(...)
m4(...)
m6(...)
obj2
2: m2(...)
3: m3(...)
1: m1(...)
5: m6(...)
4: m4(...)
obj3
obj1
143
Estas tcnicas de primera generacin asumen en sus modelos una comunicacin entre objetos muy similar a la que se realiza en los lenguajes
de programacin orientados a objetos: el paso de mensajes. De esta forma,
la funcionalidad del sistema se logra mediante una adecuada secuencia de
envo de mensajes a los distintos objetos que lo forman.
Los inconvenientes de esta forma de modelar la funcionalidad de un
sistema son varios. En primer lugar, tal como se expone por ejemplo en
[Cook y Daniels 1994, pgs. 78, 137139] o en [DSouza y Wills 1999, pgs.
154155], los modelos de paso de mensajes suelen implicar decisiones de
diseo, ya que es necesario especificar la secuencia de mensajes entre los
objetos, es decir, especificar el protocolo de comunicacin.
En segundo lugar, implica la necesidad de tomar decisiones sobre la
distribucin de la funcionalidad global del sistema entre los distintos objetos que lo componen5 , lo que lleva necesariamente a especificar las operaciones que realizarn los objetos cuando reciban un determinado mensaje.
En nuestra experiencia en la especificacin de sistemas de informacin,
este reparto de funcionalidad mediante la identificacin y especificacin de
las operaciones de los objetos provoca un gran incremento del esfuerzo en
la realizacin de los modelos de anlisis pero no incrementa su rigor o
precisin. De hecho, la mayor parte de estas operaciones son tan triviales
como cambiar el valor de un atributo o establecer el enlace de una asociacin, con lo que su nivel de abstraccin es similar al de la implementacin.
Para evitar estos problemas, los mtodos de segunda generacin como [Coleman et al. 1994], [Cook y Daniels 1994] o [DSouza y Wills 1999]
proponen distintas formas de expresar la funcionalidad del sistema en las
que se asume otro modelo de comunicacin entre objetos que evita tomar
decisiones de diseo (Syntropy), o bien en las que la asignacin de funcionalidades o responsabilidades entre los objetos no se realiza durante las
actividades de anlisis, sino que se pospone para el diseo (Fusion, Catalysis).
De hecho, existen propuestas que usan estos mecanismos alternativos
al paso de mensajes como base para la especificacin y el prototipado de
sistemas distribuidos [Corchuelo 1999, Corchuelo et al. 2000].
144
estado1
Invariante:
invariante del estado
Entry:
Eventos de inters:
Eventos permitidos:
e
...
Eventos generados:
donde:
e es el nombre, global y nico, del evento.
145
p1 :T1 , . . . , pn :Tn son los parmetros del evento, cada uno con
un nombre y un tipo correspondiente.
[filtro] es un predicado que para cada ocurrencia del evento indica si el objeto est o no interesado en dicha ocurrencia.
[pre] es la precondicin del evento, un predicado que indica, en
el caso de que el filtro sea cierto, si el objeto est o no preparado
para aceptar una determinada ocurrencia del evento.
[post] es la postcondicin del evento, un predicado que define
las condiciones que se deben cumplir si el objeto experimenta una transicin como consecuencia del evento. En el cuerpo
del statechart pueden aparecer otras postcondiciones asociadas
a transiciones especficas del evento. La postcondicin de una
transicin es la conjuncin lgica () de la expresada en la lista
de eventos y la expresada en el cuerpo del statechart.
En otras palabras, la postcondicin de la lista de eventos es comn a todas las transiciones del evento en el cuerpo del statechart.
eg1 , . . . , egn son los eventos que se generan si el objeto experimenta una transicin como consecuencia del evento. Al igual
que en el caso de las postcondiciones, pueden indicarse eventos
generados especficos de ciertas transiciones del evento, que en
caso de producirse generaran tanto los especificados en la lista
de eventos como en el cuerpo del statechart.
Tanto las postcondiciones como los eventos generados asociados a
un evento en la lista de eventos son comunes a todas las transiciones
provocadas por dicho evento, permitiendo as simplificar el cuerpo
del statechart.
Eventos de creacin: son los eventos que provocan la creacin de
los objetos. Este tipo de eventos recibe un tratamiento especial en
Syntropy, ya que segn su modelo de comunicacin entre objetos un
objeto no puede detectar la ocurrencia de un evento si dicho objeto
no existe todava. Esta es la razn de que este tipo de eventos no
tenga nombre y slo se diferencien por los tipos de los parmetros.
Para que se cree un objeto como consecuencia de un evento e, es
necesario que algn objeto ya existente experimente una transicin
con e en la que se incluya como postcondicin una expresin de la
forma:
146
donde:
e es el nombre de un evento de inters en la lista de eventos o, en el
caso de que se trate de una transicin que parta del estado inicial, es
un evento de creacin y no tiene nombre.
6
A excepcin de las autotransiciones provocadas por los eventos permitidos, que dejan
al objeto en el mismo estado pero no generan los eventos de entrada o de salida [Cook y
Daniels 1994, pgs. 144145].
147
148
149
Descripcin:
Lee (Reads):
Cambia (Changes):
lista de objetos, atributos o asociaciones que la operacin cambia. Si un elemento se prefija con nuevo (new) significa que se
crea durante la operacin.
Enva (Sends):
Asume (Assumes):
Precondicin, descrita en lenguaje natural, que debe satisfacerse para que la operacin del sistema pueda realizarse.
Resultado:
Postcondicin, descrita en lenguaje natural, que debe satisfacerse despus de la realizacin de la operacin del sistema. Para hacer referencia a los estados previo y posterior a la realizacin de la operacin pueden utilizarse los prefijos inicial y final
respectivamente.
150
diencia de los requisitosD son los desarrolladores, y por este motivo pueden usarse notaciones especficas que permitan un mayor rigor en la especificacin. El uso del lenguaje natural est justificado para la redaccin
de los requisitosC, pero para los requisitosD es mejor utilizar lenguajes ms formales que no presentan los problemas inherentes al lenguaje
natural [DSouza y Wills 1999, pgs. 585586].
4.4.2.3
Tipo1
rol1
accin( parmetros )
*
rol3
Tipo2
Tipo3
rol2
151
donde:
rol1 :T1 ,. . . , roln :Tn son los participantes en la accin conjunta, cada
uno definido con un nombre de rol y un tipo de objetos.
ac es el nombre de la accin conjunta.
p1 :Tp , . . . , pn :Tq son los parmetros (valores) de la accin conjunta.
Las acciones conjuntas que se realicen como consecuencia de las interacciones del sistema con el entorno pueden representarse como las operaciones del sistema que se est especificando, en cuyo caso los objetos
participantes se consideran como parmetros. Por ejemplo, suponiendo
que la anterior definicin corresponda a un sistema de nombre S, se podra tener la siguiente definicin equivalente:
accin
pre:
post:
La razn de esta equivalencia es que dichas acciones formaran la interfaz del sistema con el entorno, al igual que lo forman las operaciones
de sistema en Fusion y los eventos en Syntropy. Considerando al sistema
como un objeto, estas acciones seran los servicios que podran solicitarse
al sistema. Esta idea se refuerza mediante el uso habitual de los diagramas de tipos contenidos dentro del tipo que representa al sistema en su
conjunto (ver figura 4.15).
Las acciones conjuntas definen sus pre y postcondiciones sobre el estado global del sistema sin asignar responsabilidades ni funcionalidades a
ninguno de los participantes. Sin embargo, puede haber ocasiones en las
que pueda ser oportuno factorizar algunas pre y postcondiciones comunes
a varias acciones conjuntas y localizarlas como efectos asociados a uno o
ms tipos de objetos [DSouza y Wills 1999, pgs. 167168].
152
Tipo1
0..1
rolA
rolB
Tipo4
*
0..1
Tipo3
Tipo2
efecto
post:
T::e( x:X )
a<x
accin
post:
153
En Fusion, los aspectos dinmicos, al igual que los funcionales, se describen tambin a nivel del sistema completo. Para ello proponen la utilizacin de un modelo denominado de ciclo de vida, en el que se utilizan
expresiones de ciclo de vida, muy parecidas a las expresiones regulares concurrentes [Garg 1990], que expresan las posibles secuencias de operaciones
de sistema y generacin de eventos que pueden realizarse.
Las expresiones pueden formarse utilizando los siguientes operadores,
donde x e y son expresiones de ciclo de vida:
x .y representa que x es seguida por y
x | y representa que ocurre x o que ocurre y
x representa que x ocurre cero o ms veces
x + representa que x ocurre una o ms veces
[x ] representa que x es opcional
x || y representa el entrelazado de x e y
Tambin pueden nombrarse subexpresiones para facilitar la lectura de
expresiones complejas y utilizar parntesis para indicar la precedencia.
Tal como se reconoce en [Coleman et al. 1994, pg. 33], la expresividad
de esta tcnica aplicada al sistema en su conjunto es bastante limitada,
entre otras razones, por la imposibilidad de expresar comportamientos
condicionales.
154
En nuestra opinin, las expresiones de este tipo pueden ser una forma
sencilla de expresar aspectos dinmicos a nivel de tipos de objetos8 , pero
a nivel del sistema completo se muestra ineficaz debido a su escaso poder
expresivo.
4.4.3.2 Modelado dinmico en Catalysis
El modelado dinmico en Catalysis utiliza los statecharts para describir
los aspectos locales de las acciones conjuntas, que son globales, sobre los
objetos de un determinado tipo, aunque sin aadir la parte textual de Syntropy (la lista de eventos) y simplificando las transiciones para especificarlas
de la forma:
[pre] a(p1 , . . . , pn ) / post
donde:
a es un nombre de una accin conjunta, equivalente al concepto de
evento en Syntropy.
p1 , . . . , pn son los valores de los parmetros de la accin.
[pre] es la precondicin de la transicin, equivalente al concepto de
guarda en Syntropy. La precondicin de la transicin puede considerarse como una proyeccin de la precondicin de la accin conjunta
que provoca la transicin en la que slo aparecen los aspectos relativos a los objetos del tipo cuyo statechart se est especificando.
[post] es la postcondicin de la transicin, equivalente al concepto
del mismo nombre en Syntropy, y que al igual que en el caso de las
precondiciones, es una proyeccin de la postcondicin de la accin
conjunta sobre el tipo de objetos del statechart.
Los statecharts en Catalysis estn integrados con los modelos esttico y funcional de una forma ms concreta que en mtodos de primera
generacin como OMT o el mtodo de Booch. Un problema que presentaban estos mtodos era que, a la hora de especificar las operaciones de
8
155
una clase, no exista una relacin directa de stas con el statechart salvo la
coincidencia entre los nombres de las operaciones y el de los eventos en
el statechart. Los estados del statechart definen estados de los objetos en
los que suelen responder de forma diferente a los mensajes que se les envan, sin embargo en las definiciones de las operaciones no haba ninguna
referencia explcita al estado en que se encontraba el objeto.
Catalysis resuelve este problema integrado an ms los modelos dinmico y esttico: un statechart no slo est asociado a un tipo de objetos,
sino que cada estado del statechart est representado mediante un atributo
booleano con el mismo nombre que el estado y la estructura del statechart
define invariantes sobre el tipo de objetos asociado.
Por ejemplo, el statechart de la figura 4.12 (pg. 144) definira dos atributos booleanos de nombre estado1 y estado2 y adems definira una invariante con la expresin OCL:
estado1 xor estado2
ya que el objeto no puede estar en los dos estados a la vez. Una discusin
ms amplia sobre las invariantes que impone la estructura del statechart,
por ejemplo con estados anidados o concurrentes, puede consultarse en
[DSouza y Wills 1999, pgs. 126130].
Coincidiendo con Syntropy, en Catalysis se recomienda asumir un modelo de comunicacin broadcast entre los objetos del sistema durante la
especificacin del mismo [DSouza y Wills 1999, pgs. 603606], de forma
que todos los objetos detectan la ocurrencia de las acciones del sistema. El
paso de este modelo de comunicacin broadcast a un modelo de paso de
mensajes ms cercano a la implementacin se pospone para fases posteriores del desarrollo9 .
En general, la semntica de los statecharts en Catalysis es ms simple
que en Syntropy y, normalmente, hay que remitirse al modelo funcional
(las especificaciones de las acciones conjuntas) para poder comprender la
conducta global del sistema. Por ejemplo, supongamos el statechart de un
tipo de objetos T que puede verse en la figura 4.16, del que puede deducirse lo siguiente:
Que los objetos del tipo T tendrn tres atributos booleanos de nombre
s1 , s2 y s3 , correspondientes a los estados del statechart.
9
156
S1
157
4.4.4
Integracin de modelos
158
D
a
t
o
s
F
u
n
c
i
o
n
e
s
E
v
e
n
t
o
s
Estructuradas
Diagrama
entidad
interrelacin
(ERD)
Diagrama de
flujo de datos
(DFD)
Historia de la
vida de las entidades (HVE)
Objetos
Diagrama
de tipos
Comparacin
El concepto de entidad es equivalente al de tipo y
el de interrelacin es equivalente al de asociacin.
Los diagramas de tipos son ms ricos semnticamente, principalmente debido a la posibilidad de
definir subtipos.
Operaciones La integracin de los DFDs con el modelo de dade sistema tos no es satisfactoria al asumir una estructura re(Fusion) o lacional o de ficheros tipo COBOL para la persisacciones
tencia del estado del sistema.
conjuntas
Si se aplica el particionamiento de eventos, los
(Catalysis)
procesos de los DFDs asociados a un evento son
equivalentes a las operaciones del sistema de Fusion o a las acciones conjuntas de Catalysis.
Statechart
159
Analizar los
Analizar los
requisitos
requisitos
funcionales
funcionales
Analizar los
Analizar los
requisitos
requisitos
no
no
funcionales
funcionales
Desarrollar
Desarrollar
prototipos
prototipos
160
La forma habitual de alcanzar estos objetivos es mediante la construccin de modelos abstractos. En esta propuesta se recomienda la utilizacin
de tcnicas de modelado orientadas a objetos, aunque tambin podran
utilizarse tcnicas estructuradas, ya que, como se coment en la seccin
4.5, las diferencias entre ambas no son insalvables.
Los productos resultantes de la realizacin de esta tarea son el modelo
esttico del sistema, compuesto por los diagramas de tipos y la descripcin
textual de los elementos que lo integran, y los posibles conflictos que se
detecten al construir el modelo.
Las tcnicas que pueden utilizarse para realizar esta tarea son los diagramas de tipos [DSouza y Wills 1999], las plantillas para describir los
elementos de los diagramas de tipo (ver seccin 4.7.1) y las plantillas para
conflictos descritas en la seccin 3.6.6 (pg. 95).
161
162
Portada
Lista de cambios
ndice
Lista de figuras
Lista de tablas
1 Introduccin
2 Diagramas de tipos
3 Catlogo de tipos y asociaciones del sistema
3.1 Tipo X
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
Descripcin tipo X
Atributos tipo X
Enlaces tipo X
Invariante tipo X
Diagrama de estados tipo X [opcional]
Descripcin operacin Z
Diagrama de accin conjunta de la operacin Z [opcional]
Diagrama de secuencia de la operacin Z [opcional]
Interfaz de usuario de la operacin Z [opcional]
163
164
165
<nombre tipo>
<no de la versin actual> (<fecha de la versin actual>)
<autor de la versin actual> (<organizacin del autor>)
...
RIx <nombre del requisito>
...
Este tipo { abstracto, concreto } representa <concepto que representa el tipo>
<supertipos directos del tipo>
<subtipos directos del tipo> ({ disjuntos, solapados }, { completos, incompletos })
Nombre
Tipo OCL
Mult.
<nombre componente> <tipo OCL del enlace>
mult.
...
...
...
<comentarios adicionales sobre el tipo>
166
Atributo variable
Descripcin
Tipo OCL
Valor inicial
Comentarios
Atributo derivado
Descripcin
Tipo OCL
Expresin
Comentarios
Nombre atributo: cada atributo se identifica por un nombre que deber ser nico dentro de un tipo, recomendndose que sea un sustantivo o similar.
Descripcin: en este apartado se proporciona una breve descripcin
del atributo.
Tipo OCL: en este apartado se indica el tipo OCL del atributo.
Valor inicial: para los atributos variables, en este apartado se indica,
opcionalmente, el valor inicial del atributo.
Expresin: para los atributos derivados, en este apartado se indica
la expresin OCL asociada a la evaluacin del atributo.
167
Enlace variable
Descripcin
Tipo OCL
Valor inicial
Asociacin
Comentarios
Enlace derivado
Descripcin
Tipo OCL
Expresin
Asociacin
Comentarios
168
Plantilla de invariante
<nombre tipo>
<descripcin de la invariante en lenguaje natural>
Comentarios
169
170
171
conjuncin de una expresin de excepcin y la postcondicin en dicho caso. Esto permite especificar de forma clara la conducta del sistema, tanto
en situaciones normales como en situaciones de error.
Para poder especificar la respuesta del sistema se utilizan dos pseudovariables: respuesta, de tipo OCL Set(String), donde se le comunican al usuario
las respuestas del sistema y, para aquellas operaciones que sean de consulta o que devuelvan algn tipo de resultado, resultado11 , cuyo tipo depende
de la consulta que se realice.
Siguiendo estas ideas, el esquema (en la notacin de Catalysis) para especificar una operacin de sistema que no sea de consulta es el que puede
verse en la figura 4.26, donde p1 , . . . , pq son los parmetros de la operacin, pre es la precondicin, post es la postcondicin, excep1 , . . . , excepn
son las condiciones de excepcin y la respuesta del sistema se devuelve en
respuesta.
accin Operacin( p1 , . . . pq )
post: ( pre and post and respuesta = Set{ "<xito>" } )
or
( excep1 and respuesta->includes( "<error no 1>" ) )
or
...
or
( excepn and respuesta->includes( "<error no n >" ) )
172
tipo - descripcin
siendo:
nombre: nombre del parmetro.
tipo: tipo OCL del parmetro
descripcin: descripcin del parmetro.
Operacin Sistema
Tipo resultado
<nombre operacin>
Versin
Autores
Requisitos asociados
Descripcin
Parmetros
Precondiciones
Precondiciones
(OCL)
Postcondiciones
Postcondiciones
(OCL)
Excepciones
Excepciones (OCL)
Comentarios
p1 : Tipo1 -- descripcin p1
...
pq : Tipon -- descripcin pq
173
174
175
<<Patrn-R>>
Cliente/Socio
traced to
nombre : String
apellidos : String
direccin : String
telfonos : Set( Integer )
fechaAlta : Date
fechaNacimiento : Date
sexo : enum { hombre, mujer }
fax : Integer
correoElectrnico : String
176
Precondiciones
Precondiciones
(OCL)
Postcondiciones
Tipo1
Tipoq
Tipok -- parmetro clave
Tipor -- parmetro clave
Postcondiciones
(OCL)
post1 : <X>.new->exists( x |
x.pi = pi and x.kj = kj ) -- i:1..q, j:1..r
post2 : <X>.new->size = 1
post3 : respuesta = Set{"<X> { creado, dado de alta, registrado } con xito"}
Excepciones
Excepciones (OCL)
177
Precondiciones
Precondiciones
(OCL)
Postcondiciones
Postcondiciones
(OCL)
Excepciones
Excepciones (OCL)
x : X -- el <X> a eliminar
...
<X>.dead->includes( x )
<X>.dead->size = 1
respuesta = Set{"<X> { eliminado, dado de baja, can} con xito"}
178
{Modificar, Editar}<X>
{Modifica, Edita } un <X>
Precondiciones
Precondiciones
(OCL)
Postcondiciones
x : X -- el <X> a eliminar
p1 : Tipo1
...
pq : Tipoq
Postcondiciones
(OCL)
Excepciones
Excepciones (OCL)
Patrn-RD Consultar
Consultar<X>
Descripcin
Parmetros
179
Collection(<X>)
Postcondiciones
Postcondiciones
(OCL)
180
Socio
nombre : String
Cinta
*
Alquiler
fecha : Date
Pelcula
ttulo : String
Socio <nombre>
<ttulo>
<ttulo>
...
Socio <nombre>
<ttulo>
<ttulo>
...
<fecha>
<fecha>
<fecha>
<fecha>
4.9. Conclusiones
181
4.9
Conclusiones
En este captulo se ha presentado la propuesta metodolgica para el anlisis de requisitos dentro del marco del modelo de procesos descrito en el
captulo 2. Para llegar a dicha propuesta se han analizado las tcnicas habituales de anlisis de requisitos, tanto estructuradas como orientadas a
objetos.
Este anlisis nos ha hecho coincidir con otros autores como [Wieringa
1998] en la idea de que tanto las tcnicas estructuradas modernas, basadas en el particionamiento de eventos e integrando las tres dimensiones
de modelado, como las tcnicas orientadas a objetos de segunda generacin (incluyendo las tcnicas post-UML como Catalysis) tienen un modelo
subyacente de sistema de informacin muy similar.
Para la propuesta metodolgica se ha optado por la utilizacin de las
tcnicas orientadas a objetos por su mayor expresividad, integrando aspectos formales como OCL de forma similar a la descrita en Catalysis. Al
igual que en el caso de los requisitosC, tambin se han identificado algunos patronesR a nivel de requisitosD, relacionados con los anteriores a
travs de las relaciones de rastreabilidad que se comentaron en el captulo
anterior.
Durante la aplicacin de las ideas expuestas en este artculo en prcticas acadmicas, pudimos constatar las deficiencias del modelo de paso
de mensajes para el modelado conceptual de sistemas de informacin y
como su posterior sustitucin por un modelo ms abstracto, en el que las
operaciones se especificaban nicamente a nivel de sistema sobre el estado
global, mejor sensiblemente la calidad y facilidad de compresin de los
modelos resultantes.
Es necesario destacar la falta de tcnicas para el anlisis de los requisitos no funcionales, que son prcticamente ignorados por las tcnicas de
modelado conceptual y relegados para las fases posteriores de desarrollo
182
[Bass et al. 1998, Chung et al. 1999, Ruiz et al. 2000]. Resulta evidente la
necesidad de un mayor esfuerzo de investigacin para la clasificacin y
modelado de este tipo de requisitos, especialmente complejos por su heterogeneidad.
4.10 Bibliografa
[Bass et al. 1998] L. Bass, P. Clements, y R. Kazman. Nonfunctional Requirements Is a Dysfunctional Term. En Software Architecture in Practice,
pginas 7677. AddisonWesley, 1998.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Booch 1991] G. Booch. ObjectOriented Design with Applications. Benjamin/Cummings, 1991.
[Booch 1994] G. Booch. ObjectOriented Analysis and Design with Applications. Benjamin/Cummings, 2a edicin, 1994.
[Brackett 1990] J. W. Brackett. Software Requirements. Curriculum Module SEICM191.2, Software Engineering Institute, Carnegie Mellon
University, 1990. Disponible en http://www.sei.cmu.edu.
[CCT 1990] CCTA. SSADM Version 4.2, 1990.
[Chen 1976] P. P.-S. Chen. The EntityRelationship Model Toward a
Unified View of Data. ACM Transactions on Database Systems, 1:936,
1976. Tambin aparece en [Thayer y Dorfman 1990].
[Chung et al. 1999] L. Chung, D. Gross, y E. Yu. Architectural Desing to
Meet Stakeholder Requirements. En Proceedings of the First Working
IFIP Conference on Software Architecture (WICSA1), San Antonio, (Texas,
USA), 1999.
[Coad y Yourdon 1990] P. Coad y E. Yourdon. ObjectOriented Analysis.
Yourdon Press/PrenticeHall, 1990.
[Codd 1970] E. F. Codd. A Relational Model of Data for Large Shared Data
Banks. Communications of the ACM, 13(6), 1970.
4.10. Bibliografa
183
184
4.10. Bibliografa
185
[Letelier et al. 1998] P. Letelier, P. Snchez, I. Ramos, y O. PasOASIS 3.0: Un Enfoque Formal para el Modelado Contor.
ceptual Orientado a Objeto.
Servicio de Publicaciones de la
Universidad Politcnica de Valencia, 1998.
Disponible en
http://www.dsic.upv.es/users/oom/oasis.html.
[MAP 1995a] MAP. Metodologa de Planificacin y Desarrollo de Sistemas de
Informacin. MTRICA Versin 2.1. Tecnos/Ministerio para las Administraciones Pblicas, 1995.
[MAP 1995b] MAP. Metodologa de Planificacin y Desarrollo de Sistemas de
Informacin. MTRICA Versin 2.1: Gua de Tcnicas. Tecnos/Ministerio
para las Administraciones Pblicas, 1995.
[Mazza et al. 1996] C. Mazza, J. Fairclough, B. Melton, D. de Pablo,
A. Scheffer, R. Stevens, M. Jones, y G. Alvisi. Software Engineering Guides. PrenticeHall, 1996.
[Nijssen y Halpin 1989] G. M. Nijssen y T. A. Halpin. Conceptual Schema
and Relational Database Design. PrenticeHall, 1989.
[Nuseibeh et al. 1994] B. Nuseibeh, J. Kramer, y A. Finkelstein. A Framework for Expressing the Relationships between Multiple Views in
Requirements Specification. IEEE Transactions on Software Engineering,
20(10), Octubre 1994.
[Pastor y Ramos 1995] O. Pastor y I. Ramos. OASIS version 2 (2.2): A
ClassDefinition Language to Model Information Systems Using an Object
Oriented Approach. Servicio de Publicaciones de la Universidad Politcnica de Valencia, 1995.
[Piattini et al. 1996] M. G. Piattini, J. A. Calvo-Manzano, J. Cervera, y
L. Fernndez. Anlisis y Diseo Detallado de Aplicaciones Informticas de
Gestin. rama, 1996.
[Pohl 1994] K. Pohl. The Three Dimensions of Requirements Engineering:
A Framework and its Application. Information Systems, 3(19), Junio
1994.
[Pohl 1997] K. Pohl. Requirements Engineering: An Overview. Encyclopedia of Computer Science and Technology, 36, 1997.
Disponible en http://sunsite.informatik.rwth-aachen.de/CREWS
/reports96.htm.
186
[Pollack et al. 1993] F. Pollack, M. Whiston, y K. C. Mander. The SAZ Project: Integrating SSADM and Z. En J. C. P. Woodcock y P. G. Larson,
editores, FME93: IndustrialStrength Formal Methods, volumen 670 de
Lecture Notes in Computer Science. Springer Verlag, 1993.
[Rat 1997] Rational Software Corporation. Object Constraint Language Specification, 1.1 edicin, Septiembre 1997.
Disponible en
http://www.rational.com.
[Ratcliff 1994] B. Ratcliff. Introducing Specification Using Z: A Practical Case
Study Approach. International Series in Software Engineering. McGraw
Hill, 1994.
[Rombach 1990] H. D. Rombach. Software Specifications: A Framework. Curriculum Module SEICM112.1, Software Engineering
Institute, Carnegie Mellon University, 1990. No est disponible en
http://www.sei.cmu.edu, aunque aparece en [Dorfman y Thayer
1990].
[Ruiz et al. 2000] A. Ruiz, R. Corchuelo, A. Durn, O. Martn, y J. A. Prez.
Prototipado Arquitectnico de Sistemas Abiertos Distribuidos. En Actas
de las V Jornadas de Trabajo Menhir, Granada, 2000.
[Rumbaugh et al. 1991] J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, y
W. Lorensen. Object-Oriented Modeling and Design. PrenticeHall, 1991.
[Sawyer y Kontoya 1999] P. Sawyer y G. Kontoya. SWEBOK: Software Requirements Engineering Knowledge Area Description. Informe Tcnico Versin 0.5, SWEBOK Project, 1999.
Disponible en
http://www.swebok.org.
[Semmens y Allen 1991] L. Semmens y P. Allen. Using Yourdon and Z: an
Approach to Formal Specification. En John E. Nicholls, editor, Proceedings of the 5th Annual Z User Meeting, Workshops in Computing, pginas 228253, Oxford, 1991. Springer-Verlag.
[Spivey 1992] J. M. Spivey. The Z notation: a Reference Manual. Prentice
Hall, 2a edicin, 1992.
[Thayer y Dorfman 1990] R. H. Thayer y M. Dorfman, editores. System
and Software Requirements Engineering. IEEE Computer Society Press,
1990.
4.10. Bibliografa
187
[Thayer y Dorfman 1997] R. H. Thayer y M. Dorfman, editores. Software Requirements Engineering. IEEE Computer Society Press, 2a edicin,
1997. Es la 2a edicin de [Thayer y Dorfman 1990].
[Torres 1997] J. Torres. Especificaciones Orientadas a Objetos Basadas en Restricciones. Tesis doctoral, Universidad de Sevilla, 1997.
[Troyano 1998] J. A. Troyano. Herencia y Clasificacin en un Lenguaje de Especificacin Orientado a Objetos. Tesis doctoral, Universidad de Sevilla,
1998.
[Ward y Mellor 1985] P. T. Ward y S. J. Mellor. Structured Development for
RealTime Systems. Yourdon Press, 1985.
[Warmer y Kleppe 1999] J. B. Warmer y A. G. Kleppe. The Object Constraint Language: Precise Modeling with UML. AddisonWesley, 1999.
[Wieringa 1996] R. J. Wieringa. Requirements Engineering: Frameworks for
Understanding. John Wiley & Sons, 1996.
[Wieringa 1998] R. J. Wieringa. A Survey of Structured and Object
Oriented Software Specification Methods and Techniques. ACM Computing Surveys, 30(4), Diciembre 1998.
[Yourdon Inc. 1993] Yourdon Inc. Yourdon Systems Method: ModelDriven
Systems Development. PrenticeHall, 1993.
[Yourdon y Constantine 1979] E. Yourdon y B. Constantine. Structured Desing. PrenticeHall, 1979.
[Yourdon 1989] E. Yourdon. Modern Structured Analysis. PrenticeHall,
1989.
188
Captulo 5
Validacin de Requisitos
5.1
Introduccin
190
5.2
191
192
Las propiedades deseables de los requisitos seran los requisitos de los requisitos, es
decir, los metarequisitos, que siguiendo la definicin de verificacin de [ISO/IEC 1995]
(nota nmero 1), seran los requisitos establecidos para los productos resultantes de las
actividades de ingeniera de requisitos.
193
194
195
7 Derecho a que los ingenieros de requisitos describan caractersticas que hagan el producto fcil y agradable de usar. Los ingenieros
de requisitos deben participar activamente en el proceso de elicitacin de requisitos y consultar a clientes y usuarios sobre caractersticas no funcionales que desean en el sistema a desarrollar.
Si el cliente manifiesta que el sistema debe ser fcil de usar, eficiente
o robusto, es labor de los ingenieros de requisitos investigar cules
son los deseos reales del cliente y definir de forma ms precisa sus
necesidades [Goguen 1994].
8 Derecho a que los ingenieros de requisitos presenten posibilidades para adaptar los requisitos y permitir reutilizacin. En el caso
de que los ingenieros de requisitos conozcan la existencia de componentes software de funcionalidad similar a la deseada por el cliente,
es su obligacin informarle de este hecho y plantear la posibilidad de
adaptar los requisitos a las caractersticas de los componentes disponibles con el consiguiente ahorro de tiempo y dinero [Davis 1995,
pg. 24]2 , [Maiden y Ncube 1998].
9 Derecho a que se le proporcionen estimaciones sinceras de los costes de los cambios de requisitos. En el caso, ms que probable, de
que se planteen cambios en los requisitos, el cliente tiene derecho a
recibir estimaciones sinceras sobre el coste de dichos cambios para
poder decidir en consecuencia. Los desarrolladores deben ser honestos y no inflar las estimaciones del coste de aquellos cambios que
no desean implementar.
10 Derecho a recibir un sistema que satisfaga sus necesidades funcionales y de calidad. Conseguir el objetivo final, tener un sistema
que satisfaga los requisitos planteados, slo es posible si ha habido
una comunicacin fluida en ambos sentidos: clientes y usuarios han
manifestado claramente sus necesidades y los desarrolladores han
expuesto las posibles opciones y las restricciones tcnicas.
196
5.3.2
Como contrapartida a los derechos de clientes y usuarios estn sus responsabilidades, que vistas desde otro punto de vista, seran los derechos
de los desarrolladores. En [Wiegers 1999] se exponen las diez siguientes:
1 Responsabilidad de ensear a los ingenieros de requisitos las caractersticas de su negocio. Esta responsabilidad es la complementaria a los derechos a que los ingenieros de requisitos hablen el lenguaje del cliente y aprendan las caractersticas de su negocio (derechos
primero y segundo, respectivamente).
Es evidente que los ingenieros no pueden alcanzar dichos objetivos
sin la colaboracin de clientes y usuarios, y al igual que los ingenieros de requisitos no pueden asumir que los clientes y usuarios tengan conocimientos tcnicos, stos ltimos no deben esperar que los
ingenieros de requisitos conozcan todos los detalles de su negocio.
Segn [Wiegers 1999], no se trata de que los ingenieros de requisitos
se conviertan en expertos en el dominio de problemas del negocio
del cliente, sino que sean capaces de entender sus problemas y plantear soluciones.
2 Responsabilidad de dedicar el tiempo necesario para proporcionar
y clarificar los requisitos. Para poder conseguir una comunicacin
satisfactoria, es necesario que los clientes y usuarios dediquen parte
de su tiempo para mantener reuniones de elicitacin/negociacin y
de validacin, teniendo en cuenta que la naturaleza iterativa del proceso de ingeniera de requisitos har que dichas reuniones se realicen
varias veces.
Por su parte, los ingenieros de requisitos deben intentar minimizar
este tipo de reuniones que alteran el trabajo cotidiano de clientes y
usuarios, tal como se coment en el captulo 3.
3 Responsabilidad de ser especfico y preciso sobre los requisitos. La
tentacin de describir los requisitos de forma general y poco precisa
es comprensible, ya que ir teniendo en cuenta todos los posibles detalles es un proceso largo y, normalmente, tedioso. El cliente debe ser
consciente de que ceder a esta tentacin implica hacer una dejacin
de sus responsabilidades y dejar en manos de los desarrolladores la
interpretacin de sus necesidades.
197
198
199
Elicitacin/Negociacin
Elicitacin/Negociacin
Validacin
Validacin
Anlisis
Anlisis
5.3.3
La validacin de los requisitos representa un compromiso entre los clientes y los desarrolladores (ver figura 5.1). En [Wiegers 1999] se exponen
algunos de los problemas que puede producir un acuerdo si cada parte lo
entiende segn sus intereses.
Los clientes pueden considerar el acuerdo como un ritual necesario pero sin sentido, que es aceptado porque es la nica forma de que comience
el desarrollo. Esta actitud suele ir acompaada de cierto desinters en la
revisin de las especificaciones de requisitos y por lo tanto es probable
que surjan problemas durante el desarrollo. Si el cliente no recibe el producto que esperaba, suele achacarlo a la falta de profesionalidad de los
desarrolladores, en los que confi para que interpretaran correctamente
sus necesidades.
Los gestores del proyecto pueden considerar el acuerdo como una forma de congelar los requisitos [Gause y Weinberg 1989, pg. 280], y de esta
forma rechazar cualquier solicitud de cambio posterior que conllevara la
necesidad de cambios en la planificacin o en la asignacin de recursos4 ,
4
Conviene recordar que el modelo de ciclo de vida en el que las labores de gestin
de proyectos son ms sencillas es el modelo en cascada, en el que cada etapa slo se
realiza una vez. Hasta cierto punto, es entendible la actitud de querer congelar una especificacin de requisitos para eliminar incertidumbre en el desarrollo. Desgraciadamente,
los cambios son inevitables, tal como se describe en el principio no 16 de [Davis 1995],
denominado "El cambio durante el desarrollo es inevitable".
200
5.4.1 Walkthroughs
El walkthrough [Yourdon 1985, IEEE 1998] es una tcnica de revisin de productos, tradicionalmente asociada con inspecciones de cdigo, definida en
el glosario de trminos de IEEE [IEEE 1990] como:
walkthrough: tcnica de anlisis esttico en la que un programador o diseador
dirige a miembros del equipo de desarrollo u otras personas interesadas a travs de un segmento de documentacin o cdigo y los participantes realizan
comentarios sobre posibles errores, violaciones de estndares de desarrollo y
otros problemas.
201
202
Presentador: es el responsable de organizar y dirigir la sesin, de seleccionar a los participantes, entre los que debe encontrarse el autor
del producto a revisar, y de acordar con ellos la fecha y el lugar de la
reunin.
Tambin debe elegir al moderador y al registrador, entregar la documentacin a los revisores, dar una visin general del producto, resumir el estado de salida de la ltima sesin de walkthrough si la hubo,
presentar el producto y tomar la decisin final si no hay consenso
sobre el estado del producto. Adems elaborar la documentacin
resultante de la reunin.
Es relativamente frecuente que el autor y el presentador sean la misma persona.
Revisores: son los principales participantes de la sesin. Antes de
la reunin deben revisar cuidadosamente la informacin que han recibido y anotar los comentarios que desean exponer durante la reunin.
En el transcurso de sta sern participantes activos explicando dichos comentarios y realizando al autor las preguntas que consideren
necesarias para entender el producto y poder calificarlo. Son los responsables de decidir si el producto se acepta, si es necesario corregirlo y volver a convocar una reunin o si es suficiente con revisarlo.
En el caso de los walkthrough sobre especificaciones de requisitos,
los revisores sern principalmente los clientes y usuarios del producto final.
Moderador: antes de la reunin, debe aclarar los roles y responsabilidades de los asistentes con el presentador. Tambin es responsable
de reconducir la reunin si se desva de los puntos principales y de
que se realice de forma ordenada. Una vez terminada la sesin, debe
encargarse de consultar a los participantes su opinin sobre el resultado de la reunin.
Registrador: es el responsable de registrar la hora de comienzo de la
sesin, los conflictos expresados por los revisores durante la sesin,
las acciones sugeridas por stos y la hora de finalizacin de la sesin.
203
204
quisitos ya existentes. En el caso de que se hayan desarrollado prototipos, se puede aumentar la efectividad de los walkthroughs relativos a los
requisitosC de almacenamiento de informacin y funcionales realizando
los recorridos a la vez que se muestra el prototipo.
Otra posible aplicacin de la tcnica de walkthrough en ingeniera de
requisitos es su uso, dentro del grupo de desarrolladores, para recorrer los
modelos generados durante el anlisis de los requisitosC y encontrar posibles conflictos o contradicciones.
5.4.2
La utilizacin de prototipos como tcnica tanto de validacin como de elicitacin est cada vez ms extendida dentro de la prctica de la ingeniera
de requisitos [Boehm et al. 1984, Gomaa 1990, Davis 1993].
Esta tcnica permite que los usuarios tengan una idea ms clara del
producto que van a recibir, ya que su grado de comunicabilidad es ms
alto que el de las especificaciones textuales de requisitos.
Dentro de las posibles clases de prototipos, la ms interesante para las
labores de elicitacin y validacin son los prototipos de interfaz de usuario,
independientemente de que su naturaleza sea evolutiva o de usar y tirar
[Davis 1993, cap. 6], [Davis 1995, pgs. 1820]5 , o de que sean prototipos
en papel o ejecutables.
Utilizando una nomenclatura similar a la que se ha venido usando a lo
largo de este trabajo respecto a los requisitos, los prototipos de interfaz de
usuario podran denominarse como prototipos orientados a clientes/usuarios
o, abreviadamente, prototiposC.
Aquellos prototipos centrados en los aspectos funcionales que se suelen generar a partir de especificaciones formales y que no suelen incluir
aspectos de interfaz de usuario seran los prototipos orientados a los desarrolladores o, abreviadamente, prototiposD, cuyo uso principal sera la comprobacin de propiedades de los modelos desarrollados durante el anlisis
de los requisitos, tal como se coment en el captulo anterior.
Principios no 11 "Construir la clase correcta de prototipo", no 12 "Construir las caractersticas correctas en un prototipo"y no 13 "Construir prototipos rpidamente".
5
205
Validar los
Validar los
requisitos no
requisitos no
funcionales
funcionales
Cerrar
Cerrarlala
versin de los
versin de los
requisitos
requisitos
206
prototipos de interfaz de usuario permite una validacin conjunta de forma sencilla guiada por los requisitos funcionales descritos como casos de
uso, teniendo siempre en cuenta las relaciones de rastreabilidad establecidas entre los requisitos de almacenamiento de informacin y los requisitos
funcionales.
Los productos resultantes de esta tarea seran los requisitos de almacenamiento de informacin, los requisitos funcionales y el prototipo validados total o parcialmente. En el caso de que se descubran conflictos durante
la validacin, stos seran tambin productos de esta tarea y deberan resolverse en nuevas sesiones de elicitacin/negociacin (ver captulo 3).
Como ya se ha comentado, las tcnicas recomendadas para la realizacin de esta tarea son una combinacin de walkthrough de los casos de
uso y de utilizacin de prototipos de interfaz de usuario para ayudar a los
clientes y usuarios a revisar la documentacin de requisitos y, en el caso
de que aparezcan conflictos, las plantillas para conflictos descritas en la
seccin 3.6.6 (pg. 95).
5.6. Conclusiones
207
5.6 Conclusiones
En este captulo se han estudiado algunos aspectos relacionados con la validacin de requisitos. Se han comentado los declogos de [Wiegers 1999],
como forma de llegar a acuerdos previos sobre los derechos y responsabilidades de los participantes en el proceso de ingeniera de requisitos, y su
declaracin de acuerdo como una forma consensuada de cerrar versiones
de los requisitos.
Dentro de las tcnicas de validacin se ha prestado especial atencin al
walkthrough y a los prototipos, especialmente a los de interfaz de usuario,
que desde nuestro punto de vista son los ms interesantes en la fase de
ingeniera de requisitos y especialmente durante las actividades de elicitacin y validacin, en las que la comunicacin con los clientes es lo ms
importante.
Tambin se ha presentado la propuesta metodolgica para la validacin de requisitos, en la que se ha optado por recomendar una combinacin de walktrhoughs, casos de uso y prototipado como la tcnica que ms
se adapta a las necesidades de la validacin. Al igual que en anlisis, los
requisitos no funcionales siguen necesitando de un mayor estudio que los
integre en los procesos de validacin mediante algn tipo de prototipado
o alguna otra tcnica.
5.7 Bibliografa
[Berry y Lawrence 1998] D. M. Berry y B. Lawrence. Requirements Engineering. IEEE Software, 15(2):2629, Marzo/Abril 1998.
[Boehm et al. 1984] B. W. Boehm, T. E. Gray, y T. Seewalt. Prototyping versus Specifying: A Multiproject Experiment. IEEE Transactions on Software Engineering, 10(3):290303, Mayo 1984. Tambin aparece en [Thayer
y Dorfman 1990].
208
[Boehm 1984] B. W. Boehm. Verifying and Validating Software Requirements and Design Specifications. IEEE Software, 1(1):7588, Enero 1984.
Tambin aparece en [Thayer y Dorfman 1990].
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Caete et al. 2000] J. M. Caete, F. J. Galn, y M. Toro. An Application
Framework for the Execution of UML/OCL Models. En Actas de las V
Jornadas de Trabajo Menhir, Granada, 2000.
[Christel y Kang 1992] M. G. Christel y K. C. Kang. Issues in Requirements Elicitation. Technical Report CMU/SEI92TR12, Software Engineering Institute, Carnegie Mellon University, 1992. Disponible en
http://www.sei.cmu.edu.
[Davis 1993] A. M. Davis. Software Requirements: Objects, Functions and
States. PrenticeHall, 2a edicin, 1993.
[Davis 1995] A. M. Davis. 201 Principles of Software Development. McGraw
Hill, 1995.
[ESP 1996] ESPITI European User Survey Results. Informe Tcnico
ESI1996TR95104, European Software Institute, 1996. Disponible en
http://www.esi.es.
[Fairley y Thayer 1997] R. E. Fairley y R. H. Thayer. The Concept of Operations: The Bridge from Operational Requirements to Technical Specifications. En Thayer y Dorfman [1997], pginas 7383.
[Galn 2000] F. J. Galn. Formalizaciones para Sistemas Software Orientados
a Objetos. Tesis doctoral, Universidad de Sevilla, 2000. Pendiente de
presentacin.
[GAO 1979] Contracting for Computer Software Development: Serious
Problems Require Management Attention to Avoid Wasting Additional Millions. Report FGMSD804, U. S. Government Account Office,
Noviembre 1979. Este documento es difcil de encontrar, pero est comentado y referenciado, entre otros, en [Davis 1993], [Christel y Kang
1992] y [Goguen 1994].
[Gause y Weinberg 1989] D. C. Gause y G. M. Weinberg. Exploring Requirements: Quality Before Design. Dorset House, 1989.
5.7. Bibliografa
209
[Goguen y Linde 1993] J. A. Goguen y C. Linde. Techniques for Requirements Elicitation. En Proceedings of the First International Symposium on
Requirements Engineering, 1993. Tambin aparece en [Thayer y Dorfman
1997]. Disponible en http://www.cse.ucsd.edu/goguen.
[Goguen 1993] J. A. Goguen. Social Issues in Requirements Engineering.
En Proceedings of the First International Symposium on Requirements Engineering, 1993. Disponible en http://www.cse.ucsd.edu/goguen.
[Goguen 1994] J. A. Goguen. Requirements Engineering as the Reconciliation of Social and Technical Issues. En Requirements Engineering: Social
and Technical Issues, pginas 165199. Academic Press, 1994. Disponible
en http://www.cse.ucsd.edu/goguen.
[Gomaa 1990] H. Gomaa. The Impact of Prototyping on Software System
Engineering. En Thayer y Dorfman [1990], pginas 543552. Aparece
tambin en [Thayer y Dorfman 1997].
[Hollocker 1990] C. P. Hollocker. A Review Process Mix. En Thayer y
Dorfman [1990], pginas 485491.
[IEEE 1990] IEEE. IEEE Standard Glossary of Software Engineering Terminology. IEEE Standard 610.121990, Institute of Electrical and Electronics Engineers, 1990.
[IEEE 1995a] IEEE. IEEE Guide for Developing Software Life Cycle Processes. IEEE/ANSI Standard 1074.11995, Institute of Electrical and
Electronics Engineers, 1995.
[IEEE 1995b] IEEE. IEEE Standard for Developing Software Life Cycle
Processes. IEEE/ANSI Standard 10741995, Institute of Electrical and
Electronics Engineers, 1995.
[IEEE 1997] IEEE. IEEE Software Engineering Standards Collection. Institute
of Electrical and Electronics Engineers, 1997.
[IEEE 1998] IEEE.
IEEE Guide for Software Reviews and Audits.
IEEE/ANSI Standard 10281988, Institute of Electrical and Electronics
Engineers, 1998.
[ISO/IEC 1995] ISO/IEC. Information TechnologySoftware Life Cycle
Processes. International Standard 12207 : 1995, International Organization for Standarazition, 1995.
210
[Maiden y Ncube 1998] N. A. Maiden y C. Ncube. Acquiring COTS Software Selection Requirements. IEEE Software, 15(2), Marzo/Abril 1998.
[Piattini et al. 1996] M. G. Piattini, J. A. Calvo-Manzano, J. Cervera, y
L. Fernndez. Anlisis y Diseo Detallado de Aplicaciones Informticas de
Gestin. rama, 1996.
[Pohl 1997] K. Pohl. Requirements Engineering: An Overview. Encyclopedia of Computer Science and Technology, 36, 1997.
Disponible en http://sunsite.informatik.rwth-aachen.de/CREWS
/reports96.htm.
[Pressman 1997] R. S. Pressman. Ingeniera del Software. Un Enfoque Prctico. McGrawHill, 4a edicin, 1997.
[Raghavan et al. 1994] S. Raghavan, G. Zelesnik, y G. Ford. Lecture Notes
on Requirements Elicitation. Educational Materials CMU/SEI94EM
10, Software Engineering Institute, Carnegie Mellon University, 1994.
Disponible en http://www.sei.cmu.edu.
[Rat 1997] Rational Software Corporation. Object Constraint LanguaDisponible en
ge Specification, 1.1 edicin, Septiembre 1997.
http://www.rational.com.
[Sawyer y Kontoya 1999] P. Sawyer y G. Kontoya. SWEBOK: Software Requirements Engineering Knowledge Area Description. Informe Tcnico Versin 0.5, SWEBOK Project, 1999.
Disponible en
http://www.swebok.org.
[Thayer y Dorfman 1990] R. H. Thayer y M. Dorfman, editores. System
and Software Requirements Engineering. IEEE Computer Society Press,
1990.
[Thayer y Dorfman 1997] R. H. Thayer y M. Dorfman, editores. Software Requirements Engineering. IEEE Computer Society Press, 2a edicin,
1997. Es la 2a edicin de [Thayer y Dorfman 1990].
[TSG 1995] TSG. The CHAOS Report. The Standish Group, 1995. Disponible en http://www.standishgroup.com/chaos.html.
[Wallace y Ippolito 1997] D. Wallace y L. Ippolito. Verifying and Validating Software Requirements Specifications. En Thayer y Dorfman
[1997], pginas 389404.
5.7. Bibliografa
211
[Warmer y Kleppe 1999] J. B. Warmer y A. G. Kleppe. The Object Constraint Language: Precise Modeling with UML. AddisonWesley, 1999.
[Wiegers 1999] K. Wiegers.
Customer Rights and Responsabilities.
Software Development, Diciembre 1999.
Disponible en
http://www.sdmagazine.com/breakrm/features/s9912f2.
shtml.
[Wieringa 1996] R. J. Wieringa. Requirements Engineering: Frameworks for
Understanding. John Wiley & Sons, 1996.
[Yourdon 1985] E. Yourdon. Structured Walkthroughs. PrenticeHall, 3a
edicin, 1985.
212
Captulo 6
Conclusiones y trabajo futuro
6.1
Conclusiones
214
Afortunadamente, la existencia de esta gran distancia es algo que empieza a tenerse en cuenta en la comunidad acadmica. Por ejemplo, estableciendo como criterios de aceptacin de artculos en congresos sobre
ingeniera de requisitos que se aborden propuestas contrastadas con al menos un proyecto real que contribuyan a reducir la distancia entre investigacin y prctica [Berry y Lawrence 1998, Cheng y Weiss 2000].
Las ideas expuestas en esta tesis tienen como objetivo reducir dicha
distancia. Han evolucionado enormemente a travs de su aplicacin en
numerosas prcticas acadmicas realizadas por alumnos de las universidades de Sevilla, Salamanca y Valladolid y estn siendo usadas en tres
proyectos reales de Sadiel S.A. de forma satisfactoria.
De su aplicacin en proyectos reales no disponemos de datos cuantitativos que apoyen la informacin cualitativa obtenida de los responsables
de los proyectos, por ejemplo comparaciones de costes entre proyectos que
usen o no las ideas presentadas.
Esto nos lleva a otra conclusin: la dificultad de la experimentacin en
ingeniera del software y, especficamente, en ingeniera de requisitos.
6.1.2
La dificultad de la experimentacin
6.1.3
6.1. Conclusiones
215
En una encuesta realizada como parte del ISRE95 [Macaulay y Mylopoulos 1996] en la que se preguntaba a los responsables de desarrollo
de varias empresas europeas y norteamericanas sobre las cualidades que
desearan encontrar en los ingenieros de requisitos, las respuestas consideraban ms importantes las habilidades de comunicacin, asimilacin y expresin de informacin, de trabajar en entornos en los que la ambigedad
y el cambio estn presentes, tener una mente abierta e incluso tener sentido del humor, por encima de un conocimiento puramente tecnolgico.
Respecto a la formacin deseada, aparte de algn ttulo relacionado
con ingeniera de software, se citaba la posibilidad de tener formacin sobre aspectos empresariales o en psicologa.
En otras palabras, parece que los aspectos de inteligencia emocional, especialmente la empata [Goleman 1996, Goleman 1999], son tan importantes o ms en el ingeniero de requisitos que los puramente tcnicos, o al
menos as piensan los responsables de la contratacin de este tipo de profesionales.
Si se comparan estos resultados con los ofrecidos en el mismo informe citado anteriormente sobre la educacin en ingeniera de requisitos en
varias universidades europeas y norteamericanas, es evidente que la distancia entre investigacin y prctica se mantiene tambin entre formacin
y prctica.
Las ideas presentadas en esta memoria se han utilizado principalmente
con alumnos, teniendo como objetivo acercar su formacin lo ms posible
a la problemtica real. Sin embargo, hay que reconocer que la imposibilidad de contar con clientes y usuarios reales hace muy difcil conseguir
este objetivo.
6.1.4
Comparado las caractersticas del entorno metodolgico presentado en esta tesis, incluyendo el prototipo de herramienta CASE descrito en el apndice E, con las guas para incrementar la madurez del proceso de ingeniera de requisitos del proyecto europeo REAIMS [Sommerville y Sawyer
1997, Sawyer et al. 1997], los resultados, que pueden verse detalladamente
en las figuras 6.1 y 6.2 son los siguientes:
General: de las 57 guas propuestas, las metodologas presentadas
siguen 41, un 72%
Guas bsicas: de las 10 guas bsicas, se siguen 7, un 70%
216
217
6.1. Conclusiones
Guas de nivel Repetible
Buscar restricciones del dominio
Registrar el porqu de los requisitos
Obtener requisitos desde distintos puntos de vista
Prototipar los requisitos con dificultades de comprensin
Usar escenarios para elicitar requisitos
Definir los procesos operacionales actuales
Clasificar los requisitos con un enfoque multidimensional
Usar matrices de interaccin para encontrar conflictos y solapamientos
Especificar los requisitos de forma cuantitativa
Usar mtodos organizados para el modelado del sistema
Usar un diccionario de datos
Documentar los enlaces entre los requisitos y los modelos del sistema
Usar prototipos para animar los requisitos
Escribir un borrador del manual de usuario
Proponer casos de prueba para los requisitos
Usar una base de datos para gestionar requisitos
Definir polticas para gestionar los cambios
Identificar requisitos globales del sistema
Guas de nivel Definido
Reutilizar requisitos
Valorar los riesgos de los requisitos
Describir los modelos del sistema en lenguaje natural
Identificar requisitos voltiles
Registrar los requisitos rechazados
218
219
Desarrollo de herramientas CASE de soporte: el xito de una propuesta metodolgica depende en gran medida de la existencia de
herramientas de CASE que la soporten. En el apndice E se describe un prototipo de herramienta CASE para el entorno metodolgico
descrito en esta tesis. En un futuro, dicho prototipo deber ir incorporando nuevas funcionalidades que se detecten como necesarias
con la experiencia de su utilizacin.
Dentro de las posibles ventajas del uso del prototipo descrito en el
apndice E est la posibilidad de disponer de un nmero considerable de proyectos de ingeniera de requisitos en un formato normalizado y abierto, al almacenarse en bases de datos de Microsoft Access.
La utilizacin de este prototipo en las universidades de Sevilla, Salamanca y Valladolid puede permitir disponer a corto plazo de un
nmero importante de proyectos sobre los que investigar distintas
propiedades como descubrir nuevos patronesR, desarrollar mtricas, etc.
6.2.2
Reutilizacin de requisitos
Una de las caractersticas de un proceso de desarrollo maduro es la reutilizacin [Sommerville y Sawyer 1997, Paulk et al. 1993]. En los captulos 3
y 4 se apuntaron algunas posibilidades para reutilizar requisitos, que sin
embargo no son ms que unas primeras aproximaciones al problema.
En un futuro, la reutilizacin debera contemplarse explcitamente en
el modelo de procesos, as como tener un soporte automatizado como los
repositorios descritos en [Garca 2000].
Sin embargo, los principales motivos de aplicar tcnicas de reutilizacin en ingeniera de requisitos, al menos desde nuestro punto de vista, no
es simplemente reducir costes e incrementar la calidad, que evidentemente
son fundamentales. En nuestra opinin, la introduccin sistemtica de la
reutilizacin en ingeniera de requisitos puede llevar a un cambio radical
en los planteamientos habituales sobre el proceso a seguir, conduciendo
hacia una ingeniera de requisitos basada en componentes, de forma similar a
como ya se est produciendo a nivel de implementacin.
Idealmente, podra llegarse a situaciones en las que, si el ingeniero de
requisitos dispone de un repositorio lo suficientemente rico, el proceso
elicitacinanlisisvalidacin se vea sustituido por otro en el que, en funcin de las necesidades del cliente, se obtuvieran los requisitos seleccio-
220
6.2.3
221
conseguir un determinado objetivo, hubiera una seccin en el manual de usuario con un ttulo similar a "Cmo hacer X?". En esta
seccin se describiran, paso a paso, las instrucciones necesarias de
forma similar a como estn descritos los casos de uso.
Generacin de cdigo: la evolucin de los lenguajes de programacin ha provocado que la distancia semntica entre stos y los modelos conceptuales disminuya considerablemente. Si a sto unimos
las heursticas conocidas para transformar ciertos modelos en cdigo
equivalente, es normal que uno de los deseos de los desarrolladores
sea que el cdigo que deben escribir manualmente se genere a partir
de modelos de ms alto nivel.
Los modelos conceptuales que se realizan durante el anlisis, es decir
los requisitosD, normalmente no contienen todos los detalles necesarios para poder generar completamente el cdigo de la aplicacin
final, aunque si podra generarse parte de l o, al menos, prototipos
funcionales como los descritos en [Corchuelo 1999] y [Galn 2000].
Aplicar las heursticas conocidas y descubrir otras nuevas para generar cdigo a partir de los requisitosD es, sin duda, una de las bazas
que puede hacer que la ingeniera de requisitos cambie su imagen en
los entornos no acadmicos.
222
6.3
Bibliografa
[Berry y Lawrence 1998] D. M. Berry y B. Lawrence. Requirements Engineering. IEEE Software, 15(2):2629, Marzo/Abril 1998.
[Boehm et al. 1984] B. W. Boehm, T. E. Gray, y T. Seewalt. Prototyping versus Specifying: A Multiproject Experiment. IEEE Transactions on Software Engineering, 10(3):290303, Mayo 1984. Tambin aparece en [Thayer
y Dorfman 1990].
[Cheng y Weiss 2000] B. H. C. Cheng y D. M. Weiss. Requirements Engineering: Integrating Technology. IEEE Software, 17(3):2836, Mayo/Junio 2000.
[Corchuelo 1999] R. Corchuelo. Prototipado de Especificaciones de Sistemas
Distribuidos Basadas en Retricciones. Aplicacin al Lenguaje TESORO. Tesis
doctoral, Universidad de Sevilla, 1999.
[Davis 1998] A. M. Davis. The Harmony in Rechoirments. IEEE Software,
15(2):68, Marzo/Abril 1998.
[DoD 1994] DoD.
Military Standard 498: Software Development and
Documentation. Departament of Defense of the United States of
America, 1994. Disponible en http://www-library.itsi.disa.
mil/mil std/498 win3.exe.
[Galn 2000] F. J. Galn. Formalizaciones para Sistemas Software Orientados
a Objetos. Tesis doctoral, Universidad de Sevilla, 2000. Pendiente de
presentacin.
[Garca 2000] F. J. Garca. Modelo de Reutilizacin Soportado por Estructuras
Complejas de Reutilizacin Denominadas Mecanos. Tesis doctoral, Universidad de Salamanca, 2000.
[Goleman 1996] D. Goleman. La Inteligencia Emocional. Kairs, 1996.
[Goleman 1999] D. Goleman. La Prctica de la Inteligencia Emocional. Kairs, 1999.
6.3. Bibliografa
223
http://www.jrcase.mq.edu.au/didar/seweb/training.html.
[Paulk et al. 1993] M. C. Paulk, B. Curtis, M. B. Chrissis, y C. V. Weber.
Capability Maturity Model for Software, Version 1.1. Technical Report
CMU/SEI93TR024, Software Engineering Institute, Carnegie Mellon University, 1993. Disponible en http://www.sei.cmu.edu.
[Sawyer et al. 1997] P. Sawyer, I. Sommerville, y S. Viller. Requirements
Process Improvement through The Phased Introduction of Good Practice. Software Process Improvement and Practice, 3(1), 1997. Disponible en
http://www.comp.lancs.ac.uk/computing/research/cseg/
reaims/publications.html.
[Sheptunov 1999] Bogdan Sheptunov. Comunicacin privada sobre la aplicacin de la MILSTD498. Tessart Corp., 1999.
[Sommerville y Sawyer 1997] I. Sommerville y P. Sawyer. Requirements
Engineering: A Good Practice Guide. Wiley, 1997.
[Thayer y Dorfman 1990] R. H. Thayer y M. Dorfman, editores. System
and Software Requirements Engineering. IEEE Computer Society Press,
1990.
224
Apndice A
La ingeniera de requisitos en
algunas normas de desarrollo de
software
En este apndice se analizan los aspectos relacionados con la ingeniera de
requisitos en algunas normas de desarrollo de software, principalmente
las actividades que proponen y los productos que describen.
En concreto, se estudian dos normas norteamericanas, las del IEEE
[IEEE 1997] y las del Departamento de Defensa de los Estados Unidos
[DoD 1994], y dos normas europeas, las de la Agencia Espacial Europea
[Mazza et al. 1994, Mazza et al. 1996] y la del Ministerio de Administraciones Pblicas de Espaa [MAP 1995].
A.1
225
226
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
CSCI 1
CSCI 1
Anlisis de
Anlisis de
Requisitos
Requisitos
de Sistema
de Sistema
Diseo de
Diseo de
Sistema
Sistema
SRS
CSCI 2
CSCI 2
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
SSS
SSDD
SRS
227
Concepto similar a los casos de uso [Jacobson et al. 1993, Booch et al. 1999].
El trmino concept se define en [Webster 1990] como idea o nocin general. El concepto
operacional podra entenderse como las ideas generales de funcionamiento del sistema.
7
Apartado Description/Purpose del Data Item Description correspondiente al Operational
Concept Description (DIIPSIC81430).
6
228
229
230
Requisitos de hardware
Requisitos de utilizacin de recursos hardware
Requisitos de software
Requisitos de comunicaciones
231
1 mbito
1.1 Identificacin
1.2 Descripcin del sistema
1.3 Descripcin del documento
2 Documentos referenciados
3 Decisiones de diseo a nivel de sistema
4 Diseo de la arquitectura del sistema
4.1 Componentes del sistema
4.2 Concepto de ejecucin
4.3 Diseo de interfaces
4.3.1 Diagramas e identificacin de interfaces
4.3.x (interfaz)
5 Notas
A Apndices
232
Requisitos de hardware
Requisitos de utilizacin de recursos hardware
Requisitos de software
Requisitos de comunicaciones
233
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
CSCI 1
CSCI 1
Anlisis de
Anlisis de
Requisitos
Requisitos
de Sistema
de Sistema
Diseo de
Diseo de
Sistema
Sistema
SRS
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
CSCI 2
CSCI 2
CSCI 3
CSCI 3
OCD
SSS
SSDD
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
SRS
SRS
Anlisis de
Anlisis de
Requisitos
Requisitos
de Sistema
de Sistema
OCD
SSS
Opcin A
Anlisis de
Anlisis de
Requisitos
Requisitos
de Sistema
de Sistema
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
OCD
SRS
Opcin B
234
Dentro del contexto de las normas ISO/IEC e IEEE 12207, evaluar equivale a verificar
en el sentido que se le dio en el captulo 5.
235
Procesos de apoyo al
Procesos de apoyo al
ciclo de vida
ciclo de vida
Adquisicin
Documentacin
Suministro
Gestin de
configuracin
Aseguramiento
de calidad
Desarrollo
Operacin
Verificacin
Validacin
Revisin conjunta
Mantenimiento
Auditora
Resolucin de
problemas
Procesos de organizacin del ciclo de vida
Procesos de organizacin del ciclo de vida
Gestin
Infraestructura
Mejora
Formacin
Figura A.8: Procesos del ciclo de vida del software segn la norma
ISO/IEC/IEEE 12207
236
Diseo de la
Diseo de la
Arquitectura
Arquitectura
del Sistema
del Sistema
SRS
SI 2
SI 2
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
SI 3
SI 3
SyRS
SyAD
Anlisis de
Anlisis de
Requisitos
Requisitos
Software
Software
SRS
SRS
1 Introduccin
1.1 Propsito del sistema
1.2 mbito del sistema
1.3 Definiciones, acrnimos y abreviaturas
1.4 Referencias
1.5 Visin general del sistema
2 Descripcin general del sistema
2.1 Contexto del sistema
2.2 Estados y modos del sistema
2.3 Capacidades principales del sistema
2.4 Condiciones principales del sistema
2.5 Restricciones principales del sistema
2.6 Caractersticas de los usuarios
2.7 Suposiciones y dependencias
2.8 Escenarios operacionales
3 Capacidades, condiciones y restricciones del sistema
3.1 Caractersticas fsicas
3.1.1
3.1.2
3.1.3
3.1.4
Construccin
Durabilidad
Adaptabilidad
Condiciones del entorno
237
238
1 Introduccin
1.1 Propsito
1.2 mbito
1.3 Definiciones, acrnimos y abreviaturas
1.4 Referencias
1.5 Visin general
2 Descripcin general
2.1 Perspectiva del producto
1.2 Funciones del producto
1.3 Caractersticas de los usuarios
1.4 Restricciones
1.5 Suposiciones y dependencias
3 Requisitos especficos
3.1 Requisitos de interfaces externos
3.1.1
3.1.2
3.1.3
3.1.4
Interfaces de usuario
Interfaces hardware
Interfaces software
Interfaces de comunicacin
239
240
URD
Definicin de
Definicin de
Requisitos
Requisitos
Software
Software
SRD
241
242
1 Introduccin
1.1 Propsito
1.2 mbito
1.3 Definiciones, acrnimos y abreviaturas
1.4 Referencias
1.5 Estructura del documento
2 Descripcin general
2.1 Perspectiva del producto
2.2 Capacidades generales
2.3 Restricciones generales
2.4 Caractersticas de los usuarios
2.5 Entorno operacional
2.6 Suposiciones y dependencias
3 Requisitos especficos
3.1 Requisitos de capacidades
3.2 Requisitos de restricciones
A Apndices
1 Introduccin
1.1 Propsito
1.2 mbito
1.3 Definiciones, acrnimos y abreviaturas
1.4 Referencias
1.5 Estructura del documento
2 Descripcin general
2.1 Relacin con proyectos actuales
2.2 Relacin con proyectos previos y posteriores
2.3 Funcin y propsito
2.4 Consideraciones de entorno
2.5 Relacin con otros sistemas
2.6 Restricciones generales
2.7 Descripcin del modelo
3 Requisitos especficos
3.1 Requisitos funcionales
3.2 Requisitos de rendimiento
3.3 Requisitos de interfaz
3.4 Requisitos de operacionales
3.5 Requisitos de recursos
3.6 Requisitos de verificacin
3.7 Requisitos de pruebas de aceptacin
3.8 Requisitos de documentacin
3.9 Requisitos de privacidad
3.10 Requisitos de portabilidad
3.11 Requisitos de calidad
3.12 Requisitos de fiabilidad
3.13 Requisitos de mantenibilidad
3.14 Requisitos de seguridad
4 Matriz de rastreabilidad de requisitos
A Apndices
243
244
Anlisis de Sistemas
Anlisis de Sistemas
Anlisis de
Especificacin
Anlisis de
Especificacin
Requisitos
Funcional del
Requisitos
Funcional del
del Sistema
Sistema
del Sistema
Sistema
APL 1
APL 1
DRS
Plan de
Plan de
Sistemas de
Sistemas de
Informacin
Informacin
PSI
EFS
PPRB
Anlisis de Sistemas
Anlisis de Sistemas
Anlisis de
Especificacin
Anlisis de
Especificacin
Requisitos
Funcional del
Requisitos
Funcional del
del Sistema
Sistema
del Sistema
Sistema
APL 2
APL 2
APL 3
APL 3
DRS
EFS
Anlisis de Sistemas
Anlisis de Sistemas
Anlisis de
Especificacin
Anlisis de
Especificacin
Requisitos
Funcional del
Requisitos
Funcional del
del Sistema
Sistema
del Sistema
Sistema
DRS
EFS
PPRB
PPRB
245
246
247
Especificar la interfaz de usuario del sistema mediante la construccin de prototipos que permitan a los usuarios tener una
idea ms concreta del producto que van a recibir (actividad EFS
4, Definir Interfaces de Usuario).
Elicitar y especificar los requisitos no funcionales que no se hayan tenido en cuenta hasta el momento (actividad EFS 5, Completar Especificaciones del Sistema).
Verificar y validar los modelos desarrollados con respecto a los
requisitos elicitados (tarea EFS 6.3, Verificacin y Validacin de la
Especificacin Funcional del Sistema).
Comenzar a desarrollar el Plan de Pruebas del Sistema (PPRB),
que se completar en fases posteriores.
En el borrador de la versin 3 de Mtrica [CSJ 2000], las actividades relacionadas con la ingeniera de requisitos no han sufrido grandes cambios
comparadas con la versin anterior (ver figuras A.15 y A.18). Las diferencias ms significativas son las siguientes:
Se ha simplificado la estructura de Mtrica V2.1 eliminando los mdulos, de forma que la metodologa se estructura en procesos actividades tareas, en lugar de hacerlo en fases mdulos actividades
tareas.
Se han cambiado los nombres de los procesos relacionados con la ingeniera de requisitos, de forma que el mdulo Anlisis de Requisitos
del Sistema (ARS) pasa a ser el proceso Estudio de Viabilidad del Sistema
(EVS) y el mdulo Especificacin Funcional del Sistema (EFS) pasa a ser
el proceso Anlisis del Sistema de Informacin (ASI).
Se ha cambiado el orden de las actividades dentro del EVS con respecto al ARS, de forma que ahora se antepone el estudio de la situacin actual (actividad AVS 2) a la definicin de requisitos y al estudio
de alternativas (actividades AVS 36).
Se han introducido los casos de uso como tcnica de elicitacin y
especificacin de requisitos de forma similar a la propuesta en este
trabajo, y se han incorporado tcnicas orientadas a objetos para el
modelado de los requisitos.
Probablemente porque se trata an de un borrador, no se incluyen
definiciones detalladas de los documentos resultantes similares a las
incluidas en la versin 2.1.
248
Anlisis del
Anlisis del
Sistema de
Sistema de
Informacin
Informacin
APL 1
APL 1
EVS
Planificacin
Planificacin
de Sistemas de
de Sistemas de
Informacin
Informacin
PPRB
ERS
Estudio de
Estudio de
Viabilidad
Viabilidad
del Sistema
del Sistema
APL 2
APL 2
Anlisis del
Anlisis del
Sistema de
Sistema de
Informacin
Informacin
APL 3
APL 3
PSI
EVS
Estudio de
Estudio de
Viabilidad
Viabilidad
del Sistema
del Sistema
EVS
PPRB
ERS
Anlisis del
Anlisis del
Sistema de
Sistema de
Informacin
Informacin
ERS
PPRB
A.5 Conclusiones
En este apndice se han estudiado los aspectos relativos a la ingeniera de
requisitos en varias normas de desarrollo.
La estructura de las actividades que proponen es similar, comenzando
a nivel de sistema para identificar y desarrollar posteriormente los distintos elementos software identificados.
En general, todas las normas estudiadas realizan una divisin entre
requisitosC y requisitosD, aunque son las normas europeas (ESAPSS
05 y Mtrica) las que ms inciden en esta diferencia.
Sin embargo, la nomenclatura empleada difiere bastante en cada caso.
As, las MILSTD498 incluye los requisitosC en el denominado concepto
operacional, la ISO 12207 no deja del todo claro dnde deben aparecer los
requisitosC, la ESAPSS05 los denomina requisitos de usuario y Mtrica
los incluye tanto en los productos resultantes de las actividades de elicitacin (mdulo ARS en la versin 2.1 y proceso EVS en la versin 3) como en
los propiamente de anlisis (mdulo EFS en la versin 2.1 y proceso ASI
en la versin 3).
A.6. Bibliografa
249
A.6
Bibliografa
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[CSJ 2000] CSJ. Metodologa de Planificacin, Desarrollo y Mantenimiento de Sistemas de Informacin. MTRICA Versin 3 (Borrador).
Borrador, Consejo Superior de Informtica, 2000. Disponible en
http://www.map.es/csi/pg5m42.htm.
Military Standard 498: Software Development and
[DoD 1994] DoD.
Documentation. Departament of Defense of the United States of
America, 1994. Disponible en http://www-library.itsi.disa.
mil/mil std/498 win3.exe.
[Dorfman y Thayer 1990] M. Dorfman y R. H. Thayer, editores. Standards,
Guidelines, and Examples on System and Software Requirements Engineering.
IEEE Computer Society Press, 1990.
[EIA/IEEE 1996] EIA/IEEE. Software Development and Documentation
JSTD016. Standard, EIA, 1996. Este documento se incluye en [Dorf13
250
A.6. Bibliografa
251
[Jacobson et al. 1993] I. Jacobson, M. Christerson, P. Jonsson, y G. vergaard. ObjectOriented Software Engineering: A Use Case Driven Approach.
AddisonWesley, 4a edicin, 1993.
[MAP 1995] MAP. Metodologa de Planificacin y Desarrollo de Sistemas de
Informacin. MTRICA Versin 2.1. Tecnos/Ministerio para las Administraciones Pblicas, 1995.
[Mazza et al. 1994] C. Mazza, J. Fairclough, B. Melton, D. de Pablo,
A. Scheffer, y R. Stevens. Software Engineering Standards. PrenticeHall,
1994. Disponible en http://dxsting.cern.ch/sting/ESA.txt.
[Mazza et al. 1996] C. Mazza, J. Fairclough, B. Melton, D. de Pablo,
A. Scheffer, R. Stevens, M. Jones, y G. Alvisi. Software Engineering Guides. PrenticeHall, 1996.
[Moore et al. 1997] J. W. Moore, P. R. DeWesse, y D. Rilling. U. S.
Software Lifecycle Process Standards, 1997. Disponible en http://
www.stsc.hill.af.mil/crosstalk/1997/jul/lifecycle.asp.
[Ruggier 1998] M. Ruggier. PSS05 User Requirements Document Template,
1998. Disponible en http://framemaker.cern.ch/pss05.
[Sheptunov 1999] Bogdan Sheptunov. Comunicacin privada sobre la aplicacin de la MILSTD498. Tessart Corp., 1999.
[Singh 1999] R. Singh. An Introduction to International Standard ISO/IEC
12207. Informe tcnico, Federal Aviation Administration, 1999. Disponible en http://www.abelia.com.
[Webster 1990] Webster. Websters Dictionary of the English Language. Portland House, 1990.
252
Apndice B
Metodologa para la elicitacin de
requisitos de sistemas de
informacin
B.1
Objetivo de la metodologa
254
B.2.1
B.2.1.1
Objetivos
255
B.2.1.2 Descripcin
Antes de mantener las reuniones con los clientes y usuarios e identificar
los requisitos es fundamental conocer el dominio del problema y los contextos organizacional y operacional, es decir, la situacin actual.
Enfrentarse a un desarrollo sin conocer las caractersticas principales ni
el vocabulario propio de su dominio suele provocar que el producto final
no sea el esperado por clientes ni usuarios.
Por otro lado, mantener reuniones con clientes y usuarios sin conocer
las caractersticas de su actividad har que probablemente no se entiendan sus necesidades y que su confianza inicial hacia el desarrollo se vea
deteriorada enormemente.
Esta tarea es opcional, ya que puede que no sea necesario realizarla si
el equipo de desarrollo tiene experiencia en el dominio del problema y el
sistema actual es conocido.
B.2.1.3 Productos internos
Informacin recopilada: libros, artculos, folletos comerciales, desarrollos previos sobre el mismo dominio, etc.
Modelos del sistema actual.
B.2.1.4 Productos entregables
Introduccin, participantes en el proyecto, principalmente clientes y
desarrolladores, y descripcin del sistema actual como parte del DRS
(ver secciones B.3.1.5B.3.1.7, pgs. 264265).
B.2.1.5
Tcnicas recomendadas
Obtener informacin de fuentes externas al negocio del cliente: folletos, informes sobre el sector, publicaciones, consultas con expertos,
etc.
En el caso de que se trate de un dominio muy especfico puede ser
necesario recurrir a fuentes internas al propio negocio del cliente, en
cuyo caso pueden utilizarse las tcnicas auxiliares de elicitacin de
requisitos como el estudio de documentacin, observacin in situ,
256
Productos internos
Notas tomadas durante las reuniones, transcripciones o actas de reuniones, formularios, grabaciones en cinta o vdeo de las reuniones o
cualquier otra documentacin que se considere oportuna.
B.2.2.4 Productos entregables
Participantes en el proyecto, en concreto los usuarios participantes,
como parte del DRS (ver seccin B.3.1.6, pg. 264).
257
Objetivos, requisitos o conflictos, que se hayan identificado claramente durante las sesiones de elicitacin, como parte del DRS (ver
secciones B.3.1.8B.3.1.9 y B.3.1.17, pgs. 265265 y 267)
B.2.2.5
Tcnicas recomendadas
Descripcin
258
B.2.3.5
Tcnicas recomendadas
B.2.4
B.2.4.1 Objetivos
Identificar los requisitos de almacenamiento de informacin que deber cumplir el sistema software a desarrollar.
Revisar, en el caso de que haya conflictos, los requisitos de almacenamiento de informacin previamente identificados.
B.2.4.2
Descripcin
Productos internos
Productos entregables
259
Descripcin
Productos internos
260
B.2.5.5
Tcnicas recomendadas
B.2.6
B.2.6.1
Objetivos
Descripcin
261
Requisitos de fiabilidad
Los requisitos de fiabilidad deben establecer los factores que se requieren para la fiabilidad del software en tiempo de explotacin. La
fiabilidad mide la probabilidad del sistema de producir una respuesta satisfactoria a las demandas del usuario. Por ejemplo: la tasa de
fallos del sistema no podr ser superior a 2 fallos por semana.
Requisitos de entorno de desarrollo
Este tipo de requisitos especifican si el sistema debe desarrollarse con
un producto especfico. Por ejemplo: el sistema deber desarrollarse con
Oracle 7 como servidor y clientes Visual Basic 4.
Requisitos de portabilidad
Los requisitos de portabilidad definen qu caractersticas deber tener el software para que sea fcil utilizarlo en otra mquina o bajo
otro sistema operativo. Por ejemplo: el sistema deber funcionar en los
sistemas operativos Windows 95, Windows 98 y Windows NT 4.0, siendo
adems posible el acceso al sistema a travs de Internet usando cualquier
navegador compatible con HTML 3.0.
B.2.6.3 Productos internos
No hay productos internos en esta tarea.
B.2.6.4
Productos entregables
Requisitos no funcionales del sistema como parte del DRS (ver seccin B.3.1.15, pg. 266).
B.2.6.5
Tcnicas recomendadas
262
B.3.1
La estructura del DRS puede verse en la figura B.1. En las siguientes secciones se describe con detalle cada seccin del DRS.
Portada
Lista de cambios
ndice
Lista de figuras
Lista de tablas
1 Introduccin
2 Participantes en el proyecto
3 Descripcin del sistema actual [opcional]
4 Objetivos del sistema
5 Catlogo de requisitos del sistema
5.1 Requisitos de almacenamiento de informacin
5.2 Requisitos funcionales
5.2.1 Diagramas de casos de uso
5.2.2 Definicin de actores
5.2.3 Casos de uso del sistema
5.3 Requisitos no funcionales
6 Matriz de rastreabilidad objetivos/requisitos
7 Conflictos pendientes de resolucin [opcional, pueden ir
en un documento aparte]
8 Glosario de trminos [opcional]
Apndices [opcionales]
B.3.1.1
Portada
La portada del DRS debe tener el formato que puede verse en la figura B.2.
Los elementos que deben aparecer son los siguientes:
Nombre del proyecto: el nombre del proyecto al que pertenece el
DRS.
263
Documento de
Requisitos del Sistema
Versin X .Y
Fecha fecha
Lista de cambios
264
Nm.
0
1
Fecha
fecha0
fecha1
..
.
.
..
fechan
Descripcin
Versin x.y
descripcin cambio1
Autores
autor0
autor1
...
descripcin cambion
..
.
autorn
ndice
El ndice del DRS debe indicar la pgina en la que comienza cada seccin,
subseccin o apartado del documento. En la medida de lo posible, se sangrarn las entradas del ndice para ayudar a comprender la estructura del
documento.
B.3.1.4
El DRS deber incluir listas de las figuras y tablas que aparezcan en el mismo. Dichas listas sern dos ndices que indicarn el nmero, la descripcin
y la pgina en que aparece cada figura o tabla del DRS.
B.3.1.5 Introduccin
Esta seccin debe contener una descripcin breve de las principales caractersticas del sistema software que se va a desarrollar, la situacin actual que genera la necesidad del nuevo desarrollo, la problemtica que se
acomete, y cualquier otra consideracin que site al posible lector en el
contexto oportuno para comprender el resto del documento.
B.3.1.6
Participantes en el proyecto
Esta seccin debe contener una lista con todos los participantes en el proyecto, tanto desarrolladores como clientes y usuarios. Para cada participante se deber indicar su nombre, el papel que desempea en el proyecto,
la organizacin a la que pertenece y cualquier otra informacin adicional
que se considere oportuna.
265
B.3.1.8
Esta seccin debe contener una lista con los objetivos que se esperan alcanzar cuando el sistema software a desarrollar est en explotacin, especificados mediante la plantilla para objetivos.
B.3.1.9
Esta seccin se divide en las siguientes subsecciones en las que se describen los requisitos del sistema. Cada uno de los grandes grupos de requisitos, de almacenamiento de informacin, funcionales y no funcionales,
podrn dividirse para ayudar a la legibilidad del documento, por ejemplo dividiendo cada subseccin en requisitos asociados a un determinado
objetivo, requisitos con caractersticas comunes, etc.
B.3.1.10
266
B.3.1.12
Este apartado debe contener los diagramas de casos de uso del sistema
que se hayan realizado.
B.3.1.13
Este apartado debe contener una lista con los actores que se hayan identificado, especificados mediante la plantilla para actores de casos de uso.
B.3.1.14 Casos de uso del sistema
Este apartado debe contener los casos de uso que se hayan identificado,
especificados mediante la plantilla para requisitos funcionales.
B.3.1.15
Requisitos no funcionales
Esta subseccin debe contener la lista los requisitos no funcionales del sistema que se hayan identificado, especificados mediante la plantilla para
requisitos no funcionales.
B.3.1.16 Matriz de rastreabilidad objetivos/requisitos
Esta seccin debe contener una matriz objetivorequisito, de forma que para
cada objetivo se pueda conocer con qu requisitos est asociado. El formato de la matriz de rastreabilidad puede verse en la figura B.4.
RI01
RI02
...
RF01
RF02
...
RNF01
RNF02
...
OBJ01
OBJ02
...
OBJ-n
B.4. Tcnicas
267
B.4 Tcnicas
A continuacin, se describen algunas de las tcnicas que se proponen en
esta metodologa para obtener los productos de las tareas que se han descrito.
B.4.1 Entrevistas
Nota: Esta seccin coincide con la seccin 3.4.1, pg. 63, por lo que se ha omitido
para evitar repeticiones innecesarias.
B.4.2
Nota: Esta seccin coincide con la seccin 3.4.2, pg. 66, por lo que se ha omitido
para evitar repeticiones innecesarias.
268
B.4.3
Brainstorming
Nota: Esta seccin coincide con la seccin 3.4.3, pg. 70, por lo que se ha omitido
para evitar repeticiones innecesarias.
B.5
En este apndice se ofrecen algunos ejemplos de aplicacin de las tcnicas propuestas en esta metodologa suponiendo el caso de la gestin de
pequeo vdeoclub.
Dado que se trata de un ejemplo ficticio se han simplificado las plantillas eliminando los campos relativos a versin, autores, fuentes, importancia, urgencia y estado de desarrollo.
El ejemplo no es una especificacin de requisitos completa, se incluye
slo a modo de ejemplo.
B.5.1
OBJ01
Descripcin
Estabilidad
Comentarios
OBJ02
Descripcin
Estabilidad
Comentarios
B.5.2
269
RI01
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Intervalo temporal
Estabilidad
Comentarios
270
RI02
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Intervalo temporal
Estabilidad
Comentarios
RI03
Objetivos asociados
Requisitos asociados
Descripcin
Datos especficos
Intervalo temporal
Estabilidad
Comentarios
271
<<subsistema>>
Gestin de
Socios
<<subsistema>>
Gestin de
Pelculas
<<subsistema>>
Gestin de
Alquileres
<<includes>>
Socio
Empleado del
vdeo-club
272
Empleado del
vdeo-club
Baja de cinta de vdeo (RF-08)
273
Socio
Identificacin
de socio (RF-15)
Empleado del
vdeo-club
274
B.5.3.2
Definicin de actores
ACT01
Descripcin
Comentarios
Socio
Este actor representa a los socios del vdeoclub
ninguno
ACT02
Descripcin
Comentarios
275
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Estabilidad
Comentarios
Alta de socio
OBJ02 Gestionar las socios
RI02 Informacin sobre socios
El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando alguien solicite su ingreso como
socio
El solicitante no es un socio del vdeoclub y tiene su documentacin disponible
Paso Accin
1
El empleado del vdeoclub solicita al sistema comenzar el proceso de alta de un nuevo socio
2
El sistema solicita los siguientes datos del nuevo socio:
no del DNI, nombre, apellidos, fecha de nacimiento,
sexo, direccin y telfonos de contacto
3
El empleado del vdeoclub solicita los datos requeridos y la documentacin al nuevo socio
4
El empleado del vdeoclub comprueba que los datos
del nuevo socio coinciden con los de la documentacin
aportada
5
El empleado del vdeoclub proporciona los datos requeridos y solicita al sistema que los almacene
6
El sistema almacena los datos proporcionados, imprime el carnet de socio e informa al empleado del vdeo
club de que el proceso ha terminado con xito
7
El empleado del vdeoclub entrega el carnet al nuevo
socio
El solicitante es socio del vdeoclub y el saldo de su cuenta es
0
Paso Accin
4
Si la documentacin aportada no es correcta, el empleado del vdeoclub cancela la operacin, a continuacin este caso de uso termina
5
Si el sistema detecta que el nuevo socio ya es socio
del vdeoclub, el sistema informa de la situacin al
empleado del vdeoclub permitindole modificar los
datos proporcionados, a continuacin este caso de uso
contina
5
Si el empleado del vdeoclub solicita cancelar la operacin, el sistema cancela la operacin, a continuacin
este caso de uso termina
Paso Cota de tiempo
4
5 segundos
10 veces/da
alta
La frecuencia ser mucho mayor durante los dos primeros meses, probablemente 100 veces/da
276
RF02
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Estabilidad
Comentarios
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
277
278
RF11
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
279
280
RF15
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
50 veces/da
ninguno
281
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
Alta de pelcula
OBJ01 Gestionar las cintas y pelculas
RI01 Informacin sobre pelculas
RF05 Alta de cinta de vdeo
El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando se adquiera una cinta de una pelcula nueva
La pelcula no est registrada en el sistema
Paso Accin
1
El empleado del vdeoclub solicita al sistema comenzar el proceso de alta de pelcula
2
El sistema solicita los siguientes datos de la nueva pelcula: ttulo, tipo de pelcula, duracin, actores principales, director, productora y ao de produccin
3
El empleado del vdeoclub proporciona los datos requeridos y solicita al sistema que los almacene
4
El sistema almacena los datos proporcionados e informa al empleado del vdeoclub de que el proceso ha
terminado con xito
El sistema ha almacenado la informacin correspondiente a la
nueva pelcula
Paso Accin
4
Si el sistema detecta que la pelcula ya est registrada, el sistema informa de la situacin al empleado del
vdeoclub permitindole modificar los datos proporcionados, a continuacin este caso de uso contina
4
Si el empleado del vdeoclub solicita cancelar la operacin, el sistema cancela la operacin, a continuacin
este caso de uso se cancela
Paso Cota de tiempo
4
1 segundo
1 vez/da
ninguno
282
RF05
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
283
284
RF10
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
285
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
286
RF07
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
287
Ingreso a cuenta
OBJ03 Gestionar los alquileres
RI02 Informacin sobre socios
RI03 Informacin sobre cuentas de socios
El sistema deber comportarse tal como se describe en el siguiente caso de uso cuando un socio solicite hacer un ingreso
en su cuenta
El socio tiene disponible su carnet
Paso Accin
1
El empleado del vdeoclub solicita al sistema comenzar el proceso de ingreso en cuenta
2
El sistema solicita que se identifique al socio y se indique la cantidad a ingresar
3
El empleado del vdeoclub proporciona al sistema la
identificacin del socio y la cantidad a ingresar
4
El sistema registra el ingreso e informa del nuevo saldo
3
El empleado del vdeoclub comunica al socio su nuevo saldo
El saldo de la cuenta del socio est actualizado
Paso Accin
3
Si el empleado del vdeoclub solicita cancelar la operacin, el sistema cancela la operacin, a continuacin
este caso de uso termina
Paso Cota de tiempo
4
1 segundo
5 veces/da
Mientras no se implemente se puede hacer que todos los pagos
sean al contado
288
RF13
Objetivos asociados
Requisitos asociados
Descripcin
Precondicin
Secuencia
normal
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Importancia
Urgencia
Comentarios
Postcondicin
Excepciones
Rendimiento
Frecuencia esperada
Comentarios
289
290
B.5.4
Requisitos no funcionales
RNF01
Objetivos asociados
Requisitos asociados
Descripcin
Comentarios
RNF02
Objetivos asociados
Requisitos asociados
Descripcin
Comentarios
RNF03
Objetivos asociados
Requisitos asociados
Descripcin
Comentarios
Copias de seguridad
B.6 Bibliografa
[Boehm et al. 1994] B. W. Boehm, P. Bose, E. Horowitz, y M.-J. Lee. Software Requirements as Negotiated Win Conditions. En Proceedings of
the First International Conference on Requirements Engineering, 1994. Disponible en http://sunset.usc.edu/TechRpts/Papers/NGPMRequirements93.ps.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Garca et al. 2000] J. Garca, M. J. Ortn, B. Moros, y J. Nicols. Modelado
de Casos de Uso y Conceptual a partir del Modelado del Negocio. En
Actas de las V Jornadas de Trabajo Menhir, Granada, 2000.
[Laguna et al. 1999] M. A. Laguna, J. M. Marqus, y F. J. Garca. Una Herramienta para la Captura de Requisitos de Usuario. En Actas de las
JISBD99, Cceres, 1999.
B.6. Bibliografa
291
292
Apndice C
Metodologa para el anlisis de
requisitos de sistemas de
informacin
C.1
Objetivo de la metodologa
294
295
C.2.1.4
Productos entregables
Diagramas de tipos como parte del DAS (ver seccin C.3.1.6, pg.
302)
Catlogo de tipos y asociaciones como parte del DAS (ver seccin
C.3.1.7, pg. 302)
Conflictos pendientes de resolucin como parte del DAS (ver seccin
C.3.1.13, pg. 304), como parte del Documento de Requisitos del Sistema (DRS) o como parte de un documento especfico de conflictos
C.2.1.5 Tcnicas
Diagrama de tipos
Plantillas para tipos
Plantillas para asociaciones
Plantillas para conflictos
296
C.2.2.2 Descripcin
En esta tarea se debe obtener el modelo de comportamiento del sistema
a partir de los requisitos funcionales obtenidos en la actividad de elicitacin de requisitos, identificando los posibles conflictos que pudieran surgir. Se deben especificar tanto las operaciones del sistema como los estados
y transiciones de los tipos de objetos identificados en la tarea anterior que
tengan un dinamismo significativo.
C.2.2.3 Productos internos
No hay productos internos en esta tarea.
C.2.2.4 Productos entregables
Catlogo de tipos y asociaciones como parte del DAS (ver seccin
C.3.1.7, pg. 302)
Catlogo de operaciones del sistema como parte del DAS (ver seccin C.3.1.10, pg. 303)
Conflictos pendientes de resolucin como parte del DAS (ver seccin C.3.1.13, pg. 304), como parte del DRS o como parte de un
documento especfico de conflictos
C.2.2.5 Tcnicas
Plantilla para operaciones del sistema
Diagrama de estados
Plantillas para conflictos
C.2.3
C.2.3.1
Objetivos
297
Objetivos
298
Productos entregables
C.3.1
La estructura del DAS puede verse en la figura C.1. En las siguientes secciones se describe con detalle cada seccin del DAS.
C.3.1.1 Portada
La portada del DAS debe tener el formato que puede verse en la figura
C.2. Los elementos que deben aparecer son los siguientes:
Nombre del proyecto: el nombre del proyecto al que pertenece el
DAS.
Versin: la versin del DAS que se entrega al cliente. La versin se
compone de dos nmeros X e Y . El primero indica la versin, y se
debe incrementar cada vez que se hace una nueva entrega formal al
cliente. Cuando se incremente el primer nmero, el segundo debe
Portada
Lista de cambios
ndice
Lista de figuras
Lista de tablas
1 Introduccin
2 Diagramas de tipos
3 Catlogo de tipos y asociaciones del sistema
3.1 Tipo X
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
Descripcin tipo X
Atributos tipo X
Enlaces tipo X
Invariante tipo X
Diagrama de estados tipo X [opcional]
Descripcin operacin Z
Diagrama de accin conjunta de la operacin Z [opcional]
Diagrama de secuencia de la operacin Z [opcional]
Interfaz de usuario de la operacin Z [opcional]
299
300
volver a comenzar en cero. El segundo nmero indica cambios dentro de la misma versin an no entregada, y se debe incrementar cada vez que se imprima una versin con cambios respecto a la ltima
que se imprimi y que no se vaya a entregar formalmente todava.
Este tipo de versiones pueden ser internas al equipo de desarrollo o
ser entregadas al cliente a ttulo orientativo.
Fecha: fecha de la publicacin de la versin.
Equipo de desarrollo: nombre de la empresa o equipo de desarrollo.
Cliente: nombre del cliente, normalmente otra empresa.
C.3.1.2 Lista de cambios
El documento debe incluir una lista de cambios en la que se especifiquen,
para cada versin del documento, los cambios producidos en el mismo con
un formato similar al que puede verse en la figura C.3. Para cada cambio
realizado se debe incluir el nmero de orden, la fecha, una descripcin y
los autores.
C.3.1.3
ndice
El ndice del DAS debe indicar la pgina en la que comienza cada seccin,
subseccin o apartado del documento. En la medida de lo posible, se sangrarn las entradas del ndice para ayudar a comprender la estructura del
documento.
C.3.1.4 Listas de figuras y tablas
El DAS deber incluir listas de las figuras y tablas que aparezcan en el mismo. Dichas listas sern dos ndices que indicarn el nmero, la descripcin
y la pgina en que aparece cada figura o tabla del DAS.
C.3.1.5
Introduccin
Esta seccin debe contener una descripcin breve de las principales caractersticas del sistema software que se va a desarrollar, la situacin actual que genera la necesidad del nuevo desarrollo, la problemtica que se
301
Documento de
Anlisis del Sistema
Versin X .Y
Fecha fecha
Nm.
0
1
Fecha
fecha0
fecha1
.
..
...
fechan
Descripcin
Versin x.y
descripcin cambio1
Autor/es
autor0
autor1
..
.
descripcin cambion
..
.
autorn
302
Diagramas de tipos
Este apartado debe contener los diagramas de tipos del modelo del sistema construido durante el anlisis. Para sistemas complejos puede ser
conveniente agrupar los diagramas en paquetes o subsistemas, tal como se
describe en [Booch et al. 1999].
C.3.1.7
Tipo X
303
304
RI01
RI02
...
RF01
RF02
...
RNF01
RNF02
...
Esta seccin, que se incluir en el caso de que no se opte por registrar los
conflictos en un documento aparte, deber contener los conflictos identificados durante el proceso y que an estn pendientes de resolucin, descritos mediante la plantilla para conflictos.
C.3.1.14
Glosario de trminos
C.4. Tcnicas
305
Apndices
Los apndices se usarn para proporcionar informacin adicional a la documentacin obligatoria del documento. Slo deben aparecer si se consideran oportunos y se identificarn con letras ordenadas alfabticamente:
A, B, C, etc.
C.4 Tcnicas
A continuacin, se describen algunas de las tcnicas que se proponen en
esta metodologa para obtener los productos de las tareas que se han descrito.
306
C.4.5
Diagrama de secuencia
Los diagramas de secuencia permiten representar visualmente el intercambio de estmulos y respuestas entre los actores y el sistema durante
el transcurso de la realizacin de una operacin del sistema. En esta metodologa se propone que los diagramas de secuencia se realicen utilizando
la notacin UML [Booch et al. 1999], aunque aplicados solamente a las
interacciones entre los actores y el sistema y no entre los objetos que componen el sistema.
307
espacio se ha optado por no incluir todas las operaciones del sistema correspondientes a los casos de uso identificados en el ejemplo citado, sino
solamente un subconjunto significativo.
Aunque no estn definidos en la actual versin de OCL [Rat 1997], se
han asumido los tipos bsicos Date y Time para representar fechas y horas respectivamente. Se ha asumido tambin que se ha definido la operacin menor o igual sobre ambos tipos (<=) y que Date.today y Time.now devuelven la fecha y hora actual respectivamente, de forma similar a la propuesta de [Warmer y Kleppe 1999].
En las especificaciones en OCL se utilizarn las expresiones isOrderedBy sobre secuencias, new y dead sobre tipos, la palabra reservada
respuesta, result se utilizar castellanizada como resultado y se
permitir el uso de tipos sin nombre, tal como se describi en la seccin
4.8.2, pg. 176.
En las operaciones del sistema especificadas se ha asumido que se ha
desarrollado un prototipo de la interfaz de usuario del sistema.
<<subsistema>>
<<subsistema>>
Pelculas y
Cintas
Socios y
Alquileres
308
$UWLVWD&LQH
{abstracto}
nombre : String
{solapada, completa}
$FWRU
protagonista
'LUHFWRU
3URGXFWRUD
nombre : String
DFW~D(Q
GLULJH
SURGXFH
3HOtFXOD
ttulo : String
ao : Integer
tema : enum { Infantil, Accin, Ciencia-Ficcin, Terror, Adultos }
duracin : Time
1
{subset}
{subset}
FRQWLHQH
WLHQH'LVSRQLEOH
WLHQH$OTXLODGD
disponible
&LQWD
nmero : Integer
/ estAlquilada
alquilada
309
Socio
/tieneAlquilada
0..1
nmero : Integer
dni : String
nombre : String
fechaNacimiento : Date
sexo : enum { Hombre, Mujer }
fechaAlta : Date
direccin : String
telfonos : Set( Integer )
1
Cinta
(Pelculas y Cintas)
1
1
{subset}
/realizaActualmente
/esObjetoActualmenteDe
esObjetoDe
{subset}
alquilerActual
0..1 alquilerActual
Alquiler
realiza
fechaAlquiler : Date
* horaAlquiler : Time
*
{ordered} fechaDevolucin : Date
{ordered}
horaDevolucin : Time
estDevuelto : Boolean = false
tiene
Cuenta
/ saldo
{ordered}
Movimiento
{abstracto}
fecha : Date
importe : Integer
{disjunta, completa}
Cargo
{abstracto}
Ingreso
CargoMulta
CargoAlquiler
0..1
motivadoPor
Alquiler
corresponde
310
Este subsistema contiene los tipos y asociaciones relacionadas con las pelculas y cintas del vdeoclub.
C.5.2.2
Tipo Actor
Actor
RI01 Informacin sobre pelculas
Este tipo concreto representa los actores protagonistas de las
pelculas del vdeoclub
ArtistaCine
Nombre
Tipo OCL
Mult.
Ninguno
Actor::pelcula
Conjunto de pelculas en las que el actor es protagonista
Set( Pelcula )
actaEn(Actor,Pelcula)
Ninguno
C.5.2.3
311
Tipo ArtistaCine
ArtistaCine
RI01 Informacin sobre pelculas
Este tipo abstracto representa los actores protagonistas de
las pelculas del vdeoclub
ArtistaCine::nombre
Nombre del artista de cine
String
Ninguno
ArtistaCine
No puede haber dos artistas de cine con el mismo nombre (nombre
es clave)
ArtistaCine.allInstances->forall( a1, a2 |
(a1 <> a2) = (a1.nombre <> a2.nombre) )
Ninguno
312
Cinta
RI01 Informacin sobre pelculas
Este tipo concreto representa las cintas actualmente en poder del vdeoclub
Nombre
Tipo OCL
Mult.
Ninguno
Supertipos
Subtipos
Componentes
Comentarios
Cinta::estAlquilada
Indica si la cinta est alquilada actualmente
Atributo constante
Descripcin
Tipo OCL
Comentarios
Cinta::nmero
Nmero identificativo de la cinta
self.alquilerActual->notEmpty
Ninguno
Integer
Cinta::alquiler
Alquileres de los que ha sido o es objeto la cinta
Enlace derivado
Descripcin
Expresin
Asociacin
Comentarios
Cinta::alquilerActual
Alquiler en curso de la cinta
Sequence( Alquiler )
esObjetoDe(Cinta, Alquiler)
Los alquileres estn ordenados por fecha de alquiler
esObjetoActualmenteDe(Cinta, Alquiler)
Ninguno
Cinta::pelcula
Pelcula contenida en la cinta
Enlace derivado
Descripcin
Expresin
Asociacin
Comentarios
Cinta::socio
Socio que tiene alquilada la cinta actualmente
313
Pelcula
contiene(Cinta, Pelcula)
Ninguno
self.alquilerActual.socio
tieneAlquilada(Socio, Cinta)
Ninguno
Expresin
Comentarios
Cinta
No puede haber dos cintas con el mismo nmero (nmero es clave)
Los alquileres deben estar ordenados por fecha de alquiler
No hay alquileres duplicados
La cinta slo puede tener pendiente un alquiler a la vez
Cinta.allInstances->forAll( c1, c2 |
( c1 <> c2 ) = ( c1.nmero <> c2.nmero ) )
and
self.alquiler->isOrderedBy( <=, fechaAlquiler )
and
self.alquiler->size = self.alquiler->asSet->size
and
self.alquilerActual->size <= 1
Ninguno
314
Director
RI01 Informacin sobre pelculas
Este tipo concreto representa los directores de las pelculas
del vdeoclub
ArtistaCine
Nombre
Tipo OCL
Mult.
Ninguno
Director::pelcula
Conjunto de pelculas dirigidas por el director
Set( Pelcula )
dirige(Director,Pelcula)
Ninguno
315
Pelcula
RI01 Informacin sobre pelculas
Este tipo concreto representa las pelculas que han estado o
estn disponibles en el vdeoclub
Nombre
Tipo OCL
Mult.
Ninguno
Supertipos
Subtipos
Componentes
Comentarios
Pelcula::ao
Ao en el que se estren la pelcula
Atributo constante
Descripcin
Tipo OCL
Comentarios
Pelcula::duracin
Duracin de la pelcula
Atributo constante
Descripcin
Tipo OCL
Comentarios
Pelcula::tema
Tema de la pelcula
Atributo constante
Descripcin
Tipo OCL
Comentarios
Pelcula::ttulo
Ttulo de la pelcula
Integer
Ninguno
Time
Ninguno
Ninguno
String
Ninguno
Pelcula::alquilada
Cintas de la pelcula actualmente alquiladas
self.cinta->select( c | c.estAlquilada )
tieneAlquilada(Pelcula, Cinta)
Ninguno
316
Enlace variable
Descripcin
Tipo OCL
Asociacin
Comentarios
Pelcula::cinta
Cintas de la pelcula de las que dispone actualmente el vdeoclub
Enlace constante
Descripcin
Tipo OCL
Asociacin
Comentarios
Pelcula::director
Director de la pelcula
Enlace derivado
Descripcin
Expresin
Asociacin
Comentarios
Pelcula::disponible
Cintas de la pelcula actualmente disponibles (no alquiladas)
Enlace constante
Descripcin
Tipo OCL
Asociacin
Comentarios
Pelcula::productora
Productora de la pelcula
Enlace constante
Descripcin
Tipo OCL
Asociacin
Comentarios
Pelcula::protagonista
Conjunto de actores protagonistas de la pelcula
Set( Cinta )
contiene(Cinta, Pelcula)
Ninguno
Director
dirige(Director, Pelcula)
Ninguno
tieneDisponible(Pelcula, Cinta)
Ninguno
Productora
produce(Productor,Pelcula)
Ninguno
Set( Actor )
actaEn(Actor,Pelcula)
Ninguno
Pelcula
Las cintas alquiladas y no alquiladas forman una particin de todas
las cintas de la pelcula
self.cinta = self.disponible->union( self.alquilada )
and
self.disponible->intersection( self.alquilada )->isEmpty
Ninguno
317
Productora
RI01 Informacin sobre pelculas
Este tipo concreto representa las productoras de las pelculas del vdeoclub
Nombre
Tipo OCL
Mult.
Ninguno
Productora::nombre
Nombre de la productora
String
Ninguno
Productora::pelcula
Conjunto de pelculas producidas por la productora
Set( Pelcula )
produce(Productora,Pelcula)
Ninguno
Productora
No puede haber dos productoras con el mismo nombre (nombre es
clave)
Productora.allInstances->forall( a1, a2 |
(a1 <> a2) = (a1.nombre <> a2.nombre) )
Ninguno
318
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Set( Actor )
0..n
Ninguno
Set( Pelcula )
0..n
Ninguno
319
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Set( Cinta )
0..n
Ninguno
Pelcula
0..n
Ninguno
320
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Director
1
Ninguno
Set( Pelcula )
0..n
Ninguno
321
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Set( Pelcula )
0..n
Ninguno
Productora
1
Ninguno
322
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Set( Cinta )
0..n
Ninguno
Pelcula
1
Ninguno
Comentarios
tieneAlquilada(Pelcula, Cinta)
Un par (pelcula,cinta) pertenece a esta asociacin si y slo si la cinta
contiene a la pelcula y la cinta est alquilada
Pelcula.allInstances->forAll( p |
Cinta.allInstances->forall( c |
tieneAlquilada(Pelcula,Cinta).allInstances->forAll( ta |
( ta.pelcula = p and ta.alquilada = c ) =
( p.cinta->includes( c ) and c.pelcula = p and
c.estAlquilada ) ) ) )
Ninguno
323
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Set( Cinta )
0..n
Ninguno
Pelcula
1
Ninguno
Comentarios
tieneDisponible(Pelcula, Cinta)
Un par (pelcula,cinta) pertenece a esta asociacin si y slo si la cinta
contiene a la pelcula y la cinta no est alquilada
Pelcula.allInstances->forAll( p |
Cinta.allInstances->forall( c |
tieneDisponible(Pelcula,Cinta).allInstances->forAll( td |
( td.pelcula = p and td.alquilada = c ) =
( p.cinta->includes( c ) and c.pelcula = p and
not c.estAlquilada ) ) ) )
Ninguno
324
C.5.2.15
Tipo Alquiler
Alquiler
RI02 Informacin sobre socios
RI03 Informacin sobre cuentas de socios
Este tipo concreto representa los alquileres de cintas actuales y pasados realizados por parte de los socios del vdeo
club
Nombre
Tipo OCL
Mult.
Alquiler::estDevuelto
Indica si el socio ha devuelto la cinta alquilada
Atributo constante
Descripcin
Tipo OCL
Comentarios
Alquiler::fechaAlquiler
Fecha en la que el socio retira la cinta
Atributo constante
Descripcin
Tipo OCL
Comentarios
Alquiler::fechaDevolucin
Fecha tope en la que el socio debe devolver la cinta
Boolean
false
Ninguno
Date
Ninguno
Date
Ninguno
Alquiler::horaAlquiler
Hora en la que el socio retira la cinta
Atributo constante
Descripcin
Tipo OCL
Comentarios
Alquiler::horaDevolucin
Hora tope en la que el socio debe devolver la cinta
325
Time
Ninguno
Time
Ninguno
Alquiler::cargoAlquiler
Cargo correspondiente al alquiler
Enlace variable
Descripcin
Tipo OCL
Asociacin
Comentarios
Alquiler::cargoMulta
Cargo correspondiente a la multa por devolucin tarda
Enlace constante
Descripcin
Tipo OCL
Asociacin
Comentarios
Alquiler::cinta
Cinta que es objeto del alquiler
Enlace constante
Descripcin
Tipo OCL
Asociacin
Comentarios
Alquiler::socio
Cinta que es objeto del alquiler
Alquiler
corresponde(CargoAlquiler, Alquiler)
Ninguno
motivadoPor(CargoMulta, Alquiler)
Los enlaces asociados a los roles con cardinalidad 0..1 puede actuar como conjuntos o como objetos en OCL
Cinta
esObjetoDe(Cinta, Alquiler)
Ninguno
realiza(Socio,Alquiler)
Ninguno
326
Expresin
Comentarios
Alquiler
No puede haber dos alquileres de la misma cinta en la misma fecha
y hora
No puede haber dos alquileres pendientes de la misma cinta
La fecha y hora de devolucin tienen que ser posteriores o iguales a
las de alquiler
Alquiler.allInstances->forAll( a1, a2 |
( a1 <> a2 ) = (
a1.cinta <> a2.cinta or
a1.fechaAlquiler <> a2.fechaAlquiler or
a1.horaAlquiler <> a2.horaAlquiler ) )
and
Alquiler.allInstances->forAll( a1, a2 |
( a1 <> a2 and a1.cinta = a2.cinta ) implies
( a1.estDevuelto or a2.estDevuelto ) )
and
self.fechaAlquiler <= self.fechaDevolucin
and
( self.fechaAlquiler = self.fechaDevolucin ) implies
( self.horaAlquiler < self.horaDevolucin )
Ninguno
327
Cargo
RI03 Informacin sobre cuentas de socios
Este tipo abstracto representa los cargos de las cuentas de
los socios del vdeoclub
Movimiento
CargoMulta, CargoAlquiler (disjuntas, completas)
Nombre
Tipo OCL
Mult.
Ninguno
Supertipos
Subtipos
Componentes
Comentarios
Cargo::estPendiente
Indica si el cargo est pendiente de pago
Boolean
true
Cuando se realiza un cargo, si no hay saldo disponible para pagarlo se considera pendiente de pago hasta que haya saldo suficiente
Cargo
El importe del movimiento es negativo
Comentarios
Ninguno
self.importe <= 0
328
CargoAlquiler
RI03 Informacin sobre cuentas de socios
Este tipo concreto representa los cargos de las cuentas de
los socios del vdeoclub correspondientes a los alquileres
de cintas
Cargo
Nombre
Tipo OCL
Mult.
Ninguno
CargoAlquiler::alquiler
El alquiler al que corresponde el cargo
Alquiler
corresponde(CargoAlquiler, Alquiler)
Ninguno
329
CargoMulta
RI03 Informacin sobre cuentas de socios
Este tipo concreto representa los cargos de las cuentas de
los socios del vdeoclub correspondientes a las multas por
devoluciones tardas
Cargo
Nombre
Tipo OCL
Mult.
Ninguno
CargoMulta::alquiler
El alquiler con devolucin tarda que motiva el cargo por multa
Alquiler
motivadoPor(CargoMulta,Alquiler)
Ninguno
330
Cuenta
RI03 Informacin sobre cuentas de socios
Este tipo concreto representa las cuentas de los socios del
vdeoclub
Nombre
Tipo OCL
Mult.
movimiento
Sequence( Movimiento )
0..n
Los movimientos estn ordenados por fecha
Supertipos
Subtipos
Componentes
Comentarios
Cuenta::saldo
Saldo actual de la cuenta
self.movimiento->collect( importe )->sum
Ninguno
Cuenta::socio
El socio de la cuenta
Socio
tiene(Socio,Cuenta)
Ninguno
Cuenta
Los movimientos estn ordenados por fecha
Comentarios
Ninguno
331
Ingreso
RI03 Informacin sobre cuentas de socios
Este tipo concreto representa los ingresos de las cuentas de
los socios del vdeoclub
Movimiento
Nombre
Tipo OCL
Mult.
Ninguno
Ingreso
El importe del cargo es positivo
Comentarios
Ninguno
self.importe > 0
332
Movimiento
RI03 Informacin sobre cuentas de socios
Este tipo abstracto representa los movimientos de las cuentas de los socios del vdeoclub
Ninguno
Movimiento::fecha
Fecha en la que se realiza el movimiento
Atributo constante
Descripcin
Tipo OCL
Comentarios
Movimiento::importe
Cantidad correspondiente al importe del movimiento
Date
Ninguno
Integer
Ninguno
333
Socio
RI02 Informacin sobre socios
Este tipo concreto representa los socios actuales del vdeo
club
Nombre
Tipo OCL
Mult.
Ninguno
Supertipos
Subtipos
Componentes
Comentarios
Socio::direccin
Direccin actual del socio
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::dni
Nmero del Documento Nacional de Identidad del socio
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::fechaAlta
Fecha de alta del socio
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::fechaNacimiento
Fecha de nacimiento del socio
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::nombre
Nombre y apellidos del socio
String
Ninguno
String
Ninguno
Date
Ninguno
Date
Ninguno
String
Ninguno
334
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::nmero
Nmero identificativo del socio
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::sexo
Sexo del socio
Atributo constante
Descripcin
Tipo OCL
Comentarios
Socio::telfonos
Telfonos del socio
Integer
Set( Integer )
Socio::alquiler
Conjunto de alquileres pasados y presentes del socio
Sequence( Alquiler )
realiza(Socio, Alquiler)
No se permiten duplicados en la secuencia de alquileres y deben
estar ordenados por fecha de alquiler (ver invariante)
Enlace derivado
Descripcin
Expresin
Asociacin
Comentarios
Socio::alquilerActual
Conjunto de alquileres actuales del socio
Enlace derivado
Descripcin
Expresin
Asociacin
Comentarios
Socio::cinta
Conjunto de cintas actualmente alquiladas por el socio
Enlace constante
Descripcin
Tipo OCL
Asociacin
Comentarios
Socio::cuenta
Cuenta del socio
realizaActualmente(Socio, Alquiler)
Ninguno
self.alquilerActual.cinta->asSet
tieneAlquilada(Socio,Cinta)
Ninguno
Cuenta
tiene(Socio,Cuenta)
Ninguno
335
Expresin
Comentarios
Socio
No puede haber dos socios con el mismo DNI ni con el mismo nmero (dni y nmero son clave)
Al menos debe tener un telfono de contacto
Los alquileres deben estar ordenados por fecha de alquiler
No hay alquileres duplicados
Socio.allInstances->forAll( s1, s2 |
( s1 <> s2 ) =
( s1.dni <> s2.dni and s1.nmero <> s2.nmero ) )
and
not (self.telfonos->isEmpty)
and
self.alquiler->isOrderedBy( <=, fechaAlquiler )
and
self.alquiler->size = self.alquiler->asSet->size
Ninguno
336
1
Ninguno
juega
rol
CargoAlquiler
cargoAlquiler
de(CargoAlquiler, Alquiler)
Cargo correspondiente al alquiler
CargoAlquiler
1
Ninguno
en
correspon-
337
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Sequence( Alquiler )
0..n
Los alquileres estn ordenados por fecha de alquiler
Cinta
1
Ninguno
338
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
0..1
Los roles con cardinalidad 0..1 puede actuar como conjuntos o como
objetos en OCL
Cinta juega rol cinta en esObjetoActualmenteDe(Cinta, Alquiler)
Cinta que es objeto del alquiler
Cinta
1
Ninguno
Comentarios
esObjetoActualmenteDe(Cinta, Alquiler)
Un par (cinta,alquiler) pertenece a esta asociacin si y slo existe un
alquiler en el que la cinta es alquilada y dicho alquiler est sin devolver
Cinta.allInstances->forall( c |
Alquiler.allInstances->forall( a |
esObjetoActualmenteDe(Cinta, Alquiler).allInstances->
forAll( eoa |
( eoa.cinta = c and eoa.alquiler = c ) =
( a.cinta = c and c.alquiler->includes( a ) and
not a.estDevuelto ) ) ) )
Ninguno
339
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Alquiler
1
Ninguno
0..1
Los roles con cardinalidad 0..1 puede actuar como conjuntos o como
objetos en OCL
340
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Sequence( Alquiler )
0..n
Los alquileres estn ordenados por fecha de alquiler
Socio
1
Ninguno
341
0..n
Ninguno
Socio juega rol socio en realizaActualmente(Socio, Alquiler)
Socio que realiza el alquiler
Socio
1
Ninguno
Comentarios
realizaActualmente(Socio, Alquiler)
Un par (socio,alquiler) pertenece a esta asociacin si y slo si el socio
tiene dicho alquiler sin devolver
Socio.allInstances->forAll( s |
Alquiler.allInstances->forall( a |
realizaActualmente(Socio, Alquiler).allInstances->
forAll( ra |
( ra.socio = s and ra.alquiler = a ) =
( s.alquiler->includes( a ) and a.socio = s and
not a.estDevuelto ) ) ) )
Ninguno
342
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Cuenta
1
Ninguno
Cuenta
1
Ninguno
343
Rol
Descripcin
Tipo OCL
Multiplicidad
Comentarios
Set( Cinta )
0..n
Ninguno
0..1
Los roles con cardinalidad 0..1 puede actuar como conjuntos o como
objetos en OCL
Comentarios
tieneAlquilada(Socio, Cinta)
Un par (socio,cinta) pertenece a esta asociacin si y slo existe un alquiler no devuelto realizado por el socio en el que la cinta es alquilada
Socio.allInstances->forAll( s |
Cinta.allInstances->forall( c |
tieneAlquilada(Socio, Cinta).allInstances->forAll( ta |
( ta.socio = s and ta.cinta = c ) =
( s.alquilerActual.cinta->includes( c ) and
c.alquilerActual.socio = s ) ) ) )
Ninguno
344
Operacin AltaDeSocio
Precondiciones
Precondiciones
(OCL)
Postcondiciones
Postcondiciones
(OCL)
Excepciones
Excepciones (OCL)
Comentarios
AltaDeSocio
RF01 Alta de socio
El empleado del vdeoclub da de alta un nuevo socio
Socio -- para imprimir el carnet
dni
n
fn
sx
d
t
:
:
:
:
:
:
Ninguno
345
Socio
1
AltaDeSocio(dni,n,fn,sx,d,t)
Cuenta
Socio
Secuencia
normal
Empleado del
vdeo-club
Sistema
Vdeo-Club
AltaDeSocio(dni,n,fn,sx,d,t)
"Proceso de alta de socio terminado con xito"
carnet de socio
Execpcin
346
Vdeo--Club Ejemplo
Nm: 23456
------------------------------------------------------direccin y telfono del vdeo--club
CARNET DE SOCIO
Nombre: Amador Durn Toro
Direccin: Departamento de Lenguajes y Sistemas Informticos, Avda. Reina Mercedes s/n, 41012 Sevilla
DNI: 12345678-X
Fecha alta: 21/12/1998
Firma
347
Precondiciones
Precondiciones
(OCL)
Postcondiciones
Postcondiciones
(OCL)
Excepciones
Excepciones (OCL)
Comentarios
AquilarCinta
RF06 Alquiler de cintas de vdeo
Un socio alquila una cinta de vdeo
Alquiler -- para imprimir el ticket
s
c
imp
fd
hd
fp
:
:
:
:
:
:
Socio
-- socio que realiza el alquiler
Cinta
-- cinta que se alquila
Integer -- importe del alquiler
Date
-- fecha de devolucin
Time
-- hora de devolucin
enum{ Contado, Cuenta } -- forma de pago
Ninguno
348
CargoAlquiler
Ingreso
Socio
s
1
0..1
AlquilarCinta(imp,fd,hd,fp)
c
1
Cuenta
1
Alquiler
Socio
Secuencia
normal
Empleado del
vdeo-club
Sistema
Vdeo-Club
AlquilarCinta(s,c,imp,fd,hd,fp)
"Proceso de alquiler terminado con xito"
ticket
Execpcin
349
Vdeo--Club Ejemplo
------------------------------------------------------direccin y telfono del vdeo--club
TICKET DE ALQUILER
Socio: 23456 (Amador Durn Toro)
Cinta: 1234 (La guerra de las galaxias)
Fecha alquiler: 21/12/1998 18:05:32
Devolver antes de: 22/12/1998 21:30:00
Son 300 Ptas
350
ConsultarPelcula
RF10 Consulta de una pelcula
El empleado del vdeoclub consulta la informacin de una pelcula
Tipo resultado
titulo:String
tema:enum{Infantil,Accin,Ciencia-Ficcin,Terror,Adultos}
productora:String
protagonistas:Set(String)
disponible:Integer
Parmetros
Precondiciones
Precondiciones
(OCL)
Postcondiciones
Postcondiciones
(OCL)
Comentarios
pre1 : Ninguna
pre1 : true
Ninguno
351
Consulta de pelcula
21/12/1998
------------------------------------------------------Ttulo:
La Guerra de las Galaxias
Ciencia-Ficcin
Tema:
Productora: 20th Century Fox (1977)
Protagonistas:
Mark Hamill
Harrison Ford
Alec Guinnes
Cintas disponibles: 2
352
Solucin
Comentarios
CFL2
Objs./Reqs.
en conflicto
Descripcin
Alternativas
Solucin
Comentarios
CFL3
Objs./Reqs.
en conflicto
Descripcin
Alternativas
Solucin
Comentarios
C.6. Bibliografa
353
C.6 Bibliografa
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[DSouza y Wills 1999] D. F. DSouza y A. C. Wills. Objects, Components,
and Frameworks with UML: The Catalysis Approach. AddisonWesley,
1999.
[Rat 1997] Rational Software Corporation. Object Constraint Language Specification, 1.1 edicin, Septiembre 1997.
Disponible en
http://www.rational.com.
[Warmer y Kleppe 1999] J. B. Warmer y A. G. Kleppe. The Object Constraint Language: Precise Modeling with UML. AddisonWesley, 1999.
354
Apndice D
Metodologa para la validacin de
requisitos de sistemas de
informacin
D.1 Objetivo de la metodologa
El objetivo de esta metodologa es la definicin de las tareas a realizar,
los productos a obtener y las tcnicas a emplear durante la actividad de
validacin de requisitos de la fase de ingeniera de requisitos del ciclo de vida
de desarrollo del software.
En esta metodologa se distinguen dos tipos de productos: los productos entregables y los productos no entregables o internos. Los productos entregables son aquellos que se entregan oficialmente al cliente como parte
del desarrollo en fechas previamente acordadas, mientras que los no entregables son productos internos al desarrollo que no se entregan al cliente.
El principal producto entregable de esta metodologa es la versin validada del Documento de Requisitos del Sistema, descrito en la Metodologa para
la Elicitacin de Requisitos de Sistemas de Informacin. Opcionalmente, pueden incluirse tambin las versiones validadas del Documento de Anlisis del
Sistema, descrito en la Metodologa para el Anlisis de Requisitos de Sistemas
de Informacin, y del prototipo en el caso de que se haya desarrollado.
La estructura de este documento es la siguiente: en la seccin D.2 se
describen las tareas recomendadas para realizar la validacin, en la seccin
D.3 se definen los productos entregables, y por ltimo, en la seccin D.4 se
describen las tcnicas recomendadas para obtener los productos.
355
356
Objetivos
357
Productos entregables
Requisitos de almacenamiento de informacin y requisitos funcionales validados, total o parcialmente, como parte del Documento de
Requisitos del Sistema (DRS) validado
Catlogo de tipos y asociaciones y catlogo de operaciones del sistema validados, total o parcialmente, como parte del Documento de
Anlisis del Sistema (DAS) validado, en el caso de que se haya considerado necesaria su validacin por parte de clientes y usuarios
Conflictos pendientes de resolucin como parte del DRS, como parte
del DAS o como parte de un documento especfico de conflictos
D.2.1.5 Tcnicas
Walkthroughs asistidos con prototipos
Plantillas para conflictos
Descripcin
358
Productos entregables
Requisitos no funcionales validados, total o parcialmente, como parte del Documento de Requisitos del Sistema (DRS) validado
Conflictos pendientes de resolucin como parte del DRS, como parte
del DAS o como parte de un documento especfico de conflictos
D.2.2.5
Tcnicas
D.2.3
D.2.3.1
Objetivos
Productos internos
359
D.3
Productos entregables
Los productos entregables resultantes de las tareas descritas son los productos resultantes de las actividades anteriores validados total o parcialmente, por lo que pueden consultarse las metodologas correspondientes
a las actividades de elicitacin y anlisis para obtener su descripcin.
D.4 Tcnicas
A continuacin, se describen algunas de las tcnicas que se proponen en
esta metodologa para obtener los productos de las tareas que se han descrito.
360
D.4.1 Walkthrough
Nota: Esta seccin coincide con la seccin 5.4.1, pg. 200, por lo que se ha omitido
para evitar repeticiones innecesarias.
D.5
Bibliografa
Apndice E
Una herramienta CASE para la
ingeniera de requisitos
E.1
Introduccin
En este apndice se describe un prototipo de una posible herramienta CASE que d soporte a la metodologa de ingeniera de requisitos de sistemas
de informacin descrita en esta tesis.
Sin una herramienta CASE apropiada, la aplicacin de cualquier metodologa o tcnica de desarrollo de software suele fracasar por tener que
realizarse manualmente, tal como se describe en [Davis 1995] en lo relativo
a la rastreabilidad.
El prototipo que se presenta es slo una primera aproximacin que probablemente, tal como se expone en [Brooks 1995, cap. 11 Plan to Throw One
Away (You Will, Anyhow)], servir para obtener experiencia sobre el problema pero que deber abandonarse posteriormente para construir otro
mejor.
La estructura de este apndice es la siguiente: en la seccin E.2 se describe brevemente el modelo de objetos de los requisitos que se ha utilizado
para la realizacin del prototipo. En las secciones E.3 y E.4 se describen la
arquitectura y los aspectos ms relevantes de la interfaz de usuario del
prototipo. En la seccin E.5 se comparan las caractersticas de otras herramientas CASE comerciales de gestin de requisitos.
361
362
<<subsystem>>
<<subsystem>>
<<subsystem>>
C-Requirements
D-Requirements
Conflicts
363
RequirementsSpecification
{abstract}
name : String
version : Version
comments : String
isPreparedFor
clientOrganization
SpecificationObject
{abstract}
Organization
isPreparedBy
developerOrganization
name : String
address : String
*
*
worksFor
*
Stakeholder
{abstract}
{disjoint, complete}
CRS
1
name : String
role : String
C-RequirementsSpecification
(from C-Requirements)
ConflictSpecification
(from Conflicts)
{overlapping, complete}
CFS
DRS
D-RequirementsSpecification
(from D-Requirements)
User
Customer
Developer
S takeho ld er
{abstract}
is A u th o rO f
author
S pecificatio n O b ject
{abstract}
* name : String
version : Version
comments : String
source
tra c e s T o
sourceTrace
target
targetTrace
Trace
* isChecked : Boolean
is T ra c e d F ro m
{disjoint, complete}
C -R eq u irem en t
{abstract}
(from C-Requirements)
Actor
(from C-Requirements)
Conflict
(from Conflicts)
isS o u rc e O f
is So u rc e O f
*
source
D -R eq u irem en t
{abstract}
(from D-Requirements)
is S o u rc e O f
source
S takeh o lder
{abstract}
source
364
E.2.2
Una especificacin de requisitosC puede considerarse que est compuesta por un conjunto de requisitosC, dentro del cual se incluyen los objetivos, los requisitos de almacenamiento de informacin, los requisitos
funcionales o casos de uso y los requisitos no funcionales, tal como puede
verse en la figura E.4.
C-RequirementsSpecification
C-Requirement
{abstract}
Actor
number : Integer
description : String
number : Integer
importance : Importance
urgency : Urgency
status : Status
stability : Stability
{disjoint, complete}
Objective
description : String
InformationRequirement
relevantConcept : String
timeInterval : TimeInterval
FunctionalRequirement
{alias: UseCase}
NonFunctionalRequirement
description : String
SpecificData
description : String
365
Step
0..1
Action
{abstract}
Condition
description : String
*
Exception
{ordered}
description : String
* termination : Termination
1
Action
{abstract}
Action
{abstract}
{disjoint, complete}
SystemAction
ActorAction
description : String
performance : Time
description : String
UseCaseAction
*
performs
UseCase
{alias: FunctionalRequirement}
*
performedBy
Actor
366
E.2.3
Una especificacin de requisitosD puede considerarse que est compuesta por un conjunto de requisitosD, dentro del cual se incluyen los tipos
de objetos y sus clasificaciones, las asociaciones entre los tipos de objetos
y las operaciones del sistema, tal como puede verse en la figura E.7.
D-RequirementsSpecification
isDisjoint : Boolean
isComplete : Boolean
generalization
D -R eq u irem en t
{abstract}
specialization
Classification
description : String
supertype
{disjoint, complete}
*
ObjectType
isAbstract : Boolean
subtype
Component
*
*
d e p e n d sO n
SystemOperation
resultType : String
name : String
type : String
multiplicity : Multiplicity
Parameter
Invariant
componentType
0..1
description : String
oclExpression : String
comments : String
name : String
type : String
description : String
Precondition
number : Integer
description : String
oclDescription : String
*
roleType
P ro p erty
{abstract}
Postcondition
number : Integer
description : String
oclDescription : String
d e p e n d sO n
Exception
Association
isDerived : Boolean
Role
name : String
2..* description : String
type : String
multiplicity : Multiplicity
comments : String
condition : String
oclCondition : String
description : String
oclDescription : String
367
m2
m1
m2
invariant
( isConstant xor isVariable xor isDerived ) and
( isConstant implies expression->isEmpty ) and
( isVarialbe implies initialValue = expression.text ) and
( isDerived implies derivationExpression = expression.text )
Property
{abstract}
name : String
Expression
description : String
type : String
text : String
comments : String
0..1
isConstant : Booolean
isVariable : Boolean
isDerived : Boolean
/initialValue : String
/derivationExpression : String
{disjoint, complete}
dependsOn
Attribute
Link
Association
368
E.2.4
Una especificacin de conflictos, representando o no a un documento fsico, est compuesta, obviamente, por conflictos. Cada conflicto, tal como
puede verse en la figura E.10, afecta a varios requisitosC y est compuesto por varias alternativas y una solucin.
A su vez, cada alternativa tiene uno o ms participantes como sus autores.
ConflictSpecification
affects
Conflict
description : String
solution : String
importance : Importance
urgency : Urgency
status : ConflictStatus
isAuthorOf
author
Alternative
description : String
C-Requirement
{abstract}
(from C-Requirements)
Stakeholder
{abstract}
*
Figura E.10: Estructura de los conflictos
369
.XSL
.XSL
.REM
.REM
Hojas de estilo
Proyectos
de Ingeniera
de Requisitos
(MS Access 97)
.REM
.REM
.HTML
.HTML
REM
REM
.XML
.XML
.REM
.REM
.REP
.REP
Internet
Repositorio
(an no implementado)
370
371
372
E.4.3
Vista de requisitosD
373
374
E.4.5
En general, la filosofa de la interfaz de usuario de la herramienta desarrollada, adems de seguir la filosofa WYSIWYG mostrando en todo momento al usuario el aspecto de la documentacin final en la ventana de la
parte derecha, es mostrar de la forma ms visual posible la estructura de
los objetos que puede manipular el usuario.
Cada objeto de los que aparecen en cualquiera de las cuatro vistas solapadas tiene asociado un men contextual que permite realizar una serie
de operaciones sobre l.
Al seleccionar un objeto, la informacin de la ventana de la parte derecha desplaza su contenido para mostrar la informacin correspondiente al
objeto, manteniendo as sincronizadas ambas vistas.
A la hora de implementar los distintos dilogos de edicin de los objetos de especificacin se ha conseguido un alto grado de reutilizacin al
utilizar dilogos solapados (ver figura E.16).
De esta forma, para editar un objeto de una clase que tiene por encima
uno o ms niveles de herencia se reutilizan los dilogos solapados correspondientes a sus superclases, por lo que slo es necesario implementar el
dilogo solapado correspondiente a los atributos o enlaces especficos de
la nueva clase y combinarlos despus en un nico dilogo.
375
376
377
Sin embargo, nos parece que an permanece la idea de que un requisito es bsicamente un prrafo de un documento, sobre todo por la gran
dependencia que presenta la herramienta con respecto a Word, y su escasa
integracin con herramientas de modelado hace que su integracin con el
resto del desarrollo sea bastante limitado.
378
E.6 Bibliografa
[Boehm et al. 1994] B. W. Boehm, P. Bose, E. Horowitz, y M.-J. Lee. Software Requirements as Negotiated Win Conditions. En Proceedings of
the First International Conference on Requirements Engineering, 1994. Disponible en http://sunset.usc.edu/TechRpts/Papers/NGPMRequirements93.ps.
[Booch et al. 1999] G. Booch, J. Rumbaugh, y I. Jacobson. The Unified Modeling Language User Guide. AddisonWesley, 1999.
[Brooks 1995] F. P. Brooks, Jr. The Mythical ManMonth: Essays on Software
Engineering Anniversary Edition. AddisonWesley, 1995.
[Davis 1995] A. M. Davis. Tracing: A Simple Necessity Neglected. IEEE
Software, 12(5), Septiembre 1995.
[Durn et al. 1997] A. Durn, A. Amaya, y M. Toro. Design of an Automatic Generator of ObjectRelational Persistency Mechanisms. En Actas de
las II Jornadas de Ingeniera del Software, San Sebastin, 1997.
E.6. Bibliografa
379
380