Implementación de una herramienta de gestión de cambios dentro del ERP eSengoⓇ, e introducción al ERP eSengoⓇ y al framework SherpaBeansⓇ

53 

Loading....

Loading....

Loading....

Loading....

Loading....

Texto completo

(1)

5126-1:

Implementación de una

herramienta de gestión de cambios

dentro del ERP eSengo®, e introducción

al ERP eSengo® y al Framework

SherpaBeans®.

Memòria del Projecte Fi de Carrera

d'Enginyeria en Informàtica

Realizado por:

Dídac Pons Aguilar

Dirigido por:

(2)

1. Introduión 3

1.1. EstadodelArte . . . 3

1.2. Motivaión . . . 4

1.3. Objetivos . . . 6

1.4. Estudiodeviabilidaddelproyeto . . . 6

1.4.1. ReursosSoftware . . . 6 1.4.2. ReursosHardware. . . 6 1.4.3. Reursoshumanos . . . 7 1.4.4. Coste . . . 7 1.5. Estruturadelamemoria . . . 7 2. Tenologíasutilizadas 8 2.1. TenologíasutilizadasporSherpaBeans . . . 8

2.2. SherpaBeansyeloneptoMVC . . . 10

2.3. Seguridad . . . 12

2.4. Estruturadelproyeto . . . 13

2.5. Entornodedesarrollo . . . 16 2.6. Metodologíadedesarrollo . . . 16 3. Implementaióny despliegue 17 3.1. Modelodedatos . . . 17 3.1.1. Diseño . . . 17 3.1.2. Integraión . . . 19

3.2. BreveintroduiónaelementosdeeSengo®. . . 19

3.3. Submódulos . . . 22 3.3.1. AppliationyModule . . . 22 3.3.2. ChangeOrigin . . . 28 3.3.3. UseCase . . . 29 3.3.4. Risk . . . 32 3.4. Módulo ChangeRequest . . . 34 3.4.1. Roles . . . 39 3.4.2. EsperarAeptaión. . . 39 3.4.3. Evaluaiónderiesgos. . . 42 3.4.4. Estimaióndetiempos . . . 43 3.4.5. EsperarAprobaión . . . 44

3.4.6. Esperarplaniaióndelambio . . . 45

3.4.7. Petiióndeambiorehazada . . . 46

3.4.8. Aeptaióndelapetiiónreabierta . . . 47

3.4.9. Aprobaión Rehazada. . . 47

3.4.10.Aprobaión delapetiiónreabierta. . . 48

3.4.11.Petiiónanelada . . . 49

4. Validaión 49 4.1. Validaióndelmóduloylossubmódulos . . . 49

5. Conlusiones 49 5.1. Posiblesampliaiones. . . 50

(3)
(4)

En el siguiente proyetose detallan los pasos para realizar un gestor de ambios. En este apartado se explian los motivos por los que se optó realizar este proyeto, además de una introduiónadiferentes oneptos generalesdel estadodel arte,también sonmenionadoslos objetivosdel proyetoasíomolaestruturageneraldelamemoria.

1.1. Estado del Arte

LosERP (sistemás deplaniaióndereursosempresariales),sonsistemás deinformaión gereniales que integran y manejan muhos de los negoios asoiados on las operaiones de produióny delosaspetosdedistribuión deuna ompañía enla produióndebienes ode serviios.

En laúltima déadaelERP sehaonsolidadoomoprodutoútilparalasempresas,yasea omoapliaiónoapliaiónweb.AtualmentelagranmayoríautilizanalgúnERP demásalto obajonivel(yaseaopensoure oporlienias), odisponendealguna herramienta softwarede administraión.Por lotanto nosenontramosenunmeradoenauge,onbastantesprodutos para satisfaer lasneesidades básiasde administraiónde una empresa,pero en los últimos años onlairrupióndel CloudComputing la industria delosERP seha vistoonvulsionada, yaqueelhehodeombinar estas2tenologíaspuedeaportarbeneios, omoporejemplo:

Permitir más aesibilidad a los empleados sin neesidad de instalar la apliaión en el terminaldetrabajo.

Failidadparapoderintegrarotrossistemás,omoonetaronotroERPoonetaraun sistema auxiliar.

Reduiónde gastos del ERP (yaque onCloud solo sepaga por elvolumen deuso, en vezdetenerquepagarunservidorexlusivo).

