Está en la página 1de 17

DesarrollodeAplicacionesWeb

EntornosdeDesarrollo

Tema6

DISEOORIENTADOAOBJETOS. ELABORACIN DE DIAGRAMAS DE COMPORTAMIENTO.


CASO PRCTICO En BK Programacin continan inmersos en el mundo de UML. A pesar de que han trabajado duro y han aprendido bastante acerca de este lenguaje de especificacin, Ada se ha dado cuenta de que apenas han empezado a araar la superficie de todas las posibilidades que les ofrece. De momento ya saben como crear un diagrama de clases bastante completo y como analizar un problema propuesto, sin embargo hay muchos aspectos del problema que no pueden modelar todava, por ejemplo con solo el diagrama de clases no pueden saber qu se espera del sistema que van a construir, o en qu se deben basar para codificar los mtodos, o simplemente, Cmo colaboran los objetos de las clases que han creado para hacer alguna tarea que sea til? Ada decide que no pueden parar ahora, y que hay que hacer un esfuerzo final para que los conocimientos del equipo sean globales y puedan enfrentarse a cualquier desarrollo software con solvencia. Al momento, Ada pone a su equipo manos a la obra.

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento

1.Diagramasdecomportamiento.
Caso prctico Compaeros, creo que ahora no debemos conformarnos con modelar diagramas de clase y nada ms, esto no nos da posibilidades de incluir ninguna informacin acerca del comportamiento de nuestro sistema. Cmo especificamos la funcionalidad? O qu acciones se realizan?, o las restricciones? Necesitamos seguir estudiando diagramas que nos ayuden a especificar la dinmica del sistema. Empezamos ahora mismo?

En el tema anterior vimos como crear un diagrama de clases para un problema determinado, esto nos ayuda a ver el problema con otra perspectiva y descubrir informacin nueva, sin embargo no tiene en cuenta elementos como la creacin y destruccin de objetos, el paso de mensajes entre ellos y el orden en que deben hacerse, qu funcionalidad espera un usuario poder realizar, o como influyen elementos externos en nuestro sistema. Un diagrama de clases nos da informacin esttica pero no dice nada acerca del comportamiento dinmico de los objetos que lo forman, para incluir ste tipo de informacin utilizamos los diagramas de comportamiento que incluyen: 9 9 9 9 Diagramas de casos de uso. Diagramas de actividad. Diagramas de mquinas de estado. Diagramas de interaccin. Diagramas de secuencia. Diagramas de comunicacin. Diagramas de interaccin. Diagramas de tiempo.

En el siguiente enlace tienes una descripcin y algunos ejemplos de todos los diagramas UML,puedesusarlocomocomplementoaloquevamosaverenlaunidad. http://jms32.eresmas.net/tacticos/UML/UMLIndex.html

DesarrollodeAplicacionesWeb

EntornosdeDesarrollo

Tema6

2.Diagramasdecasosdeuso.
CASO PRCTICO. Empezaremos por el principio. Cuando estamos diseando software es esencial saber cuales son los requerimientos del sistema que queremos construir, y necesitamos alguna herramienta que nos ayude a especificarlos de una manera clara, sistemtica, y que nuestros clientes puedan entender fcilmente, ya que es imprescindible que nos pongamos de acuerdo en lo que realmente queremos hacer. Alguna idea? No bastara con hacer una lista de requerimientos y describirlos exhaustivamente? No, una descripcin textual puede inducir a errores de interpretacin y suele dejar cabos sueltos, y no contempla otra informacin, como quien realiza las acciones que describimos, por ejemplo. Necesitamos algo ms especfico. Lo que Ada necesita son los diagramas de Casos de uso.

Los diagramas de casos de uso son un elemento fundamental del anlisis de un sistema desde la perspectivadelaorientacinaobjetosporqueresuelvenunodelosprincipalesproblemasenlosque se ve envuelto el proceso de produccin de software: la falta de comunicacin entre el equipo de desarrollo y el equipo que necesita de una solucin software. Un diagrama de casos de uso nos ayuda a determinar QU puede hacer cada tipo diferente de usuario con el sistema, en una forma que los no versados en el mundo de la informtica o, ms concretamente el desarrollo de software, puedaentender. Los diagramas de casos de uso documentan el comportamiento de un sistema desde el punto de vista del usuario. Por lo tanto los casos de uso determinan los requisitos funcionales del sistema (acciones fundamentales que debe realizar el software al recibir informacin, procesarla y producir resultados. Suelen venir definidos por el cliente),esdecir,representanlasfuncionesqueunsistemapuedeejecutar. Un diagrama de casos de uso es una visualizacin grfica de los requisitos funcionales del sistema, que est formado por casos de uso (se representan como elipses) y los actores que interactan con ellos (se representan como monigotes). Su principal funcin es dirigir el proceso de creacin del software, definiendo qu se espera de l, y su ventaja principal es la facilidad para interpretarlos, lo quehacequeseanespecialmentetilesenlacomunicacinconelcliente.

