Análisis y diseño de aplicaciones web con un caso de uso

7
ANÁLISIS Y DISEÑO DE APLICACIONES WEB CON UN CASO DE USO POR: ALBERTO JUÁREZ MATIAS Lasactividadesdeanálisisydiseñoayudanatransformarlosrequerimientosinicialesenundi seño implementarleensoftware.Duranteelanálisis,partirdeloscasosdeuso,seconstruyeel model odeanálisis. Elmodelodeanálisiscontieneclasesylascolaboracionesentreellasqueexhibenelcomport amiento dinámicodelsistema.Elniveldeabstraccióndelmodelodeanálisisestodavíademasiadoeleva dopara permitirsuimplementacióndirecta. Lasclasestípicamenterepresentanobjetos,p.e.carrodelacompra,pedido,producto,...enel do miniodenegocio.Elniveldeabstracciónestal quelasclasesquesepuedanidentificarduranteelanálisispodríanigualmenteaplicarsea otrasarquitecturasdeaplicacióndiferentesaladeuna aplicaciónWeb.Losprocesosyobjetosmásimportantesdeldominiodelproblemaseidentificany categorizanduranteelanálisis. Elanálisissefocalizaenlosrequerimientosfuncionalesdelsistema,ignorandoporelmoment olasrestriccionesdelaarquitecturadelsistema. Elénfasisseponeenasegurarquelosrequerimientosfuncionales,talycomoseexpresanenlosc asosdeusoyotrosdocumentos,son contemplados.Idealmente,cadarequerimientoycasodeusosevinculaconlasclasesypaquete squelorealizan.Estevínculoesimportanteparaasegurarelseguimientoentrerequerimientos,c asosdeusoylasclasesquelosrealizan. Parafacilitarlaconstruccióndelmodelodeanálisis,estesepuedecompletarendospasos: Primeroseanalizanloscasosdeusoconmásdetalle.Estafasesedenomina"Análisisdeca sosdeuso"ytienecomoobjetivoconstruir diagramasdeinteracciónsimplificadosquedetallanelcursodeacontecimientosdecad acasodeuso.Porlotantoestafasesecentraen losaspectosmásdinámicosdelmodelodeanálisis. Lasegundafase,denominada"Análisisdeclases",sefundamentaenlaprimeraytienecom oobjetivoloselementosestáticosdelmodelo, losobjetosdeldominio.Apartirdelosobjetosmásevidentes,identificadosenel"Análisisdeca sosdeuso",sedetallaelmodelodeobjetos deldominio.Esteseenriquececonmáselementosestáticosidentificadosenloscasosdeuso yotrosdocumentos.EstoElmodelodeobjetos seformalizautilizandodiagramasdeclases. 2.-Análisisdecasosdeuso Elanálisisdecasosdeusoesunaactividadqueserealizacuandoloscasosdeusoestáncomple toso próximosacompletarse.Entérminosdel

Transcript of Análisis y diseño de aplicaciones web con un caso de uso

Page 1: Análisis y diseño de aplicaciones web con un caso de uso

ANÁLISIS Y DISEÑO DE APLICACIONES WEB CON UN CASO DE USO

POR: ALBERTO JUÁREZ MATIAS

Lasactividadesdeanálisisydiseñoayudanatransformarlosrequerimientosinicialesenundi

seño

implementarleensoftware.Duranteelanálisis,partirdeloscasosdeuso,seconstruyeelmodel

odeanálisis.

Elmodelodeanálisiscontieneclasesylascolaboracionesentreellasqueexhibenelcomport

amiento

dinámicodelsistema.Elniveldeabstraccióndelmodelodeanálisisestodavíademasiadoeleva

dopara permitirsuimplementacióndirecta.

Lasclasestípicamenterepresentanobjetos,p.e.carrodelacompra,pedido,producto,...eneldo

miniodenegocio.Elniveldeabstracciónestal

quelasclasesquesepuedanidentificarduranteelanálisispodríanigualmenteaplicarsea

otrasarquitecturasdeaplicacióndiferentesaladeuna

aplicaciónWeb.Losprocesosyobjetosmásimportantesdeldominiodelproblemaseidentificany

categorizanduranteelanálisis.

Elanálisissefocalizaenlosrequerimientosfuncionalesdelsistema,ignorandoporelmoment

