Você está na página 1de 9

Pre y Post Condiciones - Introduccin a la Prctica Profesional

Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23


Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
1 / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
Indice
INTRODUCCIN......................................................................................................................3
EL EFECTO COLATERAL DE USAR PRECONDICIONES.................................................................4
El uso de precondiciones puede reducir el nmero de casos de uso de validaciones................4
El uso de las precondiciones puede llevar a la identificacin de ms casos de uso..................4
DESCRIBIENDO LAS PRECONDICIONES.........................................................................5
DECIDIR SI UNA PRECONDICIN ES NECESARIA.........................................................................5
DESCRIBIENDO LAS PRECONDICIONES..........................................................................................5
DESCRIBIENDO LAS POSTCONDICIONES.......................................................................6
DECIDIR SI LAS POSTCONDICIONES SON NECESARIAS..............................................................6
DESCRIBIENDO LAS POSTCONDICIONES........................................................................................7
LAS PRE Y POST CONDICIONES SEGN LA CTEDRA.............................................8
BIBLIOGRAFA........................................................................................................................9
2 / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
Introduccin
A 0eces5 el siste3a $e4e estar en un esta$o en particular para 6ue el caso $e uso se e7ecute:
Un cajero automtico debe tener fondos para administrar; un motor debe tener combustible; un
usuario debe ser autenticado para usar el sistema. Al8unas 0eces estas con$iciones pue$en
0ali$arse con un si3ple test5 y otras 9a4r% un caso $e uso 6ue 0ali$e o esta4lezca la con$icin.
:i3ple3ente 6uere3os $eclarar la con$icin re6ueri$a5 o esta$o5 en el cual $e4e estar el
siste3a; lla3a3os a esta $eclaracin la precondicin.
$%emplos de Precondiciones
<l usuario $e4e estar autoriza$o para usar el siste3a =o5 el usuario $e4e estar
lo8uea$o>
<l siste3a $e4e tener su&iciente e&ecti0o $isponi4le para procesar una transaccin
t?pica.
<l canal $e co3unicacin al siste3a 9ost est% a4ierto y $isponi4le para usar.
@a precon$icin es una oracin acerca $e la con$icin o con$iciones 6ue son necesarias para
6ue el caso $e uso sea e7ecuta$o. A 3enu$o5 estas precon$iciones son esta4leci$as por la
e7ecucin $e otros casos $e uso. <ntonces5 Apor 6uB usa3os precon$iciones escritas en
tBr3inos $el resulta$o $esea$o5 en lu8ar $e $ecir5 C<l caso $e uso CAutenticar !suarioD 9a si$o
e7ecuta$oDE
,ay tres razones. Pri3ero5 6uere3os 9acer $e las $escripciones $el caso $e uso5 tanto co3o
sea posi4le5 9istorias in$epen$ientes $e lo 6ue el siste3a 9ace para pro0eer 0alor a uno o 3%s
actores. :i uno $e los casos $e uso lle8a a ser $epen$iente $e otros casos $e uso5 lo 9ar% 3%s
$i&?cil $e enten$er. :e8un$o5 slo por6ue el caso $e Autenticar Usuario se 9aya e7ecuta$o5 no
6uiere $ecir 6ue el usuario e7ecutan$o el actual caso $e uso 9a si$o autentica$o. *inal3ente5
pue$e 9a4er 3%s $e una &or3a $e 6ue el siste3a alcance el esta$o $esea$o. Po$e3os tener
3%s $e una &or3a $e autenticar usuarios. "a$a una $e estas po$r?a ser un caso $e uso $istinto
con $i&erentes &lu7os $e e0entos5 to$os &inalizan$o en el 3is3o esta$o ' el usuario es
autoriza$o para e7ecutar transacciones en el siste3a.
@as precon$iciones en s? 3is3as son Cnecesarias pero no su&icientesD para 6ue el caso $e uso
se e7ecute. @a precon$icin $e4e contener lo necesario para 6ue el caso $e uso sea inicia$o5
pero no 0a a ter3inar 9acien$o 6ue el caso $e uso se inicie auto3%tica3ente solo por6ue sea
0er$a$era. Para co3enzar un caso $e uso se necesita un actor 6ue 9a8a al8o. @a precon$icin
sola3ente esta4lece las con$iciones 4a7o las cuales el caso $e uso pue$e iniciarse. @os
esta$os a los 6ue se re&iere la precon$icin $e4er?an ser ta34iBn CeFterna3ente 0isi4lesD5 en
otras pala4ras5 ser una con$icin 6ue los actores po$r?an enten$er. @as precon$iciones no
$e4er?an re&erirse al $iseGo $el siste3a5 sino 6ue $e4er?an ser aplica4les sin 9acer caso $e
co3o el siste3a se i3ple3ente.
3 / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
@as postcon$iciones son $eclaraciones $el esta$o =o con$icin> en la cual el siste3a se
encuentra al &inalizar el caso $e uso. @as postcon$iciones no son $ispara$ores $e otros casos
$e uso; son solo resH3enes $e 9ec9os. Ayu$an a ase8urar 6ue el lector entien$e cual 9a si$o
el resulta$o $e la e7ecucin $el caso $e uso. <n el e7e3plo $e caso $e uso 6ue autentica al
usuario5 la postcon$icin $e BFito ser?a el usuario es autorizado a ejecutar transacciones en el
sistema y la $e &racaso: Se ha evitado que el usuario use el sistema.
$l efecto colateral de usar precondiciones#
<l uso $e precon$iciones pue$e tener un e&ecto $irecto en la &or3a $el 3o$elo $e casos $e uso
co3o con7unto tanto co3o en la &or3a $e los casos $e uso in$i0i$uales.
$l uso de precondiciones puede reducir el n&mero de casos de uso de
validaciones#
@a precon$icin $e&ine un esta$o en el cual el siste3a $e4e estar antes $e 6ue el caso
$e uso se e7ecute5 co3o resulta$o5 el &lu7o $e e0entos $el caso $e uso no c9e6uea la
precon$icin. :olo use las precon$iciones $on$e ayu$en a aclarar el co3porta3iento
re6ueri$o.
@os peli8ros $e usar precon$iciones para re$ucir el nH3ero $e c9e6ueos a ser 9ec9os
$entro $el siste3a incluyen
@a especi&icacin $el c9e6ueo a 0eces pue$e ol0i$arse. <n la 3ayor?a $e
los casos5 es 3uy &%cil $e$ucir lo 6ue $e4er?a c9e6uearse. @o 6ue es 3%s
$i&?cil $e $e$ucir es cual accin $e4er?a ser e3pren$i$a cuan$o la
con$icin ocurre. :i el c9e6ueo es lle0a$o a ca4o por el caso $e uso5
lue8o las acciones correcti0as pue$en $e&inirse.
"asos $e uso 6ue pue$en crearse y nunca ser inicia$os. ,ay 6ue recor$ar
6ue la precon$icin $e4e ser 0er$a$era para 6ue el caso $e uso sea
e7ecuta$o. :i las precon$iciones son so4reusa$as =en el senti$o $e e0itar
0ali$aciones>5 no es inusual 6ue a los casos $e uso le sean $a$as
precon$iciones 6ue son i3posi4les 6ue el siste3a alcance.
$l uso de las precondiciones puede llevar a la identificacin de ms
casos de uso#
<l uso $e precon$iciones pue$e ayu$ar con la e0aluacin $e la co3pletitu$ $el 3o$elo
$e casos $e uso por $escu4rir eFpl?cita3ente i3portantes esta$os $el siste3a y
9acerlos 3%s 0isi4les a los $esarrolla$ores y re0isores $e casos $e uso.
4 / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
:i 0e3os el e7e3plo $e un si3ple siste3a tele&nico5 y 3ira3os a la precon$icin $el
caso $e uso Realizar una lla3a$a local:
Para 6ue las lla3a$as locales sean 9ec9as:
<l telB&ono $e4e estar re8istra$o a una cuenta acti0a.
/e la aplicacin si3ple $e una precon$icin sur8en los si8uientes puntos acerca $e la
co3pletitu$ $e nuestro 3o$elo $e caso $e uso:
1. Ac3o 6ue$a re8istra$o un telB&ono en una cuentaE
2. Ac3o es una cuenta acti0a$a o $esacti0a$aE
<n este caso necesitar?a3os a8re8ar al 3enos un caso $e uso para nuestro 3o$elo $e
siste3a tele&nico.
Ilustracin '( Caso de uso adicional )ue
permite la administracin de las cuentas
de los clientes y las unidades asociadas#
*escri+iendo ,as Precondiciones
"o3o ya se $i7o antes5 una precon$icin $e&ine el esta$o 6ue el siste3a $e4e tener o las
con$iciones 6ue $e4en cu3plirse antes $e 6ue el caso $e uso se e7ecute. @as si8uientes
secciones ayu$aran a i$enti&icar y escri4ir precon$iciones $e casos $e uso.
*ecidir si una precondicin es necesaria#
/e lo pri3ero 6ue $e4er% $arse cuenta es 6ue po$r?a no ser necesario $e&inir una precon$icin
para el caso $e uso; po$r?a ser posi4le e7ecutar el caso $e uso en cual6uier circunstancia. @as
precon$iciones slo son necesarias $e&inirlas en situaciones $on$e el caso $e uso no pue$e
ser e7ecuta$o a 3enos 6ue ciertas con$iciones sean 0er$a$eras. @as precon$iciones $e&inen
estas con$iciones.
Nota de la Ctedra 1: En realidad en estos casos lo que ocurre es que la precondicin es
vaca no coincidimos con la opinin del autor de denominarla como no necesaria porque
puede confundirse con una nocin de opcionalidad. !ara identificar precondiciones vacas
deber usarse la etiqueta "vaca#.
5 / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Iantener
"uentas
Representante $e
:er0icio al "liente
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
*escri+iendo las precondiciones#
:i ciertas con$iciones $e4en ser satis&ec9as antes $e 6ue el caso $e uso sea e7ecuta$o5
esta4lBzcalas en una &or3a clara y $e &%cil 0eri&icacin.
!n error co3Hn es escri4ir en la precon$icin al8o 6ue a 0eces es 0er$a$ero5 pero no es
necesaria3ente cierto.
$%emplo de precondiciones -para un ca%ero automtico.
"aso $e !so: Retirar /inero