Los diagramas de casos de uso se crean en las primera etapa de desarrollo del software, y seenmarcanenelprocesodeanlisis,paradefinirdeformadetalladalafuncionalidadque se espera cumpla el software, y que, adems, se pueda comunicar fcilmente al usuario, pero,terminaaqusufuncin?
En absoluto, de los diagramas de casos de uso se desprenden otros (normalmente se realiza antes que el diagrama de clases) que describen tanto la estructura del sistema como su comportamiento, lo que influye directamente en la implementacin (Paso a cdigo de las especificaciones que se han definido durante la fase de anlisis y diseo de un sistema software) del sistema y en su arquitectura (Conjunto de decisiones
significativas acerca de la organizacin de un sistema software, la seleccin de los elementos estructurales a partir de los cuales se compone el sistema, y las interfaces entre ellos, junto con su comportamiento, tal y como se especifica en las colaboraciones entre esos elementos, la composicin de estos elementos estructurales y de comportamiento en subsistemas progresivamente mayores y el estilo arquitectnico que gua esta organizacin: estos elementos y sus interfaces, sus

final. Por otra parte al describir especficamente qu se espera del softwaretambinseusaenlafasedeprueba,paraverificarqueelsistemacumpleconlosrequisitos funcionales, crendose muchos de los casos de prueba (pruebas de caja negra (Se realizan cuando una aplicacin es probada usando su interfaz externa sin preocuparnos de la implementacin de la misma)) directamente a partirdeloscasosdeuso.

colaboraciones y su composicin)

DAW

Diseoorientadoaobjetos.Elaboracindediagramasde ecomportam miento

2.1Actor res
Caso prct tico Como de eca, uno de e los princip pales problemas de una a descripci n textual es s que no pe ermite mente qu pe ersonas o entidades ext ternas intera actan con el sistema. Ahora especificar adecuadam na herramien nta que tiene esto muy en n cuenta... tenemos un

Los actore es representan un ti ipo de usu uario del sistema. Se e entiende e como usuario cualquiercosaextern naqueinter ractaconelsistema.Notieneporquserunserhum mano, puedeserotrosistem mainformt ticoounida adesorgani izativasoempresas.
tar independ dizar los acto ores de la fo orma en que se interact a con el sistema. Siempre hay que intent Por ejemplo o, un usuario o del sistema puede inte erpretar dife erentes roles s segn la op peracin que e est ejecutando, , cada uno de estos ro oles represe entar un ac ctor diferent te, es decir, , un actor en un enta un rol que alguien n puede est tar jugando, , no un indi ividuo diagrama de casos de uso represe particular por lo tanto puede habe er personas particulares s que puedan estar usan ndo el sistem ma de formas dife erentes en diferentes oc casiones. Sue ele ser til mantener un na lista de lo os usuarios reales paracadaactor. Tiposdeact tores: ios: interacc cionan con el sistema para explot tar su funcionalidad. Tr rabajan dire ecta y 9 Primari frecuen ntementecon nelsoftware e. 9 Secundarios: sopor rte del siste ema para qu ue los prima arios puedan n trabajar. Son precisos s para alcanzaralgnobjet tivo. 9 Iniciado ores:nointeractanconelsistemaperodesenca adenaneltra abajodeotro oactor. telasiguient tefigura: Losactoresserepresentanmediant sos de uso que no sean iniciados po or ningn us suario, o algn otro elem mento Es posible que haya cas software,enesecasose epuedecrea arunactorT TiempooSistema.

Un sistem ma softwa are externo o, como un na entidad d para la autentifica acin de cl laves, nsiderarse como un ac ctor en un diagrama de casos de e uso? podra con
un actor no tiene porqu se er una persona fsica, es cualqu uier entidad que e interaccione con el sistema

rdadero Ver

Falso

22Casosdeuso
Caso prct tico Vale, per ro lo que verdaderamente queremo os es identi ificar la func cionalidad del sistema no?, cmo hace e esta herram mienta la des scripcin de la funcionali idad?

Se utilizan casos de uso o para especificar tareas que deben n poder llevarse a cabo con el apoy yo del sistemaque eseestdes sarrollando.