olasrestriccionesdelaarquitecturadelsistema.

Elénfasisseponeenasegurarquelosrequerimientosfuncionales,talycomoseexpresanenlosc

asosdeusoyotrosdocumentos,son

contemplados.Idealmente,cadarequerimientoycasodeusosevinculaconlasclasesypaquete

squelorealizan.Estevínculoesimportanteparaasegurarelseguimientoentrerequerimientos,c

asosdeusoylasclasesquelosrealizan.

Parafacilitarlaconstruccióndelmodelodeanálisis,estesepuedecompletarendospasos:

Primeroseanalizanloscasosdeusoconmásdetalle.Estafasesedenomina"Análisisdeca

sosdeuso"ytienecomoobjetivoconstruir

diagramasdeinteracciónsimplificadosquedetallanelcursodeacontecimientosdecad

acasodeuso.Porlotantoestafasesecentraen

losaspectosmásdinámicosdelmodelodeanálisis.

Lasegundafase,denominada"Análisisdeclases",sefundamentaenlaprimeraytienecom

oobjetivoloselementosestáticosdelmodelo,

losobjetosdeldominio.Apartirdelosobjetosmásevidentes,identificadosenel"Análisisdeca

sosdeuso",sedetallaelmodelodeobjetos

deldominio.Esteseenriquececonmáselementosestáticosidentificadosenloscasosdeuso

yotrosdocumentos.EstoElmodelodeobjetos seformalizautilizandodiagramasdeclases.

2.-Análisisdecasosdeuso

Elanálisisdecasosdeusoesunaactividadqueserealizacuandoloscasosdeusoestáncomple

toso próximosacompletarse.Entérminosdel

Page 2: Análisis y diseño de aplicaciones web con un caso de uso

procesodedesarrolloICONIXestaactividadsedenominaanálisisderobustez.Losobjetivos

son:

Identificarlasclasesquellevaránacaboelflujodeeventos

descritoenloscasosdeuso.

Identificarlasasociacionesentrelasclases.

Losresultadosprincipalesdeestafasesondiagramasdeinteracción,quecontienenclasesyr

elacionesentreellas.Estosdiagramasdescriben

comouncasodeusodadoesllevadoacaboentérminosdeclases.

Elanálisisdecasodeusoseiniciaconlaelaboracióndediagramasdeinteracciónparaloscasosd

eusobase.Estosdiagramasdeinteracción

identificanunaseriedeclasesbásicas.Estasclasessonlasencargasdedesarrollardeformacon

juntaloscomportamientosdetalladosenloscasos

deuso.Duranteelanálisisdecasosdeusonoseentraendemasiadodetallesobreestasclases.El

objetivoesmostrarcomoserelacionanentre

ellas.Luego,enelanálisisdeclases,seretomanestasclasesyseentraenmásdetalle.

Parafacilitarlacreacióndelosdiagramasdeinteraccióndelanálisis,lasclasesidentificadasseenmarcanentrestipos:interfaz,entidadycontrol.

1. Interfaz:representanloselementosdelainterfazentreelactoryelsistema. Ejemplosdeinstanciasdeestasclases,enelcontextodelaWeb,puedenserpáginasWebcompletas.

2.

Entidad:sonaquellascosasdescritasenelcasodeusoperoqueperduranmásalládeldesarrollodeloseventosdelcasodeuso.

Porejemplo:pedido,cliente,producto,...

3.

Control:representanprocesos,actividadesdelsistemaquesepuedennombrarygestionanelfuncionamientodeentidadeseinterfaces.

Porejemplo:procesarfactura,calcularimpuestos,...

Enlosdiagramasdeinteracciónsemuestranlosactoresdelcasodeuso,lasclases(interfaces,e

ntidadesycontroladores)ylasrelacionesentre

ellos.Parafacilitarlascosasseaplicanestasrestricciones:

Losactoressólopuedeninteractuarconinterfaces.

Lasentidadesúnicamenteserelacionanconcontroladores.

Loscontroladorespuedeninteractuarconinterfaces,entidadesyotroscontroladores.

Unaformadeempezarelanálisisdecasosdeusoesexaminandoeltextodelcasodeusoenb

uscadenombresyverbos.Losnombresson

candidatosaentidades.Losverbossonposiblescontroladores.

Porejemplo,parael

