Sei sulla pagina 1di 35

Introduccin a la Prctica

Profesional
Ao 2002
Writing effective use cases
Alistair Cockburn
(Resumen - Traduccin)
Maggi, Germn
Palmitesta, Mauro
Facultad Regional Rosario
Rosario
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
Indice
1. Actores .....................................................................
1.1 En el comienzo de la produccin del caso de uso ...............................
1.2 Durante la descripcin del caso de uso, y durante el diseo ...............
1.3 Despus del diseo, preparando la implementacin del sistema ........
1.4 Caracterizando los actores primarios ...................................................
2
2
3
4
5
2. Alcance .....................................................................
2.1 Alcance uncional ...............................................................................
2.1.1 !ista Actor"#eta ...................................................................
2.1.2 $esumenes de Caso de %so ...............................................
2.2 Alcance de Diseo ..............................................................................
2.3 %sando iconos &r'icos para el alcance de diseo ............................
(
(
(
)
)
*
3. +res ,i-eles de #etas ..............................................
3.1 #eta de %suario .................................................................................
3.2 #eta de $esumen ..............................................................................
3.2.1 Casos de %sos de &ran altura .............................................
3.2 .u/unciones ......................................................................................
3.3 Conclusin ..........................................................................................
3.4 Encontrando el ni-el correcto .............................................................
3.4.1 #eta de %suario ...................................................................
3.4.2 !on&itud del caso de uso .....................................................
10
10
12
13
13
14
14
14
15
4.1recondiciones, Disparadores, 2arant3as .................
4.1 1recondiciones ...................................................................................
4.2 2arant3as m3nimas .............................................................................
4.3 2arant3as de 4ito ..............................................................................
4.4 Disparadores ......................................................................................
1(
1(
1)
1*
1*
5.Escenarios y 1asos ...................................................
5.1 El escenario principal, escenarios ......................................................
5.1.1 El escenario principal como el caso simple ..........................
5.1.2 Estructura com5n .................................................................
5.1.3 El cuerpo del escenario ........................................................
5.2 1asos ..................................................................................................
5.2.1 Directrices para los pasos ....................................................
20
20
20
20
21
21
22
(.E4tensiones ...............................................................
(.1 Condiciones de e4tensin ..................................................................
(.1.1 1iensa todos los allos ima&ina/les y cursos alternati-os....
(.1.2 $acionalizar la lista de e4tensiones .....................................
(.1.3 Com/inar allos ....................................................................
(.2 #ane6o de e4tensiones .......................................................................
(.2.1 7allos dentro de allos ..........................................................
(.2.1 Creando un nue-o caso de uso de una e4tensin ...............
2)
2*
2*
28
30
30
32
32
P%gina 2
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
1. El actor primario de un caso de uso
&' actor (rimario es 'a (ersona interesada en e' funcionamiento de' sistema )ue usa e'
mismo (ara o*tener uno de sus servicios. &' actor (rimario tiene una meta res(ecto a' sistema
)ue (uede ser satisfec+a mediante su o(eracin. &' actor (rimario es usua'mente, (ero no
siem(re, e' actor )ue dis(ara e' caso de uso.
-enera'mente, e' caso de uso comien.a (or)ue e' actor (rimario env/a un mensa0e, (resiona un
*otn, tec'ea a'go, o de a'guna otra forma inicia 'a +istoria. 1a2 dos situaciones comunes en )ue
e' iniciador de' caso de uso no es e' actor (rimario. 3a (rimera es cuando un em('eado de 'a
em(resa u o(erador te'efnico inicia e' caso de uso en nom*re de 'a (ersona a 'a cua' rea'mente
'e interesa, 'a segunda es cuando e' caso de uso es iniciado (or e' tiem(o.
!n em('eado de 'a em(resa u o(erador te'efnico es genera'mente una conveniencia
tecno'gica (ara 'a (ersona rea'mente interesada, a 'a cua' ''amaremos actor primario ulterior.
Con un cam*io de tecno'og/a es mu2 (ro*a*'e )ue e' actor (rimario u'terior sea e' iniciador
directo de' caso de uso, usando 'a 4e* o un sistema te'efnico autom%tico. !n e0em('o de esto
un c'iente )ue actua'mente +ace un (edido te'efnico. &n un redise5o (ara 'a 4e* de' sistema, e'
usuario (uede ingresar su (edido directamente, como en Ama.on.com.
6imi'armente, 'as divisiones de 7arketing o Auditor/a (ueden insistir en 'a (resencia de
casos de uso )ue son o(erados (or un em('eado. &n rea'idad no es 'a meta de 'os em('eados 'o
)ue +ace e0ecutar e' caso de uso, e''os son una conveniencia tecno'gica (ara 'os gerentes de
7arketing. a0o circunstancias 'igeramente diferentes, 'os gerentes de marketing (odr/an e''os
mismos e0ecutar 'os casos de uso.
&scri*imos 8re(orte de ventas (ara e' c'iente9 o 8e' em('eado...(ara e' :e(artamento de
7arketing9 (ara ca(turar )ue e' usuario de' sistema est% actuando (ara a'guien m%s. &sto nos
(ermite conocer )ue 'a interfa. de usuario 2 'os (ermisos de seguridad necesitan ser dise5ados
(ara e' em('eado, (ero e' c'iente o e' :e(artamento de 7arketing son 'os rea'mente interesados
en e' resu'tado.
&' tiem(o es e' otro e0em('o de un actor iniciador )ue no es e' o(erador. "o +a2 em('eados
dis(arando 'os casos de uso )ue corren cada medianoc+e, o a' fina' de' mes. &s f%ci', en este
caso, ver )ue e' actor (rimario es cua')uier (ersona )ue tenga inter;s de )ue e' caso de uso se
corra en ese momento.
&s f%ci' invo'ucrarse en 'argas discusiones en 'a cuestin de usuarios versus actor (rimario
u'terior. 6ugerimos )ue no gaste demasiado tiem(o en e''o. Cuando e' e)ui(o em(iece a
investigar e' dise5o de 'as interfaces de' usuario, e''os (ondr%n, o de*er/an (oner, gran energ/a
en estudiar 'as caracter/sticas de 'os usuarios rea'es. Cuando e''os revean 'os re)uerimientos,
encontrar%n <ti' sa*er e' actor (rimario u'terior de cada caso de uso, )uien es e' )ue rea'mente
im(orta.
!n estudiante nos (regunt astutamente 8= Cu%nto da5o +a2 si o*tengo ma' e' actor
(rimario en este (unto>. 3a res(uesta es 8"o muc+o9.
=Por )u; e' actor (rimario es (oco im(ortante e im(ortante a 'a ve.> 3os actores (rimarios
son im(ortantes en e' comien.o de 'a eta(a de re)uerimientos, 2 0usto antes de 'a entrega de'
sistema. &ntre esos dos (untos, se vue'ven (oco im(ortantes.
En el comienzo de la produccin del caso de uso
3istar 'os actores (rimarios nos a2udan a tener en mente e' sistema entero (or un *reve
momento. Por este motivo (ro(onemos nom*res de actores con e' (ro(sito de nom*rar todas
'as metas (ro(uestas, 2a )ue son 'as metas 'as )ue rea'mente nos interesan. &' motivo (or e' cua'
no (ro(onemos 'as metas directamente, es )ue de esta manera se (ierden muc+as de e''as.
Pro(oner 'os actores (rimarios esta*'ece una estructura de tra*a0o. Podremos entonces recorrer
esa estructura (ara o*tener 'a 'ista de metas.
P%gina ?
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
Crear un gran n<mero de actores (rimarios no nos (er0udica, 2a )ue en e' (eor de 'os
casos, generamos 'a misma meta dos veces. Cuando ins(eccionamos 'os actores 2 'as metas (ara
(riori.ar e' tra*a0o, encontraremos 2 e'iminaremos 'os du('icados.
Inc'uso con este (roceso de (ro(oner en dos (asos (actores 2 metas), es *astante
im(ro*a*'e )ue (ro(ongamos todas 'as metas )ue nuestro sistema necesita so(ortar. A'gunas
tienden a descu*rirse mientras se escri*en 'os (asos (ara e' mane0o de fa''os de' caso de uso.
6in em*argo, esto es a'go )ue no nos de*e afectar en esta eta(a tem(rana, (or 'o )ue +aremos 'o
me0or (ara ca(turar todas 'as metas 'istando (rimero todos 'os actores (rimarios.
!na rica 'ista de (rimeros actores confiere tres otras venta0as@
&nfoca nuestra mente en 'as (ersonas )ue usar%n e' sistema . &n e' documento de
re)uerimientos, escri*imos )uien es(eramos )ue sea e' actor (rimario, 'as descri(ciones
de su tra*a0o, su t/(ico am*iente 2 a(titudes. A' +acer esto 'os dise5adores de 'as
interfaces de usuario 2 de' sistema (ueden +acer corres(onder ;stos con esa +a*i'idad.
&sta*'ece 'a estructura (ara 'a 'ista actor-meta , )ue ser% usada (ara (riori.ar 2
(articionar e' tra*a0o de desarro''o.
Podr% ser usado como (articin de un gran con0unto de casos de uso en (a)uetes .
Durante la descripcin del caso de uso, y durante el diseo
!na ve. )ue em(e.amos a desarro''ar e' caso de uso en deta''e, e' actor (rimario se
convierte en (oco im(ortante. &sto (uede sor(render'o. =Au; ocurre si so*re 'a marc+a, 'os
escritores de casos de uso descu*ren )ue un caso de uso (uede ser usado (or varias c'ases de
actores> Por e0em('o, a'guien con m%s 0erar)u/a )ue e' em('eado (uede res(onder e' te';fono 2
+a*'ar con e' c'iente. 3os escritores de casos de uso usua'mente comien.an nom*rando
(rogresivamente e' actor (rimario en una forma gen;rica, usando ro'es como Receptor de
siniestros, Receptor de rdenes, productor de factura, 2 as/. &sto (roduce )ue 'os casos de uso
digan 8&' (roductor de facturas (roduce 'a factura...9, 2 8&' rece(tor de rdenes reci*e 'a
orden..9.
6e (uede mane0ar esto de varias maneras, cada una con (e)ue5as venta0as 2 desventa0as.
"inguna estrategia es c'aramente su(erior, s'o se de*e escoger una@
Alternativa 1: :ivida e' actor (rimario en 'os ro'es )ue e' 0uega manteniendo
una ta*'a )ue 'iste todas 'as diferentes c'ases de (ersonas 2 sistemas )ue son actores
(rimarios de a'g<n caso de uso, 2 todos 'os ro'es )ue e''os (ueden 0ugar. !se e'
nom*re de' ro' en e' cam(o de' actor (rimario 2 'a 'ista actor-ro' (ara o*tener de 'os
casos de uso 'as (ersonas 2 'os sistemas de' mundo rea'. &sta estrategia (ermite a 'os
escritores ignorar e' (ro*'ema de dar t/tu'os a 'os ro'es 2 sim('emente tratar con 'a
escritura de' caso de uso. A'guien, )ui.%s e' dise5ador de interfa. de usuario, usar% 'a
'ista actor-ro' (ara corres(onder e' caso de uso con 'os eventua'es usuarios. &'
(ro*'ema de 'a a'ternativa B es )ue +a2 una 'ista a(arte (ara mantener 2 'eer.
Alternativa 2: &scri*ir, en a'g<n 'ugar en e' frente de' caso de uso 8&' -erente
(uede usar cua')uier caso de uso )ue (uede usar e' em('eado, 2 a'go m%s. &' -erente
Regiona' (uede usar cua')uier caso de uso )ue (uede usar e' -erente, 2 a'go m%s. Por
'o tanto, donde escri*amos )ue e' actor (rimario es e' em('eado, se so*reentiende )ue
cua')uier (ersona con ma2or 0erar)u/a, e' -erente 2 e' -erente Regiona' en este caso,
(ueden tam*i;n usar e' caso de uso9. &sto es m%s f%ci' de mantener )ue 'a ta*'a actor-
ro', 2a )ue es im(ro*a*'e )ue cam*ie. 3a desventa0a es )ue 'as (ersonas gastar%n m%s
tiem(o recordando )ue cuando e' em('eado es e' actor (rimario, en rea'idad e' -erente
tam*i;n (uede usar e' caso de uso.
6e a'can.an *uenos resu'tados con am*os m;todos. Prefirimos usar 'a segunda a'ternativa
2a )ue tenemos una ta*'a menos )ue escri*ir, revisar 2 mantener.
P%gina C
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
&' (unto es )ue e' cam(o Actor Primario en 'a ('anti''a de' caso de uso se deva'<a a' (asar
e' tiem(o. &sto es norma', 2 no de*er/a (reocu(arnos.
Despus del diseo, preparando la implementacin del sistema
Dusto antes de entregar e' sistema, e' actor (rimario se vue've im(ortante otra ve..
"ecesitamos 'a 'ista de todas 'as (ersonas, 2 cu%'es casos de uso e''os usan. 3os necesitaremos
(ara@
&m(a)uetar e' sistema en unidades )ue se cargar%n en varias m%)uinas de usuario.
&sta*'ecer nive'es de seguridad (ara cada caso de uso (usuarios 4e*, internos,
su(ervisores, etc.).
Crear 'a ca(acitacin (ara 'os distintos gru(os de usuarios.
&n conc'usin, se de*e concentrar en 'a integridad 2 eEactitud de 'a 'ista de actores
(rimarios desde e' comien.o. El dao de oitir un actor es grande@ (odemos (asar (or a'to
una seccin entera de re)uerimientos. El dao de encontrar deasiados actores es !e"ueo@
a'go de tra*a0o eEtra en 'as eta(as tem(ranas +asta )ue 'os actores innecesarios sean e'iminados.
:es(u;s de eso, 'os actores se vue'ven en rea'idad (oco im(ortante. 6'o antes de 'a
im('ementacin se vue'ven otra ve. im(ortantes, (ara 'a (re(aracin de' (a)uete 2 'a
ca(acitacin.
Nota: Actores s! "oles
3a (a'a*ra actor im('ica una accin individual, (ero a veces tam*i;n )ueremos
denotar una categor/a genera' de individuos )ue (ueden 0ugar ese ro'. 6u(ongamos )ue
Fim es una c'iente de 7iTe' 6A, C+ris es un em('eado, 2 Pat es -erente de ventas.
Cua')uiera de e''os (uede Hacer un pedido. !sando e' 'engua0e de actores, decimos )ue
Fim, C+ris 2 Pat (ueden ser actores primarios (ara e' caso de uso Hacer un pedido.
Tam*i;n decimos )ue Cliente, Empleado, 2 Gerente de Ventas, son 'os actores
(ermitidos (ara Hacer un pedido. Podemos escri*ir )ue 8 un gerente de ventas (uede
usar cua')uier caso de uso )ue tam*i;n (ueda un em('eado9. 6on todas *uenas formas
de decir'o.
!sando e' 'engua0e de roles, decimos )ue Fim, C+ris 2 Pat son actores
individua'es. Cua')uiera de e''os (uede 0ugar e' ro' de Cliente, (ero s'o C+ris 2 Pat
(ueden 0ugar e' ro' de Empleado, 2 s'o Pat (uede 0ugar e' ro' de Gerente de Ventas.
&ntonces decimos )ue e' ro' )ue conduce e' caso de uso Hacer un pedido es
Recepcionista de Pedido, 2 cua')uiera de 'os tres (uede 0ugar ese ro'. &sta forma de
descri*ir es m%s (recisa )ue 'a (revia, 2 muc+os 'a (refieren.
Nota: Especializacin de actores en diagramas #M$
!73 (rovee un f'ec+a con (unta vac/a (ara indicar )ue un actor especializa a
otro. &sa f'ec+a resue've (arte, (ero no toda 'a controversia actor-ro'.
3o *ueno de 'a f'ec+a es )ue (ermite eE(resar en forma concisa )ue e' -erente
(uede +acer cua')uier cosa )ue e' em('eado (ueda. 3o ma'o es )ue muc+as (ersonas 'o
(iensan a' rev;s. "o (iensan a' -erente como una clase especial de &m('eado, o un
&m('eado como una clase especial de C'iente, )ue es 'o )ue 'os diagramas (retenden
re(resentar. &''os (iensan )ue e' -erente es ms que un &m('eado. &sto no es un gran
(ro*'ema, (ero se tendr% )ue 'idiar con estas reacciones.
3a es(ecia'i.acin no a2uda de' todo en 'a cuestin actor-ro'. !n Empleado de
ventas 2 un Empleado de auditora tiene casos de uso su(er(uestos. "o se (uede usar 'a
P%gina G
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
es(ecia'i.acin (ara indicar esta su(er(osicin, 2a )ue ninguno (uede +acer todo 'o )ue
e' otro (uede.
%aracterizando los actores primarios
Tener s'o una 'ista de actores no a2uda muc+o a 'os dise5adores. &''os de*er/an conocer
)ue c'ases de +a*i'idades tendr%n 'os actores, entonces dise5an e' com(ortamiento de' sistema 2
'as interfaces en *ase a eso. 3os e)ui(os )ue crean un 7a(a de' Perfi' de' Actor mantienen una
me0or visin de cmo su soft4are de*e satisfacer 'as necesidades de 'os usuarios. &sto es
(or)ue e''os (iensan en 'as +a*i'idades *%sicas de sus usuarios fina'es durante e' dise5o.
&' 7a(a de' Perfi' sim('ificado de' Actor tiene s'o dos co'umnas, como en e' siguiente
e0em('o@
7a(a de' Perfi' 6im('ificado de' Actor@
#obre Perfil: Abiente $ %abilidades
C'iente Persona de 'a ca''e, ca(acitado (ara usar (anta''a sensi*'e, (ero no se es(era
)ue o(ere un I-! con faci'idad. Puede tener dificu'tades de 'ectura, corto de
vista o da'tnico.
&m('eado de
mercader/as
devue'tas
Persona tra*a0ando con soft4are continuamente. Panta''a sensi*'e, usuario
sofisticado
Puede )uerer (ersona'i.ar su interfa.
-erente H usuario
ocasiona'
!sa interfa. gr%fica (ero no est% fami'iari.ado con ninguna funcin de soft4are en
(articu'ar. Im(aciente.
P%gina I
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
2. Alcance
Alcance es 'a (a'a*ra )ue usamos (ara definir 'a eEtensin de 'o )ue consideramos )ue
de*emos desarro''ar.
6eguir e' a'cance de' (ro2ecto, o inc'uso s'o e' a'cance de una discusin (uede ser dif/ci'.
!na *uena +erramienta (ara mane0ar discusiones so*re a'cance es 'a Lista in/out, 2a )ue es
eEtremadamente sim('e 2 efectiva. &sta (uede ser usada (ara contro'ar e' a'cance de 'as
discusiones en reuniones ordinarias as/ como tam*i;n e' a'cance de 'os re)uerimientos de'
(ro2ecto.
6im('emente de*emos construir una ta*'a con tres co'umnas, 'a (rimera con e' t(ico, 2 'as
dos siguientes con I# 2 &'( (ara denotar si est% dentro o fuera de' a'cance. Cada ve. )ue +a2a
una confusin so*re si a'g<n t(ico est% dentro de' a'cance, se agrega a 'a ta*'a 2 se consu'ta a
'as corres(ondientes (ersonas si est% I# o &'(. 3o maravi''oso es )ue aun)ue es
com('etamente c'aro (ara cada (ersona en 'a +a*itacin si un t(ico est% I# o &'(, e''os
usua'mente tienen visiones o(uestas. A)u/ tenemos un e0em('o de 'ista I#)&'(@
(!ico I# &'(
#acturar de a'guna forma J
Producir re(ortes so*re (edidos, (or e0em('o (or vendedor, (or (arte,
etc.
J
Com*inar (edidos en uno J
&ntregas (arcia'es, entregas demoradas, entregas errneas J
Todo servicio nuevo de sistema soft4are J
Cua')uier (arte de' sistema )ue no sea soft4are J
Identificacin de a'g<n soft4are (reeEistente )ue (uede ser usado J
Pedidos J
&!' Alcance (uncional
&' a'cance funciona' se refiere a 'os servicios )ue su sistema ofrece. &ste (uede ser
eventua'mente ca(turado (or 'os casos de uso. 6in em*argo, a' comen.ar un (ro2ecto, es
(ro*a*'e )ue no se cono.ca (recisamente e' a'cance funciona'. &' a'cance funciona' se definir%
a' mismo tiem(o )ue se identifican 'os casos de uso. Am*as tareas est%n entre'a.adas. 3a 'ista
I"K$!T a2uda con esto 2a )ue 'e (ermite definir e' '/mite de 'o )ue est% dentro 2 'o )ue est%
fuera de' a'cance. 3as otras dos +erramientas son 'a Lista Actor-Meta 2 'os Resmenes de
casos de uso!
&!'!' $ista Actor)Meta
3a lista Actor*+eta nom*ra todas 'as metas de' usuario )ue e' sistema so(orta, mostrando
e' contenido funciona' de' sistema.
3a lista Actor*+eta contrariamente a 'a lista I#)&'(, )ue muestra /tems )ue est%n dentro
2 fuera de' a'cance, inc'u2e s'o 'os servicios )ue actua'mente van a ser *rindados (or e'
sistema. Para +acer esta 'ista, se de*e construir una ta*'a de tres co'umnas. &n 'a (rimera
co'umna va e' nom*re de' (rimer actor, en 'a segunda 'a meta de' actor, 2 en 'a tercera 'a
(rioridad. A)u/ tenemos un e0em('o de 'a lista Actor*+eta@
Actor +eta Prioridad
A'guien Revisar (edidos B
6u(ervisor Cam*iar autori.aciones 2
Com(rador Cam*iar contacto de' (roveedor ?
P%gina L
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
C'iente Iniciar (edido B
3a lista Actor*+eta es e' (unto inicia' de negociacin entre e' usuario, e' financista de'
(ro2ecto 2 e' gru(o de desarro''o. 6e concentra en e' ('an 2 contenido de' (ro2ecto.
&' :iagrama (rinci(a' de casos de uso es una lista Actor*+eta en forma visua'. &s un
+ec+o )ue a 'as (ersonas 'es agrada 'a forma en )ue muestra 'a agru(acin de 'os casos de uso
(or actores (rimarios. Act<a como un diagrama de conteEto 2 una ta*'a gr%fica de contenidos
en'a.ada a 'a descri(cin de' caso de uso. A (esar de )ue (rovee estos dos (ro(sitos, e'
diagrama no *rinda una +o0a de tra*a0o (ara estudiar 'os datos de estimacin de' (ro2ecto. 6i
usa e' diagrama, necesitar% recoger 'a (rioridad 2 'a informacin de estimacin 2 'uego construir
una estructura de tra*a0o.
Para )ue e' diagrama cum('a su (rinci(a' (ro(sito mant;nga'o ordenado, mostrando s'o
casos de uso con nive' de meta de usuario o ma2or.
&!'!& "es*menes de caso de uso
:estacamos 'a im(ortancia de administrar su energ/a tra*a0ando con 'os nive'es de
(recisin m%s *a0os tanto como sea (osi*'e. 3a lista Actor*+eta es e' nive' de (recisin m%s
*a0o (ara descri*ir e' com(ortamiento de' sistema. &sta es mu2 <ti' (ara tra*a0ar con 'a imagen
tota' de' sistema. &' siguiente nive' de (recisin ser% e' escenario (rinci(a' o Resuen de caso
de uso.
3os res,enes de caso de uso son una descri(cin de 2-I oraciones de' com(ortamiento
de' sistema, mencionando so'amente 'a actividad m%s significativa 2 'os fa''os. 3os res,enes
de casos de uso a2udan a recordar a 'as (ersonas de 'o )ue (asa en e' caso de uso 2 son <ti'es
(ara estimar 'a com('e0idad de' tra*a0o.
&n a'gunos (ro2ectos, en 'os )ue +a2 *uena comunicacin interna 2 una continua discusin
con 'os usuarios, nunca se escri*en m%s )ue estos res,enes de caso de uso (ara ca(turar
re)uerimientos. &''os de0an e' resto de 'os re)uerimientos (ara 'as continuas discusiones,
(rototi(os, 2 frecuentes incrementos.
6e (uede re(resentar e' resuen de caso de uso en una ta*'a, )ue es una eEtensin de 'a
lista Actor*+eta, o directamente en e' cuer(o de' caso de uso como su (rimer *os)ue0o.
Actor +eta Res,en
6taff de
Produccin
Pre(arar fuentes
de datos digita'
cartogr%fica
&' staff de (roduccin convierte datos digita'es eEternos a un
formato est%ndar, va'idando 2 corrigi;ndo'a (ara com*inar'a con
una *ase de datos o(eraciona'. 3os datos son cata'ogados 2
a'macenados en una 'i*rer/a de fuente s digita'es.
&!& Alcance de diseo
&' a'cance de dise5o es 'a am('itud de' sistema. Podr/a decirse 8'a am('itud es(acia'9 si e'
soft4are ocu(ara es(acio. &s e' con0unto de sistemas, +ard4are 2 soft4are, )ue est%n *a0o
dise5o o discusin. 6i estamos dise5ando un ca0ero autom%tico, de*emos (roducir +ard4are 2
soft4are )ue ir%n en e' ca0ero. 3o )ue de*emos dise5ar es e' ca0ero 2 todo 'o )ue +a2 en ;'. 3a
red con 'a )ue de*e comunicarse no est% *a0o nuestro a'cance de dise5o.
:e a+ora en m%s, cuando se escri*a alcance so'amente, me referir; a' alcance de diseo.
&sto es (or)ue e' a'cance funciona' est% adecuadamente definido (or 'a lista Actor*+eta 2 'os
casos de uso, mientras )ue e' a'cance de dise5o es un asunto de inter;s en cada caso de uso.
&s incre/*'emente im(ortante )ue e' escritor 2 e' 'ector est;n de acuerdo so*re e' alcance
de diseo de un caso de uso. &' costo de e)uivocarse a)u/ (uede mu'ti('icarse con desastrosos
resu'tados (ara e' contrato. 3os 'ectores de un caso de uso de*en r%(idamente ver 'o )ue se
entiende )ue est% dentro de' '/mite de' sistema. &sto no ser% evidente s'o con e' nom*re de'
P%gina M
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
caso de uso o e' actor (rimario. 3os sistemas de diferentes tama5os 'o (resentan inc'uso dentro
de' mismo caso de uso.
!sua'mente, e' escritor de caso de uso considera e' alcance de diseo de' sistema como
a'go o*vio, tan o*vio )ue no 'o mencionan. 6in em*argo, cuando eEisten muc+os escritores 2
'ectores, e' alcance de diseo no es tan o*vio. !n escritor (uede (ensar a toda 'a organi.acin
como alcance de diseo, otro en todos 'os sistemas de soft4are de 'a organi.acin, otro en e'
nuevo sistema c'ienteKservidor, 2 otro s'o en e' c'iente.
3os 'ectores, sin indicios so*re 'o )ue se trata, se (ierden o ma' inter(retan e' documento.
!na so'ucin es eti)uetar cada caso de uso con su a'cance de dise5o. 3os nom*res de
a'cance de dise5o son@
Alcance de #egocio : significa )ue se est% discutiendo e' com(ortamiento de toda 'a
organi.acin (ara ''egar a 'a meta de' actor (rimario. 6e (uede uti'i.ar e' mismo nom*re
de 'a em(resa (ara nom*rar e' a'cance. 6i se trata de un de(artamento de 'a misma, se
(uede uti'i.ar e' nom*re de' mismo. 3os casos de uso de' negocio est%n escritos con un
a'cance de "egocio.
Alcance de sistea @ 6e uti'i.a e' nom*re de' sistema (ara eti)uetar e' a'cance.
6ignifica 0ustamente 'a (ie.a de +ard4are o soft4are de' )ue est% encargado de
construir. #uera de' sistema est%n todas 'as (artes de +ard4are, soft4are 2 (ersonas con
'as )ue se de*e interactuar.
Alcance de subsistea @ 6e uti'i.a e' nom*re de' su*sistema (ara eti)uetar e'
a'cance. 6ignifica )ue se +a a*ierto e' sistema (rinci(a' 2 se tratar% cmo sus (artes
tra*a0an.
&!+ #sando iconos gr,icos para resaltar el alcance
de diseo
6e (uede ad0untar un gr%fico a 'a i.)uierda de' t/tu'o de' caso de uso, (ara se5a'ar e' a'cance
de dise5o a' 'ector antes de em(e.ar a 'eer. 6e (ueden uti'i.ar 'os siguientes iconos (ara
re(resentar e' a'cance de dise5o cada caso de uso@
!n caso de uso de' negocio tiene a 'a organi.acion como a'cance de dise5o. 6u icono es
un casita de co'or gris si se trata de toda 'a organi.acin como una ca0a negra, o
*'anco si +ace referencia a un de(artamento o staff dentro de 'a misma.
!n caso de uso de' sistema tiene un a'cance de sistema. 6u icono es una ca0a co'or gris
si se 'a trata en su tota'idad como ca0a negra, o *'anco si se +ace referencia de
cmo tra*a0an sus com(onentes.
!n caso de uso de com(onente tiene un a'cance de su*sistema. 6u icono es un torni''o
E-emplos
(raba-aos !ara la Co!a.a telefnica +i(el /0A01 la cual est diseando un nuevo
sistea1 Acura1 !ara toar las rdenes de servicio $ actuali2aciones0 Acura consiste de
una estacin conectada a un servidor0 El servidor estar conectado a un ainfrae
corriendo el vie-o sistea1 3//&1 "ue es una terinal conectada al ainfrae0 #o
estaos autori2ados a 4acer cabios a 3//&0 /olaente usaos sus interfaces $a
e5istentes0
P%gina N
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
3os actores (rimarios de acura inc'u2en a e' c'iente, e' rece(cionista, a'gunos gerentes, 2 e'
sistema 66$ (estamos seguros )ue 66$ no est% en nuestro a'cance de dise5o).
Oamos a encontrar a'gunas de 'as metas )ue e' sistema de*e so(ortar. &' m%s o*vio es
8Agregar un nuevo servicio9. :ecidimos )ue e' actor (rimario es e' rece(cionista, actuando con
e' c'iente.
3a (rimera (regunta a +acerse es 8= Au; es e' sistema *a0o discusin> 8. :e esto deducimos
)ue +a2 dos cosas )ue nos interesan@
7iTe' 6.A. &stamos interesados en 'a (regunta 8= Cmo es visto e' servicio de
7iTe' 6.A. (or 'os c'ientes, mostrando 'a nueva im('ementacin de' servicio
com('etamente, desde 'a demanda inicia' +asta 'a im('ementacin>9 &sta (regunta es de
do*'e inter;s. 3os gerentes de 'a Com(a5/a )uerr%n ver cmo e' nuevo sistema a(arece
a 'a vista de' mundo eEterior, 2 e' e)ui(o de im('ementacin )uerr% e' conteEto en e'
cua' estar% e' nuevo sistema. &ste caso de uso ser% escrito con a'cance de negocio ,
con e' cam(o de a'cance eti)uetado 7iTe' 6A, 2 sin +acer mencin de 'os 0ugadores
internos de 'a com(a5/a (rece(cionista, de(artamentos, etc.) &sta c'ase de caso de uso s
usua'mente ''amado caso de uso de' negocio, 2a )ue trata so*re e' negocio en s/.
Acura. &stamos interesados en 'a (regunta 8= Cmo se ve e' servicio de Acura,
en sus interfaces con e' rece(cionista o e' c'iente (or un 'ado, 2 con e' sistema 66$ en
e' otro>9. &ste es e' caso de uso en e' )ue 'os dise5adores se interesar%n m%s, 2a )ue es
eEactamente 'o )ue de*en construir. &' caso de uso ser% escrito con a'cance de sistema
, con e' cam(o de a'cance eti)uetado como Acura. &''os mencionar%n 'i*remente e'
rece(cionista, de(artamentos 2 otras com(utadoras, (ero no +ar%n mencin de 'os
su*sistemas de 'a estacin 2 de' servidor.
Produciremos entonces dos casos de uso. Para evitar re(etir dos veces 'a misma
informacin, escri*imos e' caso de uso con a'cance de "egocio en un nive' m%s a'to (*arri'ete),
mostrando a 7iTe' 6A res(ondiendo a 'a demanda, cum('i;ndo'a o +aci;ndo'e a'g<n cam*io, 2
co*r%ndo'a. &' (ro(sito de caso de uso con a'cance de negocio es mostrar e' conteEto )ue
rodea a' nuevo sistema. &ntonces descri*iremos e' mane0o en G-20 minutos de 'as demandas en
deta''e en e' caso de uso con meta de usuario teniendo a Acura como a'cance de dise5o.
Caso de uso: Agregar un nuevo servicio 6#egocio7
Actor !riario: Cliente
Alcance: +i(el /A
#ivel: Res,en
80 El cliente llaa a +i(el /A1 deandando un nuevo servicio000
20 +i(el /A cu!le con000
Caso de uso: Agregar un nuevo servicio 6Acura7
Actor !riario: Rece!cionista
Alcance: Acura
#ivel: 'suario
80 El cliente llaa1 $ !lantea la deanda al rece!cionista0
20 El rece!cionista encuentra el cliente en Acura0
90 Acura !resenta el actual !a"uete de servicios del cliente00000000
"o se escri*ir%n 'os casos de uso con a'cance &stacin Acura o 6ervidor Acura, 2a )ue e''os
no son de inter;s (ara nosotros en este momento. 7%s tarde, a'guien en e' e)ui(o de dise5o
(uede decidirse (or documentar e' dise5o de' su*sistema de Acura usando casos de uso. &n ese
momento, e''os tendr/an )ue escri*ir dos casos de uso, uno con e' a'cance &stacin Acura, 2
otro con a'cance 6ervidor Acura. 7i eE(eriencia es )ue usua'mente estos casos de uso nunca
P%gina B0
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
son escritos, 2a )ue +a2 otras t;cnicas m%s adecuadas (ara documentar 'a ar)uitectura de 'os
su*sistemas.
P%gina BB
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
3.Tres Niveles de Metas
1emos visto )ue am*os, 'as metas 2 'as interacciones en un escenario (ueden ser
descom(uestas en metas e interacciones de ma2or deta''e. &sto es norma', 2 'o vemos
cotidianamente en nuestras acciones. 3os siguientes (%rrafos i'ustran como nuestras metas
contienen su*-metas 2 su*-metas de su*-metas.
:;uiero reali2ar esta venta0 Para 4acer esto debo llevar a coer al encargado
co!ra0 Para 4acer esto tengo "ue retirar dinero del ca-ero autotico0 Para 4acer esto
debo obtener la a!robacin de la solicitud de identificacin del ca-ero0 Para 4acer esto
debo 4acer "ue se lea i tar-eta bancaria0 Para 4acer esto debo buscar la ranura donde
insertar la tar-eta bancaria0<

&' ana'ista se encontrar% con 'a (regunta en cada oracin =Cu%' es e' nive' de meta )ue
de*emos descri*ir> :ar nom*res a 'os nive'es de 'as metas (uede a2udarnos a res(onder esta
(regunta. 3as siguientes secciones descri*en e' nom*re de 'os nive'es 2 sus res(ectivos iconos.
=igura 8>0 ilustra los nobres $ los iconos re!resentantes de los niveles0
+!' Meta de #suario .%olor Azul, Niel del Mar /
3a meta de usuario es de gran inter;s (ara 'a ca(tura de re)uisitos dirigida (or casos de
uso. 3a meta de usuario de un actor (rimario se define como e' o*0etivo (ara conseguir 'a
fina'i.acin de un tra*a0o. 3a meta de usuario corres(onde a un conce(to de ingenier/a de
(roceso de negocio ''amado proceso elemental de negocio.
!na meta de usuario (one atencin en 'as (reguntas@
=&' actor (rimario se retira fe'i. 'uego de rea'i.ar e' tra*a0o>
=3a (erformance de' tra*a0o de' usuario de(ende de cuantas veces +aga esto +o2>
Tam*i;n (one atencin en 'a (rue*a de' caf; de descanso, 8'uego de fina'i.ar esto, (uedo
tomarme un tiem(o de descanso9. &n 'a ma2or/a de 'as situaciones, (asa e' siguiente test@
una (ersona, un asiento de 2 a 20 minutos
P%gina B2
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
"i "realizar el proceso completo de una compra de una su#asta on$line%, ni "logearse%
genera'mente son metas de usuario@
!na su*asta on-'ine ''eva varios d/as rea'i.ar'a, entonces 'a (rue*a mencionada
anteriormente de una (ersona en un asiento durante 2 a 20 minutos fa''ar%.
3ogearse C2 veces en una dis(uta no +ar% a 'as res(onsa*i'idades de' tra*a0o de una
(ersona o a' (ro(sito de usar e' sistema.
!ti'i.ando 'os mismos m;todos de (rue*a "Registrar un nuevo cliente% & "comprar un
li#ro%, son candidatos a ser metas de usuario@
Registrar C2 nuevos c'ientes tiene sentido (ara un vendedor.
Com(rar un 'i*ro (uede ser rea'i.ado com('etamente en un asiento entre 2 2 20
minutos.
Por a+ora (arece ser *astante f%ci' 2 no tener dificu'tad a'guna e' (roceso de reconocer 'as
metas correctas. Pero en 'a (r%ctica nos encontraremos con un gran n<mero de frases 8eEtra5as9
o casos de uso )ue (or a'guna ra.n no 'ucen correctamente, 2 esto (rovocar% un gran
desconcierto a' e)ui(o de tra*a0o.
6e (uede encontrar e' camino correcto (ara identificar metas eE(resando 'os nive'es de 'as
metas de distintas formas, nosotros uti'i.aremos una escala de colores e iconos.
3a esca'a de co'ores va desde e' co'or *'anco (asando (or e' a.u', /ndigo, fina'i.ando en e'
negro. 6iendo m%s c'aros@
Color 3lanco re(resenta 'os a'tos nive'es@
"Completar una compra on$line%
"Co#rar por un accidente de auto%
Color a2ul corres(onde a 'a meta de usuario
"Registrar nuevos clientes%
"Comprar un li#ro9
Color .ndigo re(resenta a0os nive'es
"'uscar li#ro%
Color negro
"utilizado para indicar que la meta es de tan de #a(o nivel que sera un error escri#ir
un caso de uso para esta%
3a idea con 'a met%fora :nivel del ar < es 'a )ue e' cie'o sigue (or ki'metros 2
ki'metros so*re e' :nivel del ar <, 2 e' agua sigue (or ki'metros 2 ki'metros (or
de*a0o de' :nivel del ar <, (ero +a2 un nive' donde se encuentran e' cie'o 2 e' mar )ue es
e' :nivel del ar <. 1aciendo una ana'og/a con e' nive' de 'as metas )ue (ersiguen 'os
casos usos, eEisten muc+os nive'es de metas so*re 'as metas de usuario 2 muc+as de*a0o de
e''as. Por consiguiente, 8e' nive' de' mar9 corres(onde con 'as metas de usuario.
!na :nube < o un :barrilete : indica )ue e' nive' se encuentra (or encima de' 8nivel
del ar < 2 un :!e2 : o una :ale-a : indica )ue se encuentra (or de*a0o de'
nive' de' mar.
&s im(ortante destacar )ue 'as metas )ue rea'mente son m%s im(ortante escri*ir son 'as
metas de usuario 2 )ue e' sistema )ueda 0ustificado (or e' so(orte )ue *rinda a 'as metas de
usuario. !na meta de usuario (uede ser de 'a siguiente forma@
:'sted es una telefonista en su !uesto de traba-o0 /uena el tel?fono0 'sted atiende0 @a
!ersona "ue lla le dice Ablablabla000B usted gira 4acia la co!utadora0 @o "ue esta en su
ente en este oento1 es lo "ue usted necesita resolver ACB0 'sted traba-a con abos1
P%gina B?
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
con la co!utadora $ con el cliente1 !or un oento $ finalente resuelve ACB0 'sted se
retira de la co!utadora1 des!ide a la otra !ersona $ cuelga el tel?fono<

J es 'a meta de usuario, nive' de' mar , o co'or A.u'. Para reso'ver E, usted resue've
un n<mero de metas de *a0o nive' o co'or /ndigo. 3a (ersona en e' te';fono (ro*a*'emente ten/a
una meta de a'to nive' o co'or *'anco en mente 2 reso'viendo E es so'o un (aso (ara 'ograr 'a
meta.
&' nive' de' mar , co'or A.u' o metas de usuario son incre/*'emente im(ortantes 2
estas merecen un gran esfuer.o (ara entender'as 2 (oder identificar )ue es 'o )ue 'as
constitu2en. !sted (odr/a 0ustificar 'a eEistencia de' sistema con e' so(orte a 'as metas de
usuario de 'os actores (rimarios. !n corto resumen de una funcin de' sistema es 'a 'ista de
metas de usuarios )ue rea'i.a 'a funcin. &sta 'ista es 'a *ase (ara 'a (riori.acin, servicio,
divisin de' e)ui(o, estimacin 2 desarro''o.
3os casos de uso ser%n escritos con nive'es so*re 2 de*a0o e' nive' de' mar (or e''o es
conveniente (ensar en e' enorme n<mero de metas )ue eEiste de*a0o e' nive' de' mar 2 (or 'o
tanto casos de uso 8*a0o e' agua9 'o )ue im('ica )ue rea'mente no tengamos inter;s en 'eer ni
tam(oco escri*ir casos de uso de *a0o nive' de*ido a' nive' de deta''e )ue tendr/an 'os mismos.
+!& Meta de "esumen .%olor 0lanco, Nu0e , 1arrilete /
!na meta resumen invo'ucra m<'ti('es metas de usuario. &stas sirven a tres (ro(sitos en
'a descri(cin de' sistema@
7uestra e' conteEto en e' cua' o(eran 'as metas de usuario
7uestran 'a secuencia de' cic'o de vida de 'as metas re'acionadas
Proveen una ta*'a de contenido (ara am*os nive'es de casos de uso, tanto como (ara
casos de uso de nive' mas *a0o de co'or *'anco 2 como (ara casos de uso a.u'es.
3os casos de uso resumen se encuentran en e' co'or *'anco dentro de 'a esca'a de co'ores.
3os casos de uso resumen tienen (asos )ue son *'ancos, a.u'es u ocasiona'mente /ndigo
(e0em('o 3ogIn).
"o +emos encontrado <ti' distinguir entre distintos nive'es de *'anco, (ero ocasiona'mente
'a (ersona encargada de 'as casos de uso (iensa 8este caso de uso es, definitivamente *'anco,
Pest% en 'as nu*esQ9. &n t;rminos de 'a met%fora :nivel del ar < diremos )ue 'a ma2or/a
de 'os casos de uso son como un :barrilete < 0usto arri*a de' :nivel del ar < 2 e' resto
est%n camino +acia 'as 8nubes 9.
3os casos de uso resumen t/(icamente se e0ecutan durante +oras, d/as, semanas, meses o
a5os.
&' e0em('o siguiente muestra un f'u0o (rinci(a' de un caso de uso )ue se e0ecuta durante un
'argo tiem(o donde su (ro(sito es agru(ar casos de uso a.u'es distri*uidos en varios a5os.
&s necesario )ue usted (ueda reconocer 'os gr%ficos como una casita negra 'o )ue
im('ica )ue e' a'cance de' caso de uso es 'a com(a5/a 2 como una nube )ue muestra )ue e'
nive' de' caso de uso es mu2 a'to (se encuentra 'as nu*es). 3as frases en italic +acen referencia a
casos de uso de nive'es m%s *a0os.
Caso de 'so: :'tili2ar una !li2a de seguros<
Actor Priario: El cliente
Alcance: @a co!a.a de seguros
#ivel de eta: Resuen 63lanco7
=lu-o de sucesos !rinci!al
P%gina BC
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
80 Cliente obtiene un !recio !or una !li2a
20 Cliente co!ra !li2a
90 Cliente 4ace una deanda contra la !li2a
>0 Cliente cierra !li2a
+!&!' %asos de uso de gran altura
Recomendamos escri*ir 'os casos de usos mas a'tos (ara cua')uier sistema )ue usted
dise5e. :aremos una descri(cin mas (recisa (ara *uscar estos casos de uso@
B. Comen.ar (or 'a meta de usuario
2. Preguntarse = A )u; actor (rimario ((referentemente fuera de 'a organi.acin)
rea'mente sirve esta meta>
AA es e' 8actor (rimario u'terior9 de 'os casos de uso de 'os cua'es tratamos de reunir.
?. &ncontrar e' a'cance de dise5o mas a'to :/< ta' )ue e' AA todav/a )uede afuera de :/<0
"om*re e' a'cance 869. "osotros encontramos tres de a'cance de dise5o m%s a'tos
a'cance@
3a com(a5/a
3a com*inacin de 'os sistemas de soft4are
&' sistema de soft4are )ue est% siendo dise5ado
C. &ncontrar 'as metas de usuario )ue tienen como actor (rimario u'terior a AA 2 a'cance
de dise5o /0
G. Tra*a0e en 'as metas resumen -- )ue e' Actor AA tiene contra e' sistema 6. &ste caso
de uso agru(a varios casos de usos de nive' de' mar.
&n todo 'o dic+o, +a2 usua'mente so'o C oG de estos casos (--) de gran a'tura, a<n en 'os
sistemas m%s grandes. 3os casos de uso de gran a'tura resumen 'os intereses de ? o C actores
(rimarios u'teriores AA@
&' c'iente, como e' actor (rimario mas a'e0ado de 'a com(a5/a
&' de(artamento de marketing, como e' actor (rimario mas a'e0ado de 'a com*inacin
de 'os sistemas de soft4are.
&' de(artamento de seguridad, como e' actor (rimario mas a'e0ado de' sistema de
soft4are mismo.
&stos casos de uso de gran a'titud son mu2 <ti'es en 'a integracin de' tra*a0o 2 es
a'tamente recomenda*'e escri*ir'os, (or 'as ra.ones antes mencionadas. &stos no son (rove/dos
(or e' e)ui(o con 'os re)uerimientos funciona'es de' sistema a ser desarro''ado 2a )ue residen
en 'as metas de usuarios (nive' de' mar ).
+!+ 2u0,unciones .%olor 3ndigo, 0a-o el agua , Alme-a /
3os nive'es de su*-funcin son a)ue''os re)ueridos (ara ''evar a ca*o 'as metas de usuario.
Inc'u2a estos nive'es so'o cuando se vea o*'igado a +acer'o, (or e0em('o en 'as ocasiones )ue
;stos son necesarios (ara me0orar 'a 'ectura, o (or)ue muc+as otras metas 'os uti'i.an.
&0em('os de casos de usos de su*-funciones (ueden ser@
8Caso de uso@ encontrar un (roducto9
8Caso de uso@ encontrar un c'iente9
8Caso de uso@ guardar como.....(un arc+ivo)9
P%gina BG
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
Casos de uso de su*-funciones se encuentran *a0o e' agua, en e' sector de co'or /ndigo en 'a
esca'a de co'ores.
&Eisten a'gunos casos de uso de su*-funciones )ue rea'mente se encuentran 8*a0o e' agua9,
es decir en 'as (rofundidades de' mar 2 se sit<an en e' *arro dentro de 'a esca'a. &' co'or de
estos <'timos es negro, (ara significar )ue :esto son de tan ba-o nivel1 "ue e5!andirlos ser.a
un error1 $a "ue co!licar.a la inter!retacin<0 1aciendo una ana'og/a con 'os o*0etos )ue
se encuentran enterrados en e' fondo de' mar ''amaremos a ;stos a'me0as . &s conveniente
nom*rar de a'guna forma es(ecia' a estos casos de uso de u'tra-*a0o-nive', (ara )ue cuando
a'guien escri*a uno, usted (odr% indicar )ue este ti(o de casos de uso no de*er/a ser escrito.
3os casos de uso a.u'es tienen (asos /ndigo, 2 'os (asos /ndigo tienen (asos mas
(rofundos co'or /ndigo como 'o muestra 'a figura BG.
&n ;sta figura tam*i;n encontrar% e' nive' mas a'to de sus metas contestando su
(regunta =(or)ue e' actor +ace esto>. &sta t;cnica 'a veremos mas ade'ante en e' (unto 2.G.B.
&ncontrar 'a meta de usuario.
+!4 %onclusin acerca de los nieles de metas
Por a+ora 'os (untos m%s im(ortantes acerca de 'os nive'es de metas son@
Poner muc+a energ/a en 'a deteccin acerca de 'os nive'es de metas de' nive' de' mar.
&stos nive'es son rea'mente 'os im(ortantes.
&scri*ir 'os (ocos casos de usos de gran a'tura (ara (roveer e' conteEto (ara 'os dem%s
casos de usos.
"o 'e d; demasiada im(ortancia si su frase mas frecuente en 'as oraciones de 'os
re)uerimientos de' sistema 81acer.......9 a(arece o no como un titu'o de un caso de uso.
+!5 Encontrando el niel correcto de las metas
3o m%s com('icado de rea'i.ar 'a ca(tura de re)uisitos de soft4are mediante casos de uso
es encontrar e' nive' correcto de 'as metas de 'os mismos. 1aciendo +inca(i; en esto u'timo
('antearemos 'os siguientes (untos@
&ncontrar 'a meta de usuario
!se de ? a B0 (asos (or caso de uso
+!5!' Encontrar la meta de usuario
&n todos 'os nive'es de 'as metas, so'o un nive' se destaca en car%cter de im(ortancia (or
encima de 'os otros.
!sted est% descri*iendo un sistema, tanto de negocio o como de com(utadora, 'a (ersona
)ue a usted 'e merece im(ortancia es )uien usa e' sistema. &sta (ersona )uiere a'go de su
sistema en e' instante. 3uego de o*tener'o, esta (ersona (uede continuar 2 rea'i.ar a'go m%s.
=Aue es 'o )ue *uscan de su sistema, en ese mismo instante>
&ste nive' tiene muc+os nom*res. :esde e' (unto de vista de' mode'ado de (roceso de
negocio, se 'os ''ama :Proceso eleental de negocio<, visto desde e' (unto de vista de casos
de uso se 'os ''ama :etas de usuario<.
3a (rimera (regunta es = &s esto 'o )ue rea'mente )uiere e' actor (rimario de nuestro
sistema, en ese mismo instante> Para muc+os 'a (rimera res(uesta es "$. 7uc+os (rinci(iantes
descri*en en sus (rimeros *os)ue0os casos de uso *a0o nive' o *a0o e' agua, (ensando )ue est%n
en e' nive' de' mar o meta de usuario. Para encontrar un nive' mas a'to de 'a meta es decir 'a
meta de usuario, de*e (reguntarse@
P%gina BI
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
=Au; *usca rea'mente e' actor (rimario>
=Por )u; esta +aciendo esto e' actor>
3a res(uesta, de*er/a ser 'a meta rea' de de' actor. Pero en caso de no encontrar'a de*e
(reguntarse 'a (regunta de nuevo, +asta )ue encuentre 'a meta rea' de' usuario. 3o interesante de
esta (rue*a es )ue aun siendo su*0etiva, distintas (ersonas (ronto convergen en resu'tados mu2
simi'ares.
=igura 8D0 Pregunte E !or "ueF Para cabiar de nivel
+!5!& #se de + a '6 pasos por caso de uso
&ste (unto se centrar% en 'a 'ongitud de' caso de uso.
7uc+os casos de uso *ien escritos tienen de ? a M (asos. "unca +emos visto un caso de uso
mas 'argo )ue BB (asos )ue no +a2a )uedado me0or cuando fue acortado. "o +a2 fundamentos
tericos de' (or)ue de esto, (ero es (osi*'e )ue sea )ue 'as (ersonas no to'eran o no (ueden
(ensar en t;rmino de (rocesos )ue tomen mas de B0 (asos.
!ti'ice 'o anterior (ara me0orar su escritura, si usted tiene mas de die. (asos,
(ro*a*'emente +a inc'uido deta''es de 'a interface de usuario, o +a escrito (asos de acciones a
mu2 *a0o nive'. Para corregir su escritura@
Remueva 'os deta''es de interfaces de usuario
&'eve e' nive' de 'a meta con 'a (regunta =Por )u;> Para encontrar e' nive'
(rEimo mas a'to
Com*ine (asos.
P%gina BL
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
4. Precondiciones, Disparadores,
Garantas
4.1 Precondiciones
3a (recondicin de un caso de uso anuncia 'o )ue e' sistema asegurar% )ue se +a cum('ido
antes de (ermitir e' comien.o de' caso de uso. 3uego de asegurarse )ue 'a (recondicin es
verdadera, esta no ser% revisada durante e' caso de uso.
!n e0em('o com<n es@
:Precondicin: el usuario $a se 4a logeado $ el logeo 4a sido vlido<0
-enera'mente tener una (recondicin en un caso de uso , indica )ue a'g<n otro caso de
uso A se encuentra corriendo 2 necesita 'a e0ecucin de , (or 'o )ue esta*'ece 'as
condiciones )ue se de*en cum('ir (ara su e0ecucin.
6e (uede decir )ue e' Caso de 'so 91 :reali2ar un !edido<, de(ende de una (recondicin
(8'ogearse9). Inmediatamente mirar/a (ara ver )ue Caso de !so contiene esta funciona'idad
()ui.%s e' Caso de 'so 2 es ''amado 'ogearse). !n *uen m;todo es crear un caso de uso de un
nive' m%s a'to )ue contenga am*os casos de uso 2 2 ?, de esta manera e' 'ector de' caso de uso
(uede ver 'a manera en )ue se en'a.an. &n e' e0em('o antes mencionado, e' caso de uso resumen
(odr/a ser e' caso de uso B, 8!sar 'a a('icacin9. Auedando de su estructura de 'a siguiente
manera@
Caso de 'so 8: !sar 'a a('icacin
#ivel: Resumen
Precondicin: "o +a2
B. &m('eada 'ogearse.
2. &m('eada rea'i.a un (edido.
Caos de 'so 2: 3ogearse
#ivel: 6u*funcin
Precondicin: "o +a2
...
Caso de 'so 9: Rea'i.ar un (edido
#ivel@ !suario
Precondicin: &m('eada se encuentra 'ogeada
...
#&(A@ "o todo e' mundo tra*a0a de esta forma escri*iendo e' caso de uso de mas a'to nive'
(ara mostrar como se 0untan 'os nive'es m%s *a0os. &s decir usted (odr/a en e' caso de'
e0em('o anterior ado(tar su (ro(ia forma de tra*a0o so'amente definiendo 'os casos de uso B 2
2, (ero de*er/a estar ca(acitado (ara deducir a (artir de 'as descri(ciones en forma narrada si 'a
(recondicin es correcta 2 asegurar )ue ser% cum('ida.
Continuemos con e' e0em('o (ara mostrar 'a forma en )ue un caso de uso (one una
condicin a un (aso, 2 'a condicin de(ende de otros (asos. !na ve. m%s, e' su*-caso de uso
es(erar% )ue 'a condicin se cum('a 2 no c+e)uear% (or errores durante su e0ecucin@
P%gina BM
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
Caso de 'so 9: Rea'i.ar un (edido
#ivel: !suario
Precondicin@ &' &m('eado se encuentra 'ogeado
B. &' em('eado identifica a' c'iente, e' sistema se (osiciona en e' registro de' c'iente.
2. &' em('eado entra 'a informacin de' (edido.
?. &' sistema ca'cu'a e' (recio.
...
Caso de uso >: Ca'cu'ar (recios
#ivel: 6u*funcin
Precondicin: &' c'iente es admitido 2 conocido (ara e' sistema, e' contenido de' (edido es
conocido.
B. &' sistema ca'cu'a e' (recio *ase (ara e' (edido.
2. &' sistema ca'cu'a e' descuento (ara e' (edido.
...
&ste e0em('o i'ustra como un caso de uso se *asa en 'a informacin de' un caso de uso
invocado.
&' escritor de ca'cu'a (recio dec'ar 'a informacin )ue est% dis(oni*'e 2 (uede seguir
ade'ante 2 +acer referencia a 'a informacin de' c'iente.
#ota: en e' e0em('o uti'i.ado e' 'ector no estar% de acuerdo acerca de' caso de uso ca'cu'ar
(recio. 1emos dec'arado este caso de uso como de co'or /ndigo, (ero (or a+ora e' 'o )ue
res(ecta a 'a escritura +a2 (oco )ue 'o 0ustifi)ue a<n teniendo su (ro(io caso de uso. 6i
nosotros, como escritores, no descri*imos 'as interacciones com('icadas con e' usuario, o
casos de fa''a interesantes, 'o rec'asificar/amos cam*i%ndo'o de /ndigo a negro ((escado a
a'me0a). &sta es 'a se5a' (ara com*inar e' teEto de ca'cu'ar (recio dentro de' caso de uso
rea'i.ar un (edido 2 e'iminar e' caso de uso ca'cu'ar (recio.
&scri*ir una (recondicin es escri*ir como afirmaciones sim('es acerca de' estado de'
mundo en e' momento en )ue e' caso de uso es a*ierto. 3os e0em('os a(ro(iados son@
GPrecondicin: El usuario est logeado0G
GPrecondicin: El cliente 4a sido validado0G
GPrecondicin: El sistea $a 4a locali2ado1 la !li2a del cliente0G
'n error co,n es escribir dentro del la !recondicin algo "ue frecuenteente se
cu!le1 !ero no es necesario "ue se cu!la0
6u(onga )ue estamos escri*iendo 'a Peticin de un resumen de cuenta, donde e' actor
(rimario es e' so'icitante. 6eguramnete (ensar/amos )ue e' so'icitante estar/a seguro de +a*er
+ec+o a' menos un (edido o tener una factura antes de (reguntar (or e' resumen de cuenta. 6in
em*argo, este no siem(re es e' caso. &' sistema no (uede asegurar'o, 2 de +ec+o esto no es
esencia'. &' so'icitante de*e estar +a*i'itado (ara (reguntar (or su resumen de cuenta en
cua')uier momento. &ntonces esta ma' escri*ir RPrecondicin@ &' so'icitante +a rea'i.ado una
factura.R
4.2 Garantas Mnimas
3as m/nimas garant/as son 'as (romesas m/nimas )ue e' sistema rea'i.a a 'os interesados en
e' sistema, (articu'armente (ara cuando 'a meta de' actor (rimario no es cum('ida. &''as se
mantienen cuando 'a meta es cum('ida, (or su(uesto, (ero e''as se transforman en intereses
P%gina BN
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
rea'es cuando 'a meta (rinci(a' es a*andonada. 7uc+as de 'as veces, dos o m%s (ersonas tienen
)ue ser conducidos +acia 'as garant/as m/nimas.
"o se mo'este 'istando en 'a seccin de m/nimas garant/as todas 'as maneras )ue un caso
de uso (uede fa''ar. 1a2 docenas de maneras como fa''ar, 2 estas tienen (ocas cosas en com<n.
Todo 'o referente a 'as condiciones de fa''as 2 su mane0o se muestra en 'a seccin de
eEtensiones, 2 esto es cansador 2 (ro(enso a error tratar de mantener dos 'ista sincroni.adas. &'
(ro(sito de esta seccin de 'a ('nti''a es anunciar 'o )ue (romete e' sistema.
3a garant/a m/nima m%s com<n es 8)ue a'cance tiene e' 'og de transacciones de'
sistema9 no (iense )ue una fa''a de una transaccin de 'og es o*vio o trivia'. 3os 'ogs de
transacciones de 'os sistemas son frecuentemente o'vidados en 'a descri(cin de re)uerimientos,
2 a veces redescu*iertos (or 'os (rogramadores. &' 'ogeo es crucia' (ara 'os due5os de' sistema
como (ara e' usuario. 3as (ersonas interesadas en e' sistema 'os usan (ara reso'ver discusiones.
&' escritor de casos de uso de*er% descu*rir 'a necesidad de 'ogs de transacciones (ara
investigar 'os intereses de a'gunas (ersonas o cuando +a2 una demasiadas condiciones de fa''a.
3a garant/a m/nima es escrita como un n<mero de sim('es afirmaciones )ue ser%n
cum('idas en e' fina' de cua')uier e0ecucin de' caso de uso. &stas muestran 'os intereses de
cada (ersona )ue )ueda satisfec+a.
Harant.a +.nia: &' (edido comen.ar% so'o si e' (ago se +a reci*ido.
Harant.a +.nia: 6i 'a informacin m/nima no fue ca(turada, 'a demanda (arcia' +a sido
descartada 2 no se de0an rastros de 'og de 'a ''amada. 6i 'a m/nima informacin fue ca(turada,
entonces 'a demanda (arcia' +a sido guardada 2 se +acen 'os registros.
#ota: 3a (rue*a de ;EitoKfa''a (ara 'a m/nima garant/a es )ue 'os interesados en e' sistema
acordar%n )ue sus intereses +an sido (rotegidos a<n *a0o condiciones de fa''a de su meta.
4.3 Garanta de !"ito
3a garant/a de ;Eito manifiesta 'os intereses de 'as (ersonas )ue )uedar%n satisfec+as
des(u;s de una fina'i.acin eEitosa de' caso de uso, 2a sea (or e' fina' de' escenario (rinci(a'
de sucesos o (or e' fina' de 'a seccin de eEtensines. 3a garant/a de ;Eito genera'mente es
escrita (ara agregar a'gunas condiciones eEtras a 'a -arant/a 7/nima, ta'es condiciones
adiciona'es inc'u2en a' menos e' estado de 'a meta de' t/tu'o de caso de uso.
Como 'a garant/a m/nima, 'a garant/a de ;Eito es escrita como sim('es afirmaciones )ue se
cum('en a' fina' de una e0ecucin de un caso de uso. &stas muestran 'os intereses de 'as distintas
(ersonas )ue son satisfec+as.
&0em('os @
Harant.a de E5ito@ A' denunciante se 'e (agara 'a cifra acordada, 'a demanda se cerr, e'
registro de 'a transaccin fue asentado.
Harant.a de E5ito@ &' arc+ivo ser% guardado.
Harant.a de E5ito@ &' sistema iniciar% un (edido de' c'iente, se reci*ir% 'a informacin de'
(ago, 2 se registrar% 'a so'icitud de' (edido.
#ota@ 3a (rue*a ;EitoKfa''a (ara 'a garant/a de ;Eito es )ue 'as (ersonas acordar%n, desde 'a
'ectura de 'a seccin garant/a de ;Eito, )ue sus intereses +an sido satisfec+os.
3a me0or forma de descu*rir 'a garant/a de ;Eito es (reguntar =Au; +ar/a a esta (ersona infe'i.
a' fina' de 'a e0ecucin eEitosa> &sta (regunta es f%ci' de res(onder, entonces (ara 'a garant/a
de ;Eito escri*a 'o negativo de esta res(uesta.
4.4 Disparadores
P%gina 20
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
&' dis(arador manifiesta e' evento )ue +ace )ue e' caso de uso comience. A veces e'
dis(arador (recede e' (rimer (aso de caso de uso. A veces e' dis(arador es e' (rimer (aso de'
caso de uso. 1asta a+ora, no +emos visto una reg'a convincente )ue se a('i)ue en todos 'os
casos. Tam(oco +emos tenido a'guna confusin e'igiendo una manera u otra.
Aui tenemos a'gunos e0em('os@
Considere una !ersona usando un ca-ero autotico0 El ca-ero des!ierta de su inactividad
solo cuando la !ersona inserta su tar-eta0 Esto no es insignificante !ara decir "ue el
dis!arador es cuando alguien decide usar el ca-ero0 El dis!arador :Cliente inserta
tar-eta<1 es tabi?n el !rier !aso en el caso de uso0
CA/& IE '/&: !sar e' Ca0ero Autom%tico
:is(arador@ C'iente inserta 'a tar0eta
B. C'iente inserta 'a tar0eta con identificacin *ancaria, (cuenta *ancaria 2 (in encri(tado)
2. &' sistema va'ida...
Considere1 sin ebargo1 un oficinista todo el d.a en una estacin de traba-o "ue uestra
distintos iconos !ara e-ecutar diferentes a!licaciones0 El dis!arador es "ue llaa un
cliente con una solicitud en !articular0
Esto !uede ser escrito utili2ando la abas foras1 !ero utili2areos la segunda fora0
CA/& IE '/&: Registrar una )ue0a
:is(arador@ C'iente ''ama (ara rea'i.ar en una )ue0a.
B. &' oficinista ''ama a 'a a('icacin.
2. &' sistema trae 'a 'ista de )ue0as recientes
...
P%gina 2B
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
#$ Escenarios % Pasos
!n con0unto de casos de uso es una +istoria de actores (rimarios (ersiguiendo metas. Cada
caso de uso individua' tiene un re'ato )ue muestra a' sistema ''egando a 'a meta o
a*andon%ndo'a. &' re'ato es (resentado como un escenario (rinci(a' 2 un con0unto de
fragmentos de escenarios como eEtensin de' (rimero. Cada escenario o fragmento comien.a
con una condicin dis(aradora 2 contin<a +asta )ue muestra 'a concrecin o e' a*andono de 'a
meta. 3as metas son de diferentes nive'es, como +emos visto, (ero nosotros usamos 'a misma
forma de escritura (ara descri*ir cua')uier nive' de meta en cua')uier nive' de escenario.
5!' El escenario principal, escenarios
5!'!' El escenario principal como el caso simple
!sua'mente eE('icamos 'as cosas a otras (ersonas em(e.ando con una descri(cin f%ci' de
entender 2 entonces am('iamos, 8 ueno, actua'mente +a2 una (e)ue5a com('icacin. Cuando
esto 2 esto ocurre, 'o )ue (asa es )ue....9. 3as (ersonas +acen mu2 *ien este ti(o de
eE('icaciones 2 es 'a forma en )ue escri*imos e' re'ato de un caso de uso. Primero escri*imos
una descri(cin de (rinci(io a fin de un sim('e 2 t/(ico escenario en e' cua' 'a meta de' actor
(rimario es conseguida 2 'os intereses de 'as (ersonas )ue son satisfec+os. &ste es e' escenario
principal.
Todas 'as otras formas de a'can.ar 'a meta, 2 e' mane0o de 'as fa''os, son descri(tos en 'as
eEtensiones de' escenario (rinci(a'.
5!'!& Estructura com*n
&' escenario (rinci(a' 2 'as eEtensiones tienen 'a misma estructura. 3a misma consiste en@
!na condicin *a0o 'a cua' e' escenario se e0ecuta. Para e' escenario (rinci(a' es
'a (recondicin m%s e' dis(arador. Para un escenario eEtendido, es 'a condicin de
eEtensin ()ui.%s con e' n<mero de (aso o e' 'ugar de' escenario donde se a('ica 'a
condicin).
!na meta a a'can.ar. Para e' escenario (rinci(a', es eEactamente e' nom*re de'
caso de uso, satisfaciendo, (or su(uesto, 'os intereses de 'as (ersonas. 3a meta de'
escenario eEtendido es tam*i;n com('etar 'a meta de' caso de uso o vo'ver a unirse a'
escenario (rinci(a' des(u;s de mane0ar 'a condicin.
!n con0unto de (asos con acciones. Sstos forman e' cuer(o de' escenario, 2
siguen 'as mismas reg'as en cada escenario o fragmento de escenario.
!na condicin de fin. 3a meta es a'can.ada a' fina' de' escenario (rinci(a'. !n
fragmento de escenario (uede terminar con 'a meta a'can.ada o a*andonada.
!n (osi*'e con0unto de eEtensiones, escritas como fragmentos de escenarios.
3as eEtensiones a' escenario (rinci(a' van en 'a seccin &Etensiones de 'a ('anti''a de'
caso de uso. 3as eEtensiones de eEtensiones van directamente en '/nea, dentro o 0usto
des(u;s de 'as eEtensiones.
A)u/ +a2 un e0em('o (ara mostrar 'a simi'itud de sus estructuras@
C': Com(rar mercader/as (or 'a 4e*
Precondicin: &' usuario tiene a*ierto e' PA# (Conse0ero Persona' de #inan.as)
Iis!arador: &' usuario se'ecciona 8com(rar mercader/as9
P%gina 22
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
Escenario Princi!al
B- &' usuario se'ecciona com(rar mercader/as (or 'a 4e*
2- PA# o*tiene e' nom*re de' usuario de' sitio a usar (Ama.on.com (or e0em('o).
?- PA# esta*'ece 'a coneEin a' sitio, reteniendo e' contro'
C- &' usuario *usca 2 com(ra mercader/as de' sitio.
G- PA# interce(ta 'as res(uestas de' sitio, 2 actua'i.a e' (ortafo'io de' usuario.
I- PA# muestra e' nuevo estado de' (ortafo'io de' usuario.
E5tensiones:
?a- #a''a 'a coneEin a 'a 4e*@
?aB- &' sistema informa 'a fa''a a' usuario, vo'viendo a' (aso (revio.
?a2- &' usuario a*andona e' caso de uso, o trata de nuevo
&n este ca(/tu'o veremos en deta''e e' cuer(o de' escenario, e' cua' consiste en (asos con
acciones.
5!'!+ El cuerpo del escenario
Cada escenario o fragmento es escrito como una secuencia de acciones (ara a'can.ar 'as
metas de 'os actores. :ecimos secuencia (or conveniencia, (ero (odemos agregar notas (ara
descri*ir )ue esos (asos (ueden ir en (ara'e'o, tomados en diferente orden, re(etidos, 2 +asta
a'gunos son o(ciona'es. Cada (aso descri*e@
una interaccin entre dos actores (8&' c'iente ingresa domici'io9).
una va'idacin (ara (roteger un inter;s de una (ersona (8&' sistema va'ida e'
(ass4ord9),
un cam*io interno (ara satisfacer un inter;s de una (ersona (8&' sistema deduce
im(orte de 'a cuenta9)
A)u/ +a2 un e0em('o de un t/(ico &scenario Princi(a'. "otar% )ue 'os (asos B,?,G-M son
interacciones, e' (aso C es una va'idacin, 2 'os (asos 2 2 N son cam*ios internos.
B- &' em('eado ingresa e' n<mero de 'a ('i.a o *ien e' nom*re 2 fec+a de incidente.
2- &' sistema o*tiene 'a informacin dis(oni*'e de 'a ('i.a e indica si e' rec'amo corres(onde
a 'a ('i.a.
?- &' em('eado ingresa 'a informacin *%sica de' siniestro.
C- &' sistema confirma )ue no +a2a rec'amos contrarios 2 asigna un n<mero de rec'amos
G- &' em('eado contin<a ingresando 'a informacin de' siniestro es(ec/fica (ara e' rec'amo.
I- &' em('eado o*tiene m%s informacin de 'a co*ertura de otros sistemas.
L- &' em('eado se'ecciona 2 asigna un mediador.
M- &' em('eado confirma )ue +a fina'i.ado
N- &' sistema sa'va 2 e' acuse de reci*o es enviado a' agente.
Cada (aso es escrito (ara mostrar una accin sim('e. &' mismo esti'o de escritura es usado
(ara 'os (asos en cua')uier (arte de cua')uier caso de uso, 2a sea escenario (rinci(a' o
eEtensin, caso de uso de' negocio o de' sistema, de a'to o *a0o nive'.
5!& Pasos
3os (asos )ue +acen a un caso de uso *ien descri(to, est%n escritos en forma gramatica',
una accin sim('e en 'a cua' un actor e0ecuta una tarea o (asa informacin a otro actor@
:El usuario ingresa nobre $ a!ellido<
:En cual"uier oento1 el usuario !uede !edir "ue le devuelvan el dinero<
P%gina 2?
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
:El sistea verifica "ue el nobre $ la cuenta estn actuali2ados<
:El sistea actuali2a la cuenta del cliente !ara refle-ar el cabio<
3a ma2or/a de 'as veces, e' tiem(o (uede ser omitido, 2a )ue 'os (asos genera'mente se
suceden unos tras otro. 1a2 muc+as (e)ue5as variantes en 'a forma de escri*ir 'os (asos, sin
em*argo siem(re escri*a (reservando 'as siguientes caracter/sticas en cada (aso.
5!&!' Directrices para los pasos
Directri& 1' (sar )ram*tica simple.
3a estructura de 'a oracin de*e ser sim('e@
8/u-eto000verbo000ob-eto directo000frase !re!osisional0<
&0em('o@
:El sistea000deduce000el i!orte000de la cuenta0<
7encionamos esto (or)ue muc+as (ersonas o'vidan accidenta'mente e' (rimer sustantivo.
:e esa forma, no est% c'aro )uien est% contro'ando 'a accin. 6i sus oraciones est%n ma'
estructuradas, 'a +istoria se +ace dif/ci' de seguir.
Directri& 2' Muestra claramente +,uien tiene el -al.n/
!na imagen visua' <ti' es un (artido de f<t*o'. 3a (ersona B se 'a (asa a (ersona 2, esta 'a
retiene un momento, entonces 'a (asa a 'a (ersona ?. $casiona'mente se vue've tra*ado 2 uno
de 'os 0ugadores 'im(ia 'a 0ugada.
!n escenario tiene 'a misma estructura. &n cada (aso un actor 8tiene e' *a'n9. &se actor
ser% e' sustantivo de 'a oracin, e' (rimer actor mencionado. &' 8*a'n9 es e' mensa0e 2 'os
datos )ue son (asados de actor a actor. A'gunas veces, e' (aso termina con otro actor teniendo e'
*a'n. Preg<ntese 8=A' fina' de 'a oracin, )uien tiene e' *a'n>9. :e*e ser siem(re c'aro en 'a
escritura 8)uien tiene e' *a'n 8.
Directri& 3' Est* escrito con un punto de vista de o0os de p*0aro.
3os escritores de casos de uso (rinci(iantes, (articu'armente (rogramadores )ue +an sido
asignados a escri*ir casos de uso, usua'mente escri*en e' escenario como 'o ve e' sistema,
mirando e' mundo eEterior e interactuando con ;'. 3as oraciones tienen 'a a(ariencia 8$*tener
tar0eta 2 numero de c'ave. :educir im(orte de 'a cuenta9.
3o correcto es escri*ir e' caso de uso con o0os de (%0aro@
:El cliente ingresa tar-eta $ clave<
:El sistea deduce el i!orte de la cuenta<
Directri& 4' Muestra claramente el avance del proceso
&' (rogreso +ec+o en cada (aso es re'ativo a cu%n a'ta o *a0a es 'a meta de' caso de uso. &n
un caso de uso resumen, e' (aso (ro*a*'emente se mueve una meta de usuario entera. &n un
caso de uso su*funcin se mueve +acia de'ante muc+o menos. 6i nosotros vemos e' (aso 8&'
usuario (resiona 'a tec'a ta*9, o *ien estamos viendo un caso de uso en /ndigo (rofundo, o e'
escritor sim('emente e'igi una mu2 (e)ue5a accin (ara descri*ir.
&' error de e'egir (asos mu2 (e)ue5os se descu*re en 'a 'ongitud de' caso de uso. 6i un
caso de uso tiene de B? a BL (asos, es *astante (ro*a*'e )ue 'as oraciones no avancen 'o
suficiente +acia 'a meta. &' caso de uso es m%s f%ci' de 'eer, m%s c'aro, 2 contiene 'a misma
informacin esencia' cuando com*inamos esos (e)ue5os (asos en uno )ue avance m%s
directamente +acia 'a meta. Raramente se encuentra un caso de uso *ien escrito con m%s de N
(asos en e' escenario (rinci(a'.
Para encontrar 'a meta de ma2or nive' de un (aso, (reg<ntese 8=Por )u; e' actor est%
+aciendo esto>9. 3a res(uesta a esa (regunta es (ro*a*'emente 'a meta )ue necesita (ara ese
P%gina 2C
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
(aso, aun)ue de*er% (regunt%rse'o varias veces (ara o*tener 'a res(uesta )ue usted )uiere. A)u/
+a2 un e0em('o@
:El usuario !resiona la tecla tab<
EPor "u? el usuario est !resionando la teclaF Para alcan2ar el ca!o doicilio0 EPor
"u? est tratando de alcan2ar el ca!oF Por"ue tiene "ue ingresar su nobre $ su
doicilio antes "ue el sistea 4aga algo0 A4J Entonces ella "uiere "ue el sistea 4aga
algo 6!robableente el caso de uso iso71 $ !ara ello tiene "ue ingresar su nobre $
doicilio0 Entonces1 la oracin "ue avan2a en la e-ecucin del caso de uso 4acia el
cu!liiento de la eta es:
:El usuario ingresa su nobre $ doicilio<
Directri& #' Muestra el intento del actor, no el movimiento.
:escri*ir 'os movimientos de' usuario o(erando 'a interfa. de' sistema es uno de 'os m%s
comunes 2 severos errores, 2 est% 'igado a escri*ir metas en un nive' mu2 *a0o. 3'amamos a
estas descri(ciones como 8descri(ciones de di%'ogo9. 3as mismas +acen 'a documentacin de
re)uerimientos deficiente de tres formas@ m%s 'arga, fr%gi' 2 con demasiadas restricciones.
:ocumentos m%s 'argos son m%s dif/ci'es de 'eer 2 m%s costosos de mantener.
&' di%'ogo descri(to no es (ro*a*'emente un re)uerimiento, es (ro*a*'emente
s'o 'a forma en )ue e' escritor imagina 'a interfa. de usuario en ese momento.
&' di%'ogo es fr%gi', en e' sentido )ue (e)ue5os cam*ios en e' dise5o de'
sistema inva'idar%n 'a escritura.
&s tra*a0o de' dise5ador de interfa. de usuario e' inventar una )ue sea efectiva 2 (ermita a'
usuario ''evar a ca*o e' intento )ue e' caso de uso descri*e. 3a descri(cin de movimientos
(articu'ares (ertenece a esa tarea de dise5o, no a 'a documentacin de re)uerimientos
funciona'es.
&n 'a documentacin de re)uerimientos, estamos interesados en 'a descri(cin semntica de
'a interfa., )ue indi)ue e' intento de' usuario, 2 en dar s'o un res<men de 'a informacin )ue es
(asada de un actor a otro.
6e uti'i.a e' t;rmino casos de uso esenciales (ara designar a)ue''os en 'os )ue estamos
interesados@ casos de uso de' sistema con nive' de' mar escritos con descri(ciones sem%nticas de
'a interfa.. T/(icamente, todos 'os datos (asados en una direccin son recogidos en s'o un
(aso. A)u/ damos un e0em('o de un caso de uso ma' escrito arreg'ado@
Antes:
80 El sistea solicita el nobre
20 El usuario ingresa el nobre
90 El sistea solicita el doicilio
>0 El usuario ingresa el doicilio
D0 El usuario !resiona &K
L0 El sistea !resenta el !erfil del usuario
Ies!u?s:
80 El usuario ingresa nobre $ doicilio
20 El sistea !resenta el !erfil del usuario
Directri& 1' 2ontiene un con0unto ra&ona-le de acciones.
Ivar Daco*son +a descri(to un (aso en un caso de
uso como re(resentando una transaccin. Con esta frase
;' ca(tura cuatro (artes de una interaccin com*inada
(#igura BI)@
80 El actor !riario env.a una !eticin $
datos al sistea0
20 El sistea valida la !eticin $ los datos0
P%gina 2G
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
90 El sistea altera su estado interno0
C. El sistea res!onde al actor con el resultado0 =igura 8L
!sted (uede escri*ir cada (arte como un (aso se(arado, o com*inar'os de varias maneras,
o +asta (oner 'os cuatro en un so'o (aso. 3o me0or de(ende de cu%n com('icada sea cada (arte 2
dnde ocurre e' corte natura' en e' (roceso.
Como e0em('o, a)u/ +a2 cinco variantes (ara considerar. "inguna es incorrecta, sin
em*argo consideramos 'a versin B demasiado com('icada (ara 'eer. "os gusta 'a versin 2
donde 'as (artes son sim('es, (ero 'as encuentro demasiado 'argas (ara tra*a0ar en esta
instancia. 3a versin ? es nuestra (referida (ara este e0em('o. 3a versin C es tam*i;n *uena,
(ero encontramos 'os (asos un (oco (e)ue5os, +aciendo e' escenario demasiado eEtenso (ara
nuestro gusto. 3a versin G tiene 'a venta0a de tener (asos )ue son unidades de testeo se(aradas,
(osi*'emente (ara satisfacer una m%s forma' situacin de desarro''o.
Mersin 8:
80 El cliente ingresa el n,ero de orden0 El sistea detecta "ue es el n,ero
ganador del es1 registra el usuario $ el n,ero de orden coo ganadores del
es1 env.a un correo electrnico al gerente de ventas1 felicita al cliente $ le da
las instrucciones sobre co obtener el !reio0
Mersin 2:
80 El cliente ingresa el n,ero de orden0
20 El sistea detecta "ue es el n,ero ganador del es1 registra el usuario $
el n,ero de orden coo ganadores del es1 env.a un correo electrnico al
gerente de ventas1 felicita al cliente $ le da las instrucciones sobre co obtener
el !reio0
Mersin 9:
80 El cliente ingresa el n,ero de orden0
20 El sistea detecta "ue es el n,ero ganador del es0
90 El sistea registra el usuario $ el n,ero de orden coo ganadores del
es1 env.a un correo electrnico al gerente de ventas1 felicita al cliente $ le da
las instrucciones sobre co obtener el !reio0
Mersin >:
80 El cliente ingresa el n,ero de orden0
20 El sistea detecta "ue es el n,ero ganador del es0
90 El sistea registra el usuario $ el n,ero de orden coo ganadores del
es1 env.a un correo electrnico al gerente de ventas0
>0 El sistea felicita al cliente $ le da las instrucciones sobre co obtener el
!reio0
Mersin D:
80 El cliente ingresa el n,ero de orden0
20 El sistea detecta "ue es el n,ero ganador del es0
90 El sistea registra el usuario $ el n,ero de orden coo ganadores del
es0
>0 El sistea env.a un correo electrnico al gerente de ventas0
D0 El sistea felicita al cliente $ le da las instrucciones sobre co obtener el
!reio0
Directri& 3' No es +controla si/, es +valida/
!na de 'as tres c'ases de acciones es cuando e' sistema verifica )ue se cum('a a'guna reg'a
de' negocio. !sua'mente 'as (ersonas escri*en )ue e' sistema controla 'a condicin. &ste no es
P%gina 2I
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
un *uen ver*o (ara re(resentar 'a accin. "o avan.a e' (roceso +acia e' cum('imiento de 'a
meta, 2 de0a a*ierto e' resu'tado de' contro'. !sted inmediatamente tiene )ue escri*ir 86i (asa e'
contro'9 2 86i fa''a e' contro'....9.
Oamos a usar 'a t;cnica de (reguntar (or )u; (ara encontrar una frase me0or. =Por )u; e'
sistema est% contro'ando esta condicin> &st% va'idando o garanti.ando a'go. &sos son *uenos
ver*os (ara usar. &ntonces reem('ace 8&' sistema contro'a si e' (ass4ord es correcto9 (or 8&'
sistema va'ida )ue e' (ass4ord es correcto9.
:e0e )ue 'a (resencia de 'a (a'a*ra 8si9 'e ''eve a usted a recordar esta directri.. Cada ve.
)ue vea 86i ('a condicin).. entonces..9, mire 'a oracin anterior. &s mu2 (ro*a*'e )ue diga
controla. Reem('ace 'a (rimera oracin con valida, 2 +aga 'a segunda oracin una accin
sim('e sin 'a (a'a*ra 8si9. A)u/ +a2 un e0em('o@
Antes:
20 El sistea controla si el !assNord es correcto0
90 /i es as.1 el sistea !resenta las acciones dis!onibles al usuario0
Ies!u?s:
20 El sistea valida "ue el !assNord es correcto0
90 El sistea !resenta las acciones dis!onibles al usuario0
"ote )ue 'a descri(cin de' segundo caso descri*e e' escenario sucediendo. Tam*i;n ''eva
a' 'ector a (reguntar 8=Pero, si e' (ass4ord no es v%'ido>9. &' 'ector mirar% 'a seccin de
eEtensiones *uscando 'a )ue diga 8&' (ass4ord no es v%'ido9. &sto 'e da a' caso de uso un ritmo
consistente )ue +ace a' mismo f%ci' de 'eer 2 revisar.
Directri& 4' Es opcional mencionar el tiempo
3a ma2or/a de 'os (asos vienen directamente de' (aso (revio. $casiona'mente necesitar%
decir a'go como@
:En alg,n oento entre el !aso 9 $ D1 el usuario000<
:(an !ronto coo el usuario 4a$a0001 el sistea0000<
6i;ntase 'i*re de (oner e' tiem(o, (ero s'o cuando sea necesario. !sua'mente e' (aso de'
tiem(o es o*vio, 2 no es necesario mencionar'o.
Directri& 5' 6rase +El usuario 7ace ,ue el sistema A ...del sistema 8/
&sta es 'a situacin )ue se (uede (resentar. !sted )uiere )ue e' sistema *a0o dise5o traiga
informacin de' sistema , o )ue tenga una interaccin con e' sistema , &sto s'o de*er/a
+acerse cuando e' actor (rimario indica cuando +acer'o. "o (odemos escri*ir 8&' usuario
(resiona e' *otn Recu(erar, en ese momento e' sistema recu(era 'os datos de' sistema 9.
&star/amos descri*iendo 'a interfa. de' usuario.
Podeos usar1 en cabio1 dos !asos:
80El usuario indica al sistea recu!erar los datos del sistea 3
20El sistea recu!era los datos del sistea 3
A !esar de ser ace!table1 es redundante0 Es e-or escribir:
80El usuario 4ace "ue el sistea recu!ere los datos del sistea 3
Con este (e)ue5o cam*io en 'a escritura, indicamos )ue e' usuario tiene e' contro', )ue e'
*a'n es (asado de' usuario a' sistema A, 2 este a' sistema , mostrando 'as res(onsa*i'idades
de 'os tres sistemas. 3os deta''es de cmo e' usuario indica 'a accin no se es(ecifica.
Directri& 19' 6rase /:acer los pasos "$% 7asta condici.n/
&n ocasiones, desearemos marcar )ue a'gunos (asos (ueden re(etirse. &n este caso
de*emos escri*ir'o en (rosa sim('e, no usando forma'ismos de (rogramacin. 6o'amente
escri*a )ue e' o 'os (asos ser%n re(etidos. 6i s'o +a2 un (aso a ser re(etido, (uede (oner 'a
re(eticin dentro de' (aso@
P%gina 2L
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
:El usuario selecciona uno o s !roductos<
:El usuario busca entre varios catlogos de !roductos 4asta encontrar el
"ue "uiere usar<
6i varios (asos son re(etidos, (uede escri*ir 'a re(eticin antes o des(u;s de 'os (asos
re(etidos. "osotros escri*imos 'a re(eticin des(u;s de 'os (asos, (ara +acer e' escenario un
(oco m%s f%ci' de 'eer. 6in em*argo, 'a otra forma tam*i;n funcionar%.
80 El cliente co!leta su identificador de cuenta1 o bien su nobre $
doicilio0
20 El sistea !resenta la inforacin de las !referencias del usuario0
90 El usuario selecciona un .te a co!rar1 arcndolo !ara ad"uirirlo0
>0 El sistea agrega el .te al :carrito de co!ras< del usuario0
&' c'iente re(ite 'os (asos ?-C +asta )ue indica )ue +a terminado.
D0 El cliente co!ra los .tes en el :carrito de co!ras<0
"ote )ue no es necesario numerar 'a sentencia de 'a re(eticin, ni tam(oco una eE(resin
)ue a*ra 'a re(eticin. Am*as cosas +ar/an confusa 'a escritura, +aciendo e' escenario m%s
dif/ci' de 'eer.
!na variante de 81acer 'os (asos E-2 +asta condicin9 es 83os (asos E-2 (ueden ocurrir en
cua')uier orden9. &sto funciona *ien (oni;ndo'o antes de 'os (asos afectados.
80 El cliente se logea
20 El sistea !resenta los !roductos $ servicios dis!onibles0
3os (asos ?-G (ueden a(arecer en cua')uier orden.
90 El usuario selecciona los !roductos a co!rar0
>0 El usuario es!ecifica la fora de !ago0
D0 El usuario da la direccin de entrega0
L0 El usuario indica "ue la sesin de co!ra est co!leta0
O0 El sistea inicia la orden1 con los !roductos seleccionados a ser cargados contra la
fora de !ago $ a ser entregado en la direccin de entrega0
P%gina 2M
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
1. E"tensiones
!n escenario es una secuencia de (asos. 6a*emos )ue un caso de uso de*e contener todos
'os escenarios, 'os eEitosos 2 'os )ue fa''an. Ta sa*emos cmo escri*ir e' escenario (rinci(a'.
A+ora necesitamos una forma de agregar todos 'os otros escenarios.
Podr/amos escri*ir cada escenario individua'mente, sin em*argo es mu2 dif/ci' de
mantener, 2a )ue cada cam*io de*er/a ser co(iado a 'os otros escenarios )ue contienen ese
teEto.
!na a'ternativa es escri*ir sentencias si a 'o 'argo de' teEto) "*i el pass+ord es correcto, el
sistema!!!, en caso contrario el sistema!!!!%! &sto es (erfectamente v%'ido, 2 a'gunas (ersonas
escri*en casos de uso de esa manera. 6in em*argo, a 'os 'ectores 'es cuesta 'as condiciones si,
es(ecia'mente cuando +a2 un si dentro de otro si! 6e (ierde rastro de' com(ortamiento des(u;s
de dos *ifurcaciones si, 2 'a ma2or/a de 'os casos de uso contienen muc+os (untos de
*ifurcacin.
$tra a'ternativa es escri*ir e' escenario (rinci(a' como una secuencia sim('e corriendo
desde su inicio +asta su terminacin, 2 entonces escri*ir una e,tensin a' escenario (or cada
(unto de *ifurcacin. &sta es, a nuestro (arecer, 'a me0or e'eccin de 'as tres.
3as eEtensiones tra*a0an de esta forma. :e*a0o de' escenario (rinci(a', (or cada 'ugar
donde e' com(ortamiento (uede *ifurcar (or una condicin (articu'ar, se escri*e 'a condicin 2
'os (asos )ue 'a mane0an. 7uc+as eEtensiones terminan con una sim('e reinsercin en e'
escenario (rinci(a'.
3a eEtensin es como un caso de uso. Contiene una secuencia de (asos descri*iendo )u;
(asa *a0o esas condiciones. Termina cuando se a'can.a o a*andona 'a meta de 'a eEtensin.
Puede +a*er eEtensiones de eEtensiones (ara mane0ar 'os si encontrados durante e' camino. &n
estas eEtensiones residen 'os m%s interesantes re)uerimientos de' sistema. &' escenario (rinci(a'
es usua'mente conocido (or e' e)ui(o de desarro''o. &' mane0o de fa''os genera'mente usa reg'as
de' negocio )ue 'os desarro''adores desconocen. 3os escritores de re)uerimientos
frecuentemente tienen )ue +acer a'guna investigacin (ara determinar 'a res(uesta correcta de'
sistema. !sua'mente, esa investigacin introduce un nuevo actor, nuevo caso de uso, o una
nueva condicin de eEtensin. A)u/ tenemos una t/(ica discusin (ara i'ustrar@
:/u!ongase "ue 4a$ una re!entina falla de la red0 E;u? debeos 4acerF<
:El sistea debe llevar un log<
:&K1 !ero si la red ca$1 E"u? se su!one "ue sucede cuando se levantaF<
:Creo "ue tendr.aos "ue agregar un nuevo caso de uso !ara El sistema se reinicia
despus de una alla de red! El sistea se reiniciar1 obtendr el log1 $ co!letar o
abortar las transacciones<0
:/.1 !ero E"ue !asa si el log esta defectuosoF0 E;u? se su!one "ue 4aga el
sisteaF<
:#o s?0 @o de-eos coo cuestin abierta $ continuaos<
&n esta conversacin, se descu*ri 'a necesidad de un nuevo caso de uso 2 'a necesidad de
investigar una (o'/tica de' negocio. "o (iense )ue estas son eEtensiones innecesarias (ara
discutir. A'gunos (rogramadores se encuentran con estas condiciones, mientras (rograman. &ste
es un momento costoso (ara descu*rir nuevas reg'as de' negocio )ue se de*an investigar.
:urante 'a eta(a de re)uerimiento es e' me0or momento (ara descu*rir'as. Recomendamos
tra*a0ar en tres fases@
Piense e inc'u2a cada (osi*i'idad )ue usted 2 sus co'egas con0eturen.
&va'<e, e'imine, 2 com*ine 'as ideas de acuerdo a 'as directrices )ue se descri*en m%s
a*a0o.
&ntonces tra*a0e en cmo e' sistema de*er/a mane0ar cada una de esas condiciones.
P%gina 2N
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
7!' %ondiciones de e8tensin
3as condiciones de e,tensin son condiciones *a0o 'as cua'es e' sistema toma diferente
com(ortamiento. :ecimos e,tensin en ve. de fallo o e,cepcin 2a )ue inc'uimos escenarios
a'ternativos como as/ tam*i;n condiciones de fa''o.
A)ui tenemos un e0em('o@
80 El sistea va a trav?s del docuento1 verificando cada !alabra con su diccionario de
ortograf.a0
20 El sistea detecta un error de ortograf.a1 resalta la !alabra $ !resenta las alternativas
al usuario0
90 El usuario selecciona una de las alternativas !ara re!la2arla0 El sistea ree!la2a
la !alabra resaltada con la seleccionada !or el usuario0
E5tensiones:
20a0 El sistea no detecta errores de ortograf.a 4asta el fin del docuento:
20a080 El sistea notifica al usuario $ terina el caso de uso0
90a0 El usuario elige antener la !alabra original:
90a080 El sistea de-a la !alabra $ contin,a0
90b0 El usuario ti!ea una nueva !alabra1 "ue no est en la lista:
90b08 El sistea vuelve a verificar la nueva !alabra1 vuelve al !aso 8
7!'!' Piense todos los ,allos imagina0les y cursos alternatios
1emos encontrado im(ortante (ensar 2 o*tener un *uen (anorama de 'as condiciones de
eEtensin antes de sentarse a escri*ir e' mane0o de esas eEtensiones. Pensar una eEtensin 2
desarro''ar correctamente cmo e' sistema 'o trata insume muc+a energ/a. Pro*a*'emente se
sentir% agotado des(u;s de tres o cuatro eEtensiones. &sto significa )ue no (ensar% e' (rEimo
con0unto de condiciones de eEtensin como de*er/a.
6i (or e' contrario, (rimero (iensa en todas 'os caminos a'ternativos 2 situaciones de fa''o,
o*tendr% una 'ista )ue actuar% como andamia0e de su tra*a0o en 'as (rEimas +oras o d/as. &n 'a
eta(a inicia', (iense todos 'os (osi*'es caminos en 'os cua'es e' escenario (uede fa''ar, o cursos
a'ternativos )ue (ueden ocurrir. Aseg<rese de considerar@
Caminos a'ternativos (8&' em('eado usa una tec'a r%(ida9)
&' actor (rimario com(ort%ndose incorrectamente (8Pass4ord inv%'ido9)
Inaccin de' actor (rimario (8Time out es(erando (or e' (ass4ord9)
Cada ocurrencia de 'a frase 8e' sistema va'ida9 im('ica )ue +a*r% una eEtensin
(ara mane0ar 'a fa''a de 'a va'idacin (8"<mero de cuenta inv%'ido9)
#a'ta de res(uesta o ina(ro(iada de un actor secundario (8Time out es(erando
res(uesta9)
#a''a interna de' sistema *a0o dise5o, )ue de*e ser detectado 2 mane0ado como
(arte de' (roceso de' negocio (9&' ca0ero se atasc9)
#a''a interna ines(erada 2 anorma', )ue de*e ser mane0ada 2 una consecuencia
eEterna visi*'e (83og de transacciones defectuoso descu*ierto9)
#a''a de (erfomance cr/tica de' sistema )ue de*e ser detectado (8Res(uesta no
ca'cu'ada en G segundos9)
Directri& 11' ;a condici.n indica ,ue <ue detectado.
&scri*a 'o )ue el sistema detecta, no lo que pas. "o escri*a 8&' c'iente se o'vid 'a c'ave9.
&' sistema no (uede detectar )ue o'vid su c'ave. =Au; es 'o )ue e' sistema detecta en este caso>
P%gina ?0
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
Inaccin, 'o )ue significa )ue e' tiem(o '/mite fue eEcedido. &scri*a 83/mite de tiem(o
eEcedido es(erando (or ingreso de c'ave9.
3as condiciones son usua'mente frases descri*iendo )ue fue detectado.
"os gusta (oner dos (untos (P:Q) des(u;s de 'a condicin (ara asegurarnos )ue e' 'ector no
(ensar% accidenta'mente )ue es un (aso. 6i est% usando (asos numerados, (onga e' n<mero de'
(aso donde 'a condicin (odr/a ser detectada 2 'uego una 'etra (&0@ C.a.). "o +a2 secuencia
asociada a 'as 'etras, as/ )ue no +a2 im('icancia de )ue C.* sigue a C.a. &sto nos (ermite
ad0untar tantas condiciones de eEtensin como )uerramos (ara cada (aso.
20a0 =ondos insuficientes:
20b0 @a red se ca$:
6i 'a condicin (uede ocurrir en varios (asos 2 siente )ue es im(ortante indicar'o,
sim('emente 'iste 'os (asos donde (uede ocurrir@
2*Da0 El usuario abandon re!entinaente:
6i 'a condicin (uede ocurrir en cua')uier momento, use e' asterisco (PUQ) en 'ugar de'
n<mero de (aso. 3iste 'as condiciones con asterisco antes de 'as numeradas.
Pa0 @a red se ca$:
20a =ondos insuficientes
"o se (reocu(e si e' fa''o ocurre en e' (aso cuando e' usuario ingresa a'g<n dato o en e'
(aso (osterior, cuando e' sistema va'ida e' dato. !no (odr/a (onerse a discutir )ue e' error
ocurre en cua')uiera de 'os dos, (ero no va'e 'a (ena (erder e' tiem(o. !sua'mente 'o (onemos
con e' (aso de 'a va'idacin si +u*iera.
#ota: 3a 'ista contendr% m%s ideas de 'a )ue fina'mente se usar%n. &so est% *ien. &' (unto est%
en tratar de ca(turar todas 'as situaciones )ue e' sistema encontrar% en e' caso de uso. Ta
(odr% reducir'a m%s ade'ante.
7!'!& "acionalizar la lista de e8tensiones
&' (ro(sito de 'a raciona'i.acin es reducir 'a 'ista 'o m%Eimo (osi*'e. 3a 'ista de
eEtensiones idea' muestra todas 'as situaciones )ue e' sistema de*e mane0ar, 2 s'o e''as.
Recordemos, siem(re, )ue un documento de re)uerimientos 'argo es dif/ci' de 'eer 2 de
mantener. Com*inando condiciones de eEtensin, se acorta 'a escritura 2 'a 'ectura.
:es(u;s de 'a (rimera fase, tendr% un corto 2 sim('e escenario (rinci(a', 2 una 'arga 'ista de
condiciones a considerar. &studie 'a 'ista cuidadosamente, e'iminando 'as )ue e' sistema no
necesita mane0ar, 2 com*inando a)ue''as )ue tienen e' mismo efecto so*re e' sistema. !se estos
dos criterios@
&' sistema de*e (oder detectar 'a condicin
&' sistema est% o*'igado a mane0ar 'a condicin detectada
Prue*e convertir condiciones no detecta*'es en detecta*'es antes de e'iminar'as. 6i 'a
condicin es 8&' c'iente o'vid su tar0eta9, e'im/ne'a, 2a )ue no +a2 una condicin e)uiva'ente
)ue e' sistema (ueda detectar. 6i 'a condicin es 8&' c'iente o'vid su c'ave9, no 'a e'imine,
convi;rta'a en 8Time out es(erando ingreso de c'ave9, 'a cua' e' sistema (uede detectar.
A continuacin, com*ine condiciones e)uiva'entes. !sted (uede +a*er escrito estas tres
condiciones@ 83a tar0eta est% da5ada9, 8&' 'ector de 'a tar0eta no funciona *ien9, 83a tar0eta no
es de este ca0ero autom%tico9. :esde un (unto de vista de re)uerimientos, e' com(ortamiento
de' ca0ero autom%tico es e' mismo@ :evo'ver 'a tar0eta 2 notificar a' c'iente. !sted (odr/a tratar
de com*inar estas condiciones. 6i no (uede encontrar una frase significativa (ara todas e''as,
sim('emente +aga una 'ista.
P%gina ?B
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
8Tar0eta no 'egi*'e o desconocida (or e' ca0ero9.
7!'!+ %om0inar ,allos
Adem%s de com*inar condiciones )ue (roducen e' mismo efecto, com*ine fa''os de 'os
casos de uso de m%s *a0o nive' )ue tienen e' mismo efecto en e' caso de uso de ma2or nive'.
&sta com*inacin de fa''os de *a0o nive' es una de 'as formas de evitar tener una eE('osin de
eEtensiones en 'os casos de uso de a'to nive'.
Considere, como e0em('o, )ue est% tra*a0ando en e' (a)uete 8Conse0ero #inanciero
Persona'9. &st% escri*iendo e' caso de uso de usuario -ctualizar inversin. Oamos a su(oner
)ue uno de 'os <'timos (asos dice@
Caso de uso: Actua'i.ar inversin
L. &' usuario +ace )ue PA# sa've e' tra*a0o
M. ....
&sta referencia ''ama a' caso de uso *alvar tra#a(o, )ue contendr% 'as siguientes condiciones@
Caso de uso: 6a'var tra*a0o
....
E5tensiones:
?.a. &' arc+ivo 2a eEiste (e' usuario no )uiere so*reescri*ir)@...
?.*. :irectorio no encontrado@...
C.a. &Ecede ca(acidad de a'macenamiento@...
C.*. Arc+ivo (rotegido contra escritura@...
*alvar el tra#a(o fina'i.a con ;Eito o fa''o, vo'viendo 'a e0ecucin a' (aso L de
-ctualizar inversin. 6i es eEitoso contin<a en e' (aso M. Pero, si fa''a> =Au; de*er/amos
escri*ir (ara 'a eEtensin L.a> 3os 'ectores de -ctualizar inversin no sa*r%n (or )u; fa''o.
Todos 'os fa''os tendr%n e' mismo efecto, entonces escri*a en -ctualizar inversin s'o una
eEtensin, descri*iendo )u; (asa cuando *alvar tra#a(o fa''a.
Caso de uso@ Actua'i.ar inversin
...
&' usuario +ace )ue PA# sa've e' tra*a0o
...
E5tensiones:
L.a. #a''a *alvar tra#a(o@
L.a.B ...'o )ue sea )ue (ase...
3o me0or de com*inar fa''os es )ue a<n en 'os casos de uso de m%s a'to nive', 'os fa''os
son escritos en e' voca*u'ario a(ro(iado (ara e' nive'. A<n 'os e0ecutivos ocu(ados (ueden
tomarse tiem(o (ara 'eer'os, (or)ue e' re(orte de fa''os est% a' mismo a'to nive'.
7!& Mane-o de e8tensiones
&n 'a situacin m%s sim('e, +a2 s'o una sim('e secuencia de (asos (ara tratar 'a
condicin.
6in em*argo, en genera', 'a eEtensin es todo un caso de uso. &' dis(arador es 'a
condicin de eEtensin. 3a meta es tam*i;n com('etar 'a meta de' caso de uso, o re(onerse de'
fa''o encontrado. &' cuer(o es un con0unto de (asos, 2 (osi*'emente eEtensiones a esos (asos.
P%gina ?2
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
3a eEtensin (uede terminar a'can.ando o a*andonando 'a meta, igua' )ue un caso de
uso. 3a simi'itud no es accidenta', 2 (rue*a ser mu2 conveniente en eEtensiones com('icadas.
Comience escri*iendo e' mane0o de 'a condicin con e' (aso )ue sigue a 'a condicin
)ue fue detectada. "o necesita re(etir 'a condicin detectada. Contin<e igua' )ue cuando escri*e
e' escenario (rinci(a'. !se todas 'as directrices so*re nive' de meta, esti'o de ver*o, 2 oraciones
discutidas con anterioridad. 6iga escri*iendo +asta )ue a'cance un 'ugar donde (ueda vo'ver a
unirse a' escenario (rinci(a' o e' caso de uso fa''e. T/(icamente, una eEtensin fina'i.a en una
de estas formas@
El !aso e5tendido 4a sido arreglado $ ree!la2ado0 Al final del ane-o de la e5tensin
es coo si el !aso 4a$a tenido ?5ito0
...
?. &' usuario activa 'a direccin de' 4e*site
C. ...
&Etensiones@
?.a. "o +a2 direccin dis(oni*'e@
?.a.B &' usuario *usca un nuevo 4e*site
?.*...
El sistea le da al actor otra c4ance0 Al final del ane-o de la e5tensin1 se vuelve al
!rinci!io del iso !aso0 #ote "ue el sistea vuelve a validar el !assNord en el siguiente
e-e!lo:
2. ...
?. &' usuario ingresa e' (ass4ord.
C. &' sistema va'ida e' (ass4ord.
G. ...
&Etensiones@
C.a. Pass4ord inv%'ido@
C.a.B &' sistema notifica a' usuario, 2 (ide e' (ass4ord otra ve..
C.a.2 &' usuario reingresa e' (ass4ord
C.*....
El caso de uso finali2a1 a causa de un fallo total0
2. ...
?. &' usuario ingresa e' (ass4ord
C. &' sistema va'ida e' (ass4ord
G. ...
&Etensiones@
...
C.c Ingreso de (ass4ord inv%'ido demasiadas veces@
C.c.B &' sistema notifica a' usuario, 2 termina 'a sesin.
G.a ...
El co!ortaiento sigue un caino co!letaente diferente !ara alcan2ar la eta0
2. ...
?. &' usuario....
C. &' usuario....
G. ...
&Etensiones@
?.a. &' usuario corre un macro (ersona' (ara com('etar e' (rocesamiento@
?.a.B termina e' caso de uso
&n 'os dos (rimeros casos, no es necesario decir )u; (asa a continuacin en 'a eEtensin,
(or)ue es o*vio (ara e' 'ector )ue e' (aso se reiniciar% o continuar%. &n 'os otros dos,
P%gina ??
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
genera'mente no es necesario decir m%s )ue 8fa''o9 o 8 e' caso de uso termina9, (or)ue 'os
(asos muestran a' sistema cuidando 'os intereses de 'os (ersonas.
3a ma2or/a de 'as eEtensiones no dicen donde se vue've des(u;s de 'a eEtensin.
-enera'mente es o*vio, 2 escri*ir 8vue've a' (aso "9 des(u;s de cada eEtensin vue've e' teEto
m%s dif/ci' de 'eer. &n raras ocasiones es necesario a )u; (arte de' escenario (rinci(a' vue've 'a
eEtensin.
Directri& 12' El mane0o de condiciones va indentado
Cuando use e' esti'o numerado mostrado en este teEto, indente 'os (asos )ue muestran
cmo 'a condicin es mane0ada, 2 comience 'a numeracin de nuevo desde B, des(u;s de 'a
'etra. 3os (asos siguen todas 'as directrices dadas anteriormente.
E5tensiones:
20a0 =ondos insuficientes:
20a08 El sistea notifica al cliente1 $ !ide una nueva sua0
20a02 El cliente ingresa nueva sua0
Cuando usamos e' esti'o de (rosa directa (sin numerar), tam*i;n indente o comience un
nuevo (%rrafo (ara 'os (asos.
7!&!' (allos dentro de ,allos
:entro de una eEtensin, (uede encontrar un nuevo (unto de eEtensin, (ro*a*'emente
un fa''o. 6i est% usando e' esti'o indentado de escritura, sim('emente indente de nuevo, 2
contin<e nom*rando 'as condiciones 2 'os escenarios como antes. &n a'g<n (unto, su
indentacin 2 numeracin ser% tan com('e0a, )ue decidir% a*rir 'a eEtensin en otro caso de uso.
&sto (asa so*re cerca de' tercer nive' de indentacin. 1e a)u/ un e0em('o@
L0a0 El e!leado decide salir sin co!letar la inforacin .nia:
L0a08 El sitea advierte al e!leado "ue no !uede salir $ finali2ar sin ingresar
fec4a1 nobre o n,ero de !li2a
L0a080a El e!leado elige continuar ingresando0
L0a080b El e!leado salva coo re!orte interedio $ sale0
L0a080c El e!leado insiste en salir sin ingresar inforacin .nia:
L0a080c08 El sistea des4ace cual"uier versin interedia salvada $ sale0
7!&!' %reando un nueo caso de uso de una e8tensin
Para a*rir una eEtensin en un nuevo caso de uso, sim('emente decida cu%' es 'a meta
de' actor (rimario, d; a' caso de uso un nom*re, eti)u;te'o con su nive' ((ro*a*'emente
su*funcin), 2 com('ete 'os deta''es de' caso de uso.
Imagine un caso de uso -dministrar Reportes )ue contiene un (aso )ue dice 8&' usuario
sa'va o im(rime e' re(orte en cua')uier momento9. Tiene un con0unto de eEtensiones
descri*iendo varias a'ternativas 2 condiciones de fa''o. Pero esa 'ista de eEtensiones continuar%
creciendo@ re(orte sin nom*re, nom*re 2a eEistente (so*reescri*ir o no), usuario cance'a en 'a
mitad, 2 m%s. &n definitiva, 'os escritores decidieron (oner *alvar reporte en un caso de uso
(ro(io. &n e' caso de uso origina', todav/a de*er% tratar con e' +ec+o de )ue e' nuevo su* caso
de uso (uede fa''ar, entonces su descri(cin ser% (ro*a*'emente (ara mostrar e' escenario
(rinci(a' 2 condiciones de fa''o.
:esde un (unto de vista terico 2 teniendo en cuenta e' esfuer.o, es sim('e (oner una
eEtensin en un caso de uso a(arte o vo'ver atr%s. &' mode'o de casos de uso nos (ermite
considerar a esta <'tima una decisin menor. "o +a2 (ro*'ema en mover fuera 'a eEtensin
*alvar reporte, 2 de igua' forma, toma unos (ocos minutos con e' editor de teEto mover'o otra
ve. dentro de -dministrar reportes.
P%gina ?C
Writing effective use case IPP
2002
A. Cockurn !T" -
#RR$
6in em*argo, e' costo de crear un caso de uso no est% en e' esfuer.o necesario (ara
escri*ir'o. &' nuevo caso de uso de*e ser eti)uetado, rastreado, agendado, testeado 2 mantenido.
&sas son o(eraciones costosas (ara e' e)ui(o de' (ro0ecto.
7antener una eEtensin dentro de' caso de uso genera'mente tiene econmicamente
m%s sentido. :os situaciones )ue ''evar%n a crear un nuevo caso de uso (ara 'a eEtensin@
3a eEtensin es usada en varios 'ugares. Poniendo 'a eEtensin en su (ro(io caso de
uso se (uede seguir 2 mantener en un so'o 'ugar. Idea'mente, esta es 'a <nica ra.n (ara
crear un caso de uso *a0o e' nive' de' mar.
3a eEtensin +ace a' caso de uso rea'mente dif/ci' de 'eer. &' '/mite de 'egi*i'idad es
a'rededor de 2 (%ginas (or caso de uso, 2 tres nive'es de indentacin.
P%gina ?G

Potrebbero piacerti anche