DesarrollodeAplicacionesWeb EntornosdeDesarrollo Tema6 Un caso de uso especifica una secuencia de acciones, incluyendo variantes, que el sistema puede llevar a cabo, y que producen un resultado observable de valor para un actor concreto. El conjunto decasosdeusoformaelcomportamientorequeridodeunsistema. El objetivo principal de elaborar un diagrama de casos de uso no es crear el diagrama en s, sino la descripcin que de cada caso se debe realizar, ya que esto es lo que ayuda al equipo de desarrollo a crear el sistema a posteriori. Para hacer esto utilizamos, sobre todo otros diagramas que permiten describir la dinmica del caso de uso, como el diagrama de secuencia que veremos despus, y una descripcintextual, en la que se deben incluir, al menos, los siguientes datos (a los que sedenomina contrato): 9 9 9 9 9 Nombre:nombredelcasodeuso. Actores:aquellosqueinteractanconelsistemaatravsdelcasodeuso. Propsito:brevedescripcindeloqueseesperaquehaga. Precondiciones:aquellasquedebencumplirseparaquepuedallevarseacaboelcasodeuso. Flujo normal: flujo normal de eventos que deben cumplirse para ejecutar el caso de uso exitosamente,desdeelpuntodevistadelactorqueparticipaydelsistema. 9 Flujo alternativo: flujo de eventos que se llevan a cabo cuando se producen casos inesperados o poco frecuentes. No se deben incluir aqu errores como escribir un tipo de dato incorrecto o la omisindeunparmetronecesario. 9 Postcondiciones:lasquesecumplenunavezqueseharealizadoelcasodeuso.

La representacin grfica de un caso de uso se realiza mediante un valo o elipse, y su descripcin se suele hacer rellenando una o ms tablas como la de la imagen (obtenida de la herramienta Visual Paradigm).

Tras comprobar todos los artculos el pedido queda en el almacn a la espera de ser recogido. Dnde incluiras esta afirmacin sobre un caso de uso en un contrato?
Enelflujodeeventosnormal. Enelflujodeeventosalternativo. Enlasprecondiciones. Enlaspostcondiciones.

2.3Relaciones
Caso prctico De acuerdo, y ahora Cmo asociamos a los actores con los casos de uso que pueden realizar?

Los diagramas de casos de uso son grafos no conexos en los que los nodos son actores y casos de uso, y las aristas son las relaciones que existen entre ellos. Representan qu actores realizan las tareas descritas en los casos de uso, en concreto qu actores inician un caso de uso. Pero adems existenotros tiposderelacionesquese utilizanpara especificarrelacionesms complejas,comouso oherenciaentrecasosdeusooactores. Existendiferentestiposderelacionesentreelementos: 9 Asociacin:representalarelacinentreelactorqueloiniciayelcasodeuso.

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento

9 Inclusin: se utiliza cuando queremos dividir una tarea de mayor envergadura en otras ms sencillas, que son utilizadas por la primera. Representa una relacin de uso, y son muy tiles cuandoesnecesarioreutilizartareas. 9 Extensin: se utiliza para representar relaciones entre un caso de uso que requiere la ejecucin deotroendeterminadascircunstancias. 9 Generalizacin:seutilizapararepresentarrelacionesdeherenciaentrecasosdeusooactores. Acontinuacinlasvemosconunpocomsdedetalle. 2.3.1Interaccinoasociacin. Hay una asociacin entre un actor y un caso de uso si el actor interacta con el sistema para llevar a caboelcasodeusooparainiciarlo. Una asociacin se representa mediante un linea continua que une un actor con un caso de uso. Por ejemplo, un usuario de un sistema de venta por Internet puede hacer un pedido, lo que se representa del siguientemodo: 2.3.2Generalizacin Es posible que, igual que con los diagramas de clases, existan casos de usoquetengancomportamientossemejantesaotrosquelosmodifican o completan de alguna manera. El caso base se define de forma abstracta y los hijos heredan sus caractersticas aadiendo sus propios pasos o modificando alguno. Normalmente la herencia se utiliza menos endiagramasdecasosdeusoqueendiagramasdeclases. Por ejemplo, el usuario del sistema de venta por Internet puede a su vez darse de alta en la pgina web para que tengan sus datos registradosalahoradehacerelpedido,enestecasoelusuarioeslageneralizacindelsocio. Ambosactorespuedenhacerunpedido,perosoloelsociopuedemodificarsusdatosenelsistema. 2.3.3Extensin. Se utiliza una relacin entre dos casos de uso de tipo extends cuando se desea especificar que el comportamientodeuncasodeusoesdiferentedependiendodeciertascircunstancias. La principal funcin de esta relacin es simplificar el flujo de casos de uso complejos. Se utiliza cuando existe una parte del caso de uso que se ejecuta slo en determinadas ocasiones, peronoesimprescindibleparasucompletaejecucin.Cuando un caso de uso extendido se ejecuta, se indica en la especificacin del caso de uso como un punto de extensin. Los puntos de extensin se pueden mostrar en el diagrama de casosdeuso. 6