escenarioprincipaldelcasodeuso"Crearnuevocliente":Elusuariosolicitadarsedealtacom

ocliente.Semuestrala

pantalladealtadecliente,elusuariointroducesusdatos.Secompruebaquetodoestecorrect

oy entoncesseregistraelnuevoclienteenel

sistema,elanálisisdelcasodeusodaríacomoresultadoeldiagramadeinteracción(concreta

mentederobustez):

Page 3: Análisis y diseño de aplicaciones web con un caso de uso

Diagramadeinteraccióndelanálisisdelcasodeuso"Crearnuevocliente"

Eldiagramaanteriorcorrespondeauncasodeusomuysencillo.Normalmente,losdiagramas

deinteraccióndelanálisismúltiplesinterfaces,

controladoresyentidades.Porejemplo,sielusuariopudiesedarsedealtacomounclienteava

nzadoparaloqueselesolicitanmásdatos,el diagramapodríaserelsiguiente:

Diagramadeinteraccióndelanálisisdelcasodeuso"Crearnuevoclienteavanzado"

Losdiagramasdeinteraccióndelanálisispuedentomarlaformadelospresentadoshastaelmom

ento(llamadosdiagramasderobustez)otambién

laformadelosmáscomunesdiagramasdesecuencia,quetambiénsondiagramasdeinteracción

:

Diagramadesecuenciadelanálisisdelcasodeuso"Crearnuevocliente" odeigualformaparaelcasomáscomplejo:

Page 4: Análisis y diseño de aplicaciones web con un caso de uso

Diagramadesecuenciadelanálisisdelcasodeuso"Crearnuevoclienteavanzado"

Unavezcompletadoslosdiagramasdeanálisisdeloscasosdeuso,sehanidentificadoyrelac

ionadounconjuntodeclases(categorizadas

inicialmentecomointerfaces,controladoresyentidades).Ahoraeselmomentodeentraren

másdetallesobreloselementosquefinalmente

implementaránlaaplicación,lasclases.Paraellosepasaalaactividadllamada"Análisisdecl

ases".

3.-Análisisdeclases

Elanálisisdeclasesseiniciapartiendodelasidentificadasenelanálisisdecasosdeuso.Par

afacilitarsumanejo,lasclasesseorganizanen

paquetes.LospaquetessonherramientasUMLparaorganizarlasherramientasderepresentaci

ónquetambiénaportaUML,yaseanestasúltimas

casosdeuso(comoyasehavistoduranteladefinicióndeloscasosdeuso)oclases.

Laestructuradepaquetesdecasosdeusodesarrolladapreviamenteseutilizaahoracomopuntod

epartidaparaorganizarlasclases.Amedidaque

seavanceenelanálisisdeclasesesaestructurabásicaseiráenriqueciendoteniendoencuentalo

ssiguientescriteriosparacrearunaestructurade paquetes"útil":

Comprensible:cualquieradebedesercapaz,conpocoesfuerzo,decomprenderlarazón

delaexistenciadelosdiferentespaquetes,los

elementosquesesuponecontendránysusresponsabilidades.

Cohesiva:todaslasclasesdeunpaqueteformanungrupodemaneranaturalaalgúnniveldeabstracciónyestánporlotantorelacionadas.

Pocoacoplada:generalmente,lasclasestendránmásrelacionesconlasclasesendelmismopaquetequeconlasclasesdeotrospaquetes.

Jerarquíapocoprofunda:lasjerarquíasprofundastiendenasermenoscomprensibles.

Porlotanto,esmejormantenerennúmerode nivelesdelajerarquíabajo.

Porlotanto,partiendodelasclasesyaidentificadas,seexaminanloscasosdeusoylosrequerimie

ntosfuncionalescentrándoseenlascosasque

Page 5: Análisis y diseño de aplicaciones web con un caso de uso

sedescribenmásqueenlasacciones.Deestamanerasepuedenidentificarmásclasesyrelacio

nes,ademásdenuevasrelacionesentrelasclases yaidentificadas.

Comopautaparalaidentificaciónyenriquecimientodelasclases,seestudiannuevamenteloscas

osdeusoyrequerimientos.Losnombres,como

yasehacomentado,soncandidatosaconstituirclasesylosverbos,enestecaso,operacionesd

elasclases.Porlotanto,lasentidadesqueyase

