Escolar Documentos
Profissional Documentos
Cultura Documentos
/bjeti'os
0
$omparar y contrastar el anlisis y el diseo. 1efinir el anlisis y el diseo orientados a objetos. 2elacionar por analog"a el anlisis y el diseo orientado a objetos con el fin de organizar una empresa.
0 0
1.1
3a prctica del anlisis y el diseo orientados a objetos se e4plica con un caso de estudio relati'amente e4hausti'o que 'amos desarrollando a lo largo del libro5 ambos aspectos se profundizan lo suficiente para que se traten y resuel'an muchos de los detalles ms engorrosos que plantea un problema realista. *673+ son las siglas de Uni)ied %deling Language ,3enguaje 6nificado de $onstrucci#n de 7odelos-! notaci#n ,esquemtica en su mayor parte- con que se construyen sistemas por medio de conceptos orientados a objetos. En este libro ayudaremos a los programadores para que aprendan la notaci#n de 673 y la apliquen a un estudio de casos. $#mo deber"an asignarse las responsabilidades a las clases de objetos? $#mo deber"an interactuar stos? Qu papel debe destinrsele a cada clase? Estas son preguntas muy importantes cuando se disea un sistema. 8lgunas soluciones ya probadas y eficaces de los problemas de diseo pueden e4presarse ,y se han plasmado- como un conjunto de principios! con heur"stica o pa'&%ne# ,f#rmulas de soluci#n de problemas que codifican los principios aceptados del diseo-. En este libro enseamos los patrones y as" fa'orecemos el aprendizaje rpido y la utilizaci#n hbil de los tecnicismos fundamentales de esta tecnolog"a. 1ebido a las numerosas acti'idades que posiblemente e4ijan las condiciones durante la implementaci#n! c#mo deber"a proceder el programador o equipo de programadores? En esta obra presentamos un ejemplo del p&%ce#% de de#a&&%ll% que describe un orden posible de acti'idades y un ciclo de 'ida del desarrollo. 9ero no prescribe un proceso ni un mtodo definiti'os: se limita a ofrecer una muestra de pasos comunes.
Ejemplos de acti'idades 9rincipios y directrices 8nlisis y diseo orientados a objetos
<emas y habilidades
9atrones
;otaci#n de 673
Estudio de casos
En conclusi#n! en este libro se ayuda al programador5 0 0 0 8 aplicar los principios y patrones para aprender a realizar mejores diseos. 8 efectuar 'arias acti'idades comunes en el anlisis y en el diseo. 8 crear elementos >tiles en la notaci#n de 673.
1.*
A#ignacin de &e#p%n#a(ilidade#
=ay muchas posibles acti'idades y elementos en el anlisis y en el diseo! as" como gran cantidad de principios y directrices. (up#ngase que tu'iramos que elegir una sola habilidad prctica entre todos los temas aqu" e4puestos5 una habilidad tan solitaria como una *isla desierta+ por as" decirlo. $ul seria?
3a habilidad ms importante en el anlisis y el diseo orientados a objetos es asignar eficientemente las responsabilidades a los componentes del soft are.
9or qu? 9orque es la acti'idad que debe efectuarse ,es ineludible- y que influye ms profundamente en la solidez! en la capacidad de mantenimiento y en la reutilizabilidad de los componentes del soft are. El segundo lugar por orden de importancia aparece la obtenci#n de los objetos o las abstracciones adecuadas. 8mbos aspectos son decisi'os5 ponemos de relie'e la asignaci#n de responsabilidades porque tiende a ser ms dif"cil de dominar. En un objeto real! un programador tal 'ez no tenga la oportunidad de efectuar alguna otra acti'idad relacionada con el anlisis o con el diseo5 el proceso de desarrollo *con prisa por codificar+. 9ero incluso en tales casos es ine'itable la asignaci#n de responsabilidades. 9or ello! en la fase de diseo de este libro ponemos de relie'e los principios de la asig naci#n de responsabilidades y ofrecemos las herramientas que le ayudarn al programador a dominarla.
;ue'e principios fundamentales de la asignaci#n de responsabilidades! codificados en los patrones de ?28(9! se describen y se aplican para ayudarle al lector a dominar este aspecto.
3o anterior no significa que el resto de las acti'idades carezcan de importancia. 9or ejemplo! es indispensable crear un modelo conceptual que identifique los conceptos ,objetos- en el dominio del problema. 9ero! en cuanto habilidad de tipo *isla desierta+! el hecho de saber asignar responsabilidades es lo que en definiti'a hace o destruye a un sistema.
1.+
Anlisis: investigacin.
9ara crear una aplicaci#n de soft are hay que describir el problema y las necesidades o requerimientos5 en qu consiste el conflicto y qu debe hacerse. El 8nlisis se centra en una investigacin del problema! no en la manera de definir una soluci#n. 9or ejemplo! si se desea un nue'o sistema de informaci#n computarizada de una biblioteca! cules procesos de la instituci#n se relacionan con su uso? Diseo: solucin 9ara desarrollar una aplicaci#n! tambin es necesario contar con descripciones detalladas y de alto ni'el de la soluci#n l#gica y saber c#mo satisface los requerimientos y las restricciones. El 1iseo pone de relie'e una solucin lgica: c#mo el sistema cumple con los requerimientos. =e aqu" un ejemplo5 de qu manera el soft are del sistema de informaci#n de la biblioteca capturar y registrar los prstamos de libros? En definiti'a! los diseos se implementan en soft are y en hard are.
1.0
3a esencia del anlisis y el diseo orientados a objetos consiste en situar el dominio de un problema y su soluci#n l#gica dentro de la perspecti'a de los objetos ,cosas! conceptos o entidades-! como se ad'ierte en la figura A.B.
Diseo orientado a objetos: objetos de so"t#are!
1urante el anlisis orientado a objetos se procura ante todo identificar y describir los objetos Co conceptosC dentro del dominio del problema 9or ejemplo! en el caso del sistema de informaci#n de la biblioteca! algunos de los conceptos son 3ibro! Diblioteca y $liente.
8nlisis
1iseo
$onstrucci#n
(oluci#n l#gica
$#digo
1urante el di#e$% %&ien'ad% a %(je'%#2 se procura definir los objetos l#gicos del soft are que finalmente sern implementados en un lenguaje de programaci#n orientado a objetos. 3os objetos tienen atributos y mtodos. 8s"! en el sistema de la biblioteca un objeto de soft are Libro puede tener un atributo t$tulo y un mtodo imprimir ,figura. A.E-. Finalmente! durante la c%n#'&uccin o p&%g&a3acin %&ien'ada a %(je'%#2 se implementan los componentes del diseo! como una clase Libro en $%%! &a'a! (malltal) o Gisual Dasic.
3ibro titulo
1.4
ic&%89a%#
8lgunos de los principales pasos del anlisis y del diseo orientados a objetos pueden e4plicarse por analog"a con la forma en que se organiza una compa"a.
1.5.1
En el inicio tan prometedor de la compa"a todo mundo compart"a el trabajo5 contestaban el telfono! surt"an los pedidos! escrib"an los programas de computaci#n. 3a compa"a hab"a alcanzado un 4ito e4traordinario5 hab"a muchos empleados de ingreso reciente y el
personal se haba vuelto dispersivo porque realizaba demasiadas tareas diferentes. Ha llegado,
pues, el momento de implantar una organizacin m s rigurosa. !"mo procedera usted, en su calidad de director general, para organizar a los empleados y las actividades#
El primer paso consiste en analizar lo que debe hacer una empresa Csus procesos de negociosC si quiere seguir funcionando5 realizar 'entas! pagar a empleados y acreedores! desarrollar programas de computaci#n. 1esde el punto de 'ista del mtodo del anlisis y del diseo orientados a objetos! este paso nos recuerda el an"li#i# de &e:ue&i3ien'%#! en el cual los procesos y las necesidades de los negocios se descubren y se e4presan en los ca#%# de u#%. 3os casos son descripciones narrati'as te4tuales de los procesos de una empresa o sistema! como se muestra en seguida5 8a#% de u#%6 De#c&ipcin6 $olocar un pedido. Este caso de uso comienza cuando un cliente telefonea a un representante de 'entas para hacer una compra de 7icroDutterfly. El representante anota en una nue'a orden la informaci#n relati'a al cliente y al producto.
@dentificar los procesos y registrarlos en los casos de uso no es en realidad una acti'idad del anlisis orientado a objetos: de ninguna manera se centra en objetos. $on todo! se trata de un paso importante y generalizado en los mtodos del anlisis y diseo orientados a objetos. 8simismo! los casos de uso forman parte del lenguaje 673. 8 continuaci#n mostramos al lector grficamente nuestra analog"a5
Anal%g5a de la e3p&e#a $ules son los procesos de negocios? An"li#i# ! di#e$% %&ien'ad%# a %(je'%# D%cu3en'%# &elaci%nad%#
8nlisis de requerimientos
$asos de uso
con un 3%del% c%ncep'ual. Este modelo presenta las di'ersas categor"as de las cosas en el dominio: no s#lo los papeles de las personas sino tambin todas las cosas de inters! seg>n se obser'a en la figura A.I.
$liente
9edido
2epresentante de 'entas
8nalog"a de la empresa
1ocumentos relacionados
$ules son los procesos de negocios? $ules son los papeles de los empleados?
$asos de uso
7odelo conceptual
3os objetos de soft are normalmente colaboran o interact>an para cumplir con sus responsabilidades! como lo hacen las personas. 3a descripci#n de la asignaci#n de las responsabilidades y las interacciones de objetos a menudo se e4presan grficamente con diag&a3a# de di#e$% de cla#e y con diag&a3a# de c%la(%&acin: unos y otros muestran la definici#n de clases y el flujo de mensajes entre los objetos de soft are.
8nalog"a de la empresa $ules son los procesos del negocio? $ules son los papeles de los empleados? Qu funciones cumplen los empleados? $#mo interact>an ellos?
8nlisis y diseo orientados a objetos 8nlisis de requerimientos 8nlisis del dominio 8signaci#n de responsabilidades! diseo de interacciones
1ocumentos relacionados $asos de uso 7odelo conceptual 1iagramas de diseo de clases! diagramas de colaboraci#n
1.;
(e necesita abundante informaci#n para e4plicar cabalmente el anlisis y el diseo orientados a objetos. 9ara no perdernos en muchos detalles! ofrecemos al lector ua e4plicaci#n sucinta sobre algunos de los pasos y diagramas usando para ello un ejemplo simple5 un Jjuego de dadosJ en que un jugador lanza dos dados. (i el total es siete! gana y de lo contrario pierde. 3as notaciones utilizadas forman parte del lenguaje U L. /bser'e! por fa'or! que en el ejemplo no estn representados todos los pasos posibles ni los diagramas: tan s#lo aparecen los ms comunes y esenciales.
3os casos de uso no son propiamente un elemento del anlisis orientado a objetos: se limitan a describir procesos y pueden ser igualmente eficaces en un proyecto de tecnolog"a no orientada a objetos. ;o obstante! constituyen un paso preliminar muy >til porque describen las especificaciones de un sistema.
9or ejemplo! en el juego de dados el caso de uso de 'uega un 'uego 8a#% de u#%6 <a&'icipan'e#6 De#c&ipcin6 &uega un &uego. &ugador. Este caso de uso comienza cuando el jugador recoge y hace rodar los dados. (i los puntos suman siete! gana y pierde si suman cualquier otro n>mero.
9or ejemplo! como se aprecia en la figura A.K! en el dominio del juego de dados! una parte del modelo conceptual muestra los conceptos 'ugador, Dados y 'uegodeDados, sus asociaciones y atributos. &ugador nombre A &uega A A 3anza B 1ados 'alor7ostrado B
&uegode1ados
@ncluye
1igu&a 1.4 7odelo conceptual del juego de dados. El modelo conceptual no es una descripci#n de los componentes del soft are: representa los conceptos en el dominio del problema en el mundo real.
9or ejemplo! supongamos que se desea una simulaci#n en el soft are del juego de dados. El diagrama de colaboraci#n de la figura A.L muestra grficamente el paso esencial del juego! en'iando mensajes a las instancias de las clases 'ugador y Dado.
&ugar,-
5&ugador
A5rA 5M lanzar,-
d1 % &ado d$ % &ado
B5rB 5M lanzar,-
1igu&a 1.; 1iagrama de colaboraci#n que muestra los mensajes entre los objetos de soft are.
9or ejemplo! en el juego de dados! al e4aminar el diagrama de colaboraci#n! obtenemos el siguiente diagrama del diseo de clases. 9uesto que un mensaje juego se en'"a a una instancia 'ugador, 'ugador requiere un mtodo jugar, mientras que Dado requiere un mtodo lan(ar. 8 diferencia del modelo conceptual! este diagrama no muestra grficamente conceptos del mundo real: describe >nicamente los componentes del soft are. 9ara indicar de qu manera los objetos se conectan entre s" a tra's de atributos! una l"nea con una flecha en la punta indicar un atributo. 9or ejemplo! 'uegodeDados posee un atributo que apunta a una instancia de un 'ugador.
3anza A
&uegode1ados inicializar,-
@ncluye
1igu&a 1.= 1iagrama del diseo de clases para los componentes de soft are. El diagrama del diseo de clases de la figura A.N no est completo: representa >nicamente el inicio de las especificaciones del soft are que se requieren para definir cabalmente cada clase.
1.=
8%3pa&acin en'&e el an"li#i# ! el di#e$% %&ien'ad%# a %(je'%# ! l%# di#e$%# %&ien'ad%# a )unci%ne#
3os proyectos de soft are son complejos! y la estrategia primaria para superar la complejidad es la descomposici#n ,di'ide y 'encers-5 di'idir el problema en unidades manejables. 8ntes del ad'enimiento del anlisis y diseo orientados a objetos! el mtodo usual de descomponer un problema eran el an"li#i# ! el di#e$% estructurados cuya dimensi#n de descomposici#n es fundamentalmente por funci#n o proceso! lo cual origina una di'isi#n jerrquica de procesos constituidos por subprocesos. (in embargo! e4isten tambin otras dimensiones de descomposici#n: el anlisis y el diseo orientados a objetos buscan ante todo descomponer un espacio de problema por objetos y no por funciones! como se ad'ierte en la figura A.O.
3ibro
Diblioteca
2egistrar prstamos
8gregar recursos
2eportar multas
1igu&a 1.> $omparaci#n entre la descomposici#n orientada a objetos y la descomposici#n orientada a funciones.
1.>
7s orientado al anlisis
7s orientado al diseo
1igu&a 1.B 3as acti'idades de anlisis y diseo e4isten en un continuo. 1ebatir sobre la definici#n no resulta constructi'o en absoluto! ya que las personas les dan distintos significados a esos dos trminos y no se emplean con el mismo sentido en los mtodos5 lo importante es saber resol'er el problema de crear soft are y darle mantenimiento con mayor eficiencia! con mayor rapidez y a un precio menor. $on todo! en la prctica con'iene contar con una distinci#n constante entre investigacin ,anlisis- y solucin ,diseo-! porque es >til tener un paso bien definido que indague la naturaleza del problema antes de buscar la manera de crear una soluci#n. 8dems genera e4pectati'as de un comportamiento apropiado entre los miembros del equipo: por ejemplo! durante el anlisis esperan subrayar la comprensin del problema! posponen las cuestiones concernientes a la soluci#n! al desempeo y a otros aspectos.
1.B
El Uni)ied
%deling Language2 U L
El 673 ,3enguaje 6nificado para la $onstrucci#n de 7odelos- se define como un *lenguaje que permite especificar! 'isualizar y construir los artefactos de los sistemas de soft are...+ RD&2PNS. Es un sistema notacional ,que! entre otras cosas! incluye el significado de sus notaciones- destinado a los sistemas de modelado que utilizan conceptos orientados a objetos. El 673 es un estndar incipiente de la industria para construir modelos orientados a objetos. ;aci# en APPI por iniciati'a de ?rady Dooch y &im 2umbaugh para combinar sus dos famosos mtodos5 el de Dooch y el /7< )*bject %odeling +echni,ue, <cnica de 7odelado de /bjetos-. 7s tarde se les uni# @'ar &acobson! creador del mtodo //(E )*bject-*riented .o"t#are Engineering, @ngenier"a de (oft are /rientada a /bjetos-. En respuesta a una petici#n de /7? )*bject %anagement /roup, asociaci#n para fijar los estndares de la industria- para definir un lenguaje y una notaci#n estndar del lenguaje de construcci#n de modelos! en APPN propusieron el 673 como candidato. 'rescindiendo de la aceptacin que pueda tener, este lengua(e recibi la aprobacin de facto en la industria, pues sus creadores representan m)todos muy difundidos de la primera generacin del an lisis y dise*o orientados a ob(etos. +uchas organizaciones dedicadas al desarrollo de soft,are y los proveedores de herramientas de "-./ 0"omputer -ided .oft,are /ngineering1 lo adoptaron, y muy probablemente se con 'ertir
en el estndar mundial que utilizarn los desarrolladores! los autores y los pro'eedores de herramientas de $8(E. Este libro no incluye todos los detalles de 673! un conjunto relati'amente amplio de notaciones. (e centra en los diagramas de uso frecuente y en las caracter"sticas que ms se utilizan dentro de ellos.
=ay por los menos AT notaciones diferentes de los elementos del anlisis y diseo orientados a objetos: ello dificulta una comunicaci#n
(i el lector desea un estudio e4hausti'o de la notaci#n 673 en sus 'ersiones iniciales! puede consultar la especificaci#n completa en el sitio de Ueb de 2ational $orporation5 .rational.com
eficaz y uniforme! la capacidad de aprender y las herramientas de $8(E. 3os autores del lenguaje 673 CDooch! &acobson y 2umbaugh C hicieron un e4celente ser'icio a la comunidad de la tecnolog"a de objetos al crear un lenguaje estandarizado de modelado que es elegante! e4presi'o y fle4ible.
modelos y procesos de desarrollo para la creaci#n eficaz de sistemas de soft are: s#lo que ahora pueden hacerlo en un lenguaje com>n5 el 673.
INT !"U##I$N%
6n proceso de desarro o de so!"#are es un m)todo de organizar las actividades re1acionadas con la creacin, presentacin y mantenimiento de los sistemas de soft,are. /n este captulo se da una muy breve introduccin a las actividades fundamentales de un proceso, ofreciendo una gua de los pasos principales. Hemos incluido aqu esta e9p1icacin por dos motivos% /n los captulos subsecuentes se abordan el an lisis y el dise*o orientados a ob(etos a partir de esas actividades. -l seguir un proceso similar a1 que presentamos aqu, se sientan las bases para crear un proyecto de desarrollo mane(able, reproducible y e9itoso. /n el captu1o :; encontrar el lector mas temas concernientes a1 proceso.
/l lengua(e 6+8 no define un proceso est ndar. .us creadores admiten la importancia de contar con un lengua(e y un proceso muy s1idos para la construccin de modelos. 5frecen su recomendacin de lo que constituye un proceso adecuado en publicaciones aparte de las dedicadas al 6+8, porque la estandarizacin del proceso rebasaba entonces el mbito de la definicin del lengua(e. Tampoco se prescribe en este libro un est ndar o proceso nuevo. + s importante que seguir un proceso o m)todo oficiales es que el desarrollador adquiera habilidades que le permitan crear un buen dise*o, y que las organizaciones favorezcan este tipo de desarrollo de destrezas. /sto se logra dominando varios principios y heursticos que permiten identificar y abstraer los ob(etos idneos, asign ndoles despu)s responsabilidades.
/n este libro se ofrece una visin bastante representativa de los me(ores m)todos, de las actividades y modelos b sicos en un proceso de desarrollo para sistemas orientados a ob(etos que se funden en un enfoque iterativo e incremental de los casos de uso. 8os pasos y modelos recomendados constituyen, m s que una frmula, un recorrido por el panorama de desarrollo de soft,are por medio de la tecnologa de ob(etos. /stas actividades se incluyen como punto de partida para e9poner, e9perimentar y crear un proceso adecuado a las necesidades concretas de la empresa del lector.
?usin
+artn@ 5dell
5+T
/l 6+8
?igura $.1 ?actores que influyen en el proceso y los modelos recomendados en el libro. 3o se trata de un m)todo nuevo, sino la descripcin de un proceso y de modelos
generalmente recomendados 0+'41 que utilizan los profesionales y que, con diversos nombres y ligeras modificaciones, se incluyen en otros m)todos del an lisis y dise*o orientado a ob(etos A4umbaughB;C. 'ara simplificar la e9plicacin, en ocasiones uti@ lizaremos las siglas &' 0modelos y proceso recomendados1 y tambi)n para recalcar la naturaleza cclica del desarrollo iterativo. 8os factores que m s han influido en los +'4 aqu descritos 0figura $.11 son la e9periencia personal del autor en el desarrollo, el traba(o dedicado a 5b(ect.pace, el propio 6+8, ?usion A"olemanBDC, +artin@5dell A+5BEC, 4esponsability@&riven &esign AFirfs@ <rocGBHC, 55./ 05b(ectory1 A=acobsonB$C, 5+T A4umbaughB1C y <ooch A<oochBDC.
$.1.$ Alcance
8a descripcin de un proceso incluye fundamentalmente las actividades que abarcan desde los requerimientos hasta la presentacin o entrega. -dem s un proceso completo aborda puntos m s amplios relacionados con la industria1izacin del desarrollo de soft,are% ciclo de vida de un producto a largo p1azo, documentacin, soporte y capacitacin, traba(o en para1elo y coordinaciones entre los participantes.1 /n esta introduccin se ponen de relieve slo las actividades b sicas, sin entrar en muchos detalles. /n nuestro e9amen, se prescindir de algunos pasos y aspectos esencia1es del proceso% concepcin, p1aneacin, interaccin de equipos en paralelo, administracin del proyecto, documentacin y realizacin de pruebas. 5mitiremos los pasos anteriores porque son a(enos a1 propsito fundamental del libro @@aprender y aplicar habilidades en el an lisis y dise*o orientados a ob(etos@ o porque los temas son demasiado e9tensos como para investigarlos de manera satisfactoria.
de un proceso apropiado admite mucha variacin y depende de las habilidades del personal, de la razn investigacin@desarrollo, de la naturaleza del problema, de las herramientas y de muchos otros factores. 6na vez aclaradas estas razones, procedemos a aplicar los principios generales y los pasos
=acobson distingue entre m(todo) que abarca los pasos individuales y secuenciales del desarrollo, y proceso) que ampla el m)todo para aplicarlo a cuestiones mas amplias de industrializacin y de desarrollo en equipo A=acobsonB$C. -unque esta es una distincin importante, no subrayar) la distincin para no complicar aIn m s un rea ya saturada de tecnicismos.
1
$.%
&asos de 'acro(i)e
/n un nivel a1to, los pasos principales en la presentacin de una aplicacin son los siguientes 0figura $.$1 % 1. & a(eaci*( + e a,oraci*(% planear, definir los requerimientos, construir prototipos, etc. $. -o(s"rucci*(% la creacin del sistema. :. Ap icaci*(% la transicin de la implementacin del sistema a su uso.
'laneacin y elaboracin
"onstruccin
-plicacin
$..
Desarro o i"era"i)o
6n ciclo de vida iterativo se basa en el agrandamiento y perfeccionamiento secuencia1 de un sistema a trav)s de m*ltiples ciclos de desarrollo de an lisis, dise*o, implementacin y pruebas. /l sistema crece a1 incorporar nuevas funciones en cada ciclo de desarrollo. Tras una fase pre1iminar de planeacin y especificacin, el desarrollo pasa a la fase de construccin a trav)s de una serie de ciclos de desarrollo. /n cada ciclo se aborda un con(unto relativamente peque*o de requerimientos, pasando por el an lisis. el dise*o, la construccin y las pruebas 0figura $.:1 . /l sistema va creciendo con cada ciclo que concluye. /sto contrasta con el ciclo cl sico de la vida en cascada, en el cua1 las actividades 0an 1isis y dise*o, entre otras1 se llevan a cabo una vez con todos los requerimientos del sistema. /ntre las venta(as del desarrollo iterativo figuran las siguientes% 8a comple(idad nunca resulta abrumadora. .e produce retroa1imentacin en una etapa temprana. 'orque la implementacin se efectIa r pidamente con una parte peque*a del sistema.
'laneacin y elaboracin
"onstruccin
-plicacin
"iclo de desarrollo 1
"iclo de desarrollo 1
...
'erfeccionar el plan
.incronizacin de artefactos
-n lisis
&ise*o
"onstruccin
'rueba
FI/0RA $.% -ic os i"era"i)os de desarro o $...1 Fi1aci*( de a duraci*( de u( cic o de desarro o 2Ti'e3,o4i(g5
6na estrategia muy Itil en los ciclos de desarrollo consiste en limitarlo a un marco temporal, esto es, un lapso rgidamente fi(o. &igamos cuatro semanas. Todo el traba(o ha de concluirse en ese lapso. 6n periodo entre dos semanas y dos meses suele ser conveniente. /n un periodo menor seria muy difcil terminar las actividadesJ en un perodo mayor la comple(idad se torna abrumadora y la retroalimentacin se retrasa 0figura $.D1.
.incroniz acin
-n lisis
&ise*o
"onstruccin
'rueba
'ara tener )9ito con un programa de duracin fi(a es necesario escoger los requerimientos con mucho cuidado y asignarle la seleccin al equipo del desarrollo% son ellos los responsables de cumplir con el plazo establecido.
&icho de otra manera, se asigna un ciclo de desarrollo para implementar uno o m s casos de uso o bien sus versiones simplificadas 0por cierto muy comunes cuando el caso completo sera demasiado comple(o de abordar en un ciclo1 0figura $.E1.
"iclos de desarrollo 1
"iclo de desarrollo $
"iclo de desarrollo :
...............
$.D.:
&eberan clasificarse 1os casos de uso, y 1os que ocupen 1os niveles m s altos habran de abordarse en los ciclos iniciales de desarrollo. 8a estrategia general consiste en se1eccionar 1os casos que influyen profundamente en la arquitectura b sica, dando soporte al dominio y a las capas de servicios de alto nivel o los que presentan el m 9imo riesgo.
$. /laborar el informe preliminar de investigacin E. 2mplementar el prototipo B, D L. &efinir la arquitectura preliminar del sistema A, B, C
:. &efinir requerimientos
. &efinir los casos de uso 0de alto nivel esenciales1 B. 'erfeccionar el plan
FI/0RA $.* E1e'p o de ac"i)idades de a !ase de p a(eaci*( + e a,oraci*( /n la figura $.K observamos algunas actividades de esta fase. /ntre los artefactos generados aqu podemos citar los siguientes% 'lan % programa, recursos, presupuesto, etc. Informe preliminar de investigacin % motivos, alternativas, necesidades de la empresa +specificacin de re,uerimientos% declaracin de los requerimientos. -losario% diccionario 0nombre de conceptos, por e(emplo1 y toda la
informacin afn, como las restricciones y las reglas. 'rototipo% sistema de prototipos cuyo fin es facilitar la comprensin del problema, los problemas de alto riesgo y los requerimientos. #asos de uso% descripciones narrativas de los procesos de dominio. "iagramas de casos de uso% descripcin gr fica de todos los casos y de sus relaciones. .os,uejo del modelo conceptual% modelo conceptual preliminar cuya finalidad es facilitar el conocimiento del vocabulario del dominio, especialmente en su relacin con los casos de uso y con las especificaciones de los requerimientos.
"iclo de desarrollo 1
"iclo de desarrollo $
.............
-n lisis
&ise*o
D 'erfeccionar el glosario
"iclo de desarrollo 1
"iclo de desarrollo $
.............
-n lisis
&ise*o
"onstruccin
'rueba
$. &efinir los reportes, la interfaz del usuario y la secuencia de las pantallas E. &efinir los diagramas de dise*o de base A
$.7
/n la fase inicial de planeacin y elaboracin pueden crearse ciertos artefactos, entre ellos un modelo conceptual preliminar 0un modelo de conceptos del mundo real1 y casos e9pandidos de uso 0descripciones narrativas detalladas de procesos1. /n la presente seccin se e9amina el momento de su creacin.
2.".1
C#ando crear el
odelo concept#al
/l 'ode o co(cep"ua es una representacin de conceptos u ob(etos en el dominio del problema, como Libros y .iblioteca. &ebe controlarse el esfuerzo que se aplique a la produccin del modelo conceptual preliminar durante la fase de planeacin y elaboracin. 8a meta es lograr un conocimiento b sico del vocabulario y de los conceptos que se incluyen en los requerimientos. 'or ello, no hace falta una investigacin e9haustiva, pues se correra el riesgo de saturar demasiado la investigacin desde el principio% e9ceso de comple(idad. /n los dominios de problemas amplios @@por e(emplo, un sistema de reservaciones para las lneas a)reas@@, un modelo conceptual muy completo resultara e9cesivamente complicado. 8a estrategia intermedia que recomendamos es generar r pidamente un modelo conceptual que se centre en identificar los conceptos obvios e9presados en los requerimientos y posponer para mas tarde una investigacin con detenimiento. + s adelante, en cada ciclo de desarrollo, iremos refinando el modelo conceptual y ampliando 1os requerimientos referentes al ciclo. 5tra estrategia consiste en suspender definitivamente la creacin del modelo basta el inicio de los ciclos de desarrolloJ comenzar desde cero en el ciclo de desarrollo y luego ir ampli ndolo en carla ciclo. .e obtiene as la venta(a de aplazar la comple(idad, pero tambi)n hay una desventa(a% se dispone menos informacin inicial, que pudiera haber sido de gran utilidad para comprender los aspectos generales, para entender el glosario, al realizar un e9amen meticuloso y al efectuar estimaciones. /n el estudio de casos importantes se adopta este enfoque de posposicin en la creacin del modelo conceptual, no porque sea nuestro favorito sino parque favorece la e9plicacin gradual de cmo producirlos.
/.0./
8os casos de uso de a "o (i)e son muy breves, generalmente descripciones de un proceso en dos o tres oraciones. 8os casos e4pa(didos de uso son descripciones e9tensas que pueden contener cientos de oraciones con las cuales se realiza la descripcin. &urante la fase de planeacin y elaboracin, le aconse(amos crear todos los casos de uso de alto nivel, pero escribir slo 1os m s importantes en un formato e9pandido 0largo1, posponiendo el resto hasta el ciclo de desarrollo en que se estudian.
2gual que con el modelo conceptual, la adquisicin temprana de informacin no esta e9enta de desventa(as, pues puede originar una enorme comple(idad. 2nvestigar y escribir detalladamente en la fase de planeacin y elaboracin los casos de uso e9pandidos ofrece la venta(a de suministrar m s informacinJ esta puede facilitar la compresin, la administracin del riesgo, el e9amen meticuloso y las estimaciones. 'ero tambi)n ofrece la desventa(a de una e9cesiva comple(idad inicial% la investigacin producir miles de detalles nimios. + s aIn, los casos e9pandidos tal vez no sean muy confiables porque la informacin es incompleta o errnea y porque los requerimientos pueden cambiar constantemente. 'or tanto, la estrategia intermedia que recomendamos es investigar detenidamente, durante la fase de planeacin y elaboracin, solo 1os casos de uso m s importantes.
E
1EF@;@$@V; 1E 7/1E3/(
W 82<EF8$</(
Objetivos
Definir los modelos de anlisis y de diseo. Explicar con ejemplos las dependencias entre los artefactos de anlisis y diseo.
E.A
@ntroducci#n
/n este captulo se e9ponen e(emplos de modelos en el an lisis y dise*o orientados a ob(etos, as como de la relacin de subordinacin entre los artefactos en los modelos. /l propsito es ofrecer al lector un panorama generalJ en captulos posteriores profundizaremos en los detalles de los modelos y artefactos.
E.B
real con que se relacionan y del sistema a construir. 8os modelos deben contener elementos cohesivos y estrechamente intercone9os.
6+8 son las siglas de 6nified &odeling 8anguage 08engua(e 6nificado de "onstruccin de +odelos1, porque su finalidad es describir modelos de sistemas 0del mundo real y del mundo del soft,are1, basados en los conceptos de ob(etos. 8os modelos se componen de otros modelos o ar"e!ac"os> de diagramas y documentos que describen cosas. /l 6+8 especifica varios diagramas, entre ellos los diagramas de casos de uso y los diagramas de interaccin, que son los artefactos concretos a partir de los cuales creamos los modelos. /stos se visualizan por medio de las vistas @proyecciones visuales del modelo@J los diagramas de 6+8, entre ellos los de interaccin, abarcan las vistas de un modelo. .i queremos caracterizar los modelos, podemos poner de manifiesto la informacin es"8"ica o di(8'ica de un sistema. 6n 'ode o es"8"ico describe las propiedades estructurales del sistemaJ en cambio, un 'ode o di(8'ico describe las propiedades de comportamiento de un sistema.
3.3
Modelos muestra
/l 6+8 es un lengua(e fle9ible de modelado que permite definir modelos arbitrarios. /n esta seccin presentaremos e(emplos de modelos de an lisis y de dise*o que e9plican la pertenencia de artefactos concretos a los modelos.
+odelo de an lisis
+odelo de dise*o
Modelo de anlisis: el que se relaciona con una investigacin del dominio y del mbito del problema, pero no con la solucin. Modelo de diseo: el que se relaciona con la solucin
lgica. En cap tulos subsecuentes se estudian estos modelos !figura 3."# con mayor detalle.
3. $
'resupuesto, programa
&ependencia respecto a
Nlosario
"
982<E @@ F8(E
1E 938;E8$@V; W E38D/28$@V;
I.A
3uestro principal caso de estudio es el sistema de una terminal 0'5.T1 de punto de venta. t /sta terminal es un sistema computarizado con el que se registran las ventas y se realizan los pagosJ normalmente se utiliza en las tiendas al detalle. -barca componentes de hard,are 0una computadora y un lector de cdigo de barras1 y soft,are para correr el sistema .uponga que se nos ha pedido crear un programa para una terminal de punto de venta. "on una estrategia de desarrollo de incremento iterativo, vamos a realizar las fases de requerimientos, an lisis y dise*o orientados a ob(etos e implementacin.
1 6n problema tambi)n e9aminado en A"oadBEC, aunque este traba(o se llev acabo de manera independiente y mucho antes
que el otro.
!'or qu) escogimos este problema# 'or ser representativo de muchos sistemas de informacin y porque toca problemas comunes que puede encontrar un desarrollador. -hondaremos lo suficiente en el an lisis y en el dise*o, para que el lector vea en forma detallada cmo se abordan estos problemas y pueda aplicar el m)todo a otros proyectos.
I.B
/studiaremos en el captulo $$ el tema de una arquitectura de capas 0o niveles1. /l caso de estudio del punto de venta destaca principalmente los ob(etos del dominio del problema, asign ndoles responsabilidades para cumplir con los requisitos de la aplicacin. /n el captulo :L nos serviremos del dise*o orientado a ob(etos para crear un con(unto de ob(etos del nivel de servicio para conectarnos con una base de datos. /n este m)todo de dise*o, la capa de presentacin tiene muy poca responsabilidadJ se dice que es delgada. 8as ventanas no contienen un cdigo que se encargue de la lgica o procesamiento de la aplicacin. 'or el contrario, las solicitudes de tarea se envan al dominio del problema y a las capas de servicio.
I.E
/ste libro est organizado para seguir una estrategia de desarrollo iterativo. /l an lisis y el dise*o orientados a ob(etos se aplican al sistema del punto de venta en dos ciclos de desarrollo iterativo en que el primer ciclo se destina a una simple aplicacin de las funciones b sicas. /l segundo ampla la funcionalidad del sistema 0v)ase la figura D.:1.
,dems del desarrollo iterativo, tambi-n se e.pone de manera iterativa la presentacin de los temas del anlisis y el dise/o orientados a objetos, la notacin de 0M1 y los patrones. En el primer ciclo de desarrollo del sistema del punto de venta, se describe un grupo bsico de temas de anlisis y de dise/o, as como la notacin. El segundo ciclo se e.pande y ofrece nuevas ideas, la notacin de 0M1 y los patrones. Esta estrategia tiene por objeto proponer un modelo de aprendi(aje 2justo a tiempo2. El modelo procura e.plicar primero las ideas de mayor uso, lo ms cerca posible del momento en que el lector perciba la necesidad de aprenderlos para poder continuar. ,l principio, el libro se centra en las ideas y *abilidades fundamentales, sin saturarlo con nueva informacin que no pueda aplicar de inmediato. 3espu-s se e.plican las *abilidades e ideas que se utili(an ms raramente.
5.1 $ntrod#ccin
6n proyecto no puede ser e4itoso sin una especificaci#n correcta y e4hausti'a de los requerimientos. 9ara ello se necesitan muchas habilidades: un e4amen riguroso de ellas rebasa el mbito de este libro! pues nuestro objeti'o es que el lector domine el anlisis y el diseo orientados a objetos. 9ero se ofrece una introducci#n a los requerimientos
de la aplicaci#n punto de 'enta! porque en la prctica es un paso decisi'o! y se mencionan otros artefactos relacionados con la fase de requerimientos. ;o dudamos en recomendar E0ploring 1e,uirements: 2uality &e"ore Design R?UOPS! obra que se centra en las habilidades necesarias para dilucidar los requerimientos importantes. Este capitulo se propone lograr que el lector pueda e4presar los requerimientos! no en con'ertirlo en un e4perto en el dominio de los sistemas de terminales para tiendas y puntos de 'enta. 9or eso! la lista de las funciones y atributos del sistema no es e4hausti'a! sino representati'a.
'laneacin y elaboracin "onstruccin -plicacin
1. &efinir el plan preliminar D. 4egistrar los t)rminos en el glosario. a ;. &efinir el modelo conceptual preliminar. c Notas% a. constante b. opcional c. aplazable d. orden variable
:. &efinir los requerimientos K. &efinir los casos de uso 0de alto nivel y esenciales1. B. 'erfeccionar el plan.
'rototipos
;inguno de los artefactos que se describen en la presente secci#n son propios del lenguaje 673: se trata simplemente de documentos comunes de la fase de requerimientos.
/tros documentos pertinentes! que por cierto no e4aminaremos en el libro! se mencionan al final del cap"tulo. 5.2.1 *ntegraci"n de las pie!as del rompeca$e!as En nuestro caso de estudio! la definici#n de los requerimientos aparece muy clara y tajante5 la realidad dista mucho de serlo. 9or lo regular hay que reunir y asimilar muchos estudios y documentos electr#nicos! analizar los resultados de las entre'istas! celebrar reuniones para definir los requerimientos en grupo! etctera. 5.3 +resentaci"n general
Este proyecto tiene por objeto crear un sistema de terminal para el punto de 'enta que se utilizar en las 'entas al menudeo. 4.0 Clientes *bject .tore, 3nc.! detallista multinacional de objetos. 5.5 Metas En trminos generales! la meta es una mayor automatizaci#n del pago en las cajas registradoras! dar soporte a ser'icios ms rpidos! ms baratos y mejores y a los procesos de negocios. 7s concretamente! la meta incluye5 X 9ago rpido de los clientes. X 8nlisis rpido y e4acto de las 'entas. X $ontrol automtico del in'entario. 5.% ,unciones del sistema 3as )unci%ne# del #i#'e3a son lo que ste habr de hacer4 por ejemplo autorizar los pagos a crdito. =ay que identificarlas y listarlas en grupos cohesi'os y l#gicos.
Con el ob'eto de verificar &#e al()n * es de verdad #na f#ncin del siste a, la si(#iente oracin deber+ tener sentido: ,l siste a deber+ -acer .*/.
9or ejemplo: El sistema deber autori(ar los pagos a cr5dito. En cambio! los a'&i(u'%# del #i#'e3a son cualidades no funcionales C entre ellas la facilidad de usoC que a menudo se confunden con las funciones. ;#tese que *facilidad de uso+ no encaja en la oraci#n de 'erificaci#n5 El sistema deber hacer la "acilidad de uso. 3os atributos no deben formar parte del documento de las especificaciones funcionales del sistema! sino de un documento independiente que especifica sus atributos. 5.%.1 Categor-as de las unciones 3as funciones! como autori(ar pagos a cr5dito, han de clasificarse a fin de establecer prioridades entre ellas e identificar las que de lo contrario pasar"an inad'ertidas ,pero que consumen tiempo y otros recursos-. 3as categor"as son5
Signi)icad% 1ebe realizarse! y el usuario deber"a saber que se ha realizado 1ebe realizarse! aunque no es 'isible para los usuarios. Esto se aplica a muchos ser'icios tcnicos subyacentes! como guardar informaci#n en un mecanismo persistente de almacenamiento. 3as funciones ocultas a menudo se omiten ,err#neamente- durante el proceso de obtenci#n de los requerimientos. /pcionales: su inclusi#n no repercute significati'amente en el costo ni en otras funciones.
/culta
(uperflua
Re) D 2A.A
1uncin 2egistra la 'enta en proceso ,actual-5 los productos comprados. $alcula el total de la 'enta actual: se incluyen el impuesto y los clculos de cup#n. $aptura la informaci#n sobre el objeto comprado usando su c#digo de barras y un lector o usando una captura manual de un c#digo del producto: por ejemplo! un c#digo uni'ersal de producto ,69$-.
8a'eg%&5a E'idente
2A.B
E'idente
2A.E
E'idente
2A.I
2educe las cantidades del in'entario cuando se realiza una 'enta. (e registran las 'entas efectuadas. El cajero debe introducir una identificaci#n y una contrasea para poder utilizar el sistema. /frece un mecanismo de almacenamiento persistente. /frece mecanismos de comunicaci#n entre los procesos y entre los sistemas. 7uestra la descripci#n y el precio del producto registrado.
/culta
2A.K 2A.L
/culta E'idente
2A.N 2A.O
/culta /culta
2A.P
E'idente
7aneja los pagos en efecti'o! capturando la cantidad ofrecida E'idente y calculando el saldo deudor. 7aneja los pagos a crdito! capturando la informaci#n E'idente crediticia a partir de una lectora de tarjetas o mediante captura manual! y autorizando los pagos con el ser'icio de autorizaci#n ,e4terna- de crditos de la tienda a tra's de una cone4i#n por m#dem. 7aneja los pagos con cheque! capturando la licencia de conducir mediante captura manual! y autorizando los pagos con el ser'icio de autorizaci#n ,e4terna- de cheques de la tienda a tra's de la cone4i#n por m#dem. 2egistra los pagos en el sistema de cuentas por cobrar! pues el ser'icio de autorizaci#n de crdito debe a la tienda el monto del pago. E'idente
2B.B
2B.E
2B.I
/culta
metfora de interfaz
costo al detalle
plataformas
3os atributos del sistema pueden abarcar todas las funciones ,por ejemplo! la plataforma del sistema operati'o- o ser espec"ficos de una funci#n o grupo de funciones.
3os atributos tienen un posible conjunto de de'alle# de a'&i(u'%#! los cuales tienden a ser 'alores discretos! confusos o simb#licos: por ejemplo5 tiempo de respuesta M ,psicol#gicamente correctometfora de interfaz M ,grfico! colorido! basado en formas8lgunos atributos del (istema tambin pueden tener &e#'&icci%ne# de )&%n'e&a del a'&i(u'%! que son condiciones obligatorias de frontera! generalmente en un rango numrico de los 'alores de un atributo: por ejemplo5 tiempo de respuesta ,cinco segundos como m4imo=e aqu" algunos ejemplos ms5
,restriccin de "rontera6 $uando se registre un producto 'endido! la descripci#n y el precio aparecern en cinco segundos.
,detalle6 Gentanas orientadas a la metfora de una forma y cuadros de dilogo. ,detalle6 ma4imiza una na'egaci#n fcil con teclado y no con apuntadores.
7etfora de interfaz
<olerancia a fallas
,restriccin de "rontera6 debe registrar los pagos a crdito autorizados que se hagan a las cuentas por cobrar en un plazo de BI horas! aun cuando se produzcan fallas de energ"a o del equipo ,detalle6 7icrosoft Uindo s PK y ;<.
7.8.9 Atributos del sistema en las especi"icaciones de "unciones $on'iene describir todos los atributos del sistema que se relacionen claramente con las funciones dentro de la lista en que se especifican estas >ltimas. 8dems! los detalles de los atributos y las restricciones de frontera pueden catalogarse como obligatorios u opcionales.9 A 6na restricci#n de frontera suele ser obligatoria! pues de lo contrario significar"a que no era solid.
Re) D 2A.P 1uncin 7ostrar la descripci#n y el precio del producto registrado. 8a'. E'idente A'&i(u'% <iempo de respuesta 7etfora de interfaz De'alle# ! &e#'&icci%ne# K segundos como m4imo 9antallas basadas en formas $olorido 2B.I 2egistrar los pagos a crdito en el sistema de cuentas por cobrar! pues el ser'icio de autorizaci#n de crdito debe a la tienda el importe del pago. /culto <olerancia a fallas 1ebe registrar en las cuentas por cobrar en un plazo de BI horas! aun cuando se produzcan fallas de energ"a o del equipo. AT segundos como m4imo 8a'. /bliga. torio /bliga. torio /pcional /bliga. torio
<iempo de respuesta
/bliga. torio
5.. /tros arte actos en la ase de los re0uerimientos En este libro se da una introducci#n muy sucinta a los requerimientos: es un tema que bien podr"a abarcar libros enteros. 3as funciones y los atributos del sistema son los documentos m"nimos de los requerimientos! de modo que se necesitan otros artefactos importantes para atenuar el riesgo y entender el problema! a saber5 : 1e,uerimientos y e,uipos de enlace: lista de los que deber"an participar en la especificaci#n de las funciones y atributos del sistema! en la realizaci#n de entre'istas! de pruebas! de negociaciones y de otras acti'idades. : /rupos a"ectados: los que reciben el impacto del desarrollo o aplicaci#n del (istema. : .uposiciones: las cosas cuya 'erdad se supone. : 1iesgos: las cosas que pueden ocasionar el fracaso o retraso. : Dependencias: otras personas! sistemas y productos de los cuales no puede prescindir el proyecto para su terminaci#n
: /losario: definici#n de los trminos pertinentes: tema que se estudiar en cap"tulos subsecuentes : ;asos de uso: descripciones narrati'as de los procesos del dominio: tema que se 'er en cap"tulos posteriores : %odelo conceptual preliminar: modelo de conceptos importantes y de sus relaciones: tema que se tratar en cap"tulos posteriores.
/$)eti1os : : : : 3denti"icar y escribir casos de uso. Disear diagramas de casos de uso. ;ontrastar los casos de uso de alto nivel con los e0pandidos. ;ontrastar los casos de uso esenciales con los reales.
%.1 *ntroducci"n 6na tcnica e4celente que permite mejorar la comprensi#n de los requerimientos es la creaci#n de casos de uso! es decir! descripciones narrati'as de los procesos del dominio. En este capitulo se e4ponen los conceptos bsicos de esta tcnica y se dan ejemplos para aplicarlos a la terminal de punto de 'enta. En el siguiente cap"tulo clasificaremos los casos de uso y escogeremos los que utilizaremos en el primer ciclo de desarrollo. El 673 incluye formalmente el concepto de casos de uso y sus diagramas de uso.
'laneacin y elaboracin "onstruccin -plicacin
1. &efinir el plan preliminar D. 4egistrar los t)rminos en el glosario. a ;. &efinir el modelo conceptual preliminar. c Notas% a. constante b. opcional c. aplazable d. orden variable
:. &efinir los requerimientos K. &efinir los casos de uso 0de alto nivel y esenciales1. B. 'erfeccionar el plan.
'resupuesto, programa
%.2
2cti1idades 3 dependencias 3os casos de uso requieren tener al menos un conocimiento parcial de los requerimientos del sistema! en teor"a e4presados en el documento donde se especifican.
%.3
Casos de uso El caso de uso es un documento narrati'o que describe la secuencia de e'entos de un actor ,agente e4terno- que utiliza un sistema para completar un proceso R&acobsonPBS. 3os casos de uso son historias o casos de utilizaci#n de un sistema: no son e4actamente los requerimientos ni las especificaciones funcionales! sino que ejemplifican e incluyen tcitamente los requerimientos en las historias que narran.
$omprar productos
1igu&a ;.1 @cono del lenguaje 673 para un caso de uso. %.3.1 4)emplo de un caso de uso de alto ni1el: comprar productos El siguiente caso de uso de alto ni'el describe clara y concisamente el proceso de comprar art"culos en una tienda cuando se emplea una terminal en el punto de 'enta. 8a#% de u#%6 Ac'%&e#6 Tip%6 De#c&ipcin6 $omprar productos $liente! $ajero. 9rimario ,que se e4plicar luego-. 6n $liente llega a la caja registradora con los art"culos que comprar. El $ajero registra los art"culos y cobra el
importe. 8l terminar la operaci#n! el $liente se marcha con los productos. 3os encabezados y la estructura de este caso de uso son representati'os. (in embargo! el 673 no especifica un formato r"gido: puede modificarse para atender las necesidades y ajustarse al esp"ritu de la documentaci#n ante todo! una comunicaci#n clara. $on'iene comenzar con los casos de uso de alto ni'el para lograr rpidamente entenderlos principales procesos globales. %.3.2 4)emplo de un caso e5pandido de uso: comprar productos con e ecti1o 6n ca#% eEpandid% de u#% muestra ms detalles que uno de alto ni'el: este tipo de casos suelen ser >tiles para alcanzar un conocimiento ms profundo de los procesos y de los requerimientos. 8 menudo se lle'an a cabo en un estilo *coloquial+ entre los actores y el sistema RUirfs.Droc)PES. 1amos en seguida un ejemplo de un caso e4pandido de ;omprar productos que ha sido simplificado para manejar >nicamente los pagos en efecti'o y e4cluir la administraci#n del in'entario ,lo hemos hecho para simplificar la e4plicaci#n en este primer ejemplo-. 8a#% de u#%6 Ac'%&e#6 <&%p#i'%6 Re#u3en6 8%3p&a& p&%duc'%# en e)ec'i?% $liente ,iniciador-! $ajero. $apturar una 'enta y su pago en efecti'o. 6n $liente llega a la caja registradora con art"culos que desea comprar. El $ajero registra los productos y recibe un pago en efecti'o. 8l terminar la operaci#n! el $liente se marcha con los productos comprados. 9rimario y esencial. <unciones: 2A.A. 2A.B. 2A.E. 2A.N! 2A.P! 2B.l.
-urso (or'a de os e)e("os Acci*( de ac"or 1. /ste caso de uso comienza cuando un "liente llega a una ca(a de T'&> 0Terminal 'unto de >enta1 con productos que desea comprar. %. &etermina el precio del producto e incorpora a la transaccin actual la informacin correspondiente. Respues"a de sis"e'a
1 ANLISIS Y DISEO ORIENTADOS A OBJETOS misma categora, el "a(ero tambi)n puede introducir la cantidad. .. -l terminar de introducir el producto, el "a(ero indica a T'&> que se concluy la captura del producto. /l "a(ero le indica el total al "liente. /l "liente efectIa un pago en efectivo Pel Qefectivo ofrecidoRP posiblemente mayor que el total de la venta. @. +uestra al cliente la diferencia Nenera un recibo. .e presentan la descripcin y el precio del producto actual.
?.
7.
<. /l "a(ero registra la cantidad de efectivo recibida. 1A. /l "a(ero deposita el efectivo recibido y e9trae el cambio del pago /l "a(ero da al "liente el cambio y el recibo impreso. 1$. /l "liente se marcha con los artculos comprados.
Cursos alternos X 3"nea B5 introducci#n de identificador in'lido. @ndicar error. X 3"nea N5 el cliente no ten"a suficiente dinero. $ancelar la transacci#n de 'enta.
%.3.3
45plicaci"n del ormato e5pandido 3a parte superior de la forma e4pandida es informaci#n muy sucinta. 8a#% de u#%6 N%3(&e del ca#% de u#% Ac'%&e#6 3ista de actores ,agentes e4ternos-! en la cual se indica quin inicia el caso de uso. <&%p#i'%6 @ntenci#n del caso de uso. Re#u3en6 2epetici#n del caso de uso de alto ni'el o alguna s"ntesis
similar. Tip%6 1. 9rimario! secundario u opcional ,a e4plicar-. *. Esencial o real ,a e4plicar-. Re)e&encia# $asos relacionados de uso y funciones tambin relacionadas c&u7ada#6 del sistema.
3a secci#n intermedia! curso normal de los eventos, es la parte medular del formato e4pandido: describe los detalles de la con'ersi#n interacti'a entre los actores y el sistema. 6n aspecto esencial de la secci#n es que e4plica la secuencia ms com>n de los e'entos5 la historia normal de las acti'idades y la terminaci#n e4itosa de un proceso. =o incluye situaciones alternas.
Curso normal de los e1entos Accin del ac'%& Re#pue#'a del #i#'e3a 1escripciones numeradas de las respuestas del sistema.
3a >ltima secci#n! curso alterno de los eventos, describe importantes opciones o e4cepciones que pueden presentarse en relaci#n con el curso normal. (i son complejas! podemos e4pandirlas y con'ertirlas en nuestros casos de uso. $ursos alternos X 8lternati'as que pueden ocurrir en el n>mero de l"nea. 1escripci#n de e4cepciones. %.# 2ctores El actor es una entidad e4terna del sistema que de alguna manera participa en la historia del caso de uso. 9or lo regular estimula el sistema con e'entos de entrada o recibe algo de l. 3os actores estn representados por el papel que desempean en el caso5 $liente! $ajero u otro. $on'iene escribir su nombre con may>scula en la narrati'a del caso para facilitar la identificaci#n.
$liente 1igu&a ;.* @cono del lenguaje 673 que representa un actor de casos de uso.A A 8unque el icono estndar es una figura humana estilizada! hay quienes prefieren utilizar un icono con figura de computadora para designar los actores que son sistemas de c#mputo y no seres humanos.
En un caso de uso hay un actor iniciador ,ue produce la estimulacin inicial y, posiblemente, otros actores participantes4 tal ve( convenga indicar ,ui5n es el iniciador. 3os actores suelen ser los papeles representados por seres humanos! pero pueden ser cualquier tipo de sistema! como un sistema computarizado e4terno de bancos. =e aqu" algunos tipos5 X papeles que desempean las personas X sistemas de c#mputo X aparatos elctricos o mecnicos
%.5
6n error com7n en los casos de uso 6n error com>n en la identificaci#n de los casos de uso consiste en representar los pasos! las operaciones o las transacciones indi'iduales como casos. 9or ejemplo! en el dominio de la terminal del punto de 'enta! podemos definir ,incorrectamente- un caso denominado *@mprimir el recibo+! cuando en realidad esta operaci#n no es ms que un paso de un proceso ms amplio del caso ;omprar productos.
6n caso de uso es una descripci#n de un proceso de principio a fin relati'amente amplia! descripci#n que suele abarcar muchos pasos o transacciones: normalmente no es un paso ni una acti'idad indi'idual del proceso. Es posible di'idir las acti'idades o parte del caso en subcasos ,denominados ca#%# a(#'&ac'%# de u#%-! incluso en pasos indi'iduales5 pero esto no es lo habitual y lo 'eremos en el cap"tulo BL.
%.%
*denti icaci"n de los casos de uso 3os siguientes pasos de la identificaci#n de los casos de uso requieren
una llu'ia de ideas y re'isar los documentos actuales sobre la especificaci#n de los requerimientos.
6n mtodo con que se identifican los casos de uso se basa en los actores. 1. (e identifican los actores relacionados con un sistema o empresa. *. En cada actor! se identifican los procesos que inician o en que participan. 6n segundo mtodo de identificaci#n de los casos de uso se basa en e'entos. 1. (e identifican los e'entos e4ternos a los que un sistema ha de responder. *. (e relacionan los e'entos con los actores y con los casos de uso.
En la aplicaci#n del punto de 'enta! algunos actores posiblemente rele'antes y los procesos que inician son5
-a1ero 4egistra /ntrega efectivo "ompra productos 'aga los productos
- ie("e
%.8
Caso de uso 3 procesos del dominio >n caso de uso describe un proceso! un proceso de negocios por ejemplo. 6n p&%ce#% describe! de comienzo a fin! una secuencia de los e'entos! de las acciones y las transacciones que se requieren para producir u
obtener algo de 'alor para una empresa o actor. 8 continuaci#n se mencionan algunos procesos5 @ @ @ @ @ %.. 2etira efecti'o en un cajero automtico /rdena un producto 2egistra los cursos que se imparten en una escuela Gerifica la ortograf"a de un documento con un procesador de palabras 2ealiza una llamada telef#nica
Casos de uso9 unciones del sistema 3 rastrea$ilidad 3as funciones del sistema identificadas durante la especificaci#n pre'ia de requerimientos deben asignarse a los casos de uso. 8dems! debe ser posible 'erificar! mediante la secci#n 1e"erencias cru(adas, que todas las funciones hayan sido asignadas. $on ello se logra un '"nculo importante respecto a la rastreabilidad entre los artefactos. En definiti'a! todas las funciones y casos de uso del sistema deber"an poder rastrearse hasta la implementaci#n y la aplicaci#n de pruebas.
%.: &iagramas de los casos de uso En la figura L.E se muestra un diagrama de casos de uso para el sistema del punto de 'enta.
T'&> "ompra 'roductos "a(ero 4egistra los &atos /ntrega el cambio de los productos comprados "liente
1igu&a ;.+
6n diag&a3a de ca#%# de u#% e4plica grficamente un conjunto de casos de uso de un sistema! los actores y la relaci#n entre stos y los casos de uso. Estos >ltimos se muestran en #'alos y los actores son figuras estilizadas. =ay l"neas de comunicaciones entre los casos y los actores: las flechas indican el flujo de la informaci#n o el estimulo. El diagrama tiene por objeto ofrecer una clase de diagrama conte4tual que nos permite conocer rpidamente los actores e4ternos de un sistema y las formas bsicas en que lo utilizan.
%.1; ,ormatos de los casos de uso En la prctica! los casos de uso pueden e4presarse con di'erso grado de detalle y de aceptaci#n de las decisiones concernientes al diseo. En otras palabras! un mismo
caso de uso pueden escribirse en diferentes formatos y con di'ersos ni'eles de detalle. 7s adelante estudiaremos otras formas de clasificarlos y e4presarlos en formatos: pero por ahora nos concentraremos en una di'isi#n fundamental5 casos con formato de alto ni?el ! eEpandid%. %.1;.1 ,ormato de alto ni1el 6n ca#% de u#% de al'% ni?el describe un proceso muy bre'emente! casi siempre en dos o tres enunciados. $on'iene ser'irse de este tipo de caso durante el e4amen inicial de los requerimientos y del proyecto! a fin de entender rpidamente el grado de complejidad y de funcionalidad del sistema. Estos casos son muy sucintos y 'agos en las decisiones de diseo. %.1;.2 ,ormato e5pandido 6n ca#% de u#% eEpandid% describe un proceso ms a fondo que el de alto ni'el. 3a diferencia bsica con el caso de uso de alto ni'el consiste en que tiene una secci#n destinada al curso normal de los eventos, que los describe paso por paso. 1urante la fase de especificaci#n de requerimientos! con'iene escribir en el formato e4pandido los casos ms importantes y de mayor influencia: en cambio! los menos importantes pueden posponerse hasta el ciclo de desarrollo en el cual 'an a ser abordados. %.11 <os =istemas 3 sus ronteras 6n caso de uso describe la interacci#n con un *sistema+. 3as fronteras ordinarias del sistema son5 X la frontera hard are Q soft are de un dispositi'o o sistema de c#mputo X el departamento de una organizaci#n X la organizaci#n entera
"aso de uso
-ctor
1igu&a ;.0 Frontera de un caso de uso. Es importante definir la frontera del sistema para identificar lo que es interno o e4terno! as" como las responsabilidades del sistema. El ambiente e4terno est representada >nicamente por actores.
Estudiaremos un ejemplo de la influencia que tiene seleccionar la frontera del sistema5 los pagos en la terminal del punto de 'enta y la tienda. (i elegimos como *el sistema+ la tienda entera o el negocio ,figura L.L-! el >nico actor es el cliente y no el cajero! porque este >ltimo es un recurso del sistema del negocio que realiza las funciones. 9ero si escogemos como sistema el hard are y el soft are de la terminal del punto de 'enta ,figura L.K-! se trata como actores al cliente y al cajero.
T'&> "ompra 'roductos "a(ero 4egistra los 'roductos /ntrega el cambio de los productos comprados Figura ?.6 "asos de uso y actores cuando el sistema T&DB es la frontera Tienda "ompra 'roductos "liente "liente
/ntrega el cambio de los productos comprados Figura ?.? "asos de uso y actores cuando "ie(da es la frontera
En la selecci#n de una frontera del sistema influyen las necesidades de la in'estigaci#n. (i estamos desarrollando un soft are de aplicaci#n o un
dispositi'o! ser razonable establecer la frontera del sistema en la del hard are y en la del soft are: por ejemplo! la terminal del punto de 'enta y sus programas constituye *el sistema+! y el cliente y el cajero son los actores ,agentes- e4ternos. (i estamos efectuando la &eingenie&5a de p&%ce#%# de la e3p&e#a C reorganizando los procesos o la empresa para mejorar la competiti'idad o la calidadC! la selecci#n
de la compa"a o de la tienda entera como el sistema es importante. En el sistema <91G! definiremos *el sistema+ como la terminal de punto de 'enta y su soft are. %.12 Casos de uso primarios9 secundarios 3 opcionales 3os casos deber"an clasificarse en primarios! secundarios u opcionales. 7s adelante! a partir de estas designaciones clasificaremos nuestro conjunto de casos de uso para establecer prioridades en su desarrollo. 3os ca#%# p&i3a&i%# de u#% representan los procesos comunes ms importantes! como ;omprar productos. 3os ca#%# #ecunda&i%# de u#% representan procesos menores o raros: por ejemplo! .olicitud de surtir el nuevo producto. 3os ca#%# %pci%nale# de u#% representan procesos que pueden no abordarse.
%.13
1igu&a ;.= 3os casos esenciales y reales de uso e4isten a lo largo de un continuo. %.13.1 Casos esenciales de uso 3os ca#%# e#enciale# de u#% R$onstantinePNS son casos e4pandidos que se e4presan en una forma te#rica que contiene poca tecnolog"a y pocos detalles de implementaci#n: las decisiones de diseo se posponen y se
abstraen de la realidad! especialmente las concernientes a la interfaz para el usuario. 6n caso de este tipo describe el proceso a partir de sus acti'idades y moti'os esenciales. El grado de abstracci#n con que se describe e4iste en un continuo5 la descripci#n puede ser ms o menos esencial. 3os casos de alto ni'el siempre son de carcter esencial! debido a su bre'edad y abstracci#n. En seguida se incluye un ejemplo de un caso de 1etiro de e"ectivo en un cajero automtico! que se e4presa en una forma relati'amente esencial.
Ese(cia Acci*( de os ac"ores 1. /l "liente se identifica. %. S as sucesivamente. Respues"a de sis"e'a $. 'resenta opciones. .. S as sucesivamente.
3a manera en que un cliente se identifica cambia con el tiempo Ces una decisi#n de diseoC! pero forma parte del proceso esencial de que la identificaci#n se realice de alguna manera. $on'iene crear casos esenciales de uso al comenzar a in'estigar los requerimientos! con el prop#sito de entender mejor el alcance del problema y las funciones necesarias. Este tipo de casos son de gran utilidad porque permiten captar la esencia del proceso y sus moti'os fundamentales! sin 'erse abrumado con detalles de diseo. (uelen tambin ser correctos durante largo tiempo! ya que e4cluye las decisiones de diseo y! por lo mismo! su creaci#n fa'orece la comprensi#n y el registro de los factores que dan 'ida a los procesos de un negocio. 6na empresa puede recuperar y releer los casos esenciales de uso mucho tiempo despus! aplicndolos e4itosamente a un nue'o proyecto de desarrollo. %.13.2 Casos reales de uso En cambio! un ca#% &eal de u#% describe concretamente el proceso a partir de su diseo concreto actual! sujeto a las tecnolog"as especificas de entrada y de salida! etc. $uando se trata de la interfaz para el usuario! a menudo ofrece presentaciones de pantalla y e4plica la interacci#n con los artefactos. 8 continuaci#n se incluye el caso 1etiro de e"ectivo e4presado en una forma relati'amente real.
Rea Acci*( de os ac"ores 1. /l "liente introduce su tar(eta $. Respues"a de sis"e'a 'ide el identificacin nImero de personal
1 ANLISIS Y DISEO ORIENTADOS A OBJETOS 032'1. %. 2ntroduce el 32' con un teclado num)rico. 6. S as sucesivamente. .. +uestra el menI de opciones.
?. S as sucesivamente.
;#tese que la acci#n esencial del *$liente se identifica a s" mismo+ del caso de uso se realiz# ahora concretamente en la serie de acciones comenzando con *El $liente introduce su tarjeta+. En teor"a! los casos reales de uso se crean durante la fase de diseo en un ciclo de desarrollo! por ser un artefacto del diseo. En algunos proyectos se pre'n las primeras decisiones de diseo concernientes a la interfaz para el usuario: de ah" la necesidad de crear casos reales en la fase inicial de elaboraci#n. (e recomienda hacerlo en la fase de planeaci#n y elaboraci#n por la aceptaci#n prematura de un diseo y la abrumadora complejidad. ;o obstante! algunas compa"as aceptan un contrato de desarrollo! basndose en las especificaciones de la interfaz para el usuario. En el cap"tulo AP se e4aminan los casos reales en la aplicaci#n al punto de 'enta. %.13.3 4l caso esencial de uso de la compra de productos El caso ampliado de uso ;omprar productos que ya mencionamos tiende a ser un caso esencial. /bsr'ese que la descripci#n no es muy espec"fica respecto a la realizaci#n tcnica. El caso est escrito de manera que casi podemos imaginar su aplicabilidad despus de cien aos o hace cien aos! lo cual manifiesta que es esencial.
Ese(cia Acci*( de os ac"ores 1. /l ca(ero registra el identificador en cada producto. .i hay m s de un producto igual, el "a(ero puede introducir de igual manera la cantidad %. S as sucesivamente. Respues"a de sis"e'a $. &etermina el precio del producto y agrega la informacin sobre )l a la actual transaccin de venta. -parecen la descripcin y el precio del producto actual. .. S as sucesivamente.
%.13.# 4l caso real de uso de la compra de productos 8 diferencia de una 'ersi#n esencial del caso de uso! una 'ersi#n real se compromete con el diseo: una 'ersi#n completa de ella se e4plicar en un capitulo posterior. En el siguiente ejemplo de la 'ersi#n real! n#tese la
decisi#n de utilizar un c#digo uni'ersal de producto ,$69- con el identificador del producto A y una interfaz grfica para el usuario. A En una fase temprana del anlisis no con'iene tomar algunas decisiones! como la de utilizar un c#digo uni'ersal de producto ,$69- en el caso esencial de uso. El anlisis y diseo esencial y real son trminos a lo largo de un continuo de abstracci#n ms que e4tremos. =e aqu" lo ms importante5 siempre que se adopta un compromiso durante la fase de anlisis! e4iste la posibilidad de un error prematuro de diseo! sobrecarga de informaci#n y menor fle4ibilidad.
Rea Acci*( de os ac"ores 1. /n cada producto, el "a(ero teclea el "digo 6niversal de 'roductos 0"6'1, en el campo de entrada del "6' de la >entanal. &espu)s oprime el botn Qintroducir productoR con el ratn u oprimiendo la tecla T/nterU. $. Respues"a de sis"e'a +uestra el precio del producto y agrega la informacin sobre )l a la actual transaccin de venta.. 8a descripcin y el precio del producto actual se muestran en el cuadro de Te9to $ de la >entanal. .. etc)tera
%. etc)tera.
iniciadores. ?.9@.B Cuntos sobre la decisin de notacin y sobre la rami"icacin 6n caso de uso puede contener puntos de decisi#n. 9or ejemplo! en ;omprar productos, el cliente puede optar por pagar con efecti'o! a crdito o con cheque en el momento del pago. (i una de estas trayectorias de decisi#n es un caso muy representati'o y si las otras alternati'as son raras! inusuales o e4cepcionales! el caso t"pico
deber ser el >nico acerca del cual se escribe en el ;urso normal de los eventos y las opciones han de escribirse en la secci#n titulada Alternativas. 9ero en ocasiones el punto de decisi#n representa opciones cuya probabilidad es relati'amente igual y normal: esto sucede con los tipos de pago en efecti'o! con tarjeta de crdito y con cheque. En este caso se utiliza la siguiente estructura notacional5 1. En la secci#n principal ;urso normal de los eventos, indique las ramas de las subsecciones. *. Escriba una subsecci#n en cada rama! utilizando otra 'ez un ;urso normal de los eventos. @nicie el e'ento numerando en A cada secci#n. +. (i las subsecciones tienen opciones! escr"balas en una secci#n de alternati'as de cada subsecci#n. Secci*(9 pri(cipa
-urso (or'a de os e)e("os Acci*( de os ac"ores 1. /ste caso de uso comienza cuando un "liente llega a la ca(a T'&> con los productos que comprar . 0/9cluidos los pasos intermedios1... /l "liente escoge el tipo de pago% a. .i paga en efectivo, consIltese la seccin 'ago en efectivo. b. .i paga a cr)dito, consIltese la seccin 'ago con tarjeta de cr(dito. c. .i paga con cheque, consIltese la seccin 'ago con c8e,ue. .. 6. 4egistra la venta terminada. 2mprime un recibo. Respues"a de sis"e'a
$. %.
?. /l "a(ero le entrega el recibo al "liente. 7. /l "liente se marcha con los productos comprados.
$. ..
C#rsos alternativos
W 8nea D% efectivo insuficiente en la ca(a para pagar la diferencia. .e pide efectivo al supervisor o se pide al "liente un pago m s cercano al total de la venta.
1. &espu)s de haber listado las funciones del sistema, defina la frontera de )ste y luego identifique los actores y los casos de uso.
$. /scriba todos los casos de uso en el formato de alto nivel. "lasifquelos en primarios, secundarios u opcionales. %. &ibu(e un diagrama de caso de uso. .. 4elacione los casos de uso y d) e(emplo de las relaciones en el diagrama correspondiente 0m s adelante se e9plican las relaciones de los casos1. 6. /scriba en el formato esencial e1pandido los casos de uso m s importantes, influyentes y riesgosos, a fin de entender y estimar me(or la naturaleza y las dimensiones del problema. 'ara evitar an lisis comple(os posponga la escritura de la forma esencial e9pandida de los casos de uso menos importantes hasta los ciclos de desarrollo en que ser n abordados. ?. /n teora, los casos reales deberan posponerse hasta una fase de dise*o en el ciclo de desarrollo, porque su creacin conlleva decisiones de dise*o. 'ese a ello, a veces es necesario crear casos reales de uso durante la etapa inicial de los requerimientos si% @ @ 8as descripciones concretas facilitan notablemente la comprensin. 8os "lientes e9igen especificar sus procesos en esta forma.
"a(ero
"liente
I(icio de operacio(es Nerente. 'rimario. 6n gerente activa una T'&> a fin de prepararla para que la usen los "a(eros. /l Nerente comprueba que la fecha y la hora sean correctosJ hecho esto, el sistema est listo para que lo utilice el "a(ero.
T'&> "ompra 'roductos "a(ero 4egistra los 'roductos 'aga o entrega el cambio del pago de los productos comprados Nerente "liente
Figura ?.< &iagrama parcial de caso de uso, que representa la aplicacin T'&>.
/scribir lo anterior en una forma esencial e9pandida suministrar una mayor informacin y esclarecimiento de los requerimientos. - continuacin se presenta el caso de uso #omprar productos en su forma esencial e9pandida completa%
"omprar productos "liente 0iniciador1, "a(ero. "apturar una venta y su pago. 6n "liente llega a la ca(a con productos que desea comprar. /l "a(ero registra los productos y recibe el pago, que puede ser autorizado. -l terminar la transaccin, el "liente se marcha con los productos. 'rimario y esencial. 7unciones% 41.1, 41.$, 41.:. 41.;, 41.B, 4$.1, 4$.$, 4$.:, 4$.D.
-urso (or'a de os e)e("os Acci*( de os ac"ores 1. /ste caso de uso comienza cuando un "liente llega a la ca(a T'&> con los productos que desea comprar. /l "a(ero registra los productos. .i hay m s de un producto, tambi)n puede introducir la cantidad. %. &etermina el precio del producto y agrega la informacin sobre )l a la actual transaccin de venta. .e muestran la descripcin y el precio del producto actual. Respues"a de sis"e'a
$.
1 ANLISIS Y DISEO ORIENTADOS A OBJETOS .. -l terminar la captura de los productos, el "a(ero indica a T'&> que termin la captura de los productos. /l "a(ero le indica el total al "liente. /l "liente escoge la forma de pago% a. .i paga en efectivo, v(ase la seccin 'agar en +fectivo. b. .i paga con tar(eta v(ase la seccin 'agar con tarjeta de cr(dito. c. .i paga con cheque, v)ase la seccin 'agar con c8e,ue. <. 4egistra la >enta terminada. @. -ctualiza los niveles de inventario. 1A. Nenera un recibo. 11. /l "a(ero entrega el recibo al cliente. 1$. /l "liente se marcha con los productos comprados. 6. "alcula y presenta el total de la venta.
?. 7.
C#rsos alternos
8nea $% se introduce un identificador inv lido del producto. 2ndique el error. 8nea ;% el "liente no pudo pagan "ancele la transaccin de venta.
-urso (or'a de os e)e("os Acci*( de os ac"ores 1. /l "liente da un pago en efectivo Vel Qefectivo ofrecidoR@, posiblemente mayor que el total de la venta. /l "a(ero registra el efectivo ofrecido. /l "a(ero deposita el efectivo ofrecido y e9trae la diferencia. /l "a(ero le entrega el cambio al cliente. %. 'resenta la diferencia al "liente. Respues"a de sis"e'a
$. ..
C#rsos alternos
8nea 1% el "liente no tiene suficiente efectivo. 'uede cancelar o iniciar otro m)todo de pago. 8nea D% la ca(a no contiene suficiente efectivo para pagar la diferencia. /l "a(ero pide m s efectivo al supervisor o le pide al "liente otro billete de menor denominacin u otra forma de pago.
%.
.. 4ecibe una respuesta aprobatoria de cr)dito del .ervicio de autorizacin de cr)dito. 6. /n el sistema de "uentas por cobrar registra la informacin sobre el pago con tar(eta de cr)dito y la respuesta de aprobacin. /l .ervicio de autorizacin de cr)dito debe dinero a la TiendaJ por lo tanto, "uentas por cobrar debe darle seguimiento. +uestra el mensa(e aprobatorio de autorizacin.
?.
C#rsos alternos
8nea :% solicitud de cr)dito negada por el .ervicio de autorizacin de cr)dito. 'roponer otro m)todo de pago.
$.
..
6.
C#rsos alternos
8nea D% verificar solicitud negada por el .ervicio de autorizacin de cheques. 'roponer otra forma de pago.
!.1" 3odelos
#estra
8os casos esenciales de alto nivel y los diagramas de casos de uso son miembros del modelo de casos de uso del an lisis 0figuraK.B1.
+odelo de ?igura K.B -n lisis
+odelo conceptual
5b(etivos
Y "lasificar los casos de usos. Y "uando sea necesario, preparar versiones simplificadas de los casos de usos. Y -signar los casos de usos a los ciclos de desarrollo.
7.1
INTROD0--IFN 8as especificaciones de los requerimientos y los casos de uso se definen en la ?ase de 'laneacin y /laboracin. -dem s, puede crearse un +odelo conceptual preliminar y dise*ar una arquitectura tambi)n preliminar del y dise*ar una arquitectura tambi)n preliminar del sistema, aunque estas actividades se pospondr n en nuestro estudio de casos para ofrecer una introduccin mas gradual a los temas. .uponiendo que todos los artefactos deseados hayan sido generados 0por e(emplo, la especificacin de los requerimientos y los casos de uso1, el siguiente paso es iniciar la fase de "onstruccin en el ciclo de desarrollo iterativo y comenzar a implementar el sistema. /n un ciclo de vida de desarrollo iterativo, la tarea de llenar los casos de uso se distribuye entre varios ciclos.
/n el presente captulo se estudia la clasificacin y la programacin o calendarizacin de los casos de usos. 6na vez concluida esta etapa, estaremos listos para comenzar el primer ciclo de desarrollo y e9aminar a fondo el an lisis y dise*o orientados a ob(etos.
'laneacin y elaboracin
"onstruccin
-plicacin
D.@ 4egistrar los t)rminos en el glosario ,a ;.@ &efinir el modelo conceptual preliminar ,c
K.@ &efinir los casos de uso 0de alto nivel y esenciales1 B.@ 'erfeccionar el plan
'rototipos
'resupuesto, programa
&ependencia respecto a
Nlosario
&ependencias de los artefactos respecta a la fase de planeacin y elaboracin. 7.$ &RO/RAGA-IFN DE LOS -ASOS DE 0SO EN LOS -I-LOS DE DESARROLLO -ASOS DE 0SO DE LOS -I-LOS DE DESARROLLO 8os ciclos de desarrollo se organizan en torno a los requerimientos de los casos de uso. /n otras palabras, se asigna un ciclo para implementar uno o m s casos de uso o sus versiones simplificadas, cuando el caso ntegro resulta demasiado comple(o para abordarlo en un ciclo 0figura ;.11.
7.$.1
"iclo de desarrollo
"aso de uso -% >ersin simplificada
"iclo de desarrollo
"aso de uso -% versin ntegra
"iclo de desarrollo
"aso de uso <%
@@@@ @@@@ Figura 7.1 -signacin de los casos de uso a los ciclos de desarrollo. 7.$.$ -LASIFI-A-IFN DE LOS -ASOS DE 0SO
/s necesario clasificar los casos de uso, y los casos de alto rango han de tratarse al inicio de los ciclos de desarrollo. 8a estrategia general consiste en escoger primero los casos que influyen profundamente en la arquitectura b sica. He aqu algunas de las cualidades que aumenta la clasificacin de un caso% a. Tener una fuerte repercusin en el dise*o arquitectnicoJ por e(emplo, incorporar muchas clases a la capa del dominio o requerir servicios de persistencia. b. "on relativamente poco esfuerzo obtener informacin e ideas importantes sobre el dise*o. c. 2ncluir funciones riesgosas, urgentes o comple(as.
d. 4equerir una investigacin a fondo o tecnologa nueva y riesgosa. e. 4epresentar procesos primarios de la lnea de negocios. f. -poyar directamente el aumento de ingresos o la reduccin de costos /l esquema ta9onmico puede servirse de una clasificacin simple y poco rigurosa% alto@ mediano@ba(o. /l esquema tambi)n puede aplicar puntuaciones 0posiblemente incrementadas con ponderacin1, bas ndose en las cualidades que inciden en la clasificacinJ por e(emplo. -aso de uso "omprar productos y as sucesivamente a E , : c $ d H e E ! : Su'a 1<
7.%
-LASIFI-A-IFN DE LOS -ASOS DE 0SO EN LA A&LI-A-IFN AL &0NTO DE BENTA "on base en los criterios anteriores de clasificacin, a continuacin se incluye una clasificacin informal y poco rigurosa de los casos de uso de aplicacin al punto de venta. &e ninguna manera pretendemos dar una lista e9haustiva.
-aso de uso "omprar productos 2ncorpora nuevos usuarios 4egistra los productos comprados 'aga los productos comprados 'agar 2niciar "errar
Jus"i!icaci*( "orresponde a los criterios de clasificacin m s altos. -fecta al subdominio de la seguridad. -fecta al subdominio de la seguridad. 'roceso importanteJ afecta la contabilidad. /fecto mnimo en la arquitectura. 8a definicin depende de otros casos de uso. /fecto mnimo en la arquitectura.
<a(o
7..
'r cticamente todos los sistemas cuentan con un #aso de uso de inicio o arran,ue. -unque tal vez no ocupe un nivel alto conforme a otros criterios, es preciso estudiar al menos una versin simplificada de )l, al principiar el ciclo de desarrollo, )ste se realiz incrementalmente para satisfacer las necesidades de arranque de otros casos. 3o vamos a presentar de manera e9plcita la programacin de los pasos de este caso de uso y supondremos que siempre se desarrolla en forma implcita como se necesita. 7.6 &RO/RAGA-IFN DE LOS -ASOS DE 0SO EN LA A&LI-A-IFN DEL &0NTO BENTA - partir de la clasificacin, el caso #omprar productos debera incluirse en el primer ciclo de desarrollo. "omo hemos visto, tambi)n puede abordarse una versin simple de Inicio para soportar los otros casos de uso. 7.6.1 -REA-IFN DE BERSIONES GILTI&LES DE LOS -ASOS DE 0SOS -OG&LEJOS
.iempre que se asigne un caso de uso, es necesario estimar si es posible resolverlo ntegramente en el lapso limitado de un ciclo 0cuatro semanas, por e(emplo1 o si el traba(o ha de ser distribuido en varios ciclos. /n este caso, #omprar productos es e9tremadamente comple(o y quiz requiere cinco o m s ciclos, suponiendo que cada uno tendr una duracin de cuatro semanas e9actamente. .e supone una estrategia de programacin de duraci*( o "ie'po !i1o, en la cual al ciclo de desarrollo se le establece un plazo fi(o. /n esta situacin el caso se redefine a partir de varias versiones de )l, que van abarcando requerimientos cada vez m s e9haustivos. "ada versin se limita a incluir lo que se estima una cantidad razonable de traba(o dentro de los confines de la duracin fi(a del ciclo 0digamos cuatro semanas1. 'or e(emplo% Y "omprar productos% versin 1 0pagos en efectivo, sin actualizaciones de inventario,Z1 Y "omprar productos% versin $ 0permitir cualquier tipo de pago1 Y "omprar productos% versin : 0versin completa, incluyendo entre otras cosas las actualizaciones del inventario,Z1 8as versiones anteriores se distribuyen despu)s a lo largo de una serie de ciclos de desarrollo, (unto con otros casos de uso.
7.6.$
.i nos basamos en la clasificacin de los casos y de varias versiones de #omprar productos, podramos asignar algunos casos de uso al ciclo de desarrollo de la figura ;.$
"iclo de desarrollo D 4egistrar productos comprados @@@@ @@@@ @@@@ 'agar los productos comprados @@@@ @@@@ @@@@
Figura 7.$ -signacin de los casos de uso a los ciclos de desarrollo. 7.? BERSIONES DEL -ASO DE 0SO J-OG&RAR &ROD0-TOSK
6na vez que se ha decidido simplificar el caso y e9presarlo, hay que escribir versiones cada vez m s comple(as. Tambi)n hay que estipular las simplificaciones, las metas y las suposiciones de cada versin. 8as siguientes secciones ofrecen sugerencias valiosas al respecto. 7.?.1 BERSIFN 1 DE -OG&RAR &ROD0-TOS SIG&LIFI-A-IONES> GETAS Y S0&OSI-IONES L L L L L L L L L L 'agos /n efectivo e9clusivamente. .in mantenimiento de inventario. /s una tienda independiente, que no forma parte de una organizacin m s grande. "aptura manual del cdigo universal de producto 0"6'1J sin lector de cdigo de barras 3o se calculan los impuestos. .in cupones. /l ca(ero no tiene que registrar las ventasJ no se controla el acceso. 3o se lleva un registro de los clientes individuales ni de sus h bitos de compra. 3o se controla la ca(a de efectivo. /n el recibo aparecen el nombre y la direccin de la tienda, la fecha y la hora de la venta.
L 3i la identificacin del ca(ero ni la de T'&> aparecen en el recibo. L 8as ventas realizadas se registran en un documento histrico.
-o'prar produc"os> )ersi*( 1 "liente 0iniciador1, ca(ero. "apturar una venta y su pago en efectivo. 6n "liente llega a la ca(a con productos que desea comprar. /l "a(ero registra los productos comprados y recibe el pago en efectivo. -l terminar la transaccin, el "liente se marcha con los productos. 'rimario y esencial. 7unciones% 41.1, 41.$, 41.:, 41.E, 41.;, 41.B, 4$.1
-urso (or'a de os e)e("os Acci*( de os ac"ores 1. /ste caso de uso comienza cuando un "liente llega a una ca(a de T'&> con productos que desea comprar. $. /l "a(ero registra el cdigo universal de producto 0"6'1 en cada producto. .i un producto se repite, el "a(ero tambi)n puede introducir la cantidad. .. -l terminar de capturar los productos, el "a(ero indica ala T'&> que ya concluy la captura. ?. /l "a(ero le indica al "liente el total. 7. /l "liente da un pago en efectivo Vel efectivo QofrecidoR@, posiblemente mayor que el total de la venta. <. /l "a(ero registra el efectivo recibido @. +uestra al "liente la diferencia. Nenera un recibo. 1A. /l "a(ero deposita el efectivo recibido y e9trae la diferencia. /l "a(ero entrega al "liente el cambio y 11. 4egistra la venta terminada. Respues"a de sis"e'a
%. &etermina el precio del producto y agrega la informacin correspondiente a la transaccin actual. 'resenta la descripcin y el precio del producto en cuestin. 6. "alcula el total de la venta y se lo presenta al "liente.
el recibo impreso. 1$. /l "liente se marcha con los productos comprados. 7.?.$ -OG&RAR &ROD0-TOS9 BERSIFN $
Si'p i!icacio(es> 'e"as + suposicio(es 8as simplificaciones de la versin 1 se aplican tambi)n a esta versin, salvo que el pago puede efectuarse en efectivo, con la tar(eta de cr)dito o con cheque. 8as dos segundas formas de pago requieren autorizacin . -aso de uso9 Ac"ores9 &rop*si"o9 Resu'e(9 -o'prar produc"os> )ersi*( $ "liente 0iniciador1, "a(ero. "apturar una venta y su pago. 6n "liente llega a la ca(a con productos que desea comprar. /l "a(ero registra los productos comprados y recibe un pago> que debe recibir autorizacin. -l terminar la transaccin, el "liente se marcha con los productos comprados, y as sucesivamente.
7.7
RES0GEN
Sa estamos para hacer la transicin a la fase de desarrollo iterativo. /n el primer ciclo nos serviremos del caso del uso #omprar productos% versin 9.
<.1 INI-IO DE 0N -I-LO DE DESARROLLO .uponga la fase de planeacin y elaboracin ha concluido y que los casos de uso han sido identificados, clasificados y programados, por lo menos en la primera pare(a de ciclos. .e presenta entonces una transicin muy importante% comienza la fase de construccin en la cual se cumplen los ciclos del desarrollo iterativo 0figura L.11. /n el primer ciclo se ha decidido e9aminar una versin simplificada de #omprar productos que incluye solamente los pagos en efectivo y no el control de inventario. 8as actividades iniciales del ciclo se relacionan con la administracin del proyecto. /n el caso general, viene despu)s 0o, m s probablemente, ocurre en paralelo1 una sincronizacin de la documentacin 0por e(emplo, los diagramas1 a partir del Iltimo ciclo con el estado real del cdigo, por que los artefactos de dise*o y los cdigos difieren invariablemente durante la fase de codificacin del ultimo ciclo.
/ntonces se inicia la fase de analizar 0o de an lisis1, en el cual se investigan a fondo los problemas del ciclo actual. /n esta fase, una de las primeras actividades consiste en desarrollar un modelo conceptual, tema que trataremos en el siguiente captulo.
'laneacin y elaboracin
"onstruccin
-plicacin
"iclo de desarrollo 1
"iclo de desarrollo $
'erfeccionar el plan
.incronizacin de artefactos
-n lisis
&ise*o
"onstruccin
'rueba
&ARTE III
FASE DE ANLISIS
215
O,1e"i)os
L 2dentificar los conceptos relacionados con los requerimientos del ciclo actual de desarrollo. L "rear un modelo conceptual preliminar. L &istinguir entre los atributos correctos y los incorrecto. L 2ncorporar conceptos de especificacin cuando convenga. L "omparar los t)rminos% conceptos, tipo, interfaz y clase. @.1 I("roducci*(
@.1 INTROD0--IFN 6n modelo conceptual e9plica 0a sus creadores1 los conceptos significativos en un dominio del problemaJ es el artefacto m s importante a crear durante el an lisis orientado a ob(etos 1. /n este captulo estudiaremos los conocimientos preliminares en la creacin de modelos conceptuales. /n los dos siguientes e9aminaremos m s detenidamente las
habilidades relacionadas con la construccin de modelos conceptuales% observar atentamente los atributos y las asociaciones. 1. 8os casos de uso son un importante artefacto del an lisis de requerimientos, pero realmente no est n orientados a objetos. 'onen de relieve la vista del dominio a partir de un proceso. "iclo de desarrollo a.@ si todava no se realiza 'erfecciona@ .incronizacin -n lisis "onstruccin 'rueba &ise*o b.@ actual miento del plan de artefactos c.@ opcional
1. &efinir los casos esenciales de usos E. &efinir los diagramas de secuencia de los sistemas
$. 'erfeccionar los diagramas de los casos de usos K. &efinir los contratos de operaciones
D. 'erfeccionar el glosario
&iagramas de interaccin
+)todos
+odelo conceptual Nlosario &iagrama de secuencia del sistema &iagramas de clase de dise*o &iagramas de clase de dise*o &efiniciones de clase y de interfaz
"ontratos de operacin
&ependencia respecto a
&iagramas de estado
.O8
&ependencias de los artefactos durante la fase de construccin. 2dentificar muchos ob(etos o conceptos constituye la esencia del an lisis orientado a ob(etos y al esfuerzo se compensa con los resultados concebidos durante la fase de dise*o e implementacin. 8a identificacin de conceptos forma parte de una investigacin del dominio del problema. /l lengua(e 6+8 contiene la notacin en diagrama la notacin de estructura est tica que e9plican gr ficamente los modelos conceptuales. 6na cualidad esencial que debe ofrecer un modelo conceptual es que representa cosas del mundo real, no componentes del soft,are.
@.$ A-TIBIDADES Y DE&ENDEN-IAS 6na de las primeras actividades centrales de un ciclo de desarrollo consiste en crear un modelo conceptual para los casos de uso del ciclo actual. /sto no puede hacerse si no cuentan con los casos y con otros documentos que permitan identificar los conceptos 0ob(etos1. 8a creacin no siempre es linealJ por e(emplo, el modelo conceptual puede formularse en paralelo con el desarrollo de los casos. @.% GODELOS -ON-E&T0ALES /l paso esencial de un an lisis o investigacin orientado a objetos es descomponer el problema en conceptos u ob(etos individuales% las cosas que sabemos. 6n 'ode o co(cep"ua es una representacin de conceptos en un dominio del problema A+5BE, ?o,lerBKC. /n el 6+8, lo ilustramos con un grupo de diagra'as de es"ruc"ura es"8"ica donde no se define ninguna operacin. 8a designacin de modelo conceptual ofrece la venta(a de subrayar fuertemente una concentracin en los conceptos del dominio, no en las entidades del soft,are. 'uede mostrarnos% Y "onceptos Y -sociaciones entre conceptos Y -tributos de conceptos 'or e(emplo, en la figura B.1 vemos un modelo conceptual parcial del dominio de la tienda y las ventas. /9plica gr ficamente que le concepto de 'ago y <enta son importantes en este
dominio del problema, que 'ago se relaciona con <enta en una forma que conviene se*alar y que venta tiene fecha y hora. 'or ahora no son importantes los detalles de la notacin.
"oncepto
4egistra @ venta V de
'roducto
1 H.1 [
-lmacenada @en Tienda &ireccin 3ombre
-sociacin
"ontenida Ven
1Z[
1
>enta
-tributos
?echa Hora
1 1
1
-lo(a 1Z[
'agada@por
1
'ago +onto
"apturada @en
T'&>
Figura @.1 +odelo conceptual parcial. 8os nImeros en los e9tremos de la lnea indican multiplicidad, la cual se describe en el captulo subsecuente. @.%.1 -ONO-IGIENTO DE LA NOGEN-LAT0RA DEL DOGINIO -dem s de descomponer el espacio del problema en unidades comprensibles 0conceptos1, la creacin de un modelo conceptual contribuye a esclarecer la terminologa o nomenclatura del dominio. 'odemos verlo como un modelo que comunica 0a los interesados como pueden serlo los desarrolladores1 cuales son los t)rminos importantes y como se relacionan entre s. @.%.$ LOS GODELOS -ON-E&T0ALES NO SON GODELOS DE DISEO DE SOFTMARE 6n modelo conceptual, como se advierte en la figura B.$, es una descripcin del dominio de un problema real, no es una descripcin del dise*o del soft,are, como una clase de =ava o de "\\ 0figura B.:1. 'or ello los siguientes elementos no son adecuados en )l%
Y 8os artefactos de soft,are como una ventana o una base de datos, salvo que le domino a modelar se refiera a conceptos de soft,areJ por e(emplo, un modelo de interfaces gr ficas parar el usuario.
Figura @.$ 6n modelo conceptual muestra conceptos del mundo real. /vitar
<ase de datos >entas -rtefacto del soft,areJ no forma parte de un modelo conceptual
>enta
/vitar
Figura @.% 6n modelo conceptual no muestra los artefactos o clases del soft,are. @.%.% -ON-E&TOS /n t)rminos informales el concepto es una idea, cosa u ob(eto. /n un lengua(e m s formal podemos considerarlo a partir de sus smbolo, intencin 0$1 y e9tensin A+5BEC 0figura B.D1. Y S:',o o9 'alabras o im genes que representan un concepto. Y I("e(si*(9 8a definicin del concepto. Y E4"e(si*(9 /l con(unto de e(emplos al que se aplica el concepto. "onsideremos, por e(emplo, el concepto del evento de una transaccin de compra. 'odemos optar por designarlo con el smbolo <enta. 8a intencin de una <enta puede afirmar que Qrepresenta el evento de una transaccin de compra y tiene fecha y horaR. 8a e9tensin de <enta son todos los e(emplos de ventaJ en otra palabra el con(unto de todas las ventas.
011 8as responsabilidades normalmente se relacionan con entidades del soft,are y los m)todos siempre lo hacenJ pero el modelo conceptual describe conceptos reales, no entidades del soft,are. &urante la fase de diseo es muy importante tener en cuenta las responsabilidadesJ ya que no slo forman parte de este modelo. 0$1 2ntensin% en oposicin a e9tensin, designa el grado de cualidad.
Quna venta representa el evento de una transaccin de compra. Tiene fecha y hora.R
Figura @.. /l concepto tiene un smbolo, intensin y e9tensin. "uando se crea un modelo conceptual, por lo regular la vista del smbolo y de la intensin de un concepto es el aspecto de mayor inter)s pr ctico.
@.%.. LOS GODELOS -ON-E&T0ALES Y LA DES-OG&OSI-IFN 8os problemas de soft,are a veces son comple(osJ la descomposicin Vdivide y vencer s@ es una estrategia que suele utilizarse para resolver la comple(idad dividiendo el espacio del problema en unidad comprensible. /n el a(8 isis es"ruc"urado la dimensin de la descomposicin se realiza mediante procesos o funciones. /n cambio, en el an lisis orientado a ob(etos, se lleva a cabo fundamentalmente con conceptos.
6na distincin fundamental entre el an lisis orientado a ob(etos y el an lisis estructurado% divisin por conceptos 0ob(eto1 y no por funciones. 'or tanto, una tarea primordial de la fase de an lisis consiste en identificar varios conceptos en el dominio del problema y documentar los resultados en un modelo conceptual. @.%.6 -ON-E&TOS EN EL DOGINIO DEL &0NTO DE BENTA 'or e(emplo, en el dominio del problema real de comprar productos en una tienda en una terminal de punto de venta 0T'&>1 intervienen los conceptos de Tienda, T'&> y una <enta. 'or tanto, nuestro modelo conceptual 0figura B.E1 puede incluir una Tienda) T'"< y una <enta. Tienda T'&> >enta
Figura @.6 +odelo conceptual parcial en el dominio de la tienda. @... Es"ra"egias para ide("i!icar os co(cep"os 3uestra meta es crear un modelo conceptual de conceptos interesantes o significativos del dominio en cuestin. /n este caso, ello significa conceptos relacionados con el caso de uso #omprar productos, versin 9. 8a tarea fundamental ser , pues, identificar los conceptosJ se proponen dos estrategias. 8a siguiente es una directriz de gran utilidad en la identificacin de conceptos% Es 'e1or e4agerar + especi!icar u( 'ode o co(cep"ua co( 'ucDos co(cep"os re!i(ados Eue (o especi!icar o ca,a 'e("e. 3o piense que un modelo conceptual es m s adecuado si tiene menos conceptosJ generalmente suele suceder lo contrario. /s frecuente omitir conceptos durante la fase inicial de identificacin y descubrirlos m s tarde cuando se e9aminen los atributos o asociaciones o durante la fase de dise*o. "uando se detecten, habr que incorporarlos al modelo conceptual. 3o se e9cluya un concepto simplemente porque los requerimientos no indiquen una necesidad evidente que permita recordar la informacin acerca de ella 0criterio comIn de la construccin de modelos de datos para dise*ar una base de datos relacional, pero no pertinente a la creacin de modelos conceptuales1 o porque el concepto carezca de atributos. /s perfectamente v lido tener conceptos sin atributos o conceptos con un papel puramente de comportamientos en el dominio en vez de un papel informacional.
@...1. O,"e(ci*( de co(cep"os a par"ir de u(a is"a de ca"egor:as de co(cep"os. 8a creacin de un modelo conceptual se comienza preparando una lista de conceptos idneos a partir de la siguiente lista. "ontiene muchas categoras comunes que vale la pena tener en cuenta, sin que importe el orden de importancia. 8os e(emplos se tomaron de los dominios de la tienda y de las reservaciones de lneas a)reas.
E1e'p os
Transacciones
'asa(ero 5tros sistemas de cmputo o electromec nicos e9ternos al sistema "onceptos de nombres abstractos .istemade-utorizaciondeTar(etade"redito "ontroldeTrafico-ereo
Hambre -crofobia &epartamentode>entas 5b(eto8inea-erea >enta, 4obo, =unta >uelo, -ccidente, -terriza(e >enta6n'roducto 4eservacion-siento
5rganizaciones
/ventos
'rocesos 0a menudo no est n representados como conceptos, pero pueden estarlo1 4eglas y polticas
"at logos
2nstrumentos financieros
+anuales, libros
@...$ O,"e(ci*( de co(cep"os a par"ir de a ide("i!icaci*( de !rases (o'i(a es. 5tra t)cnica muy Itil 0por su simplicidad1 propuesta en A-bbotL:C consiste en identificar las frases nominales en las descripciones te9tuales del dominio de un problema y considerarlas conceptos o atributos idneos.
Es"e 'C"odo Da+ Eue u"i i;ar o co( 'ucDa prude(ciaN (o es posi, e e(co("rar 'ec8(ica'e("e correspo(de(cias e("re sus"a("i)o + co(cep"o> + ade'8s as pa a,ras de e(gua1e (a"ura so( a',iguas.
'ese a ello, esta t)cnica es fuente de inspiracin. 8os casos e9pandidos de uso son una e9celente descripcin que puede conseguirse con este an lisis. 'or e(emplo, puede usarse el caso de uso #omprar productos, versin 9.
Acci*( de os ac"ores 1. /ste caso de uso comienza cuando un - ie("e llega a una ca1a de T&DB con produc"os que desea comprar. $. /l -a1ero registra el c*digo u(i)ersa de produc"os 0"6'1
Respues"a de sis"e'a
de )e("as le agrega la informacin sobre el producto. .e muestran la descripci*( y el precio del produc"o actual.
-lgunas de las frases nominales anteriores son conceptos idneosJ algunas pueden ser atributos de conceptos. 'or favor, consulte el lector la seccin siguiente y el captulo dedicado a los atributos% en ellos encontrar sugerencias para distinguirlos. 6na debilidad de este enfoque es la imprecisin del lengua(e naturalJ varias frases nominales pueden designar el mismo concepto o atributo, entre otras ambig]edades que pueden presentarse. 'ese a ello, no dudamos en recomendar usarlo en combinacin con el m)todo de Lista de categor=a de conceptos.
#atalogode'roductos
@.6.1. O,1e"os de i(!or'e9 Ose i(c u+e e reci,o e( e 'ode oP /l recibo es un registro de una venta y de un pago, as como un concepto relativamente prominente en el dominio de ventasJ !debe, pues, mostrarse en el modelo# /n seguida se mencionan algunos factores que han de tenerse presentes% /l recibo es un informe de una venta. /n general, no conviene incluirlo en un modelo conceptual, ya que toda su informacin proviene de otras fuentes. ^ste es un buen motivo para e9cluirlo. /l recibo cumple un papel especial respecto a las reglas de la empresa% al portador le confiere el derecho de devolver los productos adquiridos. /sta es una razn para incorporarlo al modelo. /l recibo se e9cluir , porque las devoluciones de productos no se incluyen en este ciclo de desarrollo. .e (ustificar su inclusin durante el ciclo que aborde el caso "evolver productos. @.6.$. E 'ode o co(cep"ua de pu("o de )e("a 2s* o co(cep"os5 8a lista anterior de los nombres de conceptos puede representarse gr ficamente 0figura B.K1 en la notacin del diagrama de estructura est tica de 6+8, a fin de mostrar la g)nesis del modelo conceptual. T'&> >entas8inea de'roducto 'roducto "a(ero Tienda "liente >enta Nerente
'ago
"atalogode 'roductos
/specificacion de'roducto
Figura @.?. +odelo conceptual inicial del dominio del punto de venta.
/l modelo conceptual es una especie de mapa de conceptos o cosas de un dominio. /ste enfoque pone de relieve el papel analtico de un modelo conceptual y sugiere lo siguiente% 8os cartgrafos se sirven de nombres del territorio Vno cambian los nombres de ciudades en sus mapas@. /n el caso de un modelo conceptual, ello significa utilizar el vocabulario del dominio cuando se asignan nombres a los conceptos y a los atributos. 'or e(emplo, al desarrollar el modelo de una biblioteca, al cliente se le designar con los nombres que utilice el personal% <isitante) Lector, u otro seme(ante. 6n cartgrafo elimina cosas en el mapa en caso de que no las (uzgue pertinentes para el propsito que persigueJ as, no es necesario que muestre la topografa ni las poblaciones. &e modo an logo, un modelo conceptual puede e9cluir en el dominio del problema los conceptos que no se relacionen con los requerimientos. 'or e(emplo, podemos omitir 'luma y .olsade'apel en nuestro modelo conceptual 0con el con(unto actual de requerimientos1, por no tener una funcin importante que sea obvia. 6n cartgrafo no muestra cosas que no e9istanJ por e(emplo, una monta*a ine9istente. /n forma parecida, el modelo conceptual ha de e9cluir las cosas que no se encuentren en el dominio del problema en cuestin.
Si e( e 'u(do rea (o co(sidera'os a gQ( co(cep"o R co'o u( (Q'ero o "e4"o> pro,a, e'e("e R sea u( co(cep"o + (o u( a"ri,u"o. 'or e(emplo, pongamos el caso del dominio de las reservaciones en lneas a)reas. !&ebera "estino ser un atributo de <uelo o un concepto aparte >eropuerto# >uelo OoSP &estino 3ombre >uelo -eropuerto
/n el mundo real, un aeropuerto de destino no se considera nImero ni te9to% es una cosa masiva que ocupa espacio. 'or tanto, -eropuerto debera ser un concepto. E( caso de duda> co()ier"a e a"ri,u"o e( u( co(cep"o i(depe(die("e.
Figura @.7. T'&> y registro son conceptos similares. 6n registro es una cosa que asienta las ventas y los pagos, pero tambi)n lo es la terminal instalada en el punto de ventas. 3o obstante, el t)rmino registro parece tener un significado m s abstracto y denota una implementacin menos orientada que T'&>. 'ues bien, !en el modelo conceptual deberamos utilizar el smbolo egistro en vez de T'"<# &ri'ero> u(a reg a pr8c"ica co(sis"e e( Eue u( 'ode o co(cep"ua (o es a,so u"a'e("e correc"o (i err*(eo> si(o de 'a+or o 'e(or u"i idadN es u(a Derra'ie("a de a co'u(icaci*(. "onforme al principio del cartgrafo, T'"< es un t)rmino usual en el territorio, por lo cual es un smbolo Itil desde el punto de vista del conocimiento y la comunicacin. egistro es atractivo y Itil, segIn la meta de crear modelos que representen abstracciones y que no dependan de la implementacin. 011 -mbas opciones tienen sus bondades. /n este caso de estudio hemos escogido T'"< de modo un tanto arbitrarioJ tambi)n pudimos haber escogido egistro.
-lgunos sistemas de soft,are est n destinados a dominios que presentan muy poca seme(anza con los dominios naturales o con los de las empresas, un e(emplo lo constituye el soft,are de las telecomunicaciones. Todava es posible crear un modelo conceptual en esos dominios, pero se requiere un alto grado de abstraccin y abandonar los dise*os comunes. 011 3tese que anta*o un registro era simplemente una implementacin posible de la manera de registrar ventas. "on el tiempo, su significado ha ido generaliz ndose. /numeramos algunos conceptos adecuados que se relacionan con un intercambio de telecomunicaciones% &ensaje) #one1in) "ilogo) uta) 'rotocolo.
"on estas suposiciones, preguntamos% !qu) sucede en el siguiente escenario# /9iste gran demanda de una nueva hamburguesa% 5b(etoHamburguesa. 8a tienda vende todas sus e9istencias, lo cual significa que todas las instancias de +lemento de 5b(etoHamburguesa se cancelan en la memoria de la computadora. -hora bien, )sta es la esencia del problema% si alguien pregunta% Q!"u nto cuesta el 5b(etoHamburguesa#R, nadie podr contestarle porque la memoria de su precio se ane9 a las instancias inventariadas, que fueron elimin ndose conforme se vendan. 3tese asimismo que el modelo actual, si se implementa en el soft,are tal como se describe, posee datos duplicados y mane(a ineficientemente el espacio, porque la descripcin, el precio y el cdigo universal de producto se duplica en cada instancia de +lemento del mismo producto.
/l problema anterior demuestra la necesidad de un concepto de ob(etos que son especificaciones o descripciones de otras cosas. 'ara resolver el problema del +lemento lo que se necesita es una +specificacionde'roducto 0o +specificacionde+lemento) "escripcionde'roducto, Z1 concepto que registra la informacin sobre los elementos. 6na +specificacionde'roducto no representa un +lemento, sino una descripcin acerca de ellos. 3tese que, aunque todos los elementos inventariados se vendan y se eliminen sus instancias correspondientes de soft,are, se conserva la +specificacionde'roducto. 8a descripcin o especificacin de ob(etos se relacionan bastante con aquella que describen. /n un modelo conceptual, se acostumbra estipular que una +specificacion? describe una ?.
Ga
1escribe [
Bie(
Figura @.<. /specificaciones de otras cosas. /l signo Q[R significa una multiplicidad de QmuchosR. 2ndica que una +specificacionde'roducto puede describir muchos 0[1 'roductos. 8a necesidad de especificar los conceptos es frecuente en los dominios de ventas y productos. Tambi)n lo es en la manufactura, donde se requiere una descripcin de lo manufacturado que se distingue de la cosa manufacturada. /l tiempo y el espacio han sido incluidos al e9plicar la causa de la especificacin de conceptos, por ser muy comunesJ no se trata de un concepto poco usual de la construccin de modelos.
descripci*(
de
co(cep"os
2por
e1e'p o>
La e i'i(aci*( de as i(s"a(cias de as cosas Eue descri,e( ,le ento> por e1e'p o> da por resu "ado u(a pCrdida de a i(!or'aci*( Eue Da de co(ser)arse> de,ido a a asociaci*( i(correc"a de a i(!or'aci*( co( o e i'i(ado.
Ga
1escrito .por A
Bie(
@.@.
"ualquiera que sea la definicin, lo importante es su utilidad para distinguir entre la perspectiva de un analista de dominios que observa conceptos reales, como venta, y los dise*adores de soft,are que especifican entidades de programasJ por e(emplo, la clase <enta en =ava. /l 6+8 sirve, entre otras cosas, para e9plicar concretamente las perspectivas de notacin y terminologa muy afinesJ de ah la importancia de tener presente qu) perspectiva va a adoptarse 0un an lisis, un dise*o o una vista de la implementacin1.
&ara si'p i!icar (ues"ra e4posici*(> e( es"e i,ro co( e "Cr'i(o Jco(cep"oK desig(are'os cosas de 'u(do rea + co( e de Jc aseK> as especi!icacio(es e i'p e'e("acio(es de so!"#are.
8a definicin de c ase en 6+8 es Quna descripcin de un con(unto de ob(etos que comparten los mismos atributos, operaciones, m)todos, relaciones y sem nticaR A<=4B;C. -lgunos autores limitan la definicin de clase a una implementacin concreta de soft,are, digamos una clase en =ava A?o,lerBKC. 'ero, en el 6+8, este vocablo tiene una acepcin m s general% abarca especificaciones que anteceden a la implementacin. /n ese lengua(e, a una clase implementada de soft,are se le llama m s concretamente c ase de i'p e'e("aci*(. /n 6+8, una operaci*( es Qun servicio que puede solicitarse a un ob(eto para que realice un comportamientoR A<=4B;C, y 'C"odo es la implementacin de una operacin que especifica el algoritmo o procedimiento de esta Iltima. 8a definicin de "ipo en 6+8 se aseme(a a la de clase Vdescribe un con(unto de ob(etos parecidos con atributos y operaciones@, pero no puede incluir m)todos. &e ello se deduce que un tipo es una especificacin de una entidad de soft,are y no una implementacin. /llo significa tambi)n que un tipo de 6+8 es independiente del lengua(e. -unque no sea estrictamente e9acto dentro del conte9to del lengua(e 6+8, este libro a veces utiliza los vocablos QconceptoR y QtipoR indistintamente, porque en el uso coloquial el vocablo QtipoR a menudo se define como sinnimo de un concepto del mundo real A+5BEC. /l t)rmino i("er!a; se define como un con(unto de operaciones visibles en el e9terior. /n el 6+8, puede estar asociada a tipos y clases 0y tambi)n a paquetes que agrupan elementos1. -unque los conceptos reales pueden tener una interfaz 0la de un tel)fono, por e(emplo1, el t)rmino suele emplearse dentro del conte9to de una interfaz para entidades de soft,are, como la interfaz unnable de =ava.
+odelo conceptual
1H
1A.1 I("roducci*(
/s necesario identificar las asociaciones de los conceptos que se requieren para satisfacer los requerimientos de informacin de los casos de uso en cuestin y los que contribuyen a entender el modelo conceptual. /n el presente captulo e9aminaremos la identificacin de las asociaciones adecuadas y las incorporaremos al modelo conceptual del sistema del punto de venta.
1A.$ Asociacio(es
8a asociaci*( es una relacin entre dos conceptos que indica alguna cone9in significativa e interesante entre ellos 0figura 1H.11.
asociacion
2egistra TPDV
Genta actual
/n el lengua(e 6+8 se describen como Qrelaciones estructurales entre los ob(etos de diversos tiposR.
/n cambio, !necesitamos recordar una relacin entre una <enta actual y un -erente# 8a respuesta es negativa% los requerimientos no indican que haga falta ese tipo de relacin. Tal vez no sea incorrecto mostrar una relacin entre una <enta y -erente, pero no es indispensable ni Itil dentro del conte9to de nuestros requerimientos.
TPDV A
2egistra Z A
Genta actual
nombre de la asociaci#n
multiplicidad
Figura 1A.$ 3otacin de las asociaciones en el lengua(e 6+8. 8os e9tremos de una asociacin pueden contener una e9presin de multiplicidad que indique la relacin num)rica entre las instancias de los conceptos. 6na flecha opcional de la direccin de la lectura 0o Qflecha de la direccin del nombreR1 indica la direccin en que debe leerse el nombre de la asociacinJ no denota la direccin de visibilidad o de navegacin. /n su ausencia, por convencin la asociacin se lee de izquierda a derecha o de arriba hacia aba(o, aunque el 6+8 no hace esto una regla 0figura 1H.$1.
La ! ecDa de direcci*( de a ec"ura (o "ie(e u( )a or se'8("icoN "a( s* o es u(a a+uda para eer e diagra'a.
/(emplos "a(a@T'&> -la@-vin >entas8ineade'roducto@>enta Tramode>uelo@4utade>uelo T'&>@Tienda, 'roducto@/stante 'asa(ero@-vion &escripcionde'roducto@"atalogo >uelo@'rogramade>uelo &escripcionde'roducto@'roducto &escripcionde>uelo@>uelo
- es un elemento de lnea en una >entas8ineade'roducto@>enta transaccin o reporte de < Traba(ode+antenimiento@ +antenimiento - se conoceXintroduceXregistraX presentaXcaptura en < >enta@T'&> 4eservacin@8istade'asa(eros
- es miembro de <
"a(ero@Tienda 'iloto@-vion
- es una subunidad organizacional de &epartamento@Tienda < +antenimiento@8inea-erea - usa o dirige a < "a(ero@T'&> 'iloto@-vion "liente@"a(ero -gentede4eservaciones@'asa(ero 'ago@>enta 'asa(ero@<oleto
- es una transaccin relacionada con 'ago@>enta otra transaccin < 4eservacin@"ancelacion - est contiguo a < T'&>@T'&> "iudad@"iudad T'&>@Tienda -vion@8inea aerea
- es propiedad de <
- es una parte f=sica o lgica de <. - est f=sica o lgicamente contenido en <. - est registrado en <.
Es 'ucDo '8s i'por"a("e ide("i!icar os conceptos Eue as asociacio(es. E "ie'po co(sagrado a a creaci*( de 'ode o co(cep"ua de,er:a des"i(arse a ide("i!icar os co(cep"os> (o as asociacio(es .
1A.7 &ape es
- los e9tremos de una asociacin se les llama pape es. ^stos pueden tener% nombre e9presin de multiplicidad navegabilidad
/n este momento se investiga la multiplicidad, pero las dos caractersticas restantes se estudiar n en captulos posteriores.
Tienda A
8lmacena [
9roducto
Figura 1A.% +ultiplicidad en una asociacin 'or e(emplo, una instancia individual de una Tienda puede asociarse a QmuchasR instancias 0cero o m s marcadas con [1 de 'roducto. /n la figura 1H.D se ofrecen algunos e(emplos de las e9presiones de multiplicad.
[ T cero o ms: JmuchosJ
A.. [
<
uno o ms
A..IT
<
de uno a cuarenta
<
e4actamente K
E! K! O
<
Figura 1A.. >alores de la multiplicidad. /n el 6+8, el valor de la multiplicidad depende del conte9to. 4umbaugh A4umbaughB1C da un e9celente e(emplo de 'ersona y #ompa=a en la asociacin Trabaja@para. &el conte9to del modelo depender indicar si una instancia de 'ersona se aplica a una o varias instancias de #ompa=aJ al departamento de impuestos le interesan muc8asJ a un sindicato probablemente le interese slo una. 1A.< Asig(aci*( de (o',re a as asociacio(es
Se asig(a (o',re a u(a asociaci*( ,as8(dose e( e !or'a"o No',redeTipo3 FraseNo'i(a 3No',redeTipo> do(de a !rase (o'i(a ge(era u(a secue(cia Eue es egi, e + sig(i!ica"i)a de("ro de co("e4"o de 'ode o.
8os nombres de las asociaciones comienzan con una mayIscula. 6na frase nominal debe construirse con guiones. /n la figura 1H.E, la direccin por omisin en que debe leerse el nombre de una asociacin es de izquierda a derecha o de arriba hacia aba(o. 3o es as en la direccin por omisin de 6+8, aunque se trata de una convencin relativamente usual.
Tienda A $ontiene A..[ <91G A
'agada@por
$aptura A..[ Genta
'ago
Guelo
8'ion
(uper'is a
Vuelo
[ [
Guela.a
T..A A
8eropuerto
Guela.de
"uando se crea un modelo conceptual, podemos definir asociaciones que no se necesitan en la construccin. S a la inversa% podemos descubrir asociaciones que han de ser implementadas pero que se omitieron durante la fase de an lisis. /n tal caso, habra que actualizar el modelo para que incluyan esos descubrimientos. + s adelante e9plicaremos las formas de implementar las asociaciones en un lengua(e de programacin orientado a ob(etos 0lo usual es servirse de un atributo que apunte a una instancia de la clase asociada1, pero por ahora conviene verlas como meras e9presiones analticas, no como proposiciones acerca de una solucin de base de datos ni de soft,are. "omo de costumbre, posponemos las consideraciones de dise*o y as nos liberamos de informacin y decisiones prematuras en el modelo de an lisis, a la vez que aumentamos al m 9imo nuestras opciones para despu)s.
1A.11.$ Ap icaci*( de a ca"egor:a de a is"a de co'pro,aci*( de as asociacio(es 4ecorreremos la lista de comprobacin, bas ndonos en los tipos anteriormente identificados y teniendo presentes los requerimientos actuales del caso de uso.
-a"egor:a - es una parte fsica de < - es una parte lgica de < - est fsicamente contenido en <
Sis"e'a T&DB No aplicable <entasLineade'roducto@<enta T'"<@Tienda 'roducto@Tienda +specificacionde'roducto@ #atalogode'roductos #atalogode'roductos@Tienda +specificacionde'roducto@'roducto
- es una lnea de una transaccin o <entasLineade'roducto@<enta reporte de < - se introduceXregistraX presentaXcaptura en < - es miembro de < <entasAterminadasB@Tienda <entaAactualB@T'"< #ajero@Tienda
- es una subunidad organizacional No aplicable de < - usa o dirige a < #ajero@T'"< -erente@T'"< -erente@#ajero) pero probablemente no aplicable #liente@#ajero #liente@'ago #ajero@'ago
- es una transaccin relacionada con 'ago@<enta otra transaccin < - sigue a < T'"<@T'"<) pero probablemente no aplicable T'"<@Tienda
- es propiedad de <
/l con(unto de asociaciones que se incluye en el modelo conceptual de la figura 1H.; se obtuvo de manera bastante mec nica a partir de la lista de comprobacin. 'ero tal vez hay que ser m s selectivos con las asociaciones que contendr nuestro modelo conceptual. &esde el punto de vista de la comunicacin, no conviene saturar el modelo con asociaciones que no sean indispensables y que no me(oren nuestro conocimiento. /l e9ceso de ellas no aclara, sino que oscurece la situacin. "omo se*alamos con anterioridad, recomendamos los siguientes criterios para presentar las asociaciones% -o(ce("rarse e( as asociacio(es e( Eue e co(oci'ie("o de a re aci*( Da de ser preser)ado dura("e a gQ( "ie'po 2asociacio(es JEue de,e( co(ocerseK5. No i(c uir as asociacio(es redu(da("es (i as deri)a, es. 2egistra.'enta.de 1escritas.por A $atalogode9roductos A 6sado.por T..[ $ontiene 1escribe A Especificacion de los 9rod A..[ A
[ [ [ 8lmacena 9roducto Gentas3ineade9roductos <ienda A A A [ A A..[ $apturas 8loja terminadas $ontenidas.en A A..[ 9agado.por A Genta [ @nciado.por ?erente <91G A $apturadas.en A A A A A A Y 2egistra.'entas.en @niciado.por A 9ago A $liente A @niciada.por A $ajero
"onforme a nuestra recomendacin, no son indispensables todas las asociaciones que se muestran en cierto momento. /studie detenidamente la tabla ane9a% Asociaci*( <enta capturada@por #ajero E4p icaci*( 8os requerimientos no indican la necesidad de conocer ni de registrar al ca(ero actual. -dem s, es derivable si e9iste la asociacin T'"< Usado@por #ajero 8os requerimientos no indican la necesidad de conocer ni de registrar al ca(ero actual 8os requerimientos no indican la necesidad de conocer ni de registrar al gerente que inici un T'&> 8os requerimientos no indican la necesidad de conocer ni de registrar al "liente actual que inici una venta. 8os requerimientos no indican la necesidad de conocer o mantener la informacin del inventario. 8os requerimientos no indican la necesidad de mantener la informacin de inventario.
<entasLineade'roducto 'roducto
egistra@venta@de@
3tese que la capacidad de (ustificar una asociacin atendiendo a la necesidad de conocerla depende de los requerimientosJ un cambio de ellos Vpor e(emplo, e9igir que la identificacin del ca(ero aparezca en un recibo@ altera la necesidad de recordar una relacin. - partir del an lisis anterior, tal vez se (ustifique suprimir las asociaciones en cuestin.
1A.1$.$ Las asociacio(es Eue (ecesi"a( co(ocerse + as Eue !aci i"a( a co'pre(si*(
6n criterio estricto de la necesidad de conocer aplicado a la conservacin de asociaciones dar origen a un Qmodelo mnimo de informacinR sobre lo que se requiere para construir un modelo del dominio del problema, modelo que estar acotado por los requerimientos en cuestin. 'ero este procedimiento puede producir un modelo que no facilite 0ni a los dise*adores ni a terceros1 la comprensin cabal del dominio. -lgunas veces vemos el modelo conceptual no como un modelo riguroso de informacin, sino como una herramienta de la comunicacin, con la cual intentamos entender los conceptos importantes y sus relaciones. &esde esta perspectiva, eliminar algunas asociaciones que no reclamen estrictamente el criterio de la necesidad de conocer puede originar un modelo inadecuado% no comunica las ideas ni las relaciones m s importantes. /sto lo vemos, por e(emplo, en la aplicacin al punto de venta% aunque conforme al criterio estricto de la necesidad de conocer, quiz no sea preciso registrar >enta 2niciada@por "liente, su ausencia omite un aspecto importante para comprender el dominio% el hecho de que un cliente genera ventas. /n lo tocante a las asociaciones, un buen modelo ocupa un punto intermedio de un modelo basado en la necesidad mnima de conocimiento y otro que contenga todas las relaciones posibles. !"u l es el criterio b sico para (uzgar su valor# 6no podra ser% !cumple con todos los requerimientos de la necesidad de conocer y adem s comunica claramente una comprensin esencial de los conceptos importantes en el dominio del problema#
E(!a"ice as asociacio(es Eue de,e( co(ocerse> pero i(corpore "a',iC( as opcio(a es Eue se reEuiere( s* o para a co'pre(si*(> co( e !i( de e(riEuecer e co(oci'ie("o ,8sico de do'i(io.
11
GODELO -ON-E&T0AL9
A/RE/A-IFN DE LOS ATRIB0TOS
O,1e"i)os
2dentificar los atributos en un modelo conceptual. &istinguir entre atributos correctos e incorrectos.
11.1 I("roducci*(
/s necesario identificar los atributos de los conceptos que se necesitan para satisfacer los requerimientos de informacin de los casos de uso en cuestin. /n este captulo e9aminaremos la identificacin de los atributos idneos y le agregaremos atributos al modelo conceptual del dominio, que hemos aplicado al punto de venta. RecuCrdese Eue e 'ode o co(cep"ua es u(a represe("aci*( de cosas rea es> (o de co'po(e("es so!"#are. -ua Euier a!ir'aci*( co(cer(ie("e a os a"ri,u"os Da de i("erpre"arse de("ro de co("e4"o de e("idades de 'u(do rea .
11.$ A"ri,u"os
6n a"ri,u"o es un valor lgico de un dato de un ob(eto. I(c u+a os siguie("es a"ri,u"os e( u( 'ode o co(cep"ua 9 AEue os e( Eue os reEueri'ie("os 2por e1e'p o> os casos de uso5 i(dica( o co( e)a( a (ecesidad de recordar i(!or'aci*(. 'or e(emplo, un recibo de ventas normalmente incluye la fecha y la hora. /n consecuencia, el concepto <enta requiere los atributos fec8a y 8ora.
/n un modelo conceptual, es preferible que los atributos sean a"ri,u"os si'p es o )a ores puros de da"os. /ntre los tipos comunes de atributos simples m s frecuentes se cuentan% <ooleano, ?echa, 3umero, "adena 0Te9to1, Hora He aqu otros tipos comunes% &ireccin, "olor, Neometra 0'unto, 4ectangulo, Z1, 3umero telefonico, 3umero del .eguro .ocial, "odigo 6niversal de 'roducto 0"6'1, .a6, "' o codigos postales, tipos enumerados.
Cajero
no atributo JsimpleJ
Ga
Bie(
Cajero nombre
6sa
<91G numero
Ga
Guelo destino
Bie(
V uelo A
Guela.a A
8eropuerto
Figura 11.% 3o represente como atributos los conceptos comple(os de dominioJ use asociaciones. 4epetiremos un e(emplo anterior% una confusin frecuente consiste en modelar como atributo un concepto comple(o del dominio. -s, un aeropuerto de destino no es una cadena de caracteres en realidad% es una realidad comple(a que ocupa muchos Gilmetros cuadrados de espacio. 'or tanto, deberamos relacionar <uelo con >eropuerto a trav)s de una asociacin y no con un atributo, como se indica en la figura 11.: Re acio(e co(cep"os co( u(a asociaci*(> (o co( u( a"ri,u"o
11...$ -o'paraci*( e("re a(8 isis + dise=o9 OEuC decir de os a"ri,u"os e( c*digoP
8a restriccin de que los atributos del modelo conceptual sean Inicamente tipos de datos simples no significa que los de "\\, =ava o .malltalG 0miembros de datos, variables de instancias1 deban ser slo de tipos primitivos de datos simples. /l modelo conceptual se centra en afirmaciones analticas puras sobre un dominio del problema, no en entidades de soft,are. + s adelante, durante las fases del dise*o y construccin, veremos que las asociaciones entre los ob(etos e9presados en el modelo conceptual a menudo se implementar n como atributos que apuntan a otros tipos comple(os. 'ero )sta no es m s que una de muchas posibles soluciones de dise*o para implementar una asociacinJ por tanto, la decisin habr de aplazarse durante la fase de an lisis. 8a etapa de an lisis no es el momento de tomar prematuramente decisiones concernientes al dise*o.
0dentro del conte9to de nuestro modelo o sistema1 A4umbaughB1C. 'or e(emplo, no es 0generalmente1 significativo distinguir entre% 2nstancias aisladas del Numero E. 2nstancias aisladas de la #adena QgatoR. 2nstancias aisladas de NumeroTelefonico que contengan el mismo nImero 2nstancias aisladas de "ireccion que contengan la misma direccin. /n cambio, s es significativo distinguir 0por identidad1 entre dos instancias asiladas de una 'ersona cuyos nombres sean Q=ill .mithR, porque ambas instancias pueden representar diferentes individuos con un mismo nombre. 'or lo que respecta al soft,are, hay pocas situaciones donde compararamos la direccin de memoria de las instancias de Numero) #adena) NumeroTelefonico o "ireccionJ slo las comparaciones basadas en valores son relevantes. /n cambio, es posible comparar las direcciones de memoria de las instancias 'ersona y distinguirlas, aun cuando tuvieran los mismos valores de atributos, por ser importante su identidad Inica. 0( e e'e("o de u( "ipo puro de da"os puede e1e'p i!icarse e( a secci*( de o"ro co(cep"o des"i(ada a os a"ri,u"os> au(Eue "a',iC( es acep"a, e 'ode ar o co'o u( co(cep"o di!ere("e. 8os valores puros de datos tambi)n se denominan o,1e"os de )a or. /l concepto de valor puro es sutil. 6na regla pr ctica consiste en aplicar la prueba b sica de los tipos de atributos QsimplesR% convertirlos en atributo si espont neamente los concebimos como nImero, cadena, booleano, fecha u hora 0y as sucesivamente1J de lo contrario, representarlos como un concepto aparte. E( caso de duda> de!i(a a go co'o co(cep"o ais ado + (o co'o a"ri,u"o.
11....
De"erioro de dise=o9 (i(gQ( a"ri,u"o de,e i(c uirse co'o a)e !or8(ea.
8os atributos no deberan servir para relacionar conceptos en el modelo conceptual. 8a violacin m s frecuente de esta regla consiste en agregar un tipo de a"ri,u"o de a)e !or8(ea, lo cual suele hacerse con los dise*os de bases de datos relacionales, a fin de asociar dos tipos. 'or e(emplo, en la figura 11.D el atributo 3umeroT'&> actual en el tipo #ajero no es conveniente, porque su propsito es relacionar #ajero con un ob(eto T'"<. 8a me(or manera de e9presar que un #ajero usa una T'"< consiste en recurrir a la asociacin, no a un atributo de llave for nea. 6na vez m s, recuerde el lector relacionar los tipos a trav)s de una asociacin y no con un atributo.
Hay muchas formas de relacionar los ob(etos Vlas llaves for neas son una de tantas@J adem s para evitar el de"erioro del dise*o, deberamos posponer hasta la fase del dise*o cmo vamos a implementar la relacin.
$ajero
Ga
nombre ;umero<91Gactual
un atributo "simple", pero que se usa como clave extraa para relacionarlo con otro objeto
Bie(
Cajero nombre A
6sa A
<91G numero
-l aplicar las directrices anteriores a los atributos del modelo conceptual del punto de venta, se obtiene el siguiente an lisis% /l cdigo cup debera ser un tipo "6' no primitivo, porque puede ser validado verificando la suma y porque puede poseer otros atributos 0por e(emplo, el fabricante que lo asign1.
8os atributos de precio y cantidad deberan ser los tipos no primitivos #antidad, por ser cantidades en una unidad monetaria. /l atributo direccion debera ser un tipo no primitivo "ireccion, porque consta de secciones independientes.
8os tipos #U') "ireccion y #antidad son valores puros de datos 0la identidad Inica no es significativa1J as que podemos mostrarlos en la seccin de la casilla dedicada a los atributos en vez de relacionarse con una lnea de asociacin.
11.6.1
!&eberamos mostrar el tipo de #U' como concepto aparte en un modelo conceptual# 8a respuesta es% depende de lo que queremos destacar en el diagrama. 'or ser el "6' un valor puro de datos 0la identidad Inica no es importante1, podra presentarse en la seccin dedicada a atributos en la casilla de conceptos, como se advierte en la figura 11.E. 'ero por no ser un tipo primitivo con sus propios atributos y asociaciones, tal vez sera interesante mostrarlo como concepto en su propia ca(a. 3o e9iste en este caso una respuesta correctaJ depender de la manera en que vamos a utilizar el modelo conceptual como herramienta de comunicacin y tambi)n depender de la importancia del concepto en el dominio.
Bie(
Especificacion de producto
$69 [ A
<ienda [ A
1ireccion
@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @
Bie(
Figura 11.6 .i el tipo de atributo es un valor puro de datos, puede mostrarse en la seccin de atributos.
0( 'ode o co(cep"ua es u(a Derra'ie("a de a co'u(icaci*(N as decisio(es so,re o Eue de,er:a 'os"rarse Da( de "o'arse "e(ie(do prese("e eso.
/n t)rminos informales, el importe de un 'ago puede ser representado como un N*mero. 'ero, en general, )ste no es un esquema robusto ni fle9ible porque las unidades de un nImero a menudo son importantes. "onsidere% moneda velocidad
'or e(emplo suele requerirse convertir las unidades 0por e(emplo, las conversiones del sistema ingl)s al sistema m)trico1. .uponiendo que el soft,are del punto de venta est) destinado al mercado internacional, habra que conocer la unidad monetaria de los pagos. 8a solucin consiste en representar #antidad como un concepto distinto, con una Unidad asociada. S como se supone que las cantidades son valores puros de datos 0la identidad Inica carece de importancia1, es aceptable limitarse a presentarlas en la seccin de la casilla destinada a los tipos 0v)ase la figura 11.K1.
utilizable! pero no fle4ible ni robusto Pago monto 5 ;umero
bbbbbbbbbbbbbbbbbbbbbbbbbbb bbbbbbbbbbbbbb
9ago <iene.cantidadZ $antidad Esta.en Z
6nidad
monto 5 ;umero
[
'ago
..
mejor
monto% cantidad
8as cantidades son valores puros de datos, adecuados por eso para mostrarlos en la seccin de atributos
8a lectura llama claramente algunos atributos% especificacin de los requerimientos casos de uso en cuestin documentos de simplificaciones, clarificaciones y suposiciones
'or e(emplo, normalmente es necesario registrar la fecha y la hora de una venta. &e ah que el concepto <enta requiera los atributos fec8a y 8ora. 5tros atributos no son evidentes y posiblemente no se los identifique en el an lisis. /sto es aceptable% durante las fases de dise*o y construccin descubriremos e iremos incorporando el resto de los atributos. /n la siguiente seccin se resumen las opciones de atributos indicadas por los casos actuales de uso.
$ajero
$liente
?erente
"antidad
'ago
importe% hay que capturar un monto 0llamado tambi)n Qimporte ofrecidoR1 para determinar si se dio un pago suficiente y calcular el cambio. descripcion% para incluir descripcin en un despliegue. una
+specificacionde'roducto
"6'% 'ara consultar /specificacionde'roducto, una vez capturado un "6', es necesario relacionarlos con un "6'. precio% para calcular el total de las ventas y mostrar el precio de la lnea del producto. <enta 7ec8a) 8ora% el recibo es un informe escrito de una venta. 3ormalmente contiene la fecha y la hora de la venta. cantidad% para registrar la cantidad capturada, cuando hay m s de un elemento en la lnea del producto 0por e(emplo, cinco paquetes de pa*uelos desechables1. direccin) nombre% el recibo requiere el nombre y la direccin de la tienda.
<entasLineade'roducto
Tienda
>entas8ineade'roducto
H.. 1
4egistra@venta@de
'roducto
"ada lnea de producto registra la venta de un producto individualJ por e(emplo, 1 paquete de pa*uelos desechables
>entas8ineade'roducto
H.. 1
4egistra@venta@de 1..[
'roducto
"ada lnea de productos registra un grupo de la misma clase de productosJ por e(emplo, K paquetes de pa*uelos desechables
>entas8ineade'roducto Xcantidad
H.. 1
4egistra@venta@de 1..[
'roducto
A Especificacionde9roducto
descripcion precio "6'
$atalogode9roductos
$ontiene
A..[ A
A 6sado.por
T..A cantidad
Gentas3ineade9roductos
1escribe [
9roducto
[
<ienda
8lmacena
A..[ $apturas
$ontenidas.en 9agado.por terminadas
1ireccion nombre
8loja @nciado.por
A A Genta [
fecha hora
A..[
<91G
$apturadas.en A
?erente
Y 2egistra.'entas.en
A A $ajero
1$
1$.1 I("roducci*(
/l glosario es un documento simple en el cual se definen t)rminos. /n el presente captulo ofrecemos un e(emplo de glosario aplicado al dominio del punto de venta.
1$.$ / osario
/l g osario o diccio(ario 'ode o 0seme(ante a un diccionario de datos1 incluye y define todos los t)rminos que requieren e9plicacin para me(orar la comunicacin y aminorar el riesgo de malos entendidos. 6n significado uniforme y compartido resulta e9tremadamente importante durante el desarrollo de las aplicaciones, sobre todo cuando muchos miembros del equipo intervienen en el proyecto.
modelo conceptual. &arle mantenimiento es una actividad permanente a lo largo de todo el proyecto.
9ago tipo Especificacionde9roducto. atributo precio5 $antidad Genta3ineasde9roducto. $antidad5 Entero Genta Gentas3ineade9roducto <ienda Genta.total5 $antidad 9ago.monto5 $antidad atributo tipo tipo tipo atributo atributo
Especificacionde9roducto. atributo
8%3en'a&i%# 1escripci#n del proceso de un cliente que compra productos en una tienda. 1escripci#n bre'e de un producto en una 'enta! junto con su Especi"iciondeCroducto asociada. 6n producto para 'enderse en una +ienda. 6n pago en efecti'o. El precio de un producto en una 'enta! junto con su Especi"icacindeCroducto asociada. 3a cantidad comprada de un tipo de 9roducto. 6na transacci#n de 'entas. 6na l"nea de productos de un producto particular comprado en una Denta El lugar donde se realiza la 'enta de productos. El gran total de la Denta. El monto que el cliente ofrece o presenta para el pago. El c#digo uni'ersal de producto del
cup5 $69
9roducto y su Especi"icaciondeCroducto.
1:
1%.1 I("roducci*(
/l diagrama de la secuencia de un sistema muestra gr ficamente los eventos que fluyen de los actores al sistema. /n este captulo describiremos la forma de elaborarlos. 8a creacin de los diagramas de la secuencia de un sistema forma parte de la investigacin para conocer el sistemaJ se incluye, pues, dentro del modelo de an lisis. /l 6+8 ofrece una notacin con los diagramas de la secuencia que muestran gr ficamente los eventos que pasan de los actores al sistema.
8os diagramas de la secuencia de un sistema se preparan durante la fase de an lisis de un ciclo de desarrollo. .u creacin depende de la formulacin previa de los casos de uso. "iclo de desarrollo
9erfeccio namiento del plan (incronizac i#n de artefactos 8nlisis 1iseo $onstruc ci#n 9rueba
I. 9erfeccionar el glosariob
Gentas y reportes
$asos de prueba
1iagramas de interacci#n
7todos
?losario
1ependencia respecto a
$ontratos de operaci#n
1iagramas 1e estado
(Q3
manera en que lo hace. 6na parte de la descripcin es un diagrama de la secuencia del sistema.
/l escenario de un caso de uso es una instancia o trayectoria realizada por medio del uso% un e(emplo real de su e(ecucin.
8os eventos del sistema pueden incluir par metros. /l e(emplo ad(unto se refiere al curso normal de los eventos en el caso #omprar productos. 2ndica que el ca(ero es el Inico actor en el sistema T'&> y que genera los eventos del sistema introducir'roducto) terminar<enta y efectuar'ago.
$ajero
%(istema
introducir9roducto,$69! cantidad-
terminarGenta,-
efectuar9ago ,monto<e4to que aclara el control! la l#gica! la iteraci#n! etctera. 9uede tomarse del caso de uso. E'ento del sistema @nicia una operaci#n del sistema
1igu&a 1+.1 1iagrama de la secuencia del sistema para el caso de uso ;omprar Croductos
%(istema
E'ento del sistema *introducir9roducto+ @nicia una operaci#n del sistema del mismo nombre *introducir9roducto+ 1igu&a 1+.* 3os e'entos del sistema inician las operaciones de l.
!&nde deberan registrarse estas operaciones# /l lengua(e 6+8 ofrece una notacin para registrar las operaciones de un tipo, como se aprecia en la figura 1:.:.
"on esta notacin, las operaciones del sistema pueden agruparse como operaciones del ;istema 0figura 1:.D1. 8os par metros son opcionales% pueden incluirse o no.
/ste esquema tambi)n funciona satisfactoriamente cuando registra las operaciones del sistema de varios sistemas o procesos en una aplicacin distribuidaJ a cada sistema se le asigna un nombre especial 0;istema9) ;istema/)C1 y tambi)n sus operaciones propias. 5bserve que la representacin del tipo ;istema es muy diferente a lo que se e9pres en el modelo conceptual. 8os elementos de )ste representan conceptos del mundo realJ en cambio, el tipo ;istema es un concepto artificial. S adem s muestra las operaciones, cosa totalmente nueva. /llo se debe a que V a diferencia del modelo conceptual, que presenta informacin est tica V estamos describiendo el comportamiento del sistema, que es informacin din mica.
$8(/ 1E 6(/5 $/79282 92/16$</(. $urso normal de los e'entos Este caso de uso comienza cuando un cliente llega a una caja de <91G con productos que desea comprar. El cajero registra el c#digo uni'ersal del producto ,$69- de cada producto. (i hay ms de uno del mismo producto! tambin se puede capturar la cantidad. El sistema determina el precio del producto y agrega la informaci#n sobre el producto a la transacci#n actual de 'entas. (e muestran la descripci#n y el precio del producto actual. y as" sucesi'amente.
%(istema
$ajero introducir9roducto,$69! cantidadterminarGenta,efectuar9ago ,monto-
1igu&a 1+.4 3os diagramas de la secuencia de un sistema se dedujeron de los casos de uso.
$ajero
%(istema
terminarGenta,-
efectuar9ago ,monto-
%(istema
$ajero ;ombre ms id#neo introducir9roducto,$69! cantidadintroducir<ecla/primida ,$69! cantidad;ombre menos id#neo
1igu&a 1+.= Escoja los nombres de los e'entos y de las operaciones en un ni'el abstracto.
-s, Qterminar>entaR es preferible a QintroducirTecla5primidaR porque capta me(or el propsito de la operacin% mantiene un car cter abstracto y no se pronuncia respecto a las decisiones de dise*o sobre cu l interfaz sirve para capturar el evento del sistema. /n cuanto a e9presar las operaciones en el nivel de propsito, procure alcanzar el nivel m s alto o la meta final de asignar nombre a la operacin. 'or e(emplo, respecto a la operacin de captura el pago% introducirImporte!frecidoAmontoB introducir'agoAmontoB introducir'agoAmontoB deficiente me(or quiz me(or aIn
%(istema
$ajero En todos los productos! el $ajero registra el $#digo uni'ersal de producto ,$69- y la cantidad. 8l terminar de capturar el producto! el $ajero indica a la <91G que la 'enta concluy#. El $ajero le indica el total al $liente! y ste le da un pago. El $ajero registra el importe recibido en efecti'o. 1igu&a 1+.> 1iagrama de la secuencia de un sistema con te4to del caso de uso. introducir9roducto,$69! cantidadterminarGenta,-
efectuar9ago ,monto-
7odelo conceptuala
10.1 In'&%duccin
3os contratos contribuyen a definir el comportamiento de un sistema: describen el efecto que sobre l tienen las operaciones. En este cap"tulo estudiaremos su utilizaci#n. El lenguaje 673 ofrece un soporte para definir los contratos! ya que permite definir las precondiciones y las poscondiciones de las operaciones. A
En la definici#n formal del 673 \ o metamodelo .! las operaciones tienen un conjunto de propiedades predefinidas que incluye sus precondiciones y poscondiciones. "iclo de desarrollo
9erfeccio namiento del plan (incronizac i#n de artefactos 8nlisis 1iseo $onstruc ci#n 9rueba
I. 9erfeccionar el glosariob
1iagramas de interacci#n
7todos
?losario
1ependencia respecto a
$ontratos de operaci#n
1iagramas 1e estado
(Q3
1... -o("ra"os
/n la figura 1D.1, el diagrama de la secuencia de un sistema muestra los eventos generados por un actor e9terno, pero no profundiza en los detalles de la funcionalidad asociada con las operaciones invocadas. 3o contiene los detalles necesarios para entender la respuesta del sistema, o sea su comportamiento. /n t)rminos generales, un co("ra"o1 es un documento que describe lo que una operacin se propone lograr. .uele redactarse en un estilo declarativo, enfatizando
lo ,ue suceder y no cmo se conseguir . 8os contratos suelen e9presarse a partir de los cambios de estado de las precondiciones y de las poscondiciones. 'uede elaborarse un contrato para un m)todo de una clase de soft,are o para una operacin m s global del sistema. /l co("ra"o de operaci*( de sis"e'a describe los cambios del estado del sistema total cuando se llama de sus operaciones
(istema terminaGenta,introducir9roducto,efectuar9ago,-
(e redactan contratos para cada operaci#n del sistema con el fin de describir su comportamiento
1igu&a 10.1 3as operaciones del sistema requieren las descripciones del contrato.
4epetimos% un contrato puede emplearse con una operacin de alto nivel que se aplica al sistema entero o con un m)todo de ba(o nivel de una clase particular. 'or ahora nos centraremos en su uso en las operaciones del sistema.
-o("ra"o
No',re9 Respo(sa,i idades9 Tipo9 Re!ere(cias cru;adas9 No"as9 E4cepcio(es9 Sa ida9 &reco(dicio(es9 &osco(dicio(es9 introducir'roducto 0cup% nImero, cantidad% entero1. "apturar 0registrar1 la venta de un producto y agregarla a la venta. &esplegar la descripcin y el precio del producto. .istema. ?unciones del sistema% 41.1, 41.:, 41.B. "asos de uso% "omprar productos 6tilizar el acceso superr pido a la base de datos. .i el "6' no es v lido, indicar que se cometi un error. /l sistema conoce el "6'.
.i se trata de una nueva venta, se crea una <enta Acreacin de instanciaB. .i se trata de una nueva venta, la nueva <enta fue asociada a T'&> 0asociacin formada1. .e cre una instancia <entasLineade'roducto Acreacin de instanciaB. .e asoci una instancia <entasLineade'roducto a la venta 0asociacin formadaB. .e asign cantidad a <entasLineade'roducto.cantidad Amodificacin de atributoB. .e asoci una instancia <entasLineade'roducto a la instancia +specificionde'roducto) basado eso en la correspondencia del "6' 0asociacin formadaB.
-o("ra"o
No',re9 Respo(sa,i idades9 Tipo9 Re!ere(cias cru;adas9 No"as9 E4cepcio(es9 Sa ida9 &reco(dicio(es9 &osco(dicio(es9 /l estado del sistema despu)s de la operacin. /sto se e9plica a fondo en la siguiente seccin. 3ombre de la operacin y par metros. &escripcin informal de las responsabilidades que debe cumplir la operacin. 3ombre del tipo 0concepto, clase de soft,are, interfaz1. 3Imeros de referencias de las funciones del sistema, casos de uso, etc)tera. 3otas de dise*o, algoritmos e informacin afn. "asos e9cepcionales. 3o salidas de la interfaz de 6suarioJ por e(emplo, mensa(es o registros que se envan afuera del sistema. .uposiciones acerca del estado del sistema antes de e(ecutar la operacin.
9ara preparar un contrato en los casos de uso5 1 @dentifique las operaciones del sistema a partir de los diagramas de su secuencia. * Elabore un contrato en cada operaci#n del sistema. + $omience redactando la secci#n de 2esponsabilidades: despus describa informalmente el prop#sito de la operaci#n. 0 $omplete luego la secci#n de 9oscondiciones! describiendo en forma declarati'a los cambios de estado de los objetos en el modelo conceptual. 4 9ara describir las poscondiciones utilice las siguientes categor"as5 $reaci#n y eliminaci#n de las instancias. 7odificaci#n de los atributos. 8sociaciones formadas y canceladas.
/peraci#n5 introducir9roducto $8(/ 1E 6(/5 $/79282 92/16$</(. $urso normal de los e'entos A. Este caso de uso comienza_ $ajero introducir9roducto ,$69! cantidad(istema (istema terminaGenta,introducir9roducto,efectuar9ago,9oscondiciones5 A. (i se trata de una nue'a 'enta! fue creada una nue'a Genta_
terminarGenta,efectuar9ago ,monto-
8a#% de u#%
8%n'&a'%#
1..< &osco(dicio(es
3tese que las poscondiciones en el e(emplo introducir'roducto incluyen una clasificacinJ por e(emplo, creacin de instancias o asociacin formada. &espu)s de la seccin de esponsabilidades) la parte m s importante del contrato son las poscondiciones, que estipulan cmo cambi el sistema tras esta operacin. 3o son acciones que deben efectuarse durante la operacinJ m s bien son declaraciones sobre el estado del sistema que se aplican una vez concluida la operacin, es decir, una vez ,ue el 8umo se 8a disipado. /l 6+8 no impone lmites a la manera de e9presar las poscondicionesJ pero las siguientes categoras de cambio de estado han resultado de gran utilidad en la pr ctica. 8e aconse(amos e9presar sus poscondiciones de una manera similar. $ategor"as >tiles referentes a las poscondiciones del contrato5 $reaci#n y eliminaci#n de las instancias. 7odificaci#n de los atributos. 8sociaciones formadas y canceladas.
/l 6+8 no define cmo e9presar las poscondicionesJ as que puede usted escoger el formato que m s le agrade. 8o importante es que adopte una actitud declarativa, orientada al cambio de estado y no a la accin, porque las poscondiciones deberan
ser declaraciones sobre los estados o resultado, no una descripcin de acciones a realizar.
/n la fase de an lisis no es probable V ni siquiera necesario V generar un grupo de poscondiciones completas y e9actas de la operacin del sistema. -conse(amos ver en su elaboracin la con(etura inicial m s acertada, a sabiendas de que los contratos estar n incompletos. /sta creacin temprana V aunque incompleta V sin duda es preferible a posponer la investigacin hasta la fase de dise*o, cuando los creadores se concentrar n en el dise*o de una solucin m s que en averiguar lo ,ue debe hacerse. -lgunos de los detalles finos V y quiz hasta los m s generales V se descubrir n durante la fase de dise*o. 3o es algo necesariamente maloJ en la fase de investigacin se debilitan el esfuerzo y la dedicacin si se prolongan demasiado tiempo. /n la fase de dise*o se logran algunos descubrimientos que despu)s pueden guiar la fase de investigacin de un ciclo iterativo posterior. 6na de las venta(as del desarrollo iterativo es )sta% los descubrimientos hechos en la fase de dise*o de un ciclo pueden me(orar la calidad de la investigacin y el traba(o de an lisis en el siguiente ciclo.
1..1% &reco(dicio(es
8as precondiciones definen las suposiciones sobre el estado del sistema al iniciarse la operacin. Hay muchas precondiciones que pueden declararse en una operacin, pero la e9periencia revela que vale la pena mencionar las siguientes% "osas que son importantes probar en el soft,are en algIn momento de la e(ecucin de la operacin. "osas que no ser n sometidas a prueba, pero de las cuales depende el )9ito de la operacin. Oueremos compartir esta suposicin con los futuros lectores del contrato, a fin de subrayar su importancia y de que los lectores se percaten de ella.
6na vez anotado el nombre de la operacin, llene primero la seccin de esponsabilidades y luego la de 'oscondiciones) de(ando al final la de 'recondiciones. .on las tres secciones m s importantes del proyecto en cuanto a su uso ulterior. &esde luego, si a un desarrollador no le resulta Itil llenar una seccin, no lo har y nada pasar . 6se la seccin de Notas para e9plicar los detalles del dise*oJ por e(emplo, los algoritmos y los pasos secuenciales de alto nivel. 6se la seccin de +1cepciones para e9plicar la reaccin ante situaciones raras o especiales. 6se la siguiente categoras de los cambios de estado en las poscondiciones% o "reacin y eliminacin de instancias. o +odificacin de atributos. o -sociaciones formadas y canceladas. /9prese las poscondiciones en forma pasiva declarativa, en pret)rito 0 fue registradoZ1 para destacar la declaracin de un cambio de estado en vez del dise*o de cmo iba a obtenerse. 'or e(emplo%
Fue creada una instancia <entasLineade'roducto 0bien1. /s me(or que .e cre una instancia <entasLineade'roducto 0mal1. o 8a diferencia entre ambas oraciones puede parecer meramente acad)mica y superficialJ pero si se emplea la construccin activa en vez de la pasiva, sabemos por e9periencia que los desarrolladores r pidamente adoptan la actitud de dise*ar la forma en que van a resolver la operacin del soft,are. /l espritu del contrato es poner de relieve una declaracin de los cambios de estado, absteni)ndose de ofrecer los medios de una solucin. 3o olvide establecer una memoria entre los ob(etos actuales y los de creacin reciente, definiendo para ello la formacin de una asociacin. 'or e(emplo, si no es suficiente que una nueva instancia <entasLineade'roducto se genere cuando ocurre la operacin introducir'roducto. 6na vez finalizada la operacin, deber ser verdad que la instancia reci)n creada fue asociada a <entaJ por tanto, o 8a instancia <entaLineade'roducto fue asociada a la <enta 0asociacin formada1.
(i se trata de una nue'a 'enta! una Denta fue creada )creacin de instancia6. (i se trata de una nue'a 'enta! la nue'a Denta fue asociada a <91G ,asociacin "ormada o "ormacin de asociaciones -. (e cre# una instancia DentasLineadeCroducto )creacin de instancia6. (e asoci# una instancia DentasLineadeCroducto a la Denta ,asociacin "ormada6. (e estableci# DentasLineadeCroducto.cantidad con el 'alor de cantidad )modi"icacin de atributo6. 3a instancia DentasLineadeCroducto fue asociada a una Especi"iciondeCroducto, basado esto en la correspondencia del c#digo uni'ersal ,asociacin "ormada6.
(e asoci# la Denta a la +ienda para agregarla al registro hist#rico de las 'entas terminadas ,relaci#n formada-.
1..1? -o("ra"os para e caso de uso I(icio 1..1?.1 -o("ra"o para I(icio
8%n'&a'% N%3(&e6 Re#p%n#a(ilidade#6 Tip%6 Re)e&encia# c&u7ada#6 N%'a#6 EEcepci%ne#6 Salida6 <&ec%ndici%ne#6 <%#c%ndici%ne#6 inicio,-. @nicializar el sistema. (istema.
(e cre# una instancia +ienda, +CDD, ;atalogodeCroductos y Especi"icacionesdeCroducto ,creaci#n de instancia-. (e asoci# ;atalogodeCroductos a Especi"icacionesdeCroducto ,asociaci#n formada-. (e asoci# +ienda a ;atalogodeCroductos ,asociaci#n formada-. (e asoci# +ienda a +CDD ,asociaci#n formada-. (e asoci# +CDD a ;atalogodeCroductos ,asociaci#n formada-.
1..17 -a',ios de 'ode o co(cep"ua /stos contratos sugieren la e9istencia de un dato que todava no ha figurado en el modelo conceptual% la terminacin de la captura del producto en la venta. 8o modifica la especificacin terminar<enta) y la especificacin efectuar'ago lo prueba como precondicin. 6na forma de representar esta informacin es e9presarla como un atributo estaTerminada 0o captura+staTerminadaB de la venta, por medio de un valor booleano%
Genta e#'aTe&3inada6 (%%lean% fecha hora
.e cuenta con otras soluciones alternas para representar el estado cambiante del sistema. 6n m)todo es el pa"r*( de es"ado, que estudiaremos en un captulo subsecuente.
7odelo de anlisis
7odelo conceptuala