DesarrollodeAplicacionesWeb EntornosdeDesarrollo Tema6 Por ejemplo, cuando un usuario hace un pedido si no es socio se le ofrece la posibilidad de darse de altaenelsistemaenesemomento,peropuederealizarelpedidoaunquenolosea. 2.3.4Inclusin. Se incluye una relacin entre dos casos de uso de tipo include cuando la ejecucin del caso de uso incluidosedaenlarutinanormaldelcasoqueloincluye. Esta relacin es muy til cuando se desea especificar algn comportamiento comn en dos o ms casos de uso, aunque es frecuente cometer el errorde utilizar esta tcnica para hacer subdivisin de funciones,porloquesedebetenermuchocuidadocuandoseutilice. Por ejemplo, a la hora de hacer un pedido se debe buscar la informacin de los artculos para obtener el precio, es un proceso que necesariamente forma parte del caso de uso, sin embargo tambin forma parte de otros, como son el que visualiza el catlogo deproductosylabsquedadeunartculoconcreto,y dadoque tieneentidad porssoloseseparadelresto decasosdeusoyseincluyeenlosotrostres. Lasventajasdeestaasociacinson: 9 Lasdescripcionesdeloscasosdeusosonmscortasyseentiendenmejor. 9 La identificacin de funcionalidad comn puede ayudar a descubrir el posible uso de componentesyaexistentesenlaimplementacin. Lasdesventajasson: 9 La inclusin de estas relaciones hace que los diagramas sean ms difciles de leer, sobre todo paralosclientes. Cuando usamos relaciones de inclusin o extensin no podemos olvidar que los casos de uso extendidos o incluidos deben cumplir con las caractersticas propias de un caso de uso, es decir, deben representar un flujo de actividad completo desde el punto de vista de lo que un actor espera que el sistema haga por l, as como no utilizar estas herramientas slo para descomponer un caso de uso de envergadura en otros ms pequeos, piedra angular del diseo estructurado y no del orientadoaobjetos.

Suponer el siguiente sistema que modela el caso de uso Servir pedido en el que el Empleado de almacn revisa si hay suficientes artculos para hacer el pedido y si todo es correcto, el pedido se embala y se enva: Qu tipo de relacin emplearas en el modelo del dibujo?
Asociacin Generalizacin Extends Include

As, la consulta de existencias debe realizarse necesariamente y, adems, tiene entidad suficiente como para ser un caso de uso por si mismo, que puede usarse en otros casos.

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento

2.4Elaboracindecasosdeuso.
CASO PRCTICO Despus de analizar todos los elementos que formen un diagrama de casos de uso el equipo de Ada est preparado para hacer frente a su primer diagrama de casos de uso.

Seacualseaeltipodediagramaqueestemoscreando,cuandolohacemosrealizamosunprocesode abstraccinporelcualrepresentamoselementosdelarealidadesquemticamente,yeneldiagrama de casos de uso pasa igual, necesitamos abstraer la realidad en un dibujo, en el que representamos qu cosas pueden hacerse en nuestro sistema y quien las va a hacer. Necesitamos diagramas que incluyan suficiente informacin para que el equipo de desarrollo tome las decisiones ms adecuadas enlafasedeanlisisydiseoparaunaconstruccindesoftwarequecumplaconlosrequerimientos, ascomoqueseantilesenlafasedeimplementacinenunlenguajeorientadoaobjetos. Partiremos de una descripcin lo ms detallada posible del problema a resolver y trataremos de detectar quien interacta con el sistema, para obtener los actores diagrama de casos de uso, a continuacin buscaremos qu tareas realizan estos actores para determinar los casos de uso ms genricos. El siguiente paso es refinar el diagrama analizando los casos de uso ms generales para detectar casos relacionados por inclusin (se detectan fcilmente cuando aparecen en dos o ms casos de uso generales), extensin y generalizacin. Al diagrama generado se le denomina diagrama frontera. Se conoce como diagrama frontera al diagrama de casos de uso que incluye todos los casos de uso genricos del sistema, que podrn ser desglosados despus en nuevos diagramas de casos de uso que los describan si es necesario. Se especifica enmarcando los casos de uso en un recuadro, que deja a los actoresfuera. Creacindecasosdeuso
Antesdeelaborareldiagramatienesqueleercon detenimientoeldocumentoconlaespecificacindel problemaaresolveryasegurartedequeentiendeslaidea centraldelproblema,crearunatiendavirtualenlaquese puedanrealizarpedidosdelosproductosalaventa(zapatos). Elprocesosecentraenelpedido,desdeponeradisposicin delclientelosartculosenventa,pasandoporlaseleccinde artculosapedir,lacumplimentacindetodalainformacin necesariaparaelpedido,pago,confeccindelpedido,envoy reajustedelstockenalmacn,todoello,atravsdelaweb EnnuestrosistemaQuininterviene?
El usuario que realiza lascompras El administrativo que actualiza la web Usuario Administrativo Elresponsablede almacnque revisalos Responsable pedidos.Los dealmacn montaylosenva

Primerospasos

Identificaractores

Tambin hay una entidad externa que confirma los datos bancarios y realiza los pagos. Le llamaremos Banca

Banca

Identificarfuncionalidades 8