@a coneFin a la re$ $el siste3a 4ancario $e4e estar acti0a.

<l siste3a $e4e tener al 3enos al8o $e $inero 6ue pue$a ser entre8a$o.

<l usuario $e4e ser autentica$o para e7ecutar la transaccin solicita$a.


:e $e4e pensar 6ue las precon$iciones son re6ueri3ientos 6ue $e4en ser satis&ec9os antes $e
6ue el caso $e uso se e7ecute. @as precon$iciones $e4er?an escri4irse co3o oraciones si3ples
$el esta$o en 6ue el siste3a $e4e estar5 este esta$o po$r?a ser eFpresa$o en tBr3inos $e
con$iciones 6ue $e4en ser 0er$a$eras antes $e 6ue el caso $e uso se e7ecute.
@as precon$iciones nunca $e4er?an esta4lecerse en tBr3inos $e al8Hn otro caso $e uso 6ue se
9a e7ecuta$o. :i lo 9a 9ec9o5 pro4a4le3ente si8ni&i6ue 6ue se 9a $i0i$i$o a los casos $e uso
en pe$azos 6ue son $e3asia$o pe6ueGos para 6ue ten8an 0alor por s? 3is3os. Para resol0er
este pro4le3a5 se pue$e 9acer una $e $os cosas: co34inar los casos $e uso o esta4lecer la
precon$icin en tBr3inos $el esta$o en el cual el caso $e uso pre$ecesor $e7ar% el siste3a. @a
co34inacin $e los casos $e uso es casi o40ia5 pero para $eter3inar el esta$o en el cual el
caso $e uso $e7a el siste3a5 pre8Hntese CAcu%l es el resulta$o $el caso $e uso pre$ecesorED
<ste resulta$o o con$icin $e4er?a ser la con$icin $el caso $e uso sucesor5 no una
$eclaracin $el 9ec9o $e 6ue al8Hn otro caso $e uso 9a si$o e7ecuta$o.
Nota de la Ctedra 2: Esto estara implicando que $no ha% que mencionar en las
postcondiciones estados no usados en otros casos de uso&. Este principio puede aplicarse
como 'ua al momento de decidir cuales son los estados que deben incluirse o no en una
postcondicin. (ependiendo de la situacin particular puede moderarse la aplicacin de este
principio para lo'rar un modelo de casos de uso con ma%or e)tensibilidad.
*escri+iendo ,as Postcondiciones
"o3o ya se $i7o anterior3ente5 una postcon$icin $e&ine el esta$o en el 6ue el siste3a se
encuentra una 0ez 6ue el caso $e uso se 9a e7ecuta$o.
6 / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
*ecidir si las postcondiciones son necesarias#
<n 3uc9os casos5 po$r?a ser acepta4le la si3ple o3isin $e la postcon$icin por co3pleto
cuan$o el resulta$o $el caso $e uso es o40io o cuan$o no 9ay ca34ios $e esta$o si8ni&icati0o
en el siste3a.
@as postcon$iciones son slo necesarias cuan$o el esta$o es i3portante para uno $e los
actores $el caso $e uso5 tal co3o cuan$o el esta$o &inal $el caso $e uso ayu$a a un
staJe9ol$er a alcanzar su 3eta.
Para $eter3inar si se $e4er?a a8re8ar una postcon$icin5 9a4r% 6ue pre8untarse lo si8uiente:
Ala ter3inacin $el caso $e uso $e7a al siste3a en un esta$o en particular 6ue po$r?a
necesitar ser una precon$icin para otros casos $e usoE :i es as?5 se re8istra esto
co3o una postcon$icin.
Ason las sali$as posi4les $el caso $e uso o40ias5 $e &or3a 6ue les ser% &%cil $e
enten$er el resulta$o $e la e7ecucin $el caso $e uso a los $esarrolla$ores5 testers5 o
usuariosE :i no lo es5 se re8istra las sali$as co3o postcon$iciones $el caso $e uso.
<speci&icar to$as las postcon$iciones para un caso $e uso pue$e ser Htil en casos $on$e es
i3portante lla3ar la atencin a $i&erentes con$iciones posi4les 6ue pue$en eFistir cuan$o el
caso $e uso se co3pleta. @a enu3eracin $e las postcon$iciones pue$e asistir a los testers a
0eri&icar 6ue to$as las posi4les sali$as sean consi$era$as en los casos $e prue4a. Pue$e
ayu$ar ta34iBn a los $esarrolla$ores a consi$erar posi4les sali$as $istintas $el caso $e uso.
Nota de la Ctedra 3: En caso de optar por omitir la postcondicin deber completarse con
"omitida#
*escri+iendo las postcondiciones#
@as postcon$iciones son con$iciones 6ue $e4en cu3plirse cuan$o el caso $e uso se ter3ina.
Vea3os el caso $e uso *etirar (inero $e nue0o:
$%emplo de postcondiciones -para un ca%ero automtico.
"aso $e !so: Retirar /inero
Para este caso $e uso po$r?an eFistir las si8uientes postcon$iciones:

<l ca7ero 9a $e0uelto la tar7eta y entre8a$o el e&ecti0o al "liente y se re8istro el


retiro en la cuenta $el "liente

<l ca7ero 9a $e0uelto la tar7eta al "liente y no se re8istr retiro en la cuenta $el


cliente.

<l ca7ero se 6ue$a con la tar7eta y no se re8istra el retiro en la cuenta $el cliente.
"o3o con las precon$iciones5 use oraciones si3ples $el esta$o o con$icin en la 6ue el
siste3a estar% cuan$o se co3plete el caso $e uso. :i el caso $e uso alcanza al8una 3eta $e
un staJe9ol$er5 ase8Hrese $e $e7arlo en claro. <Fprese la postcon$icin $e un caso $e uso en
tBr3inos $e un esta$o en el 6ue el siste3a se encuentre5 o una con$icin 6ue sea 0er$a$era5
K / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
cuan$o el caso $e uso se co3plete. :i el siste3a pue$e estar en $i&erentes esta$os
$epen$ien$o $e los pasos lle0a$os a ca4o en el caso $e uso5 estos esta$os $e4en
enu3erarse.
,as pre y post / condiciones se0&n la Ctedra#
@as precon$iciones se $i0i$ir%n en precon$iciones $e siste3a y $e ne8ocio. ,as
precondiciones de sistema ser%n a6uellas con$iciones o esta$os =alcance $el siste3a> 6ue
8arantice el siste3a 6ue ser%n ciertas antes $e la e7ecucin $el caso $e uso. @as $e ne8ocio5
ser%n a6uellas con$iciones $e alcance $e ne8ocio =L> 6ue se 8aranticen co3o ciertas antes $e
la e7ecucin $el caso $e uso. /es$e un punto estricta3ente terico Bstas Hlti3as correspon$en
a casos $e uso $e ne8ocio5 pero $a$o 6ue se8Hn el est%n$ar $e la c%te$ra actual3ente se
$ocu3enta slo los casos $e uso $e siste3a5 las precon$iciones $e ne8ocio se a8re8ar%n a la
$escripcin $el 3is3o.
@as precon$iciones $e siste3a se clasi&icar%n en pri3arias y co3ple3entarias.
@as primarias ser%n a6uellas 6ue estBn $irecta3ente relaciona$as a la 3eta $el caso $e uso.
Por e7e3plo5 para re8istrar una &actura5 $e4er% eFistir el pe$i$o; para re8istrar la $e0olucin $e
un li4ro5 $e4e estar el prBsta3o $el 3is3o re8istra$o.
@as complementarias ser%n a6uellas no $irecta3ente relaciona$as a la 3eta $el caso $e uso
6ue re6uieren an%lisis $etalla$o para ser $escu4iertas. Por e7e3plo5 para re8istrar el pa8o $e
los socios5 pre0ia3ente $e4en eFistir los socios; para re8istrar una &actura a un cliente5
pre0ia3ente $e4en eFistir los $atos $el cliente y los $atos $e los art?culos; para re8istrar el
prBsta3o $e un li4ro $e4er%n eFistir los $atos $e los li4ros.
As? co3o las precon$iciones5 las postcon$iciones se clasi&icar%n co3o $e siste3a y co3o $e
ne8ocio.
@a postcondicin de sistema ser% a6uella en la 6ue se asiente el esta$o en el 6ue 6ue$a el
siste3a una 0ez 6ue el caso $e uso se ter3ine. <sta a su 0ez se clasi&ica en postcon$icin $e
BFito5 $e &racaso y $e BFito alternati0o.
"uan$o se e7ecuta slo el ca3ino 4%sico $el caso $e uso se tiene una postcondicin de
12ito.
"uan$o se e7ecuta un ca3ino alternati0o $el caso $e uso 6ue ter3ina en:
a. el no cu3pli3iento $e la 3eta5 se tiene una postcondicin de fracaso#
+. el BFito $e la 3eta5 se tiene una postcondicin de 12ito alternativo#
@a postcondicin de ne0ocio ser% a6uella en la 6ue se asiente 6uB suce$e en el alcance $e
ne8ocio una 0ez 6ue se e7ecute el caso $e uso.
=L> <l tBr3ino alcance utiliza$o es este conteFto correspon$e al concepto tal co3o lo $e&ine "ocJ4urn.
M / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00
Pre y Post Condiciones - Introduccin a la Prctica Profesional
Autor: Ripani - Porta - Pizzarulli Versin: 1.05 - 26/04/2004 22:23
Proyecto: !" Process #ntro$uccin a la Pr%ctica Pro&esional ' !() *RR
3i+lio0raf4a
Nurt Oittner ' #an :pence5 USE +ASE ,-(E./01 20035 A$$ison-Pesley5
(9e A$$ison ' Pesley Q47ect (ec9nolo8y :eries.
Alistair "ocJ4urn5 2*/3/01 E44E+3/5E USE +ASES !re6!ub. (raft 0785 20005
A$$ison-Pesley.
+ / +
Plantilla: ,ar$-ire$ plantilla./ocs.,P.#PP.$ot 0. 1.01 12+/4/032 "a3po -or$ ra4acin: 11/05/04 2:25:00
/var/www/apps/conversion/tmp/scratch_6/24!!"6#doc #3presin: 2+/04/03 20:23:00