Post on 05-Jul-2015
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
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):
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:
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
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
epresentaconunsegmentoconun extremoen
formadediamanteapuntandohacialaclasequerepresentaeltodo.
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