Parafacilitarlacreacindeldiagramavamosairsacando funcionalidadesparacadausuario. Debemosrecordarqueuncasodeusorepresentauna

DesarrollodeAplicacionesWeb

EntornosdeDesarrollo

Tema6

Funcionalidaddelusuario

interaccindeunactorconelsistema,queestrelacionado conlosrequisitosfuncionalesdelaaplicacinfinalyque,en definitivarepresentatareasquellevaracaboelsistema. Cuandounapersonaseconectaalsistemaloprimeroque podrhacerservisualizarelcatlogodelatemporada. Tambinpuedehacerunpedidoconunoovariosartculos delcatlogo,paraellovisualizarlosartculosdeformaque puedaseleccionaralgunosdeelloseindicarlacantidadque quierecomprar. Tambinpuedehacerbsquedaspordatosconcretosde artculos. Cualquierpersonaqueaccedaalsistemapuededarsedealta parasersocio. Asmismo,siessocio,podrcomprobarelestadodesus pedidosycancelarlos.
Visualizarcatlogo Buscarartculo Visualizaartculosalaventa Buscar artculo en funcindealgndato

Hacerpedido Usuario Extensionpoints

Hacer un pedido de un conjunto de artculos. <<Extend>> Para poder hacer el pedido es obligatorio estar dado de alta en el Registrarse sistemacomosocio Registrarse en el sistema como socio. Slo los socios pueden Un usuario como hacer pedidos por lo talpuede: que este caso de uso extiende al caso Hacer pedido. Visualizarcatlogo Buscarartculo Hacerpedido

Alhacersesociolaidentidaddelusuarioconrespectodel sistemacambia,porloquesurgeunnuevotipodeactor queheredadeusuario. Unsocioesunusuarioqueseharegistradoenelsistema. Lossociosalmacenanciertainformacin,comosusdatos personalesybancarios,email,etc.

Usuario

Extensionpoints

Esun

<<Extend>>
Registrarse Comprobarestado pedidos Modificardatos personales Cancelarpedido

Socio

El socio rene, adems rene una serie de funcionalidades propias (el usuario no puede hacerlas), como comprobar el estado de sus pedidos, o cancelarlos, as como cambiar sus datosenelsistema

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento
Recuperarinformacin deartculo

Visualizarcatlogo Buscarartculo

<<Include>> <<Include>>

Alrevisarunpocolafuncionalidaddeloscasosdeusodel usuariopodemoscomprobarqueenloscasosBuscar articuloyHacerpedidoesnecesariobuscarenelsistema yrecuperarlainformacindeunartculodelquetenemos algndato,enelprimercasoparaobtenertodoslosdatos delartculobuscadoyenelsegundopararecuperarel preciodelosartculosqueseaadenalpedido,porloque extraemoselcasodeusoRecuperarinformacinde artculoqueseincluyeenlosotrosdos.

Hacerpedido Usuario Extensionpoints

Esun

<<Extend>>
Registrarse Comprobarestado pedidos Modificardatos personales Cancelarpedido

Socio

Visualizarcatlogo Buscarartculo

Recuperarinformacin deartculo

<<Include>> <<Include>>
Confirmardatos bancarios

Cuandoserealizaelpedidoesobligatoriohaceruna comprobacindelosdatosbancariosdelcliente,que dependendeunaentidadexterna,porloqueseaade otrocasodeusoparaestafuncin,Comprobardatos bancariosquetraedelamanolainclusindelactor Banca.

Hacerpedido Usuario Extension points

<<Include>>

Esun

<<Extend>>
Registrarse Banca

Socio Modificardatos personales

Comprobarestado pedidos Cancelarpedido

Funcionalidaddeladministradorweb

Elobjetivodeladministrativowebesgestionarloscontenidos delaweb,enconcretodelasdiferentescampaas,yaque cadatemporadasedebecerrarlacampaaantigua,retirando losartculosdelatemporadaanterioryabrirlatemporada nueva,aadiendosusartculos.Paraquesepuedacerraruna temporadaesnecesarioqueenelalmacnsehayan gestionadotodossuspedidos,porloqueesobligatorio comprobarlo,antesdecerrar.


Cerrarcampaa

SeincluyeelcasodeusoRecuperarpedidosenCrear campaapordosmotivos: 1. Esunafuncinquepuedellevarseacabode formaindependiente,tantoporeladministrador delawebcomodesdeelalmacn,y 2. Esdecomprobacinobligatoriaantesdecerrar latemporada.

Crearcampaa Administrativo Recuperar pedidos

Funcionalidaddelresponsabledealmacn

Eselencargadodeleerlospedidosdelosusuariosy cumplimentarlos.stasersunicafuncin,sibien,esuna

10

DesarrollodeAplicacionesWeb

EntornosdeDesarrollo

Tema6

