Está en la página 1de 116

Sepuedenaplicarprincipios,conceptosymtodos

delaingenieradesoftwarealdesarrolloWeb?
Formularelproblema
Planificar
Modelarlosrequisitos
Disearlasolucin
Construircontecnologayherramientas
especializadas
Evaluacinporpartedelosusuarios(tcnicos,como
empresariales).
Involucranunamezclaentre:
Publicacinimpresaydesarrollodesoftware
Marketingeinformtica
Comunicacionesinternasyrelacionesexternas
Arteytecnologa.
Intensidaddered
Internet,intranet
Concurrencia
Grannmerodeusuariostienenaccesoalmismotiempo
Cargaimpredecible
Elnmerodeusuariospuedevariardeundaaotro
ejemplo:webdelIESS,CNE
Desempeo
Esperaprolongada
Disponibilidad
24/7
Gobernadaporlosdatos
Proveengrancantidaddeinformacin
Texto,grficos,audioyvideo
Evolucincontnua/inmediatez
Laagilidadparaponerproductos/servicios
Seguridad
Paraelmanejotransaccional
Sensibilidadalcontenido/esttica
Calidadynaturalezaesttica
Presentacinydisposicindeloselementos
Personalizable
YasealapropiaWebApp oelusuariopersonalizasunavegacin,
contenidodeacuerdoasusnecesidadesespecficas
Soporte
Ayudaenlnea,gruposdediscusin,redessocialesyvnculos
relacionados
Informativo
Contenidodeslolecturayenlacessimples
Descarga
Usuariodescargainformacindelservidor
Personalizable
Elusuariopersonalizaelcontenidosegnsusnecesidades
Interaccin
Comunicacinentrecomunidadesdeusuarios
Entradadelusuario
Laentradaconbaseenformulario
Orientadaatransacciones
Realizarpedidos,transaccionesbancarias
Orientadaaservicios
Asesoraentrmites,servicioalusuario
Portal
Canalizaalusuariohaciaotrosserviciosweb
Accesoaunabasededatos
Elusuarioconsultaenunabasededatosgrandeyextraeinformacin
Almacndedatos
Coleccindegrandesbasesdedatos
Internetcambiolaprioridadprincipaldedesarrollo
dequ acundo;elprocesodebeserrealizadobajo
unafilosofadedesarrollogil,enelcualseincorpora
rpidosciclosdedesarrollo.
DefinicindelMarcodeTrabajo
RefinamientodelMarcodeTrabajo
DefinicindelMarcodetrabajo
Cualquieradelosmodelosdeprocesogilsepuedenaplicarcomo
unprocesoIweb
Laefectividaddecualquierprocesodeingenieradependedesu
adaptabilidad
Antesdedefinirunmarcodetrabajosedebereconocerque:
LasWebAppsconfrecuenciaseentregandemaneraincremental
Loscambiosocurrirnfrecuentemente
Losplazossoncortos
DefinicindelMarcodeTrabajo
Codificar:
Sincdigofuentenohayprograma,porlotanto,eslanica
actividaddelaquenopodremosprescindir.
Seutilizaprogramacinenpareja,quesuponeunamayor
calidaddelcdigoescrito.
Pruebas:
Sabersiloqueseimplementesloqueenrealidadse
pensabaquesehabaimplementado.
Sedebepensarentodaslasposiblespruebasparanuestro
cdigo.
Planeacin:
Escucharalusuario,losprogramadores
noconocentodo.
Alhacerpruebastenemosquepreguntarsiloobtenidoes
lodeseado,ytenemosquepreguntaraquiennecesitala
informacin.
Disear:
El diseo creaunaestructuraqueorganizalalgicadel
sistema.
Losdiseosdebendesersencillos,sialgunapartedel
sistemaesdedesarrollocomplejo,esrecomendable
dividirloenvariaspartes.
DefinicindelMarcodeTrabajo
Prever
Desarrolleunaideaclaradeloqueesnecesarioenelcontextodelasrestricciones
deproyecto.
Renaelequiponecesarioparaversolucionesconlasopcionesylosenfoquesque
mejorsatisfaganesasnecesidadesmientrassetratandelamejormaneraposible
esasrestricciones.
Planear
Convertirlasolucinconceptualendiseosyplanestangiblesparaquesepueda
compilarenunseguimientodelacompilacin.
Compilar
Compilelosdiferentesaspectosdeunasolucindeacuerdoconlasentregasdel
plandeseguimiento,comodiseos,planes,programacionesyrequisitos.
Estabilizar
Mejorarlacalidaddelasolucinparacumplirloscriteriosdelaversinparala
implementacinenproduccin.
Validarquelasolucincumplelasnecesidadesyexpectativasdelaspartes
interesadas.
Validarlautilidaddelasolucindesdeunaperspectivadeusuario.
Maximizarelxitoyminimizarlosriesgosasociadosalaimplementaciny
operacionesdelasolucinenentornosdedestinodelasolucin.
Implementar
Integrarunasolucincorrectamenteenproduccindentrodeentornos
designados.
Transferirlaresponsabilidaddelaentregadelasolucinrestantedeunequipode
proyectoalosequiposdeoperacionesysoporteconlamayorfluidezyrapidez
posibles.
DefinicindelMarcodeTrabajo
Comunicacinconelcliente
Anlisisdelnegocio:defineelcontextoempresarialorganizativo
paralaWebApp
Identificanalosparticipantes
Predicenpotencialescambiosenelambienteyrequisitos
SedefinenintegracinentrelaWebApp yotrasaplicacionesdel
negocio,basesdedatos
Formulacin:
Recopilacinderequisitosqueinvolucraatodoslosparticipantes
Planeacin
Sedefinentareasyuncalendariodeplazos,asignando
responsablesy/oejecutores.
Sedefinelalneabaseparaefectosdecontroldecambios
Modelado
Abarcalastareasdeanlisisydiseo
Anlisisderequisitos
DefinirelcontenidoquetendrlaWebApp
Funcionalidadquesepresentaraalusuario
Modosdeinteraccindecadaclasedeusuarioalmomentodenavegar
Diseo
Diseodecontenido/aplicacin
Diseodearquitecturadelainformacin
Diseodeinterface
Diseodelanavegacin
Construccin
Programacindeacuerdoalmodelado
Pruebasrpidas(contenido,arquitectura,interface,navegacin)
Despliegue(entregayretroalimentacin)
Configuracinparasuambienteoperativo
Evaluacinporpartedelusuario
Retroalimentacinyajustes.
Unidoaestoscincopasosparaunprocesoincremental,debe
iracompaadodelospuntosbsicosdeadministracinde
cambiosyriesgos.
Refinamientodelmarcodetrabajo:
SehaadvertidoqueelmodelodeprocesoIWebpuedeser
adaptable
Lastareasasociadasconlasactividadesdelmarcodetrabajo
IWebpuedenmodificarse,eliminarseoextenderseconbaseen
caractersticasdelproblema,elproducto,elproyectoylagente
enelequipo.
Tomareltiemponecesarioparaentenderlas
necesidadesdelnegocioylosobjetivosdelproducto
Describircomointeractuarnlosusuariosconla
WebApp aplicandounenfoquebasadoenescenarios
Desarrollarunplandelproyecto,asseamuy
pequeo
Utilizaralgntiempoparamodelarloquese
construir
UML,diagramasdesecuencia
Revisarlaconsistenciaycalidaddelosmodelos
Utilizarherramientasytecnologaquepermitan
construirelsistemaconcomponentesreutilizables
Disearpruebasampliasyejecutarlasantesde
liberarelsistema.
Elpropsitoesentenderquelabasedelaformulacin
ylaprimeragranactividadenlaingenieraWebes
comprenderelproblemaantesdecomenzara
resolverloyconesto,estarsegurodequela
solucinconcebidaesaquellaquelagente
realmentequiere.
DentrodelMarcodetrabajodeIngenieraWebseinicia
conlaformulacinyplanificacin.
Laformulacin,valoralanecesidadsubyacentedela
WebApp,lascaractersticasyfuncionesglobalesque
deseanlosusuariosyelmbitodelesfuerzode
desarrollo.
Laplaneacin,abordaloselementosquedeben
definirseparaestablecerunflujodetrabajoyun
programa,yarastrearel trabajoconformeavanzael
proyecto.
Laformulacinseenfocasobreelgrancuadroenlas
necesidadesyobjetivosdelnegocioyenla
informacinrelacionada.
LosclientesylosingenierosWebquierendefinirel
contenidorequerido,discutirlafuncionalidad
especfica,caractersticasespecficaseidentificarla
formaenquelosusuariosfinalesinteractuarnconlas
WebApp,todoestoesformulacinyrecopilacinde
requisitos
Representaunasecuencia deacciones:
Identificarlasnecesidadesdelnegocio
DefinirobjetivosdelaWebApp
Definirgrandescaractersticasyfunciones
Recopilarlosrequisitos
Conduciraldesarrollodelmodelodeanlisis.
Identificaelmbitodeesfuerzodedesarrolloy
proporcionaunmedioparadeterminarunresultado
exitoso.
Sibienenlaformulacinsedebenexponerlasgrandesnecesidades,
sinembargo,tambinseexponendetallesoespecificacionesqueel
clienteyelIngenieroWebdeseanhacerlo.
Enestaetapaesbuenopreguntarseyresponderse
losiguiente:
Culeslaprincipalmotivacin(necesidadesdelnegocio)para
laWebApp?
CulessonlosobjetivosquedebesatisfacerlaWebApp?
QuinusarlaWebApp?
Laideaestenerinicialmenteunenunciadoglobalyno
detallado.
Ejemplo:
HogaSeguro.compermitirvenderdirectamentealos
consumidores,loqueeliminaracostosde
intermediacin.Tambinpermitiraumentarlasventas
enun25%alasventasactualesanualesypenetraren
regionesgeogrficasqueactualmentenotenemos
puntosdeventa.
CuleslaprincipalmotivacinparalaWebApp?
CulessonlosobjetivosquedebesatisfacerlaWebApp?
QuinusarlaWebApp?
Sitenemosunarespuestacorrectaaestaspreguntasimplicanmetas
especficasparaelsitioWeb.
Sepodrnespecificarmetasinformativasyaplicativas:
indicanunaintencindeproporcionarcontenidoinformacin
especficosalusuariofinal.
elsitioproporcionaraalosusuariosespecificacionesdeproducto
detalladasqueincluyandescripcionestcnicas,instruccionesde
instalacinyprecios.
Metas
informativas:
indicanlahabilidadpararealizaralgunatareadentrodela
WebApp.
elsitioconsultaralusuarioacercadelainstalacin(casa,
oficina)queserprotegidayrealizarrecomendaciones
personalizadasacercadelproductoylaconfiguracinquese
utilizar.
Metas
aplicativas:
SepuederecopilarpormediodeunaIngenieraderequisitos
comn,ysiadaptamosaWebApp losobjetivossern:
Recopilacin
Identificarrequisitos
decontenido
Identificarrequisitos
funcionales
Definirescenariosde
interaccinpara
diferentesclasesde
usuarios
4.Definircasosdeusoquedescribanescenariosdeinteraccin
paracadaclasedeusuario.
3.Analizarlainformacinrecopiladayutilizarlainformacin
pararealizarunseguimientoalosclientes
2.Comunicarseconlosclientes
paradefinirlosrequisitosbsicosparalasWebApp.
1.Pediralosclientes
quedefinanunacategoradeusuarioydescribancadacategora
Lossiguientespasosdelarecopilacinderequisitossedirigen
paralograrestosobjetivos
1. Pediralosclientesquedefinanlascategorasde
usuarioydescribancadacategora:
CulesobjetivoglobaldelusuariocuandousalaWebApp?
Culessonlosantecedentesylapericiadelusuarioen
relacinalcontenidoylafuncionalidaddelaWebApp?
CmollegarelusuarioalaWebApp?Elarriboocurirr a
travsdeunenlacedesdeotrositiowebollegarenuna
formamscontrolada?
QucaractersticasgenricasdelaWebApp legustany/o
disgustanalusuario?,preguntaralusuarioculessonsus
WebApp favoritaymenosfavorita
Envariasocasioneslascategorasdelosusuariossonrelativamente
limitadasporloquenosenecesitarepresentarenUML;sinembargo
existenocasionesqueameritainclusivehacerunajerarquadeusuarios
2. Comunicarseconlosclientesyusuariosfinales
paradefinirlosrequisitosbsicosdelaWebApp.
Consideraropinionesypuntosdevistadeotras
personas.Sepuedenusarvariosmecanismoscomo:
Grupomuestral tradicional reuninpresencialconun
pequeogrupodeusuariosfinales
Entrevistasinteractivas desdesitiowebomediante
correoelectrnico
Construccindeescenarios ausuariosseleccionadosse
lespidequedescribaninteraccionesespecficasconla
WebApp.
3. Analizarlainformacinrecopiladayutilizarla
informacinpararealizarunseguimientoconlos
clientes
Sedebecategorizarenclasedeusuarioytiposdetransaccin
Sedebedesarrollarunalistadeobjetosdecontenidoylas
operacionesqueseaplicanaestoscontenidosdentrodeuna
transaccindeusuarioespecfico(informativa,deayuda,etc.)
Sepidealosusuariosqueordenencomolesgustaraqueseles
organizaraelcontenidoysufuncionalidad
Ascomotambinlistarlasetiquetasqueutilizaremospara
enlazaraestoscontenidosyfunciones
4. Definircasosdeusoquedescribanescenariosde
interaccinparacadaclasedeusuario(dela
jerarquadeusuarios).
Sedescribecomointeractacadacategoradeusuario(actor)
conlaWebApp paralograrunaaccinespecfica.Estoservir
paraelanlisisypruebas.
Ofrecenunaguaimportanteparaquienesdebenprobarla
WebApps
Acompaadoalagrficadelcasodeuso,sedebedescribirlanarrativade
losrequisitosasociadosaloscasosdeuso.Estoselodebeplasmarenun
documentoformal,existenvariostipos,laIEEEsugiereelmanejodeSRSo
ERS(EspecificacindeRequisitosdeSoftware).
UnequipodeingenieraWebexitosomezclauna
ampliavariedaddetalentosquedebentrabajarcomo
equipoenunambientedeproyectoconaltapresin
Losplazossoncortos,loscambiossoninexorables
ylatecnologacontinacambiando.
Lacreacindeunequipoqueseconsolidenoes
asunto sencillo.
Equipo
Desarrolladores/
proveedores de
contenido
EditoresdeWeb
Ingeniero Web
Expertos en
dominios
empresariales
Especialista en
Soporte
Administrador
(WebMaster)
EnunproyectoIWeb,elequipodetrabajoesmultidisciplinario.Dentrode
esteequipodetrabajodeIngenieraWebestn:
Desarrolladores/proveedoresdecontenido notcnico,enfocaenla
generacinorecopilacindelcontenido.
EditoresWeb organizacindelcontenido,conexinentreequipo
tcnicoydesarrolladores/proveedoresdecontenido
IngenieroWeb involucraenlasdiferentesactividadesdedesarrollo
(anlisis,diseo,implementacin),conocedetecnologasdecomponentes,
arquitecturas,basesdedatos,multimedia,etc.
Expertoendominiosempresariales sercapazderesponderpreguntas
sobre:metas,objetivos,requisitos,etc.
Especialistasoporte paracorrecciones,adaptacionesymejorasdelsitio,
actualizacionesdecontenido,implementacindenuevosprocedimientos,
etc.
Administrador webmaster,responsabledelaoperacindiaria
LaIngenieraWebnecesitaunenfoquegil parael
manejodeproyectosquevariardependiendodela
magnituddelproyectoascomodecmoenfrentar
sudesarrollo.
Dosalternativaspara
construir WebApp
Lasubcontratacin
outsourced
Intervieneuntercer
proveedor con
experiencia,talentoy
recursos,conlosque
nocuenta laempresa
Eldesarrolloencasa
inhouse
queseanempleadosde
laempresa
1. Iniciodeproyecto
Siseeligelasubcontratacin,la organizacindeberealizarunaserie
detareasantesde buscarunaempresasubcontratistaquehagael
trabajo:
IdentificarelpblicoparalaWebApp,metasglobales,informaciny
serviciosqueproporcionarlaWebApp,sedestacanWeb
competidores,yformasdemedircualitativaycuantitativasilawebes
exitosa
DesarrollarinternamenteundiseoaproximadodelaWebApp,
identificandoeltipoyvolumendecontenido,tiposdeprocesamiento
interactivo
Elaborarunplanaproximadoqueincluyalasfechasfinalesyfechas
claves
Crearunalistaderesponsabilidadesparalaorganizacininternayla
subcontratista
Identificarelgradodesupervisineinteraccindelaorganizacincon
elsubcontratista,esdecir,definirclaramenteloscontactosdecada
parte
2. Seleccinentresubcontratistascandidatos
Comprobarconclientesanterioressobreel
profesionalismodelsubcontratista
DeterminarlosnombresdelosIngenierosWebque
realizaronconxitolosproyectos
Examinartrabajossimilaresrealizadosporel
subcontratista
3. Coordinarlagestindelproyectoconel
subcontratista
Acordartareas
Puntosdecomprobacinehitos
Aseguramientodecalidad
Valorarriesgos
Controldecambios
Mtodosdecomunicacinefectiva
4. Evaluacindelprogramadelproyecto
Debetenerunadosificacindeacuerdoaltamaodel
proyecto,cuandosoncortosloscontroleslleganaserhasta
diarios
5. Gestindelmbito
Elmbitopodrcambiarconstantemente,porloquesesuele
congelaroversionarparapodertenerentregables.
1. Entenderelmbito,lasdimensionesdecambioy
lasrestriccionesdelproyecto
Sinimportarlorestringidoqueseaeltiempo,unproyectono
debecomenzarmientraselequipodelproyectonoentienda
quedebeconstruir:recopilacinderequisitos,la
comunicacinconelcliente
2. Definirlaestrategiadelproyectoincremental
Sepuedeseleccionarestrategiasquetenganrelacinconel
conceptoincremental,controldecambioymanejoderiesgos
peroqueseagilcomoloesprogramacinextrema(xp),
Microsoftsolution framework (msf)oIWeb
3. Realizaranlisisderiesgo
4. Desarrollarunaestimacinrpida
Conestosepodrsaberanivelmacrosipodrdesarrollarsecon
recursosdisponiblesdeacuerdoalasrestriccionesdelprograma
definido
5. Establecerunconjuntodetareas
Descripcindelproceso
6. Establecerelplan
Incluyendolastareasantesdescritasyestableciendofechasde
entregables
7. Definirmecanismosderastreodelproyecto,
Muchoantesdequeel softwareLiberableestdisponible,el
ingenieroWebenfrentarinevitablementelapregunta:dnde
estamos?
Podersabercomovalorarlosentregables,sisecompletaron.
MuchosproyectosWebApp fracasanpor:
Descuidodelproyecto
Nomanteneruncontroldecambios(informalidad
decambiossevuelveinterminableelproyecto)
Unenfoquedesdeosoenlarecopilacindedatos
causafracasoenproducirunsistemaquesatisfaga
lasnecesidadesdelusuario
Unenfoqueequivocadodepruebaspuedeproducir
unfracasoalproducirunsistemaqueselopongaen
produccinsinlaspruebasacordesasusexigencias
Setieneunagranidea,asquesepuedecomenzara
construirlaWebApp ahora
Lascosascambiaranconstantemente,asqueno
tienecasotratardecomprenderlosrequisitosdela
WebApp
Sedesarrollaconingenierosdeexperiencia
dominantedesoftwaretradicionalquenose
entrenanydesarrollanWebApp inmediatamente
Burocratizarse
Pruebas?Porqumolestarseenhacerlas?.
Sprint:Escadaparteoetapadelproyecto.
Sprintbacklog:listadoderequerimientos.
Product backlog:listadototalderequerimientos
Scrumb team:equipospequeos,cadaequipotiene
sulder(Scrumb master).
Scrum diarios:reunionesdiariasdelequipode
trabajo.
Historiasdeususario:Requerimientos.
Estimaciones delbacklog:
Deformaaproximada
Elequipodecideelnmerodehistorias.
Realizando losclculos develocidad
Seleccionar lavelocidad estimada
Calcular elnmero dehistorias quesepueden aadir
Velocidad Estimada =(Das hombredisponibles)*(Factorde
dedicacin)
Factordededicacin = Velocidad Real
Das hombredisponible
paraAplicacionesWeb
Elanlisisseenfocaenlarespuestadetres
importantespreguntas:
Quinformacinocontenidosepresentaromanipular?
Qufuncionesrealizarelusuariofinal?
QucomportamientosexhibirlaWebApp conforme
presentecontenidoyrealicefunciones?
Losrequisitosparaelanlisisson,previamente
identificadosenlaetapadeformulacinyplaneacin:
Lajerarquadeusuario
Desarrollodecasosdeuso
Afinacindelmodelodecasodeuso
Lajerarquadeusuario
Lascategorasdeusuariosfinalesque
interacturn conlaWebApp se
identificancomopartedelastareasde
formulacinyderecopilacinde
requisitos
Cuandoelnmerodeusuariosesgrande
esaconsejabledesarrollarunajerarqua
deusuarios
Desarrollodecasosdeuso
Conocidostambincomohaces
defuncionalidad
Loscasosdeusosedesarrollan
paracadacategoradeusuario
descritaenlajerarquadeusuario
Afinacindelmodelodecasodeuso
Loscasosdeusoseorganizanenpaquetesfuncionalesycada
paquetesevaloraparaverificarquees:
Comprensible todoslosclientesentiendenelpropsito
Cohesivo elpaqueteabordafuncionesrelacionadascercanamente
unaconotra
Librementeacoplados lasfuncionesdentrodepaquetecolaboran
unaconotra,perolacolaboracinexteriorsemantieneenun
mnimo
Jerrquicamentesuperficial lasjerarquasfuncionalesprofundas,
sondifcilesdenavegaryentenderparalosusuarios,porlotanto,se
recomiendareducirlosniveles,siemprequeseaposible
Elanlisiscontemplalascuatroactividades:
Modeladode
Contenido
AspectodelcontenidodelaWebApp
Elcontenidoincluyetexto,grficaseimgenes,as
comodatosdevideoyaudio.
Modeladode
Interaccin
DescribecmointeractaelusuarioconlaWebApp
Modelado
funcional
Definelasoperacionesqueseaplicarnalcontenidode
laWebApp
Describeotrasfuncionesdeprocesamiento,
independientes delcontenido pero necesariasparael
usuariofinal
Modeladode
Configuracin
Describeelambienteylainfraestructuraenlaquereside
laWebApp
Estemodelocontieneelementosestructuralesque
proporcionanunaimportantevisindelosrequisitos
decontenidoparaunaWebApp.
Incluyen:
Clases decontenido porejemplotexto,imgenes,grficas,
fotografas,imgenesvideo,audio,etc.
Clasesdeanlisis,entidadesvisiblesparaelusuario,quesecrean
omanipulanparalainteraccinconlaWebApp.
Elmodelodecontenido,sederivandelanlisis
gramaticaldeloscasosdeuso.
Elmodelodecontenidopuedecontenerdiagramasde
relacindeentidadesorbolesdedatosquebosquejan
lasrelacionesentrelosobjetosdecontenidoola
jerarquadestequemantieneunaWebApp.
Unobjetodecontenidopuedeserunadescripcin
textualdeunproducto,unartculoquedescribaun
eventonoticioso
Ejemplo derbol dedatos
Puede indicar quedescripcinincluye:
1. Unadescripcingeneraldelproductooservicioenun
prrafo
2. Unafotografadelproductooservicioqueseofrece
3. Unadescripcintcnicadelproductooservicio,en
variosprrafos
4. Undiagramaesquemticodelcomponenteque
muestrecmoencajaenunsistematpico
5. Unbrevevideoquemuestrecmoutilizarloquese
ofreceenlapgina
Lasclasesdeanlisissederivanalexaminarcadacaso
deuso
Unrpidoanlisisgramaticaldelcasodeuso,
permitiridentificarlasclasescandidatas
Porejemplo,uncasodeusodeSeleccionarproducto:
CaractersticasdelproductoyFacturadeVenta.
LasWebApp queproveenconversacinconel
usuariofinal,modelansu interaccincon4elementos:
1. Casosdeuso proporcionanunavisinunidimensional
delainteraccin
2. Diagramasdesecuencia manejadosdimensiones,
representacinabreviadadelaformacomointeracta
lasaccionesdelusuarioconlasclasesdecontenidoy
anlisis
3. Diagramasdeestado tresdimensiones,muestra
amsdelcomportamiento,informacinacerca
delospatronesdenavegacinpotencialesque
noproporcionaloscasosdeusoydiagramasde
secuencia.Estosdiagramasdeestadopueden
serelaboradosendiferentesnivelesde
abstraccin.
4. PrototipodeinterfazdeusuarioSibienlacreacindel
prototipodeinterfazdeusuarioesunaactividaddediseo,se
recomiendahacerloyaenelanlisis(mientrasmspronto
mejor)porquesepuedenobtenerrequerimientosadicionales
almomentoqueelusuarioveaelprototipo.Hayquedargran
importanciaaestadefinicinporqueesunodelosfactores
msimportantesparalasatisfaccinyaceptacinglobaldela
WebApp.Esteprototipodebeimplementarlosprincipales
vnculosdenavegacinyrepresentarlaplantilladepantalla
globalengranpartecomoserconstruida.
Aborda2elementosdeprocesamientodela
WebApp ycadaunorepresentaungradodiferentede
abstraccindeprocedimiento:
1)Funcionalidadobservablerespectoalusuario.Porejemplo
unacalculadoraparaelmomentodeaadirartculosalcarrito
decomprasyparahacerclculosdeimpuestosyvaloresde
entrega
2)Operacionesdentrodelasclasesdeanlisisquerepresentan
comportamientosasociadosconlaclase.
LasWebApps sedebendiseareimplementarde
formaqueseacomodenaunadiversidadde
ambientes,tantodelladodelservidorcomodel
cliente.
Sedebenespecificarelhardwaredelservidoryel
ambientedelsistemaoperativo
Conformeaumentaelnmerodevnculos,la
complejidaddenavegacinatravsdelaWebApp
tambincrece.Entoncessedebenestablecerlosvnculos
apropiadosentrelosobjetosdecontenidoylasfunciones.
Lanavegacinnosloeslaaccindesaltardepginaa
pgina,sinolaideademoverseatravsdeunespaciode
informacin.
Elanlisisrelacinnavegacinproporcionaunaseriede
pasosdeanlisisqueluchanporidentificarrelaciones
entreloselementosdescubiertoscomopartedela
creacindelmodelodeanlisis
ElenfoqueARNseorganizaen5pasos:
1. Anlisisdelosparticipantes Identificalasdiversascategorade
usuarioyestableceunaapropiadajerarquadeparticipantes
2. Anlisisdeelementos Identificalosobjetosdecontenidoylos
elementosfuncionalesdeintersparalosusuariosfinales
3. Anlisisderelaciones Describelasrelacionesentreloselementos
WebApp
4. Anlisisdenavegacin Examinacomolosusuariospuedenacceder
aelementosindividualesogruposdeelementos
5. Anlisisdeevaluacin Consideratemaspragmticos,porejemplo:
costo/beneficio,asociadosconlaimplementacindelasrelaciones
definidasconanterioridad
Anlisisderelaciones.Paravalorarloselementos(objetodecontenidoofuncin)delmodelo
deanlisisycomprenderlasrelaciones entreellossesugierelassiguientespreguntas:
Elelementoesmiembrodeunacategoramsamplia?
Quatributossehanidentificadoparaelelemento?
Yaexisteinformacindescriptivaacercadelelemento?Siesas,dndeest?
ElelementoapareceendiferentesubicacionesdentrodelaWebApp?Siesas,dnde?
Elelementolocomponenotrospequeoselementos?Siesas,culesson?
Otroselementossonsimilaresalelementoconsiderado?Siesas,esposiblequepuedan
combinarseenunsoloelemento?
Elelementoseusaenunordenamientoespecficodeotroselementos?Suaparicin
dependedeotroselementos?
Quelementosiempresiguealaaparicindelelementoconsiderado?
Qucondicionespreviasyposterioressedebensatisfacerparautilizarelelemento?
Esteelementosiempreaparecealmismotiempoconotroselementos?Siesas,cualesson
losotroselementos?
Lasdiferentescategorasdeusuarioempleandemaneradiferentealelemento?Siesas,
cmo?
Elelementopuedeserasociadoconunametauobjetivodeformulacinespecifico?Conun
requisitoWebApp especfico?.
Anlisisdenavegacin.Paradefinirlosrequisitosdenavegacinsiempreelusuariodebesaber
dndeestyadondeva.Sedebeconsiderarlosrequisitosquedictancomonavegaracada
categoradeusuariodeunelementoaotro.Estoselohacealdetalleaniveldeldiseo,sin
embargo,enestaetapaseconsideranlosrequisitosdenavegacinglobalesmediantelas
siguientespreguntas:
Ciertoselementosdebensermsfcilesdealcanzarqueotros(requierenmenos
navegacin)?
Ciertoselementosdebenresaltarseparaforzaralosusuariosanavegarensudireccin?
Comosemanejaranloserroresdenavegacin?
Lanavegacinsedebelograrpormediodevnculos,deaccesobasadoenbsquedaopor
otrosmedios?
Encadapuntodelainteraccindelusuariodebeestardisponibleunmapaomende
navegacincompleto(enoposicinasolounsimplevnculoderetrocesoopuntodirigido)?
Eldiseodelanavegacindebenutrirsedelcomportamientodeusuariomscomnmente
esperadosomediantelaimportanciapercibidadeloselementosWebApp definidos
(navegacinpersonalizada)?
Unusuariopuedealmacenarsunavegacinparaunusofuturo?
Paraquecategoradeusuariosedebedisearunanavegacinptima?
ComosemanejaranlosvnculosexternosalaWebApp?Superponiendolaventanade
navegadorexistente?Comounanuevaventanadenavegador?Comounmarcoseparado?
Ciertoselementossedebenpresentaralosusuariosconbaseenelcontenidodeacciones
denavegacinprevias?
Seleproporcionarunmapadelsitioparabrindaralosusuariosunpanoramaintegralde
laestructuradelaWebApp?
Elusuariopuederealizarunrecorridoquesubrayeloselementosmsimportantes
(objetosdecontenidoyfunciones)disponibles?.
paraAplicacionesWeb
Eldiseo es laactividad queconduceaunproducto
decalidad
Aestosrequisitoslespodemosadicionarotros
como:
Seguridad
Disponibilidad
Escalabilidad
Simplicidad:contenidomoderadoysimple
Consistencia:contenidodebeguardarlamismaaparienciayfuncionalidadentodaslaspartesdelaWebApp,
esdecir,eldiseodelainterfazdebedefinirlosmodosconsistentesdeinteraccin,navegacinydespliegue
Identidad:sedebertrabajarparaestablecerunaidentidadparalaWebApp,porejemplolaWebde
usuarioshiphopserdiferenteaunawebfinanciera.
Robustez:elusuarioesperauncontenidoyfuncionalidadrobusta(quenoserompa)
Navegabilidad:amasdesimpleyconsistente,debeserintuitivaypredecible
AparienciaVisual:esbsicoquetengaunaestticayaparienciavisualagradable.
Compatibilidad:queseacompatibleparaunavariedaddeequiposysoftwaredeclientes.
enAplicacionesWeb
ParalasWebApp existenestrategiasespecficasque
nosayudaranadescubrirerroresen:
elcontenido:evaluacinsintctica(ortografaygramtica
decontenido)ysemntica(exactituddelainformacin
presentadayconsistenciaentreobjetosdecontenidoy
objetosrelacionados)
lafuncin:comprobarlaconcordanciaconlosrequisitos
delcliente
estructura: secompruebaqueseentregue
adecuadamenteelcontenidoylafuncionalidaddela
WebApp
facilidaddeuso:paracadacategoradeusuario,queva
relacionadoconlasintaxisysemnticadelanavegacin
navegabilidad:comprobarlasintaxisysemnticade
navegacinascomocomprobarqueestecontroladotodo
flujo,porejemplo:vnculosrotos,vnculosinadecuados,
etc.
desempeo:sepruebaenunadiversidaddecondiciones
operativas,configuraciones,ycargasparasaberqueel
softwarerespondeadecuadamenteacargasextremas
compatibilidad:secompruebaquelaWebApp funcionaen
variasconfiguracioneshuspedtantodelladodelcliente
comodelservidoreinfraestructuradeseguridad
interoperabilidad:sepruebaparaasegurarquelaWebApp
realizainterfacesadecuadasconotrasaplicacionesy/o
basesdedatos,yqueestasseanconunbuendesempeo
seguridad:sepruebalavulnerabilidadpotencial.
1. revisarelmodelodecontenido,sintcticaysemntica
2. revisarelmodelodeinterfaz paraconfirmarquetodoslos
casosdeusosepuedenacomodar
3. revisarelmodelodediseo paradescubrirerroresde
navegacin
4. revisarlainterfazdelusuario paradescubrirerroresenla
presentacinoenlosmecanismosdenavegacin
5. sepruebanloscomponentesfuncionales, deformaindividual,
secambiaelconceptodeunidadqueenorientadoaobjetos
eralaclaseahoraeslapginaWebquetieneencapsulado
contenido,vnculos,procesamiento,etc.
6. sepruebalanavegacin atravsdetodalaarquitectura,para
estoseaplicaloscasosdeusoquesepruebancontraeldiseo
delanavegacinyluegoconlaaplicacinensi
7. sepruebaendiversasconfiguracionesambientales paracomprobar
sucompatibilidad.Secreaunamatrizdereferenciacruzadaque
definetodoslosprobablessistemasoperativos,navegador,
plataformasdehardwareyprotocolosdecomunicacin.
8. serealizanpruebasdeseguridad conelobjetivodeencontrar
vulnerabilidades
9. sehacenpruebasdedesempeo paravalorarcomoafectael
aumentodeltrfico,quecaractersticasdeusoprovocan
degradacin,cualessonloscomponentesresponsablesdela
degradacinycomoestadegradacinafectaalosobjetivosy
requisitosglobalesdelaWebApp
10. sepruebalaWebApp enunaporcindepoblacincontroladay
monitoreadadeusuarios finales.Losresultadosdeestaprueba
servirnparamejorarlainteraccin,erroresdecontenido,
navegacin,facilidaddeuso,compatibilidad,confiabilidady
desempeodelaWebApp.
Lapruebadecontenidoabarcatresobjetivos:
Sintctica ortografaygramticadecontenido
Semntica exactituddelainformacinpresentadayconsistencia
entreobjetosdecontenidoyobjetosrelacionados.Estaevaluacin
quesehaceparacadaobjetodecontenidodebeelexaminador
responderalassiguientepreguntas:
Lainformacinrealmenteesprecisa(concisayexacta)?
Laplantilladelobjetodecontenidoesfcildeentenderparaelusuario?
Lainformacinanidadaenunobjetodecontenidoseencuentracon
facilidad?
Lainformacinpresentadainternamenteesconsistenteconla
informacindeotrosobjetosdecontenido?
Elcontenidoesofensivo,engaosooabrelapuertaapleitos?
Elcontenidoinfringederechosdeautoromarcasregistradas?
Elestiloestticodelcontenidoentraenconflictoconelestiloestticode
lainterfazglobal?
Ungrupodepruebasadicionalesencuantoalasemnticaes
paralosWebApp queconstruyenobjetosdecontenido
dinmicos quesecreanentiemporealenbaseaunabasede
datos.Paraestosedebenobservarvariosfactores:
Pruebasquedescubranerrorescometidosaltraducirlasolicituddel
usuarioenunaformaquepuedaprocesarlaDBMS
Pruebasparacomprobarerroresenlacomunicacinconlabasede
datos
ValidarquelosdatosbrutosprovenientesdelaDBMShaciael
servidoryestehaciaelclienteestncorrectamenteformateados
paracrearlosobjetosdecontenido
Probarelformatoycompatibilidaddepresentacindelosobjetos
decontenidodinmicoalusuariocondiferentesconfiguracionesde
ambientedelcliente
Estructurales/arquitectura queseentregue
adecuadamenteelcontenidoylafuncindela
WebApp.Quepuedaserextensibleencontenidoy
funcionalidad.
Laverificacinyvalidacindelainterfazdelusuariose
lohaceentrespuntosdelproceso:
1. enelanlisis formulacinyanlisisderequisitos,
2. eneldiseo aldisearlainterfazquegaranticela
calidady
3. durantelaspruebasdondebsicamentese
pruebanejecutandolaaplicacin.
Losobjetivosqueseobtienenconlaspruebasde
interfazson:
lascaractersticasdelainterfazsepruebanparaasegurarque
lasreglasdeldiseo,laestticayelcontenidovisualrelacionado
estnadisposicindelusuariosinerroralguno
losmecanismosindividualesdelainterfazsepruebanenforma
unitaria,porejemplo:sepruebahtml dinmico,carritode
compras,etc.
lainterfazsepruebafrenteacadacasodeusoparadescubrir
erroresdesemntica,yfacilidaddeuso
lainterfazsepruebadentrodeunadiversidaddeambientes
paraasegurarsucompatibilidad.
Probarlosmecanismosdeinterfazquesonusados
porelusuarioenlainteraccinconelsistema,como
porejemplo:
Vnculos,
Formato:depginas,campostipos,validaciones,
html dinmico,
Ventanaspopup,
Cookies,
Mecanismosdeinterfazespecficas,porejemplovalidacionesde
uncarritodecompras.
Evalacomoeldiseoseocupadelosusuarios,
ofreciendounadireccinclara,manteniendo
consistenciadelenguajeyenfoque.
Paraestosesugiereprobarcadacasodeusoversus
eldiseodelainterfazparaconfirmarquenohay
erroresysiloshubierecomolosmanejaysu
recuperacin.
Sepruebacunfcileselusodelainterfazporparte
delusuario,estaspruebaslasrealizaelusuario.Los
pasosparadisearestaspruebasson:
definirunconjuntodecategorasdepruebadefacilidaddeuso
(explicadoalgunasmsadelante),identificandolasmetasde
cadauna
disearlaspruebasparaqueseevalencadameta
seleccionarlosparticipantesqueharnlaspruebas
instrumentarlainteraccinquetendrelusuarioconlaWebApp
desarrollarunmecanismoparavalorarlafacilidaddeuso.
Paraidentificarlascategorasdefacilidad,seexponea
continuacinlassiguientescaractersticasdefacilidadde
uso:
Interactividad.Losmecanismosdeinteraccin(mens,botones)son
fcilesdeentenderyusar?
Plantilla.Losmecanismosdenavegacin,contenidoyfuncionesestn
colocadosenunaformaquepermitenalusuarioencontrarlos
fcilmente?
Legibilidad.Lostextosygrficossoncomprensibles?
Esttica.Laaparienciadelaspginashacensentircmodoalusuario
Caractersticasdedespliegue.LaWebApp utilizadeformaptimael
tamaoylaresolucindelapantalla?
Sensibilidaddeltiempo.Lascaractersticasfuncionalesycontenido
sonpresentadasdemaneraoportuna?
Personalizacin.LaWebApp seajustaporsisolaalasnecesidades
importantesdediferentescategorasdeusuario?
Elusuariopuedetenerdiferentesambientes
(sistemasoperativos,navegador,plataformasde
hardware),porloquesedebehacerpruebasde
compatibilidadparadescubrirerroresasociadoscon
unambienteespecfico.
Paraestosedebedefinirunconjuntode
configuracionesdecomputadorascliente ms
comunesyenfuncindeestasarmarlaspruebas.
Conocidascomopruebasdefuncin,queintentan
descubrirerroresenlafuncionalidaddelaWebApp.Para
estoexistenalgunosmtodosdeprueba:
Particindeequivalencia.Cuyodominiodeentradasedivideen
categorasoclasesdeentradayapartirdeestossederivanloscasos
deprueba.Sehacenpruebasconcadacategoramientraslasotras
permanecenconstantes,porejemploenunapginaqueimporteel
cdigopostal,aqusehacepruebasposiblesconelcdigopostal
mientraslosotrosvalorespermanecenconstantes
Anlisisdevaloreslmite. Probarlosvaloresmximosomnimosde
camposoatributosquemanejaelcomponenteolafuncin
Pruebasderuta. Paracomprobarygarantizarquesehaejercitado
todarutaposibleensufuncionamiento.
Paracadacasosedebeespecificarlaentradaysalida
esperada.
Existencircunstanciasenlasquelafuncionalidades
tanextensaquecomplicaprobartodaslasposibles
situaciones,porloqueunasugerenciaseraacudira
unanlisisderiesgoparaobtenerloscasosdeprueba
demayorriesgo,comoporejemplo:
Culfuncionalidadeslamsimportanteparaelpropsito?
CulesreasdelsitioameritamsdurainteraccinconlaDB?
Culesmecanismosespecficos(cgi,applets,activex)sonlos
mscomplejos?
Qutiposdeproblemascausarlamayoradelasquejasola
peorpublicidad?
Quereasdelsitiosernlasmspopulares?
Quepartesdelsitiotendrnmayoresriesgosdeseguridad?.
Laspruebasdenavegacingarantizanquetodoslos
mecanismosquepermitenalusuariodelaWebApp viajar
atravsdeellaseanfuncionales.
Laprimerapruebadenavegacininiciaconlapruebade
interfaz.
Estaspruebasinicialmentesonprobadasporlos
IngenierosWebparaluegopasarlaspruebasalos
usuarios.
Pruebadesintaxisdenavegacin.Concadamecanismo
denavegacinseprueba:vnculosnavegacin,redirigir
(destinosremovidos),mapasdesitio,motoresde
bsqueda.
Pruebadesemnticadenavegacin.SedebenprobarlosUSN(unidad
semnticadenavegacin).Setomaloscasosdeusoparaarmarcasosde
pruebadenavegacinrespondiendoalassiguientespreguntas:
ElUSNselograensutotalidadsinerror?
TodonododenavegacindelUSNesaccesibledentrodelcontextoderutasdefinidas
enelUSN?
Silainterfazdelusuarioproporcionaunaguaparaayudarenlanavegacin,es
comprensible?
Existeunmecanismodistintoalproporcionadoporelnavegadorpararegresaralnodo
denavegacinpredecesoroalinicio?
Siunafuncinseejecutaenunnodoyocurreunerrorenelprocesamientodela
funcin,sepuedecompletarlaUSN?
Existeunaformaparadescontinuarlanavegacinantesdehaberalcanzadotodoslos
nodos,ysepuederegresarapuntodondesedescontinuparaprocederdesdeah?
Todonodosealcanzadesdeelmapadesitio?Losnombressonsignificativosparael
usuario?
SiunnododentrodeunaUSNesaccedidodesdealgunafuenteexterna,esposible
procederhaciaelsiguientenododelaruta?Esposibleregresaralnodoprevioenlaruta?
Elusuariocomprendesuubicacindentrodelaarquitecturadecontenidoconformese
ejecutalaUSN?.
Enlaspruebasdecompatibilidadyenpruebasdeinterfaz
usuarioseprobaronsolodelladodelcliente.Enestaspruebas
deconfiguracinsepruebanunconjuntodeprobables
configuracionesdeclienteyservidores.
Delladodelservidor:
LaWebApp estotalmentecompatibleconelsistemaoperativodel
servidor?
Losarchivosdesistema,directoriosydatosdesistemarelacionadosse
creancorrectamentecuandolaWebApp estaoperativa?
LasmedidasdeseguridaddelsistemapermitenalaWebApp ejecutarsey
darelservicioalosusuariossininterferenciayaunbuendesempeo?
LaWebApp sehaprobadoconlaconfiguracindeservidordistribuido
(cluster obalanceodecarga)?
LaWebApp estintegradaadecuadamenteconlabasededatos
(incluyendodiferentesversionesdeDB)?
Delladodelcliente:
Hardware:cpu,memoria,dispositivosdeimpresin,monitor
Sistemasoperativos:normalesyespecialesparaequipos
mviles
Softwaredenavegacin
Componentesdeinterfazdelusuario:activex,applets java,
otros
Plugin:quicktime,realplayer,adobe,otros
Conectividad:cable,dsl,proxys,otros
Aplicacionesquecorrenalmismotiempo
Estetemaesdegranalcance,porquelaspruebasde
seguridadestndiseadasparaprobarlavulnerabilidadenel
ambientecliente,lascomunicacionesderedyelambientedel
ladodelservidor.AlpuntoquesilaWebApp escrucialparael
manejodelnegociodelaempresa,esaconsejablequesehaga
unacertificacindelaseguridadconempresasespecializadas
enestalabor.
Entrelasprincipalesvulnerabilidadesestaeldesbordamiento
debuffer,instalacindecookiesnolegtimos,spoofing,
ataquesdenegacindeservicio,accesonoautorizadoabases
dedatos.Paraevitarestasvulnerabilidadessepueden
implementarelementosdeseguridadcomo:firewall,
autenticacin,encriptacin,autorizacin,IPS.
Seaplicanparadescubrirproblemasdedesempeoquesepresentandebidoala
faltaderecursosenelladodelservidor,anchodebandaderedinapropiada,
capacidadesinadecuadasdebasesdedatos,capacidades/defectuososdesistemas
operativos,funcionalidadmaldiseada,uotrosconflictosdehardwareosoftware
(seguridad)queimpidanunbuendesempeo.
Estoconduciracomprendercomoelsistemarespondeaciertacarga(nmerode
usuariosactivos,numerodetransacciones,volumendedatos,etc.)yapoder
recolectarmtricasparapodermodificareldiseooacoplarsoluciones
(hardware/softwareapropiadas)paramejorarelrendimiento.
Laspruebasdebenresponderalassiguientespreguntas:
Enqupunto(usuarios,transacciones,cargadedatos)eldesempeosevuelve
inaceptable?
Quecomponentesdelsistemasonresponsablesdelareduccindeldesempeo?
Culeseltiempoderespuestapromedioparalosusuariosenunavariedadde
condicionesdecarga?
Queocurrecuandoseaplicancargasquerebasanlacapacidadmximadel
servidor?.
Paracontestaraestaspreguntassehacenlaspruebas
dedesempeocomunes(cargaytensin).
Pruebasdecarga.Paraestapruebaseconsideran
variables:
N:nmerodeusuariosconcurrentes
T:numerodetransaccionesenlneaporusuarioporunidadde
tiempo
D:lacargadedatosprocesadaporelservidorportransaccin.
DeestasvariableselIngenieroWebobtienevalorespromedios
aceptablesysienelmomentodelapruebaencuentrauna
disminucinprecipitada
Pruebasdetensin.Esunacontinuacindelapruebadecarga,en
dondelasvariablesN,TyDsefuerzanparapodersuperarloslmites
operativos.Conestapruebaserespondenalassiguientespreguntas:
Elsistemasedegradaoelservidorsedesconectacuandoserebasasucapacidad?
Elsoftwareemitemensajesalclienteyalsoportetcnicodelsitioquesenopuede
alcanzarelservidor?
Elservidorponeencolalaspeticionesquenoalcanzaaresolverlasparair
atendiendopocoapococomosucapacidadlopermita?
Lastransaccionessepierdenconformeserebasaloslmites?
Laintegridaddedatossepierdecuandoserebasaloslmites?
Sielsistemafalla,cuntotardaenestarenlneadenuevo?
CiertasfuncionesdelWebApp sedescontinancuandoelservidorllegaasus
umbrales(memoria,procesador,disco)?.
Unavariacindepruebasdetensinsonlasllamadaspruebaspico,quesonlas
mismaspruebasdetensinperoselohacemuyrepentinollegarosobrepasarel
lmitevolviendoalanormalidadyluegonuevamentesobrepasandoellmitepara
efectosdepodercomprobarcuanbienqueelsistema/servidorserecupera
regresandoasunormalidad.
Ejemplo dedesarrollo conIWeb
http://es.scribd.com/doc/32677971/DesarrollodeUn
PortalConIWeb

También podría gustarte