Você está na página 1de 216
Zee oe os E; Ls Hy ii oie Es, A at i Be : 4 patie Sr ie i a : i Hal E aN LH 3 et ; : : EDITORIAL UOC eed . ; ia Y silt dp Escaneando la Informatica Maria Jesus Marco Galindo Josep Maria Marco Sim6 Josep Prieto Blazquez Ramon Segret Sala (eds.) Primera edici6n en lengua espafola: junto 2010 © Joan Amedo Moreno, Jordi Cabot Sagrera, Isabel Guitart Hormigo, Francisco Javier Noguera Otero, Rafael Macau Nadal, Maria Jestis Marco Galindo, Josep Maria Marco Simé, Joan Antoni Pastor Collado, Josep Prieto Blizquez, Daniel Kiera Tertén, Jordi Tubella Murgadas, José Ramén Rodriguez Bermiidez, M.Elena Rodriguez Gonzalez, Ramon Segret Sala, del texto © Imagen de la cubierta: Istockphoto © Editorial UOC, de esta edicién Rambla del Poblenou, 156 08018 Barcelona wwweditorialuoc.com © Realizacién editorial: Sbnia Poch (spoch44@gmail.com) ISBN: 978-84-9788-110-4 Deposito legal: Impresién: Ninguna parte de esta publicaciou, Incluyenda el diseno general y de portada, no puede ser copiada, eproducida, alma cenada 0 transmitida de ninguna forma ni por ningtin medi, tanto si es eléctico, como quimico, mecénico, dptico, de grabacion, de fotocopia, 0 por otros medios, sin la autorizaciGn previa por escrito de los titulases dle copyright. © Editorial UOC 9 indice Indice Prdlogo 15 Presentaci6r 19 Capitulo I. Vision general de la informatica, Ramon Segret Sala sesssessessssnseeeseeeeseees ‘ 23 . DIO: ere eee neem 0 23 2. La actividad profesional relacionada con la informatica 28 a i TN eneomnnnennyrmnnenrermernneereneennnpennnmnanmnnennennnenananenttrte ih 4. La tecnologia informatica 32 4.1, Tecnologia del hardware ....cccceeeeceseeneeeneseenennn 32 4.2. Tecnologia del software as 5. 6n, formaci6n, consultoria, auditoria y peritaje 40 6. Direccién de empresas, departamentos y equipos informaticos 43 7. Comercializacién de productos y servicios informaticos occ 44 Resumen 45 Capitulo II. Arquitectura de los sistemas informaticos, Jordi Tubella Murgadas 47 . Introduccién sa 47 2. Software de los sistemas informéticos ..... 49 2.1. Aplicaciones web 49 2.2. Sistemas distribuidos 52 2.3. Sistema operativo 0 54 3. Hardware de los sistemas informaticos .. 56 3.1. Unidad central de proceso . 87 3.2. Subsistema de memoria 59 3.3. Subsistema de entrada/salida 60 © Editorial UOC 10 Escaneando la Informatica 3.4. Buses 62 4. El sistema binario 63 5. Historia . 65 6. Salidas profesionales. ..... - 69 Capitulo III. Redes de comunicaciones, Joan Amedo Moreno... 71 1. Introduccién 71 2. Una vision general de las redes de comunicaciones. 72 3. Las redes y nuestro entorno . 73 4. La red de redes: Internet 75 4.1, World Wide Web 76 5. Las redes de area local 80 5.1. Principios de la red Ethernet 80 2. Dispositivos en la red Ethernet 82 6. Las redes de area extensa .... . 83 6.1. Tipos de enlace en una WAN e os 84 7. Las redes de comunicaciones sin iOS .acscesecenese BS 8. Las redes de comunicaciones y la seguridad 87 8.1. _gHacker o cracker? 88 8.2. Principales problemas 89 8.3. Servicios y mecanismos de seguridad ..u.cccussueinnes 90 8.4. Un ejemplo sencillo y actual: Wardriving o1 9. La cartera del experto en redes de comunicaciones. 93 9.1. El estudio de las redes de comunicaciones .. 94 9.2. Perspectivas profesionales 94 3. El reciclaje profesional 99 Capitulo LY. Programaci6n, Francisco Javier Noguera Otero y Daniel Riera Terrén .. 101 1. Introduccién sotitsanateessinnecenee 101 2. {Qué es un programa? Quién programa? ...ceeenee 102 3. Historia eel 103 3.1. La primera programadora ....... 104 3.2. Prehistoria de la programaci6n ... 105 © Editorial oc n Indice 3.3._El primer programa en la memoria 106 3.4. Generaciones . 108 4. Algoritmica .. 114 4.1. Las bases 11s 4.2. Conceptos avanzados 120 5. Traducci6n de cédigo fuente a codigo maquina . 122 5.1, La compilacién . 122 5.2. La interpretacion 123 3. Cédigo intermedio 123 6. Paradigmas de programacién sere 124 6.1. Programacién desestructurada o spaghetti. 124 6.2. Programaci6n procedimental (0 imperativa) . 125 6.3. Programacién orientada a objetos 125 6.4. Programaci6n orientada a aspectos 125 6.5. Otros paradigmas 126 7. Lenguajes de programacién 127 7.1. Los lenguajes mas utilizados .. 128 8. Software libre 133 9. BI mundo labora 134 10. Apéndice 135 10.1. Premios A. M. Turin; 135 10.2. Fjemplo de cddigo de programacién ofuscada en C 137 Capitulo V. Gestién de datos: bases de datos y sistemas gestores de bases de datos, M. [lena Rodriguez Gonzdlez 139 Intioducci6n Concepto de base de datos ws Evolucion del area de bases de datos 3.1. Los modelos de datos prerrelacionales a ‘1 7 3.3. Los modelos de datos posrelacionales 3.4. Otras tendencias . — “ 4. Objetivos de los sistemas de gestién de bases de datos 4.1. Ejecucién de operaciones no predefinidas y complejas 149 4.2. Flexibilidad e independencia ...... 151 4.3. Integridad ante los cambios .... 151 © Editorial UOC 2 Escaneando la Informatica 4.4, Concurrencia y recuperacion. 153 4.5. Acceso eficierte ....... 156 4.6, Seguridad suns 157 5 : * 59 5.1, Fundamentos del modelo de datos relacional sus 159 Sods Nissi ppilacion’ des basts de tates Hebiionialel ConSOL 161 6. Salidas profesionales ... 165 6.1, Disefiadores de bases de datos 166 6.2. Programadores de aplicaciones de bases de datos 167 6.3. Administradores de bases de datos... 168 Capitulo VI. Ingenieria del software, Jordi Cabot Sagrera . 169 1, Introduccién see 169 2. {Qué es la ingenieria del software? sess: Scenes “ABE Evolucién histori 174 4. Presente de Ja 1S ” 176 4.1, E11 Unified Process. vt 172 4.2. ELUML (Unified Modeling 1 cana 181 5. Tendencias 189 3.1. Ingenieria web 189 5.2. Desarrollo de software ditigido por Modelos vucuwcns 190 5.3. Reutilizacion : = z 191 5.4. Verificacion y validacion 192 5.5. Métodos de desarrollo Agiles .. 194 5.6. Lenguajes especificos de dominio 195 6. Salidas profesionales 196 Capitulo VII. Sistemas de informacién (en lasorganizaciones), Josep Maria Marco Simé, Maria Jestis Marco Galindo, Rafael Macau Nadal, Joan Antoni Pastor Collado, José Ramon Rodriguez Bermiidez ¢ Isabel Guitart Hormigo 199 1. Introducci6n 199 2. Una definicion de Sistema de Informaci6n .... 201 3. Un par de clasificaciones clementales de los SI 204 © Editorial UOC 13 indice 4, Profundizando en el papel de los SI en las organizaciones . 206 5. La evoluci6n (hist6rica y tipo) de los SI en las organizaciones . 209 6. Un catélogo de los SI. 213 6.1. Sf operacionales (0 transaccionales) 215 6.2. SI decisionales (tacticos y estratégicos) .. 217 6.3. Otros ST especializados... 220 7. Los roles profesionales de los SI saa 223 7.1. Los roles de direccién y de gestion (de manag 223 7.2. Los roles para la gestion funcional de los SI. 231 8. La estructura y la organizacién del departamento de SI 236 9, ;Conclusiones? . 240 Glosario 243 Bibliografia 253 image not available © Editorial UOC 16 Escaneando la Informatica Es evidente que se han alcanzado plenamente los objetivos planificados, El libro que tenéis en las manos no es un tratado tradicional, mas o menos extenso, de informatica, sino una introduccidn a los ambitos y las profesiones de la informatica desde una perspectiva practica y Gtil para estudiantes nove- les y lectores en general, que los ayude a definir y perfilar su trayectoria aca- démica de acuerdo con sus objetivos, en el caso de los primeros, o simplemen- te a tener una idea mas amplia de la informatica, en el caso de los segundos Para poder dar esta vision amplia y diversa del alcance y campos de operacion de la informatica y de los expertos y profesionales que la desarrollan y apli- can, la UOC ha hecho lo que hacia falta: ha constituido un equipo de profe- sores de los Estudios de Informatica, Multimedia y Telecomunicacién, cada uno de ellos con experiencias diversas, tanto en el émbito profesional como en el de la docencia Si a este perfil de experiencia personal en campos diferenciados de la infor- matica, sumamos la vision particular del concepto de formacién alcanzada a la UOC, después de mas de diez afios de ejercer como profesores, el resultado es previsible: un texto claro, pensando en el usuario, que en este caso tiene que asi- milar aquello que es la informética y no, en esta etapa inicial, aprender infor- matica. A partir de esta visién global inicial y de su trayectoria académica y pro- fesional en que se implique, tiempo tendra para definir con mas prec 6n las opciones académicas que mejor se adapten a sus necesidades. Desde el Capitulo primero, que ofrece una vision general de la informatica hasta el tiltimo Capitulo, el séptimo, que trata de los sistemas de informacién en las organizaciones, los autores van exponiendo de forma metédica y simple, sin grandes elucubraciones te6ricas, los aspectos fundamentales de la arquitec- tura de los sistemas informaticos, de las tedes de comunicaciones, de la progra- acion y de la gestion de datos. Todos o parte de estos Ambitos pueden ser des- arrollados posteriormente por el estudiante, mediante las adecuadas materias, o para el lector en general a partir de la bibliografia propuesta. Tengo que decir que para mi ha sido una satisfaccion prologar este libro que ofrece una visién panoramica de una materia basica como es hoy la informé tica, La informitica fue la pieza clave para concebir, hace quince aflos, un nuevo modelo de ensefanza a distancia -sin distancias, decia yo- con el fin de poder superar las barreras del tiempo y del espacio, también de poder garanti- zar la formaci6n a lo largo de la vida, la formacién ajustada a las necesidades de cada persona. image not available image not available © Editorial UOC 20 Escaneando la Informatica un primer curso de cualquier nivel de estudios (un ciclo formativo, una carrera universitaria oficial, un programa de reciclaje...) no conocen las diferentes caras que presenta la informatica, 0 lo que es peor, no tienen claro cual les resultaré més estimulante © cual encajara mas con sus competencias/habilidades. Para ellos, y también para sus profesores, que Uenen que poder ayudarlos explican- do los diferentes aspectos de la disciplina, creemoy que este texto puede resul- tar Gul, Asi pues, en las paginas que siguen hemos intentado dibujar un mapa de la informatica, desde la perspectiva del profesorado de los Estudios de Informatica, Multimedia y Telecomunicacin de la UOC, ahora que tenemos a las espaldas més de diez afios de experiencia formativa en esta materia y que hemos ido per- filando nuestra idea de qué significa hacer de informdtico en este rineén de Europa. Para dibujar este mapa, empezaremos el primer capitulo con una perspecti- va aérea, con un viaje que desgrana los nombres y los mundos de este ambito dejando claro que es ciencia y técnica, pero también servicios de instalacién, comerciales 0 de direccién. Por eso consideramos que este primer capitulo es imprescindible para todo el mundo que se acerque a este libro, ya que conden- sa su motivacién. Lo siguen un conjunto de capitulos que, organizados segtin un mismo esque- ma, desarrollan los diferentes aspectos presentados en el primero. Son capitulos introductorios, divulgativos, algunos con ms conceptos tedricos y otros con mAs explicaciones técnicas y practicas. En todos se incluye también una pince- lada de la evolucién histérica (que explica el momento actual) y de las profesio- nes relacionadas con ésta. Creemos que todos los capitulos son interesantes para un neGfito, pero es cierto que existe la posibilidad de que el lector escoja s6lo aquel que prefiere leer. Para los que opten por esto, hay que advertir que los capitulos siguen un cierto orden y que, en los tiltimos, se puede dar por sen- tado que se han leido los anteriores y que algunos aspectos ya son conocidos y se han comprendido. También queremos aclarar que, aunque demos una vision amplia, no es completa: hay aspectos que no mencionamos conscientemente (y que coinci- den con los que tradicionalmente no hemos incluido en nuestros planes de estudio). Entre éstos se encuentran tanto los que son tan nuevos que no consi- deramos todavia definidos de manera estable, como los que pertenecen a profe- siones informaticas que dificilmente tienen demanda en nuestro entorno. image not available image not available image not available image not available © Editorial UOC 26 Escaneando la Informatica este concepto de forma muy amplia.** S6lo tenemos que pensar en lo inde- fenso que es un bebé y cuanto tempo tarda en asimilar los componentes cul- turales minimos de su sociedad para poder moverse con autonomia. De hecho la cultura no seria un programa, sino mas bien un conjunto de pro- gramas, de los mas comunes a los més especializados. Todos los humanos, cada uno dentro de su sociedad, recibe y aprende un primer programa de las funciones mas basicas: comportamientos, lengua, relaciones con los demas, elc., y después a lo largo de la vida ira recibiendo y aprendiendo programas mas especializados que le permitirén desarrollar actividades especificas habra quien sea cirujano, quien sea albamil y quien sea periodista, por ejem- plo, Con todas estas similitudes: manipulacién de signos, almacenaje, comu- nicacién con el exterior, disefio generalista, multiplicidad de programas para poder actuar, nos puede surgir una especie de pesas, como humanos, al ver que una simple maquina, el ordenador, se nos parece demasiado. De hecho, ha habido quien ha sostenido que el ordenador podré llegar a hacer todas las funciones de una mente humana, y eso, evidentemente, nos inquieta. Pero por otra parte hay también muchos pensadores que dicen claramente que muchas de las funciones que consideramos superiores del ser humano nunca 3. Rita Levi Montalcini, nacida en Turin en 1909, investigadora del sistema nervioso y premio Nobel de Medicina en 1986, desarrolla estas ideas en el libro La gelaxia mente, publicado por Critica en el 2000. En la pagina 172 nos dice: Los hijos del hombre difieren de los demés mamiferos en la lentitud de su desarrollo somatico € intelectual, Io gue kes hace depender ce sus padres o sustitutos durante el periodo comprendide entre el nacimiento y le pubertad.” Y en la pagina 116 nos copia una cita de E. Boncinelli (A caccia di geni, 1997), que quizds todavia es mas graiica: “Con la especie humana, la evolucién biolégica s¢ ha superado a si misma y se ha caido en una especie de paradoja. En efecto, en nuestro caso la dotaci6n genética, ama casi absoluta de la vida y el comportamiento de los animales inferiores, ha abdicado volunteriamente, por decirlo de alguna manera, dejando un margen muy amplio a la accién del medio citcundante, al aprendizaje y a la educacién.” 4, Con respecto a qué ¢s la cultura lo podemos ilustrar con dos definiciones de dos antropélogos. La primera, mas conceptual, se debe a Alfred L. Kroeber (1876-1960), creador del Museo de Antropologia de San Francisco (FE.UU,). La segunda, mas enumerativa, es de Edward B. Tylor (1832- 1917), primer profesor de antropologia de la Universidad ce Oxford (Reino Unido). ‘La cultura consiste en formas de comportamiento, explicitas o implicitas, adquiridas y transmitic das mediante simbolos y constituye el patrimonio singularizador de los grupos humanos...” “La cultura [...] incluye el conocimientt, las creencias, el arte, la moral, el derecho, las costumbres y cualesjuiera otros habitos y capacidades adquiridos por el hombre dad.” como miembro de la socie- image not available image not available image not available © Editorial UOC 30 Escaneando la Informatica llas consideradas mas importantes en el momento actual en nuestro pais y que por eso son tratadas con més extension y profundidad en diferentes asig- naturas de las titulaciones de los Estudios de Informatica de la UOC. Antes de pasar a la relaci6n de las diversas actividades informaticas, ain una dltima puntualizacion, Al empezar este apartado hablabamos de los profesiona- les de la informatica como las personas que Uabajan “con” ordenadores Debemos matizarlo. En realidad hoy en dia casi todas las personas en el mundo laboral Wrabajan con ordenadores, por no mencionar otros usos de este artilu- gio, mas caseros que hacen que practicamente todo el mundo sea usuario en la actualidad, El matiz es que en los puntos que siguen no tendremos en cuenta las actividades que las personas llevamos a cabo como “meros usuarios” de los ordenadores sino s6lo aquellas actividades realizadas por personas cuya ocupa- cién profesional y laboral se encuadra precisamente dentro del mundo de los ordenadores. 3. La ciencia informatica Aunque la percepcién que tenemos de la informatica y de las comunicacio- nes sea tecnoldgica o perteneciente a la ingenierfa, detrés de la tecnologia hay unos principios cientificos que son las bases que han ayudado a desarrollarla. Es un principio general de nuestra época. En la revolucién cientifica del siglo xv y la industrial del xvi, ciencia y técnica todavia podian ir por separado, pero cada vez mis, y es asi desde principios del xx, ciencia y tecnologia se basan mutua- mente y no existe una sin la otra. Es el tiempo de la llamada tecnocienci: Los conocimientos cientificos de la informatica constituyen un corpus que es lo que los anglosajones Haman computer science. Una telacién, evidentemen- te no exhaustiva, de estos temas de conocimiento cientifico incluye el algebra de Boole, las teorias de la calculabilidad y de la complejidad, la optimizacion de algoritmos, los lenguajes formales y las gramaticas regulares, los autématas, los grafos, la légica y la deduccién formal, los algoritmos de codificacion y compresién, los conocimientos del campo de la criptografia, los modelos de bases de datos, como por ejemplo el modelo relacional y la teoria de la norma- lizaci6n. Esta lista debe completarse con los conocimientos més especificos del image not available image not available image not available © Editorial UOC a4 Escaneando la Informatica 4.1.2. La arquitectura de la red de ordenadores Ya hemos visto en la introduccion que hoy dia los ordenadores no trabajan casi nunca como maquinas aisladas sino que estén conectados entre ellos for- mando redes, compartiendo datos y programas, cosa practicamente Indispen- sable para poder hacer nuestro trabajo. “Arquitecturar” todo este conjunto es tomar una serie de decisiones a la hora de conectar los ordenadores para as gurar su funcionalidad adecuada sin olvidar sacar el maximo de rendimiento, disponibilidad, flexibilidad y otras cualidades que son las que en definitiva nos daran la utilidad del sistema informatico resultante. Cuando hablamos de las decisiones de la arquitectura de la red de ordena- dores nos referimos a cosas como la topologia de la red, la jerarquia y la fun- cionalidad de las diversas maquinas de la red, la tecnologia de comunicaciones que utilizaremos o el ancho de la banda, Esta es un drea importante de conocimientos informaticos 0, mejor dicho, de conocimientos (elematicos, a caballo entre la informatica y las comunica- ciones. Los profesionales que se dedican a este tipo de disefto, de forma para lela a los que disefian ordenadores, trabajan también fundamentalmente en las empresas constructoras de equipos informatico (hardware), tanto de ordenado- res como de los diferentes elementos fisicos de las redes, En este mundo abier- to en que toda maquina se tiene que poder conectar en red adquiere una espe- cial relevancia la cuestién de los estandares, Las empresas constructaras inten- tan que su manera de resolver las diferentes opciones arquitecturales se con- vierta en un estandar de facto, obligando asia los demas competidores a adop- tar sus soluciones. En esta lucha de los estandares no sélo las empresas cons- tructoras tienen voz sino que muchas veces es la universidad la que compara soluciones y propone estandares asi como también las asociaciones de empre- sas usuarias que participan en su adopcién. Tanto por lo que acabamos de decir como por el hecho de que las empresas tienen que poder decidir, montar y explotar la red de ordenadores de forma Optima para sus necesidades, los informaticos con buenos conocimientos en este campo los encontramos también hoy dia en practicamente cualquier ins- talacion informatica de cierta importancia image not available image not available image not available © Editorial UOC 38 Escaneando la Informatica caci6n informatica se puede dividir conceptualmente en tres partes o frentes: la interfaz del usuario, el proceso y los datos. Esta division es posiblemente mas apropiada para hablar de perfiles profesionales y de conocimientos diferentes en esta area de la ingenieria del software. Asi que tenemos profesionales dedicados a crear las interfaces de la aplicacion con los usuarios, un aspecto de vital importancia ya que serd finalmente el usua- rio de la aplicacién quien la utilice con eficacia o la acabaré abandonando, dependiendo en primer lugar de la facilidad o la dificultad para comunicarse y entenderla, S6lo hay que pensar en las miltiples webs existentes hoy dia, En segundo lugar tenemos a los profesionales dedicados a la gestion eficien- te de los datas, que representan hoy dia otra amplia area de trabajo. Son los res- ponsables de la agrupaci6n segura y eficiente de los datos (primero ficheros, des- pués bases de datos y actualmente los grandes almacenes de datos) y de su ges- tidn. También son los especialistas en la explotacién de los datos: hay que ponerlos, asi como su significacién (la informacién), al servicio de programas y de usuarios de todo tipo que los necesiten. Por tiltimo tenemos a los profesionales dedicades al proceso. Son los que uti lizaran las técnicas de los diferentes sistemas 0 paradigmas de programacién para construir los programas. Como es un area tan extensa los profesionales que se dedican a ella suelen ser bastante numerosos en nuestro pais. Son los que disenan y consiruyen los sistemas de software, segtin las especializaciones mencionadas. Trabajan nor- malmente en las empresas que se dedican a esta actividad. Pero los podemos encontrar también en cualquier otra empresa como profesionales que reciben, validan y mantienen los sistemas informaticos encargados fuera. Y en estas empresas usuarias los podemos encontrar incluso como desarrolladores de solu- ciones a medida o adaptaciones. 4.2.2. Otras caracteristicas del software y de su ingenieria Aunque conceptualmente el proceso de la ingenieria del software sea lo mismo para todas las posibles aplicaciones que se quieran construir, si lo mira- mos desde el punto de vista de las organizaciones o empresas usuarias de estas aplicaciones y de sus profesionales informaticos creemos que sera esclarecedor hacer una pequefia digresion. Se trata de hablar de la clasica division entre soft. ware basico y software de aplicaciones. El software basico es la capa de software image not available image not available image not available © Editorial UOC 2 Escaneando la Informatica La auditoria, aunque muy relactonada con la consultoria, es una actividad dirigida no tanto al asesoramiento para la resolucion de un problema concre- to sino dirigida al asesoramiento para establecer el estado de un area mas amplia de los sistemas informaticos de una organizacion. Seria, por ejemplo, el caso en que los responsables de una empresa quisieran saber cOmo se d arrollan las aplicaciones informaticas en su casa: si se utilizan las técnicas adecuadas, si se sigue la metodologia prescrita, si los costes son aceptables, ele. Otro ejemplo podria ser revisar todos los aspectos relacionados con la seguridad del sistema informatico. Son estudios que pueden ser verdadera- mente complejos. Pensemos, con respecto a este tltimo ejemplo, en la gran cantidad de disciplinas que intervienen para calibrar la seguridad: desde temas informaticos como las copias de seguridad de archivos hasta temas de ingenierfa civil como la resistencia de las instalaciones ante un terremoto o unas inundaciones. En dltimo lugar, la actividad informatica tiene también implicaciones juridicas ya que puede ocasionar conflictos que se terminan dirimiendo en un juicio. Los profesionales informaticos que estudian uno de estos casos y presentan sus pruebas y conclusiones en un juicio son los peritos informati- cos y su trabajo es el peritaje informatico Consultores, auditores y peritos son normalmente informaticos séniores que por un lado han adquirido una s6lida experiencia en diferentes aspectos de la profesién informatica tal como los hemos ido viendo hasta ahora y por otra se han formado en las técnicas especificas de cada una de estas activida- des, Es decir, combinan conocimientos profundos de varias areas informati- cas con otros especificos como pueden ser los aspectos legales relacionados con las cuestiones informaticas 0 los diferentes estandares del mundo infor- matico. Estos tltimos son muy importantes, sobre todo en auditoria, porque dan normalmente una base con la cual comparar el estado del area empresa- rial que se tiene que auditar. Consultores, auditores y peritos muchas veces combinan todas estas actividades. Son profesionales que encontraremos tra- bajando en empresas especializadas en estos servicios 0 bien como freelance 0 a veces combinando también las dos actuaciones. image not available image not available image not available image not available image not available image not available © Editorial UOC 50 Escaneando la Informatica 2.1.1. Acceso a la web Las paginas web ofrecen un contenido multimedia que puede incluir texto, imagen y sonido, asi como referencias a otros elementos de informacion siguiendo el modelo de los sistemas hipertexto. La navegaci6n siguiendo los hipertextos consiste en presentar en un documento un enlace aun recurso dife- rente y ofrecer mecanismos para acceder de manera inmediata. El servicio web sigue el modelo cliente/servidor. En el modelo cliente/servidor de un sistema distribuido hay un cliente que solicita un determinado servicio a tra- yés de un computador y un servidor que proporciona ese servicio desde otro com- putador. Las paginas web contienen basicamente dos elementos: la informacién y la manera como se tiene que presentar esta informaci6n. cifica siguiendo el estandar HTML. El servidor de la pagina web tiene la infor sta informacion se espe maci6n almacenada. El cliente se encarga de solicitarla y presentarla al usuario a medida que la va obteniendo. Hay diferentes servidores y clientes web. Los clientes mds conocidos son: Mozilla (que es de cédigo abierto y es continuacién de Netscape) y el MS-Internet Explorer. El servidor més utilizado es Apache, un servidor de software libre (www.apache.org). La comunicacién entre el cliente web y el servidor web se hace a través del protocolo HTTP. Este protocolo permite tanto que el cliente baje datos del ser- vidor (operacién de consulta de paginas web) como que el cliente envie datos al servidor (p. ej. cuando se Hena un formulario o cualquier otra informacién que se envia al servidor). Las paginas que almacenan los servidores en un primer momento eran estati- cas (siempre son iguales y se presentan de la misma manera). Una primera evolu- cin fueron las paginas dindmicas, que consisten en que la pagina que se devuel- ve al usuario que accede al servidor web se genera en el momento del acceso. Esto es asi porque en realidad no se estd accediendo a un fichero (como es el caso de las paginas estaticas) sino a un programa que formatea el resultado de su ejecu- cién como si fuera una pagina web. Esta manera de funcionar es la que utilizan las aplicaciones que tienen una interfaz web (p. ej. el campus virtual de la UOC). El siguiente paso fue conseguir que la pagina que recibe el navegador incluya un c6digo que permite que la pagina se presente de manera diferente segtin el clien- te que lo ejecute. Lo cual ha dado mucha més potencia a la hora de utilizar la web como interfaz de aplicaciones. image not available image not available image not available © Editorial UOC s4 Escaneando la Informatica * Tolerancia a fallos del sistema. Cuando un componente del sistema falla, tendria que seguir funcionando el sistema global sin problemas. * Concurrencia. Los diferentes componentes de un sistema distribuido pue- den pedir acceder a un recurso simulténeamente. Es preciso que el sistema esté disefiado para permitislo. + Transparencia estén ocultos en las aplicaciones, como por ejemplo la ubicaci6n de un La Uansparencia persigue que ciertos aspectos del sistema recurso o la replicacién de los datos. 2.3. Sistema operative La tltima capa de software esté formada por el sistema operativo. El sistema ope- rativo se encarga de coordinar el hardware del computador y la entrada y la sali- da, el almacenaje y el procesamiento. Cada computador debe tener un componente de software que se tiene que activar cuando el computador se pone en marcha. Este componente puede residir en la memoria ROM, en el disco duro o bien en un disco externo que se inserta en el momento ini |. Los primeros computadores tenian cada uno un sistema operativo propio, por lo cual los programas disefiados para una méquina en concreto no se podian ejecutar en un modelo diferente La universalizacin de los sistemas operativos empieza con el sistema ope- rativo UNIX. Los origenes se remontan a 1968. Tras un intento que no crista- liz6, en 1969 Ken Thompson y Dennis Ritchie consiguieron completar este sistema operativo y fue el primer escrito totalmente en un lenguaje de alto nivel, el lenguaje C.? Eso permitié trasladar facilmente este sistema operativo a otras mAquinas ¢ hizo aumentar la popularidad de la filosofia UNIX. También hay que mencionar que a partir del primer computador personal (IBM-PC en 1971) la empresa Microsoft disefié un sistema operativo para esta maquina (PC-DOS) y para cualquier computador PC compatible (MS-DOS). Eso constituy6 un punto de inflexion para extender el uso de los computado- 2. BE] lenguaje de programacién C es el més usado en el desarrollo de sistemas operativos, asi como en el desarrollo de aplicaciones, aunque en este punto cada vez se opta mas por sus lenguajes suce- sores C+ y Java, Se combina la robustez. de los lenguajes de alto nivel con la eficiencia de poder trabajar muy cerca de los lenguajes maquina de los computadores. Todo esto se explica en profun- didad en el capitulo “Programacién”, image not available image not available image not available image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available © Editorial UOC 64 Escaneando la Informatica operandos. Como podéis imaginar, programar utilizando el lenguaje maquina de unos y ceros es muy pesado para las personas. Por eso los programadores utilizan una representacion textual del programa en que se utilizan unos codi- gos mnemotécnicos para indicar el codigo de operacion y los operandos. Los programas escritos de esta manera utilizan el Hamado lenguaje de ensambla- dor. Debe existir un proceso de traduccién de los programas escritos en lengua- je de ensamblador a lenguaje maquina antes de poder almacenarlos en la memoria del computador para ser ejecutado. En la tabla s como se definen en un programa hecho con lenguaje de ensamblador y tal guiente se dan algunos ejemplos de datos e instrucciones tal como se representan en el computador (suponiendo que disponemos de 16 bits de medida para los datos y las instrucciones). Lenguaje de Lenguaje miquina | Sigrificado ensamblador a: word 10 (000000000001010 (binario) Declaracién o creacién de la variable de nombre a, que se inicializa al valor entero 10. Los enteros se representan en el formato denominado complemento a 2. 000A (hexadecimal) b: word -2 qaaaaaiiiin6 (binario) Declaracién de la variable b, inicializada al vaior entero - 2 FEFE (hexadecimal) ADD R3, RI, RZ 0101001100010010 (binarioy y deja el resuitado en R3. Fl formato de la instruceién determina que los primeros 4 bits son el cédigo de opera- i6n, que los operands son registros y que cada registro se specifica en 4 bits, 5312 (hexadecimal) ADDI RI, 81, #1 0111000100010001 (binario) instruccién que incrementa el contenido del registro R1. El formato de esta instruccién determina que hay un registro, fuente espectficada en 4 bits, un registro destinacAldesti- nacinidestino}>, también de 4 bis, y un dato constante también de 4 bits que se guarda en fa misma instruccién en los bits de més a la derecha instruccién que suma el contenido de los registos Rly &2 | 7111 (hexadecimal) A modo de ejemplo también os mostramos un pequeito programa escrito en lenguaje de ensamblador que muestra por pantalla los nimeros cuadrados desde el 1° hasta el 10°. image not available image not available image not available image not available image not available image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available © Editorial UOC 7 Redes de comunicaciones Otra de las propuestas iniciales de arquitectura en capas, muy ampliamente referenciada, es la torre OSI (Open Systems Interconnection). En esta, las capas se dividen en diferentes niveles: aplicaci6n, presentacién, sesion, transporte, red, enlace y fisico Dado que abordar estos aspectos directamente y de una manera global es inviable, ya que corresponden a teméticas muy diferentes, se decidié crear un modelo arquitect6nico estructurado por niveles © capas. Cada nivel contendria sus propios mecanismos y protocolos para gestionar cada una de estas tareas y colaboraria con el resto de los niveles para Hevar a cabo la transmision de extre- moa extremo. En el caso de Internet, la propuesta de modelo planteado se bau- tiz6 como pila TCP/IP. Si bien esta explicacién es un poco técnica, si nos detenemos a pensar, este planteamiento no deja de ser el equivalente a establecer una jerarquia de res- ponsabilidades para dividir las tareas de cualquier organizacion. Supongamos que el director de una delegacién de una empresa de cierta enver: gadura quiere enviar un documento a un colega suyo de otra delegacién distan- te. Si hay una jerarquia de responsabilidades, el proceso podria ser el siguiente: * El director crea el documento, le da un formato determinado y lo entrega a su administrador, d4ndole el nombre del destinatario final. El director no tiene que saber en qué sede est ubicado fisicamente este destinatario, s6lo necesita el nombre. Una vez hecho eso, se desentiende del resto del proce- so y da por sentado que, de alguna manera, tarde o temprano, llegara a su destino. + FE] administrador entrega el documento al responsable de logistica, dan- dole el nombre de la persona a quien va dirigido. Durante todo el pro- ceso, su tatea sera encargarse de monitorizar cual es el estado de trafico del documento (si realmente ya ha Iegado al destinatario o si todavia esta en camino, porque puede tardar demasiado en Hegar, etc,). Si, des- graciadamente, el documento se pierde o resulta estropeado, serd el res- ponsable de imprimir una nueva copia y volver a poner en marcha el proceso de envio. De esta manera, el director de la oficina realmente se puede desentender de todo. + El responsable de logistica mete el documento dentro de un sobre correctamente empaquetado y como conoce en que sede estd ubicado el destinatario con el nombre que le han dado, escribe la diteccién com- pleta correspondiente (calle, ntimero, ciudad, etc.). Una vez el paquete estd listo, lo entrega al mensajero motorizado. image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available © Editorial UOC 84 Escaneando la Informatica ADSL). A través de este dispositive podemos tener conexion desde la red domés- tica con el resto de Internet. La gestion de los mecanismos utilizados para que los diferentes direccionadores estén interconectados entre si es una tarea de los operadores. 6.1. Tipos de enlace en una WAN Hay diferentes mecanismos que pueden utilizar los operadores para estable- n entre direccionadores en un enlace WAN cer la comunicaci Enlace punto a punto: En este sistema se dispone de una linea exclusiva de comunicaciones que esta disponible el cien por cien del tiempo y su comporta- miento es equivalente a un cable que conectara directamente los direccionado res. Los operadores cobran segtin el ancho de banda que permite el enlace. Un ejemplo de este mecanismo es PPP (Point-to-Point Protocol), que permite conectar maquinas directamente, como por ejemplo mediante el puerto en serie. Las velocidades de transmisién se indican mediante las iniciales del nimero de bits por segundo transmitidos. Asi pues, tenemos kbps (kilobits per second) 0 Mbps (megabits per second). Para este tipo de medida en concreto, se considera que un kilobit son 1.000 bits (no 1.024) y un megabit son 1.000.000 bits. Circuito conmutado: Se trata de una conexién de extremo a extremo que tiene que ser establecida antes de su uso y que hay que cerrar correctamente de alguna manera al acabar la transmisiOn. Eso implica unos ciertos retrasos. Su com- portamiento seria equivalente al de una linea telef6nica normal, en la que prime- to hay que marcar el ntimero (establecimiento de conexién) y al acabar se tiene que colgar (cierre de la conexién). Otro ejemplo de este mecanismo es la RDSI (Red Digital de Servicios Integrados), una tecnologia que permite usar la linea tele- f6nica para transmisién de datos de hasta 128 kbps. Actualmente esta tecnologia ya esté desfasada en favor del ADSL, si bien se suele usar como mecanismo de emergencia. Conmutacién de paquetes: En este tipo de conexién, las diferentes LAN comparten los recursos del operador y pueden enviar datos sin tener que espe- rar a establecer una conexién previa. En este sentido, la red del operador se comporta como si fuera una LAN: un medio compartido al que estan conecta- dos directamente todos los elementos que lo usan. Este sistema permite tanto la comunicaci6n 1-1 como la 1-N. Un ejemplo de este sistema es la tecnologia image not available image not available image not available © Editorial UOC 88 Escaneando la Informatica convertirla en una disciplina independiente, actualmente muy valorada, dentro de la ingenierfa informatica. Las complicaciones a la hora de crear una red de cierta envergadura que sea segura, junto con el hecho de que el usuario domés- tico tenga un desconocimiento absoluto sobre esta materia, ha convertido en un t6pico decir que el concepto de “seguridad de redes” es un oximoron. Dentro de este escenario, un problema aftadido es que, en su concepci6n ini- cial, los protocolos de red no fueron disefados pensando en la seguridad. En su momento ya suponia bastantes dificultades conseguir otros aspectos como Ia efi- ciencia o el coste de fabricacién de los elementos de la red. Por eso, nos encontra- mos con vulnerabilidad que no se debe realmente a errores reales de disefto, sino que ¢s inherente al mismo protocolo, y que por lo tanto no se pueden arreglar 0 corregir directamente. Se tiene que aprender a convivir con este hecho y ver qué vias tenemos al alcance para minimizar los efectos. 8.1. {Hacker 0 cracker? Si bien actualmente la palabra hacker esté totalmente establecida, se trata de un término incorrecto. Originariamente, definia a los progtamadores con un gran dominio de los sistemas informaticos. Era un término positivo. i se quie- re ser purista, la denominaci6n correcta para designar a una persona que irrum- pe en los sistemas seria cracker. Es bastante revelador que haya un montén de peliculas de Hollywood en las que la seguridad de las redes tiene un papel fun- damental. Desde Juegos de guerra (1983), en que un médem, ahora ya anticua- do, permite acceder a un superordenador militar, hasta Firewall (2006), en que el titulo ya hace referencia a un tipo de dispositivo fisico de seguridad, pasando por La red (1995), en la que la referencia a las redes también es obvia. Otras refe- rencias dentro de peliculas o series, sin entrar en su calidad, las podemos encon- trar en Superman 3 (1985), Los fisgones (1992), Ghost in the Shell (1995) Goldeneye (1995), Hackers (1995), Independence Day (1996), The Matrix (1999), Takedown (2000), Operacién Swordfish (2001), Battle Programmer Shirase (2003) o The Net 2.0 (2006), entre otras. Sin duda la figura del hacker, como el que itrumpe en siste- mas ajenos, estd plenamente presente en los medios de comunicacién de masas Por todos estos motivos es por lo que cualquier profesional que trabaje en el campo de las redes también tiene que ser consciente de esta problematica, ya que, desgraciadamente, formara parte de su dia a dia. En este apartado veremos unas pinceladas de los conceptos basicos de seguridad que hay que tener en cuenta. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available © Editorial UOC 93 Redes de comunicaciones cada, especialmente una que no pueda aparecer en ningiin diccionario de nin- gain idioma. En caso contrario, se es susceptible a ataques de prueba y error desde una lista de palabras. A este tipo de ataques se los conoce habitualmen- te como “ataques de diccionario”, Habilitar filtrado para MAC: Todos los dispositives en red tienen una dire ci6n tinica asociada con el hardware de red: la direccién MAC (Media Access Control). Hay que configurar el punto de acceso de manera que s6lo acepte aso- ciarse con las MAC de nuestros equipos. Para evitar que alguien pueda acceder a la red sin hilos mas alla de nuestras paredes, siempre se puede bloquear la sefial de alguna manera. Actualmente, en los Estados Unidos se estén desarrollando pinturas especiales que permiten hacerlo, crean jaulas de Faraday. Eso no garantiza una seguridad inexpugnable, pero si que nos protegera de la mayoria de los casos. En cualquier caso, hay que tener presente que nada evitard totalmente que terceras personas conozcan la existencia de un punto de acceso y que, por lo tanto, puedan intentar atacarlo para acceder a la red Asi pues, el lector que disponga de una conexién sin hilos para acceder a su linea de banda ancha tiene que ser consciente de que quizas la esta “compar- tiendo” de manera inadvertida con alguna otra persona, Si alguna vez veis un simbolo parecido a los que hemos mostrado aqui en una pared cercana a vues- tro domicilio, entonces habra legado el momento de actuar. Desde otro punto de vista, la situacién inversa también es cierta. Puede ser interesante buscar si se esta evaluando comprar una nueva vivienda, Pero la moral de la historia es sim- ple: en el momento en que se despliega una red de comunicaciones, la seguri- dad es muy importante. 9, La carrera del experto en redes de comunicaciones En este apartado veremos cual es el camino que sigue la persona que quie- te dedicar su carrera académica y profesional a la disciplina de las redes de comunicaciones. Asi, obtendremos una vision general de los aspectos que ten- dra que afrontar como estudiante y, segtin la especializacién deseada, qué otras disciplinas pueden complementar su formacion. image not available image not available image not available © Editorial UOC 97 Redes de comunicaciones Las posibilidades de progresién de la carrera profesional dependeran del tipo de empresa. Para cada caso, las tareas estaran focalizadas en diferentes ramas. Un gestor de redes debera tener, en mayor o menor medida, las siguientes capacidades: + Estar al dia de los diferentes dispositivos que existen en la actualidad y conocer sus caracteristicas. + Ser capaz de disefar una infraestructura de red de comunicaciones o ampliar una existente, escogiendo las mejores soluciones a su alcance. + Saber cémo conectar y configurar los diferentes equipos y servicios de comunicaciones. 9.2.3. Experto en seguridad o auditor En primer lugar es preciso poner de manifiesto que, actualmente, cualquier rol profesional debe tener un cierto grado de pericia en aspectos vinculados a la seguridad, Este hecho cada vez se valora mas y eventualmente se convertira en imprescindible dentro del mundo profe del auditor experto en este tema. Las responsabilidades inherentes a este cargo son poder evaluar la seguridad nal. Aun asi, también existe el papel de una red y poder establecer los mecanismos necesarios para que las empresas aleancen certificaciones de estandares internacionales de seguridad (como, por ejemplo, ISO 17799 0 ISO 27001). La adopcidn de estos estandares no sdlo es una medida de prestigio, sino que es obligatoria en algunos casos, como por ejemplo en el caso de empresas estrechamente vinculadas a la Administraci6n pablica. Normalmente, sélo las empresas de cierta envergadura o las muy especializa- das en oftecer servicios de telecomunicaciones, como los operadores, tienen en plantilla personas especificamente vinculadas a la seguridad de la red. En empresas mas pequefias, esta funcién se combina con la del gestor de redes. Aun, asi, existe todo un conglomerado de empresas que ofrecen este tipo de servicio, como pueden ser la mayorfa de las consultoras importantes. Un experto de seguridad tendra que pode * Ser consciente de las debilidades de las redes de comunicaciones y actuali- zar constantemente sus conocimientos sobre la nueva vulnerabilidad que apatezca. * Conocer los diferentes dispositivos, estandares y herramientas de seguridad de red. image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available © Editorial UOC 104 Escaneando la Informatica Los lenguajes de programacion evolucionan buscando la simplificaci6n de la tarea de programar y la reduccion de la probabilidad de cometer errores. 3.1. La primera programadora Charles Babbage (1719-1871) es considerado uno de los padres de la infor matica por su disefio de la “maquina analitica”. Ada Lovelace (1815--1852), hija de Anabella y Lord Byron, es reconocida por los historiadores como la primera persona que hizo un programa para ordenador. Fue su madre, Anabella, quien introdujo a Ada en las matematicas, quien, tras conocer a Charles Babbage, tra- dujo y amplié una descripeién de su maquina analitica. ‘Ada Lovelace (1815-1852): la primera programadora Los “nameros de Bernoulli” son una secuencia de nimeros racionales con unas ciertas propiedades complejas que Ios relacionan. Babbage nunca pudo completar la construccién de ninguno de sus disefios, principalmente por la falta de tecnologia y herramientas de precision de la ¢poca. Sin embargo, el tra- bajo que Ada Ilev6 a cabo con este modelo le ha hecho ganarse el titulo de pri- mera programadora de computadores del mundo. El primer programa que hizo calculaba nameros de Bernoulli. El nombre del lenguaje de programacién "Ada" se escogié para rendir homenaje a esta programadora. image not available image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available image not available aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available © Editorial UOC 129 Programacion 20, 30, ete.) dejando asi un espacio entre instruccién e instruccién por si se tent- an que afladir lineas posteriormente. El lenguaje de programacién BASIC (Beginner's All-purpose Symbolic Instruction Code) fue disefado ¢ implementado en el Dartmouth College (EE.UU.) para facilitar a los estudiantes de letras el acceso al ordenador, Por extensi6n, cualquier persona sin conocimientos clen- tificos podia utilizar un sencillo juego de instrucciones para escribir un progra- ma. ELBASIC se hizo popular a partir de la aparicién de los ordenadores domés- ticos que, a diferencia de los grandes computadores que habia en las universi- dades y en las industrias, disponian de muy poca memoria y espacio de disco Requeria menos recursos para ejecutarse que el resto de los lenguajes de la época, lo que lo hacia ideal para este tipo de ordenadores. Esta necesidad mini- ma de recursos y el hecho de que fuera sencillo de aprender hizo que la mayo- ria de los ordenadores domésticos levaran incorporado un intérprete de BASIC Precisamente fue en esta época y gracias a BASIC, cuando se fundé la com- pafifa Microsoft. Bill Gates y sus socios desarrollaron un intérprete de BASIC para el primer ordenador doméstico, el Altaif 8800. En 1975 pusieron en venta Altair BASIC y posteriormente desarrollaron nuevas versiones de Microsoft Basic para otras plataformas (Apple, IBM, etc.). Treinta aftos después es la mayor compaitia de software del mundo. El c6digo del “Hello World” en BASIC es el siguiente: [a0 pertn tonto wort" 7.1.2.C Los lenguajes anteriores a la aparici6n de C eran ampliamente utilizados para resolver problemas, pero no ofrecian un buen rendimiento ni eran aptos para la creaci6n de un sistema operativo. Los sistemas operativos estaban programados en codigo ensamblador, 1o cual implicaba que habia que desarrollar uno espect- fico para cada arquitectura. Se dice que el lenguaje C fue creado por el equipo de desarrollo de UNIX para poder jugar al juego Space Travel. Este juego estaba programado en ensamblador (como el sistema operativo), hecho que obligaba al equipo a volver a codificar- lo nuevamente cuando querian jugar en otro tipo de ordenador. En vez de eso crearon un nuevo lenguaje (llamado C) a partir de uno ya existente lamado B © Editorial UOC 130 Escaneando la Informatica El nuevo lenguaje era bastante flexible para permitir combinar las programacio- nes en bajo y alto nivel. Mediante un compilador especifico para cada arquitec- tura (que traducia de C al ensamblador de la maquina) podian obtener progra- mas ejecutables para diferentes ordenadores sin tener que cambiar el codigo fuente. En el ato 1973 el eddigo de UNIX se rescribié utilizando C. De esta manera, fue el primer sistema operativo no escrito en ensamblador. Eso aceleré y simplific6 la programaci6n para este sistema, lo cual se tradujo en un impor- tante avance en el desarrollo. EL hecho de que, a pesar de ser propiamente un lenguaje de alto nivel, oftez- ca la posibilidad de codificar también en bajo nivel para poder acceder a todos los recursos del ordenador, hace que C sea un lenguaje peligroso para princi- piantes. Aun asi, su potencia lo ha convertido en uno de los mas utilizados La sintaxis de C se muy permisiva. Tanto es asi que incluso hay concursos de “programacién ofuscada’, es decis, concursos en que se valora que el digo fuente no pueda leerse o incluso que forme bonitos dibujos de caracteres (véase un ejemplo en el anexo 2 de este capitulo). El e6digo del “Hello World” en C es el siguiente: #include int main (void) { printf ("Hello worldl\"); return 0; 7.1.3. C++ Como se explica mas adelante, la orientacién a objetos es un paradigma de programacién en el que el programa se divide en objetos que interactiian entre si, Once afios después de la aparicion de C, Bjarne Stroustrup modificé el len- guaje m4s popular de la época para incluir la orientaci6n a objetos, y creé asi el C++ (C més més). En su pagina personal, Stroustrup explica que el nombre de C++ se debe a que es una evolucién de C, pero sin que los cambios sean tan importantes como para llamarlo D. Como ya hemos visto, la programacién procedimental es una metodologia de programacién en la que el programa se divide en funciones o procedimien- tos que se encargan de resolver partes de los problemas. Aunque C++ oftece la posibilidad de programar utilizando el paradigma orientado a objetos, no supri- aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 132. Escaneando la Informatica JAVA es un lenguaje orientado a objetos que ofrece, en la misma base del len- guaje, apoyo para la utilizacion de redes y la ejecucion remota de codigo (fue creado durante el boom de Internet). Sintécticamente, JAVA es muy parecido a Cy C++, pero mucho més simple, ya que tiene reglas menos permisivas. Eso implica limitar las diferentes maneras de hacer lo mismo (cosa que da lugar a ambigiiedades), no permitir ciertas estructura que puedan generar errores, etc Un programa escrito con JAVA puede ejecutarse en cualquier ordenador y sis- tema operativo sin (ener que modificar ninguna linea de cédigo y sin volver a compilar. La idea "codifica una vez, ejecuta en cualquier lugar” junto con el hecho de proporcionar un entorno seguro a la hora de ejecutar eédigo han hecho que sea uno de los lenguajes més utilizados actualmente. La Maquina Virtual Java (ava Virtual Machine, JVM) es una capa que se podra poner por encima de cualquier maquina para que asi pueda ejecutarse el mismo cédigo, independientemente de ésta. Por eso, al compilar, se genera cédigo intermedio, interpretable por la JVM. Las mayores criticas a JAVA provie nen de su velocidad de ejecucién y ta cantidad de memoria que utiliza para la ejecucién. Es un lenguaje que se compila y genera un cédigo intermedio que después tiene que ser interpretado por la Maquina Virtual Java. Por eso, la eje- cuci6n de los programas de las primeras versiones de JAVA era mucho més lenta que la de otros similares hechos en C 0 C++. Actualmente la diferencia ya no es tan grande. El cédigo del “Hello World” en JAVA es el siguiente: public claes HelloWorld { public static void main (String args(]) ‘ System.out-printin ("Hello World"); } 7.1.5. PHP Lenguajes de scripting son lenguajes normalmente cteados para facilitar el proceso de editar, compilar y ejecutar programas, PHP es un lenguaje creado para ser utilizado en un servidor web. Se utiliza principalmente para escribir paginas HTML dindmicas (la pagina se genera personalizada para cada usuario © Editorial UOC 133 Programacion que se conecta y después se envia) a partir de informacion de una base de datos, aunque también puede ser utilizado desde la linea de 6rdenes principalmente como lenguaje de scripting. Hay que anadir que también soporta el paradigma de orientacién a objetos Uno de sus puntos fuertes es la comunidad OpenSource, que Io utiliza y lo hace evolucionar. Esta comunidad de usuarios proporciona multitud de bibliote- cas que los programadores de PHP pueden utilizar libremente en sus programas. PHP es uno de los miembros principales del LAMP (Linux Apache MySQL y PHP). LAMP es el nombre con que se conoce un entomo de trabajo para la web en el que el sistema operativo es GNU/Linux, el servidor de paginas web es Apache, la base de datos, MySQL, y el lenguaje de programacién, PHP. Actualmente, muchos desarrollos orientados a Internet (blogs, wikis, tiendas en linea, paginas de noticias, etc.) utilizan este tipo de plataforma, El cédigo del “Hello World” en PHP es el siguient “ophp echo “Helle woray & | 8. Software libre La idea del software libre surgié a partir de un problema que tuvo Richard Stallman con una impresora. El software que la controlaba no se podia modifi- cary él queria mejorarlo para evitar unos problemas que se le planteaban. Asi el concepto “software libre” nace en 1984 cuando Stallman inicia el proyecto GNU y crea la Free software Foundation (FSF). Este proyecto tiene por objetivo crear un sistema operativo totalmente libre. Antes de esta fecha también habia muchas aplicaciones que se distribuian con el cédigo fuente o de forma gratui- ta, pero no es hasta ese momento cuando se crean unas normas y emerge la conciencia identitaria y de pertenencia. GNU es una palabra que se define recur- sivamente. Quiere decir: “GNU’s Not UNIX’. Un software se considera libre si garantiza las cuatro libertades siguientes * La libertad de ejecutar el programa para cualquier propésito. * La libertad de estudiar c6mo trabaja el programa y de adaptarlo a las nece- sidades propias. El acceso al cdigo fuente es una condicion previa. © Editorial UOC 134 Escaneando la Informatica * La libertad de redistribuir copias para poder ayudar a vuestros vecinos. * La libertad de mejorar el programa y de difundir yuestras mejoras al publi- co, para que toda la comunidad pueda beneficiarse. £1 acceso al cédigo fuente es una condicion previa. Asi pues, el software libre se puede redistribuir y modificar, bien de forma gra- tuita o cobrando por esta distribuci6n, Uno de los proyectos de software libre més conocidos es, sin duda, el miacleo (kernel) Linux, programado por Linus Torvals en el aflo 1991. GNU/Linux es la implementacién abierta del sistema operativo Unix para computadores perso- nales, con Linux de nucleo. El proyecto GNU/Linux lo inicié Richard M Stallman en cl aflo 1984 con el objetivo de crear un clon del sistema operativo Unix, pero garantizando las cuatro libertades mencionadas ms arriba Los proyectos de cddigo abierto y la creacién de software libre se caracterizan por que en su elaboracién participan decenas a miles de personas de todo el mundo. Un grupo reducido de personas toma las decisiones de disefio y de pro- gramaci6n mientras que un gran nimero de programadores detectan y corrigen errores y afladen nueva funcionalidad. 9. El mundo Iaboral En el mundo laboral hay diferentes funciones directamente relacionadas con la programacion a las que normalmente pueden acceder los informaticos (inge- nieros o ingenieros técnicos). Por descontado, hay muchas otras funciones -relacionadas con otras dreas como la seguridad, las bases de datos, etc— para las que las exigencias de conocimientos de programacién son elevadas. A con- tinuaci6n s6lo presentaremos las que estan directa y exclusivamente relaciona- das con la programaci6n: + Programador jtinior: Es un programador con menos de tres afios de expe- riencia, normalmente realiza tareas de programacion repetitiva o poco ima- ginativas. + Programador sénior: Tiene amplios conocimientos de los lenguajes de pro- gramacién, de los paradigmas de programacién y de las tecnologias en © Editorial UOC 135 Programacion general (por ej. protocolos, comunicacién, bases de datos, estructuras de datos, etc.) * Analista-programador: Es el encargado de analizar un problema para encontrar una solucién automatizada. En otras palabras, es la persona encargada de organizar el trabajo de programaci6n a partir de los requist- tos del cliente. + Director de proyecto: Es el encargado de planificar y controlar el proyecto Es la persona que tiene que dirigir el equipo (analistas, programadores, disefadores, etc.) y mantener la relaci6n con el cliente para que el proyec- to esté acabado y los objetivos se hayan cumplido en la fecha sefialada. 10. Apéndice 10.1. Premios A. M. Turing Son los premios que concede anualmente la ACM (Association for Computing Machinery) a aquellas personas que han contribuido con excelen- cia a la comunidad cientifica informatica. Esta es la lista de algunas de las personas premiadas en el ambito de la pro- gramacién y la raz6n por la que se les concedié la mencién * Alan J. Perlis. Por su influencia en el drea de las técnicas avanzadas de pro- gramacién y construccin de compiladores. + Edsger Dijkstra. Fue el principal desarrollador de ALGOL a finales de los afios cincuenta, un lenguaje de alto nivel que ha sido un modelo de clari- dad y rigor matematico. Es uno de los principales exponentes de la ciencia y el arte de los lenguajes de programaci6n en general y ha contribuido a la comprension de su estructura y su implementacién. * Donald E. Knuth. Por su aportaci6n al andlisis de algoritmos y el disefio de lenguajes de programacion, y en particular por sus contribuciones al “arte de la programacion de ordenadores” a través de su serie de libros que llevan ese titulo. * Niklaus Wirth. Por desarrollar una serie de lengua ALGOL-W, MODULA y PASCAL. jes innovadores: EULE aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 139 Gestion de datos Capitulo V Gestion de dato: bases de datos : bases de datos y sistemas gestores de M. Elena Rodriguez Gonzdlez 1. Introduccién Este texto pretende que los lectores se puedan introducir en los mecanis- mos que permiten gestionar los datos que se encuentran guardados en dispo- sitivos de almacenamiento permanente (como los discos magnéticos) y que son requeridos por el conjunto de programas de aplicacién que las empresas y organizaciones utilizan en su actividad cotidiana Aunque hay diferentes mecanismos para guardar los datos de manera per- manente, el mas potente en cuanto a prestaciones son las bases de datos, que son gestionadas por un software especifico que recibe el nombre de sistema de gestion de bases de datos. Precisamente por eso, estos elementos seran el niicleo central de interés de este texto. 2. Concepto de base de datos La informaci6n se ha convertido en uno de los actives mas importantes de todas las empresas y organizaciones, con independencia de cudles sean sus Ambitos de negocio o actuacién. Para obtener esta informacion, sus sistemas informaticos (SI), en general, necesitan acceder a diferentes fuentes de datos guardadas en dispositivos de almacenamiento permanente. Frecuentemente estas fuentes de datos habran sido desarrolladas de manera independiente, © Editorial UOC 140. Escaneando la Informatica podran representar tanto informacion estructurada como semiestructurada y estardn distribuidas en diferentes ordenadores, accesibles a través de una red de comunicaciones. Para acceder a estas fuentes de datos, debe haber herramientas que simplifi- quen su gestion y que ayuden a extraer informaci6n dtil en un tiempo razona- ble. De lo contrario, el coste de adquisicién y gestion de los datos puede exce- der el valor que se pueda derivar de ellos. A dia de hoy, el mecanismo més habitual que se utiliza con el fin de almace- nar y acceder a grandes voltimenes de datos estructurados son las bases de datos. Una base de datos (BD) cs la representacién de una colecci6n de datos estructu- rada que describe las actividades de una organizaci6n.” Ista representaci6n inclu- ye entidades del mundo real y sus interrelaciones y tiene que permitir diversas uti- lizaciones. Un sistema de gestién de bases de datos’ (SGBD) es un software especificamente disefiado y desarrollado para asistir en la creacién, la manipulacién y el manteni- miento de las BD. Ejemplo de BD y de SGBD En el contexto de una universidad, como es el caso de la UOC, una BD podria conte- ner datos en torno a diferentes entidades del mundo real y de interrelaciones entre estas entidades como: * Diferentes entidades, como estudiantes, profesores, titulaciones y asignaturas, asi como materiales didacticos. + Interrelaciones entre estas entidades, como las asignaturas en que se matriculan los estudiantes en diferentes semestres, asi como las calificaciones obtenidas, las asig, naturas que conforman cada titulacién, las asignaturas que imparte cada profesor, los materiales didacticos asociados a cada asignatura, etc. Por ejemplo, podemos representar graficamente las entidades estudiantes y asigna- turas, asi como una posible interrelacién entre las dos entidades de la manera siguiente: 1. A veces, la BD puede describir las actividades de varias organizaciones relacionadas. 2. Ejemplos de SGBD serian productos como Oracle, Infomix o PostgreSQL aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. image not available © Editorial UOC 146 Escaneando la Informatica clon de San José, y el proyecto Ingres en la Universidad de Berkeley bajo el lide- razgo de Michael Stonebraker. En 1974, fruto de la investigacién en torno al System/R, aparece un primer lenguaje para BD relacionales; este lenguaje es el SEQUEL (Structured English Query Language). Por razones legales, este lenguaje al final se acab6 denominando SQL (Structured Query Language). 2) En los aftos 1981 y 1982 aparecen los primeros SGBD relacionales comer- ciales y sus lenguajes: Oracle con el lenguaje SQL € Ingres con el lenguaje QUEL, Por su parte, en el afio 1983, IBM lanza su primer SGBD relacional comercial, el DB2, como culminacién del trabajo desarrollado en el proyecto System/R. En el alo 1982 cl ANSI encarga a uno de sus comités (el comité X3II2) la defi- nicién de un lenguaje de BD relacionales, con el objetivo de que se convirtiera en estandar. Este comité, tras evaluar diferentes lenguajes, y ante la aceptacién comercial del SQL, escogié como lenguaje estandar un lenguaje basado en el SQL casi en su totalidad. El SQL se convirtié oficialmente en el lenguaje estandar de ANSI en el afio 1986, y de ISO (International Standards Organization) en el afio 1987. Desde entonces, el Ql. estandar ha sido objeto de diferentes revisiones y ampliaciones, y ha dado lugar, sucesivamente, al SQL:1992, al SQL:1999, al SQL:2003 y al $QL:2008,° que es la tiltima versién. El hecho de que el SQL. sea el lenguaje estandar para BD relacionales quiere decir que todos los fabricantes de SGBD relacionales se comprometen a implementar el mismo lenguaje, lo cual facilita el mantenimiento de los ST que utilizan las BD y el cambio o la exisien- cia de diferentes SGBD relacionales dentro de cada organizacion. MI margen de los SGBD relacionales comerciales ya citados, podemos desta- car otros como, por ejemplo, Informix o el SOL Server. Informix tiene sus raices en el trabajo desarrollado en el proyecto Ingres y también ha influenciado el desarrollo del SQL Server. Informix, tras haber funcionado como compania independiente desde principios de la década de los ochenta, fue adquirida por IBM en el afio 2001. SOL Server tiene sus origenes en el trabajo iniciado en 1987 por la compania Sybase Corporation, que posteriormente coopers con Microsoft (periodo 1988-1993) con el fin de desarrollar versiones de SQL Server para plataformas Windows. Hoy dia, Sybase, para distinguir su SGBD relacional de SQL Server de Microsoft, ha rebautizado a su producto como Adaptative Server Enterprise. 5. BISQL:2008 es la dltima version esténdarde SQL en el momento de escribir este texto, pero segu: ro que en el futuro saldran nuevas versiones. © Editorial UOC 147 Gestion de datos Por tltimo, como SGBD relacionales de codigo fuente abierto podemos citar a Ingres, Firebird, MySQL y PostgreSQL. En el caso de PostgreSQL, es importan- te destacar que surge de las evoluciones sucesivas del proyecto Ingres y que, posiblemente, de todos los productos de codigo fuente abierto citados, es el mas potente en cuanto a prestaciones. Los modelos de datos posrelacionales Mrededor de los principios de la década de los noventa aparecen dos mani- fiestos, firmados por profesionales de prestigio en el area de las BD, que preten- den indicar hacia dénde tenfan que evolucionar los SGBD. El primer manifiesto, publicado en 1989 y titulado Manifiesto de los sistemas de bases de datos orientadas al objeto, relaciona una serie de caracteristicas que deben tener los SGBD para poder soportar todo tipo de aplicaciones. Estas carac- terfsticas estan claramente orientadas al objeto como, por ejemplo, el soporte para objetos de cualquier complejidad, identificador de objeto, clases de obje tos, encapsulacin y herencia de clases. La idea basica de fondo es dotar de per- sistencia los lenguajes de programacién orientados al objeto y afadir las funcio- nalidades proporcionadas por los SGBD. EI segundo manifiesto, titulado Manifiesto de los sistemas de bases de datos de tercera generacién, de 1990, da la vuelta al dilema y propugna extender los SGBD. relacionales afadiendo aquellas caracteristicas de la orientacin al objeto que sean necesarias, con el fin de acabar proveyendo de funcionalidades similares a las BD orientadas al objeto. En definitiva, se trata de conservar el esfuerzo de desarrollo acumulado por los SGBD relacionales, que han demostrado durante mucho tiempo su validez y solidez en el mercado. Los SGBD que han seguido la linea del primero de los manifiesios reciben el nombre de SGBD orientados al objeto, mientras que los que han seguido la linea del segundo de los manifiestos reciben el nombre de SGBD objeto-rela- cional. Obviamente, entre los segundos, y a partir del alo 1995, encontramos la mayorfa de los productos mencionados en el apartado anterior como SGBD relacionales. Por ejemplo, Oracle se considera un SGBD objeto-relacional desde la versi6n 8, Informix desde la version 9 y DB2 desde la version 6. En el caso de PostgreSQL, es importante observar que nace directamente con la definicién de SGBD objeto-relacional. image not available © Editorial UOC 150 Escaneando la Informatica * Se quiere saber el ntimero de estudiantes de mas de veinticinco anos que han aprobado la asignatura de Uso de Bases de Datos y se han matriculado en la asignatura de Estructura de Computadores. * De cada estudiante matriculado en menos de tres asignaturas, se quiere obtener el nombre del estudiante, el nombre de las asignaturas matriculadas y el nombre de los profesores que imparten las asignaturas, * Se quiere subir el sueldo de los profesores en un 5%, Adicionalmente, los usuarios tienen que poder formular las operaciones con un lenguaje sencillo y el SGBD lo tiene que interpretar directamente. quiere decir, sin embargo, que no se puedan escribir programas especificos que incorporen sentencias de acceso a la BD como, por ejemplo, para procesos repe- titivos Como hemos dicho, en el caso de los SGBD relacionales, el lenguaje estan- dar que permite definir y manipular (ya sea para su consulta 0 modificacién) tanto la estructura como el contenido de la BD es el SQL. Los usuarios, mediante el uso del SQL, pueden consultar directamente la BD con algtin tipo de herramienta que tenga una interfaz de usuario adecuada (por ejemplo, basada en ventanas), facilitada por el mismo fabricante de SGBD rela- cional. También es posible acceder a las BD desde programas desarrollados con lenguajes de programacién como C 0 Java Por tiltimo es importante destacar que también se pueden almacenar procedi- mientos junto con los datos que se almacenan dentro de la BD y bajo el control del SGBD. Estos procedimientos, conocidos como procedimientos almacena- dos,* son especialmente titiles para ejecutar procesos repetitivos. Los procedi- mientos almacenados se pueden escribir con lenguajes especificos de cada fabri- cante de SGBD (normalmente estos lenguajes extienden las funcionalidades de SQL incorporando, por ejemplo, sentencias condicionales ¢ iterativas) ¢ incluso se pueden almacenar dentro de la BD procedimientos escritos con un lenguaje de programaci6n especifico. so no 8. Los procedimienios almacenados, que en el SQL esténdar se llaman Persistent Stored Modules (PSM), forman parte del estindar desde el SQU:1999, © Editorial UOC 182 Escaneando la Informatica Al disenar una BD para un SI concreto y escribir el esquema, no s6lo hay que defi- nir las estructuras de datos, sino también las reglas de integridad que queremos que el SGBD haga cumplir. Hay dos tipos de reglas de integridad. Por una parte, las reglas de integridad de usuario, es decir, aquellas reglas que son propias de la realidad que intenta repre- seniar la BD que se quiere crear; y por otra las reglas de integridad inherentes al modelo de datos que utilice el SGBD. Cuando el SGBD detecte que un programa o usuario quiere hacer una operacion que va en contra de las reglas de integridad establecidas al definir la BD, no debe- 14 permitirselo. Ejemplos de reglas de integridad En el caso de la BD de la UOC, algunos ejemplos de reglas de integridad podrian ser: 1) Reglas de integridad de usuario: podemos declarar que cl atributo calificacién de los estudiantes sdlo adquiera valor dentro de un rango de valores permitidos; podemos limitar el nimero maximo de estudiantes por profesor consultor y asignatura a 60 estudiantes; podemos definir que el sueldo de los profesores no pucda scr rebajado, que la fecha de finalizacién de los estudios de cada estu diante, si la hay, sea posterior a la fecha de inicio de sus estudios, que las exis. tencias del material didéctico estén siempre por encima de un cierto valor, etc. 2) Reglas de integridad inherentes al modelo de datos: suponiendo que utiliza: mos el modelo de datos relacional, dado que las relaciones se ajustan al concep- to de conjunto, habré que garantizar que en la extensién de cada relacién no haya tuplas repetidas. Eso se consigue diciendo qué atributo o conjunto de atri. butos dentro de cada relacién no admite valores repetidos. Por ejemplo, en la relacién de asignaturas, podemos asignar un atributo cédigo de asignatura dife rente para cada una. Con esta regla conseguiremos que no haya tuplas duplica- das en la relaci6n de asignaturas, dado que como minimo cada tupla tendré un valor diferente para ¢l atributo cédigo de asignatura En el caso de los SGBD relacionales, el SQL ofrece diferentes mecanismos para definir reglas de integridad. Es posible definir reglas de integridad en cada relacin que conforme la BD y también reglas de integridad que afecten a mas de una relacién. De entre los mecanismos més potentes, desde el SQL:1999, se dispone de los disparadores (triggers en inglés) Los disparadores son ejecutados por el SGBD de manera automatica, es decir, sin la intervencién de una persona, cuando sobre la BD se ejecutan ciertas operaciones de cambio (insercién, borrado 0 modificacién de los datos) que pueden comprometer una regla de integridad. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 156 Escaneando la Informatica errores o desastres podrian ser que el disco que almacena la BD esté parcialmen- te inutilizado debido a una averia de hardware, que se produzca un corte de luz en plena actividad sobre la BD, 0 incluso que en nuestra empresa se produzca un incendio que provoque la destruccion total de la BD. Los procesos de recuperacién de que dispone cualquier SGBD permiten recons- truir y/o restaurar la BD y darle el estado consistente, correcto, anterior al inciden- te. Eso se consigue gracias a la realizaci6n de copias de seguridad (en inglés, bac kup) de los datos y mediante el mantenimiento continuo de un diario (log en inglés) en el que el SGBD, entre otros, anoia todas las escrituras que se realizan en la BD. 4,5. Acceso eficiente Los SGBD tienen que proveerse de un conjunto variado de ténicas sofisticadas para almacenar y recuperar los datos de manera eficiente. Este objetivo esta intimamente relacionado con los objetivos de ejecucién de operaciones no predefinidas y complejas, y de independencia de los datos Los usuarios tienen que poder expresar qué quieren, es decir, qué datos dese- an y qué condiciones tienen que cumplir esos datos. El SGBD es el que tiene que decidir c6mo encontrar los datos que los usuarios necesitan. Por lo tanto el SGBD necesita poder encontrar una estrategia de ejecucién para las peticio- nes que formulan los usuarios; es més, no sitve cualquier estrategia, sino que los SGBD tienen que saber encontrar la mejor estrategia, es decir, la estrategia optima. Para resolver eficientemente el acceso a los datos, ya sea para su consulta 0 actualizaci6n, los SGBD se basan en unas estructuras de datos auxiliares, ama- das indices, que permiten encontrar rapidamente en el disco los datos que nece- sita un usuario o programa de aplicacién. De manera intuitiva, se puede establecer un paralelismo entre los indices uti- lizados en una BD con los indices de conceptos claves que podemos encontrar al final de cualquier libro de texto. La idea es organizar (de manera alfabética en el caso del indice del libro) una serie de valores de interés (los conceptos claves escogidos en el caso del libro), junto con las paginas fisicas (las paginas del libro) que contienen datos con el valor que esta siendo indexado (en el caso del © Editorial UOC 187 Gestion de datos libro, se indican las paginas del libro que hablan sobre cada concepto clave que se decide indexer). Bjemplo de uso de indices Imaginemos que en la BD de la UOC estamos interesados en encontrar los datos per- sonales de los profesores cuya titulacién es graduado en matematicas. 1) Una posibilidad para resolver la peticién seta mirar uno a uno todos los profesores de la UOC y quedaros tinicamente con aquellos que sean graduados en matem ticas. 2) Imaginemos que en la relacién de profesores se ha definido un indice, mas conere- tamente sobre el atributo titulacién. En este caso, se podrfa utilizar el indice para encontrar nica y exclusivamente a los profesores que verifiquen la condicion deseada (ser graduado en matemAticas) y obviar al resto de los profesores. Posiblemente, sobre todo en el caso de que el ntimero de profesores que son gra- duados en mateméticas sea minoritario, sera mds eficiente utilizar el indice que acceder al global de profesores. Es mds, es el SGBD el que decide qué estrategia tiene que utilizarse, y obviamente, se decantard por la mas Gptima, es decis, por la que le permita resolver la peticién formulada por el usuario accediendo al mini- mo de datos (0 alternativamente accediendo al minimo niimero de paginas de disco) imprescindible. Aunque el uso de indices mejora el rendimiento de la consulta de datos de una BD, hay que tener en cuenta que hay asociado un coste de mantenimiento ante cambios de los datos, por lo cual hay que estudiar minuciosamente cuan- tos y qué indices hay que crear en una BD. 4.6. Seguridad El término seguridad se ha utilizado en diferentes sentidos a lo largo de la historia de la informatica. En el campo de los SGBD, el término seguridad se utiliza para hacer referencia a Jos términos relativos a la confidencialidad, las autorizaciones, los derechos de acceso a los datos almacenados en la BD, etc. Estas cuestiones siempre han sido importantes en SI con exigencias altfsimas de seguridad (pensemos en SI de dmbito militar o agencias estatales, por ejem- plo), pero desde los aitos noventa, con la proliferacién de las redes de comuni- © Editorial UOC 158 Escaneando la Informatica cacién, han ido adquiriendo importancia en cualquier SI que almacene datos sobre personas.”” Con relacion a la seguridad en BD, es preciso que los SGBD sean capaces de 1) Incorporar mecanismos que posibiliten la identificacion y la autentica- cin de usuarios. Mientras que la identificaci6n permite distinguir entre usuarios diferentes, la autenticacion permite garantizar que un usuario ex quien realmente pretende ser. Estos mecanismos pueden incluir desde el uso de nombres de usuario (para identificar) y contrasefias (para autenti- car) hasta mecanismos mis sofisticados como la utilizacién de caracteris- ticas fisicas del usuario (retina, voz, huella digital, etc.) que permiten al mismo tiempo su identificacién y autenticacion. También es preciso que los SGBD incorporen mecanismos para hacer estudios estadisticos sobre los porcentajes de identificaciones y autenticaciones fallidas. 2) Posibilitar el almacenaje de datos y su transferencia a través de la red con una codificacién secreta, es decir, mediante técnicas de encriptaci6n. 3) Defini legio que se otorga a un usuario (0 grupo de usuarios) para hacer una determinada operacién sobre un cierto elemento de la BD. En el caso de un SGBD relaci gar autorizaciones podrian ser una relacién, un conjunto de atributos de autorizaciones de acceso a los datos. Una autorizacién es el privi nal, ejemplos de elementos sobre los que se puede otor- una relacién, un procedimiento almacenado, etc., mientras que ejemplos de operaciones pueden ser una consulta, una insercién, la alteracin de una relaci6n (para afiadir o eliminar atributos, por ejemplo), la ejecucién de un procedimiento almacenado, ete. Ejemplos de autorizaciones ‘Tenemos que pensar que no hay ninguna raz6n para que todas los usuarios vean toda la BD yque incluso, dependiendo del tipo de usuario, estarén permitidas s6lo un cier to tipo de operaciones. En el ejemplo de la BD de la UOC, por ejemplo podria ser asi 1) Sélo los empleados del Departamento de Recursos Humanos tienen derecho a modificar el atributo sueldo de los diferentes empleados de la UOC, como conse- cuencia de un proceso de negociacién. 2) Cada empleado de la UOC sultar. s6lo puede ver su sueldo, y s6lo lo tiene que poder con- 10. Recordemos la Ley Orgénica 15/1999, de 13 de diciembre, de Proteccién de Datos de Caricter Personal (BOE nim. 298, de 12/12/1999, pag, 43088-43099). image not available © Editorial UOC 160. Escaneando la Informatica a) Cada relacion tiene un atributo 0 conjunto de atributos, llamado clave primaria de la relacion. La clave primaria tiene un valor diferente para cada tupla y sirve para identificarla. En consecuencia, en una relacion no puede haber dos tuplas idénticas. Adicionalmente, el valor de clave primaria no puede ser desconocido (nulo en terminologia del modelo de datos relacional). b) Los atributos no pueden tomar més de un valor en una tupla. ©) El orden de fas tuplas de la relacion y el orden de los atributos dentro de la tupla son irrelevantes. d) La interrelacién entre dos relaciones (R y T) se eva a cabo mediante claves forineas. Una clave fordnea es un atributo o conjunto de atribu- tos en una relacién (por ejemplo, T), de manera que los valores que toman para una tupla determinada coinciden con el valor de clave pri- maria de una tupla en la otra relaci6n (en este caso R). Esta igualdad de valores permite pasar de una relacion a otra (de Ra Sy deS aR) mplo de relaciones, atributos y tuplas Sobre nuestra BD de la UOC podemos definir los siguientes esquemas de relacio- nes: Asignaturas (cédigo_asig, nombre asig, créditos, modelo eval) La relacién de asignaturas incorpora una serie de atributos: el cédigo (que es la clave primaria y se ha subrayado), el nombre de la asignatura, los créditos asigna- dos a la asignatura y su modelo de evaluacién. Materiales (cédigo mat, nombre mat, soporte mat, existencias) la relacién de materiales diddcticos incorpora como atributos el cédigo (que es la clave primaria y se ha subrayado), el nombre de! material, el tipo de soporte en que se encuentra el material y las existencias disponibles del material didactico en el almacén. Materiales Asignatura (codigo mat, cddigo asig) {cOdigo_mat) es clave foranea que referencia a Materiales {cOdigo_asig} es clave foranea que referencia a Asignaturas la telacién de materiales por asignatura nos indica los materiales didécticos que se utilizan en las diferentes asignaturas. En este caso la clave primaria es compues. ta, lo que indica que una asignatura puede utilizar varios materiales y que un mismo material diddctico puede ser utilizado en diferentes asignaturas. Con res- pecto al cédigo de los materiales de esta relacién, obviamente, tienen que ser materiales existentes en la relacién de materiales, y lo mismo pasa con el cédigo de las asignaturas. Por eso estos atributos son clave foranea. © Editorial UOC 161 Gestion de datos Podemos representar el conjunto de tuplas (extensi6n) que conforman cada relacion, adems del esquema de las relaciones, de manera tabular, tal como se muestra a con. tinuacién: 6igo_asig pombe asig eréatos modelo eval 80 Uso de bases ce datos 6 (extp +P) +AC e fed ‘ (stp + Py +A wr ‘stacitica ° (aC-+ Pn) + PV 0 (harp + P=) | ‘6digo_mat Nombre mat soportemat existencias 05/1180 /00482 Uso de bases de ator, Papel 200 x903/F"/020%7 armaee Papel 130 ‘cPt/ue0/01027 PostgreSQ. © 300 ‘€PO6/I8O/0T028 | Ente java para PostgreSQL © 100 xpo1/esT/00001 Estadistica ‘web 0 syesT/o1295 Mira © 0 ‘digo. mat <éiigo_asi 05/80/0048? uso ‘cP0s/U80/01027 UBD ‘xpo3ire/a2047 e ‘cros/us0/01028 usb xe01/8S1/00001 est coxyest/on295 st 5.2. Manipulacién de bases de datos relacionales con SQL A continuacién se muestran, sin entrar formalmente en su sintaxis, algunos ejemplos de como el lenguaje SQL permite definir y manipular BD relacionales image not available © Editorial UOC 163 Gestion de datos tango de valores permitidos para una determinada columna o el hecho de que una columna no pueda tomar valor nulo. Para insertar tuplas de datos (filas en términos del SQL) en una tabla, el SQL proporciona la sentencia iNSER'. Las siguientes sentencias dan de alta el con- junto de filas que representa la extensi6n de las tablas previamente definidas. Por razones de espacio, slo se muestran un par de sentencias de TNSERT por tabla, las que corresponden a la primera y dltima fila de las extensiones de ejem- plo. 5.2.2. Consulta de tablas Para consultar los datos, el SQL nos proporciona la sentencia SELECT. A par- tir de las tablas creadas en el apartado anterior y las filas que se insertan, se pro- ponen los ejemplos (en orden de dificultad creciente) de las siguientes consul- tas SQL: 1) Consulta de todos los datos de la tabla de asignaturas: Copyrighted material © Editorial UOC 164 Escaneando la Informatica 2) Consulta del codigo, nombre y existencias de todos los materiales: SELECT codigo mat, nombre mat, existencias FROM Materiales; En este caso, se esta ejecutando una operacion de proyeccion sobre la BD; la operaci6n de proyeccién consiste en coger una parte de lay columnas de una tabla. 3) Consulta del c6digo y el nombre de las asignaturas que tienen algdin mate- rial didac ‘© asociado con unas existencias superiores a las 100 unidades: Como resultado de la consulta se obtendrian los cédigos de asignatura UBD y FP que cortesponden, respectivamente, a las asignaturas de Uso de Bases de Datos y Fundamentos de Programacién, SELECT DISTINCT a.codigo_asig, a-nombre_asig FROM (Aeignaturas a JOIN Materiales Asignatura ma ON a.codigo_asig=ma.codigo_asig) JOIN Nateriales m ON m.codigo_mat=ma.codigo mat WHERE m.exietenciae>100; En esta consulta es importante destacar que se ha hecho una operacién de combinacién de las tres tablas definidas, dado que las existencias se guardan en la tabla de materiales, los datos de cémo se asocian los materiales a las asigna- turas se encuentran en la tabla de materiales por asignatura, y algunos de los datos pedidos como salida de la consulta (nombre de la asignatura) se encuen- tran en la tabla de asignaturas. Fijaos que ha sido posible pasar de una tabla a otra a través de las claves foraneas definidas en la tabla de materiales por asig- natura. La consulta también ejecuta una operacion de selecci6n; esta operaci6n consiste en coger aquellos datos que verifican una cierta condicién (en este caso, que las existencias estén por encima de 100). Para acabar, dado que no se muestran todas las columnas de las tablas implicadas en la consulta, también se esta aplicando una operacién de proyeccién. 4) Consulta del cédigo de las asignaturas que no tienen ningtin material aso- ciado en formato web: Como resultado de la consulta se obtendrian los cddigos de asignatura UBD y FP. © Editorial UOC 170. Escaneando la Informatica 2. {Qué es la ingenieria del software? Para contestar a esta pregunta nada mejor que exponer en primer lugar algu- nas de las definiciones existentes ms populares y ver qué tienen en comin. La ingenieria del software (IS)! es: a) El establecimiento y el uso de principios de ingenieria s6lidos con el fin de obte- ner un software econémico, fiable y que funcione eficientemente. NATO Conference. b) La aplicacién de una aproximacién sistemética, disciplinada y cuantificable al desarrollo, el uso y el mantenimiento del software. IEEE software Engineering Terminology. ©) Es una disciplina de la ingenierfa que se preocupa de todos los aspectos de la produccién de software, lan Sommerville. De estas definiciones se pueden extraer tres ideas importantes: 1. La IS es una ingenieria. Eso implica que las técnicas que forman parte de ella tienen que estar bien fundamentad te, , ya sea ledrica o empiricamen- 2. El objetivo de la IS no es tan slo producir un software que “funcione” sino producir un software de calidad (eficiente, libre de errores, usable...). Eso se consigue mediante la aplicacién de las técnicas del punto anterior. 3. ISeProgramaci6n. La IS se ocupa de todas las etapas del desarrollo del soft- ware, tanto las que deben hacerse antes de empezar la programacién (como el anélisis y el disefio) como las que vienen después (pruebas y mantenimiento). Este hincapié en convertir la IS en una ingenieria surgié como una de las respuestas a la “crisis del software”, expresion con la que se conocia al hecho de que, al principio, la mayoria de los proyectos de software acababa tarde y excedia el importe presupuestado, con errores y sin satisfacer plenamente las necesidades de los clientes. Se vio que debido a la complejidad del proceso de desarrollo se tenia que afrontar la construcci6n del software utilizando téc- nicas de ingenieria (andlogamente a como se hace en el resto de las ingenie- 1. La expresion “ingenierfa del software” se popularizé en la NATO software Engineering Conference del ano 1968. © Editorial UOC 174 Escaneando la Informatica 3. Evoluci6n histérica Aunque la IS aparece a finales de los aftos sesenta y principios de los seten- ta, se puede considerar todavia un disciplina muy nueva, sobre todo si la com- paramos con otros tipos de ingenierias. La evolucién de la IS ha ido muy ligada a la evoluci6n de los lenguajes de programacién usados en la implementacién del software. Al igual que los len- guajes de programacién han pasado de ser lenguajes estructurados a lenguajes orientados a objetos, podemos dividir también los métodos utilizades en la IS en métodos estructurados y en métodos orientados a objetos. Esta distincién hace referencia a las técnicas utilizadas en cada una de las fases del desarrollo (principaimente en las fases de anilisis y disefio) y no tanto a cémo se organi- as en el punto anterior que en un principio las fases se organizaban secuencial- zan esta cntre si, En lo relativo a esta organizaci6n, ya hemos comentado mente y que répidamente se fue evolucionado hasta los métodos iterativos e incrementales, que son los vigentes hoy dia. La principal caracteristica de los métodos de anilisis y disefto estructurados es que diferencian claramente las técnicas para la especificacién de los proce- sos (funciones) del software de las técnicas para la especificacién de la infor- macién (los datos) que tiene que gestionar el software. No hay una integra- cién entre ambas vertientes. Ademas, muchos de estos métodos siguen una aproximacién top-down en la que se parte del problema entero para ir descom- poniéndolo progresivamente hasta obtener partes mas pequefias y tratables (similarmente a como se desarrolla un programa siguiendo el paradigma de la programacién estructurada). Estos métodos surgen en la década de los seten- ta de la mano de autores como E. Yourdon, L. L. Constatine o M. A. Jackson. Algunos de los diagramas mas conocidos son el diagrama entidad relacion (especificacién de los datos), el diagrama de flujo de datos (especificacin de las funciones), el diagrama de estructura de Jackson (que, entre otras cosas, modela la estructura de los datos que se pasan entre los diferentes flujos de datos o que sirven de entrada y/o salida para el usuario) y los STC (structured chart, para modelar la descomposicién modular de las funciones especificadas en los diagramas de flujos y las relaciones entre los diferentes médulos). Con le aparicién del paradigma de la programacién orientada a objetos, estos métodos quedaron bastante desfasados, aunque todavia hay algunas empresas que los utilizan. La programacién orientada a objetos mezcla dentro © Editorial UOC 175 Ingenieria del software de un mismo concepto (la clase) la parte funcional y de datos, por lo tanto tener una especificacion separada de ambos conceptos (como pasa con los métodos de anilisis y diseo estructurados) dificultaba mucho el desarrollo del software orientado a objetos, A raiz de eso, a finales de los ochenta y principios de los noventa, surgieron los métodos de anilisis y disefio orientados a objetos. Estos métodos intentan aplicar los conceptos (y las ventajas) de la orientacion a objetos ya en las fases de anélisis y disefto de la aplicacién, por lo que se consigue una transicién mucho més suave entre las diferentes ctapas del desarrollo. Algunos de los métodos orientades a objetos mas conocidos son el OOD (Object-Oriented Design; G. Booch), el OMT (Object Modeling Technique, J. Rumbaugh) y el OOSE (Object-Oriented Software Engineering; |. Jacobson). Posteriormente, todos estos métodos (y muchos otros) se han diluido dentro del UML (Unified Modeling Language), al cual dedicaremos toda una seccién en este mismo capitulo. La pri- mera version del UML aparecié en 1997. Desde entonces se han ido generado diferentes versiones hasta llegar a la versién 2.0 (finales de 2004), que es la ver- sién que se utiliza actualmente. El UML es una especificacion estandar del OMG, Es importante destacar que, de hecho, realmente Jo que se ha unificado no son los métodos en si sino las notaciones de los diferentes métodos. Es decir, el UML nos permite modelar aspectos del software de forma que todos las ingenie- ros de software puedan captar la misma semantica del modelo. No obstante, el UML no nos dice cuales son los aspectos del software que es importante mode- lar, ni con qué nivel de detalle, ni en qué fase hay que definirlos... por lo tanto no se puede considerar un método de desarrollo de software, un error comin, por abuso del lenguaje, entre muchos miembros de la comunidad. Actualmente, no hay un método de desarrollo orientado a objetos Gnico, aunque el UP (Unified Process), propuesto por los mismos autores del UML, es uno de los mas comunes. Una unificacién interesada Esta unificacién fue favorecida por la empresa Rational software Corporation (ahora parte de IBM) que contrat a Booch, Rumbaugh y Jacobson con el fin de trabajar en 4, E1OMG (Object Management Group) es un consorcio de empresas que persigue la definicion de estandares tanto de tecnologias de programacién (como CORBA) como de especificacién (como el UML). © Editorial UOC 176 Escaneando la Informatica un método unificado. Poco después, sin embargo, vieron mas factible proponer un Ienguaje (notacién) unificado como respuesta a la peticién del OMG de encontrar un Ienguaje de modelizacidn orientado a objetos esténdar. A continuacién Rational sacé la herramienta Rational Rose, que durante muchos afios ha sido una de las herramien- tas de modelizacion en UML mas utilizadas. En paralelo a todos estos métodos (tanto estructurados como orientados a objetos) se han ido proponiendo diversos métodos formales. Estos métodos pro- ponen la especificacion del software en términos de un modelo matematico riguroso que permita verificar la correcci6n de estas especificaciones. Aunque conseguirlo seria claramente un beneficio importante (podriamos detectar todos los errores ya en la fase de andlisis y por lo tanto evitariamos perder el tiempo y el dinero que cuesta encontrar errores durante la implementacién), estos métodos nunca han tenido un éxito destacable debido a su poca usabili- dad (es mucho mas complicado especificar el software con uno de estos méto- dos que hacerlo en UML) y a su limitada expresividad (las notaciones utilizadas en estos métodos ofrecen un conjunto de elementos de especificacién mas pobre que el que ofrece el UML). Ejemplos de lenguajes de especificacion forma- les son Z, VDM (Vienna Development Method) o el ASM (Abstract State Machines). 4. Presente de la IS Sin ningiin tipo de duda el UML es el lenguaje de uso comin en la inmen- sa mayoria de los proyectos de desarrollo que se llevan a cabo hoy dia (apar- te de ser un lenguaje estandar segiin el OMG). Eso ha hecho que este lengua- je sea ampliamente soportado por todas las herramientas CASE* actuales (de rebote eso fuerza a los usuarios de estas herramientas a utilizar el UML como notacién en sus proyectos y por lo tanto amplia la base de usuarios del len- guaje UML) Las herramientas CASE (Computer Aided software Engineering) son todas las que nos ayudan durante el desarrollo de software. En www.objectsbydesign.com se puede enconitar una lista de herramientas CASE utiles para métodos de desarrollo que utilicen la notacién UML (visitado en octubre de 2006), © Editorial UOC 17 Ingenieria del software Como ya hemos comentado anteriormente, no podemos decir lo mismo res- peto a ningtin método de desarrollo. Dicho eso, el UP* es el método orientado a objetos que ha tenido un mayor impacto en la comunidad y, de alguna forma, ha inspirado 1a gran mayoria de los métodos de desarrollo utilizados por las diferentes empresas, que acostumbran a ser métodos adhoc (es decir, métodos propios, adaptaciones de algtin método conocido, como el mismo UP, a las caracteristicas especificas de los proyectos que desarrolla la empresa). El resto de esta seccién se dedica, pues, a presentar brevemente el UML y el UP como representantes de las t¢enicas mas usadas dentro de la IS en la actua- lidad. Para mAs informacion consultad la bibliografia que encontraréis al final del capitulo. Para ilustrar estos conceptos, presentamos a continuacién un pequefio ejem- plo que utilizaremos a lo largo de esta seccién. Asi pues, supondremos que nos encargan el desarrollo de un software para gestionar los clientes (y las compras que estos hacen) de un pequefio comercio local. Obviamente, por razones de espacio, se utilizaré una version muy simplificada del problema. La tienda VamosAComprar Nos piden que desarrollemos un software que permita gestionar los clientes habitua- les de la tienda VamosAComprar. En concreto se quiere recoger los datos de los clien- tes habituales y de las compras (ventas desde el punto de vista de la tienda) que hacen. Un cliente es habitual cuando hace como minimo una compra al mes. De cada venta que se hace a un cliente se necesita cl importe total y los productos que forman parte de ella (slo hay que saber los productos, no cudntas unidades de cada producto se han vendido). Algunos clientes se clasifican temporalmente como moro- sos si tienen alguna compra pendiente de pagar. Aparte de poder gestionar toda esta informacién, el software tiene que generar un listado semanal con el resumen de ven- tas agrupado segtin el cliente. 4.1 El Unified Process EI UP nace en el afto 1998 a partir de las aportaciones de G. Booch y J Rumbaugh al método de desarrollo Objectory creado por I. Jacobson. Mas que un Gnico método de desarrollo, el UP pretende ser un marco de trabajo (framework en 6. También conocido como RUP (Rational Unified Process) debido a que sus tres creadores trabaja. ban en Rational en el momento de definir el método, © Editorial UOC 178. Escaneando la Informatica inglés) general que se pueda especializar segiin las necesidades de cada empresa (los métodos adhoc que comentabamos antes). Sus principales caracteristicas son: -Es un método dirigido por los requisitos del sistema, expresados en 1a forma de casos de uso (se dice que el proceso es use-case driven). Cada caso de uso representa una de las funcionalidades del sistema que el usuario necesita (y que, por lo tanto, el software final tendra que implementar) Partiendo de esta especificacién inicial de los casos de uso, se leva a cabo todas las demés actividades de desarrollo. ~ Es iterativo ¢ incremental. El proyecto no se desarrolla todo de golpe sino que el desarrollo se divide en una serie de iteraciones, en la que cada itera- cién genera (o amplia) una parte del software final (que, por lo tanto, va creciendo de forma incremental, primero se crea una primera versin del software con una sola funcionalidad, después se afiade una segunda y asi sucesivamente). En cada iteracién, los desarrolladores tienen que escoger cuales son los requisitos (casos de uso) que quieren tratar dentro de la ite- racion. Al final de ésta, se habra generado la parte del sistema que imple. menta los casos de uso incluidos dentro de la iteracién nla seccion = Reconoce la importaneia de definir la arquitectura de softwar 1 ya hemos comentado que la fase de disefio es necesaria con el fin de adaptar la especificacién del software a la plataforma tecnolégica con la que se quiere implementar y ejecutar el sistema. Fl UP defiende que los arqui- tectos estén plenamente involucrados en todas las fases de desarrollo del proyecto, - Uso de un lenguaje de modelizaci6n visual, necesatio para facilitar la comunicacién entre los miembros del proyecto. Abogan por el uso del UML. ~ Calidad del software generado. La calidad se contempla como una parte del mismo método y no como una etapa al final del desarrollo. ~ Integracién de la gestion, la configuracién y los cambios en el proyecto dentro de las iteraciones. Proponen tener en cuenta estos aspectos en cada una de las iteraciones. 7. La arquitectura de software define la estructura del software en. funcion de sus componentes, la relaci6n entre ellos, la interacci6n con los sistemas externas, la plataforma tecnolégica y los requi- sitos no funcionales (eficiencia, seguridad...) © Editorial UOC 180 Escaneando la Informatica siones tomadas hasta aquel momento son correctas. En nuestro caso, podriamos escoger como ejemplo critico el caso de uso de gestionar clientes (de hecho, la eleccién deberia tener en cuenta 1a opini6n del cliente, es decir, el tendero en nuestro caso) y desarrollarlo completamente. El resultado se le muestra al ten- dero para que nos dé su opiniGn. Asi podemos ver si “vamos por el buen cami- no” antes de seguir desarrollando el resto de los casos de uso. En la fase de construccién se desarrolla el resto de los casos de uso y se prueba todo el sistema a fondo. En esta fase se implementarian el resto de los casos de uso no desarrollados ya en la etapa anterior (teniendo en cuenta el feedback que hemos recibido). Por tiltimo, en la fase de transicién se facilita a la comunidad de usuarios el cambio del viejo sistema al nuevo.* Eso incluye pruebas de versiones beta del software por parte de un subconjunto de usuarios, ejecucién en paralelo de los dos sistemas para detectar errores, migracién de los datos del sistema viejo al nuevo (si hace falta), formacién a los usuarios, completar la documentacién, etc. En nuestro ejemplo, dentro de esta fase, se le ensefiaria al tendero el fun- cionamiento del nuevo programa y se dejaria todo a punto para empezar a uti- lizarlo (eso incluye, si es necesario, migrar los datos existentes del formato anti- guo utilizado por el anterior programa al formato utilizado por el nuevo). Dentro de cada fase se pueden hacer n iteraciones. En cada iteracion se hacen todas (0 algunas) de las posibles actividades definidas por el método (core work- flows, segin la terminologia de UP). Las principales actividades segiin este méto- do (figura 2) son la recogida de requisitos,’ el analisis, el disefto, la implementa- cién y las pruebas. Aparte de éstas, UP también define las tareas de apoyo siguientes (core supporting workflows): configuracién y gestion de los cambios, gestion del proyecto y gestién del entorno, que pretenden ayudar a asegurar la calidad del software y minimizar los riesgos durante su construccién, dos de los objetivos mas importantes dentro de la ingenieria del software. Segtin la iteracion, cada actividad tendr mas o menos importancia. Por ejemplo, en las iteraciones mas iniciales, la recogida de requisitos y el anilisis tendrén més importancia que la construccién del sistema, tendencia que se invierte a medida que vamos avanzando en el tiempo. Sin embargo, es impor- 8, Actualmente la gran mayoria de las empresas ya estan informatizadas, por lo tanto la mayoria de los proyectos tienen como objetivo reemplazar un sistema obsoleto por uno nuevo. 9. Fijaos en que este método separa la recogida de requisitos dle su especificacién “formal” en la fase de analisis © Editorial UOC 182 Escaneando la Informatica A continuaci6n se presentan, a modo de ejemplo, algunos de los elemen- tos que forman la notacién UML. Estos elementos normalmente se agrupan en diagramas, en los que cada diagrama se utiliza para representar una vista particular del software. Para mostrar los diferentes diagramas seguiremos el ejemplo presentado al inicio de la seccién. Como el UML no es un método de desarrollo, el orden en que introducire- mos los diagramas necesarios con el fin de solucionar el ejemplo de la tienda VamosAComprar no lo define el propio lenguaje. Aqui los iremos introducien- do siguiendo un orden que nos parece suficientemente intuitivo como para que se entienda el ejemplo (cl lector puede dirigirse a cualquier método de desarrollo, como el anterior UP, para ver en qué orden y en qué nivel de deta~ lle proponen utilizar los diferentes diagramas). En concreto, veremos breve- mente el diagrama de casos de uso, el diagrama de clases, el diagrama de secuencia y el diagrama de estados. Se puede consultar la bibliografia disponi ble al final del capitulo para conocer el resto de los diagramas y elementos que forman parte del lenguaje. 4.2.1 Diagrama de casos de uso El diagrama de casos de uso permite visualizar facilmente el conjunto de requisitos del saftware. Como su nombre indica, el diagrama estd formado por un conjunto de casos de uso, en que cada uno representa una funcionalidad (“escenario de utilizacién”) que tiene que proveer el sistema. Aparte de los casos de uso, el otro elemento basico del diagrama son los actores. Un actor es un elemento externo al sistema de software que queremos desarrollar pero que tiene algiin tipo de interaccién. Un actor puede ser humano (como el usuario del software) pero también puede ser otro sistema externo con el que el nues- tro se tenga que comunicar. El diagrama de la figura 3 muestra algunas de las funcionalidades necesa- rias para desarrollar el software de VamosAComprar. En este caso solo hay un tipo de usuario externo, el tendero, que es el encargado de utilizar las diferen- tes funcionalidades (gestionar clientes, crear nueva venta, cobrar venta atra- sada y generar listado ventas). aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 185 Ingenieria del software El tendero también tiene que saber cuales son las ventas que se han hecho a cada cliente en particular. Como venta y cliente ya son clases existentes dentro del diagrama, para guardar esta informacion hay que relacionar la clase Cliente con la clase Venta a través de la asociacin HaComprado. Como propiedades de esta asoclacion podemos definir que cualquier cliente ha hecho como minimo una compra (venta desde el punto de vista del tendero) pero que no hay un maximo definido (el cliente puede hacer todas las compras que quiera). Eso se indica aftadiendo la mulliplicidad “1..*" al lado de la clase Venta (la notacién UML define que el asterisco indica que no hay limite superior en la relacién) De la misma manera, definimos que toda venta pertenece a un tinico cliente aftadiendo un “1" al lado de la clase Cliente. En cambio la relacién entre Venta y Producto es "1..*” en el lado de producto (una venta puede contener muchos productos pero como minimo tiene que contener uno) y es “0..*" en el lado de venta (puede ser que nos Iegue un producto nuevo; por lo tanto, este produc to no estaria todavia relacionado con ninguna venta) El diagrama también incluye una relacién de herencia (también llamada relacién de generalizacién) entre las clases Cliente y Cliente moroso. Con esta relacién indicamos que los clientes morosos son un tipo especial de clientes (todos los clientes morosos son de hecho clientes pero, afortunadamente, no todos los clientes son clientes morosos). Por lo tanto de un cliente moroso guar- daremos toda la informacién definida en Ia clase Cliente (por eso no repetimos los atributos de cliente cuando dibujamos la clase Cliente moroso) mas la infor- ma i6n del atributo pendiente, que es un atributo especifico de los clientes morosos La barra inclinada delante de pendiente indica que el valor de este atributo es derivado. Eso quiere decir que su valor se puede calcular a partir de otras pie- zas de informaci6n ya existentes dentro del diagrama. En este caso, el valor de pendiente de un cliente se define como la suma del importe de las ventas del cliente atin no pagadas. Esta definicién se puede hacer simplemente en lengua- je natural o se puede formalizar utilizando un lenguaje formal como el OCL (Object Constraint Language)." De forma parecida, también tenemos que afiadir al diagrama todas las res- tricciones de integridad que corresponda. Las restricciones de integridad nos sir- 11. ELOCL es un Jenguaje textual que permite complementar los diagramas UML con toda la infor macién que no se puede expresar grdficamente. © Editorial UOC 186 Escaneando la Informatica ven para definir estados incorrectas de los datos del software. Podemos ver las restricciones como una condicién booleana que tiene que ser cierta siempre Cuando una de estas condiciones se convierte en falsa quiere decir que hay un error en los datos del sistema. Un ejemplo de restriccidn seria “todos los produc- tos tendran un precio >5”, En este caso, cada vez que damos de alta (o actuali- zamos) un producto de forma que su nuevo precio sea inferior a cinco el soft- ware tiene que detectarlo y avisar al usuario del error. Fijaos en que la multipli- cidad de las asociaciones es también un Lipo de restriccién (por ej. definen el ntimero maximo y minimo de relaciones entre clientes y ventas). En general, sin embargo, las restricciones no se pueden definir graficamente sino que hay que hacerlo textualmente, ya sea en lenguaje natural o en OCL. 4.2.3 Diagrama de secuencia El diagrama de secuencia es uno de los diagramas que permiten modelar el comportamiento dindmico del sistema. En concreto, permite definir como interacttian y colaboran los diferentes elementos del software que se tiene que desarrollar con el fin de llevar a cabo las funcionalidades requeridas. En concreto, el diagrama de secuencia muestra el conjunto de meni jes (interacciones) que se generan desde el momento en que el actor empieza la eje- cucin de la funcionalidad hasta que ésta se acaba. Fl diagrama hace hincapié en mostrar fécilmente la ordenaci6n temporal de los mensajes (la ordenacién se muestra verticalmente, si un mensaje se encuentra mas abajo que otro en el dia- grama quiere decir que el primer mensaje es posterior al segundo). La figura 5 muestra un posible diagrama de secuencia para el caso de uso entrar una nueva venta del diagrama de casos de uso. En la figura se ve que el actor (el tendero) interactia con la clase formulario nueva venta (que representa el formulario de la interfaz grafica donde el tende- to entra los datos de la venta) con el fin de crear la nueva venta. Después se busca el cliente al que pertenece la venta con la ayuda del formulario biisqueda del cliente. Por tltimo, se asigna la nueva venta al cliente recuperado por el for- mulario con el fin de asociar al cliente con la nueva venta. Aunque, por simpli- cidad, no se ha contemplado dentro del diagrama, también habria que asociar la venta con los productos que forman parte de ésta. © Editorial UOC 187 Ingenieria del software Figura 5. Ejemplo de diagrama de secuencia Tender Aormudar ‘Tendero formal Introduce datos 2: Crear vents 5: Seleccionar cliente 7: Retort cliente 1 Puede suceder que a la hora de dibujar el diagrama de secuencia nos encon- tremos con que necesitamos definir clases que todavia no habiamos especifica- do dentro del diagrama de clases. Asi pues, en este caso, habria que hacer una nueva iteraci6n sobre el diagrama de clases anterior con el fin de incluir las nue- vas clases. Ademés, para cada mensaje que aparezca en este diagrama hay que definir una nueva operacién dentro de la clase correspondiente (es decir, la que recibe el mensaje). Esta operacion seria la encargada de procesar la peticion del men- saje. Se tiene que especificar el comportamiento de todas las operaciones (es decir, “qué” tiene que hacer la operacién). Eso podemos definirlo descriptiva- mente en lenguaje natural, especificarlo formalmente con contractos en OCL o escribiendo directamente cémo tendria que ser el cédigo de la operacién. © Editorial UOC 188, Escaneando la Informatica 4.2.4 Diagrama de estados El diagrama de estados muestra el comportamiento dindmico de un elemen- to en concreto. Mas especificamente, permite ver los diferentes estados por los que pasa un objeto (un cliente, una venta...) a lo largo de su ciclo de vida. Por ejemplo, el diagrama de estados de la figura 6 permite modelar cuando un clien- te pasa de ser un cliente normal a un cliente moroso y al revés. Figura 6. Ejemplo de diagrame de estados. Buen cliente Nueva venta [pagada=false] Pagar venta [pendiente= Cliente moroso En el ejemplo de la figura 6 se ve que inicialmente un cliente se encuentra en el estado “buen cliente” (el citculo negro marca cual es el estado inicial) Cuando se crea una nueva venta por parte del cliente y la venta queda pendien- te de pago, el cliente pasa al estado de “cliente moroso”. Posteriormente, cuan- do el cliente paga la venta puede devolver al estado de “buen cliente” (siempre que con este cobro el importe pendiente del cliente quede a cero, es decir, cuan- do no haya otras ventas todavia pendientes). © Editorial UOC 189 Ingenieria del software 5. Tendencias Para acabar el capitulo presentamos una serie de técnicas y métodos que todavia no tienen un uso generalizado en la industria de desarrollo del software pero que, en nuestra opinion, adquiriran cada vez un mayor protagonismo en loy proximos ails. El horizonte temporal varia para cada propuesta; algunas propuestas estén ya lo bastante maduras mientras que otras todavia estan actualmente en fase de investigacién. En conereto presentaremos las propuestas siguientes: desarrollo de software dirigido por modelos, ingenicria web, reutilizacion, verificacién y validacion de modelos y métodos giles. Las diferentes propuestas se pueden combinar entre si, lo cual maximiza sus ventajas. Por ejemplo, se podria partir de un modelo UML verificado y validado a la hora de seguir un proceso de desarrollo dirigido por modelos con vistas a generar un software basado en web: 5.1. Ingenieria web La ingenieria web se puede definir como la especializacién de la IS para el caso especifico del desarrollo de software basado en tecnologias web. Por lo tanto, la ingenieria web no es un nuevo paradigma o un nuevo tipo de ingenie- ria. Los métodos de desarrollo web toman (y especializan) aquellas técnicas de la IS mas dtiles para el caso concreto del software web." Por ejemplo, aparte de otros diagramas (como el diagrama de clases, el de casos de uso, etc., vistos en el punto anterior), todos estos métodos utilizan lo que denominamos modelo de navegacién. Este modelo permite representar las diferentes paginas webs que forman el software web, el contenido de cada pagi- na (qué datos muestra y cémo los muestra), los enlaces entre ellas, asi como (en, algunos de los métodos) las operaciones que se tienen que “ejecutar” cuando el usuario navega de una pagina a otra. La figura 7 muestra una parte del posible modelo de navegaci6n (especificado usando el lenguaje WebML) para el sofiwa- 12. En el ano 2000 un grupo de expertos se reunié en la 22 International Conference on software Engineering para plantear los temas de futuro de le ingenierfa del software. Sus trabajos se pueden encontiar en; Iittp://www.cs.uclac.uk/staf/A.Finkelstein/fose/future.htm! (visitada en noviembre de 2006). Muchos de ellos todavia son plenamente vigentes hoy dia. Ejemplos de métodos web son: WebML, 00-Methed, OOH, UWE, OOHDM o Strudel. © Editorial UOC 190 Escaneando la Informatica re de la tienda VamosAComprar si el tendero pidiera 1a opcién de permitir com- pras por Internet. La pagina login permite a los clientes registrarse en el sistema A partir de ahi el cliente puede ir a la pagina Nueva Venta. Una vez entrados los datos necesarios para dar de alta la venta (por ejemplo el cédigo y 1a fecha, suponiendo que no se generen automaticamente), el usuario navega hasta la pagina AfadirProducto, Durante la navegacion se crea el nuevo objeto venta (operaci6n InsertVenta) y la relacién entre esta venta y el cliente (InsertlaComprado). Desde la pagina AfadirProducto el cliente puede ir indican- do los productos que quiere comprar (cada vez que afade uno, se crea el vincu- lo entre la venta y el producto, operaciéa Insertincluye, y se vuelve a la misma pagina para aitadir otra nuevo si es necesario). Cuando todos los productos han sido afadidos el cliente ya puede dirigirse a la pagina Checkout. Algunos de estos métodos utilizan la notacién UML (con algunas extensio- nes) mientras que otros utilizan su propia notacién. Figura 7. Ejemplo de modelo de navegacién (2 HomePage tri te rere 5.2. Desarrollo de software dirigido por modelos El desarrollo de software dirigido por modelos" pretende utilizar la informa- cién contenida en los modelos especificados durante las fases de andlisis (espe- cialmente) y de disefto con el fin de automatizar todo 1o posible la fase de codi- 13. Model-criven development (MDD), en ingles. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 207 Sistemas de informacién (en las organizaciones) Figura 4. El SI en la cadena de valor Incorporar Almacenar Dar materias Producir y Vender ee servicio primas distribuir = x 3 4 Desarrollar — Comprar Dirigir personas . < - productos eur informacion esquema de Porter se va contextualizado en empresas de produccién, pero es facil adaptarlo a cualquier tipo de organizacion del Ambito de los ser- vicios. Actualmente, ademés, ya aceptamos que los SI afectan no sélo a los procesos internos de la organizaci6n, sino a los de los agentes externos con los que interacttia: proveedores, clientes, administraciones ptiblicas... Y asi hablamos de la cadena de valor externa o extendida Demos ahora un paso adelante. Las conclusiones de Porter sobre que los. SI afectan a todos los procesos de las organizaciones, las tenemos hoy tan asumidas por nuestra experiencia diaria que nos pueden parecer casi trivia- les. Lo que quizés no sea tan intuitivo para nosotros es el impacto que tienen en la estrategia de las organizaciones y las oportunidades que abren en este sentido. MeFarlan y McKenney, al principio de los afios ochenta presentaron, la matriz de impacto de los SI en la estrategia (y en las operaciones) de las organizaciones. En la figura 5 presentamos la version de Ward y Peppard de 2003; © Editorial UOC 210 Escaneando la Informatica Tabla 1. Evolucién historica de los SI de Applegate Hl mainframe Mictoordenadores | Informética distr. | Ubicuidad (1950-1970) (1970-1980) buida (1980-1990) (1990-actual) Grado de Centralizado Descentralizado | Cliente/servidor —- Ubicua centralizacion | Focalizacién | Aplicaciones Datos | Negocio Conocimiento | Estandarizacén | Propietaria Propietaria | Abierta Muy abierta | Interconexién | Redes WAN Redes LAN [Integracion Internet, | Velocidad | Muy lenta Lenta | Rapida Muy répida | Rol protagonista | Profesional TI Especialista en Usuario final Cliente interno apoyo al usuario | y externo + En su origen y hasta finales de los afios sesenta, el objetivo de los SI era dar apoyo a los departamentos, especialmente en funciones como la contabili- dad o la administracién de personal. Se automatizaron los procesos, general- mente como aplicaciones denominadas corporativas, de un solo uso. Redes pro pias de cada empresa conectaban los sistemas centrales con terminales de telepro- ceso (pantallas “simples”). A esta época corresponde el desarrollo de “grandes” sis. temas de hardware (mainfiame), con bases de datos, sistemas operativos y lengua- jes de desarrollo propios de estos sistemas (sistemas denominados propietarios) siempre en un entorno centralizado, tinico y operado mediante especialistas. + La segunda etapa, el mundo de los microordenadores (aftos setenta y prin- cipios de los ochenta), fue en realidad una variante de la anterior. Permitid extender la filosofia del mainframe a negocios separados 0 en territorios alejados geogrdficamente. Los usuarios empezaron a ganar conocimiento y poder sobre los SI y la organizacién de la funcién informatica se volvié mas des- alizada 0, por lo menos, més “federal” * Durante los ajios ochenta y entrados los noventa, los negocios indepen- dientes y los grandes departamentos empezaron a disponer de sus propios siste- mas y los usuarios aumentaron su autonomia y su capacidad de proceso Aparecieron los primeros sistemas estandar, independientes de proveedor (Unix) y, sobre todo, el PC. Se desarrollaron arquitecturas cliente/servidor, sobre redes mas pequeftas y con mayor capacidad. Es la época de la informatica dis- tribuida. La informatica se pone ya al servicio de los directivos y los usua- ios. Aparecen herramientas de andlisis y de ayuda a la toma de decisiones, y paquetes de software integrados por la gestidn integral de las organizaciones. © Editorial UOC 211 Sistemas de informacién (en las organizaciones) * Desde finales de los noventa hasta ahora, la informacién se ha con- vertido en un objeto central de valor para la organizaci6n y sus relacio- nes (clientes, proveedores, distribuidores...). Las nuevas tecnologias de las comunicaciones, y en particular la de Internet, modifican la organizacion interna y externa de la organizacion. La informatica se orienta hacia el clien- te interno (la organizacién a la que sirve) y, sobre todo, hacia el externo. Es la época de la integracién y de la conectividad entre aplicaciones, las arquitec- (uras multicapa, los sistemas de inteligencia de negocio y de gestion de las relaciones con los clientes. El abaratamiento de los costes de proceso, comu- nicacién y almacenamiento; el aumento de la velocidad de transmisién; la convergencia y ubicuidad de las tecnologias y la capacitacién de los usuarios por medio de herramientas mis faci extendid, les de manejar y 1 5; facilidad de acceso a la informacién... Todos estos elementos modifican com- pletamente el rol de la informatica, hasta unos niveles dificiles de prever. Esta ; la gran época constituye un salto incluso econémico, sociolégico 0 antropolégico, lo que el profesor Castells ha denominado la “era de la informacién y el conoci- miento”. En definitiva, el camino recorrido hist6ricamente se inicia en la fase inicial de procesamiento de datos y apoyo a los procesos administrativos y llega hasta la fase actual, en la que se pone el acento en el uso de la informacién y la aportacién de valor desde la informatica Esta evoluci6n histérica nos gusta porque tiene una virtud adicional parece extrapolable a la historia tipo de los ST en una organizacién con- creta (de aqui el titulo de esta seccidn). Es decir, una organizacién empieza centrando sus esfuerzos en SI en el procesamiento de datos y en los procesos administrativos, para pasar, a medida que madura, a una etapa en la que la informaci6n le permite tomar decisiones y llegar finalmente a una etapa de plena madurez, en la que el SI impacta sobre la estrategia de la organizacion Se puede resumir esta evolucin a partir de las representaciones de Porter y Miler por un lado y de Earl por otro’ y que reproducimos en la figura 6 1. De hecho, Nolan es el precursor de este modelo. Su propuesta es mucho més detallada y hoy es perfectamente vigente, aunque su detalle se escapa de los objetivos de este texto. © Editorial UOC 212 Escaneando la Informatica Figura 6. La evolucion tipo de los SI en una organizacion (nara ee sccm ae =< / Precept iia / as {siz parecer soporte ) los —/ \ Esta evolucién tipo de las organizaciones practicamente ha servido y sirve para explicar lo que sucede en la mayoria de organizaciones tradicionales. Pero es necesaria otra matizacién, insistiendo en que no todo cuadra tan bien: qui- zs hoy ya no afecta a organizaciones jévenes que nacen con suficiente espiri- tu innovador desde el primer momento y son conscientes del papel fundamen- tal que tienen los SI. El caso més claro entre éstas son las organizaciones intensivas en el uso de las TI, es decir, donde su negocio (su servicio o pro- ducto) esta basado totalmente en las posibilidades de las TI y que trabajan en la ted y para la red (Internet como base, terminales distribuidos de todo tipo, uso de aplicaciones y servicios de valor disponibles en cualquier lugar...). En éstas, los SI y las TI ya se perciben “genéticamente” como una herramienta para dar valor a la empresa y a los clientes. Hoy, que se etiqueta como nativas digitales a las generaciones nacidas durante la evoluci6n vertiginosa de las Tl de finales del siglo xx, estas organizaciones serian su equivalente: las podria- mos etiquetar como organizaciones nativas digitales. Y eso en contraposicion a las organizaciones adoptantes 0 emigrantes digitales que, como las generaciones aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 230 Escaneando la Informatica Es bien sabido que muchos proyectos fallan.’ Es decir, que no cumplen algu- nas o todas las magnitudes que mencionabamos més arriba. Pero en muchos casos ello es debido a una gestion inadecuada mas que a un producto que no funciona. Entre las causas hay algunas clasicas: 1) la falta de participacion y de compromiso entre el cliente y los usuarios, 2) la falta de apoyo desde la dire ci6n, y 3) la falta de una definicion clara de los objetivos y del alcance del pro- yecto. Por ello, la gestion de proyectos y el rol de jefe de proyectos son tan importantes. Para finalizar este apartado sobre los roles en el management de los Sy enla- zando con los temas de la formacién necesaria para desarrollarlos, proponemos ahora una pequefia reflexién sobre cl origen de estos profesionales. {Tienen que ser informaticos los que estén al frente de las tarcas de management? El profesional ideal deberia tener un gran conocimiento de las tecnologias, pero también claras habilidades para la participacién activa en el mando de la organizacin o, por lo menos, de una parte fundamental de ésta Este perfil hibrido, junto con la habitual inclinacién hacia la tecnologia de la mayoria de los profesionales informaticos, explican por qué, a menudo, estas responsabilidades han recaido en profesionales formados principalmente en gestion y direccién de empresas, con ms o menos conocimientos sobre la tec- nologia y sus posibilidades. El perfil opuesto, el del ingeniero tecnélogo con mas 0 menos conocimientos sobre gestién y direccién, se ha ido incorporando posteriormente. Asi pues, habria que apostar por un profesional que haya recibido una for- maci6n que integre indisolublemente, como minima, ambas disciplinas. Es lo que, siguiendo los curriculos universitarios propuestos por la ACM, ya empie- za a aparecer en algunas facultades como las especialidades de a) Sistemas de Informaci6n (para la vertiente de direccién) y b) Tecnologias de la Informacién (para la vertiente de gestién técnica). Ademas de estas especialidades, esta emergiendo también la Ingenieria de Servicios y Sistemas de Informacién (con esta misma denominaci6n u otras parecidas) que, conceptualmente, ya integra desde buen principio las perspectivas tecnolégicas y de management, entrela- zandolas para formar un profesional hibrido (y rehuyendo asi al profesional formado basicamente en uno de los dos ambitos y con conocimientos del otro). 3. En el Standish Report que se publica anualmente se pueden encontrar datos detallados. © Editorial UOC 231 Sistemas de informacién (en las organizaciones) Aun una breve reflexin final. Como deciamos, muchos profesionales infor- ‘icos -una vez fuera de las escuelas donde los han formado muy técnicamen- te— no se sienten atraidos inicialmente por este tipo de responsabilidades. Pero a menudo, una trayectoria profesional estable y dilatada en el tiempo dentro de una organizaci6n acaba llevando al profesional informatico a estas responsabi- lidades o a que, como minima, se las ofrezcan. {Cuantos jefes de proyecto no han sido antes programadores o instaladores de redes? zY cuantos CIO no han sido antes jefes de proyecto? mé 7.2. Los roles para la gestién funcional de los ST En el apartado anterior hemos visto cudles son las funciones de direccién y gestion de Sy los roles que las ejecutan. Es evidente que los ClO y los jefes de proyecto no trabajan solos, sino que dirigen y coordinan un equipo diverso que participa en diferentes proyectos y/o que tiene tareas concretas longitudinales en el tiempo. Los miembros de este equipo estin implicados con lo que pode mos clasificar como la gestién funcional de los SI. Pero volvemos a insistir en que la funcion directiva en algtin momento determinado y justificado puede actuar directamente en la gesti6n funcional; y, de hecho, la gestion funcional también contribuye a la accin directiva, ya que algunos de sus miembros tienen que compartir periddicamente con los CIO y los jefes de proyecto su visién mas cer- cana al funcionamiento diario, visibn que tiene que influir en las decisiones de aquéllos. Es decir, una vez mas, los roles de management y los roles funcionales no son compartimentos estancos. Los roles funcionales se caracterizan por estar relacionados con respon- sabilidades técnicas. Estas responsabilidades podemos considerarlas concep- tualmente organizadas, como minimo, en torno a las siguientes areas de actua- cidn (y la siguiente vuelve a ser una clasificacién que no pretende ser incuestio- nable): Area de desarrollo y mantenimiento de SI En esta drea se “construyen” y “mantienen” (amplian, actualizan o corrigen) los SI (otra vez en cursiva, es decir, entendidos como la parte de software de apli- cacién de las TI) Basicamente, las (areas del Area relacionadas con el desarrollo (0 “construc- cin”) de SI incluyen proyectos de los tipos siguientes: © Editorial UOC 232 Escaneando la Informatica * Proyectos de creacion de nuevos Sf (desarrollo de software o implantacion de SI integrados), que hay que encajar con los que ya existen. * Proyectos de adaptacion de ST preexistentes a las necesidades cambiantes de las reas funcionales que los acogen. * Proyectos de renovaci6n de la cartera de S/ cuando, por razones funciona- les tecnoldgicas, los Sf estén a punto de Hegar al final de su vida ati y pueden pasar a dar muchos més problemas que beneficios. En este punto, las areas de desarrollo se suelen mover entre el dilema de hacer duraderos los SI para que éstos sean rentables, retrasando la incorporacién de nuevas TI més ventajosas, o precipitar la renovacién de SI, desperdiciando inver- siones importantes ya cfectuadas. Las tareas de! area relacionadas con el mantenimiento de SI ocupan una alta proporcién de la dedicacién de esta Area. La convivencia en la misma Area del desarrollo y el mantenimiento permite disponer de una vision completa de los problemas y de las posibilidades de los SI y también tener cerca, para hacerse cargo del mantenimiento, a los equipos que participaron en el desarrollo del proyecto. Las actividades relacionadas con el desarrollo y el mantenimiento de SI requieren un allo componente de creatividad orientada al negocio o actividad de la organizacién, tanto si hablamos de roles de analista como de programador (en los capitulos dedicados a ingenieria del software, programacién y gestion de datos, ya hemos tratado detalladamente estos perfiles). En cualquier caso, requieren unos profesionales que sepan sacar el maximo partido de los usuarios de SI (de todos los ambitos de la organizacién y de todos los niveles de respon- sabilidad), cuya colaboracién es fundamental para el buen funcionamiento de estas actividades. Se trata de un trabajo que normalmente se hace en equipo, muy estructurado y eno de detalles, en el que son importantes los aspectos de administracion del trabajo, de comunicacion interpersonal y de liderazgo y que requiere una vision global de las dimensionas técnica, funcional y de negocio. Area de operaciones, produccién 0 explotacién Esta area es la responsable del funcionamiento (operaci6n, producci6n) coti- diano de los SI en uso (en explotacién) y del control de los recursos de hardwa- re ¢ infraestructuras de las Tl. Asegura la continuidad del servicio que presta la funci6n informatica a la organizacion, es decir, de ella depende el dia a dia de la actividad de la organizacion y cualquier incidencia puede dejar a muchos © Editorial UOC 234 Escaneando la Informatica comunicaciones y Gestién de datos) y un contacto directo con usuarios, a menudo en momentos criticos de caida del nivel de servicio, Este contexto requiere una actitud positiva y buena capacidad de comunicaci6n; unos niveles de exigencia y de rigor altos en el control del uso de los recursos; y una capaci- dad de gestion elevada del gran namero y diversidad de elementos tratados (que a menudo derivan también en complejidades logisticas si la organizacion esta distribuida geograficamente). Area técnica de sistemas Esté especializada en el estudio, la selecci6n, la puesta en marcha y el man- tenimiento de todas las nuevas TI (que no son Si: hardware, infraestructura y software de base) que se utilizan en la organizaci6n y en particular del software de base (los SGBD, los sistemas operatives, ete.). Es decir, a partir de un trabajo claro de prospectiva tecnolégica propone evoluciones de las TI de hardware, infraestructura y software de base utilizados en cada momento. Es bastante peculiar en cuanto a su gestion, ya que se encuentra muy deter- minada por sus caracteristicas técnicas y por su funcién de apoyo y servicio a las otras dos Areas: el Area de operaciones y el rea de desarrollo y mantenimien- to de SI. De hecho, entre los “servicios” que les presta esta el de evaluar si los procedimientos de explotacién de la primera, y el software desarrollado por la segunda, son optimizables con las evolucionas tecnolégicas que aparecen en el mercado. En el mismo sentido, también ejerce a menudo un papel de arbitraje ante conflictos entre produccién y desarrollo. Tradicionalmente, el rea técnica de sistemas se encarga también del trabajo en otros 4mbitos més transversales en el departamento y en la organizaci6n (a pesar de que actualmente, teniendo en cuenta la relevancia de estos ambitos transversales, muchas organizaciones ya han creado otras areas funcionales para atenderlos). Entre estos ambitos mencionamos dos muy relevantes: - Administracién y gesti6n de datos: trata de responsabilizarse del recurso “informacién" de la organizacion, considerandolo desde una perspectiva global (es decir, integrandolo en un todo y salvando la fragmentacion a la que esta sometido por la separacién departamental), asegurando su uso y entendiendo su consideraci6n de activo fundamental, su importancia estratégica (como base a SI decisionales) y las posibilidades que abre en cada momento a la organizacion. En consecuencia, se trata de asegurar los Ures niveles en los que se apoya el recurso “informaci6n”: el fisico (el deri- vado del uso de un SGBD concreto), el l6gico (la vision parcial que del © Editorial UOC 235 __ Sistemas de informaci6n (en las organizaciones) modelo general de informacién tienen los diferentes usuarios) y el corpo- Tativo (la definicién del modelo general de informacion de la organiza- cin), Esta claramente ligado, pues, a la funcién de organizacion del SI glo- bal (diseno y andlisis de la informacion que necesita la organizacion y que hemos atribuido més arriba al CIO) e, incluso, a la Implementaci6n de la gestidn del conocimiento (que hemos mencionado al catalogar los SI). - Administracion y gestion de la seguridad: rata de responsabilizarse de la seguridad de las TI, con especial dedicacién a las de infraestructuras y al hardware. Ello incluye también el control de acceso a todas las instalacio- nes informAticas, especialmente a las centrales © a las que son més criticas, y la seguridad légica, es decir, a restringir los accesos al recurso “informa- cién” y a los SI que la pucden manipular, En cl perfil individual del profesional del area técnica de sistemas, la dimen- sin tecnolégica tiene mucha importancia. Globalmente, se necesitan més per- files de calificacién elevada que de bajo nivel, como programadores de sistemas (ya que hay pocos desarrollos 0 mantenimiento de elementos de software de base, incluso en el caso de que la organizacién utilice software libre). Esta califi- caci6n elevada le tiene que dar capacidades de evaluacin de prioridades y de anilisis a largo plazo; de trabajo continuado en un entorno en el que deben rea- lizarse muchas tareas diferentes a la vez; de trabajo en equipos pluridisciplina- res; de autogestién temporal y de flexibilidad y empatia en la asuncién de las necesidades que le plantean las otras dos Areas, Para finalizar este apartado sobre los perfiles para la gestion funcional, debe- mos recordar, como hemos ido diciendo, que las responsabilidades y tareas téc- nicas que desarrollan* ya han sido comentadas sobradamente en todos los capi- tulos precedentes: ingenieria del software, programacién y gestion de datos por la parte de software; arquitectura de sistemas informaticos y redes de comunica- ciones por la parte de hardware. Es decir, parece natural que los diferentes pro- fesionales especialistas en cada Ambito acaben desarrollando el rol que les corresponda en su Area técnica de un departamento de SI. Pero no hay que olvi- dar que alguien tiene que ocupar los roles de management, y los candidatos, evi- dentemente, pueden tener su origen en cualquiera de estas diferentes Areas. 4. A pesar de no ser el tinico marco de referencia, ITIL es un conjunto de conceptos y buenas pric: ticas en torno a los servicios, el desarrollo y las operaciones de SI ampliamente utilizado en la ges tin funcional y que reileja estas responsabilidades y tareas técnices. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. © Editorial UOC 240 Escaneando la Informatica maimente exteros a la organizacion) de SI. Tendrian que ser instrumentos de mejora y de aseguramiento de que los procedimientos (de todo tipo: infraestruc- turas, desarrollo de SI, seguridad, gestion de datos...) se hacen segtin las buenas practicas 0 los esténdares metodoldgicos y los marcos legales existentes Tendrian que ayudar a descubrir funcionamientos incorrectos y sus causas y dar pautas para su mejora, Es decir, el auditor ejerce, desde una perspectiva alejada del propio departamento, una visi6n critica de su funcionamiento, buscando los puntos débiles (y confirmando los fuertes) para ayudar a la mejora futura.' Sobra decir que, por estos motivos, a menudo no son muy bien vistos por los miembros del departamento, aunque la asuncién de los principios de calidad por parte de todos hace que, poco a poco, se vaya cambiando la percepeién que se tiene de ellos. 9. {Conclusiones? Mas alla de todo lo que hemos expuesto en este capitulo, hay una idea clara y que determina que hayamos puesto un signo de interrogacién en el titulo de este apartado final: la disciplina en tomo a los sistemas de informacién -su defi- nicién y su management en las organizaciones a las que sitve- sigue evolucio- nando, no esta cerrada y, aunque tiene un nivel de madurez destacable, hasta hace poco no ha contado con la aportaci6n decisiva de las personas formadas principalmente en el sector de las TI. Es posible que estas aportaciones ayuden a ordenar funciones, a establecer procedimientos 0, por lo menos, a aclarar denominaciones y a seguir definien- do las fronteras de todo el ambito. Para los informaticos no tiene que represen- tar ningdin problema entrar sin complejos en un Ambito en el que casi todas las definiciones y categorizaciones ~y lo hemos repetido hasta la saciedad- no son todavia definitivas. La informatica ha sido y sigue siendo una profesin some- tida a vertiginosas evoluciones, acostumbrada a atender a clientes y Ambitos de todo tipo, y que ya se ha ido acercando a otras areas de conocimiento y fun- 5. A pesar de no ser el sinico marco de referencia, COBIT es una recopilacién de buenas pricticas para el management de SI, especialmente utilizado en auditoria. © Editorial UOC 241 Sistemas de informacién (en las organizaciones) diendo con ellas (1a medicina o el diseno, por ejemplo, por decir solo algunas que nos son muy cercanas), de modo que, el de las organizaciones, es s6lo un campo mis. Por eso hemos puesto el interrogante en el titulo: lejos de reflejar incerti- dumbre sobre todo lo que hemos dicho aqui, querriamos que representara el estimulo que significa tener un territorio por explorar para unos profesionales acostumbrados a aterrizar en todo tipo de islas, continentes 0, incluso, plane tas... aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book. aa You have either reached a page that is unavailable for viewing or reached your viewing limit for this book.

Você também pode gostar