funcincomplicada,yaqueimplicarealizarunaseriede tareas: 9 Seleccionarelpedidomsantiguo 9 Buscarlosartculosaservir 9 Empaquetarlosjuntoconunalbarnparaelsocio 9 Colocarlosensurutadeenvo


Recuperar pedidos Sacaralbarn

Elprimerpasoesrecuperarlalistadepedidossin procesar.Estatarearecuperaelpedidomsantiguopara serprocesado. Sacaralbarnproduceunlistadoenpapelconla informacindelpedidoparaelsocio. Enviarpedidoescolocarelpedidoenlarutadeenvoms apropiadaparasudestino.

<<Include>>
Cumplimentar pedidos

<<Include>>

Responsable dealmacn

<<Include>>
Enviarpedido

Especificacindelproblemaamodelar.
Descripcindelproblema:"Eltacndeoro".

Los usuarios del sistema navegan por la web para ver los artculos, zapatos, bolsos y complementos que se venden en la tienda. De los artculos nos interesa su nombre, descripcin, material, color, precio ystock. De los zapatos nos interesa su nmero y el tipo. De los bolsos nos interesa su tipo (bandolera,mochila,fiesta).Deloscomplementos(cinturonesyguantes)sutalla. Los artculos se organizan por campaas para cada temporada (primavera/verano y otoo/invierno) decadaao. Los artculos son de fabricacin propia, pero, opcionalmente, pueden venderse artculos de otras firmas. De las firmas nos interesa saber su nombre,CIFy domicilio fiscal. La venta de artculos de firmaserealizaatravs deproveedores,deformaqueunproveedorpuedellevarvariosartculosde diferentes firmas, y una firma puede ser suministrada por ms de un proveedor. Los artculos pertenecenaunafirmasolamente.Delosproveedoresdebemosconocersunombre,CIF,ydomicilio fiscal. Losusuariospuedenregistrarseenelsitiowebparahacersesocios.Cuandounusuariosehacesocio debeproporcionarlossiguientedatos:nombrecompleto,correoelectrnicoydireccin. Los socios pueden hacer pedidos de los artculos. Un pedido est formado por un conjunto de detallesdepedidoquesonparejasformadasporartculoylacantidad.Delospedidosinteresasaber la fecha en la que se realiz y cuanto debe pagar el socio en total. El pago se hace a travs tarjeta bancaria, cuando se va a pagar una entidad bancaria comprueba la validez de la tarjeta. De la tarjeta interesaconocerelnmero. Las campaas son gestionadas por el administrativo de la tienda que se encargar de dar de baja la campaa anterior y dar de alta la nueva siempre que no haya ningn pedido pendiente de cumplimentar. Existe un empleado de almacn que revisa los pedidos a diario y los cumplimenta. Esto consiste en recopilar los artculos que aparecen en el pedido y empaquetarlos. Cuando el paquete est listo se pasaalalmacnalaesperadeserrepartido.Delrepartoseencargaunaempresadetransportesque tiene varias rutas preestablecidas. Segn el destino del paquete (la direccin del socio) se asigna a una u otra ruta. De la empresa de transportes se debe conocer su nombre, CIF y domicilio fiscal. Las rutas tienen un rea de influencia que determina los destinos, y unos das de reparto asignados. Se debe conocer la fecha en la que se reparte el pedido. Si se produce alguna incidencia durante el repartodealgnpedidosealmacenalafechaenlaquesehaproducidoyunadescripcin. Los socios pueden visualizar sus pedidos y cancelarlos siempre y cuando no hayan sido cumplimentadosporelempleadodealmacn.Asmismopuedemodificarsusdatospersonales.

11

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento

Documentacindelcasodeuso"Hacerpedido". Como se indicaba en los contenidos del apartado 2.2, lo ms importante en la elaboracin de un diagrama de casos de uso, no es el diagrama en s, sino la documentacin de los casos de uso que es lo que permitir desarrollar otros diagramas que ayuden en la codificacin del sistema, y la elaboracindeloscasosdepruebadecajanegra. AmododeejemplovamosadesarrollarladocumentacindelcasodeusoHacerPedido,yaque,por su complejidad abarca todos los apartados que hemos visto. El ejemplo se har con la herramientaVisual Paradigm forUML, aunque tu puedes usar la herramienta que consideres ms oportuna.Recordamoselaspectodelcasodeuso:

