Full text
T abajo de Fin de G ado
Aplicación pa a la con igu ación
au omá ica del ce i icado digi al en un
o denado pe sonal
Julio 2014 – Las Palmas de G an Cana ia
Alumno: Ra i Raj Khubchandani Khubchandani
G ado en Ingenie ía In o má ica (Sis emas de In o mación)
Tu o es: D . F ancisco Ja ie Ca e as Riuda e s
Depa amen o de In o má ica y Sis emas
Ángel Sánchez de la C uz
O icina Técnica de la Adminis ación Elec ónica
Índice
In oducción......................................................................................................................................................1
Es ado ac ual y obje i os..................................................................................................................................2
Si uación ac ual...........................................................................................................................................2
Obje i os.....................................................................................................................................................2
Compe encias cubie as....................................................................................................................................3
T abajo Fin de G ado...................................................................................................................................3
Comunes a la Ingenie ía In o má ica...........................................................................................................3
Ingenie ía del so wa e................................................................................................................................5
Sis emas de In o mación..............................................................................................................................5
Apo aciones.....................................................................................................................................................6
Apo ación al medio socio-económico........................................................................................................6
Apo ación al medio écnico........................................................................................................................6
No ma i a y legislación....................................................................................................................................6
Ley O gánica de P o ección de Da os (LOPD)............................................................................................6
Licencias del so wa e usado.......................................................................................................................6
Requisi os.........................................................................................................................................................8
Plani icación y es uc u ación del p oyec o......................................................................................................8
Tecnologías, he amien as y me odologías aplicadas........................................................................................9
Tecnologías y he amien as.........................................................................................................................9
Me odologías.............................................................................................................................................10
P incipios, mecanismos y pa ones de diseño usados......................................................................................11
Análisis y diseño.............................................................................................................................................13
A chi o de con igu ación..........................................................................................................................13
El modelo de negocio................................................................................................................................15
Cabece as de SpecLis s..............................................................................................................................17
Tipos de ins ucciones...............................................................................................................................18
In e p e a los a chi os de con igu ación...................................................................................................21
Iden i icación del sis ema..........................................................................................................................22
Ejecución de SpecSe s...............................................................................................................................23
Sis ema de logging.....................................................................................................................................24
Acceso a unciones del sis ema ope a i o y sis ema de a chi os...............................................................25
P og amas auxilia es..................................................................................................................................27
Diseño e implemen ación de la in e az de usua io.........................................................................................28
Diseño........................................................................................................................................................28
Implemen ación.........................................................................................................................................30
P uebas y alidación de uso............................................................................................................................31
Diag ama de secuencias..................................................................................................................................31
T abajos u u os..............................................................................................................................................33
Conclusiones...................................................................................................................................................33
Fuen es de in o mación...................................................................................................................................34
Anexo.............................................................................................................................................................37
Diag amas de secuencias...........................................................................................................................37
Diag ama de clases UML comple o...........................................................................................................40
Manual de usua io.....................................................................................................................................41
Índice de ilus aciones
Ilus ación 1: Ma co de abajo de Sc um.........................................................................................................8
Ilus ación 2: Ma co de abajo de la a qui ec u a MVC.................................................................................12
Ilus ación 3: Ejemplo de sis ema sopo ado...................................................................................................13
Ilus ación 4: Ejemplo de comp obación de eque imien o.............................................................................14
Ilus ación 5: Ejemplo de ins alación de un eque imien o.............................................................................14
Ilus ación 6: Ejemplo de desins alación de un eque imien o........................................................................15
Ilus ación 7: Ejemplo de iden i icación de eque imien os ins alados...........................................................15
Ilus ación 8: Diag ama de clases del modelo de negocio...............................................................................17
Ilus ación 9: Diag ama de clases del in é p e e.............................................................................................22
Ilus ación 10: Diag ama de clases pa a iden i ica un sis ema.......................................................................23
Ilus ación 11: Diag ama de clases pa a ejecu a SpecSe ...............................................................................24
Ilus ación 12: Diag ama de clases del sis ema de logging.............................................................................25
Ilus ación 13: Ejemplo de análisis sin ác ico de un a chi o...........................................................................28
Ilus ación 14: Diseño inicial de la in e az de usua io...................................................................................29
Ilus ación 15: Diseño de la in e az ac ual, inicio del p og ama....................................................................29
Ilus ación 16: Diseño ac ual de la in e az, menú de ins alación pe sonalizada.............................................30
Ilus ación 17: Diag ama de secuencias, ca ga inicial.....................................................................................31
Ilus ación 18: Diag ama de secuencias, ins alación au omá ica.....................................................................32
Ilus ación 19: Diag ama de secuencias, ca ga inicial.....................................................................................37
Ilus ación 20: Diag ama de secuencias, ins alación au omá ica.....................................................................37
Ilus ación 21: Pan alla de inicio de la aplicación...........................................................................................41
Ilus ación 22: Menú de análisis del equipo, análisis nega i o........................................................................42
Ilus ación 23: Diálogo de análisis nega i o...................................................................................................42
Ilus ación 24: Menú de ins alación pe sonalizada.........................................................................................43
Ilus ación 25: Realización de ins alación au omá ica....................................................................................44
Ilus ación 26: Diálogo de análisis posi i o....................................................................................................44
Ilus ación 27: Menú de análisis del equipo, análisis posi i o........................................................................45
Ilus ación 28: Menú de desins alación pe sonalizada....................................................................................46
Ilus ación 29: Con i mación de desins alación au omá ica............................................................................46
Ilus ación 30: Menú de desins alación au omá ica.........................................................................................47
Ilus ación 31: Menú de Con ac o...................................................................................................................48
In oducción
En los iempos mode nos los equipos in o má icos ienen con igu ados de áb ica pa a que el usua io pueda
dis u a de su p oduc o desde el momen o en que lo adquie e, pe o exis en si uaciones en que se necesi a
cumpli con una se ie eque imien os. Es a si uación es común en emp esas, donde muchos abajado es
necesi an sus o denado es con igu ados de cie a mane a.
G acias a las nue as ecnologías se han desa ollado elemen os so wa e que de ec en el p oblema y lo
solucionen au omá icamen e, adqui iendo a chi os desde la ed en caso necesa io. Todo ello con una
in e ención mínima del usua io. Es as a eas se pod ían hace de o ma manual, pe o consumi ía mayo
can idad de iempo y po an o, se es a p oduc i idad.
Es e p oyec o se ha c eado como una solución a un p oblema eal encon ado en la adminis ación de la
Uni e sidad de Las Palmas de G an Cana ia (en adelan e ULPGC), con el cual se p e ende acili a y
au oma iza el p oceso de con igu ación de un o denado pe sonal de o ma que un miemb o de la
comunidad uni e si a ia pueda iden i ica se an e la página web ins i ucional usando su ce i icado
elec ónico emi ido po la Fáb ica Nacional de Moneda y Timb e.
1
Es ado ac ual y obje i os
Hoy en día exis e di e sidad de se icios an o p i ados como públicos que pueden se usados de o ma
elemá ica, és os son o almen e segu os y apo an g an comodidad al usua io. Dependiendo del ipo de
se icio que se o ece se equie e de unos componen es u o os que ienen que se ins alados en el equipo del
usua io. Si se usa más de un se icio, el hecho de ene que cumpli dis in os equisi os puede causa echazo
a los mismos y op a po medios más adicionales.
Si uación ac ual
Con la idea de au oma iza la con igu ación de un equipo pa a un in conc e o, dis in os p og amas han sido
c eados, ejemplos de es os son el con igu ado de edes inalámb icas pa a accede a uni e sidades eu opeas
Edu oam y el con igu ado de na egado es web de la Agencia T ibu a ia de España.
Ambos es án disponibles como p og amas que se pueden desca ga desde sus espec i as páginas web, la
ejecución de es os p og amas modi ica los a chi os del equipo de la o ma en que sea necesa ia y de o ma
au omá ica en cues ión de minu os pa a que el usua io siga con sus a eas.
Ac ualmen e la con igu ación del uncionamien o de la i ma elec ónica de la ULPGC se ealiza
manualmen e, no exis e ninguna solución que au oma ice es e p oceso. En caso de p oblemas se con ac a con
la o icina écnica de la adminis ación elec ónica.
Obje i os
El obje i o de es e p oyec o es desa olla un so wa e que ins ale y con igu e au omá icamen e los
componen es necesa ios pa a que la i ma elec ónica uncione co ec amen e en al menos un sis ema
ope a i o y un na egado web conc e os.
Se ha elegido el sis ema ope a i o Windows 7 y na egado web In e ne Explo e 11. Pa a oma es a
decisión se han enido en cuen a las siguien es conside aciones:
•Mic oso ya no da sopo e a Windows XP, po lo que en poco iempo la adminis ación debe ía
mig a a o o sis ema ope a i o.
•In e ne Explo e se posiciona en e los na egado es más usados en e el pe sonal de la
adminis ación.
Se ha ideado desde ce o un sis ema de con igu ación au omá ica de dicho p oceso pe o que a la ez es
lexible y escalable a o as necesidades. La idea es que el usua io sin ayuda écnica, usando el p og ama
enga lis o su equipo con un mínimo es ue zo y ap o eche al máximo su iempo.
Más adelan e emos en p o undidad el uncionamien o del p ime p o o ipo, pe o los p incipales obje i os
del p oyec o son:
•Iden i ica los eque imien os del equipo en base al sis ema ope a i o y na egado es web usados.
•T as iden i ica las necesidades, el usua io puede elegi los na egado es web que quie e con igu a
pa a usa la i ma elec ónica.
•Ins alación de los componen es, odos los componen es o cada uno indi idualmen e bajo pe ición del
usua io.
•Man enimien o de un a chi o de log pa a moni o iza odo cambio ealizado pa a pode e e i el
equipo al es ado an e io .
•Desins ala componen es ins alados po el p opio p og ama.
El sis ema es escalable a o as necesidades que puedan apa ece en el u u o. Es o es así ya que los
eque imien os pa a cada sis ema ope a i o y na egado se es ablece median e un a chi o de con igu ación,
de o ma anspa en e al usua io. Es o pe mi e que ac ualizando es e a chi o, el p og ama siga siendo ú il sin
ealiza modi icaciones.
La iden i icación median e ce i icado elec ónico es más segu a que median e usua io y con aseña. Además
2
pe mi e a los miemb os de la comunidad uni e si a ia ealiza a eas adminis a i as a a és de la ed.
Es e p oyec o ha pe mi ido pone en p ác ica el conocimien o sob e diseño e ingenie ía de so wa e
adqui idos en la ca e a. En el desa ollo del p oyec o se ha seguido la me odología ágil Sc um y Lean
So wa e De elopmen , se ha ido desa ollando de o ma p og esi a, man eniendo euniones pe iódicas pa a
la supe isión del u o .
En cada eunión se ha mos ado una e sión del p og ama cada ez más comple a has a llega a una p ime a
e sión p o o ipo que cumple con los equisi os es ablecidos.
Además me ha dado la opo unidad de desa olla el ap endizaje au ónomo así como un conocimien o en
cie a p o undidad sob e las dis in as e siones del sis ema ope a i o Windows y su sis ema de egis os.
Compe encias cubie as
T abajo Fin de G ado
TFG01
Eje cicio o iginal a ealiza indi idualmen e y p esen a y de ende an e un ibunal uni e si a io,
consis en e en un p oyec o en el ámbi o de las ecnologías especí icas de la Ingenie ía en
In o má ica de na u aleza p o esional en el que se sin e icen e in eg en las compe encias adqui idas en
las enseñanzas.
Es e p oyec o se diseñó desde ce o, el desa ollo se ha lle ado a cabo de o ma modula aplicando
a qui ec u as de so wa e y diseño de pa ones es udiados en asigna u as de la ca e a. Se ha elegido
desa olla lo usando he amien as mode nas y de uso ex endido. Al se modula , al p oyec o se pueden
ag ega componen es nue os que pod ían inc emen a su uncionalidad a la ez que componen es de es e
p oyec o se pueden usa en o os. Al usa he amien as mode nas y de uso ex endido se e i a que se con ie a
en so wa e obsole o a la ez que la documen ación disponible es amplia.
Comunes a la Ingenie ía In o má ica
CII08
Capacidad pa a analiza , diseña , cons ui y man ene aplicaciones de o ma obus a, segu a y e icien e,
eligiendo el pa adigma y los lenguajes de p og amación más adecuados.
An es de inicia el desa ollo de la aplicación se in es igó dis in os sis emas y lenguajes de p og amación
disponibles pa a asegu a se de que la opción omada es la co ec a. Se plan eó la posibilidad de que el
p oyec o uese una aplicación web pe o dada la na u aleza del so wa e y sus eque imien os es a posibilidad
no se pudo ealiza y se op ó po el lenguaje C# usando el amewo k .NET 4.5 desa ollado po Mic oso .
G an pa e del iempo disponible pa a el desa ollo se ha in e ido en la co ec a p og amación de pa ones
de diseño de o ma que el man enimien o y ampliación del p og ama se pueda ealiza de la o ma más
e icien e posible. Se ha op ado po una a qui ec u a MVC po su sencilla implemen ación pe o siendo a la
ez e icien e y su capacidad pa a cumpli con los equisi os del p og ama, ambién se han usado más
pa ones de diseño pa a los componen es del p og ama.
CII010
Conocimien o de las ca ac e ís icas, uncionalidades y es uc u a de los Sis emas Ope a i os y diseña e
Implemen a aplicaciones basadas en sus se icios.
El p oyec o se ha desa ollado pa a sis emas Windows, dada la na u aleza del p oyec o se ha ealizado una
impo an e in es igación sob e su sis ema de egis os, las di e en es opciones que dispone en su sis ema de
3
iche os pa a a chi os empo ales, a chi os de opciones pe sonales indi iduales pa a cada usua io y sus
a iables de en o no. Un mo i o po el cual se op a po usa C# y .NET es que es e amewo k es á
desa ollado po Mic oso y acili a y agiliza el desa ollo de aplicaciones que necesi en conocimien o del
ha dwa e y sis ema ope a i o del equipo en que se ejecu a.
CII012
Conocimien o y aplicación de las ca ac e ís icas, uncionalidades y es uc u a de las bases de da os,
que pe mi an su adecuado uso, y el diseño y el análisis e implemen ación de aplicaciones basadas en
ellos.
El p oyec o ha pe mi ido conoce en p o undidad el uncionamien o, es uc u ación y uso del egis o de
Windows, el cual es una base de da os je á quica así como su in eg ación pa a se accedida desde p og amas
ex e nos pa a su lec u a y esc i u a.
CII014
Conocimien o y aplicación de los p incipios undamen ales y écnicas básicas de la p og amación
pa alela, concu en e, dis ibuida y de iempo eal.
El p og ama desa ollado se ejecu a en di e en es hilos de ejecución concu en es que se comunican en e
ellos. Se ha usado écnicas y es uc u as p opias de .NET pa a la p og amación de los mismos ya que pe mi e
la ejecución pa alela de a ios hilos sin que el abajo de un hilo a ec e al de o o.
CII016
Conocimien o y aplicación de los p incipios, me odologías y ciclos de ida de la ingenie ía de so wa e.
Se han seguido me odologías de desa ollo ágil du an e el p oceso de desa ollo, de o ma que pequeños
cambios no han supues o g andes cambios en el p oyec o. Se han man enido euniones pe iódicas con los
u o es, como p opone la me odología Sc um, en cada eunión se ha mos ado una e sión cada ez más
comple a del p og ama. Al implemen a un equisi o se hacía de o ma que el p og ama espondiese de la
o ma espe ada y luego se e ac o izaba pa a ob ene una e sión mejo ada, como es ablece la me odología
Lean So wa e De elopmen .
En el desa ollo del p og ama se han usado los pa ones de diseño más con enien es pa a cada componen e,
como el pa ón 'Command' pa a p og ama la acción de la in e az; 'SRP' o Single Responsibili y P inciple,
de o ma que se ha p ocu ado que cada clase enga un solo p opósi o y sea independien e del es o; y así
o os pa ones gene ales como el 'P incipio de in e sión de dependencias', clases 'Single on' o 'Fac o y'.
Todo ello modula izado de o ma que se espe e el p incipio 'DRY' o Don' Repea You sel pa a e i a
epe ición de código.
CII017
Capacidad pa a diseña y e alua in e aces pe sona compu ado que ga an icen la accesibilidad y
usabilidad a los sis emas, se icios y aplicaciones in o má icas.
Pa a el uncionamien o de es e p og ama se necesi a de un a chi o de con igu ación, su o ma o se ha
diseñado de o ma que pe mi a inse a la mayo can idad de in o mación de la o ma más cómoda posible.
Es e a chi o se e á en de alle más adelan e.
La in e az de usua io ambién se ha diseñado de o ma que su uso sea in ui i o al usua io inal, educiendo
el núme o de en anas en la medida de lo posible. Más adelan e e emos que la p ime a e sión de la
in e az ue modi icada de o ma que esul e más amilia al es ilo que el usua io es á acos umb ado.
4
Ingenie ía del so wa e
IS01
Capacidad pa a desa olla , man ene y e alua se icios y sis emas so wa e que sa is agan odos los
equisi os del usua io y se compo en de o ma iable y e icien e, sean asequibles de desa olla y
man ene y cumplan no mas de calidad, aplicando las eo ías, p incipios, mé odos y p ác icas de la
ingenie ía del so wa e.
En el desa ollo del p oyec o se ha lle ado a cabo una de allada plani icación de odos sus aspec os
uncionales. Se han pues o en p ác ica las di e en es e apas del ciclo de ida de un so wa e. Desde la
especi icación de equisi os has a su es eo en dis in os equipos. Se ha pues o én asis en con ol del es ado de
los da os en cada momen o pa a e i a allos en el p og ama, de es a o ma es más obus o y iable.
Se han empleado buenas p ác icas de p og amación, se ha documen ado oda acción ealizada, se han
ealizado p o o ipos de la in e az, el código es modula y legible aunque se han añadido algunos
comen a ios en el código en donde es necesa io.
Se ha desa ollado aplicando a qui ec u as y pa ones de diseño ya consolidados, de es a o ma es más ácil
de man ene y ealiza cambios cuando sea necesa io.
IS05
Capacidad de iden i ica , e alua y ges iona los iesgos po enciales asociados que pudie an p esen a se.
El mayo iesgo pa a el p oyec o e a la a iación en el ipo de equisi os que enía el p og ama. Algunos
equisi os consumie on más iempo po el obje i o que enían ya que eque ían un conocimien o a anzado,
se u o que in es iga la solución al p oblema o la documen ación pa a esol e el p oblema es escasa. Po
es e mo i o se llegó a un consenso en los equisi os a cumpli en el iempo disponible.
Sis emas de In o mación
SI01
Capacidad de in eg a soluciones de Tecnologías de la in o mación y las comunicaciones y p ocesos
emp esa iales pa a sa is ace las necesidades de in o mación de las o ganizaciones, pe mi iéndoles
alcanza sus obje i os de o ma e ec i a y e icien e, dándoles así en ajas compe i i as.
El p og ama es á pensado pa a su uso en ed. Es o es así ya que el p og ama se comunica con los se ido es
emo os de la ULPGC y ob ene a chi os alojados en el mismo. El so wa e gene a a chi os de log pa a cada
usua io, en un p incipio es os logs es aban pensados pa a se alojados ambién en los se ido es de la
ULPGC, po ello debían ene iden i icado es únicos, es o se log ó usando la he amien a 'WMI', Windows
Managemen Ins umen a ion, como e emos más adelan e. En una de las i e aciones del so wa e se decide
que el log se aloja en el p opio equipo del usua io pe o la implemen ación ya es á ealizada, po lo que si en
el u u o se decide aloja es os logs en la nube, el cambio no se á muy cos oso y la compe encia y el
conocimien o pa a ello ya han sido adqui idos.
5
Apo aciones
Apo ación al medio socio-económico
El uso de es a aplicación apo a a sus usua ios la comodidad de au oma iza el p oceso de con igu ación de la
i ma elec ónica en sus o denado es. A ec a de mane a económica ya que el p opio usua io puede con igu a
con éxi o su p opio equipo sin ayuda y en menos iempo. Po es e mo i o an o el usua io como el pe sonal
écnico pueden emplea su iempo en o as a eas.
Si el p og ama cumple con el ni el de calidad exigido, se pond á a disposición de la comunidad uni e si a ia.
Apo ación al medio écnico
El p oyec o es á es uc u ado de o ma que se pueden sus i ui o añadi módulos, se pueden in eg a nue as
uncionalidades si se desease.
Se in oducen da os en el p og ama median e un a chi o de con igu ación. En es e a chi o se es ablecen
odos los eque imien os del equipo pa a que uncione la i ma elec ónica. Cambia es e a chi o supond ía
que el usua io iene a su disposición las ac ualizaciones que hubiesen.
Po es os dos mo i os se ala ga la ida ú il del so wa e a bajo cos e.
No ma i a y legislación
Ley O gánica de P o ección de Da os (LOPD)
La Ley O gánica 15/1999 de 13 de diciemb e de P o ección de Da os de Ca ác e Pe sonal iene el obje i o
de ga an iza y p o ege las libe ades públicas y de echos undamen ales de las pe sonas ísicas en lo
conce nien e al a amien o y comunicación de sus da os pe sonales independien emen e del sopo e usado.
Es a ley a ec a a odos los da os que hacen e e encia a pe sonas ísicas egis adas sob e cualquie ipo de
sopo e (in o má ico o no), aunque es án excluidos da os ecogidos pa a uso domés ico y ma e ial clasi icado
po el es ado que a an sob e delincuencia o ganizada y e o ismo.
Es e p oyec o a a da os del equipo local y almacena un a chi o de log en el mismo, pe o en ningún caso se
en ía in o mación a se ido es emo os ni almacena in o mación pe sonal del usua io, po lo que no es
necesa io ci a lo.
Licencias del so wa e usado
En la ealización de es e p oyec o se ha usado an o so wa e lib e como p opie a io, cada uno con sus
espec i as licencias. A con inuación emos cada una de ellas:
So wa e p opie a io
Se a a de so wa e que puede se g a ui o o no, pe o se necesi a de pe miso pa a pode usa lo pa a cie os
ines y no o os. Es as pueden se su modi icación, su dis ibución o copia. El so wa e p opie a io usado en
el p oyec o se ha conseguido po medio de la susc ipción de la ULPGC al p og ama MSDN de Mic oso .
És os son:
•Mic oso Visual S udio 2012 P emium
•Mic oso Windows 7 P o essional
•Mic oso Visio 2013
6
Command
El pa ón Command pe mi e diseña clases que encapsulan las acciones que se deben ejecu a como
espues a a un e en o ocu ido en la in e az de usua io.
Análisis y diseño
En es e apa ado se explica la uncionalidad de los módulos desa ollados, así como su in eg ación y obje i o
con el cuál ue ideado. Jun o a cada módulo que se explique se mues a su diag ama UML pa cial, el
diag ama UML comple o es á disponible en el anexo.
Po úl imo e emos cómo uncionan los módulos en conjun o pa a esol e un caso de uso de ejemplo.
A chi o de con igu ación
El con igu ado de i ma elec ónica se basa en dos a chi os de con igu ación. Son a chi os de ex o que
puede se edi ado usando cualquie edi o de ex o compa ible con la codi icación UTF-8, como po ejemplo
No epad en Windows.
Al p ime o lo llama emos 'a chi o de con igu ación p incipal' y es el mismo pa a odos los usua ios. Pa a se
usado se á desca gado desde el se ido de la ULPGC po el con igu ado . El segundo es el a chi o de log,
es único po cada usua io, lo emos más adelan e en es e apa ado.
Su o ma o ha sido diseñado especí icamen e pa a es e p oyec o. Su es uc u a es sencilla, pe mi e inse a
líneas acías y esc ibi comen a ios. Es á es uc u ado po bloques, exis en cinco bloques de inidos po sus
e ique as de ape u a y cie e.
En es os bloques se especi ican g upos de ins ucciones, és as ienen unciones di e en es, como lee un
egis o o un a chi o y compa a lo con un alo , esc ibi un alo en un egis o o a chi o o ejecu a un
p oceso nue o en el equipo. Los comen a ios comienzan con el símbolo // y aba can una línea del a chi o.
Todas las ins ucciones y sin axis elacionadas con el a chi o se desc iben en siguien es apa ados.
En es e documen o se a a e e i como 'sis ema sopo ado' como un sis ema que cumple cie as
ca ac e ís icas y pa a el cuál sabemos los eque imien os que debe cumpli pa a que la i ma elec ónica
uncione co ec amen e.
Po cues iones de compa ibilidad de la con igu ación de la i ma elec ónica con di e en es sis emas
ope a i os de Mic oso y di e en es na egado es disponibles pa a el mismo, los eque imien os pa a és os
pueden a ia .
El p ime bloque, el bloque 'NEEDS', comienza con la e ique a de ape u a #NEEDS y se cie a con
#/NEEDS. Es e bloque con iene g upos de ins ucciones que si en pa a iden i ica un sis ema sopo ado, al
mismo se le asigna una lis a de eque imien os que el equipo debe cumpli . Exis e un g upo de ins ucciones
po cada uno.
Vemos un ejemplo:
En es e ejemplo se leen es alo es del egis o de Windows, se comp ueba que la e sión de Windows
ins alada en el equipo en que se ejecu a el con igu ado es la 6.1, el nomb e de la e sión comienza con
Windows 7, '*' indica que la edición de Windows 7 es indi e en e. Po úl imo se comp ueba que el equipo
iene ins alado el na egado web In e ne Explo e 11.
Si es as es condiciones se cumplen, en el equipo deben es a ins alados los eque imien os indicados po
13
Ilus ación 3: Ejemplo de sis ema sopo ado
'Ce i icadosDigi ales', 'Capicom', 'Lec o PDF', 'Ja a', 'IE_Sa eSi e' y 'IE11_Vis aCompa ible' pa a que la
i ma elec ónica uncione co ec amen e en In e ne Explo e 11 (indicado po IE).
Ya enemos iden i icados los eque imien os que debe cumpli el sis ema, aho a hay que especi ica cómo se
iene que comp oba que es os eque imien os se cumplen o no.
La especi icación de es as comp obaciones se ealizan en el segundo bloque, llamado CONFIG, comienza
con la e ique a #CONFIG y se cie a con #/CONFIG. Es e bloque con iene g upos de ins ucciones con las
que se puede de e mina si el equipo cumple con los eque imien os iden i icados en el bloque NEEDS.
Exis e un g upo de ins ucciones po cada eque imien o necesa io.
Vemos un ejemplo:
En es e ejemplo se mues a cómo a e igua si la máquina i ual Ja a es á ins alada, el o ma o comple o de
la cabece a es á explicada en el siguien e apa ado, pe o podemos e que se indica 'SUCCEED_ONE', es o
signi ica que pa a conside a que Ja a es á ins alado, como mínimo una de las ins ucciones debe ejecu a se
con éxi o.
En es e caso, sabiendo que la e sión mínima compa ible con la i ma elec ónica de la ULPGC es Ja a 7
upda e 55 y que la e sión ac ual es Ja a 8 upda e 5, se conside a que se cumple el eque imien o 'Ja a' si el
equipo iene ins alado Ja a 7 upda e 55, Ja a 7 upda e 60 o Ja a 8 upda e 5.
En el bloque CONFIG ambién ienen que es a p esen es las comp obaciones a ealiza pa a e i ica el
cumplimien o del es o de eque imien os iden i icados.
Con los dos bloques p esen ados podemos comp oba qué eque imien os debe cumpli un equipo y cómo
sabe si és os se cumplen. En el bloque ONFAIL, que comienza con la e ique a #ONFAIL y e mina con
#/ONFAIL se especi ica al p og ama, median e g upos de ins ucciones, las acciones que se deben ealiza
pa a ins ala cada eque imien o si se ha de e minado que es e no se cumple.
Vemos un ejemplo:
En es e ejemplo emos las acciones a ealiza si el eque imien o 'Ja a' no es á ins alado, en es e bloque se
de inen los g upos de ins ucciones pa a el es o de equisi os. P ime o se copia al equipo local el ejecu able
del p og ama ja a7_55.exe desde el se ido de la ULPGC y luego se lanza su ejecución.
Uno de los equisi os uncionales de es e p oyec o es que el so wa e debe se capaz de deshace los cambios
ealizados en el equipo. Pa a cumpli con es e obje i o se in oduce el bloque UNDO, comenzado y
e minado po las e ique as #UNDO y #/UNDO, espec i amen e.
Vemos un ejemplo:
14
Ilus ación 4: Ejemplo de comp obación de eque imien o
Ilus ación 5: Ejemplo de ins alación de un eque imien o
En es e ejemplo emos las acciones a ealiza pa a desins ala el eque imien o 'Ja a', puede habe más
g upos que indiquen cómo deshace o os eque imien os.
En el bloque UNDO del a chi o de con igu ación p incipal se de ine cómo desins ala eque imien os pe o
eniendo en cuen a que es as acciones se ealizan de la misma o ma en odos los equipos, es deci , pa a
desins ala el equisi o siemp e se siguen las mismas ins ucciones, independien emen e del equipo.
Se gene a un a chi o de log indi idual pa a cada usua io. Es e a chi o iene el mismo o ma o que el a chi o
de con igu ación p incipal pe o con iene el bloque UNDO y el bloque INSTALLED que emos a
con inuación.
Es necesa io di idi el bloque UNDO ya que hay si uaciones en las que un mismo eque imien o no se
desins ala de la misma o ma pa a dos equipos dis in os.
Es e ipo de si uaciones se da, po ejemplo, al esc ibi un alo en un egis o. Si es e ya exis e, hay que
gua da es e alo exis en e pa a pode lo es au a cuando se aya a deshace el cambio ealizado en el
equipo. Si el egis o no exis e, la ins ucción pa a deshace el cambio se á bo a el egis o.
El a chi o de log es gene ado po el p og ama y su con enido a ía en unción de las acciones del usua io.
Po úl imo, el bloque INSTALLED con iene los equisi os ins alados.
En el ejemplo emos que se ha ins alado Ja a y Capicom usando el con igu ado . A la ho a de deshace
cambios se ealizan las acciones del bloque UNDO pe enecien es a dichos eque imien os.
El modelo de negocio
Vamos a e la es uc u a de da os diseñada pa a ca ga en memo ia p incipal los a chi os de con igu ación y
abaja con és a in o mación. Como se ha is o, exis en cinco bloques, en cua o de és os exis en g upos de
ins ucciones. Cada bloque iene su p opia azón de se y almacena unos da os u o os. Po es e mo i o debe
exis i más de un ipo de g upo de ins ucciones. A su ez exis en di e en es ipos de ins ucciones, según la
acción que se enga que ealiza . Po es e mo i o iene que exis i más de un ipo de ins ucción.
Se ha iden i icado que los g upos de ins ucciones en los bloques CONFIG, ONFAIL y UNDO ienen la
misma es uc u a. El bloque NEEDS ambién iene g upos de ins ucciones pe o con unas necesidades
di e en es. El bloque INSTALLED almacena una lis a de los nomb es de los eque imien os ins alados.
Teniendo es a idea en men e se ha c eado la clase SpecLis . Un SpecLis de ine un g upo de ins ucciones.
Como se ha dicho, exis en dos clases de g upos de ins ucciones, exis en dos clases he ede as de SpecLis ,
Iden i ica ionSpecLis , que de ine g upos de ins ucciones del bloque NEEDS e Ins alla ionSpecLis , que
de ine g upos de ins ucciones de los bloques CONFIG, ONFAIL y UNDO.
El equi alen e a una ins ucción en el modelo de negocio es la clase Spec (de 'speci ica ion'). Como exis en
dis in as clases de ins ucciones, exis en dis in as clases de Specs, cada una con su p opia inalidad.
El con enido del bloque INSTALLED se aduce como una lis a de elemen os de ipo is a (Lis <s ing>).
15
Ilus ación 6: Ejemplo de desins alación de un eque imien o
Ilus ación 7: Ejemplo de iden i icación de eque imien os ins alados
Al igual que un SpecLis es una colección de Specs, un SpecSe es una colección de SpecLis s. Se ha
de inido de es a o ma ya que un bloque puede ene a ios g upos de ins ucciones o lo que es lo mismo, un
SpecSe ene a ios SpecLis s.
Pa a ag upa es os elemen os exis e la clase Da aSe que almacena:
•cua o SpecSe , co espondien e a los bloques NEEDS, CONFIG, ONFAIL y UNDO.
•un Lis <s ing>, co espondien e al bloque INSTALLED.
Es os son los ipos de Spec, que ep esen an di e en es ipos de ins ucciones:
•CopySpec: gua da in o mación ela i a sob e a chi os que deben se copiados al equipo local.
•Dele eSpec: gua da in o mación ela i a a elemen os del equipo local que deben se eliminados.
•Di ec o ySpec: gua da in o mación ela i a a ope aciones de lec u a o esc i u a de di ec o ios.
•FileSpec: gua da in o mación ela i a a ope aciones de lec u a o esc i u a de a chi os.
•In oSpec: gua da in o mación que se á mos ada al usua io po pan alla.
•MSCe Spec: gua da in o mación ela i a a ope aciones de lec u a o esc i u a de ce i icados
digi ales.
•Regis ySpec: gua da in o mación ela i a a ope aciones de lec u a o esc i u a en alo es de egis o.
•SubKeySpec: gua da in o mación ela i a a ope aciones de lec u a o esc i u a de subcla es de
egis o.
•Th eadSpec: gua da in o mación sob e hilos de ejecución que se án solici ados.
Dependiendo del bloque que se a e, se pe mi en un ipo de Spec u o os. Las clases Iden i ica ionSpecLis e
Ins alla ionSpecLis he edan de la clase Lis <Spec>.
En el apa ado an e io imos que un SpecLis del bloque NEEDS es á des inado a de e mina los
eque imien os pa a un sis ema sopo ado y además indica los na egado es a los que dichos eque imien os
es án des inados a con igu a . En el modelo de negocio, cada SpecLis iene asociado un obje o B owse s,
son es a iables booleanas que iden i ican si dicho SpecLis es á des inado, según el a chi o de
con igu ación, pa a In e ne Explo e , Google Ch ome y Fi e ox.
16
Cabece as de SpecLis s
Los SpecLis s son g upos de ins ucciones. Exis en dos ipos de SpecLis . Un SpecLis debe comenza
después de una e ique a de ape u a de un bloque. Los Iden i ica ionSpecLis pe enecen al bloque NEEDS e
iden i ican sis emas sopo ados. Los Ins alla ionSpecLis pe enecen a los bloques CONFIG, ONFAIL y
UNDO, de inen g upos de ins ucciones pa a comp oba , ins ala o desins ala un eque imien o,
espec i amen e. Pa a comenza cada ipo de SpecLis se especi ican unos pa áme os u o os.
17
Ilus ación 8: Diag ama de clases del modelo de negocio
Flags
Se puede e es e a chi o en el modelo de negocio, es a es una clase es á ica en la que se han de inido cuáles
son odos los signos y palab as econocidos po el in é p e e a la ho a ins ancia obje os a pa i de los
a chi os de con igu ación de o ma co ec a.
Iden i ica ionSpecLis
Iden i ican cada sis ema sopo ado, pa a ello ambién ienen que de ini sus eque imien os.
Comienzan con el símbolo % seguido de los nomb es de los eque imien os, si hay más de un eque imien o,
se sepa a cada uno po el símbolo :: Finalmen e se especi ican los na egado es pa a los cuáles es án di igidos
es os eque imien os, los alo es posibles son IE, FIREFOX y CHROME, en caso de que la misma sea
aplicable a más de un na egado , se sepa an median e el símbolo -.
Los nomb es de los eque imien os esc i os en los Iden i ica ionSpecLis se án iden i icado es únicos de cada
eque imien o. Es os iden i icado es se usan en el es o de bloques pa a o ma sus Ins alla ionSpecLis .
En la Ilus ación 3 podemos e un ejemplo, en es e se necesi an has a seis eque imien os pa a con igu a
In e ne Explo e .
Ins alla ionSpecLis
Especi ican cómo comp oba si un eque imien o es á ins alado, cómo ins ala lo y desins ala lo.
A la ho a de ejecu a un Ins alla ionSpecLis pa a conside a que su ejecución es exi osa se especi ica uno de
los es c i e ios siguien es, a es e c i e io se le llama á 'g ado de sa is acción':
•SUCCEED_ALL: se conside a que iene éxi o si odas sus ins ucciones han enido éxi o.
•SUCCEED_ONE: se conside a que iene éxi o si al menos una de sus ins ucciones ha enido éxi o,
po lo an o se de iene su ejecución as ejecu a su p ime a ins ucción exi osa.
•SUCCEED_POSSIBLE: se ejecu an odas sus ins ucciones indi e en emen e de cuáles han enido
éxi o y cuáles no.
Comienzan con el símbolo % seguido del iden i icado del eque imien o al que co esponde. A es e da o le
siguen cua o pa áme os más. El p ime o se á el g ado de sa is acción, seguido de su nomb e (es e nomb e
no es un iden i icado , se á el nomb e que se mues e al usua io a a és de la in e az).
Los dos úl imos pa áme os se án u ilizados pa a cumpli con el obje i o de pe mi i la ins alación de
componen es de o ma indi idual bajo pe ición del usua io. Es in o mación ampliada sob e el eque imien o
mos ada al usua io du an e la ins alación pe sonalizada.
Todos los da os en es a cabece a se sepa an po el símbolo ::.
En el bloque CONFIG es necesa io especi ica odos los pa áme os, en el bloque ONFAIL es su icien e con
especi ica el iden i icado único y el g ado de sa is acción. Po úl imo, en el bloque UNDO es necesa io
especi ica el iden i icado único, el g ado de sa is acción y el nomb e del eque imien o que se á mos ado
al usua io.
En las ilus aciones 4, 5 y 6 podemos e ejemplos de los es usos de es a cabece a.
Tipos de ins ucciones
Las ins ucciones son ó denes que se especi ican en el a chi o de con igu ación. Exis en once ipos de
ins ucciones di e en es. Una ins ucción debe apa ece después de habe comenzado un SpecLis . Cada uno
de los ipos de ins ucciones comienzan con una palab a econocida po el p og ama. Dependiendo de la
ins ucción, puede ene unos pa áme os u o os.
18
REGREAD
Lee un egis o y lo compa a con el alo deseado. Se pueden lee egis os de ipo s ingz, dwo d, qwo d y
bina ios. Si el egis o es bina io, se especi ica su codi icación.
És os son los o ma os de la ins ucción:
•REGREAD::(STRINGZ/DWORD/QWORD)::RUTA DEL REGISTRO::VALOR
•REGREAD::BINARY::CODIFICACIÓN::RUTA DEL REGISTRO::VALOR
FREAD
Lee un a chi o del equipo local y lo compa a con un alo . Si el con enido con el que se quie e compa a
iene más de una línea, és as se especi ican con {{jumpline}}.
Es e es el o ma o de la ins ucción:
•FREAD::RUTA DEL ARCHIVO LOCAL::VALOR
REGSUBKEY
Examina el con enido del egis o en busca de una subcla e dada. Pe mi e c ea la si és a no exis e.
Es e es el o ma o de la ins ucción:
•REGSUBKEY::RUTA DE SUBCLAVE EN REGISTRO::READ ONLY (TRUE/FALSE)
El campo READ ONLY es alse c ea la subcla e si no exis e ya.
MSCERTS
Pe mi e accede a la base de ce i icados de Windows e ins ala un ce i icado digi al pe enecien es al
es ánda PKCS12, en o ma os p12 y p x, o comp oba si exis en ce i icados digi ales emi idos po una
o ganización.
Es e es su o ma o:
•MSCERTS::*O=ORGANIZACIÓN*::TIPO::BASE::READ ONLY (TRUE / FALSE)
El campo TIPO puede se (OTHERS / 3PARTYCA / CA / ROOTCA / MY / PEOPLE / PUBLISHERS)
El campo BASE puede se (USER / MACHINE)
Si el campo READ ONLY es alse, p ime o se busca un ce i icado con las ca ac e ís icas desc i as y si no se
encuen a ninguno se pe mi e ins ala un ce i icado, es e puede se emi ido po cualquie o ganización.
THREAD
C ea un hilo de ejecución nue o, si exis e el p og ama ejecu able especi icado en el equipo local. Es e
ejecu able puede oma a gumen os al inicia .
Su o ma o es es e:
•THREAD::RUTA EJECUTABLE::ARGUMENTOS
INFO
Mues a un mensaje al usua io en una en ana de diálogo.
Su o ma o es es e:
•INFO::TÍTULO DE VENTANA::CONTENIDO DEL MENSAJE
19
REGWRITE
Esc ibe un alo en el egis o.
Es e es su o ma o:
•REGWRITE::TIPO::APPEND (TRUE / FALSE)::RUTA DEL REGISTRO:: VALOR
El campo TIPO puede se (STRINGZ / DWORD / QWORD)
COPY
Desca ga un a chi o de la ed al equipo local. Si exis e un a chi o con el mismo nomb e, és e se sob esc ibe.
Su o ma o es el siguien e:
•COPY::URL::RUTA LOCAL
FWRITE
Esc ibe un alo en un a chi o. Si el alo iene más de una línea, és e se especi ica con {{jumpline}}.
Su o ma o es es e:
•FWRITE::APPEND (TRUE / FALSE)::RUTA LOCAL::VALOR
MKDIR
C ea un di ec o io en el equipo local, si és e no exis e.
Su o ma o es:
•MKDIR::RUTA LOCAL
DELETE
Elimina un a chi o, di ec o io, egis o, subcla e de egis o o desins ala un ce i icado digi al o un so wa e
del equipo local. Dependiendo del ipo de elemen o que se quie e bo a se especi ica unos pa áme os u
o os.
Fo ma o pa a elimina un a chi o, di ec o io, egis o o subcla e
•DELETE::RUTA
Fo ma o pa a desins ala un ce i icado digi al:
•DELETE::TIPO::BASE::(Núme o de se ie del ce i icado)
Los campos TIPO y BASE son los mismos que en la ins ucción MSCERTS.
Fo ma o pa a elimina un so wa e:
•DELETE::BASE DE DESINSTALACIÓN::REGISTRO DE IDENTIFICACIÓN::VALOR DE
IDENTIFICACIÓN::REGISTRO DE DESINSTALACIÓN
En la base de da os del egis o de Windows exis en subcla es des inadas a almacena in o mación sob e
cómo desins ala so wa e, po ejemplo HKLM SOFTWARE Mic oso Windows Cu en Ve sion Unins all,
es a subcla e (jun o a o as sepa adas po coma) o ma el campo BASE DE DESINSTALACIÓN.
Den o de dichas subcla es exis e una subcla e po cada so wa e ins alado, pa a iden i ica el so wa e
podemos usa egis os p opios de dicho so wa e que es én en esa subcla e, po ejemplo 'DisplayName', es e
da o o ma el campo REGISTRO DE IDENTIFICACIÓN. VALOR DE IDENTIFICACIÓN es el alo que
oma REGISTRO DE IDENTIFICACIÓN pa a ese so wa e conc e o. En la misma subcla e donde se
encuen a el REGISTRO DE IDENTIFICACIÓN debe exis i un egis o que indica el comando a ejecu a
20
pa a desins ala dicho so wa e, po ejemplo 'Unins allS ing'.
Es e ipo de ins ucciones es án disponibles únicamen e en el bloque UNDO. Excep uando el o ma o pa a
desins ala so wa e, el es o se gene an au omá icamen e pa a el a chi o de log.
Windows dispone de un di ec o io donde p og amas pueden almacena a chi os de o ma empo al. Los
a chi os de es e di ec o io es eliminado pe iódicamen e po el sis ema ope a i o. El di ec o io es accesible
median e la a iable de en o no %TEMP%.
Al inicia el p og ama se c ea un subdi ec o io, 'Con igu ado Fi maULPGC', den o del di ec o io empo al.
En las ins ucciones donde en alguno de los campos se deba especi ica una u a pa a un a chi o en el equipo
local, po ejemplo COPY, po de ec o el a chi o se gua da en el di ec o io 'Con igu ado Fi maULPGC', a no
se que se especi ique o a u a, puede se ela i a (se á ela i a al di ec o io donde el usua io ha gua dado el
p opio con igu ado de i ma elec ónica) o absolu a (haciendo uso de a iables de en o no como
%USERPROFILE%).
En odas las ins ucciones, odas las apa iciones de la cadena '%CONFIG_TEMP%' se á sus i uida po la u a
absolu a del di ec o io empo al c eado po el p og ama.
In e p e a los a chi os de con igu ación
Teniendo un a chi o de con igu ación independien e del p og ama se necesi a de un mecanismo que pe mi a
abaja con es os da os, con es a inalidad se c ean las clases In e p e e y FileIn e p e e . FileIn e p e e es
una clase he ede a de In e p e e . Lee a chi os de con igu ación y gene a una ins ancia de la clase Da aSe ,
donde hay SpecLis co espondien es a los dis in os bloques.
Se ha usado el mecanismo de in e sión de dependencias, de es a o ma si en el u u o apa ece o a o ma de
almacena e in e p e a la con igu ación, como en una base de da os, los cambios son más áciles de
in oduci .
La clase FileIn e p e e es á implemen ada como una clase Single on ya que no se necesi a ene más de un
in é p e e en una ins ancia del p og ama. Es a clase de uel e una ins ancia de la clase Da aSe , is a an es,
que con iene los da os en memo ia p incipal equi alen es a los almacenados en el a chi o co espondien e.
Al inicia el p og ama se in e p e a an o el a chi o de con igu ación p incipal como el a chi o de log
pe sonal (en caso de que exis a in o mación logueada con an e io idad), como ienen el mismo o ma o se
puede usa el mismo in é p e e.
Pa a in e p e a cada Spec, FileIn e p e e se basa en la clase SpecIn e p e e , es a clase pe mi e aduci
ins ucciones del a chi o de con igu ación a obje os Spec de su ipo co espondien e.
Como se dijo en el apa ado an e io , dependiendo del bloque (NEEDS, CONFIG, ONFAIL o UNDO), se
pe mi en cie os ipos de Spec u o os. Es a p ohibición no iene dada po el modelo de negocio, es deci , el
modelo de negocio no impide que una Iden i ica ionSpecLis sea capaz de almacena un Th eadSpec, sino es
el in é p e e quien no lo pe mi e. Si en un bloque apa ece una ins ucción no pe mi ida, es a es igno ada.
En la siguien e abla emos los ipos de ins ucciones pe mi idas en los di e en es bloques:
NEEDS CONFIG ONFAIL UNDO INSTALLED
REGREAD Sí Sí Sí Sí
FREAD Sí Sí Sí Sí
REGSUBKEY Sólo lec u a Sólo lec u a Sí Sí
MSCERTS Sí Sí Sí
THREAD Sí Sí Sí
INFO Sí Sí Sí
REGWRITE Sí Sí
21
COPY Sí Sí
FWRITE Sí Sí
MKDIR Sí Sí
DELETE Sí
Iden i icación del sis ema
Al inicia se el p og ama, se c ea en el di ec o io empo al de Windows un subdi ec o io de nomb e
'Con igu ado Fi maULPGC'. Como el a chi o de con igu ación p incipal es á almacenado en un se ido de
la ULPGC, pa a pode in e p e a su con enido p ime o se desca ga a es e di ec o io empo al.
A no se que en el a chi o de con igu ación se especi ique un di ec o io conc e o, los a chi os copiados al
equipo local median e la ins ucción COPY se almacenan en es e di ec o io. Los a chi os copiados al
di ec o io empo al no se incluyen en el log pa a se eliminados, en cambio los que se gua den en un
di ec o io di e en e a és e, sí.
Una ez in e p e ado el a chi o de con igu ación, enemos los sis emas sopo ados y los na egado es web a
los que dan sopo e, que pueden se In e ne Explo e , Google Ch ome o Fi e ox.
De la lis a de NEEDS in e p e ada, hay que a e igua qué eque imien os son los necesa ios pa a el equipo
que ejecu a el p og ama. Pa a log a es e obje i o se ha ideado la clase Sys emIden i ie . Es a clase
de e mina á los nomb es de los eque imien os aplicables pa a el equipo y los na egado es pa a los cuales
es án des inados a con igu a es os eque imien os.
Median e la in e az de usua io, que e emos más adelan e, se pe mi e al usua io elegi los na egado es web
que desea con igu a . De es a o ma se ins ala án los eque imien os que elija el usua io.
Es a elección de na egado es ealizada po el usua io se almacenan en una ins ancia de la clase B owse s,
es a clase iene como a ibu os es a iables booleanas, cada una co esponde a cada uno de los na egado es
web sopo ados, que indican si el usua io quie e o no con igu a el na egado web asociado a es a.
22
Ilus ación 9: Diag ama de clases del in é p e e
Es e es el diseño de la in e az ac ual del p o o ipo:
29
Ilus ación 14: Diseño inicial de la in e az de
usua io
Ilus ación 15: Diseño de la in e az ac ual, inicio del
p og ama
En p ime luga el usua io elige los na egado es que desea con igu a , luego se mues a el siguien e panel:
En el segundo diseño podemos e que exis e un panel cen al donde se mues a in o mación al usua io y a la
de echa es á el menú p incipal de la aplicación.
Dependiendo de la opción elegida del panel de echo, el con enido del panel cen al a ía. Como se e en la
imagen, en el panel in e io se mues an las acciones ealizadas en el momen o así como una ba a de
p og eso que indica la can idad ealizada del p oceso.
En el segundo diseño exis e un panel cen al que no exis e en el p ime o. De acue do al p ime diseño es a
in o mación se hab ía mos ado en una en ana sepa ada. De es a o ma se educe conside ablemen e el
núme o de en anas gene adas.
Implemen ación
Pa a implemen a la acción de los elemen os de la in e az de usua io se ha hecho uso del pa ón Command.
Con es e pa ón se ha c eado una clase que simboliza una acción, a pa i de es a 'acción' se de inen 'acciones
conc e as'.
El comando a su ez se comunica con un obje o de clase Agen pa a ealiza su a ea, es deci , se han
abs aído las ope aciones de ins alación y desins alación a es a clase. De es a o ma se ha educido el
acoplamien o de las clases Command y la ejecución de SpecSe s, es el agen e quien o dena su ejecución.
El abajo ealizado en la ejecución p og amada pa a cada acción (cuando se pulsa un bo ón) iene luga en
un hilo de ejecución sepa ado del p og ama p incipal. De es a o ma la in e az no queda bloqueada, el
usua io puede mo e la po la pan alla, minimiza la, e c. El p og eso de la ejecución se mues a en el panel
30
Ilus ación 16: Diseño ac ual de la in e az, menú de ins alación pe sonalizada
in e io .
Pa a ejecu a acciones en o os hilos se hace uso de la clase de .NET Backg oundWo ke , es a clase pe mi e,
además de ejecu a p ocesos en segundo plano, gene a e en os que e esquen la in o mación en pan alla
(usado pa a ac ualiza la ba a de p og eso) y ealiza acciones cuando el hilo en segundo plano ha
e minado.
Las acciones p og amadas pa a ealiza usando la clase Backg oundWo ke , incluyen análisis del equipo pa a
comp oba que se cumplen los eque imien os, ins ala eque imien os necesa ios y la desins alación de
eque imien os, an o de o ma au omá ica (ins ala odos los eque imien os necesa ios) como de o ma
pe sonalizada (el usua io ins ala indi idualmen e los componen es que desea).
P uebas y alidación de uso
El p o o ipo ha sido p obado en di e en es sis emas ope a i os, conc e amen e en Windows 8.1 P o essional
de 32 bi s, Windows 7 P o essional de 32 bi s y en Windows 7 P o essional de 64 bi s.
Pa a alida el diseño de la in e az de usua io, és e se ha pues o a p ueba median e el uso del p o o ipo de
dos si uaciones di e en es:
•En euniones con los u o es, en los que se plan ea un escena io que pudiese se habi ual en e los
usua ios inales
•Uso en soli a io de usua ios inales, donde el p og ama se á usado sin ayuda.
El esul ado de es a o ma de alidación es la más ú il y p oduc i a. El usua io inal es quien mejo sabe
cómo debe se el diseño pa a que él mismo pueda usa lo de o ma más cómoda.
El eedback ecibido po usua ios inales ha gene ado la inse ción de algunos equisi os nue os pe o
ac ibles, de o ma que se han podido cumpli en iempo y o ma.
Diag ama de secuencias
En es e apa ado se a a e un diag ama de secuencias pa a desc ibi las acciones que ealiza el p og ama al
ealiza una ins alación au omá ica. De es a o ma e emos de o ma g á ica la in e acción de los módulos
desc i os en el apa ado de análisis y diseño.
En p ime luga se ealizan algunas ope aciones an es de mos a la in e az de usua io:
31
Ilus ación 17: Diag ama de secuencias, ca ga inicial
Después de ca ga en memo ia p incipal es os da os iniciales, se mues a la in e az.
En el anexo de es e documen o es án disponibles más diag amas de secuencia.
32
Ilus ación 18: Diag ama de secuencias, ins alación au omá ica
T abajos u u os
En el desa ollo de es e p oyec o se ha desa ollado un sis ema que puede ealiza la con igu ación de un
equipo aliéndose de da os en su a chi o de con igu ación.
Du an e odo el ayec o se ha hecho én asis en idea lo de o ma que pueda segui siendo ú il en el u u o.
G acias a que el sis ema de de ección de eque imien os (en es e caso con igu ación de la i ma elec ónica
de la ULPGC) se ha independizado del p og ama, se ha hecho posible que si en un u u o es os
eque imien os cambian, pa a e leja es os cambios en el p og ama se á su icien e con edi a el a chi o de
con igu ación.
Siguiendo es e plan eamien o, edi ando el a chi o de con igu ación el p og ama se á capaz de con igu a un
equipo con los eque imien os que sean necesa ios y no solamen e la con igu ación pa a la i ma elec ónica,
siemp e y cuando es os eque imien os se puedan ins ala de o ma co ec a con las ins ucciones is as en el
apa ado de 'Análisis y diseño'.
Teniendo en cuen a la du ación que aba ca el TFG, que son escien as ho as, se ha p ocu ado implemen a la
mayo can idad de equisi os posibles a endiendo a su p io idad. Po es e mo i o hay equisi os que se
pueden segui desa ollando, incluso se pueden plan ea nue as uncionalidades pa a inclui en el p og ama.
•El p oyec o se ha desa ollado pa a sis emas Windows, pe o los eque imien os iden i icados pa a
que la i ma elec ónica de la ULPGC uncione co ec amen e son pa a sis emas Windows 7 y
Windows 8.1. Se puede amplia el núme o de sis emas sopo ados den o de la amilia Windows.
•El modo de p ocede del p og ama puede anspo a se a o os sis emas ope a i os y desa olla
con igu ado es pa a és os. Sabiendo los eque imien os necesa ios pa a que uncione la i ma
elec ónica en sis emas ope a i os de Apple y Linux, se pueden desa olla con igu ado es pa a ellos.
•Amplia el núme o de na egado es web de la amilia In e ne Explo e que se pueden con igu a , en
el a chi o de con igu ación se han de inido los eque imien os pa a In e ne Explo e 11, pe o
exis en o as e siones que se siguen usando ac ualmen e. Se pueden de ec a sus eque imien os e
inclui los en el a chi o de con igu ación.
Conclusiones
Se ha desa ollado un p oyec o con muchas posibilidades de pode segui c eciendo en el u u o. Se han
pues o en p ác ica di e en es á eas de la in o má ica es udiadas a lo la go de la ca e a, en especial la
ingenie ía de so wa e.
An e io men e había ealizado algunos pequeños p oyec os usando Windows Fo ms, que es o a ecnología
pa a desa olla so wa e esc i o con C# en .NET, pe o no con Windows P esen a ion Founda ion.
Al igual que WPF, exis en o os aspec os que que ía in es iga pe o no había enido la ocasión de hace lo.
Es os son la p og amación concu en e, implemen ación de se icios c ip og á icos en C#. Po es os mo i os
el p oyec o no solo ha posibili ado pone en p ác ica conocimien o ya adqui ido sino ambién adqui i nue as
compe encias.
Conside o que se ha log ado cumpli con el obje i o con un buen g ado de sa is acción ya que la
con igu ación se ealiza de o ma au omá ica en más de un sis ema ope a i o y en más de un na egado web.
33
Fuen es de in o mación
Pa a la ealización de es e p oyec o se han consul ado uen es an o i uales como en sopo e ísico, se han
consul ado uen es lo más ac uales posibles.
Las uen es de sopo e ísico han sido los siguien es lib os:
•Beginning Visual C# 2012 P og amming, esc i o po Ka li Wa son, Jacob Vibe Hamme , Jon D.
Reid, Mo gan Skinne , Daniel Kempe y Ch is ian Nigel. Publicado po W ox, año 2013.
◦Se consul a on los capí ulos 19 (in o mación gene al sob e desa ollo de se icios web con
ASP.NET) y 23 (In o mación básica sob e LINQ).
•Visual S udio 2012 And .NET 4.5 Expe De elopmen Cookbook, esc i o po Abhishek Su .
Publicado po PACKT Publishing, año 2013.
◦Se consul ó el capí ulo 3 (p og amación asínc ona en .NET).
•Codes And C yp og aphy, esc i o po Dominic Welsh. Publicado po Ox o d Uni e si y P ess, año
1988.
◦Se consul ó el capí ulo 11 (c ip osis emas de cla e pública).
Las uen es de in o mación en la ed han sido las siguien es:
•In o mación gene al sob e Windows P esen a ion Founda ion (WPF)
◦h p://msdn.mic oso .com/es-es/lib a y/ms754130%28 = s.110%29.aspx
•In o mación gene al sob e las dis in as amas del egis o de Windows
◦h p://msdn.mic oso .com/en-us/lib a y/windows/desk op/ms724836%28 = s.85%29.aspx
•Cómo ins ala y desins ala lib e ías de enlace dinámico (DLL) en Windows
◦h p://www.sophos.com/es-es/suppo /knowledgebase/14343.aspx
◦h p://s acko e low.com/ques ions/3474988/wha -does- egs 32- ilename-ax-ac ually-do
•In o mación sob e implemen ación de ci ado simé ico en C#
◦h p://www. echnical- ecipes.com/2013/using- sa- o-enc yp -la ge-da a- iles-in-c/
•In o mación sob e implemen ación del algo i mo AES pa a ci ado simé ico en C#
◦h p://www.gu games.com/pos /AES-Enc yp ion-in-C.aspx
•Gene ación a anzada de núme os alea o ios pa a se icios c ip og á icos
◦h p://www.do ne pe ls.com/ ngc yp ose icep o ide
•In o mación gene al sob e cómo usa Windows Managemen Ins umen a ion (WMI)
◦h p://msdn.mic oso .com/en-us/lib a y/aa389763%28 = s.85%29.aspx
◦h p://msdn.mic oso .com/es-es/lib a y/sys em.managemen .managemen objec sea che
%28 = s.110%29.aspx
◦h p://msdn.mic oso .com/en-us/lib a y/aa394346%28 = s.85%29.aspx
◦h p://www.d eamincode.ne / o ums/ opic/288487-wmi-win32-use accoun -excep ion/
•Uso de WMI pa a ob ene el núme o ID del usua io con sesión iniciada
◦h p://social.msdn.mic oso .com/Fo ums/ s udio/en-US/dc973 8c-4 d9-41 3-82a9-
3646721e9dbd/how- o- e ie e-a- emo e-use s-sid-using-wmi? o um=csha pgene al
34
•In o mación sob e la clase Win32_Use Accoun pa a ob ene da os del usua io median e WMI
◦h p://msdn.mic oso .com/en-us/lib a y/aa394507%28 = s.85%29.aspx
•In o mación sob e ob ención de alo es del egis o en C#
◦h p://msdn.mic oso .com/en-us/lib a y/mic oso .win32. egis ykey%28 = s.110%29.aspx
•In o mación sob e egis os de desins alación de so wa e
◦h p://msdn.mic oso .com/en-us/lib a y/aa372105%28 = s.85%29.aspx
◦h p://msdn.mic oso .com/en-us/lib a y/ms954376.aspx
•Cómo sabe si una ins ancia de una clase de C# iene una p opiedad o un mé odo
◦h p://s acko e low.com/ques ions/5114469/how- o-check-whe he -an-objec -has-ce ain-
me hod-p ope y
•Cómo desins ala so wa e ins alado en Windows usando C#
◦h p://s acko e low.com/ques ions/9126104/how- o-unins all-so wa e-using-c-sha p-by-
calling-so wa e-unins alls ing-lis
•Consul a sob e exis encia de una subcla e en el egis o
◦h p://s acko e low.com/ques ions/13728491/opensubkey- e u ns-null- o -a- egis y-key- ha -i-
can-see-in- egedi -exe
•Cómo sabe desde código C# si el sis ema ope a i o usado es de 64 bi s o de 32 bi s.
◦h p://s acko e low.com/ques ions/14423057/how- o-check-i -os-is-32-bi -os-o -64-bi
•Cómo accede a con oles de usua io en una in e az ma icial en WPF
◦h p://s acko e low.com/ques ions/1511722/how- o-p og amma ically-access-con ol-in-wp -
g id-by- ow-and-column-index
•In o mación gene al sob e implemen ación de ba as de p og eso en WPF
◦h p://www.wp - u o ial.com/misc-con ols/ he-p og essba -con ol/
•In o mación gene al sob e p og amación concu en e aplicada a ac ualización de in e az de usua io
◦h p://s acko e low.com/ques ions/4253088/c-upda ing-gui-wp -using-a-di e en - h ead
•Tabla de ca ac e es en codi icación Unicode UTF-8
◦h p://u 8-cha able.de/unicode-u 8- able.pl?u 8=0x&unicodeinh ml=hex
•T aducción de is as bina ias a ex o, eliminando ca ac e es de con ol
◦h p://s acko e low.com/ques ions/4500870/how- o- emo e-con ol-cha s- om-u 8-s ing
•In o mación sob e la inclusión de si ios web en modo compa ible de In e ne Explo e 11 en su
egis o de Windows
◦h p://je g a es.me/2014/02/19/modi ying-ie-compa ibili y- iew-se ings-wi h-powe shell/
•Iconos de uso lib e usados en el p oyec o
◦h ps://www.icon inde .com/icons/27831/add_blue_minus_new_plus_icon#size=128
•Imágenes de ULPGC usadas en el p oyec o
◦h p://www.ulpgc.es/index.php?pagina=iden idadg a ica& e =inicio&
•Compa ación de a ays usando LINQ
35
◦h p://s acko e low.com/ques ions/43289/compa ing- wo-by e-a ays-in-ne
•LOPD de la Agencia Española de P o ección de Da os
◦h p://www.agpd.es/po alwebAGPD/canaldocumen acion/legislacion/es a al/index-ides-
idphp.php
•Ins alación de ce i icados digi ales del o ma o X509 en C#
◦h p://s acko e low.com/ques ions/16276213/issue-ins alling-x509ce i ica e2- om-c-sha p-
code
•In o mación sob e el di ec o io pe sonal AppDa a en Windows
◦h p://windows.mic oso .com/en-us/windows-8/wha -appda a- olde
•Manual de Adobe del adminis ado , apa ado 1.6
◦h p://eddiejackson.ne /web_documen s/Ac oba _En e p ise_Adminis a ion.pd
•In o mación sob e el pa ón de pensamien o Lean en el ma co de abajo de Sc um
◦h p://msdn.mic oso .com/es-es/lib a y/jj161049.aspx
•In o mación sob e Sc um y Lean So wa e De elopmen
◦h p://es.wikipedia.o g/wiki/Sc um
◦h p://es.wikipedia.o g/wiki/Lean_so wa e_de elopmen
◦h p://msdn.mic oso .com/es-es/lib a y/hh533841.aspx
•Di e encias en e C# y Visual Basic aplicados en .NET
◦h p://suppo .mic oso .com/?kbid=308470
•In o mación sob e halla e sión de In e ne Explo e ia egis o de Windows
◦h p://social.msdn.mic oso .com/Fo ums/windowsazu e/en-US/b5 47548-69d5-499c-be60-
de6ec78ce182/how- o-ge - he- e sion-o -ie-p og amma ically-and- eliably
•Ejemplo de p og amación concu en e en C#
◦h p://www.albaha i.com/ h eading/pa 3.aspx
•In o mación sob e di e en es es a egias pa a ob ene un UID de usua io
◦h p://en.wikipedia.o g/wiki/Uni e sally_unique_iden i ie
◦h p:// ools.ie .o g/h ml/ c4122
•Manipulación de ce i icados digi ales en C#
◦h p://www.p og amandoamedianoche.com/2009/08/u iliza -ce i icados-digi ales-desde-ne /
◦h p:// yk o 5k.blogspo .com.es/2010/06/how o-lee -ce i icados-digi ales-en-c.h ml
◦h p://p og amacion.com/a iculo/ abaja _con_ce i icados_digi ales_desde_ne _i_838
◦h p://www.p og amacion.com/a iculo/ abaja _con_ce i icados_digi ales_en_ne _ii_847
•Uso de comandos de consola desde C#
◦h p://s acko e low.com/ques ions/437419/execu e-mul iple-command-lines-wi h- he-same-
p ocess-using-ne
◦h p://s acko e low.com/ques ions/1469764/ un-command-p omp -commands
•In o mación y ejemplos de uso de a iables de en o no en Windows
◦h p://ss64.com/n /syn ax- a iables.h ml
36
Anexo
Diag amas de secuencias
En es e apa ado amos a e las dis in as si uaciones que se gene an dependiendo de las acciones ealizadas
po el usua io en el p og ama. P ime o emos el diag ama co espondien e al a anque del p o o ipo, se
in e p e an los a chi os de con igu ación y se comp ueba si el equipo es sis ema sopo ado.
Es e diag ama ep esen a la in e acción de los módulos al ealiza una ins alación au omá ica
37
Ilus ación 19: Diag ama de secuencias, ca ga inicial
Ilus ación 20: Diag ama de secuencias, ins alación au omá ica
Es e diag ama ep esen a la in e acción de los módulos al ealiza una ins alación pe sonalizada:
Es e diag ama ep esen a la in e acción de los módulos al ealiza una desins alación au omá ica:
Es e diag ama ep esen a la in e acción de los módulos al ealiza una desins alación pe sonalizada:
38
Es e es el aspec o de la pan alla p incipal:
En el menú de desins alación pe sonalizada emos que nos da la posibilidad de elimina componen es
ins alados po el p og ama.
45
Ilus ación 27: Menú de análisis del equipo, análisis posi i o
Desins alación de componen es
También se pueden elimina odos los componen es ins alados uno as o o au omá icamen e, desde la
opción 'Desins alación au omá ica'. Nos con i ma á la decisión:
46
Ilus ación 28: Menú de desins alación pe sonalizada
Ilus ación 29: Con i mación de desins alación au omá ica
Si se acep a, el p og ama p ocede a desins ala los componen es ins alados, as habe e minado, mos a á la
siguien e pan alla:
47
Ilus ación 30: Menú de desins alación au omá ica
Ayuda e in o mación de con ac o
Si el usua io iene cualquie duda, puede pone se en con ac o con los écnicos del depa amen o de
in o má ica de la ULPGC, puede consul a las o mas de con ac a en la opción 'Con ac o' del menú de
opciones
Po úl imo, si no se desea ealiza ninguna o a acción, se puede ce a el p og ama median e la opción 'Sali
del Con igu ado ' o pulsando sob e el bo ón 'X'.
48
Ilus ación 31: Menú de Con ac o