Disminuión en el tiempo y la omplejidad de desarrollode nuevasversiones (yaque no se debe haer ningún esfuerzo eonómio en mejorarlas infraestrutura, el software oel soportedereursos)[1℄.

Además losERP integran diferentes módulos que deben ayudar a lasempresas aadministrar eientementesus reursosasíomoagilizarlasoperaionesrelaionadasonsuprátia,estos módulosnosonjos,losomponentes típiosdeunERP son[2℄:

Finanzas.

Contabilidad.

Planiaión yControldelaProduión.

ReursosHumanos.

Costos.

Ventas.

(5)

Así pues partiendode loexpuestoen elpuntoanterioruna empresadeberáesogerel ERP quemásseajusteasunegoio,segúnlosmódulosqueimplemente,ydelquemejor rendimien-to pueda obtener. Ese podríaser el asode nuestro produtoeSengo®, un ERP desarrollado porIsenia®[3℄, e implementado íntegramente en el Cloud, uenta on muha versatilidad ya que onsta de diferentes módulos que siempre pueden ser fáilmente ampliables graias a la implementaión en Cloud debido a que no es neesario que el liente invierta en hardwareni en apaitar personalpara el uso, mantenimiento o desarrollode estas ampliaiones. Además, eSengo®[4℄,onstadeunaaltapersonalizaiónorientadaalusuario,osapoo freuenteenlos ERP, graias aqueestá implementadoon laplataforma SherpaBeans[5℄,también desarrollado porIsenia®,(enelapitulo2y3,serealizaunapequeñaintroduióntantosobreSherpaBeans

omoeSengo®).

Uno de losmódulos que losERP no suelenimplementar, y eSengo®no esuna exepión, pero que son muy interesantes para las empresas, son los denominados Gestores de Cambios (normalmente basados en los estándares de ITIL[6℄), su nalidadprinipal es la evaluaión y planiaión del proeso de ambio para asegurar que, si éste se lleva a abo, se haga de la formamáseiente,siguiendolosproedimientosestableidosyasegurandoentodomomentola alidadyontinuidaddelserviioTI, enlaImagen1.1 seresumenlasaionesquedeneITIL paraunGestordeCambios:

(6)

1. Filtrado/Registro:EselestadoiniialdondesereibenlasRFC(RequestForaChange)[7℄, losresponsablesdeidensiseaeptanonoparaanalizar,dependiendodediferentesvaremos queellosonsideren(ompliaióndelambio,laridaddelaexpliaión,et.),ademásen este punto se pueden lasiar omo urgentes ono, teniendo un protoolo de apliaión inmediatauandosedaelasodeunaRFCurgente.

2. Clasiaión/Análisis:Esta esunadelasaiones másimportantesdel proesoyaquees dondesedebeestimarexatamenteelalanedelambio,sielambioesviable,asíomo elostequepueda suponer ylosposiblesriesgos.Ademásdependiendodeeste análisisse deidirásiseaeptaonoelambio,enasoarmativoseleasignaráunaprioridaduotra alRFC.

3. Planiaión/Pruebas:Enestepunto,onsiderandotodoelanálisisrealizadopreviamente, esdondesedebeplaniareltiempoqueserequiereparapoderhaerelambio,revisarlo, asíomolosresponsablesderealizarlo,ademássepuedenestableerfehasdevenimiento dependiendodelaprioridaddeeste.Tambiénesdondeseaordaránlaspruebasarealizar paraveriarqueelambiohasidosatisfatorio.

4. Implementaión: Una vez pasadas todaslasfasesde análisisentramos en elmomento de implementar(realizar) elambio,si enalgúnmomento delaimplementaiónsurgen ini-deniasno analizadas,porlotanto nomitigadas, sedebeontaronunPlan deretirada (roll-bak)parapoderretornaralestadoestableanterioralambioyestapetiióndeberá serre-analizada.

5. Revisión:Finalmente,elambioesprobadoyrevisadoporlosresponsablesdedihatarea, para asegurarse que es realmente lo que se esperaba y que no provoa ningún tipo de fallo enotrasfaetasen lasquesevea envuelto. Si sehayanproblemás,el originadordel ambiono estáonforme,et. sedeberá empezarel proesodesde elprinipio,en ambio siel resultadoessatisfatorioparatodaslaspartes,seierraelambioysedaelproeso pornalizado.

AlgunosdelosbeneiosdeutilizarunGestorson[7℄:

Seredue elnúmerodeinideniasyproblemáspotenialmente asoiadosatodoambio.

Seevalúanlosverdaderosostesasoiadosalambioyporlotantoesmássenillovalorar elretornoreal alainversión.

Sedesarrollanproedimientosdeambioestándarquepermitenlarápidaatualizaiónde sistemásnorítios.

Sepuederetornaraonguraionesestablesdemanerasenillayrápidaenasodequeel ambiotengaunimpatonegativoenlaestruturaTI.

AsípuesseobservaqueunERPqueimplementetambién estaherramientaserámejorvalorado porlasempresasyaquetodaempresaestásumergidaenunentornoqueambiaontinuamente porlotantotenerunproedimientoqueagilieyestandarieelproesodeambiarunelemento delaempresaserábeneiosotantoanivelinterno(saberquién,ómoyelporquédeunambio), omoexterno(auditorias).

PorlotantosehallegadoalaonlusióndequeeSengo®debeinluirunmodulodeGestión deCambiosparaasíofreermejorserviio.

(7)

ElobjetivoprinipaldelproyetoesdesarrollarunnuevomodulodenominadoChange Mana-ger(gestordeambiosoinidenias)queestaráorientadohaiaelChangeManagementdeITIL ytendráporobjetivorealizarpetiionesdeambiodeualquierelementodeunaempresa.Este modulo seinluiráenelERP eSengo®(desarrolladaíntegramenteomoapliaiónwebdentro delCloud onlaplataformaSherpaBeans),paraellosedeberán ejeutardiferentestareas:

EstudiaromofunionanlosGestoresdeCambiosbajoelestándarITIL.

Estudiarelfunionamiento deeSengo®ylaplataformaSherpaBeans6.0.

Implementaiónde unasoluiónquepermita rearyadministrarpetiionesde ambio,y queseapróximaaITIL.

Dotardeseguridaddeaesoalmóduloasíomoasusreursosatravésdelareaiónde rolesypermisos,además delaseguridadqueyaimplementaeSengo®.

Cumplir on los requerimientos de la empresa:Inluir fehas para saberuandose reali-zanlastransiionesdeestadosde lapetiión, tener estadosparapoderontrolaren todo momento enqueestadosehayaelRFC,inluirdashboards,inluirgestiónderiesgos.

1.4. Estudio de viabilidaddel proyeto

En los siguientes subapartados se expondrán los reursos neesarios para el desarrollo del proyeto.

1.4.1. Reursos Software

Para poder realizarel objetivo prinipal, implementaión módulo Gestión de Cambios, se utilizarálaherramientadedesarrolloopensoure Elipse®[8℄onjuntamenteonlaplataforma, desarrolladapor Isenia S.L, SherpaBeans. Por lo tanto se deberán utilizar diferentes onoi-mientossobreprogramaiónomoJava,HTMLoSQL.Serealizaráunabreveexpliaiónsobre algunosoneptos de eSengo®queinuyenennuestro desarrollo.Tambiénse utilizala herra-mientaDezignforDatabases,omosunombreindiaesunaherramientaparaeldiseñodebases dedatos yel modelado dedatos para múltiples tiposde basesde datosomo Orale,MySQL, IBMDB2,et.Comoyaseomentóanteriormenteenlosapítulos2y3serealizaráunabreve expliaiónsobreSherpaBeans.

Comoestasherramientassonpropiasdenuestraempresaelostees0.Aunquesiesta herra-mienta seproporionaraaunliente/empresael ostesería solamente de32euros porel ERP, yaqueSherpaBeansesopensoureyCompás®unaherramientaexlusivadeIsenia®.

1.4.2. Reursos Hardware

Se utilizará un portátil Dell Intel Core2 Duo CPU 9700 on 2.8 Ghz, una RAM de 4 Gb y un sistema operativo de 64 bits para el desarrollo. Se usan servidores independientes para tener distintos entornosdonde desarrollarlosmódulos, además desepararelservidor dondese enuentran las apliaiones del servidor enargado de almaenar la base de datos. Estos dos últimos servidores tienen las siguientes prestaiones: Intel Xeon dualore 2,13Gh on 4 gb de RAM.

(8)

En uantoareursoshumanos:

1Analista/ProgramadorJunior(tambiéndesempeñaráfunionesdeoordinador:pruebas, doumentaión,administraióndelproyeto).

1.4.4. Coste

El oste del proyeto solo supone el sueldo del analista/programado, suponiendo que ha ostadounas300-400horasrealizarlo,segúnofertasdeinfojobs unAnalista/ProgramadorJunior obraalrededordeunos15.000-18.000euros/año,porlotantosaleaunos7,5euroslahora,de media.Asípueselproyetotendríaunostede3000euros+32eurosdelalieniadeeSengo® =3032.

Después de analizar los reursos software, hardware y humanos se puede onluir que el proyetoesviable.

1.5. Estrutura de la memoria

En el primer apítulo de la memoria, Introduión, se han presentado el estado del arte, la motivaión, objetivos, y viabilidad del proyeto en uestión. Además también se explia la estruturadelamemoria.

En el segundo apítulo se explianlas tenologías utilizadas por SherpaBeans, también se explia la estrutura del proyeto, el entorno y la metodología de desarrollo, así omo unos pequeñosapuntesamododeintroduiónsobrelaplataformaSherpaBeans.

Eneltererapítulosedetallalaimplementaióndelmódulo,eldiseñoysufunionamiento, ademásdealgunosdetallesrelaionadosoneSengo®ySherpaBeans,paraasíampliarunpoo lainformaióndelsegundoapítulo.Tambiénseexponen,unoauno,lossubmódulosquesehan desarrolladoasíomoeldiagramadeestadosdelmódulogeneralylaexpliaióndeadaestado. Eneluartopuntoserepasabrevementeomoseharelizadolavalidaióndeadasubmódulo ydelmódulogeneral.

En elquintopuntoseexponenlasonlusionesdelproyetoasíomoposiblesampliaiones. Finalmente enelúltimo puntoenontramoslasrefereniasbibliográas.

(9)

Durante laetapa dediseño sehandebido de haervariosaprendizajes,mediante investiga-iónyonsulta,parapoderobtenerelmayorrendimientodelasopionesyaimplementadaspor eSengo®,asíomoutilizarlomejorposibleelgran potenialque ofreelaplataforma Sherpa-Beans6.0. Aontinuaiónseintroduenbrevementelastenologíasutilizadasporlaplataforma asíomovariospuntos atener enuenta deesta,dearaafailitar laomprensióndelmódulo quedesarrollaremos.

2.1. Tenologías utilizadas por SherpaBeans

Java EE5[9,10℄:JavaEE(JavaPlatform EnterpriseEdition) esunaplataformade pro-gramaión(partedelaplataformaJava),paradesarrollaryejeutarsoftwaredeapliaiones en ellenguaje deprogramaiónJava,onsta deunaarquitetura deN apasdistribuidas y seapoyaampliamente enomponentes desoftwaremodularesqueseejeutan sobreun servidordeapliaiones.Unodelosbeneiosdeutilizarestatenologíaesquesetienela posibilidad de empezar unproyetoonpoo oningún osteyaque laplataforma puede

ser desargada de Sun Mitosystems® de forma gratuita, y uenta on muhas

herra-mientas deódigoabierto,yaseanparaextender laplataforma osimpliar eldesarrollo. JavaEE5seentraenfailitareldesarrollomanteniendolariquezadelaplataformaJ2EE 1.4, paraonseguirloseofreen tenologíasomoJSF (JavaServerFaes)[11℄o APIsweb (AppliationProgramming Interfae)[12℄.Atualmente esunade lasplataformapunteras paraserviioswebydesarrollodeapliaionesempresariales,poresosereyóonveniente utilizarlo para desarrollarlaplataforma deIsenia®,SherpaBeans. En laatualidad en-ontramosqueyaexistelaversiónJavaEE6,asípuessehamigradolamayorpartedela funionalidaddeSherpaBeansdeJavaEE5aJavaEE6,perononosextenderemoseneste tema yaquenoinuyeenlaomprensióndenuestroproyeto.

Web2.0 [13,10℄:EsunatendeniaenelusodelatenologíaWorldWideWebydediseño webquetieneomoobjetivofailitarlareatividad,elinterambiodeinformaión,y,sobre todo,laolaboraiónentreusuarios.Todosestosoneptoshan onduidoaldesarrolloy evoluióndelasomunidadesenInternetylosserviiosdehospedajeomolossitiosderedes soiales,wikis,blogs,et.Lossites onestatenologíapermitenasususuariosinteratuar onotrosusuariosoambiarelontenidodelsitiodeformadinámia,enontrasteonsites nointerativosdondelosusuariosselimitanamirarpasivamentelainformaiónqueseles proporiona.Una de lasmáximás del Web 2.0 esque laapliaión desarrolladaonesta tenologíamejoraamedidaquelautilizanmásusuarios,osaquelahaemuyonveniente para apliaiones web en las que se prevea un aumento de usuarios de forma esalada parapoderbeneiarsedelfeedbak onlosusuarioseirmejorandolaapliaiónomódulo paulatinamente.

(10)

eldedenirlasespeiaionesabiertasdesoftwarequepermitadiseñarplataformás om-patiblesquepuedan ofreermúltiples serviios.AdemásproporionafunionalidadaJava que hae de este el entorno prinipal para la integraión y el desarrollode software, ya que OSGI denela estandarizaiónde primitivasquepermiten onstruirlas apliaiones on omponentes pequeños, reutilizables y asoiativosentre ellos,también ofree la fun-ionalidadneesaria para ambiar laomposiión de formadinámia enel dispositivode una variedad de redes, sin la neesidad de reiniiar. Para minimizar el aoplamiento y failitar laadministraión deomponentes esta tenología ofreeuna arquitetura orien-tadaalserviioquepermitequeestosomponentesseenuentrandinámiamenteentresi para poder olaborar.LaOSGI Allianehadesarrolladomuhasinterfaesde omponen-tes estándar para funiones omunes omo los servidores HTTP, onguraión, registro, seguridad,administraióndeusuarios,XML,entremuhasotras.

Wiket [10,14℄: Es unframework dedesarrollodeapliaioneswebpara laplataforma JavaEE, quefailitaenormemente eldesarrollodedihasapliaiones.Entresusventajas se debe destaar el potente depurador que tiene, así omo la senillez de ódigo para poderimplementar omponentes de granalaney reutilizables, pudiendoseresritosen Java y HTML. Otrade lasventajas a menionar es que Wiket inorpora POJO (Plain Old Java Objet) Component Model que sebasa en el onepto de que laspáginas ylos omponentesde Wiket sonobjetos Javaquesoportan enapsulaión,eventos yherenia. En uanto a seguridad tenemos que por defeto Wiket es seguro ya que las URLs no exponeninformaión ondenial y todos los path de los omponentes son relativos ala sesión,ademáslaenriptaióndelaURLpermiterearwebsonunagranseguridad.Otra araterístiainteresanteesquetodaslasapliaionesdesarrolladasenWiket trabajarán sobreunlustersinosteadiional.Ademástambiénsefailitalaesrituradeapliaiones que utilien multi-ventanas y multi-pestaña permitiendo al desarrollador reaionar de formaeiente uandoelusuarioabraunanuevaventanaopestaña.

(11)

quepermitemapearobjetospersistentesentablasrelaionales,ademásinorporaserviios de onsulta. Permite desarrollarlases persistentes onlenguajeorientado aobjetos que permite herenia, polimorsmos, oleiones, et. Las onsultas hibernate pueden ser ex-presadasen suextensiónportabledelSQL (HQL,HibernateQuery Lenguage),enSQL o riterioexpresadoen unlenguaje orientadoaobjetos.Ademásadifereniadeotras solu-ionesdepersisteniautilizarHibernateofreeventajasomo:

ˆ Produtividad: Hibernateelimina muhotrabajosuiodelosódigosrelaionados onpersisteniaypermitealdesarrolladoronentrarseenelproblemadenegoio.

ˆ Mantenibilidad: Seproporionanbuersparahaer quelarelaiónentre la repre-sentaión relaional y la implementaión del modelo del objeto sea menos rítia, otrostiposderelaiónimplianquesienunapartedelarelaiónhayambioslaotra tambiénsufriráambios.

ˆ Performania:Hibernatetepermiteapliarténiasdeoptimizaiónatodoslos ele-mentosmientrasqueuandolapersisteniaesimplementadaamanolaoptimizaión suelehaerse1por1.

ˆ VendorIndependene:Hibernateofreemásportabilidad.

2.2. SherpaBeans y el onepto MVC

LaplataformaSherpaBeans,basadoenStruts[17℄,fueonebidaparafailitareldesarrollode apliaioneswebutilizandoestatenologíaysinlaneesidaddeonoertodaslastenologíasque envuelvenStruts.Unadelasprinipalesventajasdelasapliaioneswebesqueofreenunpunto entralizadodeonguraióneinstalaión,porontra, lasapliaionesinstaladasen elsistema operativorequierenuna puesta enmarhaporparte delos téniosademás deunseguimiento porsi se produealgún inidente. En el asode la apliaión web los paquetesson instalados en unservidor únio y no setiene en uenta laspartiularidades de ada ordenadorpersonal, además también ofreen muha portabilidady poo onsumode reursosdela máquina,aln yalabounaapliaiónwebsolorequieredelusuariotenerinstaladounnavegadorompatible, osaonlaqueuentanlamayoríadesistemásoperativosdehoyendía.Parapoderdesarrollar estetipodeapliaiones,SherpaBeansutilizalastenologíasmenionadasanteriormenteenun patróndearquiteturadesoftware,muyomúneneldesarrollodeapliaionesweb,denominado MVC(Modelo-Vista-Controlador)queseparalosdatosdeunaapliaión,lainterfazdeusuario, y lalógia de negoio en tres omponentes distintos, este patrón fue desritoporprimera vez porTrygveReenskaug,untrabajadordeSmallparkenloslaboratoriosdeinvestigaióndeXerox. La implementaión original se puede enontrar en el doument Appliations Programming in Smalltalk80:HowtouseModel-View-Controller[18℄.

Lostresomponentesdelmodelosedenendelasiguientemanera:

Modelo:Representaiónespeía delainformaiónonlaqueel sistemaopera. Es im-portantedestaarquelalógiadedatosnosolofailitaelaesoaestassinoquetambién aseguralaintegridaddelosdatosypermiteladerivaióndenuevas.Lalógiaseobtienea partirdelmodelodedatosdelaapliaión.

Vista: Ofreelasherramientasneesarias paramostrar lainterfaz delaapliaión yque elusuariopueda interatuaronella.

Controlador:Seenargadelontroldeujodelaapliaión.Dependiendodelasaiones del usuarioenla vistaserealizarán lasaionesneesarias en elmodeloy seobtendrála

(12)

importantesesquefavoreeeltrabajoenequipoylaorganizaióndelproyeto.Laseparaiónde tareasentreapaspermitedesarrollarparalelamentesiempreyuandosedenanunasinterfaes que mantengan la misma estrutura. Utilizando estas interfaes se permite la integraión de diferentes tenologíasenadaapa delmodelo,detal manera quesepueden busarsoluiones optimáspara ada lógia.El usode interfaes,también es unpunto afavoryaquese permite estableer estereotipos de trabajo de tal manera que la implementaión sea independiente a lasdeniiones delas lases.Finalmente una de lasaraterístiasmásimportantes es lagran esalabilidad que tiene. Se pueden modiar lastenologías apliadas en ada apa y permite ampliarfáilmenteualquieromponente,sinquelosotrossedebanverafetadosenningúnaso. Una propiedad que demuestrala esalabilidad que proporiona elmodeloMVC esque dentro deada omponente este permiteque puedahaberotra tripletamodelo-vista-ontroladoryasí reursivamente.

Imagen2.1:ModeloVistaControlador.

Aontinuaiónanalizaremosbrevemente enquemoduloseutilizanlastenologíasde SherpaBeansantesomentadas:

(13)

Larepresentaiónlógiadel modelodedatosseharealizadomedianteHibernate yaquefailita elmapeadodeatributosentreunabasededatosrelaionaltradiionalyelmodelodeobjetosde unaapliaión.Estarelaiónseestableemedianteladeniióndelasrelaionesenelódigodela apliaión,tiene2formásdemapearlaslasesyatributos,mediantearhivosdelarativosXML omedianteanotaionesenlosbeans delasentidadesquepermitenestableer lasrelaiones,en nuestroasonosdeantaremosporlasanotaionesporsermásintuitivasynorequerirproduir herosextradedelaraiones.AdemásHibernate permitequelaonsultaymodiaióndela basededatosseamuhomásdinámiayexible.

Vista

En laapadelavista ode interiegráaesdonde,prinipalmente,entran2tenologíasque interatúanentreellasparafailitar eldesarrollo:WiketyWeb2.0.

Wiket es una tenología pionera en reaión de interfíies gráas similar a JSF y T a-pestry[19℄, la programaión de la interfaz se realiza mediante omponentes y está basado en eventos,todoestopermitequesetrabajedeformamásintuitivasobrelaapadepresentaión, deomo sequierenestruturarlaspaginasy loseventos quesedeben lanzaruandoelusuario realiza una determinada aión. Wiket además failita la reaión y reutilizaión de ompo-nentes esritostanto en Javaomo HTML de tal forma quese puede tener de formaintuitiva ualquieradelosomponentesmásomunesomobotones,listasdesplegables,et.Ademásotra delasventajasdeutilizarWiketesquelamayoríadesus omponentespueden utilizarAJAX ( Asynronous JavaSript And XML)[20℄ por lo tanto la página web puede adoptar unos di-namismosmuy interesantes.Ademástodasestasaraterístiasseombinanonlosestándares denidosporWeb2.0,queproporionanmuhaversatilidadyapaidaddemejoraaestaapa.

Controlador

Al estarbasado en Struts, SherpaBeanstiene similitudesa esteen laimplementaión del on-trolador. Struts utiliza lasaiones,los servlets[21℄ y heros de onguraión[22℄ , en ambio SherpaBeans, si esierto quetambién utilizaaiones yservlets, pero noutiliza unhero de onguraión,sevaledeuna lasejavadenominadaProessModel queatúaasimilituddeeste hero,dondesedenen losdiferentes estadosdel proesoasíomo lastransiionesentreellos, pudiendoutilizar,entreotros:estadosiniiales,devista,nales,deisión,deontrol,entreotros.

2.3. Seguridad

Comosedebedotardeseguridadalaapliaiónendossentidos:autentiaióndelosusuarios yautorizaiónparautilizardeterminadosreursos,SherpaBeansutilizalatenologíaJAAS(Java Authentiation and Authorization Servie)[23℄ respaldada por LDAP (Lightweight Diretory Aess Protool)[24℄ . JAAS es un onjunto de librerías que permite a los desarrolladores de apliaionesempresarialesolvidarsedeimplementaródigoresponsable deontrolarpermisosy aesosadiferentespáginas y/ofuniones delaapliaión.El objetivoprinipalde JAASesel desepararlastareasenlaautentiaióndel usuariopara queestospuedansergestionadosde formaindependiente,además esteseentraen unnuevomaradorparapoder identiarquien está ejeutando el ódigo y validar que se tenga aeso al mismo ,esto es denominado omo autentiaión,ylospermisosneesariospararealizaraionesonretasunavezautentiado, autorizaión [25℄.Paraelloutilizaroles, gruposypermisospudiendoombinarlosamereddel programador.

(14)

serviio de diretorio ordenado y distribuido para busar diversa informaión en un entorno de red, omo una base de datos en la que se pueden haer onsultas. Así pues JAAS se sirve de LDAP para onsultar lasrelaionesusuario-ontraseña,usuario-rol,usuario-grupo, usuario-permisos,rol-grupo,rol-permisos,et.

2.4. Estrutura del proyeto

Todoelproyetoseenuentra dentro deunpaquetellamadoporonvenióninterna: om.isenia.enterprise.hangemanager.ParadifereniarlasapasdelmodeloMVCseagrupanlas diferenteslasesendiferentespaquetesonunnombreparaidentiarlanaturalezadelos mis-mos,además existenotrasarpetasenelpaquete prinipaldonde sealmaenan arhivos,omo porejemplo:imágenes,elmodelodedatososripts deiniializaiónydestruióndelmodeloen labasededatos.Aontinuaiónselasiarántodosestoselementosdependiendoenque ompo-nentedelmodeloMVCatúan,lopodemosverenlaimagen2.2,asíomounabreveexpliaión deada unode ellos,estotambién nosservirá omopequeñaintroduiónalametodologíade desarrolloonSherpaBeans.En elpunto3.2 y3.3seentraráenmásdetallesobreSherpaBeans ilusatrandoloonporionesdeódigoparapoderexpliar partedesu funionamiento.

MVCPFC.png

Imagen2.2:Estruturadelproyeto

Elementosrelaionadoson elmodelo:

Paqueteom.isena.enterprise.hangemanager.entities:esdondeseenuentran

de-nidaslasentidadesquerepresentantodoelmodelodedatos,adaunadeellasorresponde aladeniión deuna lase,onsusatributosymétodos.

Carpeta do/datamodel/shema: esta arpeta ontiene un arhivo.dez generado on

DezignerforDatabases,quedenetodoelmodelodedatosdenuestromódulo, esdeirla entidadesexistentes ysusrelaiones.

Carpeta do/datamodel/sripts: aquí es donde se almaenan los sripts de reaión,

destruión y alteraiónde nuestro modelo dedatos en labase de datos. Los2primeros suelensergeneradosporelDezignerforDatabasesunavezhemosdenidotodoelmodelo.

Elementosrelaionadoson la vista:

Paquete om.isena.enterprise.hangemanager.riteria: aquí enontramos heros

on riteria querys denidos, son lases que extienden de la lase Java CriteriaQuery, utilizadas por Hibernate para realizaronsultas sobre la base de datos, el resultado de estasonsultassonlosdatosamostrarporlavista.

Paqueteom.isena.enterprise.hangemanager.views:estepaqueteeselmás impor-tante de los relaionados onla vista ya que es donde enontramos la gran mayoría los arhivos queinuyenonlosaspetosvisualesde laspantallas.Cada pantalla sueletener 2 tipos de arhivosrelaionados: el .java,lase de tipo view, que dene el marogeneral delavista,quetipodeestruturautilizaremosparamostrarlosdatos:enformadetablas, tab,dashboard.Ademásofreelaposibilidaddedeniraiones:oultar/mostrarelementos, ejeutaronsultasauxiliares,iniializarobjetosneesarios,...oañadiromponentesweben

(15)

puededotardemáspersonalizaiónalaspaginasmedianteesteonoidolenguaje,asíomo rearomponentesweb(wiket),quepodránserutilizadosomounobjetoenlalase.java en uestión. Todaslas pantallasde la apliaión tienenuna, o más, lase.javaasoiada, peronoesobligatorioquetengaun.html.

Paquete om.isena.enterprise.hangemanager.settings:nalmente, pero no menos

importante, enontramos laslases de tipo setting, enargadasde relaionar las lase de tipoview yriteria onlaentidadalaquehaenreferenia,asíomodedenirdiferentes opionesque afetan diretamente ala pantalla mostrada: atributos que apareenenlas tablas,proporionarltrospararealizarbúsquedasinsitu,asíomopoderdeniraiones web que pueden depender de eventos generados por el usuario: oultar ampos,ampos obligatorios, validaiones, et. Paraello se utilizan diferentes funiones internas de Sher-paBeans queañaden diferentes atributos ala lase detiposettings, amodode plantilla, quemástardeseráinterpretadaporSherpaBeansparareartodalaestruturadela pági-naen uestión, algunosatributosque puedenserañadidosson:riteria yview autilizar, atributos de laseamostrar, anhode olumnas,visibilidad deampos, omportamiento de ampoaeventosde usuario(llamado behavior),validaiones, entre otros.Esto permi-te alprogramadornotener que entrarse tanto enel aspetovisual de lapagina onlos quebraderosdeabezaqueelloonlleva.

Elementosrelaionadoson elontrolador:

Paqueteom.isena.enterprise.hangemanager:Aquíenontramosdiferenteslasede

onguraióninternaqueneesitaSherpaBeansparapodermostrarloselementosque aña-damosalmenúgeneral,asíomodeniióndeonstantesoexepiones,queserán mostra-dasenasodeerror,denuestraapliaión.

Paquete om.isena.enterprise.hangemanager.behaviors: uando sequiere denir

algúnomportamientodealgúnomponente websesuelen rearlasellamadasbehaviors (omportamientos) que ontendrán las aiones a realizar si el evento generado por el usuarioseumple.Estaslasesonutilizadasporlossettings para añadirlafunionalidad alosomponentesrequeridos,estossuelenseramposoltros.

(16)

las lase que se utilizan para redenir o añadir funionalidad a las transiiones de las páginas, así omo añadir nuevas. Enontramos por defeto, en la parte superior de las tablasonlosdatos,estastransiiones,denominadasaiones:rear,editar,eliminaryver. Lasaionesnossuelenllevaralmismoestadoiniial,pasandoporlosestadosintermedios neesarios, despuésde realizaruna deellas,además suelen referirsealosregistros quese muestranenlapáginaenformadetablas,yaseaenunatablasimple,dentrodeuntabode undashboard.Elotrotipodetransiiones,quenossuelendirigirhaiaotroestadodiferente deliniial,tambiénpuedenserredenidasoañadidasdesdeestaslase,peroporonvenión interna y poruna mejor organizaiónsolo sehará en asoque desde laslase espeia, almaenadasenelpaquetehangemanager.workow,nofueraposibledotarlasdetoda lafunionalidadrequerida.

Paqueteom.isena.enterprise.hangemanager.models:Esdondeseenuentrala

la-se onla deniión del ProessModel, esta deniión sirve para poder rear una nueva instaniadeualquierobjetoaliniiarelujodeestadosalqueestaasoiadoyasítrabajar onél.En nuestroasosolotenemos 1objeto (Petiión deambio)asípues solotenemos unProessModel.

Paquete om.isena.enterprise.hangemanager.tasks:En este paquete enontramos

lasequedenenomportamientosauxiliaresquenoseenuentranyadenidos,la diferen-iaonlosbehaviors,esquelostasks nosuelendeniromportamientosparaomponentes web,porejemplo sesuelenutilizarpara autorizarelusodeunmodulo, aión,transiión dependiendodesiseumplenlosrequisitos,opararealizaroperaionesinternasdenuestro

ujo de aiones, tales omo generar un doumento, guardar/modiar/eliminar/argar

datosenbase dedatosqueseaneesarioparaelbuen funionamientodenuestromódulo, mostrarmensajespor pantalla, et.

Paquete om.isena.enterprise.hangemanager.triggers: Aquí enontraremos lase

que denen nuevosdisparadores diferentes alosque ya tenemos por defetoy que uti-lizarán los usuariospara ejeutar aiones sobre el estadoatual otransiiones anuevos estados.

Paqueteom.isena.enterprise.hangemanager.validations:Comosu nombreindia

esdondealmaenaremoslasequedenenvalidaionessobrelosdatosintroduidosporel usuarioennuestrosformularios:amposobligatoriosy/oamposonformatoobligatorio.

Paquete om.isena.enterprise.hangemanager.valuetypes: Contiene laslases que

denendediferentestiposdedatosauxiliaresparafailitarnoslaimplementaióndenuestro módulo.Normalmenteseránlasedetipoenum.

Paquete om.isena.enterprise.hangemanager.workow: Aquí esdondese

enuen-tranlaslaseonladeniióndetodoelujoquetendránuestromódulogeneral,llamado ProessDenition, asíomo losestadosquedeberá transitarysonpartedel ujo,si tam-biéntenemosqueañadirtransiionesquenoexistanloharemosenestepaquete.Ennuestro asodeberemosdenir2ProessDenition,unoporadatipodepetiión,ademásdetodos los estadosquelos omponeny algunas transiiones,estosestados ytransiionespueden reutilizarseendiferentesProessDenition,omoesnuestroaso.

Carpeta /META-INF: En esta arpeta seenuentran heros de propiedades, de tipo

ditionary que son utilizados por una laseinterna, desarrolladaporIsenia, para poder ambiar el idioma de los menús, etiquetas, trigguers, et, del módulo. En nuestro aso tendremoselatalán,elastellanoyelinglés.

(17)

Lasherramientasutilizadassonomunesontodoslosempleadosdelaempresa,ennuestro proyetoen uestión se han utilizado las herramientas que ofreían la mejor relaión estabili-dad/failidaddeuso,apartede losservidoresqueseneesitanpara queeldesarrolladorrealie pruebas en el entorno loal (se explia más adelante), ontamos on: Elipse Plataform para Java,DezignforDatabasesyMySQL.

ElipsePlataform

ElipsePlatform ensuversiónJavaesunentornodetrabajo(IDE) paralosprogramadores Javaqueproporionaherramientasdedesarrollodeapliaiones.Ademásselepuedeninorporar pluginsdesarrolladosporlaomunidadquefailitanenormementeeltrabajo.Ennuestroasono hasidoneesariolainstalaióndeningúnpluginexternoespeioyaqueonlasherramientas menionadas anteriormente y los plugins por defeto de elipse (aso del repositorio CVS) ya podemosdesarrollarnuestraapliaión.

Dezignfor Databases

Esunaherramientadediseñoymodeladodebasesdedatosmuyintuitivaparalos desarrolla-doresqueesdegranayudaparamodelar,rearymantenernuestrabasededatos.Estesoftware utilizadiagramásdeentidad-relaiónparadiseñargráamentelabase dedatos y automátia-mentegenerarlosherosSQLdereaiónydestruióndelmodelodedatos.

MySQL

Es unsistema degestiónde bases dedatosrelaional,multihilo y multiusuario,essoftware libre,perosiunaempresaquiereinorporarloaprodutosprivativosdebenompraralaempresa una lieniaespeia.En nuestro asosololo utilizaremospara ejeutar lossriptsgenerados porelDezign,ademásdeualquiertipodemodiaiónoonsultaquedebamoshaerenlabase dedatos.

2.6. Metodología de desarrollo

Duranteeldesarrollodelmodulo,sehanhehodiferentespruebasdeadasubmóduloquelo omponeparagarantizarelfunionamiento individualdeadaunodeellos.Engeneralsesuele seguirelsiguienteproesoirular:

1. El oordinador del proyeto, usando Compás,genera los doumentos orrespondientes a los asos de uso de ada submódulo: espeiaiones a tener en uenta, aiones que se realizan,amposqueinuyen,omportamientodeseado,transiionesaotrossubmódulo o estados.

2. El desarrollador plantea y razona la soluión para umplir on los asos de uso y sus indiaiones.

3. Se reanlasdeniionesdel submódulosiguiendolasespeiaionesdelasodeuso aso-iado:rearlaentidadenbase dedatosyañadirla,rearlaslase asoiadasalsubmódulo yaseandeow,settings,views,et.Seimplementarantodaslasaionesytransiionesque tenganomoestadonalelmismoestadoenelquenosenontramos.

(18)

moduloumpleontodaslasaionesrequeridaseneluseasemediante larealizaiónde unjuegode pruebas.Este juegodepruebassepodríarearonunaherramientaquenos failitelatareaomoporejemploJunit,peroennuestroasonosserviremosdelasaiones previstas en elaso de uso para realizardihaspruebas manualmente. Además de tener quepasar otraspruebasdeperformaniayasosnoprevistosrealizadomanualmente por elmismo desarrollador.

5. Serealizantodaslaspruebasobtenidasenelpunto4,sielresultadoesóptimo,seoneta estesubmóduloonelrestoquehayanpasadoportodoslospuntos, inluidoel6.En aso ontrariosebusaelerror,sesolventayseretornaalpunto4.

6. Enestepuntoesdondesedebeprobarquetodoslossubmóduloseomunian orretamen-te,losquerequieranomuniarse,yquelaadiióndelnuevonoperjudiquelaperformania delresto,nidetodoelonjunto.Paraelloontamosonlosuseases,estostambiéndenen lainteraióndelossubmódulo.Asípues sedeberánpasartodoslosrequerimientoshasta el punto donde tengamos desarrolladoel módulo. Si los resultados son satisfatorios se pasaráadesarrollarotrosubmódulo.Enasodeerrordeberemosenontrarqueloprodue (submódulo,onexiónentresubmódulo,et.),orregirloyvolveralpunto4.

En asode quehayaun ambioen losrequerimientos, sedebe volveraempezar porel primer punto revisando todas lastareas.Cadavezque sereaunsubmódulo nuevoosemodia uno sedebenrealizartodaslaspruebasdetodoslossubmódulosparaasegurarqueelambionoha supuestoningúnproblemaparaelfunionamientodelmóduloyestesemantiene estable

3. Implementaión y despliegue

A ontinuaiónseomentarándetallesde laimplementaióndelmóduloademás dealgunos detalles relaionados oneSengo®. Lo dividiremos en 4 apartados:el modelo de datos, breve expliaióndeeSengo®,lossubmódulos,unosfunionanonjuntamente onelGestorde Cam-biosyotrossonutilizadosparagenerardatosparaelgestoruotrosmódulosyelmóduloGestor deCambios,quetienesusestadosytransiionesdeunosaotros,asíomosusaionesinternas.

3.1. Modelo de datos

Elmodelodedatoseselpuntodepartidadelmódulo.Sedebediseñarunmodeloonsistente yeazquepermitaalmaenarlainformaióndelmódulo.Enestepuntosediferenian2puntos: eldiseñodelabasededatosyomosehaintegradoestediseñoutilizandoHibernate.

3.1.1. Diseño

En laimagen3.1sepuedevereldiseñodel modelodedatos.A ontinuaiónsedetallanlas entidadesasíomo unabreveexpliaióndesuutilidad.

(19)

CHN_ChangeRequestTaskDenition:Esta es una entidad deonguraión interna quesirveparaalmaenarlostiposdepetiióndeambioquetenemosasíomoasoiarlosa unaidparapodertenerujosindependientesporadatipo.Ennuestroasosolotendremos 2tipos,softwareyhardware

CHN_Appliation: Almaena los datos orrespondientes a la apliaión a la ual va

ligada una petiión de ambio de tipo software, en ella enontramos atributos omo el nombreyelódigodelaapliaión.

CHN_Module: Enargada de ontener losdatos orrespondiente onlos módulos que

puedenomponerunaapliaión,susatributosson,omoenelasodelaapliaión,nombre yódigo.

CHN_Appliation_SHB_CHN_Module:Tablaintermedia,denidainternamente,

queseenargadeguardarlasrelaionesentreapliaionesymódulos.Unaapliaiónpuede tener másdeunmódulo,perolosmódulossonúnios.

CHN_UseCase:EntidadquealmaenarálosdoumentosonoidosomoUseCase,

ade-mástambiénontienelaIDdelaapliaiónalaquevaasoiado.Tambiénseríaútil para almaenarualquiertipodedoumentoquequeramosasoiaraunaapliaiónenonreto, peronoesnuestroaso.

CHN_ChangeRequestAfetedUseCase:Tablaintermedia,denidainternamente,que

ontiene las relaiones entre las petiiones de ambio y los UseCase, dependiendo de la apliaiónqueafeteelambioestatendráunosUseCaseasoiadosuotros.

CHN_ChangeOrigin:Contienelosdatosorrespondientealosoriginadoresdelambio, yapueden serinternos (mismo personal dela empresa enuestión) oexternos(lientes), omoatributostieneelódigo,elnombreysielregistroperteneeaunliente ono.

ORG_Risks:Enargadadealmaenarinformaiónsobrelosriesgosomoporejemplo:el tipos,losdiferentes niveles deimpato,omentarios sobrelosniveles de impato,

(20)

omen-riesgosquepuedenproduirlosambiosrequeridossiseaplian,heredadeORG_Risk.Ya pueden serriesgosnuevosderivadosdelapetiión oyaalmaenadosenlabasededatos.

CHN_HardwareItem: Clasequehereda deunalaseinternadenominadaItem, enar-gadade almaenarinformaiónsobre loselementoshardwarequetienenrelaiónonuna petiióndeambiodetipohardware,entreotrosalgunosdesusatributosson:tipodeitem, numerodeserie,antidad...

CHN_ChangeRequest:Contienetodalainformaiónrelaionadaalapetiiónde am-bio omoelestadoen elqueseenuentra,eloriginador, omentarios,eltipodepetiión, et.

CHN_CongurationChangeRequest:HeredadelalaseCHN_ChangeRequest,a

di-ferenia deesta tiene amposespeíos para almaenar informaiónde una petiión de tipohardware,yaqueuentaon unobjetodetipoCHN_HardwareItementreellos.

3.1.2. Integraión

LaintegraióndelmodelodedatosonnuestromódulosellevaaabomedianteHibernate. No se hará una expliaión extensa ya que estamos hablando de onveniones internas de la empresa,perosiunbreveresumendealgunospuntosatenerenuenta, porejemplo:

Poradaentidad enlabasededatosexistirá unalase,exepto enelasoque laentidad debase dedatosdeuna entidadauxiliarrelaionalde2entidadesdiferentes,eneste aso sedeniráunatributoenunadelas2lases,normalmenteenlaquetiene máspeso,para posteriormentemapearloonanotaionespropiasde hibernatey asítener lareferenia a esa tablaintermediadesdelalasequedebautilizarsusregistros.Segúnnosdita Hiber-nate, adalasetendrá susatributosmiembrosomoprivados yonsusorrespondientes funiones deaeso(getters ysetters).

MappingsdeHibernate.Ennuestroasomapearemoslalasemedianteanotaionesenla mismalaseparaquehibernatesepaaquetablaorresponde,asímismodeberemosutilizar diferentes anotaiones deHibernate para mapearlos atributos,dependiendo del atributo seráneesario inorporarmásde unaanotaión,porejemplo paradenirelformatoenel queseguardarálainformaión.

3.2. Breve introduión a elementos de eSengo®

Enesteapartadoveremosunapequeñapartedelafunionalidadquepuedellegaraofreerel ERP.Nosentraremosenexpliar,onayudadeimágenes,algunasdelasaionesyelementos

que ya inorpora eSengo® y que inuyen en nuestros submódulos y módulos, así omo su

(21)

1. El ampoyel botón de busar:realizauna búsqueda en latabla dedatos porlaadena de arateres que seesriba tanto en el ampoomo en los ltrosque estén asoiadosa latabla enesemomento, ennuestroasoesosltrosseríanCódigo yNombre.Cualquiera de estos elementos se puede dejar en blano al realizaruna búsqueda ano ser que sean requeridos,eneseasotendríanotrooloromostraríanunmensaje.

2. DesplegableFiltros:Comopodemosverenlaimagen3.3eldesplegableonstade4opiones, laopiónseleionadapordefetoesFiltros, quenosmuestraenimadelatabladedatos losltrosquehayamosseleionadomediantelaopióndeonguraiónquetiene eliono dellaveinglesa.LaopiónDatos abreunaventanaemergentequepermiteseleionarque olumnasqueremosqueaparezan,estasdebenserdenidaspreviamenteenlosherosde settings,tambiénpermiteapliarotrasopionessobrelasolumnas,omoporejemploque tipode ordentendrán losdatos que ontienen.La opión másabajo,Vista, nos permite agregaralaparteinferiordelatablaunaspequeñasestadístias sobrelasolumnasdela tabla, por ejemplo ualeselmáximooantidad delas. Laopiónsuperior, Básio,nos permiteoultartodoslosltrosyhaerlabúsquedasoloonelampoyelbotóndebusar (1).

3. BotónPor Defeto:Permiteguardarenbasededatoslaonguraiónreadaapartirdel desplegableFiltros,ademásdepoderambiarlaatualporotrapreviamentealmaenada.

Imagen3.2:PantalladelsubmóduloApliaión

(22)

1. En esteamposeleionamoselnúmerodelasquequeremosmostrarenlatablayonel botónontiguorefresamoslatabla.

2. Esta aión nos permite exportarel ontenidode la tabla auna hoja de álulo,PDF o

heroXML.

3. Nospermiteañadiroquitarlasolumnasquesehayandenidoomoseleionablesenla lasedetiposettings orrespondientealatabla.

Imagen3.4:Barradeaionesdeunatabla

Caraterístias de los usuarios, roles y permisosen eSengo®:

Para gestionar los roles, usuarios y los permisos de aeso a los módulos y opiones se utilizaráelusuarioAdministrador,onguradoporIseniaaladquirireSengo®,el Admi-nistrador,tambiénpuedeproporionarsusmismospermisosaualquierusuario.

ElAdministrador(olosusuariosonsuspermisos)seraelenargadoderear/eliminarlos rolesylosusuarios.

Un usuariopuedetener másdeunrol,yunrolpuedeserasignadoamásdeunusuario.

Losrolessuelentenerpermisosdiferentes alosdelosusuariosqueontiene.

Losrolespueden serutilizadosporelprogramadoparadaroquitarvisibilidadaualquier omponentedelódigo,aligualquelospermisos.

Los permisos deben serreados desde el ódigopara que eSengo®pueda mostrarlosal Administrador, porlo tanto el programadoresresponsable de agregarlos permisospara todoslosomponentesqueloneesiten.Enlaimagen3.5Semuestralaporióndeódigo neesariaparadenirlospermisos:

(23)

Suonstrutorrequierelaid orrespondiente alsubmódulo/modulo/entidad/objeto alaquese lequierehaer referenia, asíomo lasaionesque inluirá elpermiso.En nuestro asoserán todoaionesbásias(ver,rear,eliminar,editar),deahíqueutiliemoslaonstantedelobjeto Ation,Ation.CRUD_ACTIONS.Finalmente seañade elnombreporelquehemosdenidoel permisoenunArraydetipoFeature,esteArrayseráutilizadoporSherpaBeansparamostrarnos lospermisospor lainterfazgráaasíomodedarlesfunionalidad.

3.3. Submódulos

Estos suelensersubmódulosauxiliares queproporionarán datosqueelmódulogeneral ne-esita para poder tener la máxima informaión, la mayoría de ellos son independientes entre si. Alserindependientes delgeneralpodránserutilizados porotrosmódulos.En lassiguientes seionessedetalla sufunionalidad asíomo unamuestra de omoson suspantallas, además algunosdeellosnosserviránparahaerunapequeñaintroduiónalaplataformaSherpaBeans 6.0

3.3.1. Appliation y Module

Imagen3.6:Consultadeapliaiones

EnlaImagen3.6seobservalapantallaprinipaldeestesubmóduloenellasepuedeveruna listadelasapliaionessegúnelriteriodeltrado.Estos riteriossonlossiguientes:

Código: Busa según elódigo que orresponde ala apliaión, no hae falta que sea el ódigoentero,sepueden haerbúsquedaspariales.

Nombre:Igualqueelódigo.

También enontramos las aiones de rear, ver, editar y borrar, normalmente estas opiones atuarán de la misma forma en todas las tablas, lo únio que ambiara serán las pantallas asoiadasaadaaión.Lasaionesdeeliminaryeditarpuedenapliarsea1ovariosregistros mediantelaseleiónmúltiple deasillas:

Crearunnuevoregistro:Comopodemosverenlaimagen3.7alpulsarenlaaiónderear senosabreestepopup,detipodashboard.Unadelasdifereniasentreundashboard yuna view es que losdashboard son muhomás ongurables, porejemplo, puedes ambiarlos de tamaño, esonder/mostrartablas y aiones,et. En ambio lastablas son jas y sin ningúntipodepersonalizaión,apartedelasaionesomentadasquenosofreeeSengo®. Podemosobservarque uenta on2amposobligatoriosque semaranen oloramarillo para identiarlos omo tales, además en la parte dereha observamos la tabla Módulo, estaesotradelasaraterístiasdelosdashboards, poderañadirtablasdeunsubmódulo BenlosestadosdeunsubmóduloA, enesteasonossirveparapoderrearlosmódulos quetienenrelaiónonlaapliaiónquereemos.

(24)

deldashboard iniial.Alpulsarelbotóndeañadirestenosabreotropopuponlosampos, CódigoyNombre,arellenarquetambiénseránobligatorios,unaveznalizadoseañadeel nuevomóduloalaapliaión.Cadaladelatablamódulouentaonlasopiones,deeditar yborrar(laruzroja).Editar nosabreunpopupigualquerear,onlosdatosrellenados, donde podremos editar los datos del módulo. La aión de borrar nos abre otro popup donde senospide onrmaiónpara borrarelelementodeseado. Unaapliaiónpuede, o no,tenermódulos,asípuessepuedenañadirenelmomentodereaiónomástardeonla aióndeediión,porlotantolarelaiónentrelaapliaiónylosmódulosnoseguardará hasta que no le demos al botón de Crear. Cuando terminamos las aiones volvemos a la pantalla iniial on la tabla de datos, esto suederá on la mayoría de submódulos y aiones.

Imagen3.7:Submóduloapliaión,estadorear.

Verunregistro:Al utilizarlaaiónVer,seabreunpopuponlainformaióndelregistro seleionado, omo podemos observaren la imagen3.8. Esta informaión no eseditable, perosiutilizamoslaaióndelbotónEditar nosllevaaunestadonuevodondepodremos editar el registro, esta aión la enontraremos pordefeto en todos los estados de este tipo.

Imagen3.8:Submóduloapliaión,estadover.

Editarunregistro:CuandoutilizamoslaaióndeEditar nosapareeunpopup muy simi-laralde laaiónrear,salvoqueeneste asolosamposestán rellenadosonlosdatos queorrespondenalregistroquequeramoseditar,tantoamposdetextoomolos módu-losinluidos.Podemosmodiarlainformaiónde losamposasíomoagregar/eliminar módulos.Sisonvarioslosregistrosaeditar, unavezeditemos elprimeronosapareerála misma ventana peroonlosdatos delsegundoasísuesivamentehasta haberlos editados todos.Sienunodeellosanelamoslaediiónlosambiosseapliaránatodoslosregistros modiadosanteriores.

Eliminarun registro:Utilizando laaióneliminar nosapareeráunpopup omo eldela imagen 3.9, si seleionamos múltiples entradas el popup sería omo la imagen 3.10. Al onrmarlaaiónseelimina/nla/sentrada/sdelabasededatos.

(25)

Pararealizarestemódulosehandebidoutilizar,lasesdetipoowysettings.Aontinuaión pondremosalgunosejemplosparapoderexpliarmejoromosonestetipodelasesyalgunade susaraterístias:

Ejemplo lasetipo ow: En laimagen 3.11vemoselódigodel ow del submódulo Ap-pliation. La lase AppliationFlow extiende de ExtendedCrudFlow esta nosproporiona en nuestra tablalasaiones derear,ver,eliminar,editarpordefetoque tieneel sistema. Laslineas24-27nossirvenparaindiarquetodoslosestados(rear,editar,ver,eliminar) se abrirán en popup. Si queremos que uando transitemos entre estos estados se realie algunaaiónespeia,podemosañadirunanuevatareaalatransiiónentreestados,en nuestro asovemosen lalinea 28 omo añadimosuna tarea de salida,addExitTask, ala onrmaióndelareaióndeunregistro,getConrmCreateTransition(),queseejeutará laprimerade todas, addExitTask(0,... , yaque algunastransiionesyatienentareas por defetoypuedequenosinteresequelanuestraestéenunaposiióndeterminada.Nuestra tarea, new Task(){..., seenargarádeguardar larelaiónde todoslos módulos añadidos alaapliaión.ParaelloutilizamoslalaseEntityManager quenospermitealmaenarde formatemporallasrelaiones,silashay,alaesperadequeunavezaabadalatransiión seguardenlosdatos en basede datos. También podemos observarquealatransiión de anelar del estado rear se le ha añadido otra tarea de salida, esta sirve para eliminar losmódulosañadidosyqueestosnosereenen basededatos,yaquesinolohiiéramos podríamosenontrarnosquealanelar lareaiónde unaapliaiónsereasenregistros fantasma deestosmódulos, enbase dedatos,queno podrían serutilizados nunayaque notendríanrelaiónonningunaapliaión.

(26)
(27)

settingsquehaerefereniaalsubmóduloAppliation.Comosehaomentado anteriormen-teestetipodelasesnosproporionanobjetosonmuhosmétodospordefetoparapoder ongurarlaspantallasdenuestrossubmódulosydelmódulogeneral.Losobjetosy méto-dospor defetovienenheredados delalaseISettingsInitializer.Como podemos observar normalmenteestruturamoslossettingspordiferentesapartadosparafailitarsu ompren-sión, iremos omentándolos brevemente uno auno, asíomo losmétodos que sedenen enellos.LaprimeralineaquenosllamalaateniónesladeAuthorization Settings,onel objetoAuthorizationSettingspodemosongurarvariosaspetossobrepermisosytiposde autorizaión,peroennuestroasosololoutilizaremosparadarleunaidalsubmódulo,todos lossubmódulosymódulosdebentenerunaidensuherodesettingsparapoderser iden-tiadosyrelaionadosporSherpaBeans.Lasiguienteseión,TabSettings,haereferenia alasopionesparalaspestañasdenuestravistaqueutilizaremos paramostrartablas,se podríanutilizarotrasorganizaionesdiferentesalaspestañas,peroennuestroasosiempre utilizaremos esteformato, on elmétodosetTabs(<tabs>) denimosuantostabs (pesta-ñas)tendremosennuestra vista,omopodemosversolotendremos1onlosamposque denamosenelherodesettings(deahílaonstanteMASTER_FIELDS).Enla siguien-te linea enontramoselmétodosetContent(<ontent>,<tab>)nosservirá paraindiarle quelasedevistatendráestetabyapuedeserunaview,otrotab oundashboardomoenel ejemplo.Seguidamentevienelaonguraióndelosltros(FilterSettings)omopodemos observarutilizamoselobjetoFilterSettings paraañadirlosltrosqueapareeránen panta-llapordefetoonelmétodosetDefaults(<properties>).Laspropertiessonlosatributosde lasdiferentesentidadesdenidas.TambiénutilizamoselmétodosetColumns(<int>) para denirenuantasolumnassedistribuiránlosltros,ennuestroaso,sinolautilizamos, tendríamoslos2ltrosunodebajodelotro,onesteobjetotambiénpodríamosdenirque ltros podrán ser añadidosdesde lasopiones de Filters ya omentada en el punto 3.2. El siguiente punto atener en uenta son los datos que apareeránen la tabla, para ello haremos uso del objeto DataSettings, onla funión setDefaults(<properties>) podemos indiar que olumnas queremos que aparezan, también podríamos denirque olumnas podránserañadidasdesdelaopiónAñadir olumnas,tambiénomentadaenelpunto3.2. Seguidamentepasaremosadenirlosamposqueapareeránenelformulariodereaión onelobjetoFormSettings ysu métodosetFields(<properties>),onesteobjetotambién podremosdenirlaposiióndelosmismos,omoonlosltros,entreotrasopiones.Una veztenemos denidoslosamposqueapareeránpasamosaeditar laspropiedadesde es-tos, lo haremos on el objeto FieldSettings que onsta de muhos métodos por ejemplo: añadirbehaviors alosampos,haerlosvisiblesuoultarlos,editables ono,et. En nues-troasoutilizaremoslafuniónsetRequired(<properties>), paradenirqueamposserán obligatorios.Finalmente tenemos elobjeto ViewSettings,quenosservirá paradenirque omponentetendremosennuestravista,enelejemploestamosañadiendolafunionalidad de un tab a nuestra vista de rear, esto normalmente se hae uando hemos denido el ontenidodelalgúntab onundashboard,yaquesinosehiieranopodríamosaabarde verorretamentetodosloselementosquehayamosañadidoanuestrodashboard.

(28)
(29)

Imagen3.13:PantallaprinipaldelsubmóduloChangeOrigin

Enlaimagen3.13vemoselestadoiniialdelsubmóduloChangeOrigin (origendel ambio), vemosunatablaonlosregistrosorrespondientesalosoriginadoresdelambiosegúnlos riteriosdelosltros,estosltrosson:

Código:Busasegúnelódigoqueorrespondealregistro,nohaefaltaqueseaelódigo entero,sepueden haerbúsquedaspariales.

Nombre:Igualqueelódigo.

Provienedeunliente?:Enesteasonosenontramosonunhekbox quesoloadmite2 opiones, igualque elatributo que le orrespondeen laentidad, este atributo esde tipo boleano.SherpaBeans asignapor defeto el omponente hekbox aeste tipode ampos, siquisiéramosotroomponentewebenelampo,deberíamosambiarloutilizandolalase de settings asoiada, más adelante se expone un pequeño ejemplo de omo añadir un

omponenteaunampo.

Las aiones son análogas al submódulo anterior ya que este esta onstruido on los mismos fundamentos:

Crear unnuevoregistro:Como podemos ver enla imagen3.14 alpulsar en la aiónde rear se nos abre este popup, de tipo dashboard. Este estado tiene 3ampos,2 de texto obligatorios, Código y Nombre, y uno de hekbox, Proviene de un liente?, este último sirvepara identiar si eloriginador esunliente externo ounempleadode la empresa. Cuando terminamos lasaiones volvemosa lapantalla iniial, guardando el registro en memoria.

(30)

seleionado,onlasmismásaraterístiasqueenelsubmóduloanterior,omo podemos observarenlaimagen3.15.

Imagen3.15:SubmóduloChangeOrigin,estadover.

Editar yeliminar unregistro:Análogoalas aiones delsubmódulo desritoen elpunto 3.3.1.

3.3.3. UseCase

Imagen3.16:SubmóduloUseCase,estadoiniial.

Enlaimagen3.16vemoselestadoiniialdelsubmóduloUseCase(Casosdeuso),vemosuna tablaonlosregistrosorrespondientesalosUseCaseregistradossegúnlosriteriosdelos ltros,estosltrosson:

Nombre:Busasegúnelnombrequeorrespondealregistro,nohaefaltaqueseaelnombre entero,sepueden haerbúsquedaspariales.

Desripión:Igualqueelnombre,puede busarualquierpalabraofrasequeaparezaen ladesripión,semostraranlosregistrosqueontenganesapalabraofraseensuatributo desripión.

Apliaión:En esteasonosenontramos onundesplegable queadmitetantas opiones omo apliaioneshayamos reado, esto se ongura on el arhivode settings asoiado al módulo y SherpaBeans te reala relaiónentre el ombo ylos datos quehayaen ba-se de datos. Como podemos ver en la imagen 3.17, se le debe añadir un omponente al ampoquequeramosquetengaeseformatoutilizandoelobjetoFieldSettings ysumétodo setComponent(<omponent>,<properties>).Ennuestroasoañadimoselomponente des-plegable (ombo)alobjeto-atributoappliation, delalaseUseCase, detipoAppliation.

(31)

queremos que no seaasí deberíamos sobresribir el método, desde losmismos settings, y onunondiional retornarelomponente quequeramosque tengaenadaestado(edit, view, reate,et...).

Imagen3.17:PorióndeódigodelalaseUseCaseSettings.java.

Lasaionesbásiassonlasmismásquelossubmódulosanteriores:

Crear unnuevoregistro:Como podemos ver enla imagen3.18 alpulsar en la aiónde rear senosabre este popup, detipodashboard. Este estadotiene 3amposobligatorios, 2detexto,NombreyDesripión,queomopodemosobservartienentamañosdiferentes. Esto se debe a que en la deniión de la entidad se les ha añadido una longitud máxi-ma, mediante unaanotaión,esto sehaeontodoslosamposde tipoString,vemosun ejemplo enlaimagen3.19.Mientrasmáslongitudmáximamáslineastendráelampode texto,de todosmodostambién sepuedemodiarelnúmerodelineasdel ampoonlos settings asoiadosalsubmódulo.El3erampoeseldeApliaión,omosehaomentado previamenteesdetipodesplegable ytendráomo opionestodaslasapliaionesreadas onel submódulo Appliation. Finalmente nosllamalaateniónque hay unapestañade nombreAdjuntos/Doumentos,omo sehaomentadopreviamenteenundashboard tam-biénsepuedenañadirpestañasparamostrarlosomponentesquesedeseen,aontinuaión hablaremossobre estapestañaymostraremossuontenido.Cuandoterminamosderear elregistrovolvemosalapantallainiial,guardandoelregistroenmemoria.

Imagen3.18:SubmóduloUseCase,estadorear.

(32)

muestra el siguiente ontenidoque vemosen la imagen3.20. Esta pestaña esotra delas funionalidades pordefetoquenosofreeeSengo®,peropara utilizarladebemosañadir la laseorrespondiente en lossettings, además desobresribir oañadir losmétodosque neesitemos. Lo primero que nos llama la atenión es el árbol de arpetas de más a la izquierda,esteárbolestotalmente editable,partiendosiempredelaraízpodemosrearel árboldediretoriosquenosplazapara almaenardeformaordenadanuestros doumen-tos. Si noreamosninguna arpetaelsistema nonosdejará rearningúndoumento. La úniaopiónquenohasalidohastaahoraesladeArrastrar,sirveparapoderarrastrarun doumentoreadoalaarpetaquedeseemos.Laaiónderearnosmostrarálapantalla, pordefeto,quenosmuestralaimagen3.21.Podríamoseditarlamediantelossettings aso-iadosalalase,peroennuestroasonoseráneesarioyaquelosamposquemuestrapor defetoyanossirven.Destaamos:DoumentoFuente,queesparaadjuntareldoumento quequeramosañadiralsistema,porahorasoloaeptaPDFs,peroenunfuturoseañadirá unonvertidorparapoderaeptarvariosformatosmás.ElampoAutorqueonstadeun omponentellamadoLookupField, siempreseutilizaráuandounodelosampostengaun atributoqueseaunobjetodeunalaseylatablaasoiadaalsubmóduloalqueorresponde lalasetenganumerososregistros,esunbusadorquenospermitetrasladarnosalatabla queorrespondealobjeto asoiadoalatributo yseleionarelregistroque nosonvenga. Losasterisosquevemosenlosionos(lipylupa)sonpara indiarnosqueese ampoes obligatorio.Si pulsamoselbotóndeCrear,enlaparte superior izquierda,sevalidaráque sehayanrellenadolosamposobligatoriosdelapestañaDetalles.

Imagen3.20:PestañaAdjuntos/DoumentosdelestadoreardelsubmóduloUseCase.

(33)

tro seleionado, on las mismás araterístias que en los submódulos anteriores, omo podemos observar en laimagen 3.22.La diferenia aquí esque si vamos ala pestaña de Adjuntos/Doumentos, veremos una tabla on los doumentos asoiados aeste registro, pero si seleionamos una de las arpetas del árbol de diretorios podremos añadir más doumentos almismo,pero seguiremos sin poder editar el restode atributos, esto esasí poronvenióninterna.

Imagen3.22:SubmóduloUseCase,estadover.

Editar y eliminar un registro:Análogo alas aiones del submódulo desrito en el pun-to 3.3.1. Cuando eliminamos un registro también eliminamos los doumentos que tenga asoiados.

3.3.4. Risk

Imagen3.23:SubmóduloRisk,estadoiniial.

Enlaimagen3.23tenemoselestadoiniial delsubmódulo Risk (RiesgooGestordeRiesgos), vemosunatablaonlosregistrosorrespondientesalosriesgosregistrados,siempresegúnlos riteriosdelosltros,estosltrosson,denidos porsettings yaqueenesteasosique

ontamosonlaopióndeañadirmásltros,ademáslos3ltrosqueapareenpordefetoson detipodesplegable:

Tipo:Busasegúneltipoderiesgoqueseleionemosenelltro,tenemos4tipos:Ténio, Funional,ConformidadyContinuidaddeNegoio.

Severidad:Laseveridadnossirveparasabersiunriesgodebeserabordadoinmediatamente (nosepuedetolerar)oporelontrarionoafetademásiadoeneldesarrollodelasaiones alasqueestéasoiadoelriesgo.Tenemos4niveles deseveridad:Emergenia,Alta,Media yBaja.

Impato:Elimpatonossirveparadeterminareláreadeimpatodelriesgo.Poronvenio interno tenemos 4 niveles, pero pueden ser ampliables en un futuro dependiendo de las

(34)

Crear unnuevoregistro:Como podemos ver enla imagen3.24 alpulsar en la aiónde rearsenosabreestepopup,detipodashboard.Esteestadotiene4amposdetexto,Título, Comentarios,MitigaiónyDesripión,2deellossonobligatorios(TítuloyComentarios). Tambiéntiene5amposdetipodesplegable:Tipo,Severidad,Impato,EstadoyProyeto. ElampodeEstadonosindiaenquepuntoestáelriesgo:Nuevo,En ProesooCerrado. El ampo Proyeto nos permite asoiar este riesgo a alguno de los proyetos abiertos, para poderlos tener en uenta al analizar el proyeto y organizar sus tareas, así omo paradarpresupuestosaloslientesyestimar lashorasqueostarárealizarlo.Finalmente tenemos2amposmásqueaunnohabíanapareido,losamposdetipofeha,SherpaBeans añadeautomátiamenteelomponentedefehaalosatributosquesondenidosomotipo Date. Se puede introduir lafehamanualmente,pero si pulsamoselbotón senosabrirá un alendario, se nos muestra un ejemplo en la imagen 3.25, donde podremos navegar hastaenontrarlafehaquequeramosintroduir.Esteomponentetambiénuentaonun desplegableparapoderseleionarfehasonretas,enlaimagenvemosquetipostenemos. Cuandoterminamosderearelregistrovolvemosalapantallainiial,guardandoelregistro enmemoria.

(35)

Verun registro:Al utilizarla aiónVer, seabre unpopup onlainformaión del regis-tro seleionado, on las mismás araterístias que en los submódulos anteriores, omo podemosobservarenlaimagen3.26.

Imagen3.26:SubmóduloRisk,estadover.

Editar yeliminar unregistro:Análogoalas aiones delsubmódulo desritoen elpunto 3.3.1.

3.4. Módulo ChangeRequest

Este módulonosserviráparapoderrealizarlaspetiionesdeambio,onsultarlas,editarlas, ademásdequeestasdeberánpasarportodounaseriedeestadosytransiioneshastaquelleguen alestadonal.Primeronosentraremosenloselementosbásiosdetodomódulo,losestadosde rear,ver,editar,eliminar...Seguidamenteexpliaremoseldiagramadeujoquedebeseguiruna petiión deambio, este ujoessimilar para los2tiposdepetiionesque tenemos, softwarey hardware.Lasdifereniaslasenontraremosenlosdatosmostradosenlosdiferentesestados,los datosquesetenganquerellenar. Detodosmodoselmóduloesta pensado paraquesienalgún momentoalgunodelos2ujosdebesermodiadosepodráhaerdemaneraindependiente sin queafetealotro,inlusosi seañadieran másujosdetiposde ambio,estonoafetaría alos yadenidos.

(36)

Imagen3.27:Tabladepetiionesdeambio.

Semostraranlosregistrosdeauerdoonlosriteriosdelosltros,pordefetotenemos:

CódigodePetiión:Busasegúnelódigoúnioquesegeneraalrearunanuevapetiión.

Estado: Es undesplegable que ontiene todoslos estadosposibles deuna petiión, ltra porelestadoqueleindiquemos.

Tipo:Otrodesplegable,enestaoasiónltraporeltipodepetiión,softwareohardware.

Prioridad: Este ampo que está ompuesto de varios hekbox, se pueden seleionar los quesepreisen,nospermiteltrarporlaprioridadqueselehayaasignadoalapetiión, esteatributo yatieneelomponentepordefeto,peropararearlosolohayqueañadirel

omponenteChekBoxField alampoenuestión.

Si observamos latablahay2olumnasquenosllaman laatenión, Estadoy Prioridad,yaque no tienen texto, si no imágenes. Esta substituión se ha realizado mediante onguraión de settings, sehautilizadoel objeto TableSettings paraeditar laspropiedadesde latabla, y sele haañadidoalatablauna funionalidaddeelda,paraquesubstituyalosvaloresporimágenes, enlaimagen3.28observamoslalineadeódigoparaañadirestafunionalidadalatabla.

Imagen3.28:LineadeódigodelalaseChangeRequestSettings.

Esta funionalidad se ha programado en la lase ChangeRequestCellFatory, donde se ha indiadoqueolumna serálaafetadayque imágenesdebeutilizarparasubstituir losvalores, normalmenteestetipodeomponentedebeutilizarseonatributosdetipoenumyaquesedebe indiarenlalaselarelaiónentre valoreseimágenes,porlotanto siseutilizaranatributosde tiposdedatosdiferentespodríamosenontraronvaloressinimágenesasoiadas,yaquequizás elnúmerodevaloresnodejaríannunadereer.Lasimágenessehandebidoañadirfísiamente alworkspae,noesneesarioqueesténenelmismopakage,nisiquieraenelmismoplugin,ya quelalaseChangeRequestCellFatory extiendedeAtivityCellFatory quetienemétodospara aeder a las rutas de las imágenes, así omo realizar lasubstituión de valor por imagen.Si dejamoselpunteroenimadelaimagennosapareeunadesripión,estotambién seongura enlalaseChangeRequestCellFatory onlosmétodosquehereda.

(37)

ionesqueyahemosvistoenlossubmódulos,aexepióndelaaióndeeditarqueessubstituida porelsímboloquesemuestraalladodelCódigodePetiiónenlaslasdelatabla,enlaimagen 3.29seobservamejorelsímbolo.Esteseránuestroeditarahora,sedenominaWorkWith,yaque laspetiionessonatividadesyadifereniadelossubmódulos,sepodríadeirquesuestadode reaión estodounujo queusatransiiones paratransitar deunestado aotro,esto permite muhasmás aiones además de lautilizaión de roles, también tienenun ProessModel y un ujodetrabajo(WorkFlow)asoiado.Porlotantoestesímbolonospermitiráentrarenelestado atualenelqueseenuentrelapetiiónperosinpodereditarlosatributosrellenadosenestados anteriores,nivolveraestosestados,anoserqueexistaalgunatransiiónespeiaparaello.

Crear una nueva petiión: Si pulsamos el botón de rear nos aparee el submenú de la imagen3.29parapoderseleionarquetipodepetiiónquequeremosrear:

Imagen3.29:Submenúbotónrear,delmóduloChangeRequest.

Software:Siseleionamoseltiposoftwareapareeunpopupomoeldelaimagen3.30. En-ontramos3ampos detextoobligatorios,Nombre,DesripióndelambioyComentario delorigendelambio.Ademástambiéntenemos3amposdetipodesplegableobligatorios, Apliaión,MóduloyOrigen delambio. Losamposde ApliaiónyMóduloestán rela-ionadosigualquelarelaiónqueexisteentreellos enbasede datos,esdeirqueuando seleionamosunaapliaiónenel1erampo,automátiamentesenosarganlosmódulos queestén asoiadosaestaapliaiónenel segundodesplegable, siintentamosseleionar unelementoeneldesplegabledeMódulosinantesseleionarunaapliaión,el desplega-bledeMódulosaldrávaío.AdemástambiénontamosonunampodetipoLookupField, Proyeto. También nosperatamosdeque hay unnuevobotónllamadoCrear/Siguiente, este se utiliza para poder rearvarios registros del mismo tipo sin tener que salir de la pantalladereaión.

(38)

ˆ Hardware:Si seleionamoseltipohardwareapareeunpopup omoeldelaimagen 3.31.Enontramos3amposdetextoobligatorios,Nombre,Desripióndelambioy Comentariodelorigendelambio.Ademástambiéntenemos1ampodetipo desple-gableobligatorios,Origendelambio.AdemástenemosunampodetipoLookupField obligatorio,eselArtíulo,representaraelelementodehardwaredelaempresaquese querrámodiar,yapuedeserunapantalladeordenador,unamesadeesritorio,et.

Imagen3.31:Crearunapetiióndetipohardware,delmóduloChangeRequest.

Verunapetiión:Dependiendoenelestadoqueseenuentreveremosmásomenosampos, todosellosnoeditables.

Borrarunapetiión:Análogoalaaióndeborrardelossubmódulosexpliados.Perosolo losrolesespeíospodránhaerlo.

(39)

Reordemosquesoloel rolespeíopodráaeder aiertosestadosde lapetiiónde ambio, estoseabordarámásdetalladamenteenlaexpliaióndelujo.

(40)

queambiamosdeunestadoaotro seanotaenunos amposnoeditables internosde lalase, lafehaen laque suede.El usuario podráobtener esta informaiónen losdiferentes estados. Desde latabla generaltambién sepuede obtener de 2maneras, añadiendoestos amposomo ltrosy/oolumnas.

3.4.1. Roles

Tendremosvariosrolesdenidosquepodránaederadiferentesestadosdelapetiión,serán lossiguientes:

ChangeRequester(CR):Tendrápermisosparapoderrearpetiionesdeambio,asíomo aeder alos estados de Petiión de ambio rehazada, para poder reabrir la petiión y EsperarAprobaión,paradarelvistobuenoalasestimaionesquelehayanadjudiadoa supetiión.

Change Owner (CO): Tendrá aeso al estadode Esperar Aeptaión, seráel enargado de aeptar laspetiiones deambioque le vengan de loslientes, asíomo de estableer un presupuestoy una prioridad, para asípasar a evaluarlos. O rehazarlosydevolverla petiión alliente.También seráel enargadode aeptar la reoberturasoliitadaporun liente o anelarla. También se enargara de aeptar o anelar la reobertura de una petiiónnoaprobadaquePTestáintentando reabrir.

QualityTeam(QT):TendráaesoalestadodeEvaluaiónderiesgos.Seránlosenargados deevaluaryrearlosposiblesriesgosqueomportaelambio,yañadirlosalapetiión.

PlanningTeam(PT):TendránaesoalestadodeEstimaióndetiempos,seránlos enar-gadosde deidir uantotiemposetardaráen realizarel ambio.Ademástambién tendrá aesoapoderreabrirunapetiiónquenohasidoaprobadaporelCR.NormalmentePT yQTlostendránlasmismáspersonas.

3.4.2. Esperar Aeptaión

Imagen3.33:EstadoChangeRequestWaitAeptaneAt ivity,tiposoftware.

Enlaimagen3.33vemoslapantallaorrespondientealestadodeEsperarAeptaión.Como vemossolotenemosunampoobligatorioqueeseldelaprioridad,yaquepuedehaberpetiiones sinimporte.Enesteasotenemostodaslasaiones yaquenuestrousuariotiene elroldeCO, estasaionesson:

Volver:Vuelvealatablageneralsinmodiarnada.

(41)

alestadodeEvaluaióndeRiesgos.

Rehazar:Rehazalapetiión,esdeirtransitaalestadoPetiión deCambioRehazada. Cuandoserehazaapareeunpopupomoelquesenosmuestraenlaimagen3.34.Donde elusuarioseveobligadoaintroduirunomentarioexpliativodelporquédel rehazo

Imagen3.34:Popupemergentealrehazarunapetiión.

También observamos que apartede la pestaña onlos datos prinipalesexisten 2 pestañas más:

Comentarios:Como vemosenlaimagen3.35esta pestaña onstadeuna úniaaiónde añadir,estaaión sirveparapoderañadirualquiertipodeomentarioalapetiión. Al darle a la aión nosaparee un popup onla forma que se muestra en la imagen3.36, on un solo ampo de texto obligatorio. Una vez reado el omentario se muestra una pequeñatablaonalgunosdatosomoelomentarioyelreadordelmismo,ademásomo observamosenla imagen3.37tambiénapareenaiones enlala paraeditary eliminar elomentario.LamayoríadeestafunionalidadyavieneimplementadaporSherpaBeans, solo se hatenido que añadirla pestaña en lossettings orrespondiente además de haber sido neesario de sobresribir lalase orrespondiente ala view de los omentarios para quesolomostraralainformaiónrelevante.

(42)

Imagen3.37:PestañaComentariosdelestadoChangeRequesWaitAeptanet Ativity,despuésdeañadirun omentario.

Proeso:EstapestañaesotradelasaraterístiasdeeSengo®,estáompuestaporvarias pestañasmásomopodemosverenlaimagen3.38.LapestañaprinipalesAtividadesque nosmuestrainformaiónsobrenuestraatividad,lahoradeiniio,ladenal,quienlatiene asignada, enque estadoestá, et. Lasiguiente pestañaesel Traking, estaaraterístia de eSengo®, es muy omún en todo el ERP, se usa para dejar onstania del tiempo utilizadopararealizarlastareasasignadasaunusuario.LapestañaDiagramatemuestra en que estado esta la petiión mediante un diagramade bloques. Finalmente la pestaña Eventosinformadeloseventosquesevansuediendo,ennuestroasoloseventosseránlas asignaionesdelaatividadadiferentes personas.

Imagen3.38:PestañaComentariosdelestadoChangeRequestWaitAeptaneA tivity.

EenuantoalapetiióndetipoHardwarelaonguraióneslamisma,exeptoqueelampo que sereere almódulo essubstituido porel ampoArtíulo. Salvo indiaiónesto pasaráen todoslosdemásestados.

(43)

Vemosenlaimagen3.39lapantallaorrespondientealestadodeEvaluaiónderiesgos. Ade-másdelainformaiónnoeditable queiráaumentandoamedidaquelavayamosintroduiendo. Enontramos 2amposde textoobligatoriosy 2amposdetipoomboobligatorios,son idén-tiosalosampos quesevieron enelsubmódulo3.3.4,tienennombressimilares,perolosdela petiiónde ambiovan asoiadosalriesgo derealizardiho ambioen elmódulo seleionado. Reordemosque solo losusuarioson el rolde QualityTeampodránaeder aeste estado,el restosolopodráutilizarlaaióndeverelestado. ElQualityTeamtambién podráutilizarlas siguientesaiones:

Volver:Vuelvealatablageneralsinmodiarnada.

Modiar:Modiaelregistroonlosdatosintroduidosyvuelvealatabla general.

Aeptar:Modiaelregistroonlosdatosintroduidosyaeptalapetiión,esdeirpasa alestadodeEstimaióndetiempos.

Imagen3.39:EstadoChangeRequestWaitAssessRisksAtivity,tiposoftware.

Y vemos2nuevaspestañasqueenelestadoanteriornoguraban:

Riesgos:Enélenontraremosunatablasimilaraladelsubmódulo3.3.4,dondesepodrán añadirriesgosyareados,asíomoreardenuevosparaasoiarlos.

Traking:Eslatablaque sehaomentadoanteriormentequesirvepara añadireltiempo utilizadopararealizarualquiertarea,normalmentetendrálasiguienteforma,siempreque estéhabilitadaparaelestadoenuestión,ennuestroasoloestáytienelasiguienteforma quenosmuestralaimagen3.40.Sehanutilizadolossettings paraañadirlapestañaquese enuentraenproess,enlaspestañasdelestadodelapetiión.Losampos,Und(Unidades), Usuario son obligatorios, Mon puede serrellenado o no, igual que los omentarios. Una vezrellenados seañadiráun nuevoregistroal trakingasoiadoaestapetiión, sepodrá onsultardesdelapestañatrakingodesdelapestañaproeso->traking.Eltrakingnos serviráparapodervereltiempoutilizadopararealizarlastareasorrespondientesaada

(44)

Análogamente al estado anterior si la petiión esde tipoHardware elampoMódulo deja sulugaralampoArtíulo.Aunquenormalmentelostiposderiesgoquetenganasoiadosestas petiionesserándeniveles bajos.

3.4.4. Estimaión de tiempos

En la imagen 3.41 se nos muestra la pantalla orrespondiente al estado de Estimaión de tiempos.Enontramos que solo tenemos un ampo editable,obligatorio, orrespondiente alas horasqueseestimequepuededurarlarealizaióndelambio,reordemosquesololosusuarios onelroldePlanningTeam.Ademáslainformaiónnoeditableiráaumentandoamedidaquela vayamosintroduiendoyvayamostransitandodeestado.Tambiéntenemoslasiguientesaiones:

Volver:Vuelvealatablageneralsinmodiarnada.

Modiar:Modiaelregistroonlosdatosintroduidosyvuelvealatabla general.

Aeptar: Modia el registroon los datos introduidos y aepta la petiión,pasando al siguienteestadodeEsperando Aprobaión.

Imagen3.41:EstadoChangeRequestEstimationAtivity,tiposoftware.

VemosunanuevapestañallamadaCasosdeUsoafetadossoloapareerásilapetiióntiene algún riesgo que sea de tipo medio o alto, o sus niveles de riesgo son medios oaltos. Dentro de la pestaña enontraremos una tabla onasos de uso, el ontenido de esta tabla se genera automátiamenteutilizandounalasedetipoCriteria,llamadaChangeRequestUseCaseCriteria, lapodemosverenlaimagen3.42.Comopodemosobservarsereuperaelobjetopordefetoon elqueesté trabajandoelujodeejeuión onelomando ModelUtils.ndDefaultBean(). Para poderparsearesteobjetoprimerodebemossaberaqueinstaniapertenee,deahíelif delalinea 9.Enlalinea10realizamoselparseadoyasíyatenemosnuestroobjetodetipoChangeRequest, sielobjetoumplelasondiionesparaquedebatenerUseCase,seañadealriteriaasoiado, elmóduloporelquebusaralosUseCasequelehaganreferenia,estosehaeonelmétodode

Figure

Actualización...

Referencias

Actualización...

Related subjects :