Losdatosquedebemosincluirparaelaborarladocumentacindelcasodeuso,elcontrato,eran: 9 Nombre:nombredelcasodeuso. 9 Actores:aquellosqueinteractanconelsistemaatravsdelcasodeuso. 9 Propsito:brevedescripcindeloqueseesperaquehaga. 9 Precondiciones:aquellasquedebencumplirseparaquepuedallevarseacaboelcasodeuso. 9 Flujo normal: flujo normal de eventos que deben cumplirse para ejecutar el caso de uso exitosamente. 9 Flujo alternativo: flujo de eventos que se llevan a cabo cuando se producen casos inesperados o poco frecuentes. No se deben incluir aqu errores como escribir un tipo de dato incorrecto o la omisindeunparmetronecesario. 9 Postcondiciones:lasquesecumplenunavezqueseharealizadoelcasodeuso. Para incluir el nombre, actores, propsito, precondiciones y postcondiciones abrimos la especificacin del caso de uso. Esto da lugar a la aparicin de una ventana con un conjunto de pestaasquepodemosrellenar: 9 En la pestaa "General" rellenamos el nombre "Hacer pedido", y tenemos un espacio para escribirunabrevedescripcindelcasodeuso,porejemplo: "El cliente visualiza los productos que estn a la venta, que se pueden seleccionar para aadirlos al pedido. Puede aadir tantos artculos como desee, cada artculo aadido modifica el total a pagarsegnsuprecioylacantidadseleccionada. Cuandoelclienteharellenadotodoslosproductosquequierecomprardebeformalizarelpedido. En caso de que el cliente no sea socio de la empresa antes de formalizar la compra se le indica que puede hacerse socio, si el cliente acepta se abre el formulario de alta, en caso contrario se cancelaelpedido. En caso de que se produzca algn problema con los datos bancarios se ofrecer la posibilidad se volveraintroducirlos. Alfinalizarunpedidoseaadealsistemaconelestadopendiente." 9 Enlapestaa"Valoresetiquetados"encontramosunconjuntodecampospredefinidos,entrelos que se encuentran el autor, precondiciones y postcondiciones, que podemos rellenar de la siguientemanera: Autor:usuario. Precondiciones:Existeunacampaaabiertaconproductosdelatemporadaactualalaventa. Postcondiciones: Se ha aadido un pedido con un conjunto de productos para servir con el estado"pendiente"quedeberserrevisado. 12

DesarrollodeAplicacionesWeb EntornosdeDesarrollo Tema6 Tambin se pueden incluir otros datos como la complejidad, el estado de realizacin del caso de usolacomplejidadquenohemosvistoenestaunidad. Para incluir el resto de los datos en el caso de uso hacemos clic en la opcin "Open Use Case Details..." del men contextual, lo que da lugar a la aparicin de una ventana con una serie de pestaas. En ellas se recupera la informacin de la especificacin que hemos rellenado antes, adems,podemosrellenarelflujodeeventosdelcasodeuso,encondicionesnormalesusaramosla pestaa "Flow of events", sin embargo como esta opcin solo est disponible en la versin profesional,utilizaremoslapestaa"Descripcin",queestdisponibleenlaversincommunity.Para activarlapulsamoselbotn"Create/OpenDescription". Podemos aadir varias descripciones de diferentes tipos, pulsando el botn "Nuevo". Para aadir filas al flujo de eventos pinchamos en el botn. En principio aadimos la descripcin principal, luego aadiremosotrasalternativas. Esta es la descripcin principal, en ella se describe el flujo normal de eventos que se producen cuandoseejecutaelcasodeusosinningnproblema. FlujodeeventosnormalparaelcasodeusoHacerPedido. UseCase Author Date Hacerpedido usuario 26ago201113:56:56 ELusuarioseleccionaunconjuntodeartculos,juntoconlacantidaddelosmismos, paracrearelpedido.Cuandoseformalizasecompruebaqueelusuarioseasocio.A continuacin se comprueban los datos bancarios, se realiza el cobro y se crea el pedido. Existeuncatlogodeproductosdisponiblesparapedir. Elusuarioestregistrado. Losdatosbancariossoncorrectos. Secreaunpedidoconlosdatosdelusuarioquelorealizaylosartculossolicitados. 1 2 3 4 ActorInput Iniciaelpedido. Seleccionaunartculo. Seleccionaunacantidad. Se crea un pedido en estado "en construccin". Recupera la informacin del artculo para obtener el precio y modifica el precio total del pedido. SystemResponse

Brief Description

Preconditions

Post conditions

Flowof Events

El proceso se repite hasta completar la lista de

13

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento artculos. 7 Seaceptaelpedido. Se comprueba si el usuario es socio, si no lo es se le muestra un aviso para que se registre en elsitio. Se comprueban los datos bancarios con una entidadexterna. Se genera: calcula el total, sumando los gastos deenvo. Se realiza el pago a travs de la entidad externa. Se almacena la informacin del pedido con el estado"pendiente".

10

11

12