identificaronconstituyenclases.Loscontroladorespuedenconstituirclasesensimismasopas

araseroperacionesdeclasesexistentesonuevas.

Finalmente,lasinterfacessesuelendejaraparteduranteelanálisisdeclasesyaquesecontempla

ránduranteeldiseñodelainterfaz.

Porejemplo,paraelfragmentodecasodeuso"Pasarporcaja":

Elclienteledicealsistemaqueestálistoparapasarporcaja.Seexaminaelcontenidodelcarrodela

compraysegeneraunalistadetodoslos

productoslistosparalacompra.Elclienteconfirmalacompraycomunicaalsistemaquelaproces

e,sepuedenidentificarunoscuantosnombrequesuenanimportantesyquesonbuenoscandidat

osaclases:cliente,carrodelacompra,compra,...

Porotroladolasfrasesverbalesyverbos:pasarporcaja,procesar,...queindicanaccionessignific

ativasdelcasodeusoyparecenbuenas candidatasaoperacionesdeclases.

Apartirdelasclasesyoperacionesidentificadas,máselconocimientodeldominioaportadoporlo

scasosdeuso,expertos,elequipode

desarrollo,etc.sepuedeformalizarelanálisisdeclasesenundiagramaUML.Setratadeldiagram

adeclases.Cadacajadeldiagramarepresenta

unaclase.Estádivididaentrespartes:lasuperiorcontienesunombre,laintermedialosatributosy

lainferiorlasoperaciones.

PartesdeunaclasedeundiagramadeclasesUMLAdemás,lasclasesserelacionanentresísegúnseespecifiqueenloscasosdeusoyenelconocimientoadquiridosobreeldominio.Existen múltiplestiposderelacionesentreclases,destacaremos:

Generalización:tambiénconocidacomoherencia.Permitereutilizarelcomportamientode

lasclases.Laclasepadre(destinodelaflecha)

esmásgeneralquelaclasehija.Estaúltimatienetodoelcomportamientodelaclasepadre(lor

eutiliza)yañadenuevocomportamiento másespecífico.

Asociación:relacionainstanciasdeclases.Lainstanciadeunadelasclasesnecesitainform

acióndeunainstanciadelaotraclasepara llevar

acabosucomportamiento.Serepresentacomounsegmentoqueconectalasdosclases.Se

puededarnombrealosdosextremosdel

segmentoytambiéncuantificarlacardinalidaddelarelación.Concuantasinstanciasdelase

gundaclaseserelacionacadainstanciadela

primera,unvalordelestilo1,1..*,0..*quesecolocaenelextremodelsegmentomáspróximoal

asegundaclase.Yviceversa,concuantas

instanciasdelaprimeraclaseserelacionaunadelaprimera.

Agregación:esuntipoespecialdeasociaciónenelcualsedistingueuntodoy

unaparte.Unainstanciadeunaclase(todo)serelacionacon

unacoleccióndeinstanciasdelaotraclase(parte)quelaprimeraagrega.Unaagregaciónser

Page 6: Análisis y diseño de aplicaciones web con un caso de uso

epresentaconunsegmentoconun extremoen

formadediamanteapuntandohacialaclasequerepresentaeltodo.

Page 7: Análisis y diseño de aplicaciones web con un caso de uso

Diagramadeclasesdeanálisis

Esimportantedestacar,llegadosaestepunto,quelosdiferentesdiagramassonvistasdeunm

odelocomúndelaaplicación.Porlotantonose

desarrollandeformaaislada.Cambiosenunopuedenenriquecerlavisióndadaporotros.Enelcas

odelosdiagramasutilizadosenelanálisis,una

vezquesehadetalladoeldiagramadeclases,tantolasnuevasclasescomolasoperaciones(com

onombresdelasflechas quevanhacialos

objetosquelascontienen)puedenmostrarseenlosdiagramasdeinteracciónprevios.Asíseconsigueunmodelomásricodelsistema.

Porejemplo,vereldiagramadeinteraccióncorrespondientealcasodeuso"Pasarporcaja"alque

sehaañadidolaoperaciónidentificadaparael

carrodelacompra"calcularTotal"comoelnombredelaflecha(invocación)quevadesdeelcontro

ladoralaentidadcorrespondientes.

Diagramadeinteraccióndelanálisisenriquecidoconoperacionesdelanálisisdeclases