Aadimosunpardedescripcionesalternativasparaindicarquehacercuandoelusuarionoessocioy cuandolosdatosbancariosnosoncorrectos: FlujoalternativoparaelcasodeusoHacerPedidocuandoelusuarionoestregistrado. Author Date Brief Description usuario 26ago201117:56:35 Cuandoelusuariohaceunpedidosinoestregistradoseabrelaopcinderegistro paraqueseddealta. Elusuarionoestregistrado. Existeuncatlogodeartculosparahacerpedido. Losdatosbancariossoncorrectos. Elusuarioquedaregistrado. Secreaunpedidoconlosdatosdelusuarioquelorealizaylosartculossolicitados. 1 2 Flowof Events 3 4 5 14 ActorInput Iniciaelpedido. Seleccionaunartculo. Seleccionalacantidad. Se crea un pedido en estado "en construccin". Recupera la informacin del artculo para obtener su precio y modifica el precio total a SystemResponse

Preconditions

Post conditions

DesarrollodeAplicacionesWeb

EntornosdeDesarrollo pagarporelpedido.

Tema6

Aadelainformacinalpedidoencreacin.

EL proceso se repite hasta completar la lista de artculos delpedido. Aceptaelpedido. Secompruebasielusuarioessocio. Seinvocaelregistrodeusuario. Se comprueban los datos bancarios con una entidadexterna. Se genera: calcula el total, sumando los gastosdeenvo. Se realiza el pago a travs de la entidad externa. El pedido queda almacenado con el estado "pendiente".

8 9

10 11

12

13

14

Flujoalternativoparahacerpedidocuandolosdatosbancariosnosoncorrectos. Author Date usuario 26ago201118:14:35 Una vez que se han seleccionado los artculos y se han introducido los datos del socio, al hacer la comprobacin de los datos bancarios con la entidad externa se produce algn error, se da la posibilidad al usuario de modificar los datos o de cancelarelpedido. Existeuncatlogodeproductosdisponiblesparapedir. Elusuarioestregistrado. Losdatosbancariosnosoncorrectos. Secreaunpedidoconlosdatosdelusuarioquelorealizaylosartculossolicitados. Flowof Events 1 2 ActorInput Iniciaelpedido. Se crea un pedido en estado "en SystemResponse

Brief Description

Preconditions

Post conditions

15

DAW

Diseoorientadoaobjetos.Elaboracindediagramasdecomportamiento construccin". 3 4 Seleccionaunartculo. Seleccionaunacantidad. Recupera la informacin del artculo para obtener el precio y modifica el precio total delpedido.

El proceso se repite hasta completar la lista de artculos. Seaceptaelpedido. Aceptaelpedido. Se comprueban los datos bancarios con una entidadexterna,fallandolacomprobacin. Sesolicitanlosdatosdenuevo.

7 8 9

10

11 Introducelosdatosdenuevo. 12 Se repite el proceso hasta que se acepten los datosbancariososecancelelaoperacin. Se genera: calcula el total, sumando los gastosdeenvo. Se realiza el pago a travs de la entidad externa. Se almacena la informacin del pedido con el estado"pendiente".

13

14

15

El resto de casos se uso se documentan de forma similar hasta completar la descripcin formal de la funcionalidad del sistema.

2.5Escenarios
Caso prctico Ada continua la investigacin, junto con el equipo de BK programacin, que una vez ha creado su primer diagrama de casos de uso, se da cuenta de que realmente es una herramienta muy til a la hora de definir la funcionalidad de un sistema. Continuando con la investigacin descubren una ventaja adicional, utilizando los flujos de eventos, pueden describir interacciones concretas de los actores con el sistema, estas interacciones son los escenarios.

Un caso de uso debe especificar un comportamiento deseado, pero no imponer cmo se llevar a cabo ese comportamiento, es decir, debe decir QU pero no CMO. Esto se realiza utilizando escenariosquesoncasosparticularesdeuncasodeuso.

16

DesarrollodeAplicacionesWeb

EntornosdeDesarrollo

Tema6

Un escenario es una ejecucin particular de un caso de uso que se describe como una secuencia de eventos.Uncasodeusoesunageneralizacindeunescenario. Porejemplo,paraelcasodeusohacerpedidopodemosestablecerdiferentesescenarios: Unposibleescenariopodraser: Realizarpedidodeunoszapatosyunasbotas. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Elusuarioiniciaelpedido. Secreaelpedidoenestadoenconstruccin. SeseleccionaunpardezapatosLucadepielnegros,delnmero39. Seseleccionalacantidad1. Serecuperalainformacindeloszapatosysemodificalacantidadapagarsumndole45. SeseleccionaunpardebotasAymaradeantemarrndelnmero40. Seseleccionalacantidad1. Serecuperalainformacindelasbotasysemodificalacantidadapagarsumndole135. Elusuarioaceptaelpedido. Secompruebaqueelusuarioes,efectivamentesocio. Secompruebanlosdatosbancarios,quesoncorrectos. Secalculaeltotalapagaraadiendolosgastosdeenvo. Serealizaelpagoatravsdeunaentidadexterna. Se genera un pedido para el usuario con los dos pares de zapatos que ha comprado, con el estadopendiente.

Losescenariospuedenydebenposteriormentedocumentarsemediantediagramasdesecuencia.

17